东 华 大 学 试 卷
  2019—2020    学年第  2  学期                课号              
课程名称  C语言程序设计    (期末; A卷) 适用班级(或年级、专业)           
考试时间  120    分钟    班级              学号                  姓名           
后端字符串转数组
题  号
成绩
满  分
60
20
10
10
100
得  分
(说明:试卷中要用到的标准输入输出函数库函数语句 #include <stdio.h>语句已省略!)
一、(60分,每小题2分)单项选择。
1.以下正确的 C 语言标识符是(      )。
A. %i        B. 3a        C. a1234        D. test!
2.设 int n=2; 则 ++n+1= = 4 的结果是(    )。
A.0        B.1    C.2    D.3
3.设 int a=4,b; 则执行 b=a<<1; 语句后, b 的结果是(    )。
A.2        B.4        C.6    D.8
4.在定义 int a[10]; 之后,对 a 的引用正确的是(  )。
    A.a[10]    B.a[1.3]    C. a(6)    D.a[10-10]
5.以下给字符数组 str 定义和赋值正确的是(  )。
A.char str[10];  str="China";                B.char str[]={"China"};
    C.char str[10];  strcpy(str,"abcdefghijklmn");  D.char str[10]={"abcdefghij"};
6.以下程序段( )。
x= -1;  do    {x=x*x;} while(!x);
A. 是死循环    B. 循环执行二次        C. 循环执行一次  D. 有语法错误
7.在说明一个结构体变量时系统分配给它的存储空间是 (  )。
      A. 该结构体中第一个成员所需存储空间  B. 该结构体中最后一个成员所需存储空间
      C. 该结构体中占用最大存储空间的成员所需存储空间
D. 该结构体中所有成员所需存储空间的总和
8.有如下定义:    struct date { int year,month,day; } birthday;
对结构体变量 birthday进行赋值时,下面正确的赋值语句是(    )。
    A.year=1949                    ar=1950
      C.ar=1951        ar=1952
9.设 char s[80];*p=s; 以下不正确的表达式是(  )。
A. p=s+5;    B. s=p;  C. s[32]=p[42];    D. *p=s[0];
10. sizeof(double) 是一个(      )表达式。
A. 整型            B. 双精度            C. 不合法            D. 字符
11. 设 char **t; 以下正确的表达式是(    )。
A. t="computer";  B. *t="computer";    C. **t="computer";      D. *t='c';
12. 设有说明 int (*ptr)[M]; 其中 ptr 是(    )。
A. M 个指向整型变量的指针            B. 指向 M 个整型变量的函数指针
C. 一个指向具有 M 个整型元素的一维数组的指针
D. 具有 M 个指针元素的一维指针数组,每个元素都只能指向整型量
13.   设有定义:enum t1 {a1, a2 = 7, a3, a4 = 15} time;则a2和a3的值分别为 (    )
A. 1和2        B. 2和3      C. 7和3        D. 7和8
14. 设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为(    )
A1       B. 2       C. 3       D. 0
15. 以下程序片段(    )
        main ( )        {    int x=0,y=0,z=0;
if (x=y+z)         printf(“***”);
else        printf(“###”);        }
      A.有语法错误,不能通过编译                 B.输出:***
      C.可以编译,但不能通过连接,所以不能运行   D.输出:###
16. 下面程序段的输出结果是(    )
int k,a[3][3]={1,2,3,4,5,6,7,8,9};
for (k=0;k<3;k++) printf(“%d”,a[k][2-k]);
A.357   B.369   C.159   D.147
17. 下面程序的输出结果是(    )
void main ( )
{     char ch[7]=”12ab56”;             int i,s=0;
             for (i=0;ch[i]>’0’&&ch[i]<=’9’;i+=2)                s=10*s+ch[i]-‘0’;
             printf(“%d\n”,s);
}
A1      B.1256     C.12ab56     D.ab
18. 下面程序段的运行结果是(    )
char *s=”abcde” ;  s+=2 ; printf(“%d”,s);
A.cde              B.字符’c’          C.字符’c’的地址    D.不确定
19. 若int x;则执行下列程序段后输出是(    )。
    for(x=10;x>3;x--)
    {    if(x%3) x--;--x;--x;
        printf(%d,x);
}
    A.63        B.74            C.62            D.73
20. 以下程序的执行结果是(        )。
  main()
  {  int sum,pad;      sum=pad=5;
    pad=sum++;      pad++;      ++pad;
    printf("%d\n",pad);
  }
  A.7      B.6      C.5      D.4
21.有以下程序     
void ss(char *s,char t)  {
    while(*s)    { if(*s= =t)*s=t-'a'+'A';      s++; }  }                                                           
main()  {
char str1[100]="abcddfefdbd",c='d'; 
ss(str1,c); printf("%s\n",str1);    }     
程序运行后的输出结果是 (    )。                                   
A. ABCDDEFEDBD        B. abcDDfefDbD       C. abcAAfefAbA      D. Abcddfefdbd       
22.打开磁盘上的C文件,称为(    )。
A. 输出        B. 输入        C. 修改        D. 删除
23. 如下程序的执行结果是 (    )。
#include<stdio.h>
main() { static int a[]={1,2,3,4,5,6}; int *p;
p=a; *(p+2)+=1;
printf("%d,%d\n",*p,*(p+2)); }
A. 1,3  B. 1,6  C. 3,6  D. 1,4
24.设int a[10]={1,2,3}; 则*(a+3)的值是(    )。
A. 1  B. 2  C. 3  D. 0
25 .若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[2][2]的值为(    )。
    A. 2  B. 4  C. 6  D. 8
26.下列程序执行后的输出结果是   
void func(int *a,int b[])    { b[0]=*a+6; }
main() {int a,b[5];    a=0; b[0]=3;    func(&a,b); printf("%d\n",b[0]); }
A. 5       B. 6        C. 7        D.8
27、在高级语言中,对文件操作的一般步骤是(    )。
A.打开文件—操作文件—关闭文件      B.操作文件—修改文件—关闭文件
    C.读写文件—打开文件—关闭文件  D.读文件—写文件—关闭文件
28、已定义以下函数    fun(char *p2, char *p1)    {   
while((*p2=*p1)!='\0'){p1++;p2++;}  }    函数的功能是 (    )。
A. 将p1所指字符串复制到p2所指内存空间    B. 将p1所指字符串的地址赋给指针p2
C. 对p1和p2两个指针所指字符串进行比较  D. 检查p1和p2所指串中是否有'\0'
29.有以下程序   
main(){int i=1,j=1,k=2;    if((j++||k++)&&i++)    printf("%d,%d,%d\n",i,j,k);  }  执行后输出结果是 (    )。
A. 1,1,2                B. 2,2,1            C. 2,2,2            D. 2,2,3
30.以下 for 循环是 (    )。
for(x=0,y=0;(y!=2013)&&(x<4);x++,y+=2000)  {…}
A. 无限循环  B. 执行 5次  C. 执行 4 次  D. 执行 1次

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。