对C语言学习的总结。
一、单选题
1、下列关于C语言中ma in函数位置的叙述中,正确的是:(C)
A.必须在程序的最后
B.必须在程序的开始处
C.可以在程序中的任意位置
D.必须在系统调用的库函数后面
2、若有定义"int i ; fIoat f; doubIe d;”,则表达式"10+d+i*f"的数据类型为:(C)
A. int
B. fIoat
C. doubIe
D. 不确定
3、若有定义“int x=11 ;",则表达式"(x++*1/3)"的值是: (C)
A.12
B.11
C.4
D.3
4、若有定义“int i, j;”,执行语句“for (i = 0, j = 1; j = 1; i <= j+1;i+ =2,j-- )printf("%d",i);”时的循环次数是(C)
A.3
B.2
C.1
D.0
解析:C语言的for循环中的三个循环条件中的第二个循环条件可以理解为是
条件判断
,根据该题中的第二个条件为i <= j+1
,只有满足这个条件才会让循环继续。故,答案为C。
5、若有定义"char a[]="xyz", b[] = {'x', ' y', ' z'} ;",则下列 叙述中正确的是 ( A)
A.数组a的长度大于数组b的长度
B.数组a的长度小于数组b的长度
C.数组a和数组b的长度相同
D.数组a和数组b等价
6、在C语言中,数字O29是一个(D)
A.八进制数
B.十进制数
C.十六进制数
D.非法数
7、若有定义“int x=1,y=-1;“,则语句,printf ("%d", (x--&&++y));”的输出 结果是(B)
A.1
B.0
C.-1
D.2
8、若有定义“int i = 10;”,则执行下列语句后,变量i的值为(D)
switch (i) {
case 9: i+=1;
case 10: i+=1;
case 11: i+=1 ;
default : i+=1;
}
解析: C语言的
switch
语句中,每个case后边都需要跟上break
关键字才能跳出本次循环,如果没有则会继续执行后边的语句。
A.10
B.11
C.12
D.13
9、若有如下语句序列,则while循环执行的次数是 (A)
int k = 0;
while (k=1) k++;
A.无限次
B.执行一次
C.—次也不执行
D.有语法错,不能执行
10、若有定义 “int i,x[3][3] = {1,2,3,4,5,6,7,8,9};“,则 执行下列语句后的输出结果是(C)
for(i=0;i<3;i++)printf("%d",x[i][2-i]);
A.159
B.147
C.357
D.369
11、C语言程序中,调用函数时( B )
A.实参和形参共用一个存储空间
B.实参和形参各自占用一个独立的存储空间
C.由用户指定实参和形参是否共用存储空间
D.由系统指定实参和形参是否共用存储空间
12、若p1和p2为指向同一字符串的指针变量,c为字符变量,则 下列语句中,不能正确执行的是( A )
A.p2=c
B.c=*p2
C.p1=p2
D.c=*p1+*p2
13、下列程序段中,枚举变量c1和c2的值分别是( B )
enum coIor {red, yeIIow, bIue=4, green, white};
enum coIor {c1=yeIIow, c2=white};
A.2,6
B.1,6
C.2,5
D.2,4
14、C语言中,对文件进行存取的基本单位是 ( B )
A. 记录
B. 字节
C. 元素
D. 簇
15、下列代码输出的结果是( A )
int n = 4
while(n--)
printf("%d",--n);
A. 20
B. 31
C. 210
D. 321
16、下列叙述中,错误的是( C )
A.循环语句中使用continue语句是为了结束由颁环,而不是 终止整个循环
B.循环语句中使用break语句是为了使流程跳出循环体,提前
C.switch语句中使用break语句或continue语句的作用是相同 的
D.break语句不能用于循环语句和switch语句以外的其他语句
17、若有定义“int w=1,x=2,y=3, z=4;”,则条件表达式 "w<x ? y<z ? y : z : w"的结果是( B )
A. 4
B. 3
C. 2
D. 1
18、C语言中,确定函数返回值类型的是( D )
A. 调用该函数时由系统默认
B. 调用该函数时的主调函数
C. return语句中的表达式
D. 定义该函数时指定的函数类型
19、执行下列语句序列后的输出结果是( D )
int arr [ ] = {1,2, 3, 4, 5} , *ptr=arr;
*(ptr+2) +=2;
printf ("%d, %d", *ptr, * (ptr+2));
A.3,5
B.1,3
C.2,4
D.1,5
20、当定义一个联合体变量时,系统为它分配的内存空间是( A )
A. 联合体中占内存容量最大成员所需内存容量
B. 联合体中任意一个成员所需内存容量
C. 联合体中各成员所需内存容量之和
D. 联合体中第一个成员所需内存容量
二、多选题
1.若有如下语句,假设输入序列为2223a123。. 12,则下列描述中,正确的是( A B C )°
scanf ("%d ,%c, %f "&a,&b,&c)
A. 变量a的值为2223
B. 变量b的值为a
C. 变量c的值为123
D. 输入有误
2、若有如下语句序列,则下列叙述中,错误的是( BC )
int x=1, y=1, z=1,s;
s=++x||++y&&++z;
A. 执行该语句序列后,变量x的值为2
B. 执行该语句序列后,变量y的值为2
C. 执行该语句序列后,变量z的值为2
D. 执行该语句序列后,变量s的值为1
3.若有定义 “int a[][3] = {{1,2,3}, {4,5},{6,7}};”,则下列 关于数组a的叙述中,正确的是( BCD )
A. 数组a定义有误
B. 数组a第一维的大小为3
C. 数组元素a[0] [2]的值为3
D. 数组元素a[1] [2]的值为0
4、以下不符合C语言语法的实型常量是( ABD )
A. e5
B. 1e-3. 2
C. -. 1e-3
D. e
三、判断题(正确 T 错误 F)
1、C语言中不区分英文字符的大小写。【 F 】
2、C语言本身不提供输入输出语句,但可以通过输入输出函数 实现数据的输入输出。【 T 】
3、在C语言中,使用函数strcpy时可以将一个字符串的所有字 符(包含'\0')复制到另一个数组中。【 T 】
4、在C程序中,函数调用时用数组名作为函数的实参,则传递 给形参的是数组的首元素值。【 F 】
5、C 语言中,for语句后表示循环控制的三个表达式必须都出现。【 F 】
6、对指向一维数组的指针不能进行关系运算。【 F 】
7、C语言中,以%”方式进行文件操作时,若被打开的文件 已存在,则原文件内容将被覆盖。【 T 】
8、在二维数组a[3][4]中,a+1与a[1]都是第一行的首地址。【 T 】
9、"A"是一个字符常量。【 F 】
10、若有定义"char s[]= " book ",则s中有5个元素。【 T 】