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

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

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

1、2025年全国计算机等级考试二级C语言全真模拟试卷及答案(四)一、选择题在下列各题的A)、B).C),D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)软件生命周期中花费费用最多的阶段是A)详细设计R)软件编码C)软件测试D)软件维护(2)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序(3)以下不是面向对象思想中的主要特征的是A)多态B)继承C)封装D)垃圾回收(4)下列叙述中,不符合良好程序设计风格要求的是A)程序的效率第一,清晰第二B)程序的

2、可读性好O程序中要有必要的注释D)输入数据前要有提示信息(5)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指A)模块间的关系B)系统结构部件转换成软件的过程描述C)软件层次结构D)软件开发过程(6)数据处理的最小单位是A)数据B)数据元素C)数据项D)数据结构(7)假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为A)log2nB)n2C)0(nl.5)D)n(n-1)2(8)在深度为5的满二叉树中,叶子结点的个数为A)32B)31016D)15(9)数据库系统的核心是A)数据库B)数据库管理系统C)模拟模型D)软件工程(10) 一个关系中属性个数为1时,称此关

3、系为A)对应关系B)单一关系C)一元关系D)-元关系(11)下面各选项中,均是C语言合法标识符的选项组是)33weautoB)_23me_3ewC)_433e_elseD)ER-DF32(12)可在C程序中用作用户标识符的一组标识符是A)andB)DateC)HiD)CaSe2007y-m-dDr.TomBigl(13)以下对C语言函数的有关描述中,正确的是A)在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参B)C函数既可以嵌套定义又可以递归调用C)函数必须有返回值,否则不能使用函数D)函数必须有返回值,返回值类型不定(14)若函数调用时的实参为变量时,以下关于函数形参和实

4、参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(15)现有定义inta;doubleb;floatc;chark;.则表达式a/b+c-k值的类型为:A)intB)doubleC)floatD)char(16)以下关于long、int和ShOrt类型数据占用内存大小的叙述中正确的是A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定(17)有以下程序段intj;floaty;Charname50:SCanf&y,n

5、ame);当执行上述程序段,从键盘上输入555667777abc后,y的值为A) 55566.0B)566.0C)7777.0D)566777.0(18)若变量已正确定义,有以下程序段i=0;doprintf(%d,i);while(i+);printf(%dn,i);其输出结果是A)0,0B)0,lC)l,lD)程序进入无限循环(19)下列程序的运行结果是Wincludestdio.hmain()intx=-9,y=5,z=8;if(xy)if(y0)z=0;elsez+=l;printf(%dn,z);A)6B)7C)8D)9(20)若程序执行时的输入数据是2473,则下述程序的输出结果是

6、ftincludevoidmain()intcs;while(cs=getchar()!=;,n)switch(cs-2)case0case1:putchar(cs+4);case2:putchar(cs+4);break;case3:putchar(cs+3);default:putchar(cs+2);A)668977B) 668966C)6677877D)6688766(21)以下程序的输出结果是main()inta,i;a=O;for(i=l;i5;i+)switch(i)case0:case3:a+=2;case1:case2a=3;default:a+=5;printf(%dn,a

7、);)31B)13C)10D)20(22)现有如下程序段#inclu加stdio.hmain()intk30=12,324,45,6,768,98,21,34,453,456);intcont=0,i=0;while(ki)if(ki%2=Oki%5=0)count+;i+;printf(%d,%dn*,count,i);D)8,10则程序段的输出结果为A)7,8B)8,807.10(23)若有以下程序WinCIUdeinta=2,4,6,8;main()inti;int*p=a;for(i=0;i4;i+)ai=*p;printf(%dn,a2);)上面程序的输出结果是A)6B)8C)4D)

8、2(24)有以下程序includemain()inti,j,m=55;for(i=l;i=3;i+)for(j=3:j=i;j+)m=m%j;printf(%dn,m);)程序的运行结果是A)0B)lC)2D)3(25)已知字符A的ASClI码值是65,字符变量Cl的值是A,c2的值是D.执行语句Printf(%必如二(:12-2);后,输出结果是A),BB),68C)65,66D)65,68(26)下列程序是用来判断数组中特定元素的位置所在的。Winclude#includeintfun(int*s,intt,int*k)inti;*k=0;for(i=0:it;i+)if(s*ksi)*k

9、=i;returns*k;main()inta10=876,675,896,101,301,401,980,431,451,777),k;fun(a,10,&k);printf(*%d,%dn,k,ak);)如果输入如下整数:876675896IOl301401980431451777则输出结果为A)7,431B)60980D)6,980(27)下面程序的文件名为t.exe,在DOS下输入的命令行参数为:ttomeetme则程序输出的结果是includestdio.hmain(argc,argv)intargc:char*argv;inti;printf(%dn,argc);)A)3B)4C)

