C语言测试题
一、选择题
1、 下列不属于 C语言关键字的是_______
A.default B.register C.enum D.external
2、 以下运算符中优先级最低的为_______
A, && B, & C, || D, =
3、 已知:float x=1, y; 则:y=++x*++x的结果为
A,y=9 B, y=6 C, y=1 D, 表达式是错误的
4、 有关宏代换叙述中错误的是_______
A,宏代换不占用运行时间 B,宏名无类型 C,宏代换只是字符替换 D,宏名必须用大写字母表示
5、 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表
达式为_______
A, a<>0 B, !a C,a=0 D, a
6、 已知:int x,a,b; 下列选项中错误的if 语句是_______
A,if (a=b) x++ B, if (a=
7 执行语句“for(i=0; i++<3;);”后,变量i的值为_______ A,2 B,3 C,4 D, 5
8 在while(x)中的x与下面条件表达式等价的是_______
A,x= =0 B, x= =1 C, x!=1 D, x!=0
9、 定义int i=1; 执行语句“while (i++<5); ”后,i的值为
A,3 B,4 C,5 D,6
10、 C语言中进行乘方运算,例如求a的3次方,可以使用_______
A, a^3 B,a**3 C, pow(a,3) D,power(a,3)
11、 C语言中的返回值是由_______决定的。
A,return语句中的表达式类型 B,调用该函数的主调函数类型 C,调用函数时临时决定 D,定义函数时所指定的函数类型
12、 在一个源文件中定义的外部变量的作用域是_______
A,本文件的全部范围 B,本程序的全部范围 C,本函数的全部范围 D,从定义该变量的位置开始至本文件结束 13、 在一个C圆程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要的存储类别是_______
A, extern B,register C, auto D, static
14、 调用strlen(“abcd\\0ef\\0g”)的返回值是_______
A,4 B,5 C,8 D,9
15、 若用数组名作为函数调用时的实参,则实际上传递给形参的是_______
A,数组首地址 B,数组的第一个元素值 C,数组中全部元素的值 D,数组元素的个数
16、 已知:char str1[20]=”abcde”, str[20]=”xyz”; 则执行语句: printf(“%d”, strlen(strcpy(str1,str2)));
输出结果是_______
A,9 B,3 C,5 D,8
17、 以下不能对二维数组a进行正确初始化的语句是_______
A,int a[2][3]={0} B, int a[ ][3]={{1,2},{0}} C, int a[2][3]={{1,2},{3,4},{5,6}} D, int a[ ][3]={1,2,3,4,5,6}
18、 在C语言中,二维数组在内存中的存放顺序是_______
A,按行存放 B,按列存放 C,由用户自己定义 D,由编译器决定
19、 选择正确的说明语句
A,int a[‘a’] B,int a[3,4] C,int a[ ][ ] D,int a(*a)[10]
20、 已知:char s[10],*p=s, 则在下列语句中,错误的语句是_______
A,p=s+5; B,s=p+s C, s[2]=p[4] D, *p=s[0]
21、 C语言主函数main最多允许有_______个参数
A,1 B,2 C,0 D,3
22、 已知:int x[ ]={1,3,5,7,9,11},*ptr=x; 则能正确引用数组元素的语句是_______
A,x B, *(ptr--) C,x[6] D, *(--ptr)
23、 下列结论中正确的有_______
A,所有的递归程序均可以采用非递归算法实现 B,只有部分递归程序可以用非递归算法实现
C,所有的递归程序均不可以采用非递归算法实现 D,以上说法都不对
24、 在C语言的函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了funA,则_______
A,称为函数的直接递归 B,称为函数的间接递归
C,称为函数的递归定义 D,C语言中不允许这样的递归形式
二、阅读程序
1、 编译执行下列程序,结果是
# include
int i=6, y=4,z=2; pintf (“%d\\n”, i/y%z); }
A,错误信息,不能执行 B,0 C,1 D,2
2、 下面程序的输出是
# define SUB(X,Y) (X)*Y main( )
{ int a=3,b=4;
printf(“%d\\n”,SUB(a++,b++) ); }
A,12 B,15 C,16 D,20
3、 阅读程序,选择运行结果
# include
{ char c=’A’; if (‘0’<=c<=’9’)
printf (“YES”); else
printf (“%d,%d\\n”,a,b); }
A,YES B, NO C, YESNO D, 语句错误
4、 阅读程序,选择运行结果
# include
{ int a, b,c;
a=1; b=2; c=3;
if (a>b) if(a>c)
printf(“%d”,a); else printf (“%d”,a); printf (“%d\\n”,c); }
A, 1 2 B, 2 3 C,3 D, 以上都不对
5、 若运行下列程序时,输入以下指定数据,请选择正确的执行结果
# include
while( (s=getchar( ) )!=’\\n’) { switch (s-‘2’) { case 0:
case 1: putchar (s+4);
case 2: putchar(s+4); break; case 3: putchar (s+3);
default: putchar(s+2); break; } }
printf(“\\n”); }
自第一列开始输入:2473〈CR〉
A,6688766 B,66778777 C,668966 D,668977
6、 下面程序的运行结果是
# include
while (i<=15)
if (++i%3!=2) continue; else printf(“%d”,I); printf(“\\n”); }
7、 下面程序的运行结果是
# include
for (j=11; j<=30; j++)
{ if (k= =0) printf(“\\n”); for (i=2; i if (!(j%i) ) break; if (i>=j-1) {printf (“%d\\t”, j); k++; } } } 8、 请选择下列程序的运行结果 # include ++a; } main( ) { int a=5; fun(&a); printf (“%d\\n”, a); } A,5 B, 6 C, 10 D, 11 9、 请选择下列程序的运行结果 # include { static int x=3; x++; return (x); } main( ) { int i, x;