for(i=0;i printf(“%d”,s.a[i]);
}
程序运行后的输出结果是(A)
A)2,4,3,9,12,12,11,11,18,9,
B)3,4,2,7,9,8,6,5,11,10,
C)2,3,1,6,8,7,5,4,10,9,
D)1,2,3,6,8,7,5,4,10,9,
(47) 有以下程序段
typedef struct node { int data; struct node *next; } *NODE;
NODE p;
以下叙述正确的是(C)
A)p是指向struct node结构变量的指针的指针
B)NODE p;语句出错
C)p是指向struct node结构变量的指针
D)p是struct node结构变量
(48)有以下程序
main()
{unsigned char a=2,b=4,c=5,d;
d=a|b; d&=c; printf(“%d\n”,d); }
程序运行后的输出结果是(B)
A)3
B)4
C)5
D)6
(49)有以下程序
#include
main()
{FILE *fp; int k,n,a[6]={1,2,3,4,5,6};
fp=fopen(“d2.dat”,”w”);
fprintf(fp,”%d%d\n”,a[0],a[1],a[2]); fprintf(fp, “%d%d%d \n”,a[3],a[4],a[5]);
fclose(fp);
fp=fopen(“d2.dat”,”r”);
fscanf(fp, “%d%d”,&k,&n); printf(“%d%d\n”,k,n);
fclose(fp);
}
程序运行后的输出结果是(D)
A)1 2
B)1 4
C)123 4
D) 123 456
(50)有以下程序
#include
main ()
{FILE *fp; int i,a[6]={1,2,3,4,5,6k};
fp=fopen(“d3.dat”,”w+b”);
fwrite(a,sizeof(int),6,fp);
fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/
fread(a,sizeof(int),3,fp); fclose(fp);
for(i=0;i<6;i++) printf(“%d,”,a[i]);
}
程序运行后的输出结果是(A)
A)4,5,6,4,5,6,
B)1,2,3,4,5,6,
C)4,5,6,1,2,3,
D)6,5,4,3,2,1,
二.填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡[1]至[20]序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须写完整.
(1) 在深度为7的满二叉树中,度为2的结点个数为___63____。
(2) 软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于__黑箱(或黑盒) 测试。
(3) 在数据库系统中,实现各种数据管理功能的核心软件称为 __数据库管理系统__。
(4) 软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于 开发_____阶段。
(5)在结构化分析使用的数据流图(DFD)中,利用数据字典 对其中的图形元素进行确切解释。
(6)执行以下程序后的输出结果是 a=14 。
main()
{int a=10;
a=(3*5,a+4); printf(“a=%d\n”,a);
}
(7) 当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行 0 次。
#include
main()
{char ch;
While((ch=getchar())==’0’) printf(“#”);
}
(8) (8)以下程序的运行结果是 m=4 k=4 i=5 k=5 。
int k=0;
void fun(int m)
{ m+=k; k+=m; printf(“m=%d\n k=%d ”,m,k++);}
main()
{ int i=4;
fun(i++); printf(“i=%d k=%d\n”,i,k);
}
(9) (9)以下程序的运行结果是 #& 。
main()
{int a=2,b=7,c=5;
switch(a>0)
{case 1:switch(b<0)
{case 1:switch(“@”); break;
Case 2: printf(“!”); break;
}
case 0: switch(c==5)
{ case 0: printf(“*”); break;
case 1: printf(“#”); break;
case 2: printf(“$”); break;
}
default : printf(“&”);
}
printf(“\n”);
}
(10)以下程序的输出结果是 9
# include
main()
{ printf(“%d\n”,strlen(“IBM\n012\1\\”));
}
(11)已定义char ch=”$”;int i=1,j;执行j=!ch&&i++以后,i的值为1
(12)以下程序的输出结果是 5 4
# include
main()
{ char a[]={‘\1’,’\2’,’\3’,’\4’,’\0’};
printf(“%d %d\n”,sizeof(a),srelen(a));
}
(13)设有定义语句:int a[][3]={{0},{1},{2}};,则数组元素a[1][2]的值为 0
(14)以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。
main()
{int x[10],a[9],I;
for (i=0;i<10;i++)
scanf(“%d”,&x[i]);
for( i=1 ;i<10;i++)
a[i-1]=x[i]+ x[i-1] ;
for(i=0;i<9;i++)
printf(“%d”,a[i]);
printf(“\n”);
(15) 以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上,请填空:
main()
{int x,y,z,max,*px,*py,*pz,*pmax;
scanf(“%d%d%d”,&x,&y,&z);
px=&x;
py=&y;
pz=&z;
pmax=&max;
*pmax=*px(或*pmax=x) ;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf(“max=%d\n”,max);
}
(16)以下程序的输出结果是 10
int fun(int*x,int n)
{if(n==0)
return x[0];
else return x[0]+fun(x+1,n-1);
}
main()
{int a[]={1,2,3,4,5,6,7};
printf(“%d\n”,fun(a,3));
}
(17)以下程序的输出结果是 35
# include
main()
{char *s1,*s2,m;
s1=s2=(char*)malloc(sizeof(char));
*s1=15;
*s2=20;
m=*s1+*s2;
printf(“%d\n”,m);
}
(18)设有说明
struct DATE{int year;int month; int day;};
请写出一条定义语句,该语句定义d为上述结构体变量,并同时为其成员year、month、day 依次赋初值2006、10、1: struct DATA d={2006,10,1};
(19) 设有定义:FILE *fw;,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。
fw=fopen(“readme.txt”, "a" )
[NextPage]
2007年4月全国计算机等级考试二级C语言笔试试题答案
一、选择题:
1-5 24134
6-10 31321
11-15 34231
16-20 43113
21-25 43421
26-30 14241
31-35 22412
36-40 23232
41-45 42411
46-50 13241
二、填空题:
1. 63
2,墨盒
3.DBNS
4,开发
5,数据 字典
6,a-14
7,0
8,无答案
9,# 与号
10,9
11,1
12,5_4
13,13 0
14,i=1
15,X[i-1]
16,无答案
17,10
18,40
19,无答案
20,"20a"
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|