C语⾳编译预处理练习题
⼀、答案判断题:×√√××××√
⼆、选择题:
ADCBA DCDBB DDACB DDCC
⼀、判断题
1. C语⾔预编译命令#include与#include"myfile.h"的功能是完全⼀样的。()
2. 宏定义不是C语句,不必在⾏末加分号。()
3. C语⾔的编译系统对宏命令的处理是在对源程序中其他成份正式编译之前进⾏的。()
4. 若有宏定义:#define M(x,y,z)x*y+z,则宏引⽤M(2+3,4+5,6+7)通过宏展开后的表达式应为(2+3)*(4+5)+6+7。
5. #define与typedef的作⽤完全相同。()
6. 宏定义后⼀定要有分号。()printf是不是c语句
7. C语⾔的编译系统对宏命令的处理是在程序连接时进⾏的。()
8. 宏定义不是C语句,不必在⾏末加分号。()
⼆、单选题
1. 如果程序中有#include"⽂件名"则意味着()。
(A)将"⽂件名"所指的该⽂件的全部内容,复制插⼊到此命令⾏处。
(B)指定标准输⼊输出
(C)宏定义⼀个函数
(D)条件编译说明
2. 以下有关宏替换的叙述不正确的是()。
(A)宏替换不占⽤运⾏时间(B)宏名⽆类型
(C)宏替换只是字符串替换;(D)宏替换是在运⾏时进⾏的
3. 如果有#define f(x,y)x+y及int a=2,b=3;则执⾏printf("%d",f(a,b)*f(a,b))后的值为()。
(A)36(B)25(C)11(D)13
4. 若#include后⾯的⽂件名⽤双引号括起来,寻被包含⽂件的⽅式是()。
A)先按系统设定的标准⽅式查,再在当前⽬录中查
B)先在当前⽬录中查,再按系统设定的标准⽅式查
C)只在当前⽬录中查
D)只按系统设定的标准⽅式查
5. 若程序中有#include"⽂件名",则意味着()。
A)将所指⽂件的全部内容,在次命令⾏出现的这⼀点上,插⼊原程序
B)指定标准输⼊输出C)宏定义⼀个函数D)条件编译说明
6. 在宏定义#define PI 3.1415926中,⽤宏名PI代替⼀个()
A)单精度数B)双精度数C)常量D)字符串
7. 执⾏下⾯的程序
#define SQR(X)X*X
main()
{int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);}
后,a的值是()。
(A)10(B)9(C)1(D)0
8. 下⾯程序的输出结果是()
#include"stdio.h"
#define SUB(x,y)(x)*y
main()
{int a=3,b=4;printf("%d\n",SUB(a,b+1));} A)12B)16C)15D)13 9. 以下程序运⾏后,输出结果是()。
#include"stdio.h"
#define PT 5.5
#define s(x)pt*x*x
main( )
{int a=1,b=2;
print(“%4.lf\n”,S(a+b));}
A)49.5B)9.5C)22.0D)45.0
10. 下列程序执⾏后的输出结果是()。
#define MA(x)x*(x-1)
main()
{int a=1,b=2;
printf("%d\n",MA(1+a+b));}
A)6B)8C)10D)12
11. 以下有关宏替换的叙述不正确的是()。
A)宏替换不占⽤运⾏时间
B)宏名⽆类型
C)宏替换只是字符串替换
D)宏替换是在运⾏是进⾏的
12. 以下描述中,正确的是()。
A)预处理是指完成宏替换和⽂件包含中指定的⽂件的调⽤
B)预处理命令只能位于C源程序的开始
C)凡是以"#"标识的控制⾏都是预处理命令
D)预处理是在编译之前处理
13. 以下程序的输出结果为()。
#define MIN(x,y)(x)<(y)?(x):(y)
main()
{int i,j,k;
i=10;j=15;
k=10*MIN(i,j);
printf("%d\n",k);}
A)15B)100C)10D)150
14. 如果有#define f(x,y)x+y及int a=2,b=3;则语句:printf("%d",f(a,b)*f(a,b);的执⾏结果是()
A)36B)25C)11D)13
15. 执⾏下⾯的程序后,a的值是()。
#define SQR(X)X*X
main()
{int a=10,k=2,m=3;
a/=SQR(m)/SQR(k);
printf(“%d、n”a);}
A)10B)1C)5D)0
16. 设有以下宏定义:
#define N 3
#define Y(n)(N+1*n)
则执⾏语句:z=2*(N*Y(5+1));后,z的值为( )。
A)30B)72C)48D)54
17. 以下程序的输出结果是()。
#define M(x,y,z)x*y+z
main()
{int a=1,b=2,c=3;
printf("%d\n",M(a+b,b+c,c+a));}
A)19B)17C)15D)12
18. 以下程序的执⾏结果为()。
#inlcude
#define N2
#define M N+1
#define NUM(M+1)*M/2
main()
{pirntf("%d",NUM);}
A)5B)6C)8D)9
19. 以下程序中,printf语句执⾏的次数是()。#define N2
#define M N+1
#define NUM2*M+1
main()
{int i;
for(i=0;i<=NUM;i++)
printf("%d\n",i);}
A)5B)6C)7D)8
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论