2023年我国计算机等级考试试题及答案深度解析_第1页
2023年我国计算机等级考试试题及答案深度解析_第2页
2023年我国计算机等级考试试题及答案深度解析_第3页
2023年我国计算机等级考试试题及答案深度解析_第4页
2023年我国计算机等级考试试题及答案深度解析_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023年4月全国计算机等级考试二级C语言笔试试题及答案计算机二级考试

2023年4月全国计算机等级考试二级笔试试卷

C语言程序设计

(考试时间120分钟,满分100分)

一、选择题((1)—(10)每题2分,(11)—(50)每题1分,共60分)下列各题A)、

B)、C)、D)四个选项中,只有一种选项是对的的,请将对的选项涂写在答题卡对应位置上,

答在试卷上不得分。

(1)下列论述中对口勺的是(8)

A)算法的效率只与问题的规模有关,而与数据的存储构造无关

B)算法的时间复杂度是指执行算法所需要的计算工作量

C)数据日勺逻辑构造与存储构造是一一对应的

D)算法的时间爱杂度与空间复杂度一定有关

(2)在构造化程序设计中,模块划分的原则是(D)

A)各模块应包括尽量多的功能

B)各模块的规模应尽量大

C)各模块之间的联络应尽量紧密

D)模块内具有高内聚度、模块间具有低耦合度

(3)下列论述中对的的是(A)

A)软件测试的重要目的是发现程序中的错误

B)软件测试的重要目日勺是确定程序中错误的位置

。为了提高软件测试的效率,最佳由程序编制者自己来完毕软件测试的工作

D)软件测试是证明软件没有错误

(4)下面选项中不属于面向对象程序设计特性的是(C)

A)继承性

B)多态性

C)类比性

D)封装性

(5)下列对队列的论述对口勺的是(D)

A)队列属于非线性表

B)队列按“先进后出”原则组织数据

C)队列在队尾删除数据

D)队列按“先进先出”原则组织数据

(6)对下列二叉树

A

BC

DEFX

z

进行前序遍历日勺成果为(C)

A)DYBEAFCZX

B)YDEBFZXCA

C)ABDYECFXZ

D)ABCDEFXYZ

(7)某二叉树中有n个度为2的结点,则该二叉树中H勺叶子结点数为(A)

A)n+1

B)n-1

C)2n

D)n/2

(8)在下列关系运算中,不变化关系表中的属性个数但能减少元组个数的是(B)

A)并

B)交

C)投影

D)笛卡儿乘积

(9)在E-R图中,用来体现实体之间联络口勺图形是(C)

A)矩形

B)椭圆形

C)菱形

D)平行四边形

(10)下列论述中错误的是(A)

A)在数据库系统中,数据的物理构造必须与逻辑构造一致

B)数据库技术的主线目的是要处理数据的共享问题

C)数据库设计是指在已经有数据库管理系统的基础上建立数据库

D)数据库系统需要操作系统的支持

(11)算法中,对需要执行的每一步操作,必须给出清晰、严格口勺规定,这属于算法的(C)

A)合法性

B)可行性

C)确定性

D)有穷性

(12)下列论述中错误时是(D)

A)计算机不能直接执行用C语言编写的源程序

B)C程序经C编译程序编译后,生成后缀为.obj的文献是一种二进制文献

C)后缀为.obj的文献,经连接程序生成后缀为.exe"勺文献是一种二进制文献

D)后缀为.obj和.exe%I二进制文献都可以直接运行

(13)按照C语言规定日勺顾客标识符命名规则,不能出目前标识符中的是(B)

A)大写字母

B)连接符

C)数字字符

D)下划线

(14)如下论述中错误时是(C)

A)C语言是一种构造化程序设计语言

B)构造化程序有次序、分支、循环三种基本构造构成

C)使用三种基本构造构成的程序只能处理简朴问题

D)构造化程序设计倡导模块化的设计措施

(15)对于一种正常运行的C程序,如下论述中对的的是(A)

A)程序的执行总是从main函数开始,在main函数结束

B)程序的执行总是从程序的J第一种函数开始,在main函数结束

