四川大学网络教育《C 语言程序设计》复习资料期末考试复习题及参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》复习资料
一.单项选择题
1.下面哪一个是合法的用户自定义标示符( D )
(A) b-b (B) float (C)
2.a、b为两个bool型变量,如下哪一个表达式能够表达“a、b同时为真或同时为假”的含义?(C )
(A)a&&b||a (B)(a&&b)||!b (C)(a&&b)||(!a&&!b) (D)
(a||b)&&(!a||!b)
3.对于表达式(x>0)?x=x-1:x=x+1,若当前x取值为-2,该表达式的运算结果为( A )
(A) -1 (B) 0 (C) 1 (D) 2
4.不是C语言基本数据类型的是( D )
(A) 指针类型 (B) 整型 (C) 字符型 (D) 实型
5.以下for循环控制中,循环次数为10次的是( C )
(A)for(int i=1;i<10;i++) (B)for(int i=0;i<=10;i++)
(C)for(int i=0;i<20;i+2) (D)for(int i=0;i<=20;i+2)
6.设有:int a=3, b= 4, c= 5,x , y; 表达式0 && (x=a)&&(y=b)的值为( B )
(A) 1 (B) 0 (C) 3 (D) 4
7.设有语句 int a=3 ; 则执行了语句 a+=6;后,变量a 的值为( C )
(A) 18 (B) -3 (C) 9 (D) 12
8.对于变量定义char* p_name[]={“Kate”,“John”,“Mike”},如下哪一种表达式能表示“Mike”中的‘k’字符?( B )
(A)p_name[0][2] (B)p_name[2][2]
(C)*(p_name[2]+3) (D)*(p_name[1]+2)
9.表达式(int)7.5/(float)2的取值为( A )
(A)3.75 (B)3.5 (C)3 (D)4
10.有定义语句:float a[4];则分配给数组a的内存空间为( C )字节
(A) 20 (B) 12 (C) 16 (D) 10
11.表达式6>8 | | 3>=9的取值为( A )
(A)0 (B)1 (C)2 (D)3
12. 表达式18/4*sqrt(4.0)/8值的数据类型为(C )
(A) int(B)float(C)double(D)不确定
13.表达式18/4*sqrt(4.0)/8值的数据类型为( D )
(A)int B float C.double D.不确定
14.在以下定义中对标识符ptr描述正确的是( C )
int(*ptr)[3];
(A)定义不合法 (B)是一个指针数组名,每个元索是一个指向整型变量的指针
(C)是一个指针,它指向一个具有3个元素的一维数组(D)是一个指向整型变量的指针
15.已知有语句 scanf (“%d%d”,&a,&b);要使整型变量 a = 6, b = 8,运行时,屏幕上应输入( D )
(A)a=6,b=8 (B)a=6 b=8 (C)6 8 (D)6 , 8
16.若char a=3,b=6,c; c=a^(b>>2);则c的二进制形式为(A )
(A) 00000010 (b)00000100 (C)00000001 (D)00000011
17.若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是( D )
(A)p=q (B)*p=*q (C)n=*q (D)p=n
18.已知int a[3][4];则对数组元素引用正确的是( C )
(A) a[2][4] (B) a[1,3] (C) a[2][0] (D) a(2)(1)
19.已知定义int a[]={10, 60, 30};写出语句a[0]+ = a[1] - = a[2];运行后数组各元素的值为( B )
(A)a[0] =70 , a[1] = 30,a[2] = 30。
(B)a[0] =40 , a[1] = 30,a[2] = 30。
(C)a[0] =10 , a[1] = 70,a[2] = -30。
(D)a[0] =40 , a[1] = 30,a[2] = 0。
20.已知 x=y=z=100,语句z + = ( x++ )+( --y ) 执行后各变量的值为( B )(A)x=100,y=99,z=299
(B)x=101,y=99,z=299
(C)x=101,y=100,z=301
(D)x=100,y=99,z=199
21.表达式0x55|0xAA的取值为( B )
(A)55 (B)255 (C)0xAA (D)0
22. C语言中规定,if语句的嵌套结构中,else总是( D )
(A) 与最近的if 配对 (B) 与第一个if 配对
(C) 按缩进位置相同的if配对 (D) 与最近的且尚未配对的if 配对
23.字符串“Test\n”的长度为( B )
(A)4 (B)5 (C)6 (D)7
24. 以下描述错误的是( B )
(A) break语句可用于while语句
(B) break语句和continue语句的作用是一样的
(C) 在循环语句中使用break语句是为了跳出循环,提前结束循环
(D) 在循环语句中使用continue语句是为了结束本次循环,而不终止整个循环
25.假设有变量定义int m=2,n=3; 执行语句m*=n++;后,以下结果正确的是( C )
(A)m为8,n为4 (B)m为6,n为3 (C)m为6,n为4 (D)m
为8,n为3
26. 说明语句“int (*p)( ); ”的含义是( C )
(A) p是一个指向一维数组的指针变量 (B) p是指针变量,指向一
个整型数据
(C) p是一个指向函数的指针,该函数返回一个int型数据 (D) 以上都不对
27.假设a、b为bool变量,while((a||b)&&(!a||!b)&&!a)在如下哪一个条件
下继续循环?( D )
(A)a、b同为真(B)a、b同为假(C)a为真,b为假(D)a为假,b为真
28. 以下对二维数组c的正确声明是( D )
(A) int c[3][ ] (B) int c(3,4) (C) int c(2)(2) (D) int c[3][2]
29.以下变量类型中,占用空间最大的是哪一种?( A )
(A)double (B)int (C)BYTE (D)float
30. 下述程序段执行后输出结果为( D )
int x=100, y=200;
printf ("% d", (x, y));
(A) 100 (B) 200 (C) 100,200 (D) 编译出错
31.设x,y和z是int型变量且x=3,y=4,z=5;则下面的表达式中值为0的是
(D )