10、2D)以上答案都不正确(28)有如下程序inta10=l,2,3,4.5,6.7,8,9,10):int*p=&a3J,b;b=p5;则b的值是A)5B)6C)9D)8(29)以下叙述中错误的是A)改变函数形参的值,不会改变对应实参的值B)函数可以返回地址值C)可以给指针变量玳一个整数作为地址值D)当在程序的开头包含头文件Sldio.h时,可以给指针变量赋NU1.1.(30)下面程序的输出结果是ftincludemain()inta=l,2,3,4,5,6,7,8,9.0),*p;p=a;Printf(飞dn,*p+9);A)0B)lOlOD)9(31)有下面程序段includestdio.h

11、Wincludestring.hmain()chara320=*china,isa),bigcountry!;chark100=0,*p=k;i11ti;for(i=0;i3:i+)p=strcat(p,ai);i=strlen(p);printf(%dn,i);则程序段的输出结果是A) 18B)19C)20D)21(32)若有定义:char*st=*howareyou;,下列程序段中正确的是A)charall,*p;strcpy(p=a+l,ftst4);B)charall;strcpy(+a,st);Ocharaf11;strcpy(a,st);D)chara,*p;strcpy(p=&a

12、f1,st+2);(33)有以下程序includeintfun(chars)intn=0;WhiIe(*s=(O)(n=10*n+*s-r0,;s+;return(n);main()chars10=,6,1,4,9,0,printf(%dn,fun(三);)程序的运行结果是A)9B)61490C)61D)5(34)设有定义:CharP=1,2,3,*q=p;,以下不能计算出一个Char型数据所占字节数的表达式是)sizeof(p)B)SiZeOf(Char)Osizeof(*q)D)sizeof(p0)(35)有以下函数intaaa(char*s)char*t=s;while(*t+);t;r

13、eturn(t-s);以下关于aaa函数的功能的叙述正确的是A)求字符串S的长度B)比较两个串的大小C)将串S复制到串tD)求字符串S所占字节数(36)当用户要求输入的字符串中含有空格时,应使用的输入函数是A)scanf()B)getchar()C)gets()D)getc()(37)下列选项中错误的说明语句是)chara=,t,。JyJ。,u,0;B) chara=toyou0;Ochara口=toyou0;D)chara,toyou0,;(38)以下程序的输出结果是i11tf()staticinti=0;ints=l;s+=i;i+;returns;main()inti,a=0;for(i

14、=0;iy)if(xz)printf(%d,x);elseprintf(,y);printf(%dnw,z);(7)以下程序的输出结果是7】0main()inty=9;for(;y0;y)if(y%3=0)printf(%d,一y);continue;(8)有以下程序段,且变量巳正确定义和赋值for(s=l.0,k=l;k=n;k+)s=s+l.0/(k*(k+l);printf(s=%fnn,s);请填空,使下面程序段的功能与之完全相同s=l.0;k=l;while(8)(s=s+l.O(k*(k+1);9;printf(s=%fnn,s);(9)设有以下定义和语句,则*(*(p+2)+l)

15、的值为10。inta32=10,20.30.40.50.60),(*p)2;p=a;(10)以下程序的输出结果是11o#includemain()inti;for(i三,a;if,;i+ti+)printf(%c,i-za+,A,);printf(n);)(11)以下程序中函数f的功能是在数组X的n个数(假定11个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换.把最大的数与最后一个数对换。请境空。includevoidf(intx,intn)intp,pl.i,j,t,m;i=j=x0;pO=pl=O:for(ra=0:mi)i=xmj;p0=m;elseif(xmj)j=xm;p

16、l=m;)t=xfp;xpl=xn-l;xn-l=t;t=xpl;xpl=12;13=t;)main()inta10l,u;for(u=0;u10:u+)scanf(%d,au);f(a,10);for(u=0;u长整型整型长整型整型-长整型字符型整型字符型-整型有符号整型无符号整型有符号整型-无符号整型整型浮点型整型-浮点型在a/b的时候,a、b的类型不一致,根据类型转换规则,把整型转换成double类型,之后的加、减类似。转化规则为char,short-int-unsigned-long-double*-floato(16)D【解析】在ANSl标准中,long、int和Short分别占用4

17、、2和2个字节。但实际上对于某些C编译系统,ini和ShOrl都占用4个字节,所以说各种类型数据占用内存大小是由选择何种C编译系统决定的O(17)B【解析】本题考查通过SCanf函数输入数据时的格式控制问题。变量J的格式控制为飞2d”,即只接收输入数据的前两位,从第三位开始直到空格之间的输入都会被保存到变量y中,因为y为浮点型数据,所以输出结果为选项B)。(18)B【解析】对于do-while循环,程序先执行一次循环体.再判断循环是否继续。本题先输出一次i的值0,再接着判断表达式i+的值,其值为0,所以循环结束。此时变量i的值经过自加已经变为1,程序再次输出i的值(19)D【解析】ifelse

