全国计算机等级考试二级c语言笔试试题含参考答案.docx
《全国计算机等级考试二级c语言笔试试题含参考答案.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级c语言笔试试题含参考答案.docx(17页珍藏版)》请在冰豆网上搜索。
![全国计算机等级考试二级c语言笔试试题含参考答案.docx](https://file1.bdocx.com/fileroot1/2022-11/28/e58bcc63-279e-42f7-b611-8fcf02d9963d/e58bcc63-279e-42f7-b611-8fcf02d9963d1.gif)
全国计算机等级考试二级c语言笔试试题含参考答案
全国计算机等级考试二级笔试卷
基础知识和C语言程序设计
(考试时间120分钟,满分100分)
2013年4月
一、选择题(
(1)-(40)每小题1分,(41)-(50)每小题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)微型计算机的性能主要取决于
A)内存B)中央处理器C)硬盘D)显示卡
(2)有一个数值152,它与十六进制数6A相等,那么该数值是
A)二进制数B)八进制数C)十进制数D)四进制数
(3)使用超大规模集成电路制造的计算机应该归属于
A)第一代B)第二代C)第三代D)第四代
(4)已知英文字母a的ASCII代码值是十六进制数61H,那么字母d的ASCII代码值是
A)34HB)54HC)24HD)64H
(5)一片存储容量是1.44MB的软磁盘,可以存储大约140万个
A)ASCII字符B)中文字符C)磁盘文件D)子目录
(6)在MS-DOS环境中同时按下[Ctrl]和[Break]两个键,其作用是
A)终止当前操作B)暂停当前操作C)关机D)热启动
(7)将二进制数10000001转换为十进制数应该是
A)127B)129C)126D)128
(8)磁盘处于写保护状态,那么磁盘中的数据
A)不能读出,不能删改,也不能写入新数据B)可以读出,不能删改,也不能写入新数据
C)可以读出,可以删改,但不能写入新数据D)可以读出,不能删改,但可以写入新数据
(9)微型机启动后,DOS提示符是C:
\>,现提示符变为C:
\USER>,则说明刚执行过命令
A)PROMPTB)PROMPTUSERC)PROMPTSP$GD)CDUSER
(10)MS-DOS文件系统目录的组织形式属于
A)关系型结构B)网络型结构C)树型结构D)直线型结构
(11)应用软件系统TH的总容量大约1MB,其主要程序文件存放在C:
\TH目录中,而数据文件存放在C:
\TH\DATA目录中,如果将它们完整地复制到A盘,应该使用的命令是
A)XCOPYC:
\THA:
\B)XCOPYC:
\THA:
\/S
C)XCOPYC:
\THA:
\/MD)XCOPYC:
\THA:
\/P
(12)执行COPYA.TXT+B.TXT这个DOS命令后,得到的磁盘文件是
A)A.TXTB)B.TXTC)AB.TXTD)A+B.TXT
(13)在WINDOWS中,将一个应用程序窗口最小化之后,得到的磁盘文件是
A)仍在后台运行B)暂时停止运行C)完全停止运行D)出错
(14)CD-ROM属于
A)感觉媒体B)表示媒体C)表现媒体D)存储媒体
(15)在因特网(Internet)中电子公告板的缩写是
A)FTPB)WWWC)BBSD)E-mail
(16)设x、y、z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为
A)4B)16C)32D)52
(17)设有如下的变量定义:
inti=8,k,a,b;
unsignedlongw=5;
doublex=1,42,y=5.2;
则以下符合C语言语法的表达式是
A)a+=a-=(b=4)*(a=3)B)x%(-3);
C)a=a*3=2D)y=float(i)
(18)假定有以下变量定义:
intk=7,x=12;
则能使值为3的表达式是
A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)
(19)以下叙述中正确的是
A)输入项可以是一个实型常量,如:
scakf("%f",3.5);
B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:
scakf("a=%d,b=%d");
C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:
scakf("%4.2f",&f);
D)当输入数据时,必须指明变量地址,例如:
scakf("%f",&f);
(20)设x和y均为int型变量,则以下语句:
x+=y,y=x-y;x-=y;的功能是
A)把x和y按从大到小排列B)把x和y按从小到大排列
C)无确定结果D)交换x和y中的值
(21)以下程序的输出结果是
A)1010B)1212C)1110D)1113
main()
{inta=12,b=12;
printf("%d,%d\n",--a,++b);
}
(22)以下程序运行后,输出结果是
A)cdeB)字符c的ASCII码值C)字符c的地址D)出错
main()
{char*s="abcde";
s+=2;
printf("%ld\n",s);
}
(23)以下程序输出结果是
A)7B)6C)5D)4
main()
{intm=5;
if(m++>5)printf("%d\n",m);
esleprintf("%d\n",m--);
}
(24)当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为
A)1B)2C)3D)6
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7;
(25)在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为
A)ABCdefB)abcDEFC)abcD)DEF
#include
main()
{charch;
while((ch=getchar())!
='\n')
{if(ch>='A'&&ch<='Z')ch=ch+32;
elseif(ch>='a'&&ch<='z')ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
(26)下面能正确进行字符串赋值操作的语句是
A)chars[5]={"ABCDE"};B)chars[5]={'A','B','C','D','E'};
C)char*s;s="ABCDEF";D)char*s;scanf("%s",s);
(27)执行以下程序段时
A)循环体将执行一次B)循环体将执行两次
C)循环体将执行无限次D)系统将提示有语法错误
X=-1;
do{x=x*x;}while(!
x);
(28)执行以下程序后,输出的结果是
A)-1B)1C)8D)0
main()
{inty=10;
do{y--;}while(--y);
printf("%d\n",y--);
}
(29)在下列选项中,没有构成死循环的程序段是
A)inti=100B)for(;;);
while
(1)
{i=i%100+1;
if(i>100)break;
}
C)intk=1000;D)ints=36;
do{++k;}while(k>=10000);while(s);--s;
(30)执行语句:
for(i=l:
i++<4:
);后,变量i的值是
A)3B)4C)5D)不定
(31)以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为
A)8B)7C)6D)5
#include
#include
func{intnum=0;
while(*(str+num)!
='\0')num++;
return(num);
}
main()
{charstr[10],*p=str;
gets(p);printf("%d\n",func(p));
}
(32)运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为
A)2,0B)5,0C)5,5D)2,5
#include
mair()
{intv1=0,v2=0;
charch;
while((ch=getchar())!
='#')
switch(ch)
{case'a';
case'h';
default;v1++;
case'0';v2++;
}
printf("%d,%d\n",v1,v2);
}
(33)若以下程序所生成的可执行文件名为filel.exe;当打入以下命令执行该程序时;
FILELCHINABEIJINGSHANGHAI
程序的输出结果是
A)CHINABEIJINGSHANGHAIB)FILELCHINABEIJING
C)CBSD)FCB
main(intargc,char*argv[])
{while(arge-->0)
{++argv;printf("%s",*argv);}
}
(34)下面程序运行的结果是
A)2ba56B)6521C)6D)62
main()
{charch[7]={65ab21"};
inti,s=0
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)
s=10*s+ch[i]-'0';
printf("%d\n",s);
}
(35)运行下面的程序,如果从键盘上输入:
ab<回车>
c<回车>
def<回车>
则输出结果为
A)aB)aC)abD)abcdef
bbc
ccd
dd
e
f
#include
#defineN6
main()
{charc[N];
inti=0;
for(;ifor(i=0;i}
(36)以下程序运行后,输出结果是
A)8B)7C)6D)5
#include
ss(char*s)
{char*p=s;
while(*p)p++;
return(p-s);
}
main()
{char*a="abded";
inti;
i=ss(a);
printf("%d\n",i);
}
(37)以下程序运行后,输出结果是
A)8,15B)8,16C)8,17D)8,8
func(inta,intb)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
(38)以下程序运行后,输出结果是
A)49.5B)9.5C)22.0D)45.0
#include
#definePT5.5
#defineS(x)PT*x*x
main()
{inta=1,b=2;
printf("%4.1f\n",S(a+b));
}
(39)以下程序运行后,输出结果是
A)ABCDEFGB)CDGC)abcdefghD)abCDefGh
main()
{staticchara[]="ABCDEFGH",b[]="abCDefGh";
char*p1,*p2;
intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
printf("\n");
)
(40)以下程序运行后,a的值是
A)4B)1C)0D)运行时出错,a无定值
main()
{inta,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
printf("%d\n",a);
}
(41)以下程序运行后,输出结果是
A)84B)99C)95D)44
intd=1;
fun(intp)
{intd=5;
d+=p++;
printf("%d,d);
}
main()
{inta=3;
fun(a);
d+=a++;
printf("%d\n,d);
}
(42)以下程序运行后,输出结果是
A)6385B)22C)33D)693825
main()
{charch[2][5]={'693","825"},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]='0'&&p[i][j]<='9';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n",s);
}
(43)以下程序运行后,输出结果是
A)1B)7C)9D)11
fut(int**s,intp[2][3])
{**s=p[1][1];}
main()
{inta[2][3]={1,3,5,7,9,11},*p;
p=(int*)malloc(sizeof(int));
fut(&p,a);
printf("%d\n",*P);
}
(44)设有如下定义:
inta=1,b=2,c=3,d=4,m=2,n=2:
则执行表达式:
(m=a>b)&&(n=c>d)后,n的值为
A)1B)2C)3D)0
(45)在执行以下程序时,为了使输出结果为:
t=4,则给a和b输入的值应满足的条件是
A)a>bB)aa>b
main()
{ints,t,a,b;
scanf("%d,%d",&a,&b);
s=1;t=1;
if(a>0)s=s+1;
if(a>b)t=s+t;
elseif(a==b)t=5;
elset=2*s;
printf("t=%d\n",t);
}
(46)以下程序的输出结果是
A)x=4B)x=8C)x=6D)x=12
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
(47)以下程序运行后,输出结果是
A)1234567B)7654321C)1711717D)7177171
#inchude
#inchude
fun(char*w,intn)
{chart,*s1,*s2;
s1=w:
s2=w+n-1;
while(s1{t=*s1++;
*s1=*s2--;
*s2=t;
}
}
main()
{char*p;
p="1234567";
fun(p,strlen(p));
puts(p);
}
(48)运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为:
A)m=3B)m=2C)m=1D)m=1
main()
{intm,n;
printf("Enterm,n;");scanf("%d%d",&m,&n):
while(m!
=n)
{while(m>n)m-=n;
while(n>m)n-=m;
}
printf("m=%d\n",m);
}
(49)以下程序运行后,如果从键盘上输入:
book<回车>
book<空格><回车>
则输出的结果是
A)*8B)#9C)#6D)*9
#include
main()
{chara1[80],a2[80],*s1=a1,*s2=a2;
gets(s1);gets(s2);
if(!
strcmp(s1,s2))printf("*");
esleprintf("#");
printf("%d/n",strlen(strcat(s1,s2)));
}
(50)以下程序运行后,输出结果是
A)10000B)10010C)00110D)10100
main()
{inty=18,i=0,j,a[8];
do
{a[i]=y%2;i++
y=y/2;
}while(y>=1)
for(j=i-1;j>=0;j--)printf("%d",a[j];
printf("\n");
}
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡上【1】-【20】序号上,答在试卷上不得分。
(1)DOS中的自动批处理文件的全名是【1】。
(2)在DOS启动盘中,除COMMAND.COM外,还有两个必备的系统文件,它们是MSDOS.SYS(或IBMDOS.COM)与【2】。
(3)在DOS下,要将当前目录中AB.TXT文件设置为只读属性,应该使用的完整命令行是【3】。
(4)在DOS下,要查看当前目录中所有批处理文件的总字节数,应该使用的完整命令行是【4】。
(5)计算机病毒除有破坏性、潜伏性和激发性外,还有一个最明显的特性是【5】。
(6)若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是【6】
:
.
chara[10],b;
scanf("a=%sb=%c",a,&b);
:
.
(7)下面程序的输出结果是【7】
charb[]="ABCD";
main()
{char*chp;
for(chp=b;*chp:
chp+=2)printf("%s",chp);
printf("\n");
(8)下面程序输出的结果是【8】
#defineMAX3
inta[MAX];
main()
{fun1();fun2(a);printf("\n");}
fun1()
{intk,t=0;
for(k=0;k<MAX;K++,t++)a[k]=t+t;
}
fun2(intb[])
{intk;
for(k=0;k<NAX;k++)printf("%d",*(b+K));
}
(9)以下程序输出的是【9】
main()
{inta[10]={19,23,44,17,37,28,49,36},*p;
p=a;
printf("%d\n",(p+=3)[3]);
}
(10)以下程序输出的是【10】
main()
{inti=3,j=2;
char*a="DCBA";
printf("%c%c\n",a[i],a[j]);
}
(11)以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。
请填空。
exchange(int*x,int*y)
{intt;
t=*y;*y=【11】;*x=【12】;
}
(12)若以下定义和语句,则sizeof(a)的值是【13】,而sizeof(b)的值是【14】
struct{intday;charmouth;intyear;}a,*b;
b=&a;
(13)以下fun函数的功能是:
累加数组元数中的值.n为数组中元素的个数,累加的和值放入x所指的存储单元中,请填空.
fun(intb[],intn,int*x)
{intk,r=0;
for(k=0;k【16】=r;
}
spnextdata
┌─┬─┬─┐
root││││
└─┴─┴─┘
(14)变量root有如图所示有存储结构,其中sp是指向字符串的指针域,next是指向该结构的指针域,data用以存放整型数.请填空,完成此结构的类型说明和变量root的定义
structlist
{char*sp;
【17】;
【18】;
}root;
(15)下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中,请填空.
#include
FILE*fp;
main()
{inti,j;
if((fp=fopen(【19】,"wb"))==NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【20】);
}
fclose(fp);
}
〖完〗
2013年4月
基础知识知识和C语言程序设计
答案及评分标准
一.选择(
(1)~(40)题每题1分,(41)~(50)题每题2分,共60分)
(1)B
(2)B
(3)D
(4)D
(5)A
(6)A
(7)B
(8)B
(9)D
(10)C
(11)B
(12)A
(13)A
(14)D
(15)C
(16)C
(17)A
(18)D
(19)D
(20)D
(