《2023年计算机等级考试二级C语言模拟试卷及其答案.pdf》由会员分享,可在线阅读,更多相关《2023年计算机等级考试二级C语言模拟试卷及其答案.pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年 9 月计算机等级考试二级C 语言模拟试卷及其答案I、选 择 题(1)(10)、(21)(40)每题 2 分,(11)(20)每题 1 分,共 70 分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分.(1)算法一般都可以用_ _ _ _ _控制结构组合而成.A)循环、分支、递归 B)顺序、循环、嵌套C)循环、递归、选择 D)顺序、选择、循环(2)数据的存储结构是指_ _ _ _ _0A)数据所占的存储空间量B)数据的逻辑结构在计算机中的表示C)数据在计算机中的顺序存储方式D)存储在外存中的数据(3)设有下列二叉树
2、:对此二叉树中序遍历的结果为_ _ _ _ _.A)ABCDEF B)DBEAFC C)ABDECF D)DEBFCA(4)在面向时象方法中,一个对冢请求另一对冢为其服务的方式是通过发送_ _ _ _ _ _,A)调用语句 B)命令 C)口令 D)消息(5)检查软件产品是否符合需求定义的过程称为_ _ _ _ _.A)确认测试 B)集成测试 C)验证测试 D)验收测试(6)下列工具中为需求分析常用工具的是_ _ _ _ _ _.A)PAD B)PFD C)N-S _ D)DFD _(1 0)将 E-R图转换到关系模式时,实 体 与 联 系 都 可 以 表 示 成,A)属性 B)关系 C)键 D
3、)域(7)卜面不属于软件设计原则的是一OA)抽冢B)模块化C)自底向上D)信息隐蔽(8)索引属于_ _ _ _ _ _.A)模式B)内模式C)外模式D)概念模式(9)在关系数据库中,用来表示实体之间联系的是aA)树结构B)期结构C)线性表D)二维表(1 1)以 下 叙 述 不 正 确 的 是 A)分号是C 语言的必要组成部分B)C 程序的注释可以写在句的后面C)函数是C 程序的基本单位D)主函数的名字不一定用main表示(12)C 语 言 运 算 对 象 必 须 是 整 型 的 运 算 符 是.A)%=B)/C)=D)n)m-=n;w hile(nm)n-=m;)p r int f Cm=%d
4、S”,m);A)m=3 B)m=2 C)m=l D)m=0(18)已经定义c h为字符型变量,以 下 赋 值 表 达 式 中 错 误 的 是.A)ch=V B)ch=62+3 C)ch=NULL D)ch=xaa(19)有如下程序main()int x=l,a=0,b=0;s w it c h(x)c as e 0:b+,c as e 1:a+;c as e 2:a+力+;)p r int s a=%d,b=%dn,a,b);该 程 序 的 输 出 结 果 是.A)a=2,b=l B)a=l.b=l C)a=l.b=0 D)a=2.b=2(20)有以下函数定义:v oid f u n(mt r
5、 edou ble x).若以下选项中的变量都已正确定义并赋值,则对函数f im正确调用语句是一OA)f u n(int y,dou blem);B)k=f u n(10,12.5);C)f u n(x,n);D)v oid f u n(n,x);(2 1)下列函数定义中,会出现编译错误的是_ _ _ _ _ _0A)max(int x,int y,int *z)*z=x y?x:y;z=x y?x:y;C)max(mt x,int y)int z;z=x y?x:y;r et u r n(z);(2 2)有如下程序B)int max(int x,y)mt z;r et u r n z;D)i
6、nt max(mt x,int y)r et u r n x y?x:y;main()int x=3;do p r int f C%d”,x-);w hile。x);)该程序的执行结果是_ _ _ _ _ _.A)321 B)3(23)有以下程序段:C)不输出任何内容D)陷入死循环main()(int a=5,*b,*c;c=&b;b=&a;程序在执行了 c=&b;b=&a;语 句 后,表达式*c的值是OA)变 量a的地址C)变 量a中的值B)变 量b中的地址D)变 量b的地址(24)有如下程序main()(c har s 5=”abc”,“de,”即山髀 砌 椁 );)其输出为_ _ _ _
7、 _.A)不确定 B)编译错误C)gD)输 出nu ll字符(25)有以下程序:int *f(mt *x,int *y)if(*x*y)r et imi x;els e r et u r n y;main()(int a=7,b=8,*p,*q,*r;p=&a;q=&b;尸 Hp,q);p r int f C%d,%d,%dn,*p,*q,*r);程序运行后输出结果是_ _ _ _ _ _.A)7,8,8 B)7,8,7C)8,7,7D)8,7,8(26)有如下程序:long f ib(mt n)r et u ni(f ib(n-1 )+f ib(n-2);els e r et u m(2);
8、main()p r int f T%ldM”,f ib(3);该程序的输出结果是_ _ _ _ _.A)2 B)4C)6D)8(27)下 面 程 序 的 输 出 结 果 是,main()(c har s t r 10,c=a,;int i=0;101(5+)s t r i=c-H-;p r int f l:,%6M,s t r);A)abc加 B)aC)不确定D)be def(28)有如下程序:#def ine n 2def ine m N+ldef ine N U M 2*m+lmain()int i;f bi(i=M=NUM+)p r ir t f(%dn,i);)该程序中的f or循环执
9、行的次数是一A)5 B)6 C)o7D)8(29)有如下程序段:#inc lu de 触f ine Max(a,b)ab?a:bmain()int a=5,b=6,c=4,d;d=c+Max(a,b);p r int f l:%d,d);)其输出结果为_ _ _ _ _ _.A)10 B)5C)6D)编辉错误(3 0)下述关于C语言文件的操作的结论中,正确的是.A)对文件操作必须先关闭文件B)对文件操作必须先打开文件C)对文件操作顺序无要求D)对文件操作前必须先测文件是否存在,然后再打开文件(3 1)有如下说明:int a10=1,2,3,4,5,6,7,&9,10,*p =a;则数值为9的
10、表 达 式 是A)*p+9 B)*(p+8)C)*p+=9 D)p +8(3 2)若有以下定义:int t 32;,能正确表示t数 组 元 素 地 址 的 表 达 式 是,A)&t 32 B)t 3 C)t l D)*t 2(3 3)下 面 程 序 运 行 后 的 输 出 结 果 是.s t r u c t abc(int a,b,c;)main()(s t r u c t abc s 2=1,2,3,4,5,6);int a+s l.b;p r int f(%dn,t);A)5 B)6 C)7 D)8(3 4)有如下程序:main()(int a印=1,2,3,4,5,6 ,3=0;f oi
11、(i-l;i3;i+)f bi(j=0;jnext;s-next=p,p-next=s,B)p=p-next;s-next=p-next;p-next=s;C)s-next=NULL;p=p-next;p-next=s;D)p=(*p),next;(*s).next=(*p).next;(*p),next=s;(3 6)库函数s毗py用以复制字符串,若有以下定义和语句:char strl|=china”,str2lQ,*str3,*stt4=china”;则对库函数strcpy的 正 确 的 调 用 是。A)strcpy(strl,people);B)strcpy(str2,people);C
12、)strcpy(str3,people);D)strcpy(str4,people);(3 7)有以下程序#includemain()mtc;while(c=getchai()!-Ui)switch(c-2)case 0:case 1:putchai(c+4);case 2:putchar(c+4)Jbreak;case 3:putchai(c+3);default:putchai(c+2)jbreak;)从第一列开始输入以下数据,/代表一个回车符.2473/程 序 的 输 出 结 果 是.A)668977 B)663966 C)66778777 D)6688766(3 8)下 面 程 序 的
13、 输 出 结 果 是.u nion u n int a41;longb;c har e 6;main()(u nion u nu;p r int s ,%d%d,s iz eof(u),SEeof(u.a);)A)82 B)88C)188D)182(3 9)以下程序的输出结果是_ _ _ _ _.mam()int w=5;f u n(w);p r int f f M);f u n(mt k)i f l:k0)f u n(k-l);p r int f(%d,k);)A)5 4 3 2 1 B)0 12 3 4 5C)1 2 3 4 5D)5 43 2 1 0(4 0)若中是指向某文件的指针,且已
14、读到此文件的末尾,则 函 数f eof i;的的返回值是A)E O F B)0 C)非零值 D)N U L L填空题(每空2分.共3 0分)请将每一个空的正确答案写在答题卡的【1】至【1 5】序号的横线上,答在试卷上不得分.(1)在运算过程中,能够使空表与非空表的运算统一的结构是【1】0(2)软件工程研究的内容主要包括:1 2】技术和软件工程管理.(3)与结构化需求分析方法相对应的是13】方法.(4)关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、【4】和自定义完整性.(5)数据模型按不同的应用层次分为三种类型,它们是一【5】数据模型、逻辑数据模型和物理数据模型.(6)若有定义in
15、t a=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是 1 6】0c=(a-=(b-5);c=(a%ll)+(b=3);(7)函 数p i的功能是根据以下近似公式求兀值:(x*x )/6=l+l/(2*2)+l/(3*3)+.+l(n*n)现在请你在下面的函数中填空,完成求兀的功能.inc lu de mat hh dou ble s=0.0;long i;f bi(i=l a=ni-H-)s=s+7 ;r et u r n(s q r t(6%);(8)若输入字符串:a b cd e/,则以下w hile循环体将执行【8】次.w hile(c h=get c har()=e)p
16、 r iiit f f*);(9)若有以下定义,则不移动指针p,且通过指针p引用值为9 8的数组元素的表达式是91.int w l0=23,54,10,33,47,98,72,80,61),*p=w;(10)设在主函数中有以下定义和函数调用语句,且 施 函 数 为v oid类型;请写出血函数的首都 门 0】.要求形参名为b.main()dou ble s 10 22;int n;M s);(11)有以下程序:int f l j i n t n)if(n=l)r et u ni 1;els e r et u m f(n-l)+l;mam()int i,j=0;f bKi=lj3 升+)j+=f
17、l:i);p r int R%dn,j);)程序运行后的输出结果是_LU_。(12)以下程序的输出结果是.【12】v oid f v m()s t at ic mt a=0;a+=2;p r int f C%d,a);mam()int c c;f bi(c c=l FC4FC+)f u n();p r int f CW);(13)实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于8叩 命 令),假定文件在当前目录下。请补全程序.痴elu de v oid main(mt aigc,c har*ar gv|)FILE*H,*f 2;if lar gc(
18、y)?(x):(y)main()int a=5,b=2,c=3,d=3,t;t=MAX(a-Hj,c+d)*10;p r int f(%dn,t);)全国计算机等级考试二级c语言模拟试卷答案一、选择题(DD评析:算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。(2)B评析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。(3)B评析:中序遍历是指一方面遍历左子树,然后访问根结点,最后遍历右子树;并且在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后
19、遍历右子树的一种二叉树遍历算法。(4)D评析:面向对象的世界是通过对象与对象间彼此的互相合作来推动的,对象间的这种互相合作需要一个机制协助进行,这样的机制称为消息。消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一解决或回答某一规定的信息,它统一了数据流和控制流。(5)A评析:确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中的拟定的各种需求,以及软件配置是否完全、对的。(6)D评析:常见的需求分析方法有:结构化分析方法和面向对象的分析方法。结构化分析的常用工具有:数据流图(DFD)、数据字典(DD)、鉴定树和鉴定表等。(7)C评析:在软件设计过程中,必须遵循软件
20、工程的基本原则:这些原则涉及抽象、信息隐蔽、模块化、局部化、拟定性、一致性、完备性和可靠性。(8)B评析:内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文献结构、索引、集簇及hash等存取方式与存取途径。(9)D评析:在关系数据库中,用二维表来表达实体之间联系。(10)B评析:关系是由若干个不同的元组所组成,因此关系可视为元组的集合,将 E-R图转换到关系模式时,实体与联系都可以表达成关系。(1DD评析:C 语言的程序是由主函数main()开始运营,由主函数来调用其他函数,所以D是错误的。(12)A
21、评析:在 C 语言中,模运算(即取余运算)的运算对象必须是整型数据(常量、变量或表达式)。(13)C评析:C 语言中的关键字有32个关键字(参见C 语言教程),本题中只有C 符合题意。(14)C评析:for语句的一般形式为:for(表达式1;表达式2;表达式3)语句,循环结束的条件是i+b?a:b这个条件表达式中,c+ab为真,所以用a的值作为整个表达式的值,而a的值为5,所以整个表达式的值为5。(30)B评析:在C中对文献操作必须先打开文献,待文献操作完毕后要关闭文献。对文献以读的方式进行打开操作时,同时会执行文献的检查文献是否存在,不存在将会返回空的文献指针,假如对文献以写的方式打开时,文
22、献不存在,将会自动创建文献,因此在C中打开文献前不必对其检查文献是否存在,故答案为B。(3DB评析:p 是指针,p+8是地址值,D 是错的;*p 是 p 的目的变量,即 a 0,值 为 1,所以*p+9的值是1 0,而*p+=9 值是重新给a0赋了值(1+9);所以A 和 C 也是错的。p+8是地址值,指 向 a 8,那么*(p+8)的值就是a8的值,即 9。(32)C评析:A 和 B 两个表达式都已越界了;*t是目的变量,即一个整数,而不是地址值。(33)B评析:在 main函数中定义了一个struct abc类型的数组,同时分别运用 1,2,3 及 4,5,6对数组中两个元素进行初始化。在
23、该结构体,依次对其中的a,b,c三个变量进行初始化。故s0.a=l,sl.b=5,所以本题输出为6。(34)A评析:题中的外循环只执行了 2 次:第 1 次:al0=3,a ll=4,所以 s=7;第 2 次:a20=5,a2l=6,a22=0,所以 s=7+5+6+0=18。(35)A评析:在答案A 中:p=p-next;s-next=p;p-next=s;s的确已插到了链表的末尾,但它的next却并没有为N U LL,而是指向了它的直接前趋p,这样它就不是一个单向链表(单向链表最后一个结点的next指针一定是一个NULL)。(36)B评析:strcpy(字符数组1,字符串2)其作用是将字符
24、串2 复制到字符数组1 中去。注:(1)字符数组1必须定义得足够大;(2)”字符数组1”必须写成数组名的形式;(3)复制时连同字符串后面的 0 一起复制到字符数组1中。(3 7)A评析:g e t c h a r()函数是从键盘接受一个字符输入;当用户键入的字符不是回车符时,会进入一个多分支选择语句,根据c-2 的值进行分支选择;p u t c h a r()是在屏幕上打印一个字符,最后的结果应当为6 6 8 9 7 7=(3 8)B评析:s i z e o f函数计算己知类型所占的字节数。共用体变量所占的内存长度等于最长的成员的长度。(3 9)B评析:函数的递归调用就是在调用一个函数的过程中
25、又出现直接或间接地调用该函数自身。f u n 函数共被调用 6 次,即 f u n(5)、f u n、f u n、f u n、f u n(l)f u n(O)。其中 f u n(5)是m a i n函数调用的。(4 0)C评析:函数f e o f是用来判断文献是否已读到末尾,假如已读到末尾则返回非零值,否则返回0 0二、填空题(1)1循环链表评析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:在循环链表中增长了一个表头结点,其数据域为任意或根据需要来设立,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。循环链表中最后一个结
26、点的指针不是空,而是指向表头结点。(2)2 软件开发评析:基于软件工程的目的,软件工程的理论和技术性研究的内容重要涉及:软件开发技术和软件工程管理。软件开发技术涉及:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。软件工程管理涉及:软件管理学、软件工程经济学、软件心理学等内容。(3)【3】结构化设计评析:与结构化需求分析方法相相应的是结构化设计方法。结构化设计就是采用最佳的也许方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。也就是说,结构化设计是这样一个过程,它决定用哪些方法把哪些部分联系起来,才干解决好某个具体且有清楚定义的问题。(4)4 参照完整性
27、评析:关系模型允许定义三类数据约束,它们是实体完整性、参照完整性以及用户定义的完整性约束,其中前两种完整性约束由关系数据库系统自动支持。实体完整性约束规定关系的主键中属性值不能为空,这是数据库完整性的最基本规定,由于主键是惟一决定元组的,如为空则其惟一性就成为不也许的了。参照完整性约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组:即在关系中的外键要么是所关联关系中实际存在的元组,要么是空值。自定义完整性是针对具体数据环境与应用环境由用户具体设立的约束,它反映了具体应用中数据的语义规定。(5)5 概念评析:数据模型按不同的应用层次分为三种类型,它们是概念数据模型、逻辑数据模型和物理数
28、据模型。概念数据模型简称概念模型,是一种面向客观世界、面向用户的模型;它与具体的数据库管理系统无关。(6)6 3评析:这里:5=4,2-=4 之后2 的值为6,并把它赋给c。此时b 的值并未被改变。在第2 个表达式中,也只有赋值表达式b=3 改变了 b 的值。所以两行语句执行完毕,b 的值应当为3。(7)7 1.0/(i*i)或(double)l/(i*i)评析:表达式 1 +1/(2*2)+1/(3*3)+l(n*n)可写为 1/(1 *1)+1/(2*2)+1/(3*3)+.+1 (n*n)n即:Zl-(ixi)i=l相应的C 语言的表达式s=s+1.0/(i*i)。注:必须要写成1.0的
29、形式,否 则 l/(i*i)返回值为其值截尾取整,即恒为0。(8)8 0评析:函数getchar()是从键盘得到用户输入的一个字符。用户输入的第1个字符是a,不管后面输入的是什么ch的值都是宣,因此条件(ch=getchar()=为假,这个循环不会被执行。(9)9 p5或*(p+5)评析:98是数组w 的第5 个元素(最开始的为第0 个),而通过*p=w已经将p 指向了数组 w,要想不移动指针p 而引用9 8,可以有以下两种写法:p5、*(p+5)。(10)101 voidfun(doubleb1022)评析:本题答案:void fun(double b10f22)。(11)ID 3评析:i=l 时,f(l)=l,j=j+f(l)=0+l=l;i=2 时,f(2)=f(l)+l=l+l=2,j=j+f(2)=l+3=3;此时循环结束,程序运营后的输出结果是3。(12)12 246评析:循环for(cc=l;cc(c+d)?(a+b):(c+d)*10。在这个条件表达式中,(a+b)(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。