一、选择题
1.有如下程序
#define N 2
#define M N+1
#define NUM 2*M+1
main()
{ int i;
for(i=1;i<=NUM;i++) printf("%d\n"i) }
该程序中的for循环执行的次数是______。
A) 5 B) 6 C) 7 D) 8
2.下列程序执行后的输出结果是______。
#define MA(x) x*(x-1)
main(){int a=1,b=2;printf("%d\n",MA(1+a+b));}
A) 6 B) 8 C) 10 D) 12
3.以下程序运行后,输出结果是______。
#define PT 5.5
#define S(x) PT*x*x
main()
{ int a=1,b=2;printf("%4.1 f\n",S(a+b)); }
A) 49.5 B) 9.5 C) 22.0 D) 45.0
4.以下叙述中正确的是______。
A) 预处理命令行必须位于源文件的开头
B) 在源文件的一行上可以有多条预处理命令
C) 宏名必须用大写字母表示
D) 宏替换不占用程序的运行时间
5.以下程序运行后,输出结果是______。
fut(int**s,int p[2][3])
{**s=p[1][1];}
main()
{ int a[2][3]={1,3,5,7,9,11}, *p;
p=(int*) malloc (sizeof(int));
fut(&p,a);
printf("% d\n",*p);
}
A) 1 B) 7 C) 9 D) 11
6.以下程序的输出结果是( )。
#finclude "stdlib.h"
fun(int**p,int a[3][3])
{ **p=a[2][2];}
main()
{ int a[3][3]={2,4,6,8,10,12,14,16,18},*p;
p=(int*)manoc(sizeof(int));
fun(&p,a);
printf("%d\n",*p);
}
A) 6 B) 16
C) 12 D) 18
7.动态分配一整型数据长度的空间,使指针p指向该存储空间,则下列空缺处应填入的正确语句是( )。
int*p;
p=______malloc (sizeof(int));
A) int B) int*
C) (*int) D) (int*)
二、填空题
1. 以上程序的输出结果是______。
#define MIN(x,y) (x)<(y)?(x):(y)
main()
{ int a=5,b=2,c=3,d=3,t:
t=MIN(a+b,c+d)*10;printf("%d\n" t);}
2.以下程序的输出结果是______。
#define sqr(x) x*x
main()
{ int a=16,k=2,m=1;
a/=sqr(k+m)/sqr(k+m);printf("%d/n",a);
?
3.设有以下宏定义
#define W 5
#define L (W+2)
则执行赋值语句p=L*2;(p为int 型变量)后,p的值为______。
答案
一、选择题
1.B 2.B 3.B 4.D 5. C 6. D 7. D
二、填空题
1.60 2.2 3.14
¥29.8
¥9.9
¥59.8