计算机c语言二级考试试题及答案
一、单项选择
1 下列数据中,为字符串常量的是()。 D A、'A'
B、How do you do. C、$abc D、\"house\"
2 以下所列的C语言常量中,错误的是( )。 A、0xFF B、1.2e0.5 C、2L D、'\\72'
3 以下程序的输出结果是()。 D main() {float x=3.6; int i; i=(int)x;
printf(\"x=%f,i=%d\\n\ }
A、x=3.600000,i=4 B、x=3 i=3.600000 C、x=3,i=3 D、x=3.600000,i=3
B 4 若k是整型,则以下程序段的执行结果是:( ) B k=-3;
if(k<=0) printf(\"####\") else printf(\"&&&&\"); A、####
B、有语法错误,无结果 C、&&&& D、####&&&&
5 若x=2,y=3则x||y的结果是( )。 A、3 B、0 C、1 D、2
6 针对下列程序段回答问题( B ). for(t=1;t<=100;t++) {
scanf(\"%d\ if(x<0) continue; printf(\"=\ }
A、x>=0时什么也不输出 B、最多允许输出100个非负整数 C、printf函数永远也不执行
C D、当x<0时整个循环结束 7 以下程序的执行结果是( )。 B main()
{ int num = 0;
while( num <= 2 ) { num++; printf( \"%d,\ A、0,1,2 B、1,2,3, C、1,2,3,4, D、1,2,
8 选择正确的输入语句( D )。:(其中:char string[20];)使得string的内容为\"I am student\".
A、scanf(\"%s\ B、scanf(\"%c\ C、scanf(\"%s\ D、gets(string);
9 对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。 B A、将5个初值依次赋给a[6]至a[10] B、将5个初值依次赋给a[0]至a[4]
C、因为数组长度与初值的个数不相同,所以此语句不正确 D、将5个初值依次赋给a[1]至a[5]
10 以下标识符中可以作为用户函数名的是( ). D A、struct B、int C、union
D、go_to
11 以下叙述错误的是( ). B
A、函数调用可以出现在一个表达式中 B、函数调用可以作为一个函数的形参 C、函数调用可以作为一个函数的实参 D、函数允许递归调用
12 若用数组名作为函数的实参,传递给形参的是()。 B A、数组第一个元素的值 B、数组的'首地址 C、数组元素的个数 D、数组中全部元素的值 13 在C语言程序中()。 B
A、函数的定义可以嵌套,但函数的调用不可以嵌套 B、函数的定义不可以嵌套,但函数的调用可以嵌套 C、函数的定义和函数调用不可以嵌套 D、函数的定义和函数调用均可以嵌套 14 下列说法中正确的是( ). B
A、函数调用不占运行时间,只占编译时间. B、宏替换不占运行时间,只占编译时间. C、有参数的宏定义,就是函数.
D、在定义宏时,宏名与带参数的括弧之间可以加空格. 15 若有说明:int *p,m=5,n;以下正确的程序段是()。D A、scanf(\"%d\
B、p=&n;scanf(\"%d\ C、p=&n;scanf(\"%d\ D、p=&n;scanf(\"%d\
16 对于下述定义,不正确的叙述是( ). B union data {int i; char c; float f; }a,b;
A、变量a的地址和它的各成员地址都是相同的
B、可以在定义类型的同时定义变量a,并对a的任意成员初始化 C、变量a所占内存的长度等于成员f的长度
D、如果有定义语句 union data a={6};则对变量a的初始化是正确的