C语言知识点总结(一)

83 阅读5分钟

对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 】