推荐给好友 上一篇:1999年4月全国计算机等级考试二级C语言试卷(含答案)   下一篇:2000年4月全国计算机等级考试二级C语言试卷(含答案)

1999年9月全国计算机等级考试二级C语言试卷(含答案)

一、选择题((1)-(40)每个选项1分,(41)-(50)每个选项2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应的位置上,答在试卷上不得分。
(1)十进制数1385转换成十六进制数为
A)568B)569C)D85D)D55
(2)下列叙述中正确的是
A)病毒只能传染给可执行文件
B)软件是指存储在软盘中的程序
C)每次启动的过程之所以相同,是因为RAM中的所有信息在关机后不会丢失
D)硬盘虽然装在主机箱内,但它属于外存
(3)一个字长的二进制位数是
A)8B)16C)32D)随系统而不同的
(4)CPU主要由运算器与控制器组成,下列说法中正确的是
A)运算器主要负责分析指令,并根据指令要求作相应的运算
B)控制器主要完成对数据的运算,包括算术运算和逻辑运算
C)控制器主要负责分析指令,并根据指令要求作相应的运算
D)控制器直接控制系统的输入与输出操作
(5)下列叙述中正确的是
A)将数字信号变换成便于在模拟通信线路中传输的信号称为调制
B)以原封不动的形式将来自终端的信息送入通信线路称为调制解调
C)在网络中,一种传输介质不能传送多路信号
D)在局域网中,只能共享软件资源,而不能共享硬件资源
(6)各种网络传输介质
A)具有相同的传输速率和相同的传输距离
B)具有不同的传输速率和不同的传输距离
C)具有相同的传输速率和不同的传输距离
D)具有不同的传输速率和相同的传输距离
(7)多媒体系统的两大组成部分是
A)多媒体功能卡和多媒体主机
B)多媒体通信软件和多媒体开发工具
C)多媒体输入设备和多媒体输出设备
D)多媒体硬件系统和多媒体软件系统
(8)按通信距离划分,网络可以分为局域网和广域网。下列网络中属于局域网的是
A)InternetB)CERNETC)NovellD)CHINANET
(9)在Windows中,启动应用程序的正确方法是
A)用鼠标双击该应用程序图标B)将该应用程序窗口最小化成图标
C)将该应用程序窗口还原D)将鼠标指向该应用程序图标
(10)在Windows中,终止应用程序执行的正确方法是
A)用鼠标双击应用程序窗口左上角的控制菜单框
B)将应用程序窗口最小化成图标
C)用鼠标双击应用程序窗口右上角的还原按钮
D)用鼠标双击应用程序窗口中的标题栏
(11)DOS控制键Ctrl+Alt+Del的功能为
A)删除一个字符并退格B)暂停标准输出设备的输出
C)热启动D)终止当前操作
(12)设当前盘为C盘,为了将A盘当前目录中所有扩展名为.PAS的文件改成扩展名为.P,应使用的DOS命令为
A)RENA:*.PASA:*.PB)RENA:*.PAS*.P
B)RENA:.PASA:.PD)RENA:.PAS.P
(13)设当前盘为C盘,其根目录下有两个子目录D1与D2,且当前目录为D1,若要进入子目录D2,正确的DOS命令为
A)CDD2B)CDD2\C)CD\D2D)CDD1\D2
(14)设当前盘为A盘,要将B盘当前目录下的两个文件A.TXT与X.TXT连接后以文件名Y.TXT存放到A盘的当前目录中,正确的DOS命令为
A)COPYA.TXT+X.TXTA:Y.TXTB)COPYB:A.TXT+X.TXTA:Y.TXT
B)COPYB:A.TXT+B:X.TXT>Y.TXTD)COPYB:A.TXT+B:X.TXTY.TXT
(15)下列DOS命令中正确的是
A)REN\USER\A.TXT\B.TXTB)CD\
C)TYPE*.TXTD)MD\
(16)以下选项中属于C语言的数据类型是
A)复数型B)逻辑型C)双精度型D)集合型
(17)在C语言中,不正确的int类型的常数是
A)32768B)0C)037D)0xAF
(18)语句:printf("%d",(a=2)&&(b=-2);的输出结果是
A)无输出B)结果不确定C)-1D)1
(19)下列描述中不正确的是
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
(20)设有如下定义:intx=l,y=-1;,则语句:printf("%d\n",(x--&++y));的输出结果是
A)1B)0C)-1D)2
(21)当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是
A)c=b=a;B)(a=c)‖(b=c);
C)(a=c)&&(b=c);C)a=c=b;
(22)以下程序的输出结果是
A)10192B)9876C)10990D)101091
main()
{intx=10,y=10,I;
for(i=0;x>8;y=++i)
printf("%d,%d",x--,y);
}
(23)以下程序的输出结果是
A)52B)51C)53D)97
main()
{inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i<4;i+=2)printf("%d",p[i]);
}
(24)以下程序的输出结果是
A)6B)6789C)'6'D)789
main()
{chara[10]={'1','2','3','4','5','6','7','8','9',0},*p;
inti;
i=8;
p=a+I;
printf("%s\n",p-3);
}
(25)以下程序的运行结果是
A)运行后报错B)66C)612D)55
#include"stdio.h"
main()
{
inta[]={1,2,3,4,5,6,7,8,9,10,11,12,};
int*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d%d\n",*p,*q);
}
(26)以下说法中正确的是
A)#define和printf都是C语句B)#define是C语句,而printf不是
C)printf是C语句,但#define不是D)#define和printf都不是C语句

