巩固基础计算机二级C语言试题及答案.docx
巩固基础计算机二级C语言试题及答案
选择题
1.以下关于C语言的说法正确的是()
A.C语言程序必须有main函数
B.C语言程序不区分大小写
C.C语言的注释可以嵌套
D.C语言程序的每行只能写一条语句
答案:A
分析:C程序执行从main函数开始,所以必须有main函数。C语言区分大小写,注释不能嵌套,一行可写多条语句。
2.以下合法的C语言标识符是()
A.%x
B.a+b
C.a123
D.123abc
答案:C
分析:标识符只能由字母、数字和下划线组成,且开头不能是数字,不能是关键字和特殊符号。
3.已知inta=5;,则执行语句a+=a-=aa;后,a的值是()
A.0
B.-40
C.40
D.25
答案:B
分析:先算aa得25,a-=25即a=a-25,此时a为-20,再算a+=-20即a=a+(-20),所以a为-40。
4.若有定义intx=3,y=2;,则表达式(x+y)/2的值是()
A.2.5
B.2
C.3
D.3.5
答案:B
分析:x+y为5,两个整数相除结果取整,所以结果是2。
5.若有语句scanf(%d%d,a,b);,为使a=3,b=5,正确的输入是()
A.35
B.3,5
C.a=3,b=5
D.3;5
答案:A
分析:scanf按格式输入,“%d%d”之间无其他符号,输入两数用空格分隔。
6.执行以下程序段后,sum的值是()
```c
inti,sum=0;
for(i=1;i=3;i++)
sum+=i;
```
A.0
B.1
C.3
D.6
答案:D
分析:循环三次,sum依次加上1、2、3,结果为6。
7.以下循环体的执行次数是()
```c
inti,j;
for(i=0,j=10;i=j;i++,j--)
printf(%d\n,i);
```
A.3
B.4
C.5
D.6
答案:C
分析:i从0开始递增,j从10开始递减,满足i=j条件执行5次循环。
8.若有定义inta[5];,则下面对a数组元素的引用错误的是()
A.a[0]
B.a[1]
C.a[5]
D.a[3]
答案:C
分析:数组下标从0开始,a数组下标范围是0-4,a[5]越界。
9.以下程序的输出结果是()
```c
includestdio.h
voidmain(){
intx=10;
if(x--10)
printf(%d\n,x);
else
printf(%d\n,x++);
}
```
A.9
B.10
C.8
D.11
答案:A
分析:先判断x--10,x先参与比较为10,条件不成立,执行else输出x为9。
10.以下关于函数的说法错误的是()
A.函数可以有返回值
B.函数可以没有参数
C.函数不能嵌套定义
D.函数必须有return语句
答案:D
分析:函数可以没有返回值,即没有return语句,void类型函数就不一定要有return。
11.若有定义structstudent{intnum;charname[20];};,则以下定义结构体变量的语句正确的是()
A.structstudents;
B.students;
C.structs;
D.structs{1,LiMing};
答案:A
分析:定义结构体变量要加结构体名structstudent,B少struct,C语法错,D是初始化语法错。
12.若有指针定义intp;,以下使p指向一个整型变量a的语句是()
A.p=a;
B.p=a;
C.p=a;
D.p=a;
答案:B
分析:指针p要指向变量a,需将a的地址赋给p,即p=a。
13.以下关于文件操作的说法正确的是()
A.打开文件时必须指定读写模式
B.文件只能按文本模式打开
C.关闭文件可省略
D.打开文件一定能成功
答案:A
分析:打开文件需指明读写模式,文件可按文本或二进制模式打开,关闭文件不能省略,打开文件可能失败。
14.执行以下程序,输出结果是()