C)程序的执行总是从main函数开始,在程序的最终一种函数中结束

D)程序的I执行总是从程序日勺第一种函数开始,在程序的最终一种函数中结束

(16)设变量均已对的定义,若要通过scanf("%d%c%d%c",&al,&c1,&a2,&c2);语句

为变量a1和a2赋数值10和20.为变量cl和c2赋字符X和Y。如下所示的输入形式中对

的的是(注:口代表空格字符)(D)

A)ionxn2onY〈回车)

B)10QX20口丫〈回车)

C)10DX〈回车〉

D)10X〈回车〉

20OY〈回车)20Y〈回车〉

(17)若有代数式(其中e仅代表自然对数H勺底数,不是变量),则如下可以对口勺体现该代数式

的C语言体现式是(C)

A)sqrt(abs(nAx+eAx))

B)sqrt(fabs(pow(r.,x)+pow(x,e)))

C)sqrt(fabs(pow(n,x)+exp(x)))

D)sqrt(fabs(pow(x,n)+exp(x)))

(18)设有定义:intk=0;,如下选项的四个体现式中与其他三个体现式的值不相似的是(A)

A)k++

B)k+=l

C)++k

D)k+1

(19)有如下程序,其中%11体现按无符号整数输出(B)

main()

{unsignedintx=0xFFFF;/*x的初值为十六进制数*/

printf("%u\n",x);

程序运行后口勺输出成果是

A)-1

B)65535

032767

D)0xFFFF

(20)设变量x和y均已对的定义并赋值,如下if语句中,在编译时将产生错误信息的是

(C)

A)if(x++);

B)if(x>y&&y!=0);

C)if(x>y)x--

D)if(y<0){;)

elsey++;elsex++;

(16)设变量均已对的定义,若要通过scanf(“%d%c%d%c"1,&a2,&c2);语句

为变量al和a2赋数值10和20,为变量c1和c2赋字符X和Y。如下所示的输入形式中

对的的是(注:□代表空格字符)(D)

A)10CXD20DY〈回车)

B)10DX20QY〈回车)

C)10DX〈回车〉

D)10X〈回车〉

20DY〈回车〉20Y〈回车〉

(17)若有代数式(其中e仅代表自然对数的底数,不是变量),则如下可以对的体现该代

数式的C语言体现式是(C)

A)sqrt(abs(nAx+e*x))

B)sqrt(fabs(pow(n,x)+pow(x,e)))

C)sqrt(fabs(pow(n,x)+exp(x)))

D)sqrt(fabs(pow(x,n)+exp(x)))

(18)设有定义:inik=0;,如下选项的四个体现式中与其他三个体现式H勺值不相似H勺是

(A)

A)k++

B)k+=1

C)++k

D)k+1

(19)有如下程序,其中%u体现按无符号整数输出(B)

main()

{unsignedintx=0xFFFF;/*x及J初值为十六进制数*/

printf("%u\n",x);

程序运行后H勺输出成果是

A)-1

B)65535

C)32767

D)0xFFFF

(20)设变量x和y均已对的定义并赋值,如下if语句中,在编译时将产生错误信息的

是(C)

A)if(x++);

B)if(x>y&&y!=0);

C)if(x>y)x--

D)if(y<0){:}

elsey++;e1sex++;

(21)如下选项中,当x为不不大于1的奇数时,值为。口勺体现式(D)

A)x%2==l

B)x/2

C)x%2!=0

D)x%2==0

(22)如下论述中对的的是(C)

A)break语句只能用于switch语句体中

B)continuc语句的作用是:使程序的执行流程跳出包括它的所有循环

C)break语句只能用在循环体内和switch语句体内

D)在循环体内使用break语句和continue语句日勺作用相似

(23)有如下程序(A)

main()

{intk=5,n=0;

do

{switch(k)

{case1:case3:n+=1;break;

default;n=O;k--;

case2:case4:n+=2;k—-;break;

printf("%d”,n);

}while(k>0&&n<5);

)

程序运行后的输出成果是

A)235

B)0235

C)02356

D)2356

(24)有如下程序

mian()

