一、选择题1.以下叙述正确的是( ):A)在C程序中,main函数必须位于程序的最前面B) C程序的每行只能写一条语句C) C语言使用库函数实现输入输出操作D)注释中的拼写错误会影响编译结果2、以下说法中正确的是()A) C语言程序总是从第一个的函数开始执行B) C语言程序总是从main()函数开始执行C)在C语言程序中,要调用的函数必须在main()函数中定义D)C语言程序中的main()函数必须放在程序的开始部分3、下列选项种说法正确的是( )A)函数由声明部分和执行部分两部分组成B)语言中main函数一定在程序的开始部分C)C语言程序总是从第一个定义的函数开始执行D)C程序的每行中只能写一条语句4、设有说明:int a;float b; char c; double d; 则表达式1.3*a+2*b*c+d*(int)2.6 值的类型为( )。
A)doubleB) char C) floatD) int5、C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字和下划线中任一种字符6、以下不正确的C语言标识符是( )。
A) ABC B) abc C)a_bc D) void7、下列运算符中优先级最高的是( )A)< B)+ C)&& D)!=8、以下选项中属于C语言中合法关键字的是( )A)Float B)abc C)int D)CASE9、若x、i、j和k都是int型变量,计算下面表达式后,x的值为( ) x=(i=4,j=16,k=32)A)4 B)16 C)32 D)5210、在C语言中,要求数据必须是整型的运算符是( )A)/ B)+ + C)!=D) %11、若整型变量x的值为8,则下列表达式中值为1的表达式是A)x+=x-=x B) x%=x-1 C) x%=x%=3 D) x/=x+x12、若w=1,x=2,y=3,z=4,则条件表达式“w > x? w : y< z ? y : z”的值是( )A)4 B)3 C)2 D)113、有以下程序,程序运行后的输出结果是。
main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k);}A)1 23B)2 3 4 C)2 2 3 D)2 3 314、下面程序的输出结果是main(){intx=2,y=-1,z=2;if(x<y)if(y<0)z=0;else z=-1+x;printf(“%d\n”z);}A) 3 B) 2 C) 1 D)015、执行下列语句后,a的值为( )main( ){int a=5;printf(“%d\n”,(a=3*5,a*4,a+5));}A) 65 B)20C) 15 D)1016、下列程序段中,有错误的行是()列定行号int x=0,y=10;2 switch(x)3 {case3:4 case –1:y=y-2;break;5 case y+1:x+=5;6 default:printf(“%d,%d”,x,y);}A) 4 B) 3 C)5D)无错误17、若i为整型变量,则以下循环执行次数是( )。
#include"stdio.h"void main(){ int i;for(i=2;i==0; )printf("%d",i--);}A) 无限次B)0次C)1次D) 2 次18、若有以下定义,double a[10];则a数组元素下标的上、下限分别为()A) 1,10 B) 0,9 C) 0,10 D)1,919、若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是() A) 调用可以作为独立的语句存在 B) 调用可以作为一个函数的实参C) 调用可以出现在表达式中 D) 调用可以作为一个函数的形参20、定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i<3;i++) printf("%d",x[i][2-i]);输出结果是 ( )A) 1 5 9 B) 1 4 7 C) 3 5 7D) 3 6 921、以下不能正确定义二维数组的选项是A) inta[2][2]={{1},{2}}; B) int a[][2]={1,2,3,4};C) int a[2][2]={{1},2,3}; D)int a[2][]={{1,2},{3,4}};22、若有以下定义:int a[5]={10,20,30,40,50},*p=a;则执行++(*p)后(*p)++的值是A) 10 B) 11 C) 20D)2123、函数的嵌套调用是指A) 直接调用本函数B)在定义函数时,又定义另一个函数C) 间接调用本函数D) 被调用函数又调用另一个函数24、下列说法正确的是A)被调用函数必须先调用,后声明B) 用户自定义函数的类型若未指出,则系统默认为voidC) 全局变量不能与局部变量同名D)实参可以是任意表达式25、以下描述正确的是()A)continue语句的作用,是结束整个循环语句的执行B)只能在循环体内和switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)多层循环嵌套中不可以使用break语句26、若有说明语句:“int a[3][4];”,则对数组元素的正确引用格式是( )A)a[2][4] B) a[1,3] C) a[1+1][0] D) a(2)(1)27、若有说明:“int a[3][4]={0};”,则下面正确的叙述是( )A)只有元素a[0][0]可得到初值0B)此数组说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值028、定义数组a和b的语句是:“char a[ ]=“ABCDEF”; char b[ ]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};”则以下叙述正确的是( )A)a和b数组完全相同 B)a与b数组元素个数相同C)a和b中都存放字符串 D)a数组比b数组元素个数多29、语句“int (*ptr) ( );”的含义是( )A)ptr是指向一维数组的指针变量B)ptr是指向int型数据的指针变量C)ptr是指向函数的指针,该函数返回一个int型数据D)ptr是一个函数名,该函数返回值是指向int型数据的指针30、若有定义:“int *p[4];”,则标识符p 是( )A)一个指向整型变量的指针B)一个指针数组名C)一个指针,它指向一个含有四个整型元素的一维数组D)无效的数组名31、在C语言中()A) 函数定义可以嵌套,但函数调用不可以嵌套B) 函数定义不可以嵌套,但函数调用可以嵌套C)函数定义和调用都可以嵌套D) 函数定义和条用都不能嵌套32、下面程序的输出结果是()#include <stdio.h>void main(){ int i,j,x=0;for(i=0;i<=2;i++){x++;for(j=0;j<=2;j++){ if(j%2)continue;x ++;}x ++;}printf("%d\n",x); }A)4B)6 C)8 D)1233、执行下列语句后,m的值为( )int m=1,x=2,y=3,z=4;m=m<x?m:x;m=m<y?m:y;m=m<z?m:z:A) 1 B) 4 C) 2D) 334、下列程序段是实现给数组所有元素赋值操作,应在下划线上填入的是( ) inta[10];for(i=0;i<=9;i++) scanf(“%d”, );A) a B) &a[i] C) a[i]D) &a[0]35、下列叙述正确的是()A) do-while语句构成的循环不能用其它语句构成的循环来代替B) do-while语句构成的循环只能用break语句退出C)用do-while语句构成的循环,在while后的表达式为非零时结束循环D)用do-while语句构成的循环,在while后的表达式为零时结束循环36、下列程序的输出结果为()#include “stdio.h”main(){ int a,b;for(a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b+=5;}printf(“%d, %d”, a, b);}A)8,20 B) 8,22C) 7,20 D) 7,2237、设int a[5]={10,15,20,25,30};int *p; p=a+2;则表达式++*p的值为()A) 20 B)15 C) 16 D) 2138、设w=1,x=2,y=3,z=4,a=5,b=6,则执行一下语句后A)b的值分别为()(a=w>x)&&(b=y>z);A) 0和0 B)5和0 C) 0和6 D) 5和639、下列语句的输出为( )int x=-1;printf(“%d,%u,%o”,x,x,x);A) –1,-1,-1 B) –1,32767,-177777C) –1,32768,177777 D) –1,65535,17777740、下列函数调用语句中的实参个数为()fun((a+b,x,y),fun(x,(x+z)));A) 2 B) 3 C) 4 D) 541、设有数组定义:char array[]=”china”;则数组array所占的内存空间为( )A) 4个字节B) 5个字节C) 6个字节 D) 7个字节42、以下程序段的运行结果是( )。
char c[5]={ ‘a’, ’b’ , ‘\0‘, ‘c’, ‘\0’ } ;printf( “%s”, c );A)’a’’b’B)abC)abc D)a b43、若C程序中出现死循则违背了算法的( )A)有效性 B)确定性C)有穷性 D)有一个或多个输出44、设 int a=20;则执行表达式:a/=a+a后,a的值是( )A)0 B)1 C)20D)4045、int x,y,z,m=5,n=5;则执行下面语句后的z值是( )x=(--m==n++)?--m:++n;y=m++;z=n;A)5B)10 C)6 D)746、执行下列程序段后,i的正确结果是( )inti=10;switch(i){ case 9: i+=1;case10: i++;case 11: ++i;default:i+=i; }printf( "%d", i );A)10 B)11 C)12 D)2447、若有定义:int a[10];。