2025年全国计算机等级考试二级C语言全真模拟试卷及答案(共五套).docx

上传人:李司机 文档编号:7201597 上传时间:2024-06-29 格式:DOCX 页数:34 大小:79.31KB
返回 下载 相关 举报
2025年全国计算机等级考试二级C语言全真模拟试卷及答案(共五套).docx_第1页
第1页 / 共34页
2025年全国计算机等级考试二级C语言全真模拟试卷及答案(共五套).docx_第2页
第2页 / 共34页
2025年全国计算机等级考试二级C语言全真模拟试卷及答案(共五套).docx_第3页
第3页 / 共34页
2025年全国计算机等级考试二级C语言全真模拟试卷及答案(共五套).docx_第4页
第4页 / 共34页
2025年全国计算机等级考试二级C语言全真模拟试卷及答案(共五套).docx_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《2025年全国计算机等级考试二级C语言全真模拟试卷及答案(共五套).docx》由会员分享,可在线阅读,更多相关《2025年全国计算机等级考试二级C语言全真模拟试卷及答案(共五套).docx(34页珍藏版)》请在三一办公上搜索。

1、a=l,*b=&a,*c=&b;D)doublea=0.0;b=l.1;(16)有以下程序段charch;intk:ch,a;k=12;printf(%c,%d,ch,ch,k);printfCk=%dn,k);已知字符a的ASCH码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹史输出无定值B)揄出项与格式描述符个数不符,输出为零值或不定值C)a,97.12k=12D)a.97,k=12(17)已知字母A的ASCll码值为65,若变量kk为Char型,以下不能正确判断出kk中的值为大写字母的表达式是)kk=fA&kk=Akk=a&(kk+32)=,ZD)isalph

2、a(kk)M(kk=2&c=2&c=2&cb)a=b;c=a;if(c!=a)c=b;printf(%d,%d,%dn,a,b,c);其输出结果是A)程序段有语法错B)3,5,303,5,5D)3,5.7(20)有以下程序#includemain()intx=l,y=O,a=O,b=O;switch(x)case1:switch(y)case0:a+;break;case1:b+;break;case2:a+;b+;break;case3:a+;b+;A)可以用*p表示s0B)s数组中元素的个数和p所指字符串长度相等C)S和P都是指针变量D)数组S中的内容和指针变量P中的内容相同(26)若有定

3、义:inta23;,以下选项中对a数组元素正确引用的是A)a2!lB)aC)a0D)al2!l(27)有定义语句:Chars10;,若要从终端给S揄入5个字符,错误的输入语句是)gets(&s0);B)scanf(%s,s+l);C)gets(三);D)scanf(%s,sl);(28)以下叙述中错误的是A)在程序中凡是以开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束OttdefineMAX是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)以下结构体类型说明和变量定义中正确的是A)tupedefStrctintn;charc;REC;RE

4、Ctl,t2;B) tupedefstrct(intn;charc;RECtl.t2;C)tupedefstrctKEC;intn=0;charc=;)tl,t2;D)strct(intn;charc;IREC:RECtl,t2;(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符Ofputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)有以下程序includemain()ints12=1,2,3,4,4,3,2,l,l,l,2,3,c5=0,i;C)bcc,aabccD)aabcc,bcc(34)有以

5、下程序includeintf(intx)inty;if(x=OjX=I)return(3);y=x*-f(-2):returny;)main()intz;z=f(3);printf(%dn,z);)程序的运行结果是A)0B)906D)8(35)有以下程序#includevoidfun(char*a,char*b)while(*a=,*)a+;while(*b=*a)b+;a+;)main()char*s=*a*b*,t80;fun(s,t);puts(t);)程序的运行结果是A)*a*bB)a*bC)a*b*)ab(36)有以下程序#includeeincludetypedefstructch

6、arname9;charsex;floatscore2;STU;voidf(STUa)STUb=Zhaom,85.0,90.0;inti;strcpy(a.name,b.name);a.sex=b.sex;for(i=0:i2;i+)a.scorei=b.scorei;请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不绐分。(1)测试用例包括输入值集和【1】值集。(2)深度为5的满二叉树有【2】个叶子结点。(3)设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有3个元素。(4)在关系数据库中,用来表示实体之