18、语句的执行过程如下,首先计算if后面一对圆括号内表达式的值,若表达式的值为非0,执行if子句,然后跳过else子句,去执行if语句后的下一条语句;若表达式的值为0,跳过if子句,去执行else子句,接着去执行if语句后的下一条语句。C语言的语法规定,else子句总是与前面最近的不带else的if匹配.与书写格式无关,本题目的后一个if-else相当于嵌套在第一个if子句里,相当于xy&y0时,z=0;当x=0时,z=z+1.(20)【解析】本题主要考查SWitCh语句的使用方法。SWiteh语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的c

19、ase,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。(21)A【解析】本题考查用于多分支选择的SWitCh语句,其一般形式为:SWiICh(表达式)CaSe常量表达式1:语句1;CaSe常量表达式2:语句2;CaSe常量表达式n:语句n;default:语句n+1;其语义是:计算表达式的值,并逐个与其后的常量表达式值进行比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有CaSe后的语句;如表达式的值与所有case后的常量表达式均不相等时

20、,则执行default后的语句。(22)D【解析】在C语言中,定义一维数组的语句一般形式如下:类型名数组名常量表达式;一维数组的引用形式为:数组名下标表达式。count表示能被2整除或被5整除的个数.i则计算有多少个数组元素。(23)D【解析】在C语言中,数组元素下标是从。开始的;指针变量p指向数组的首地址。for循环语句中,指针变量p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为2。(24)B【解析】本题考查循环语句的嵌套以及条件的判断问题。在程序中,内层循环判断条件为j=i,而j的初值为3,故当i的值为1和2时,内层循环体都不会被执行。只有当i和j都等于3时才会执行一次。

21、m的值为55对3取模,计算结果为Io(25)C【解析】在C语言中,字符型数据在内存中的存储形式是ASCII码值。当需要以整型格式输出字符时,揄出的也是ASCII码值。字符A和D的ASCH码值分别为65和68。(26)D【解析】本题中直接使用指针变量k,但在使用时要注意对k的指针运算。此外,一开始应知道*k的值为数组中的某一下标值.即*k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。(27)B【解析】argc中存入的是命令行中字符串的个数。argv是一个指向字符型的指针数组的指针。(28)C【解析】p=a将指针指向数组a的第4个元素,p5指向数组a的第9个元素,而a8=9,所以b

22、=929)C【解析】函数形参和实参分别占用不同的内存单元,改变形参的值不会影响对应实参的值,选项A)正确。指针类型的函数可以返回地址值,选项B)正确。在文件SIdio.h中,NU1.1.被定义为Void型的指针,选项D)也正确。指针变量的值只能是存储单元地址,而不能是一个整数,选项C)错误。(30)C【解析】此题考查了指针引用一维数组元素的方法。*p+9因为运算符*”的优先级高于所以输出结果为P指向的元素1,然后加9,值为100(3DB【解析】字符串连接函数Strcat的调用形式如下:StrCat(SI,s2)。此函数将s2所指字符串的内容连接到Sl所指的字符串后面,并自动覆盖SI串末尾的尾标

23、,函数返回Sl的地址值。(32)A【解析】本题综合考查字符数组的赋值和StrCPy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:StrI=China,如果想把China”这5个字符放到数组Strl中,除了逐个输入外,还能使用Strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如:strcpy(str1,China)或strcpy(strl,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给Str1):Strl=SIr2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。strcpy函数的结构是:StrCPy(字符数组1,字符

24、串2)其中.需要注意的是,字符数组1的长度不应小于字符串2的长度J字符数组1必须写成数组名形式,如(StrI)J字符串2可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。(33)C【解析】在fun函数中,while循环的功能是:逐个取字符数组S的字符判断其是否是数字。若是则将其作为个位数字保存到变量n中,n的原数据的各个数位将相应左移一个10进制位。当指针s指向数组的第3位时,循环条件不成立,循环结束,返回n的值.输出n的值为61。(34)A【解析】在本题中,p和q同为指向字符类型数据的指针。*q和po同为字符型数据。选项B)、C)和D)都符合题