{intij;

for(i=1;i<4;i++)

(for(j=i;j<4y4-+)prin氓“%d*%d=%d”,i,j,i*j);

printff'\n");

程序运行后的输出成果是(B)

A)1*1=11*2=21*3=3B)1*1=11*2=21*3=3

2*1=22*2=42*2=42*3=6

3*1=33*3=9

C)1*1=1D)1*1=1

1*2=22*2=42*1=22*2=4

1*3=32*3=63*3=93*1=33*2=63*3=9

(25)如下合法的字符型常量是(A)

A)”\xI3”

B)”\018”

C)“65"

D)“\n"

(26)在C语言中,函数返回值的类型最终取决于(A)

A)函数定义时在函数首部所阐明的函数类型

B)return语句中体现式值的)类型

C)调用函数时主函数所传递的实参类型

D)函数定义时形参的类型

(27)已知大写字母A的ASCII码是65,小写字母aASC”码是97,如下不能将变量

c中大写字母转换为对应小写字母的语句是(D)

A)c=(c—A)&+'a'

B)c=c+32

C)c=c-,A'+'a,

D)c=('A'+c)&-'a'

(28)有如下函数

intfun(char*s)

{char*t=s;

whi1e(*t++);

retum(t-s);

J

该函数的功能是(B)

A)比较两个字符的大小

B)计算s所指字符串占用内存字节日勺个数

C)计算s所指字符串的长度

D)将s所指字符串复制到字符串t中

(29)设已经有定义foatx;则如下对指针变量p进行定义且赋初值的语句中对的J日勺是(D)

A)float*p=1024;

B)int*p=(floatx);

C)floatp=&x;

D)float*P=&x;

(30)有如下程序

#inc1ude

main()

{intn,*p=NULL;

*p=&n:

printf("Inputn:”);scanf("%d",&p);printf("outputn:");printf(0%

d\n",p);

)

该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,如下语句对的的

是(A)

A)intn,*p=NULL;

B)*p=&n;

C)scanf("%d",&p)

D)printf("%d\n",p);

(31)如下程序中函数f的功能是:当flag为I时,进行有由小到大排序;当flag为

。时,进行由大到小排序。

voidf(intb[],intn,intflag)

{inti,j,t;

for(i=0;i

for(j=i+l;j

if(f1ag?b[i]>b|j]:b[i]

}

main()

{inta[10]={5,4,3,2』,6,7,8,9,10),i;

f(&a[2J,5,0);f(a,5,l);

for(i=0;i<10;i++)printf("%dja[i]);

)

程序运行后的输出成果是(B)

A)1,2,3,4,5,6,7,8,9,l0,

B)3,4,5,6,7,2,1,8,9,10,

C)5,4,3,2,1,6,7,8,9,10,

D)10,9,8,7,654,3,2,1,

(32)有如下程序

voidf(intb[!)

{inti;

for(i=2;i<6;i++)b[i]*=2;

)

main()

{inta[10]={1,2,3,4,5,6,7,8,9,10},i;

f(a);

for(i=0;i<10;i++)prinif("%d,”,a[i]);

)

程序运行后的输出成果是(B)

A)1,2,3,4,5,6,7,8,9,10,

B)1,2,6,8,10,I2,7,8,9,10

C)L2,3,4,10,12,14,16,9,10,

D)1,2,6,8,10,12,14,16,9,10,

(33)有如下程序

typedefstruct{intb,p;)A;

voidf(Ac)/*注意:c是构造变量名*/

{intj;

c.b+=l;c.p+=2;

main()

Aa={1,2};

f(a);

printf("%d,%d\n”,a,b,a.p);

程序运行后的输出成果是(D)

A)2,3

B)2,4

C)l,4

D)l,2

(34)有如下程序

main()

{inta[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1.)},ij,k,t;

for(i=0;i<4;i++)

for(j=0;j<3;j++)

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/

for(i=0;i<4;i++)primf[j]);

)

程序运行后的输出成果是(A)

A)l,6,5,7,

B)8,7,3,1,

C)4,7,5,2,

D)1,6,2,1,

(35)有如下程序

main()