(27)语句:printf("%d\n",12&012);的输出结果是
A)12B)8C)6D)012
(28)能正确表示a和b同时为正或同时为负的逻辑表达式是
A)(a>=0‖b>=0)&&(a<0‖b<0)
B)(a>=0&&b>=0)&&(a<0&&b<0)
C)(a+b>0)&&(a+b<=0)
D)a*b>0
(29)以下程序的输出结果是
A)20B)31C)321D)210
main()
{intn=4;
while(n--)printf("%d",--n);
}
(30)若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是
A)p+1B)a+1C)a++D)++p
(31)以下程序的输出结果是
A)17,021,0x11B)17,17,17
B)17,0x11,021D)17,21,11
main()
{intk=17;
printf("%d,%o,%x\n",k,k,k);
}
(32)以下程序的输出结果是
A)-11B)01C)10D)00
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d%d\n",a,b);
else
printf("%d%d\n",b,a);
}
(33)若有说明:long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是
A)*p=&a;scanf("%ld",p);
B)p=(long*)malloc(8);scanf("%ld",p);
C)scanf("%ld",p=&a);
D)scanf("%ld",&a);
(34)以下选项中,能定义s为合法的结构体变量的是
A)typedefstructabcB)struct
{doublea;{doublea;
charb[10];charb[10];
}s;}s;
C)structABCD)typedefABC
{doublea;{doublea;
charb[10];charb[10];
}}
ABCs;ABCs;
(35)若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是
A)t[2][0]B)t[2][2]C)t[l][2]D)t[2][l]
intt[3][3],*pt([3],k;
for(k=0;k<3;k++)pt[k]=&t[k][0];
(36)下面程序把数组元素中的最大值放入a[0]中。则在if语句中的条件表达式应该是
A)p>aB)*p>a[0]C)*p>*a[0]D)*p[0]>*a[0]
main()
{inta[10]={6,7,2,9,1,10,5,8,4,3},*p=a,I;
for(i=o;i<10;i++,p++)
if(________)*a=*p;
printf("%d",*a);
}
(37)以下程序的输出结果是
A)ihgfedcbaB)abcdefghiC)abcdedebaD)ihgfefghi
#include
main()
{char*a="abcdefghi";intk;
fun(a);puts(a);
}
fun(char*s)
{intx,y;charc;
for(x=0,y=strlen(s)-1;x0)fun(k-1);
printf("%d",k);
}
(42)以下程序的输出结果是
A)699B)669C)61515D)6615
intd=1;
fun(intp)
{staticintd=5;
d+=p;
printf("%d",d);
return(d);
}
main()
{inta=3;printf("%d\n",fun(a+fun(d)));}
(43)以下程序的输出结果是
A)123456780B)123456780C)12345678D)147
main()
{charch[3][4]={"123","456","78"},*p[3];inti;
for(i=0;i<3;i++)p[i]=ch[i];
for(i=0;i<3;i++)printf("%s",p[i]);
}
(44)以下程序的输出结果是
A)1B)4C)7D)5
#include
inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;
main()
{p=(int*)malloc(sizeof(int));
f(p,a);
printf("%d\n",*p);
}
f(int*s,intp[][3])
{*s=p[1][1];}
(45)以下程序的输出结果是
A)9B)6C)36D)18
#definef(x)x*x
main()
{inta=6,b=2,c;
c=f(a)/f(b);
printf("%d\n",c);
}
(46)以下程序的输出结果是
A)4211B)0008C)4678D)8888
main()
{char*s="12134211";intv[4]={0,0,0,0},k,i;
for(k=0;s[k];k++)
{switch(s[k])
{case'1':i=0;
case'2':i=1;
case'3':i=2;
case'4':i=3;
}
v[i]++;
}
for(k=0;k<4;k++)printf("%d",v[k]);
}
(47)以下程序的输出结果是
A)AfghdEFGB)AbfhdC)AfghdD)Afgd
#include
main()
{char*p1,*p2,str[50]="ABCDEFG";
p1="abcd";p2="efgh";
strcpy(str+1,p2+1);strcpy(str+3,p1+3);
printf("%s",str);
}
(48)以下程序的输出结果是
A)#*#*#B)#####C)*****D)*#*#*
main()
{inti;
for(i=1;i<6;i++)
{if(i%2){printf("#");continue;}
printf("*");
}
printf("\n");
}
(49)若有以下定义和语句:
doubler=99,*p=&r;
*p=r;
则以下正确的叙述是
A)以下两处的*p含义相同,都说明给指针变量p赋值
B)在"doubler=99,*p=&r;"中,把r的地址赋值给了p所指的存储单元
C)语句"*p=r;"把变量r的值赋给指针变量p
D)语句"*p=r;"取变量r的值放回r中
(50)以下程序的输出结果是
A)编译不通过,无输出B)aceg
C)acegiD)abcdefghi
main()
{inti;
for(i='A';i<'I';i++,i++)printf("%c",i+32);
printf("\n");
}