25、目的要求;选项A)计算得出的是指针类型数据所占的内存字节数。(35)A【静析】循环开始前.指针t和S都指向字符串的起始位置.然后通过while循环判断t指向的位置是否为空,同时让t向右移动一位。while循环结束时,t自减1,此时t指向的位置是字符串的结束标志0处,故1.s的值是字符串的长度,并不包括结束标志。(36)C【解析】本题综合考查了输入函数的使用。SCanf函数会将空格视为分隔符,getchar函数只能输入单个字符,getc函数是文件操作函数,显然都不符合题意。通过gets函数输入字符串时,输入的空格被认为是字符串的一个字符。(37)D【解析】通过喊初值的方式给一维数组贼字符串,可以

26、用给一般数组赋初值的相同方式给一维字符数组娥字符串,也可以在旗值时直接赋字符串常量。选项B)和C)后面的0是多余的,在C语言中,系统会自动在字符串的结尾处加上一个字符0作为串的结束标记。(38)D【解析】函数的静态局部变量在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。(39)C【解析】带参数的宏定义命令行形式如下:#define宏名(形参表)替换文本在编译的时候编译预处理程序用替换文本来替换宏,即M(n,m)被替换为nn,之后计算,将计算的结果赋给a。注意,宏替换是在编译时由预处理程序完成的,宏替换不占用运行的时间,

27、而函数调用是在程序运行时进行的,在函数的调用过程中需要占用一系列的处理时间。(40)A【解析】本题的功能是顺序的读两个文本文件,依次输出。当打开文件时出现错误,f。Pen函数将返回NU1.1.I)二、填空题(1)1可行性研究【解析】软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等,还可以将软件生命周期分为三个阶段:软件定义阶段:可行性研究和需求分析;软件开发阶段:设计、实现和测试;软件运行维护阶段:交付使用和维护。(2)【2】完善性【解析】软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错

28、误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再次开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。(3) 3非线性结构【解析】数据的逻辑结构有线性结构和非线性结构两大类。(4) 4)n+1【解析】在任意一棵二叉树中,度为0多结点(即叶子结点)总是比度为2多结点多一个。(5) 5实体【解析】在E-R图中用矩形表示实体;椭圆形表示属性;菱形表

29、示联系。(6) 63【解析】C语言的语法规定:else子句总是与前面最近的不带else的if相结合。因为X不大于y,所以执行printf(%dn*,z);语句。(7) 7852【解析】循环前,变量y的值为9,其中,循环语句在y大于0情况下循环,每次循环后y的值都减U循环体是当y能被3整除时输出表达式一y,输出的是减1后的y值。这样,第一次循环因y为9.能被3整除,输出8,y也变成8。又经两次循环,y的值变为6,又让y减1变成5,并输出5;又经两次循环,y的值变成3,让y减1变成2,输出2;再经两次循环后,y的值变成0,结束循环,所以程序输出852o(8) 8k=n【9k+【解析】本题要求将一个

30、for循环改成WhiIe循环。首先要保证循环条件相同,在for循环中,每次执行循环之后,循环控制变量k都会加1.而While循环则没有,故需在循环体中增加改变k数值的语句”k+;09)1060【解析】本题中,代码定义3行2列的二维数组a,定义指向两个元素的一维数组指针P,并让P指向两维数组a的首行,则代码*(*(p+2)+l)中的p+2指向两维数组a的第三行a2.*(p+2)指向a20,*(p+2)+1指向a2l,*(*(p+2)+l)是引用a2l,其值是60(10) 11ACE【解析】在本题中,for循环体每执行完一次,变量i的值自加两次。i的初值为a,执行一次循环后变为c,之后再变成e,当

31、其变为g时.循环条件若不满足,循环终止,故本题共输出3个字符。表达式1.a+,即表示输出i对应的大写字母,结果为ACEo(11) 12x013)x0【解析】函数f()通过for循环逐个比较数组X中的元素,循环结束后,PO和Pl分别表示最大值和最小值在数组中的下标位置,然后按照题意将最大值xp和数组的最后一个元素xn-l交换位置,再将最小值xpl和第一个元素(x0)进行交换,所以空白处应该填入x0.(12) 14*(str+I)或strl【解析】Str是指针变量,它指向字符型数据,在循环过程中,可以用*(str+D来访问字符串中的第I个元素,判断是否为结束标志.如果不是.1=1+1,继续取下一个元素进行判断,直到*(str+I)的值为0为止,也可以用下标的方式引用字符.如*(str+D相当于strl(13) 1530x【解析】本题的参数传递属于值传递,所以被调用函数内不能改变调用函数中的数据。

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号