C)char s[10]。s=”BOOK!”。 D) char *s。s=”BOOK!”。 (33)有以下程序 #include
int fun{int x,int y} { if(x==y) return(x)。 else returen((x+y)/2) }
main()
{ int a=4,b=5,c=6。 printf(“%d\\n”,fun(2*a,fun(b,c))) }
程序运行后的输出结果是
A)3 B)6 C)8 D)12
(34)设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是
A)auto B) register C)static D)auto或register
(35)有以下程序 #include
int fun(int *k)
{ b=*k+b。return (b)。} main()
{ int a[10]={1,2,3,4,5,6,7,8},I。
for(i=2。i<4。i++) {b=fun(&a)+b。printf(“%d”,b)。} printf(“\\n”)。 }
程序运行后输出的结果是
A)10 12 B)8 10 C)10 28 D)10 16
(36)有以下程序 #include
#define S(x) PT*x*x。 mian()
{ int a=1, b=2。 printf(“%4.1f\\n”,S(a+b))。} 程序运行后输出的结果是
A)14.0 B)31.5 C)7.5 D)程序有错无输出结果 (37)有以下程序 #include
{ int x,y。} dt[2]={1,2,3,4}。 main()
{ struct ord *p=dt。
6 / 10
printf (“%d,”,++p->x)。 printf(“%d\\n”,++p->y)。 }
程序的运行结果是
A)1,2 B)2,3 C)3,4 D)4,1 (38)设有宏定义:#include IsDIV(k,n) ((k%n==1)?1:0且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&& IsDIV(m,7)为真时所要表达的是
A)判断m是否能被5或者7整除 B)判断m是否能被5和7整除 C)判断m被5或者7整除是否余1 D)判断m被5和7整除是否余1 (39)有以下程序 #include
{ int a=5,b=1,t。 t=(a<<2|b)。 printf(“%d\\n”,t) }
程序运行后的输出结果是
A)21 B)11 C)6 D)1 (40)有以下程序 #include
{ EILE *f。 f=fopen(“filea.txt”,”w”)。 fprintf(f,”abc”)。 fclose(f)。 }
若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt中的内容为 A) helloabc B)abclo C)abc D)abchello
二、填空题(每空2分,共30分)
请将每一个空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
(1)假设一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有 【1】 个元素。
(2)软件测试可分为白盒测试和黑盒测试。基本路径测试属于 【2】 测试。 (3)符合结构化原则的三种基本控制结构是:选择结构、循环结构和 【3】 。 (4)数据库系统的核心是 【4】
(5)在E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是 【5 】框。
7 / 10
(6)表达式(int)((double)(5/2)+2.5)的值是【6】
(7)若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(【7】,x/y)。补充完整,使其输出的计算结果形式为:x/y=11 (8)有以下程序
#include
{ char c1,c2。
scanf(“&c”,&c1)。
while(c1<65||c1>90) scanf(“&c”,&c1)。 c2=c1+32。
printf(“&c, &c\\n”,c1,c2)。 }
程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能)【8】
(9)以下程序运行后的输出结果是【9】 #include
{int k=1,s=0; do{ if{((k&2)!=0)continue; s+=k;k++; }while(k)10); printf(“s=&d/n”,s)。 }
(10)下列程序运行时,若输入labced12df<回车> 输出结果为【10】 #include
{char a =0,ch。
while((ch=getchar())!=’\\n’)
{if(a&2!=0&&(ch>’a’&&ch<=’z’)) ch=ch-‘a’+’A’。 a++。putchar(ch)。 }
printf(“\\n”)。 }
(11)有以下程序,程序执行后,输出结果是【11】 #include
{int a[10]={10,9,8,7,6,5,4,3,2,1},i。 for(i=2。i>=0。i--) fun{&a}。
for(i=0。i<10。i++) printf(“&d”,a)。 printf(“\\n”)。
8 / 10
。 }
(12)请将以下程序中的函数声明语句补充完整 #include
{int x,y,(*p)()。 p=max。
printf(“&d\\n”,&x,&y)。 }
Int max(int a,int b) {return (a>b/a:b)。}
(13)以下程序用来判断指定文件是否能正常打开,请填空 #include
{FILE *fp。
if (((fp=fopen(“test.txt”,”r”))==【13】)) printf(“未能打开文件!\\n”); else
printf(“文件打开成功!\\n”)。 (14)下列程序的运行结果为【14】 #include
{int a。char b[10]。double c。}。 void f (struct A *t)。 main()
{struct A a=(1001,”ZhangDa”,1098,0)。
f(&a)。printf(“&d,&s,&6,if\\n”,a.a,a.b,a.c)。 }
void f(struct A *t)
{strcpy(t->b,”ChangRong”)。 }
(15)以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据,请填空 #include
{int data。 struct node *next。}。 typedef struct node NODETYPE。 main()
{NODETYPE a,b,c,*h,*p。
a. data=10。b.data=20。c.data=30。h=&a。 b. next=&b。b.next=&c。c.next=’\\0’。 p=h。
while(p){printf(“&d”,p->data)。【15】;} }
9 / 10
2009年4月二级C参考答案
选择题:
1~10: DACDC ABABC 11~20:CBDDA CDBCB 21~30:CDABA BACBC 31~40:ADBCC CBDAC
填空题: (1)19 (2)白盒
(3)顺序结构
(4)数据库经管系统(DBMS) (5)菱形 (6)4
(7)\(8)能 (9)s=0
(10)1AbCeDf2dF (11)7777654321
(12)max(int a,int b) (13)NULL
(14)1001,ChangRong,1098.0 (15)p=p—>next
10 / 10
相关推荐: