1.
对下列代码的描述:
#include "stdio.h"
int main(){
long num=1;
while(num++ > 0) for(long i=num; i >=0; i--)printf("i :=\n \t %ld \n" , i);
return 0;
}
正确的是:
(2分)
A.
程序有编译错误,不能执行
B.
循环条件永为真,循环无限次,程序根本停不下来,打印输出无限行
C.
循环有限次,程序正常结束,打印输出有限行 long有范围,总会结束的
D.
程序运行过程必定会出错(崩溃),结果打印输出有限行
2.
设有程序段
int m=20; while (m=0) m=m++;
则下面描述中正确的是( )。
(2分)
A.
while
循环执行 10 次
B.
循环是无限循环
C. 没想到吧,题目里是“=”,不是“==”
循环体语句一次也不执行
D.
循环体语句执行一次
3.
以下代码,语法正确的是:
(2分)
A.
while ( ) ;
B.
for( ) ;
C. 眼瞎党练练眼力,而且()里得有东西的
for( ; ; ) ;
D.
do { } while( );
4.
以下不正确的赋值或赋初值的方式是( )。
(1分)
A.
char str[]="string";
B.
char str[7]={'s', 't', 'r', 'i', 'n', 'g'};
C. 出题人手残,别考虑中英文标点符号。 str单独出列时是数组首元素地址,不能赋值
char str[10];str="string";
D.
char str[7]={'s', 't', 'r', 'i', 'n', 'g', ’\0’};
5.
对于定义 char str[] = "abc\000def\n"
(注:其中0为数字零),求字符串str的长度len和数组str的大小size,len和size分别是:
(1分)
A.
12 ,13
B.
3 ,11
C. 39天下第一(???) str是“a b c \0 d e f \n \0”,9个字符,3个有效长度
3 ,9
D.
3 ,4
补充: /65 是八进制数, ASCII值是53,对应数字5
6. 字符串数组可以在赋值语句中通过赋值运算符"="对字符数组整体赋值(X)
错法同第四题,退化为指针类型
7.
有以下定义:char x[ ]="abcdefg"; char y[ ]={'a', 'b', 'c', 'd', 'e', 'f', 'g'}; 则正确的叙述为()。
(1分)
A.
数组x和数组y等价
B.
数组x和数组y的长度相同
C. y赋到’g‘就结束了,我犯什么大病,x就比y长
数组x的长度大于数组y的长度
D.
数组x的长度小于数组y的长度
8.
以下名字,不能作为C语言标识符的是:
(2分)
A. (真有你的周强,hehe)
hehe
B.
a$b_c
C.
student-2 减号和取反符号都是用来运算的,不能标识符
D.
$$
E.
monkey~1
9.
要定义一个做减法运算的宏,以下最恰当的是:
(2分)
A.
#define SUB(X,Y) X-Y
B.
#define SUB(X,Y) (X-Y)
C.
#define SUB(X,Y) (X