7、间联系的是4。(5)在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,【5】负责数据的模式定义与数据的物理存取构建。(6)巳有定义:Charc=;inta=l,b;(此欠C的初值为空格字符),执行b=!c&a;后b的值为【6】o(7)设变量已正确定义为整型,则表达式n=i=2,+i,i+的值为7o(8)若有定义:intk;,以下程序段的输出结果是8。for(k=2:k6:k+,k+)prinlf;(9)以下程序的定义语句中,xl的初值是9】,程序运行后输出的内容是【10】oincludemain()intx=l,2,3,4,5,6,7,8.9,10,11,12,13,14,15

8、,16,*p4.i;for(i=0;i4;i+)(pi=ftx2*i+l;printf(%d,pi0);)printf(n);)(10)以下程序的输出结果是11o#includevoidswap(int*a.int*b)int*t;t=a;a=b;b=t;)main()inti=3,j=5,*p=&i,*q=j;swap(p,q);printf(%d%dn,*p,*q);fp=fopen(15);ch=fgetc(fp);while(!feof(fp)putchar(ch);ch=fgetc(fp);putchar(,nz);fclose(fp);一、选择题(DC【解析】程序流程图是人们对解决

9、问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:一或表示控制流;口表示加工步骤;表示逻辑条件。(2)A【解析】结构化程序设计的原则包括:“自顶而下,逐步求精的设计思想,独立功能,单出、入口的模块化设计等。多态性是面向对象程序语言的特征。(3)B【解析】模块划分应遵循的准则包括模块之间的耦合和内聚。一般来说,要求模块之

10、间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高.即高内聚、低耦合的原则。(4)B【解析】需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审等四方面。产生的主要文档为软件需求规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。(5)A【解析】算法具有6个特性:有穷性:一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的;确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。可行性:一个算法是可行的,即算法中描

11、述的操作都是可以通过已经实现的基本运算执行有限次来实现。输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。输出:一个算法有一个或多个输出。(6)D【解析】在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都n(nT)2,堆排序需要比较的次数为nlog2n.(7)B【解析】在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先被删除的元素:栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照先进后出“或“后进先出的原则组织数据的。(18)B【解析】满足表达式(c=2&c=6)的整型变量c的值

12、是2,3,4,5,60当变量C的值不为2,4,6时,其值只能为3或5,所以表达式c!=3和C!=5中至少有一个为真,即不论C为何值,表达式B)都为”真、正确答案为B)。(19)B【解析】两个if语句的判断条件都不满足,程序只执行了c=a这条语句,所以变量C的值等于3,变量b的值没能变化,程序输出的结果为3,5,3。所以正确答案为B)。(20)D【解析】本题考查了SWitCh结构的内容。C语言中,程序执行完一个CaSe标号的内容后,如果没有break语句,控制结构会转移到下一个case继续执行,因为CaSe常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部SWitCh结

13、构后,继续执行了外部SWitCh结构的case2:分支。最后a和b的值分别为2和1(2DD【解析】本题中,程序每执行一次循环X的值减2,循环共执行4次。当X的值为8,4,2时,printf语句先输出X的值,再将X的值减U而当X为6时,if语句条件成立,程序先将X的值减I,再将其输出。所以揄出结果为选项D)。(22)A【解析】选项A)中变量n的值,先自加1,再进行循环条件判断,此时循环条件n2!l(27)有定义语句:Chars10;,若要从终端给S输入5个字符,错误的输入语句是A)gets(s0);B)scant(%s,s+l);C)gets(三);D)scanfC,%s,sl);(28)有以下

14、程序#include#defineN5defineMN+l/definef(x)(x*M)main()intil,i2;il=f(2);i2=f(l+l);printf(%d%dn,il,i2);程序的运行结果是)程序的运行结果是A)0987654321B)4321098765O5678901234D)0987651234(33)阅读下列程序,当运行函数时,输入asdafaaz67,则输出为#include#include#includeintfun(char*str)inti,j=0;for(i=0;stri!=r0,;i+)if(stri!三,)strj+=stri;strj=,0,;ma

