预处理命令行
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
预处理命令行都必须以【1】号开始.
答案:
======(答案1)======
#
设有以下宏定义
# define WIDTH 80
# define LENGTH (WIDTH +40)
则执行赋值语句:v= LENGTH*20;(v为int型变量)后,v的值是【1】. 答案:
======(答案1)======
2400
设有以下宏定义
# define WIDTH 80
# define LENGTH WIDTH +40
则执行赋值语句:v= LENGTH*20;(v为int型变量)后,v的值是【1】.80+40*20
答案:
======(答案1)======
880
以下程序的运行结果是【1】.
#include
#define MIN(x,y) (x)
main()
{ inti=10,j=15,k ;
k=10*MIN(i,j);
printf("%d\n",k);
}
答案:
======(答案1)======
100
下列程序运行结果为:
#define P 3
#define S(a) P*a*a
main()
{intar;
ar=S(3+5);//3*3+5*3+5
printf("\n%d",ar);
}
#define宏都是直接替换的,不会计算后再替换。s(3+5) = p*3+5*3+5 = 9+15+5 =29
若想计算后在替换,需要加上括号:
#define S(a) P*(a)*(a)
若有宏定义如下:
#define X 5
#define Y X+1
#define Z Y*X/2
则执行以下printf语句后,输出结果是(). inta;a=Y;
printf("%d ",Z);
printf("%d\n",--a);
A) 7 6
B) 12 6
C) 12 5
D) 7 5
答案:D
请读程序:
#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 答案:A 有如下程序 #define N 2 #define M N+1 #define NUM 2*M+1 main( ) { inti; for(i=1;i<=NUM;i++) printf("%d\n",i); // } 该程序中的for循环执行的次数是(). A) 5 B) 6 C) 7 D) 8 答案:B #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() {int I; for(I=1;I<=NUM;I++) printf(“%d\n”,I); } NUM (M+1)*M/2=(2+1+1)*2+1/2=8 有以下程序 #define f(x) x*x main( ) { inti; i=f(4+4)/f(2+2); printf("%d\n",i); } 执行后输出结果是()//.i=4+4*4+4/2+2*2+2=28 A) 28 B) 22 C) 16 D) 4 答案:A #include "stdio.h" main() { chara,b; for(a='0',b='9';a