《2023年计算机等级考试二级C语言模拟试卷及其答案.docx》由会员分享,可在线阅读,更多相关《2023年计算机等级考试二级C语言模拟试卷及其答案.docx(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年9月计算机等级考试二级C语言模拟试卷及其答案一、选择跑(1) (10)、(21) (40)每题 2 分,(11) (20)每题 1 分,共 70 分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写 在答逊卡相应位置上,答在试卷上不得分。(1)算法一般都可以用控制结构组合而成.A)循环、分支、递归B)顺序、循环、嵌套C)循环、递归、选择D)顺序、选择、循环(2)数据的存储结构是指A)数据所占的存储空间量B)数据的逻辑结构在计算机中的表示C)数据在计算机中的顺序存储方式D)存储在外存中的数据(3)设有下列二叉树:对此二叉树中序遍历的结果为0A) ABC
2、DEFB) DBEAFCC) ABDECFD) DEBFCA(4)在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送.A)调用语句B)命令C) 口令D)消息(5)检查软件产品是否符合需求定义的过程称为.A)确认测试B)集成测试C)验证测试D)验收测试(6)下列工具中为需求分析常用工具的是.A) PADB)PFDC)N-SD)DFD填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡的【1】至【15】序号的横线上,答在试卷上不得 分。(1)在运算过程中,能够使空表与非空表的运算统一的结构是【1】。(2)软件工程研究的内容主要包括:【2】技术和软件工程管理。(3)与结构化需求分
3、析方法相对应的是 13】 方法.(4)关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、【4】 和自定 义完整性。(5)数据模型按不同的应用层次分为三种类型,它们是一【5】数据模型、逻辑数据模型 和物理数据模型。(6)若有定义inta=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是 16】。c=(a-=(b-5);c=(a% ll)+(b=3);(7)函数pi的功能是根据以下近似公式求兀值:)/6=l+l/(2*2)+l/(3*3)+.+l(n*n)现在请你在下面的函数中填空,完成求兀的功能.include math.h double s=0.0; longi;fbi(
4、i=l j=ni-H-)s=s+ 7return (sqrt(6*s);(8)若输入字符串:abcde/,则以下while循环体将执行【8】 次。while( (ch=ge忙加)=e)pnntf(,*);(9)若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是191 .mt w10=23,54,10,33,47,98,72,80,61 ), *p=w;(10)设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出firn函数 的首部 【10。要求形参名为bmain() double s10 22;int n;Ms);(ID有以下程序:int f(mt
5、n)in=l)retum 1;else return f(n-l)+l;main() mti,j=0;pnntf(%dn,j);)程序运行后的输出结果是_IU_ (12)以下程序的输出结果是一【12】void fun() static int a=0;a2; printfC%d,a);)main() int cc;fbi(cc= 1 c4 icc+) fun();printfTM);(13)实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命 令的命令行中(相当于copy命令),假定文件在当前目录下.请补全程序。#include void aic,chai*argvO)
6、FILE*fl,*f2;iftargc(y)?(x):(y)main() int a=5,b=2,c=3,d=3,t;t=MAX(a4t,c-H)*10;priidfT-dhT 力;全国计算机等级考试二级C语言模拟试卷答案一、选择题D评析:算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执行顺序, 也直接反映了算法的设计是否符合结构化原则。-个算法般都可以用顺序、选择、循环三 种基本控制结构组合而成。评析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。(3)B评析:中序遍历是指一方面遍历左子树,然后访问根结点,最后遍历右子树;并且在遍 历左、右子树时,仍然先遍历左子
7、树,然后访问根结点,最后遍历右子树的一种二叉树遍历 算法。(4)D评析:面向对象的世界是通过对象与对象间彼此的互相合作来推动的,对象间的这种互 相合作需要一个机制协助进行,这样的机制称为消息。消息是一个实例与另一个实例之间传 递的信息,它请求对象执行某一解决或I可答某一规定的信息,它统一了数据流和控制流。(5)A评析:确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中 的拟定的各种需求,以及软件配置是否完全、对的。(6)D评析:常见的需求分析方法有:结构化分析方法和面向对象的分析方法。结构化分析的 常用工具有:数据流图(DFD)、数据字典(DD)、鉴定树和鉴定表等。(7)C
8、评析:在软件设计过程中,必须遵循软件工程的基本原则:这些原则涉及抽象、信息隐 蔽、模块化、局部化、拟定性、一致性、完备性和可靠性。评析:内模式(Internal Schema)乂称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文献结构、索引、集簇及hash等存取方式与存取途径。(9)D评析:在关系数据库中,用二维表来表达实体之间联系。(10)B评析:关系是由若干个不同的元组所组成,因此关系可视为元组的集合,将E-R图转 换到关系模式时,实体与联系都可以表达成关系。(H)D评析:C语言的程序是由主函数main()开始运营,由主函数来调用其他函数
9、,所以D 是错误的。(A评析:在C语言中,模运算(即取余运算)的运算对象必须是整型数据(常量、变量或表 达式)。(I3)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中对文献操作必须先打开文献,待文献操作完毕后要关闭文献。对文献以 读的方式进行打开操作时,同时会执行文献的检查文献是否存在,不存在将会返回空的文献 指针,假如对
10、文献以写的方式打开时,文献不存在,将会自动创建文献,因此在C中打开 文献前不必对其检查文献是否存在,故答案为B。)B评析:p是指针,p+8是地址值,D是错的;*p是p的目的变量,即a0,值为1,所以 *p+9的值是10,而*p+= 9值是重新给a0赋了值(1+9);所以A和C也是错的。p+8是地址 值,指向a8,那么*(p+8)的值就是a8的值,即9。(32)C评析:A和B两个表达式都已越界了;*t2是目的变量,即一个整数,而不是地址值。(33)B评析:在main函数中定义了一个slrucl abc类型的数组,同时分别运用1,2,3及4,5,6 对数组中两个元素进行初始化。在该结构体,依次对其
11、中的a,b,c三个变量进行初始化。故 s0.a=l, sl.b=5,所以本题输出为6。(34)A评析:题中的外循环只执行了 2次:第 1 次:al0 = 3, all=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却并没有为NULL,而是指向了它的直接前趋p,这样它就不是一个单向链表(单 向链表最后一个结点的next指针一定是一个NULL)o(36)B评析:strcpy
12、(字符数组I,字符串2)其作用是将字符串2复制到字符数组1中去。注:(1)字符数组1必须定义得足够大;(2)“字符数组1”必须写成数组名的形式;(3)复制时连同字符串后面的,0一起复制到字符数组1中。(37)A评析:gelchaK)函数是从键盘接受一个字符输入;当用户键入的字符不是回车符时,会 进入一个多分支选择语句,根据c2的值进行分支选择;putchar()是在屏幕上打印一个字符, 最后的结果应当为668977。(38)B评析:sizcof函数计算已知类型所占的字节数。共用体变量所占的内存长度等于最长的 成员的长度。(39)B评析:函数的递归调用就是在调用个函数的过程中又出现直接或间接地调
13、用该函数自 身。fun 函数共被调用 6 次,即 fun(5)、fun(4)、fun(3)、fun(2)、fun(l) fun(0)o 其中 fun(5) 是main函数调用的。(40)C评析:函数feof是用来判断文献是否已读到末尾,假如已读到末尾则返回非零值,否 则返回Oo二、填空题(I) 1循环链表评析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统 起来。循环链表具有两个特点:(7)下面不属于软件设计原则的是A)抽象B)模块化C)自底向上D)信息隐蔽(8)索引属于A)模式B)内模式C)外模式D)概念模式(9)在关系数据库中,用来表示实体之间联系的是-A)树结构B
14、)网结构C)线性表D)二维表(10)将E-R图转换到关系模式时,实体与联系都可以表示成.A)属性B)关系C)键D)域(11)以下叙述不正确的是A)分号是C语言的必要组成部分C程序的注程可以写在句的后面C)函数是C程序的基本单位D)主函数的名字不一定用main表示(12) C语言运售对象必须是整型的运算符是A) %= B) /C) =D) =(13)下面一组中都是C语言关隆字的是.A) double Int forB) main while gotovolatile break staticD) malloc sizeof new(14)执行语句fo0=l;i+(c+d) ? (a+b): (c
15、+d)*10o在这个条件表达式中,(a+b)(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用 (c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。(16)有如下程序 main() int y=3,x=3,z=l; prints %d %dn,(+x,y+)+2); ) 运行该程序的输出结果是.A) 34 B) 420 43 D) 33(17)运行以下程序后,如果从键盘上输入65 14回车,则输出结果为 main() ( int m,n; printfCErter scaidr%d%d,&m,&ii); while(m!=n) (while(mn
16、)m-=n; while(nm)n-=m; ) printf(,m=%dn,; )A) m=3B) m=2C) m=lD) m=0(18)已经定义ch为字符型变量,以下赋值表达式中错误的是A) ch=VB) ch=62+3C) ch=NULLD) ch=xaa(19)有如下程序 main() int x=l,a=0,b=0;switch(x) case 0:b+, case 1: a+, case 2: a+力+; )pnntfCa=%d%dM,jb); ) 该程序的输出结果是A) a=2.b=l B) a=l.b=l C) a=l.b=0 D) a=2.b=2(20)有以下函数定义:void
17、 fun(mt 凡double x)若以下选项中的变量都已正确定义并赋值,则对函数近正确调用语句是.A) fun(int y,double m);C) fun(x,n);B) k=fun(10,12.5);D) void fun(n,x);(21)下列函数定义中,会出现编谈错误的是.A) max(int x,int y,mt *z)*z=xy?x:y; z=xy?x:y,B) int max(mt x,y) mtz;C) max(int x,int y) mtz;z=xy?x:y;retuni(z);return z; D) int max(mt x,int y) retum xy?x:y;(
18、22)有如下程序main() int x=3do prirtfCZd); while。x);该程序的执行结果是、A) 321B) 3C)不输出任何内容 D)陷入死循环(23)有以下程序段:main()int a=5,*b,*c; c=&bjb=&a,程序在执行了 c=&b,b=&a;语句后,表达式*c的值是,A)变量a的地址C)变量a中的值B)变量b中的地址D)变量b的地址(charsO5=abc,cle,fgh);pEtfC%);)其输出为OA)不确定B)编释错误o gD)输出null字符(25)有以下程序:int *f(mt *x,int *y)if(*x2) retum(fib(n-1
19、)+fib(n-2);else retum(2);)main()pnniR%W,fib(3);该程序的输出结果是(24)有如下程序 main()A) 2B) 4C) 6D) 8D) bcdefD) 8D)编降错误(27)下面程序的输出结果是-main() ( charstrlQ,c=a; mt i=0;stri=c-H-; printfC%,曲); )A) abcde B) aC)不确定(28)有如下程序: #define n 2 触 fine m N+l #defme NUM 2*m+l main() inti;fbKi=l iiv=NUM;i+)pnrtfr%dM,i);)该程序中的fm循
20、环执行的次数是.A) 5B) 6C) 7(29)有如下程序段: #include define Max(a,b) ab?a:b mainO ( int a=5,b=6,c=4,d;d=c+Max(a,b); prmtfC%d,d); ) 其输出结果为A) 10B) 5C) 6(30)下述关于C语言文件的操作的结论中,正确的是.A)对文件操作必须先关闭文件B)对文件操作必须先打开文件C)对文件操作顺序无要求D)对文件操作前必须先测文件是否存在,然后再打开文件 (31)有如下说明:mt a10 = 1,2,3,4,5,6,7,8,9,10),*p = a;则数值为9的表达式是A) *p+9B) *
21、(p+8)C) *p+=9D) p + 8(32)若有以下定义:int t32,能正确表示t数组元素地址的表达式是A) &t32B) t3C) tlD) *t2(33)下面程序运行后的输出结果是.stmct abc( int a,b,c;)main()(stmct abcs2=l,2,3,4,5,6;int t=s0.a+sl.b;printfCZd,t);)A) 5B) 6C) 7D) 8(34)有如下程序:main()(mt a印0= 1,2,3,4,5,6, i,j,s = 0;fbKi=l;iV3;i+)foi(j = 0;jnext; s-next = p; p-next = s;p
22、 = p-next; s-next = p-next; p-next = s;s-next = NULL; p = p-next; p-next = s;p = ( *p). next, (*s). next = (*p).next, (*p).next = s;(36)库函数strcpy用以复制字符串,若有以下定义和语句: char strl 0=china,str2 10 ,*str3 *str4= china;则对库函数strcpy的正确的调用是.A) strcpy(str 1,people);C) strstr3,people);(37)有以下程序#mcludemain() intc;while(c=getchai( )!=)switch(c-2) case 0: case 1: putchai(c+4); case 2 :putchai(c-i-4) reak, case 3:putchai(c+3);default :putcha0) fun(k-l);printR%d,k);)A) 54 3 2 1B) 012345C) 12345D) 543210(40)若小是指向某文件的指针,且已读到此文件的末尾,则函数feoRg的返回值是A) EOF B) 0C)非零值 D) NULL