15、in()(charstr81;intn;printf(Inputastring:);gets(str);puts(str);fun(str);printf(w%sn,str);A)asdafaaz67B)asdafaaz67OasdD)z67(34)有以下程序intfun(intn)if(n=l)return1;elsereturn(n+fun(n-l);)main()intx;scant(%d,x);x=fun(x);printf(%dn,x)执行程序时,给变量x输入10,程序的输出结果是(4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体项目主管与实体项目的联系.属于11J的

16、联系。(5)数据库设计分为以下6个设计阶段:需求分析阶段、【5】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。(6)阅读下面程序段,则执行后输出的结果是6】。#includestdio.hmain()charfun(char,int);chara=A;intb=13;a=fun(a,b);putchar(八):charfun(chara,intb)chark:k=a+b;returnk;)(7)函数fun的返回值是7fun(char*a,char*b)intnum=0.n=0;While(*(a+num)!=0)mm+;while(bn),*(a+nun)=bn;num+;n+;re

17、turnnum;)(8)以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,若一维数组中的数据是:2223445666677899101010删除后,数组中的内容应该是:23456789IOe请填空。/includeWefineN80intfun(inta,intn)inti,j=l;for(i=l;i=2&c=6)的整型变量c的值是2,3,4,5,6o当变量C的值不为2,4,6时,其值只能为3或5,所以表达式c!=3和c!=5中至少有一个为真,即不论c为何值,表达式B)都为“真二(19)B【解析】条件运算符要求有

18、3个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式1?表达式2:表达式3其求解顺序是:先求解表达式1,若为非0(真)则求解表达式2.此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值,注意+、一的用法。(20)B【解析】在一维数组中要注意的是作为下标表达式的常量表达式的值必须是大于等于0,选项B)中定义有5个元素,但赋值时有6个元素,所以是错误的。(2DB【解析】本题中,al2是二维数组中的第6个元素,对应for循环中i的值为5,p5=5+lo(22) B【解析】本题中,”!表示

19、逻辑非运算符,!=表示不等于运算符,逻辑非运算符比不等于运算符的优先级高。(23) C【解析】对于字符串指针,其保留的是整个串的首地址,即第一个字符的起始地址;当该指斜做算术运算时,就是该指针根据其类型向后移动相应的存储空间。(24)A【解析】数组c4表示一个4行4列数组,c22表示第3行第3列上的元素62,*(*(c+l)+l)表示第2行第2列上的元素6,通过十六进制输出为3e,6。(25)C【解析】选项A)char*a;*a=china应改为a=china;,选项B)应该是charstr6:D)项表述方法有错误。(26)D【解析】C语言中数组下标是从O开始的,所以二维数组a23的第一维下标

20、取值为0、1;第二维的下标取值为0、1、2,因而选项A)、B)、C)都是错误的.选项D)表示数组元素a00.(27)D【解析】在格式输入中,要求给出的是变易的地址,而D)答案中给出的sl是一个值的表达式。(28)B【解析】根据宏替换的替换规则,我们可知,f(2)=2*N+l=2*5+l=ll,f(l+D=l+l*N+l=l+l*5+l=7(29)D【解析】选项A),共用体的每个成员的起始地址都相同;选项B),共用体变量所占的内存长度等于最长的成员的长度;选项C)因为每个成员的起始地址相同,所以整型数5以浮点型输出时为5.OOOOOO:选项D)C语言规定,不能把共用体变量作为函数的参数。(30)

