2013年计算机二级考试C语言笔试题及答案9

全国等级考试资料网 2019-01-23 14:14:48 285

(41)有以下程序

#include 

int a=1;

int f(int c)

{static int a=2;

c=c+1;

return (a++)+c;}

main()

{ int i,k=0;

for(i=0;i<2;i++){int a=3;k+=f(a);}

k+=a;

printf(“%d ”,k);

}

程序运行结果是

A) 14 B) 15

C) 16 D) 17

(42)有以下程序

#include 

void fun(int n,int *p)

{ int f1,f2;

if(n==1||n==2) *p=1;

else

{ fun(n-1,&f1); fun(n-2,&f2);

*p=f1+f2;

}

}

main()

{ int s;

fun(3,&s); printf("%d ",s);

}

程序的运行结果是

A)2 B)3 C)4 D)5

(43)若程序中有宏定义行:#define N 100 则以下叙述中正确的是

A)宏定义行中定义了标识符N的值为整数100

B)在编译程序对C源程序进行预处理时用100替换标识符N

C) 对C源程序进行编译时用100替换标识符N

D)在运行时用100替换标识符N

(44)以下关于typedef的叙述错误的是

A)用typedef可以增加新类型

B)typedef只是将已存在的类型用一个新的名字来代表

C)用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D)用typedef为类型说明一个新名,通常可以增加程序的可读性

(45)有以下程序

#include

struct tt 

{int x;struct tt *y;} *p;

struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};

main()

{ int i;

p=a;

for(i=1;i<=2;i++) {printf("%d,",p->x); p=p->y;}

}

程序的运行结果是

A)20,30, B)30,17 C)15,30, D)20,15,

41-45 AABAD

相关资料

相关阅读