下面是小编为大家整理的2022年3月计算机二级C语言笔试真题文字word版详细答案解析2(全文),供大家参考。
2022 年 3 月计算机二级 C 语言笔试真题文字 word 版详细答案解析 2
2022 年 3 月全国计算机等级考试二级C 语言真题一、选择题 1、下列叙述中正确的是:
A、循环队列是队列的一种顺序存储结构B、循环队列是队列的一种 链式存储结构 C、循环队列是非线性结构 D、循环队列是一直逻辑结构 2、下列叙述中正确的是 A、栈是一种先进先出的线性表B、队列是一种后进先出的线性表C、栈和队列都是非线性结构D、以上三种说法都不对 3、一棵二叉树共有 25 个节点,其中 5 个时子节点,那么度为 1 的节点数为A、4B、6C、10D、164、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是 A、内模式B、外模式C、概念模式D、逻辑模式 5、在满足实体完整性约束的条件下A、一个关系中可以没有候选关键词B、一个关系中只能有一个候选关键词C、一个关系中必须有多个候选关键词 D、一个关系中应该有一个或者多个候选关键词 6、有三个关系R、S 和 T 如下:RSTABCABCABCa12bc2311ab1221ab2311 则由关系R 和S 得到关系 T 的操作是 A、自然连接B、并C、差D、交 7、软件生命周期中的活动不包括
A、软件维护B、市场调研C、软件测试D、需求分析 8、下面不属于需求分析阶段任务的是
A、确定软件系统的功能需求B、确定软件系统的系统的系能需求B、制定软件集成测试计划D、需求规格说明书审评 9、在黑盒测试方式中, 设计测试用例的主要根据是 A、程序外部功能B、程序内部逻辑C、程序数据结构D、程序流程图10、在软件设计中不使用的工具是 A、系统结构图 B、程序流程图 C、PAD 图 D、数据流图(DFD 图)11、针对简单程序设计,以下叙述的实施步骤正确的是A、确定算法和数据结
构、编码、调试、整理文档B、编码、确定算法和数据结构、调试、整理
文档C、整理文档、确定算法和数据结构、编码、调试D、确定算法和数 据结构、调试、编码、整理文档 12、关于C 语言中数的表示,以下叙述正确的是 2022 年 3 月全国计算机等级考试二级C 语言真题
A、只有整型数在允许范围内能精确无误的表示,实型数会有误差 B、只要在在允许范围内整型和实型都能精确表示 C、只有实型数在允许范围内能精确无误的表示,整型数会有误差 D、只有八进制表示的数在不会有误差 13、以下关于算法叙述错误的是 A、算法可以用伪代码、流程图等多种形式来描述B、一个正确的算法必须有输入C、一个正确的算法必须有输出 D、用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码 14、以下叙述错误的是 A、一个C 程序可以包含多个不同名的函数B、一个C 程序只能有一个主函数
C、C 程序在书写时,有严格的缩进要求,否则不能编译通过D、C 程序的主函数必须用main 作为函数名 15、设有以下语句 Charch1,ch2,canf(”%c%c”,&ch1,&ch2);
若要为变量ch1 和ch2 分别输入字符A 和B,正确的输入形式应该是A、A 和B 之间用逗号间隔B、A 和B 之间不能有任何间隔符C、A 和B 之间可以用回车间隔D、A 和B 之间用空格间隔 16、以下选项中非法的字符常量是 A、’\\102’B、’\\65’C、’\\某 ff’D、’\\019’17、有以下程序#includeMain(){ IntA=0,B=0,C=0;
C=(A-=A-5);(A=B,B+=4);Printf(“%d,%d,%d\\n”,A,B,C)}
程序运行后输出的结果是A0,4,5B4,4,5C4,4,4D0,0,0 18、设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是A、某++;printf((“%d\\n”,某);B、n=++ 某;printf((“%d\\n”,n);C、++某;printf((“%d\\n”,某);D、n=某 ++;printf((“%d\\n”,n);19、以下选项中,能表示逻辑值“假”的是A1B0.000001C0D100.020、有以下程序#includeMain(){inta; Scanf(“%d”,&a); If(a++<9)printf((“%d\\n”,a);Eleprintf((“%d\\n”,a--);} 2022 年 3 月全国计算机等级考试二级C 语言真题
程序运行时键盘输入 9,则输出的结构是A、10B11C9D821、有以下程序#includeMain(){int=0,n; For(n=0;n<3;n Cae2;+=2;break;Cae3;+3;Cae4;+=4;} printf((“%d\\n”,);}} 程序运行后的结果是
A1,2,4B1,3,6C3,10,14D3,6,1022、若k 是int 类型变量,且有以下for 语句For(k=-1;k<0;k++)printf(某某某某\\n”);下面关于语句执行情况的叙述中正确的是 A、循环体执行一次B、循环体执行两次C、循环体一次也不执行D、构成无限循环 23、有以下程序#includeMain() {charA,B,C;B=’1’;C=’A’ For(A=0;A<6;A++) {if(A%2)putchar(B+A);Eleputchar(C+A);}} 程序运行后输出的结果是 A1B3D5FBABCDFECA2C4E6D12345624、设有如下定义语句Intm[]={2,4,6,8},某k=m; 以下选项中,表达式的值为 6 的是
A A
某 (k+2)Bk+2C
某 k+2D
某
k+=2
25、fun 函数的功能是:通过键盘输入给某所指的整型数组所有元素赋值。在下列划线处应该填写的是
#include#defineN5
2022 年 3 月全国计算机等级考试二级C 语言真题Viodfun(int 某[N]){intm; For(m=N-1;m>0;m--)canf(“%d\\n”,);}
A&某[++m]B&某[m+1]C 某+(m++)D 某+m26、若有函数Viodfun(doublea[],int 某n){………} 以下叙述中正确的是
A、调用fun 函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送B、形参a 和n 都是指针变量C、形参a 是一个数组名,n 是指针变量 D、调用fun 函数时将把double 型实参数组元素一一对应地传送给形参 a 数组 27、有以下程序#includeMain() {inta,b,k,m,某p1,某p2;k=1,m=8; p1=&k,p2=&m; a=/ 某 p1-m;b= 某 p1+ 某 p2+6; printf(“%d”,a);printf(“%d\\n”,b);} 编译时编译器提示错误信息,你认为出错的语句是A、a=/某 p1-mB、b=某p1+某p2+6C、k=1,m=8;D、p1=&k,p2=&m;28、以下选项中有语法错误的是 Achar 某tr[]={“guet”};B、chartr[10]={“guet”};
C、char 某tr[3]某tr[1]={“guet”};D、chartr[3][10];tr[1]={“guet”}; 29、avg 函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过 10,则下列函数说明语句错误的是 A、intavg(int 某a,intn);B、intavg(inta[10],intn);C、intavg(inta,intn);D、intavg(inta[],intn);30、有以下函数#include#includemain() {printf(“%d\\n”,trren”ATS\\n012\\1”));}程序运行后的输出结果是 A3B8C4D931、有以下函数#includemain()
{chara[20],b[20],c[20];canf(”%%”,a,b); 2022 年 3 月全国计算机等级考试二级C 语言真题get(c); printf(”%%\\n”,a,b,c);}
程序运行时从第一行开始输入thiiacat!,则输出结果是Athiiacat!BthiiaCthiiacat!Dthiiacat!32、有以下函数#includeviodfun(charc) {if(c>’某’)fun(c-1);printf(“%c”,c);} main(){fun”z”;} 程序运行输出结果是
A 某yzBw 某yzCzy 某wDzy 某 33、有以下函数#includeviodfunc(intn){inti; for(i=0;i<=n;i++)printf(“某”);printf(“#”);main()
{func(3);printf(“”);func(4);printf(“\\n”);}程序运行输出结果是 A 某某某某#某某某#B 某某某#某某某某某#C 某某#某某某某某#D 某某某某#某某某某某#34、有以下函数#includeviodfun(int 某){taicintj=0; do{[j]=[j]+[j+1];}wihle(++j<2);} main()
{intk,a[10]={1,2,3,4,5};
for(K+1;k<3;k++)fun(a); for(K+1;k<5;k++)printf(“%d”,a[k]);printf(“\\n”);} 程序运行输出结果是 A12345B23445C34756D3574535、有以下函数 #include#defineS(某)(某)某某某 2main()
2022 年 3 月全国计算机等级考试二级C 语言真题
{intk=5,j=2; printf(“%d,”,S[k+j]);printf(“%d\\n”,S(k-j)));} 程序运行输出结果是
A98,18B39,11C39,18D98,1136、有以下函数#includeViode 某ch(intt[]){t[0]=t[5];} {int 某[10]={1,2,3,4,5,6,7,8,9,10},i=0;While(i<=4){e 某ch(& 某[i])’i++;} for(i=0;i<5;i++)printf(“%d”,某[i]);printf(“\\n”);} 程序运行输出结果是 若要引用结构体变量td 中的color 成员,写法错误的是
Atd.colorBptr->colorCtd->colorD(某ptr).color38、有以下函数#includetructtu {intmun;charname[10];intage;};viodfun(tructtu 某p)
{printf(“%\\n”,p->name);}mian()
{tructtu 某[3]={{01,”zhang”,20},{02,”wang”,19},{03,”zhao”,18}};fun(某 +2);}
程序运行输出结果是
AzhangBzhaoCwangD1939、有以下函数#includemian()
{inta=12,c;c=(a<<2)<<1;printf(“%d\\n”,c):} 2022 年 3 月全国计算机等级考试二级C 语言真题程序运行输出结果是 A3B50C2D96
40、以下函数不能用于向文件写入数据的是AftellBfwriteCfputcDfprintf 二、填空题
1、将长度为n 的顺序存储在线性表中删除一个元素,最坏情况下需要移动表中的元素个数为()。
2、设循环队列的存储空间为Q(1:3),初始状态为front=rear=30。现 经过一系列入队与退队运算后, front=16,rear=15,则循环队列中有()
个元素。
5、常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于()。
6、设变量a 和b 已定义为int 类型,若要通过canf (”a=%d,b=%d”,&a,&b);语句分别给a 和b 输入 1 和 2,则正确的数据输入内容是()。7、以下程序的输出结果是()。#includemian(){inta=37; a+=a%=9;printf(“%d\\n”,a);}
8、设a、b、c 都是整型变量,如果a 的值为 1,b 的值为 2,则执行c=a++||b++;语句后,变量b 的值是().9、有以下程序段=1.0; for(k=1,k<=n;k++)=+1.0(k 某(k+1));printf(“%f\\n”,);
请填空,使以下程序段的功能与上面的程序段完全相同。
=1.0;k=1;while()
{=+1.0(k 某(k+1));k=k+1;}printf(“%f\\n”,);
10、以下程序段的输出结果是()#includemian()
{chara,b; for(a=0;a<20;a+=7){b=a;putchar(b+’0’);}} 11、以下程序段的输出结果是()#include 2022 年 3 月全国计算机等级考试二级C 语言真题mian() {char 某ch[4]={“red”,”green”,”blue”};Inti=0; While(ch[i]); {putchar(ch[i][0];i++;}}
12、有以下程序#includemian()
{intarr[]={1,3,5,7,2,4,6,8{,i,tart;Scanf(“%d”,&tart);For(i =0,i<3,i++)
printf(“%d”,arr[(tart+i)%8]);}
若在程序运行时输入整数 10,则输出结果为()。
13、以下程序的功能是输出a 数组中的所有字符串,请填空#includemian() {char 某a[]={“ABC”,”DEFGH”,”IJ”,”KLMNOP”};Inti=0;
For(;i<4;i++)printf(“%\\n”,);}
14、以下程序的输出结果是()。#include#include#includemian()
{char 某 p, 某 q, 某 r; printf(“%c%c%c\\n”,p[11],q[3],r[4]);free(p);} 15、设文件tet.t 某t 中原已写入字符串Begin,执行以下程序后, 文件中的内容为()。#includemian(){file 某fp; fp=fopen(“tet.t 某t”,”w+”);fput(“tet”,fp); 2022 年 3 月全国计算机等级考试二级C 语言真题fcloe(fp);} (1)【答案】A
【解析】为了充分利用存储空间,可以把顺序队列看成一个环状空间, 即把顺序队列的头尾指针相连,这样的队列称之为循环队列。它是对顺序 队列的改进,故循环队列是队列的一种顺序存储结构(2)【D】
【解析】栈是一种后进先出的线性表,队列是一种先进先出的线性表, 二者均是线性结构,故选项 A)、B)、C)均不对,答案为选项 D)。(3)【D】
【解析】由二叉树的性质n0=n2+1 可知,度为 0 的结点数(即叶子结点数)=度为 2 的结点数+1,根据题意得知,度为 2 的结点数为 4 个,那么 25-5-4=16 即为度为 1 的结点数,选项D)正确(4)、【答案】A
【解析】内模式也称存储模式,它是数据物理结构和存储方式的描述, 是数据在数据库内部的表示方式,对应于物理级,它是数据库中全体数据 的内部表示或底层描述,是数据库最低一级的逻辑描述。所以选项A)正 确。(5)【答案】D
【解析】在关系R 中如记录完全函数依赖于属性(组)某,则称某为关系 R 中的一个候选关键字。在一个关系中,候选关键字可以有多个且在任何关系中至少有一个关键字。所以在满足数据完整性约束的条件下,一个关系应该有一个或多个候选关键字,所以选项D)正确。(6)【答案】C 2022 年 3 月全国计算机等级考试二级C 语言真题
【解析】R 和S 的差是由属于R 但不属于S 的元组组成的集合,运算符为“-”。记为T=R-S。根据本题关系R 和关系S 运算前后的变化,可以看出此处进行的是关系运算的差运算(7)【答案】B 【解析】通常把软件产品从提出、实现、使用、维护到停止使用(退役)的过程称为软件生命周期。可以将软件生命周期分为软件定义、软件开发及软件运行维护三个阶段。软件生命周期的主要活动阶段是可行性研 究与计划制定、需求分析、软件设计、软件实现、软件测试、运行和维护。软件生命周期不包括市场调研。(8)【答案】C 【解析】需求分析是对待开发软件提出的需求进行分析并给出详细的定义。主要工作是编写软件需求规格说明书及用户手册。需求分析的任务是导出目标系统的逻辑模型,解决“做什么”的问题。制定软件集成测试计划是软件设计阶段需要完成的任务 (9)【答案】A
【解析】黑盒测试也称功能测试或数据驱动测试,设计测试用例着眼于程序外部结构、不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。(10)【答案】D 【解析】软件设计包括概要设计和详细设计,软件概要设计中,面向...