21、D【解析】将有6个元素的整型数组分两行输出到一个文件中,因为输出的都是数字并且每行都没有分隔符,所以当再对其进行读取操作时,每一行都会被认为是一个完整的数,而换行符则作为它们的分隔符。(3DD【解析】通常,引用一个数组元素可以用下标法,如ap-a形式,或指针法,如的形式。本题中a9=9,a10显然超出数组范围,注意,数组的下标是从。开始的。(32)C【解析】函数fun(int*s,intnl,intn2)的功能是对数组S中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a12=4,3,2,1,5,6,7,8,9,0;再执行fun(a,4,9),数组a12=4,3,2

22、,l,0,9,8,7,6,5);再执行fun(a,0,9)后,数组a12=(5,6,7,8,9,0,l,2,3,4o(33) A【解析】本题题意要求删除所有空格,即除了空格以外的其他所有字符都要留下。由于C语言中没有直接删除字符的操作,所以我们对于删除字符的操作都是采用留下字符的算法,以前的题目亦是如此。用stri从串头到串尾逐一走动,每走到一个字符都判断其是否为空格,若不是空格(注意在if()的单引号之间有一个空格),则将其保存Strj中。注意j的下标变化、初值及最后加串结束符,0,o(34) A【解析】本程序考察的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称

23、为函数的递归调(14)15“filea.dat”,“r”【解析】f。Pen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开fileadat文件,并且是要读取文件中的内容,所以空白处应当填入“filea.dat,r。2025年全国计算机等级考试二被C语Ir全真模拟试卷及答案(三)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)软件是指A)程序B)程序和文档C)算法加数据结构D)程序数据与相关文档的完整集合(2)检查软件产品是否符合需求定义的过程称为A)确认测试B)集成测试C)

24、验证测试D)验收测试(3)以下不属于对象的基本特点的是A)分类性B)多态性C)继承性D)封装性(4)在设计程序时,应采纳的原则之一是A)不限制got。语句的使用B)减少或取消注解行C)程序越短越好D)程序结构应有助于读者理静(5)下列叙述中正确的是A)程序执行的效率与数据的存储结构密切相关的效率只取决于程序的控制结构C)程序执行的效率只取决于所处理的数据量法都不对构中,与所使用的计算机无关的是数据的B)程序执行D)以上三种说(6)数据结A)存储结构B)物理结构C)逻辑结构D)物理和存储结构(7)线性表的顺序存储结构和线性表的链式存储结构分别是A)顺序存取的存储结构、顺序存取的存储结构B)随机存

25、取的存储结构、顺序存取的存储结构C)随机存取的存储结构、随机存取的存储结构D)任意存取的存储结构、任意存取的存储结构(8)树是结点的集合,它的根结点数目是A)有且只有1B)I或多于1C)O或1D)至少2(9)下列有关数据库的描述,正确的是A)数据库是一个DBE文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件(10)数据库、数据库系统和数据库管理系统之间的关系是则结构变量b占用内存的字节数是A)lB)2C)7D)ll(30)有以下程序ftincludemain()FI1.E*fp;inti,a6=l,2,3,4,5,6);fp=fopen(d3.dat,w+bn);f

26、write(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;i6;i+)printf(%d,ai);)程序运行后的输出结果是A)4,5,6,4,5,6,B)1,2,3,4,5,6,04,5,6,1,2,3,D)6,5,4,3,2,l,(31)有以下程序#includemain()ints12=1,2,3,4,4,3.2,l,l,l,2.3.c5=0,i;for(i=0;i12;i+)c

27、si+;for(i=l;i5;i+)printf(%d,ci);printf(n);)程序的运行结果是A)1234B)2344C)4332D)1123(32)有以下程序Sincludevoidfun(int*a,intn)*fun函数的功能是将a所指数组元素从大到小排序*/intt,i,j;for(i=0;in-l;j+)for(j=i+l;jn;j+)if(aiaj)t=ai;ai=aj;aj=t;)main()intc10三l,2,3,4,5,6,7,8,9,0,i;fun(c+4,6);for(i=0:i10;i+)printf(%i,ci);printf(n);程序的运行结果是A)1,

28、2,3,4,5,6,7,8,9,0,B)0,9,8,7,6,5,1,2.3.4,00,9,8,7,6,5,4,3,2,1,D)1,2,3,4,9,8,7,6,5,0,(33)下面程序的输出结果是#includetfincludemain()char*pl=abcw,*p2=ABC*,str50=xyz;strcpy(str+2,strcat(pl.p2);printf(%sn.str);A)XyzabcABCB)zabcABCC)XyabCABCD)yzabcABC(34)以下函数返回a所指数组中最小的值所在的下标值fun(int*a.intn)inti,j=O,p;P=j;for(i=j;i

