C语言程序设计_单元测试题四
本单元包含“指针、结构体与共同体、编译预处理”的内容。
一、选择题
1.以下叙述中正确的是________.
A)在程序的一行上可以出现多个有效的预处理命令行
B)使用带参的宏时,参数的类型应与宏定义时的一致
C)宏替换不占用运行时间,只占用编译时间
D)在以下定义中CR是称为“宏名”的标识符
#define CR 045
?
2.以下程序的运行结果是________.
#define MIN(x,y) (x)
main()
{int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
A)10 B)15 C)100 D)150
?
3.若有宏定义如下:
#define X 5
#define Y X+1
#define Z Y*X/2
则执行以下printf语句后,输出结果是_______.
int a;a=Y;
printf("%d\n",Z);
printf("%d\n",--A);
A)7 B)12 C)12 D)7
6 6 5 5
?
4.请读程序:
#include
#define MUL(x,y) (x)*y
main()
{
int a=3,b=4,c;
c=MUL(a++,b++);
printf("%d\n",C);
}
上面程序的输出结果是__________.
A)12 B)15 C)20 D) 16
?
5.对下面程序段:
#define A 3
#define B(A) ((A+1)*A)
...
x=3*(A+B(7));
正确的判断是_________.
A)程序错误,不许嵌套宏定义
B)x=93
C)x=21
D)程序错误,宏定义不许有参数
?
6.以下正确的描述是____________.
A)C语言的预处理功能是指完成宏替换和包含文件的调用
B)预处理指令只能位于C源程序文件的首部
C)凡是C源程序中行首以"#"标识的控制行都是预处理指令
D)C语言的编译预处理就是对源程序进行初步的语法检查
?
7.在"文件包含"预处理语句的使用形式中,当#include后面的文件名用< >(尖括号)括起时,找寻被包含文件的方式是_______.
A)仅仅搜索当前目录
B)仅仅搜索源程序所在目录
C)直接按系统设定的标准方式搜索目录
D)先在源程序所在目录搜索,再按照系统设定的标准方式搜索
8.变量的指针,其含义是指该变量的_________.
A)值 B)地址 C)名 D)一个标志
?
9.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是_____.
A)a,point,*&a B)&*a,&a,*point
C)*&point,*point,&a D)&a,&*point ,point
?
10.若有说明;int *p,m=5,n;以下正确的程序段的是________.
A)p=&n; B)p=&n;
scanf("%d",&p); scanf("%d",*p);
C)scanf("%d",&n); D)p=&n;
*p=n; *p=m;
?
11.下面程序段的运行结果是_________.
char *s="abcde";
s+=2;printf("%d",s);
A)cde B)字符'c' C)字符'c'的地址 D)无确定的输出结果
?
12.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确
执行的赋值语句是________.
A)c=*p1+*p2; B)p2=c C)p1=p2 D)c=*p1*(*p2);
?
13.以下正确的程序段是_________.
A)char str[20]; B)char *p