{inta[4][4]={{1,4,32},{8,6,5,7,(,{3,7,2,5,},{4,8,61,}},i,k,

for(i=0;i<3;i++)

for(k=i+i;k<4;k++)if(a[i][i]

for(i=0;i<4;i++)printff4%d;;a[0][i]);

}

程序运行后的)输出成果是(B)

A)6,2,1,1,

B)6,4,3,2,

C)1,1,2,6,

D)2,3,4,6,

(36)有如下程序

voidf(int*q)

{inti=0;

for(;iV5;i++)(*q)++;

)

main()

{inta[5]=(1,2,3,4,5},i;

f(a);

for(i=0;i<5;i++)printf("%d,",a[i]);

}

程序运行后的输出成果是(B)

A)2,2,3,4,5,

B)6,2,3,4,5,

C)1,2,3,4,5,

D)2,3,4,5,6,

(37)有如下程序

#inc1ude

main()

{charp[20J={‘a'/b'c'/d'},q[]=wabcw,r[]=wabcdew;

strepy(p+strlen(q),r);strcat(p,q);

printf("%d%d\n",sizeof(p),strlen(p));

}

程序运行后的输出成果是(C)

A)209

B)99

C)2011

D)1111

(38)有如下程序

#inelude

main()

{charp[20]={匕','b','c','d'},q口="abc",r[]="abcde

strcat(p,r);Strcpy(p+str1en(q),q):

Printf(M%d\n”,sizeof(p));

)

程序运行后的输出成果是(B)

A)9

B)6

C)11

D)7

(39)有如下程序

#include

main()

voidf(charplJ[l0],intn)/*字符串从小到大排序*/

chart[10];inti,j;

for(i=0;i

for(j=i+l:j

if(strcmp(p[i],p[jl)>0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[i],t);}

)

main()

(charpl5][I0]={“abc",“aabdfg",“abbd","dcdbe“,“cd”};

f(p,5);

primf("%d\n”,strlen(p[OJ));

}

程序运行后啊输出成果是(C)

A)2

B)4

C)6

D)3

(40)有如下程序

voidf(intn,int*r)

{intrl=0;

if(n%3==0)rl=n/3;

elseif(n%5==0)rl=n/5;

elsef(-n,&rl);

*r=rl;

main()

{intm=7,r;

f(m,&r);printf("%d\n,r");

程序运行后的输出成果是(A)

A)2

B)1

C)3

D)0

(41)有如下程序

main(intargc,char*argv[])

{intn=0,i;

for(i=1;in=n*10+*argv[i]-'O';

printf("%d\n",n);

)

编译连接后生成可执行文献tt.exe,若运行时输入如下命令行

tt123456(8

程序运行后的输出成果是(D)

A)12

B)12345

C)12345678

D)136

(42)有如下程序

inta=4;

intf(intn)

{intt=0;staticinta=5;

if(n%2){inta=6;t+=a++;}

eIse{inta=7;t+=a++;}

returnt+a++;

main()

{ints=a,i=0

for(;i<2;i++)s+=f(i);

printf("%d\n",s);

程序运行后的输出成果是(B)

A)24

B)28

032

D)36

(43)有一种名为init.txt的文献,内容如下:

#defineHDY(A,B)A/B

#definePRINT(Y)Printf(uy=%d\n.,Y)

有如下程序

#include"init.txt”

main()

{inta=l,b=2,c=3,d=4,k;

K=HDY(a+c,b+d);

PRINT(K);

卜.面针对该程序的论述对的日勺是(D)

A)编译有错

B)运行出错

C)运行成果为y=0

D)运行成果为y=6

(44)有如下程序

main()

(charch[]="uvwxyz",*pc;

Pc=ch;printf("%c\n”,*(pc+5));

)

程序运行后时输出成果是(A)

A)z

B)0

C)元素ch[5]1向地址

D)字符y的地址

(45)有如下程序

structS{intn;inta[20];};

voidf(structS*P)