29、n;i+)if(aiap);return(p);在横线处应境入的是)i=pB)apj=aiC)p=jD)p=i(35)下列程序的运行结果为ftincludevoidabc(char*str)inta,b;for(a=b=0:stra!=0;a+)if(stra!=c,)strb+=stra;strb=,O;voidmain()charstr=abcdef;abc(str);printf(str=%s,str);)str=abdefB)str=abcdefC)str=aD)str=ab(36)有以下程序include空。ttincludemain()inta,b,c,I:a=c=0;for(T=

30、0;K=10;I+=2)a+=I;(8;c+=b;Printf(偶数之和=%dn,a);Printf(奇数之和=%dn,cTl);(9)以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。#defineN4voidrotade(intaN,intbN)intI,j;for(1=0;KN;I+)blN-U=9;10=aN-ll:(10)以下程序的输出结果是11oincludevoidswap(int*a,int*b)int*t;t=a;a=b:b=t;main()

31、inti=3,j=5,*p=&i,*q=j;swap(p,q);printf(%d%dn,*p,*q);)(U)下面程序的运行结果是【12】。ftincludeWefineSIZE12main()charsSIZE;intI;for(1=0;KSIZE;I+)sl=f,+1+321;sub(s,7,SIZE-1);for(I=O5KSIZE;I+)printf(%c,sI);printf(n);)sub(char*a,inttl,intt2)charch;while(tlt2)ch=*(a+tl);*(a+tl)=*(a+l2):*(a+t2)=ch;tl+;t2;)(12)以下程序的输出结果

32、是13。eincludemain()inta5=2,4,6,8,IOi,*p;p=a:p+;printf(%d,*p);(13)设有定义structinta;floatb;charc;)abc,*pabc=&abc;,则对结构体成员a的引用方法可以是abc.a和Pabc14a,(14)以下程序的运行结果是【15】oincludemain()FI1.E*fp;inta10=l,2,3,0,0,i;fp=fopen(wd2.datw,wb);fwtite(a,sizeof(int),5,fp);fwrite(a,sizeof(int),5,fp);fclose(fp);fp=fopen(d2.da

33、t,rb);fread(a,sizeof(int),10,fp);fclose(fp);for(i=0:i10;i+)printf(%d,ai);)一、选择题(I)D【解析】软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。(2)【解析】确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明中确定的各种需求;集成测试的主要目的是发现与接口有关的错误。(3)C【解析】对象的基本特点:标识惟一性、分类性、多态性、等号左边数组的行数2。(25)D【解析】C语言中操作一个字符串常量的方法有:将字符串常量存放在一个字符数组之中;用字

34、符指针指向字符串,然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。本题D)项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语旬中整体赋值。(26)D【解析】C语言中数组下标是从O开始的,所以二维数组a23的第一维下标取值为0、1;第二维的下标取值为0、1、2.因而选项A)、B)、C)都是错误的,选项D)表示数组元素a00.(27)B【解析】SCanfo语句用空格区别不同的字符串;getc()与getchar()语句不能用于字符串的读入。(28)A【解析】带参数的宏定义命令行形式如下:#define宏名(形参

35、表)替换文本。首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为(八)*(b)(c)o(29)D【解析】结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题中整型变量i所占用的内存是2字节,字符型变量Ch所占用的内存是1字节,双精度型变量f所占用的内存是8字节,三者相加即可。(30)A【解析】首先利用fwrite函数将数组a中的数据写到文件中,接着fseek函数的功能是读文件的位置,指针从文件头向后移动3个int型数据,这时文件位置指针指向的是文件中的第4个int数据4,然后fread函数将文件fp中的后3个数据4,5,6读到数组a中,这样就覆盖了数组中原来的前3项数据。最后数组中的数据就成了4,5,6,4,5,6o(31)C【解析】在for(i=0;i12;i+)csi+中,数组元素si的值作为数组C的下标,当退出循环时,数组C的4个元素的值分别为4、3、3、2.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号