B 卷)
课程名称:C语言程序设计  20102011学年 第二学期    出题教师:计算机教学组
  专业:            班级:            姓名:          学号:
答题说明:本试卷共有六道大题,要求所有解答均写在答题卡上,否则无效。
上交试卷时按照发试卷时候的顺序整理试卷,平铺展开上交。
一、选择题(本题共30道题目,每题1分,共30分)
1. 以下叙述中正确的是(  )。
AC语言比其他语言高级。
BC语言可以不用编译就能被计算机识别执行。
CC语言以接近英语国家的自然语言和数学语言作为语言的表达形式。
DC语言出现的最晚,具有其他语言的一切优点。
2. 算法是为解决某特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是(

A)有零个输入或多个输入                B)高效性
C)有穷性                              D)确定性
3. 表达式3.6-5/2+1.2+5%2的值是(  )。
 A4.3          B) 4.8                  C) 3.3              D) 3.8
4. C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符(  )。
A)必须为字母                  B)必须为下划线
C)必须为字母或下划线          D)可以是字母,数字和下划线中任一字符
5. 下列数据中,不合法的C语言实型数据的是(  )。
A0.123          B123e3      C2.1e3.5      D789.0
6. 若有说明语句:char c='72';则变量c  )。
A)包含1个字符              B)包含2个字符
C)包含3个字符              D)说明不合法,c的值不确定
7. 若有定义:int a=7;float x=2.5,y=4.7; 则表达式x+a%3*int)(x+y%2/4的值是(  )。
A2.500000                  B2.750000
C3.500000                  D0.000000
8. 下列可用于C语言用户标识符的一组是(  )。
Avoid, define, WORD          Ba3_b3, _123,Car
CFor, -abc, IF Case          D2a, DO, sizeof
9. 以下不正确的叙述是(  )。
A)在C程序中,逗号运算符的优先级最低。
B)在C程序中,APHaph是两个不同的变量。
C)若ab类型相同,计算了赋值表达式a=bb中的值将放入a中,而b中的值不变。
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
10. 设有int x=17;则表达式(x++*1/3)的值是(  )。
A5        B6        C17          D18
11. 以下变量xyz均为double类型且已正确赋值,不能正确表示数学式子x÷y÷zC语言表达式是(  )。
Ax/y*z                  Bx*1/y*z))
Cx/y*1/z                Dx/y/z
12. xyz被定义为int型变量,若从键盘给xyz输入数据,正确的输入语句是(  )。
AINPUT xyz;                    Bscanf"%d%d%d",&x,&y,&z;
Cscanf"%d%d%d",x,y,z;          Dread"%d%d%d",&x,&y,&z;
13. 以下不合法的字符常量是   )。
A'\018'    B '\'        C) '\\'        D) ‘\xcc'
14. 以下叙述中错误的是( )。
AC语句必须以分号结束。
B)复合语句在语法上被看作一条语句。
C)空语句出现在任何位置都不会影响程序运行。
D)赋值表达式末尾加分号就构成赋值语句。
15. 设变量已正确定义,则以下能正确计算f = n!的程序段是(  )。
A f=0; for(i=1;i<=n;i++)                B f=1; for(i=1;i>=2;i--) f*=i;
C f=1; for(i=n;i>1;i++)              D f=1; for(i=n;i>=2;i--) f*=i;
16. s1s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是( )。
A)if(s1>s2)S;                B)if(strcmp(s1,s2))S;
printf输出格式右对齐C)if(strcmp(s2,s1)>0)S;      D)if(strcmp(s1,s2)>0)S;
17. 若有如下语句,则输出结果(  )。
int x=3;
do{printf("%d\n",x-=2);}while(!(--x));
A)输出的是1    B)输出的是1-2    C)输出的是30    D)是死循环
18. 以下程序段的输出结果是(  )。
  int a=4,b=5,c=0,d;    d=!a&&!b||!c;    printf("%d",d);
A1          B0        C)非0的数            D-1
19. 以下能正确定义二维数组的是( )。
Aint a[][3];                Bint a[][3]=2{2*3};
Cint a[][3]={};            Dint a[3][3]={{1},{2},{3,4}};
20. 下列数组定义方式不正确的语句是(  )。
Achar    x[5]       Bchar   y[]={‘h’, ‘e’, ‘l’ };
Cint     y[]       Dint    x[10]={12,13,14,15};
21. 若有以下定义和语句,输出结果是(  )。
char c1='b', c2='e';
printf("%d,%c", c2-c1, c2-'a'+’A’);
A3,M       (B2,E
C3,E       (D)输出项与对应的格式控制不一致,输出结果不确定
22. 有以下程序, 运行时输入:a<回车> 后,以下叙述正确的是( )。
    A)变量c1被赋予字符ac2被赋予回车符。
  B)程序将等待用户输入第2个字符。
  C)变量c1被赋予字符ac2中仍是原有字符2
  D)变量c1被赋予字符ac2中将无确定值。
  #include<stdio.h>
  main()
  {  char  c1='1',c2='2';
      c1=getchar();  c2=getchar();
        putchar(c1);  putchar(c2);  } 
23. 若有定义语句 char p[]={'a', 'b', 'c'}, q[10]={'a', 'b', 'c'}; 则字符串p和字符串q的长度分别为(  )。
A) 3,不确定      B)33        C)不确定,3      D)不确定,不确定 
24. 函数调用过程,如果函数funA调用了函数 funB,函数funB又调用了函数funB,则( )。

A)称为函数的直接递归调用          B)称为函数的间接递归调用
C)称为函数的循环调用              D)C语言中不允许这样的递归调用
25. 变量的指针,其含义是指该变量的(  )。
A)       B)         C)地址      D)一个标志
26. 若有语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是( )。
 A*p=&a; scanf(%lf,p);       B)*p=&a; scanf(%f,p);
 C) p=&a; scanf(%lf,*p);       D)p=&a; scanf(%lf,p);
27. char *s="\ta\103bc";则指针变量s指向的字符串所占的字节数是(  )。
A)9        B)5            C)6            D)7