{inti,j,t;

for(i=O;in-l;i++)

for(j=i+l;jn;j++)

if(p->a[i]>p->a[j]){t=p->a[ij;p->a[i]=p->a[j];p->a[j]=t;}

)

main()

{inti;structSs={10,{2,3,1,6,8,7,5,4,10,9));

f(&s);

for(i=0;iprintf("%d”,s.a[i]);

)

程序运行后的输出成果是(A)

A)1,2,3,4,5,6,7,8,9,10,

B)10,9,8,7,6,5,4,3,21,

C)231,6,8,7,5,4,10,9,

D)10,9,8,7,6,1,2,3,4,5,

(46)有如下程序

struetS(intn;inta[20];};

voidf(int*a,intn)

{inti;

for(i=0:ia[il+=i;

}

main()

{inti;structSs={1(),{2,3,1,6,8,7,5,4,10,9}};

f(s.a,s.n);

fbr(i=0;iprintf("%d”

)

程序运行后的输出成果是(A)

A)2,4,3,9,12,12,11,11,18,9,

B)3,4,2,7,9,8,6,5,11J0,

C)2,34,6,8,7,5,4,10,9,

D)l,2,3,6,8,754,10,9,

(47)有如下程序段

typedefstructnode{intdata;structnode*next;}*NODE;

NODEp;

如下论述对的的是(C)

A)p是指向structnode构造变量的指针的指针

B)NODEp;语句出错

C)p是指向structnode构造变量的)指针

D)p是structnode构造变量

(48)有如下程序

main()

{unsignedchara=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)有如下程序

#inc1ude

main()

{FILE*fp;intk,n,a[6]={1,2,345,6};

fp=fopen("d2.dat”,"w");

fprintf(fp,"%d%d\n”,a[0],a[l],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(M%d%d\nM,k,n);

fclose(fp);

}

程序运行后的输出成果是(D)

A)12

B)14

C)1234

D)123456

(50)有如下程序

#inc1ude

main()

{FILE*fp;inti,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]);

J

程序运行后的输出成果是(A)

A)4,5,6,4,5,6,

B)l,2,3,4,5,6,

C)4,5,6,l,2,3,

D)65,4,3,2,1,

二.填空题(每空2分,共40分)请将每一种空的对的答案写在答题卡[1]至[20]序号的横

线上,答在试卷上不得分。注意:以命令关键字填空时必须写完整.

(1)在深度为7时满二叉树中,度为2H勺结点个数为―63o

(2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于一黑箱(或

黑盒)测试。

(3)在数据库系统中,实现多种数据管理功能的关键软件称为—数据库管理系

统一。

(4)软件生命周期可分为多种阶段,一般分为定义阶段、开发阶段和维护阶段。

编码和测试属于开发阶段。

(5)在构造化分析使用的数据流图(DFD)中,运用数据字典对其中的图形元素进行确

切解释。

(6)执行如下程序后的输出成果是a=14o

main()

{inta=10;

a=(3*5,a+4);printf(Ma=%d\nv,a);

(7)当执行如下程序时,输入〈回车,,则其中while循环体将执行0

次。

#include

main()

{charch;

While((ch=getchar())==,0,)printf(U#M);

I

(8)(8)如下程序的运行成果是m=4k=4i=5k=5

intk=0;

voidfun(intm)

{m+=k;k+=m;printf(am=%d\nk=%d”,m,k++);)

main()

{inti=4;

fun(i++);prinIf("i=%dk=%d\n”,i,k);

(9)(9)如下程序的运行成果是#&

main()

{inta=2,b=7,c=5;

switch(a>0)

{case1:switch(b<0)

{casel:switch("@");break;

Case2:printff'!");break;

}

case0;switch(c——5)

{case0:printf("*");break;

case1:printf("#");break;

case2:print$”);break;

defauIt:print

printf(“\n");

)

(10)如下程序的输出成果是9

#include

main()

{printR"%d\n'',strIen(uIBM\nO12\l\V9);

)

(11)已定义chareh="$”;inti=l,j;执行j二!ch&&i++后来,i时值为1

(12)如下程序的输出成果是54

#inc1ude

main()

printf("%d%d\n”,sizeof(a),srelen(a));

)

(13)设有定义语句:inta[][3]={{0},{1},{2}};,则数组元素a[1][2的值为0

(14)如下程序的功能是:求出数组x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论