一、单项选择题
1、以下说法中正确的是(C)(2分)
A、C语言程序总是从第一个的函数开始执行
B、在C语言程序中,要调用的函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行
D、C语言程序中的main()函数必须放在程序的开始部分
2、以下选项中,不合法常量的是 (B)(2分)
A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0
3、C语言中最简单的数据类型包括(B)(2分)
A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型
4、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是 (D)(2分)
A、 10>=a>=0 B、 a>=0 and a<=10 C、 a>=0||a<=10 D、 a>=0&&a<=10
5、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)
A、 6.500000 B、 6 C、 5.500000 D、 6.000000
6、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 (B)(2分)
A、 INPUT x、y、z; B、 scanf(\
1
C、 scanf(\、 read(\
7、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分)
A、 把x和y按从大到小排列 B、 把x和y按从小到大排列 C、 无确定结果 D、 交换x和y中的值
8、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)
A、 0 B、 0.5 C、 1 D、 2
9、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是( B )。 (2分)
A、A B、a C、Z D、z
10、执行程序段(注意,为什么选D)
int a=-1,b=4,k; k=(++a<0)&&!(b--<=0);
printf(“%d %d %d\\n”,k,a,b);后的输出结果是( D ) 。(2分) A、1 0 4 B、1 0 3 C、0 0 3 D、0 0 4
11、设 int x=1, y=1; 表达式(!x||y--)的值是( B )。(2分)
A、0 B、1 C、2 D、-1
12、程序段
int x=3; do {
printf(“%d”,x-=2);
2
}while (!(--x));的输出结果是( C )。(2分) A、1 B、3 0 C、1 -2 D、死循环
13、程序段
for (i=2; i==0; )
printf(“%d” , i--) ; 的循环次数是( B )。(2分)
A、无限次 B、0次 C、1次 D、2次
14、语句int k=1; while (k++<10);执行后,变量k的值是( B )。(2分)
A、10 B、11 C、9 D、无限循环,值不定 15、程序
int i,sum;
for(i=1;i<=3;sum++) sum+=i; printf(“%d\\n”,sum);
的执行结果是( C )。(2分)
A、6 B、3 C、不确定 D、0
17、对两个字符数组a和b进行初始化
char a[ ]=\
char b[ ]={'A','B','C','D','E','F'}; 则以下叙述正确的是( D )。 (2分)
A、a与b数组完全相同 B、a与b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长
18、以下叙述中正确的是(B)(2分)
A、C语言的源程序不必通过编译就可以直接运行
B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令
3
C、C源程序经编译形成的二进制代码可以直接运行 D、C语言中的函数不可以单独进行编译
19、以下叙述中正确的是 (C)(2分)
A、用C语言实现的算法必须要有输入和输出操作 B、用C语言实现的算法可以没有输出但必须要有输入 C、用C程序实现的算法可以没有输入但必须要有输出 D、用C程序实现的算法可以既没有输入也没有输出
20、C语言中, 下列字符常量合法的是(A)(2分) A、'\\t' B、\、65 D、A
22、设x,y为浮点型变量,合法赋值语句是(A)(2分)
A、x=8+y; B、(float)3 ; C、y=(x%2)/10 ; D、*x=10;
23、为了避免在嵌套的条件语句if――else中产生二义性,c语言规定:else子句总是与( B )配对。 (2分)
A、缩排位置相同的if B、其之前最近的if
C、其之后最近的if D、同一行上的if
24、c语言中( D )。(2分)
A、不能使用do-while语句构成的循环
B、do-while语句构成的循环必须用break语句才能退出
C、do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环 D、do—while语句构成的循环,当while语句中的表达式值为零时结束循环
25、以下正确的定义语句是( D )。(2分)
A、int a[1][4]={1,2,3,4,5}; B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0};
4
26、在C语言中,引用数组元素时,其数组下标的数据类型允许是( C )。(2分) A、整型常量 B、整型表达式
C、整型常量或整型表达式 D、任何类型的表达式
27、若有说明:int a[][2]={1,2,3,4,5,6,7};则a数组第一维的大小是( C )。(2分)
A、2 B、3 C、4 D、无确定值
28、若有以下类型说明语句:char w; int x; float y; double z;则表达式 w*x+z-y 的结果类型是(D)(2分)
A、float B、char C、int D、double
29、执行下列语句int x=10,y=3;printf(\后的输出是(C)(2分)
A、 0 B、 1 C、 3 D、 不确定的值
30、以下错误的if语句是( C )。(2分)
A、 if(x>y) z=x; B、 if(x==y) z=0;
C、 if(x!=y) printf(\ D、 if(x 31、以下对一维整形数组a进行正确初始化的语句是( C )。(2分) A、int a[10]=(0,0,0,0,0); B、int a[10]={}; C、int a[]={0}; D、int a[10]={10*1}; 32、若有说明:int a[3][4];则对a数组元素的非法引用是( D )。(2分) A、a[0][2*1] B、a[1][3] C、a[4-2][0] D、a[0][4] 5