二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。
(1)DOS命令分为内部命令与外部命令,PATH命令是【1】命令。
(2)设当前盘为A盘,当前目录为\X\Y,A盘上的一个文件QR.C在当前目录下的子目录W中。现已将A盘的当前目录改为\D\XY,当前盘改为C盘,如果需指定A盘上的该文件应写成【2】。
(3)为了得到XCOPY命令的在线帮助,可使用的DOS命令文件一为【3】。
(4)在DOS系统下,代表键盘与显示器的设备文件名为【4】。
(5)在DOS系统下,可以直接执行的文件的扩展名除.FXE外,还有两个是【5】。
(6)若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【6】。

intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c);
.
.
.
(7)下列程序的输出结果是【7】。
#include
main()
{charb[30],*chp;
strcpy(&b[0],"CH");
strcpy(&b[1],"DEF");
strcpy(&b[2],"ABC");
printf("%s\n",b);
}
(8)下列程序的输出结果是【8】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
(9)下列程序中字符串中各单词之间有一个空格,则程序的输出结果是【9】。
#include
main()
{charstrl[]="Howdoyoudo",*p1=strl;
strcpy(strl+strlen(strl)/2,"esshe");
printf("%s\n",pl);
}
(10)以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。
main()
{floatx[1000],sum=0.0,ave,a;
intn=0,i;
printf("Entermark:\n");scanf("%f",&a);
while(a>=0.0&&n<1000)
{sum+【10】;x[n]=【11】;
n++;scanf("%f",&a);
}
ave=【12】;
printf("Output:\n");
printf("ave=%f\n",ave);
for(I=0;Iif【13】printf(“%f\n”,x[I]);
}
(11)有以下定义和语句,则sizeof(a)的值是【14】,而sizeof(a.share)的值是【15】
structdate{intday;
intmonth;
intyear;
union{intshare1
floatshare2;
}share;
}a;
(12)以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。
#include
main()
{FILE*fp;
charch,fname[32];intcount=0;
printf("Inputthefilename:");scanf("%s",fname);
if((fp=fopen(【16】,"w+"))==NULL)
{printf("Can'topenfile:%s\n",fname);exit(0);}
printf("Enterdata:\n");
while((ch=getchar())!="#"){fputc(ch,fp);count++;}
fprintf(【17】,"\n%d\n",count);
fclose(fp);
}
(13)以下函数creatlist用来建立一个带头节点的单链表,链表的结构如下图所示,新的结点总是插入在链表的末尾。链表的头指针作为函数值返回,链表最后一个节点的next域放入NULL,作为链表结束标志。data为字符型数据域,next为指针域。读入时字符以#表示输入结束(#不存入链表)。请填空。
structnode
{chardata;
structnode*next;
};
.
.
.
【18】creatlist()
{structnode*h,*s,*r;charch;
h=(structnode*)malloc(sizeof(structnode));
r=h;
ch=getchar();
{s=(structnode*)malloc(sizeof(structnode));
s->data=【19】;
r->next=s;r=s;
ch=getchar();}
r->next=【20】;
returnh;
}




1999年9月全国等级考试二级笔试答案
C语言
一、选择题((1)--(40)题每题1分,(41)--(50)题每题2分,共60分。
(1)B(2)D(3)D(4)D(5)A(6)B(7)D(8)C(9)A(10)A
(11)C(12)B(13)C(14)D(15)B(16)C(17)A(18)D(19)C(20)B
(21)C(22)D(23)C(24)B(25)A(26)D(27)B(28)D(29)A(30)C
(31)D(32)C(33)A(34)B(35)C(36)B(37)(38)(39)(40)
(41)(42)C(43)C(44)D(45)C(46)B(47)D(48)A(49)D(50)B

二、填空题(每空2分,共40分)
(1)内部
(2)A:\X\Y\W\OR.C
(3)XCOPY/?或XCOPY/H
(4)CON
(5)COM和.BAT
(6)5.0,4,c=3
(7)CDABC
(8)56
(9)Howdesshe
(10)=a
(11)a
(12)sum/n
(13)x[i](14)
(15)
(16)fname
(17)fp
(18)structnode*
(19)ch
(20)NULL



TAG:

我来说两句