main() { int a,m=12,n=100; a=M(n,m);
printf(\\n\); } A)2 B)3 C)4 D)5 正确答案: C
9.9 已知#define M 2;的宏定义,执行语 句k=M*5;后,k的值是 A)10 B)5 C)2
D)以上答案都不对 正确答案: D
9.10 以下关于宏替换叙述中,错误的是 A)宏替换占用编译时间
B)替换文本中可以包含已定义过的宏名 C)宏名可以由+号组成 D)宏替换只能是字符替换
正确答案: C
10.1 若有下面的程序段:
char s[]=\则 下列叙述正确的是 A)s和p完全相同。
B)数组s中的内容和指针变量p中的内容相 等
C)s数组长度和p所指向的字符串长度相等 D)*p与s[0]相等 正确答案: D
10.2 若有语句int *point,a=4;和
point=&a;下面均代表地址的一组选项是 A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point,point 正确答案: D 10.4 已定义以下函数 fun(char *p2, char *p1) { while((*p2=*p1)!=’\0’) {p1++;p2++;} }
函数的功能是
A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2 C)对p1和p2两个指针所指字符串进行比较 D)检查p1和p2两个指针所指字符串中是否 有’\0’ 正确答案: A
10.7 设有定义:int n=0,*p=&n,**q=&p, 则下列选项中正确的赋值语句是 A)p=1; B)*q=2; C)q=p; D)*p=5; 正确答案: D
10.9 假定以下程序经编译和连接后生成可 执行文件PROG.EXE,如果在此可执行文件 所在目彔的DOS提示符下键入:
PROG ABCDEFGH IJKL<回车>,则输出结果 为
main( int argc, char *argv[]) { while(--argc>0)
printf(\[argc]);
printf(\\n\); }
A)ABCDEFG B)IJHL
C)ABCDEFGHIJKL D)IJKLABCDEFGH 正确答案: D
10.11 下面程序段的运行结果是 char a[]=\p=a;
while(*p!=′u′){printf(\32);p++;} A)LANGUAGE B)language C)LAN D)langUAGE 正确答案: C
10.12 有以下语句,则对a数组元素的引用 不正确的是(0≤i≤9) int a[10]
={0,1,2,3,4,5,6,7,8,9},*p=a; A)a[p-a]
B)*(&a[i]) C)p[i] D)*(*(a+i)) 正确答案: D
10.13 函数fun的返回值是 fun(char *a,char *b) { int num=0,n=0;
while(*(a+num)!=′\0′) num++; while(b[n]) { *(a+num)=b[n]; num++;n++; } return num; }
A)字符串a的长度 B)字符串b的长度 C)字符串a和b的长度之差 D)字符串a 和b的长度之和 正确答案: D
10.15 下面判断正确的是 A)char *a=\等价于 char *a;*a=\
B)char str[5]={\等价于char str[]={\