default :printf(\等级错误! \\n\27. 以下for循环是( C )。
for (x=0,y=0;(y! =123) && (x<4);x++);
A. 无限循环 B. 循环次数不定 C. 执行4次 D. 执行3次 28. 以下关于数组的描述正确的是( C )。
A. 数组的大小是固定的,但可以有不同的类型的数组元素。 B. 数组的大小是可变的,但所有数组元素的类型必须相同。 C. 数组的大小是固定的,所有数组元素的类型必须相同。 D. 数组的大小是可变的,可以有不同的类型的数组元素。 29. 在定义int a[10];之后,对a的引用正确的是( D )。 A. a[10] B. a[6.3] C. a(6) D. a[10-10]
30.设a是一个八进制数想使a的最低一位为1,其它位不变,应采用下列那种运算(B)。
A. a=a&1 B. a=a|1 C. a=a&7776 D. a=a|7776 31.经过 int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}定义之后,元素a[1][0]的值是(B)。
A. 2 B. 5 C. 10 D. 12
32. 经过int a[3][4]={{1},{5},{9}}定义只后,元素a[2][0]的值是(C)。 A. 1 B. 5 C. 9 D. 0
33.fopen( )函数的mode取值\和\时,它们之间的差别是( B )。 A. \可向文件读入,\不可向文件读入 B. \不可向文件写入,\可向文件写入 C. \不可由文件读出,\可由文件读出 D. 文件不存在时,\建立新文件,\出错 34.下面关于程序的说法中 ( A )是正确的。 A.程序就是人与计算机交流的语言
B.程序是指由二进制0、1 构成的代码
C.将需要计算机完成的工作写成一种形式化的指令,而这些单个的指令就是程序 D.程序的设计形式是一致的
35.下面叙述中不属于C语言的特点的是(C ) A.C 语言允许直接对位、字节和地址进行操作 B.C 语言具有可移植性
C.C 语言是一种面向对象的程序设计语言
D.C 语言数据类型丰富,功能强大,使用方便,灵活 36.编写C 程序一般需要经过几个大步骤依次是(D ) A.编译、编辑、链接、调试、运行 B.编辑、编译、链接、运行、调试 C.编译、运行、调试、编辑、链接 D.编辑、调试、编辑、链接、运行
37.由C 源程序文件编译而成的目标文件的缺省扩展名为( B ) A.cpp B.exe C.obj D.lik 38.C 语言程序由( B )组成
A.子函数 B.函数 C.主程序 D.过程 39.C 语言中主函数的个数是( D )
A.2 B.3 C.任意多个 D.1
40.下面( )不属于C 语言集成开发环境包含的程序 A.编辑程序 B.编译程序 C.汇编程.序 D.调试程序 41.以下选项中合法的用户标识符是(B )。
A.long B._2Text C.3Dmax D.A.dat 提示:B有下划线(2之前)
42.下列关于C语言用户标识符的叙述中正确的是( B )。 A. 用户标识符中可以出现在下划线和中划线(减号) B. 用户标识符中不可以出现中划线,但可以出现下划线
C. 用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D. 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 43.以下选项中合法的字符常量是( )。
A."B" B.'\\061' C.68 D.D 44.以下选项中,非法的字符常量是( )。
A.'\\t' B.'\\17' C. "n" D.'\xaa' 45.以下选项中可以作为C语言合法整数的是( )。
A.10110B B.0386 C.0Xffa D.x2a2 46.以下符合C语言语法的浮点型常量是( )。
A.1.2E0.5 B.3.14.159E C. .5E-3 D.E15 47.已定义c为字符型常量,则下列语句中正确的是( )。 A.c='97'; B.c="97"; C.c=97; D.c="a"; 48.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( )。
A.-3 B.9 C.-12 D.6
49.设x、y、t均为int型变量,则执行语句:x=y=3; t=++x‖++y;后,y的值为( )。
A.不定值 B.4 C.3 D.1
50.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,
则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是( )。 A.0 B.1 C.2 D.3 51.以下选项中,与k=n++完全等价的表达式是( )。
A.k=n, n=n+1 B,n=n+1,k=n C,k=++n D.k+=n+1
52.假定x和y为double型,则表达式x=2, y=x+3/2的值是( )。
A.3.500000 B.3 C.2.000000 D.3.000000
53.有以下定义语句double a ,b; int w; long c;
若各变量已正确赋值,则下列选项中正确的表达式是( )。 A.a=a+b=b++ B.w%(int)a+b) C.(c+w)%(int)a D.w=3==b%a;
54.设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是( )。
A.6.500000 B.6 C.5.500000 D.6.000000 55.已有定义:int x=3, y=4, z=5; ,则表达式!(x+y)+z-1 && y+z/2的值是( )。
A.5 B.0 C.2 D.1 56.以下合法的赋值语句是( )。
A.x=y=100 B.d--; C.x+y; D.c=int(a+b); 注:教材答案有误,B是表达式,不是语句,故也。 57.设x、y均为整型变量,且x=10, y=3,则以下语句printf("%d,%d\n",x-
-,- -y);的输出结果是( )。
A.10,3 B.9,3 C.9,2 D.10,2
58.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( )。
A.INPUT x、y、z; B.scanf("%d%d%d",&x,&y,&z); C.scanf("%d%d%d",x,y,z); D.read("%d%d%d",&x,&y,&z);
59.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为
1、j的值为2、k的值为3,以下选项中正确的输入语句是( )。
A. scanf("---",&i,&j,&k); B. scanf(""%d%d%d",&i,&j,&k);
C. scanf("%d,%d,%d",&i,&j,&k); D. Scanf("i=%d,j=%d,k=%d",&i,&j,&k); 60.以下程序的输出结果是( )。
void main( ) { char c='z';
printf("%c",c-25); }
A.a B.Z C.z-25 D.y
61.若要求在if后一对圆括号中的表达式,能表示a等于0时的值为“真”,则能正确表示这一关系的表达式是()。 A.a!=0 B.!a C.a D.a=0
62.假设已有说明语句int a,b,k;语句if(a>b) k=0;else k=1;等价于() A.k=(a>b)?1:0; B.k=a>b C.k=a<=b D.以上均不是
63.若a,b,c1,c2,x,y,均是整型变量,正确的switch语句是() A.switch(a+b);
{case 1:y=a+b;break; case 0:y=a-b:break; }
B. switch(a*a+b*b) {case 3:
case 1:y=a+b;break; Case 3:y=b-a:break; }
C. switch a
{case c1:y=a-b;break; Case c2:x=a*b:break; Default:x=a+b; }
D. switch(a-b);
{default :y=a*b;break;
case 3:case 4:x=a+b;break; case 10:case 11:y=a-b:break; }
64.下列叙述中正确的是()
A.break语句只能用于switch语句 B.在switch语句中必须使用default
C. break语句必须与switch语句中的case配对使用 D.在switch语句中,不一定使用break语句 65.关于下面的程序表达正确的是( ) #include
int x=3; do {
printf(\} while(!(--x)); }
A.输出的是1 B.输出的是1和-2 C.输出的是3和0 D.是死循环
66.整型变量x和y的值相等且为非0值,则以下选项中,结果为零的表达式是()。
A.x||y B.x|y C.x&y D.x^y 67.有以下程序 void main( )
{ int x=3,y=2,z=1;
printf(“%d\\n”,x/y&~z); }
程序运行后的输出结果是()。 A.3 B.2 C.1 D.0 68.有以下程序 void main()
{ unsigned char a,b; a=4 | 3 b=4 & 3;
printf(“%d%d\\n”,a,b); }
执行后输出结果是( )。 A.7 0 B.0 7 C.1 1 D.43 0 68.下列无符号数中最大的数是()。
A.(10011001)2 B.(227)8 C.(98) 16 D.(152)10 69.以下正确的是( )。
A.int a[ ]={1,2,3,4}; B. int a[4]={1,2,3,4,5}; C.int n=4, a[n]={1,2,3,4}; D. int a[4], b; a=&b; 70.以下程序执行完后,数组a的数值是( )。 void main() {
int a[ ]={9,3,0,4,8,1,7,2,5,6}, i=0, j=9, t; while(i t=a[j]; a[j]=a[i]; a[i]=t; i++; j--; } A.{9,3,0,4,8,1,7,2,5,6} B. {0,1,2,3,4,5,6,7,8,9} C.{6,5,2,7,1,8,4,0,3,9} D. {9,8,7,6,5,4,3,2,1,0} 71.有如下定义语句:int a[ ][3]={ {1,2} ,{1,2,3,4},{1},{2,3,4} };以下叙述正确的是( )。 A.数组a中共有10个元素 B. 数组a为4行3列的二维数组 C. 数组a初始化后的实际值是{ {1,2,1},{2,3,4},{1,0,0},{2,3,4} } D. 编译错误 72.以下数组定义中不正确的是( )。 A. int a[2][3]; B. int b[ ][3]={0,1,2,3}; C. int c[100][100]={0}; D. int d[3][ ]={ {1,2},{1,2,3},{1,2,3,4} }; 73.若有说明语句: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(“%f”,p); 74.设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是()。 A.float *p=1024; B. int *p=(float)x; C.float p=&x; D.float *p=&x; 75.有以下程序 void main() { char ch[]=”uvwyz”,*pc; Pc=ch; Printf(“%c\\n”,*(pc+5)); } 程序运行后的输出结果是()。 A.z B.0 C.元素 ch[5]的地址 D字符y的地址 提示“本题输出结果空白,因为’\\0’字符为空。 76.以下叙述错误的是( )