编译预处理和动态存储分配及答案

2019-04-15 11:35

编译预处理和动态存储分配

一、选择题 (1)有以下程序 main()

{ char p[]={'a', 'b', 'c'}, q[]=\ printf(\ %d\\n\ };

程序运行后的输出结果是 A)4 4 B)3 3 C)3 4 D)4 3

(2)有以下程序

# define f(x) (x*x) main()

{ int i1, i2;

i1=f(8)/f(4) ; i2=f(4+4)/f(2+2) ; printf(\ }

程序运行后的输出结果是 A)64, 28 B)4, 4 C)4, 3 D)64, 64

(3)有以下程序 main()

{ char a[7]=\ i,j; i=sizeof(a); j=strlen(a); printf(\ %d\\n\}

程序运行后的输出结果是 A)2 2 B)7 6 C)7 2 D)6 2

(4)以下叙述中正确的是 A)预处理命令行必须位于源文件的开头

B)在源文件的一行上可以有多条预处理命令 C)宏名必须用大写字母表示 D)宏替换不占用程序的运行时间

(5) 有以下程序 main( )

{ char a[]=”abcdefg”,b[10]=”abcdefg”; printf(“%d %d\\n”,sizeof(A) ,sizeof(B) ); }

执行后输出结果是 A) 7 7 B) 8 8 C) 8 10 D) 10 10

(6) 有以下程序

#define f(x) x*x main( ) { int i;

i=f(4+4)/f(2+2); printf(“%d\\n”,i); }

执行后输出结果是 A) 28 B) 22 C) 16 D) 4

(7) 有以下程序 #include #define F(X,Y) (X)*(Y) main ()

{ int a=3, b=4;

printf(\}

程序运行后的输出结果是 A) 12 B) 15 C) 16 D) 20

(8) 有以下程序

main()

{ char s[]=\

printf(\}

执行后输出结果是

A) 赋初值的字符串有错 B) 6,7 C) 5,6 D) 6,6

(9) 有以下程序

main(int arge,char *argv[]) { int n,i=0; while(arv[1][i]!='\\0' { n=fun(); i++;} printf(%d\\n\}

int fun()

{ static int s=0; s+=1; return s; }

假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行 exam 123<回车> 则运行结果为

(10) 有以下程序 main()

{ char a[ ]={‘a’,‘b’,‘c’,‘d’, ‘e’, ‘f’, ‘g’,‘h’,‘\\0’}; inti=sizeof(a); j=strlen(a); printf(“%d,%d\\b”i,j); }

程序运行后的输出结果是 A)9,9 B)8,9 C)1,8 D)9,8

(11) 程序中头文件typel.h 的内容是: #define N 5 #define M1 N*3 程序如下:

i,j; #define “type1.h” #define M2 N*2 main() { int i;

i=M1+M2; printf(“%d\\n”,i); }

程序编译后运行的输出结果是: A) 10 B) 20 C) 25 D) 30

(12) 有以下程序 #include main() { char *p,*q;

p=(char*)malloc(sizeof(char)*20); q=p; scanf(“%s%s”,p,q); printf(“%s%s\\n”,p,q); }

若从键盘输入:abc def<回车>,则输出结果是: A) def def B) abc def C) abc d D) d d

(13) 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是 A) p=2*(int*)malloc(sizeof(int)); B) p=(int*)malloc(2*sizeof(int)); C) p=(int*)malloc(2*2);

D) p=(int*)calloc(2,sizeof(int));

(14) 以下程序的输出结果是 main()

{ char st[20]= “hello\\0\\t\\\\\\”; printf(%d %d \\n”,strlen(st),sizeof(st)); }

A) 9 9 B) 5 20

C) 13 20 D) 20 20

(15) 以下程序的输出结果是

amovep(int p, int (a)[3],int n) { int i, j; for( i=0;i<;i++)

for(j=0;j

{ int *p,a[3][3]={{1,3,5},{2,4,6}}; p=(int *)malloc(100); amovep(p,a,3);

printf(“%d %d \\n”,p[2],p[5]);free(p); }

A) 56

B) 25 C) 34 D) 程序错误

(16) 以下程序的输出结果是

#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) 19 B) 17 C) 15 D) 12

(17) 以下程序的输出结果是 A) 16 B) 2

C) 9 D) 1

#define SQR(X) X*X main()

{ int a=16, k=2, m=1; a/=SQR(k+m)/SQR(k+m); printf(“d\\n”,a); }

(18) 若定义了以下函数: void f(……) {……


编译预处理和动态存储分配及答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高考语文第一轮复习 各题型答题技巧说明汇总[含答案]

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: