【计算机类职业资格】2018年计算机二级C语言模拟题8及答案解析.doc

上传人:sofeeling205 文档编号:1318121 上传时间:2019-10-17 格式:DOC 页数:23 大小:117.50KB
下载 相关 举报
【计算机类职业资格】2018年计算机二级C语言模拟题8及答案解析.doc_第1页
第1页 / 共23页
【计算机类职业资格】2018年计算机二级C语言模拟题8及答案解析.doc_第2页
第2页 / 共23页
【计算机类职业资格】2018年计算机二级C语言模拟题8及答案解析.doc_第3页
第3页 / 共23页
【计算机类职业资格】2018年计算机二级C语言模拟题8及答案解析.doc_第4页
第4页 / 共23页
【计算机类职业资格】2018年计算机二级C语言模拟题8及答案解析.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、2018 年计算机二级 C 语言模拟题 8 及答案解析(总分:100.00,做题时间:120 分钟)一、单项选择题(总题数:40,分数:40.00)1.下列叙述中正确的是( )。(分数:1.00)A.循环队列是队列的一种链式存储结构B.循环队列是队列的一种顺序存储结构C.循环队列是非线性结构D.循环队列是一种逻辑结构2.下列关于线性链表的叙述中,正确的是( )。(分数:1.00)A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素D.各数据结点的存储顺序与逻辑顺序可

2、以不一致,它们的存储空间也可以不一致3.一棵二叉树共有 25 个结点,其中 5 个是叶子结点,则度为 1 的结点数为( )。(分数:1.00)A.16B.10C.6D.44.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(分数:1.00)A.外模式B.内模式C.概念模式D.逻辑模式5.在满足实体完整性约束的条件下( )。(分数:1.00)A.个关系中应该有一个或多个候选关键字B.个关系中只能有一个候选关键字C.一个关系中必须有多作选关键字D.个关系中可以没有候选关键字6.有三个关系 R、S 和 T 如下:则由关系 R 和 S 得到关系 T 的操作是( )。(分数:1.00)

3、A.自然交接B.交C.除D.并7.下面描述中,不属于软件危机表现的是( ) (分数:1.00)A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提髙8.下面不属于需求分析阶段任务的是( )。(分数:1.00)A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.确定软件集成测试计划9.在黑盒测试方法中,设计测试用例的主要根据是( )。(分数:1.00)A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图10. 在软件设计中不使用的工具是( )。(分数:1.00)A.系统结构图B.PAD 图C.数据流图(DFD 图)D.程序流程图11.以

4、下叙述中错误的是( )。(分数:1.00)A.C 程序在运行过程中所有计算都以十进制方式进行B.C 程序在运行过程中所有计算都以二进制方式进行C.所有 C 程序都需要编译链接无误后才能运行D.C 程序中字符变量存放的是字符的 ASCII 值12.以下关于 C 语言的叙述中正确的是( )。(分数:1.00)A.C 语言中的变量可以在使用之前的任何位置进行定义B.C 语言中的注释不可以夹在变量名或关键字的中间C.在 C 语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C 语言的数值常量中夹带空格不影响常量值的正确表示13.以下不合法的字符常量是( )。(分数:1.00)A.018B.C.

5、D.xcc14.以下选项中正确的定义语句是( )。(分数:1.00)A.double, a, b;B.double a=b=7C.double a; b;D.double a=7, b=715.若有定义语句: int a=3,b=2,c=1;以下选项中错误的赋值表达式是( )。(分数:1.00)A.a=(b=4) +cB.a=b=c+1;C.a=(b=4)=3;D.a=1+(b+c=4)16.若有定义:通过语句scanf(“%d;%d,能把整数 3 赋给变量 a, 5 赋给变量 b 的输入数据是( )。(分数:1.00)A.3;5B.3,5C.3 5D.3517.已知大写字母 A 的 ASCI

6、I 码是 65,小写字母 a 的 ASCII 码是 97。以下不能将变量 c 中的大写字母转换为对应小 写字母的语句是( )。(分数:1.00)A.c=c+32B.c=(A+C)%26-AC.c=c-A+aD.c=(c-A)%26+a18.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是( )。(分数:1.00)A.(E=0)B.(E0|Eb?(bc?1:0):0;功能相同的是( )。(分数:1.00)A.if(ab)ll(bc)k=1; else k=0;C.if(ab) else k=0;D.if(ab) k=1; else if(bc) k=1; else k=0;2

7、0.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.10,14B.8,11C.7,11D.9,1821.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.0B.1C.2D.322.有以下程序程序运行后输出的结果为( )。(分数:1.00)A.8,5,4,2,B.8,7,5,2,C.9,7,6,4,D.7,4,2,23.以下关于 return 语句的叙述正确的是( )。(分数:1.00)A.没有 return 语句的自定义函数在执行结束时不能返回到调用处B.一个自定义函数中必须有一条 return 语句C.定义成 void 类型的函数中可以有带返回值的 return 语

8、句D.个自定义函数中可以根据不同情况设置多条 return 语句24.已定义以下函数int fun( int *p) return *p; fun 函数返回值是( )。(分数:1.00)A.个整数B.不确定的值C.形象 p 中存放的值D.形象 p 的地址值25.以下程序段完全正确的是( )。(分数:1.00)A.int *p; scanf(“%d“,B.int *p; scanf(“%d“,p);C.int k,*p= scanf(“%d“,p);D.int k,*p;*p= scanf(“%d“,p);26.若有定义double a10 ,*s=a;以下能够代表数组元素 a3的是( )。(分

9、数:1.00)A.*(s+3)B.(*s)3C.*s3D.*s+327.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,628.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.31B.34C.4D.3229.以下能正确定义字符串的语句是( )。(分数:1.00)A.char str=0;B.char str=x43;C.char str=D.char str=06430.以下关于字符串的叙述正确的是( )。(分数:1.00)A.C 语言中有宇符串类型的常量和变量B.两个字符串中的

10、字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串比空格打头的字符串小31.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.a*b*B.a*bC.*a*bD.ab32.下列函数的功能是( )。(分数:1.00)A.检査 a 和 b 所指字符串中是否有0B.使指针 b 指向 a 所指字符串C.将 a 所指字符串和 b 所指字符串进行比较D.将 a 所指字符串赋给 b 所指空间33.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.2B.3C.7D.034.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.0B.1C.4D

11、.835.以下结构体类型说明和变量定义中正确的是( )。(分数:1.00)A.typedef struct int n; char c; REC;REC t1,t2;B.struct REC;int n; char c;REC t1,t2;C.typedef struct REC;int n=0; char c=A; t1,t2;D.structint n; char c; REC; REC t1,t2;36.假定已建立以下链表结构,且指针 p 和 q 已指向如下图所示的结点:则以下选项中可将 q 所指结点从链表中删除并释放该结点的语句组是()。则以下选项中可将 q 所指结点从链表中删除并释放

12、该结点的语句组是( )。(分数:1.00)A.p-next=q-next; free(q);B.p=q-next; free(q);C.p=q; free(q);D.(*p).next=(*q).next; free(p);37.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.1002,ChangRong,1202.0B.1001,ZhangDa,1098.0C.1001 ,ChangRong, 1098.0D.1002,ZhangDa,1202.038.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.11 7B.12 12C.11 11D.12 739.有以下程序

13、程序运行后的输出结果为( )。(分数:1.00)A.6B.11C.21D.140.设 fP为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fP)的返回值为( )。(分数:1.00)A.非 0 值B.0C.0D.NULL二、程序填空题(总题数:1,分数:20.00)用筛选法可得到 2 n(n0|Eb?(bc?1:0):0;功能相同的是( )。(分数:1.00)A.if(ab)ll(bc)k=1; else k=0;C.if(ab) else k=0; D.if(ab) k=1; else if(bc) k=1; else k=0;解析:k=ab?(bc?1:0):0, ab 并且

14、 bc,k 为 1,其他情况 k 为 0,答案为 C)。20.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.10,14 B.8,11C.7,11D.9,18解析:第一次循环后,a 为 4,b 为 3,第二次循环后,a 为 7, b 为 7,第三次循环后,a 为 10, b 为 14,故答案为A )。21.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.0B.1 C.2D.3解析:虽为嵌套的 for 循环,但“m=m%j”只执行 1 次,即当 i=3 时,内层循环条件 成立,m=55%3=1,故选 B)。22.有以下程序程序运行后输出的结果为( )。(分数:1.00

15、)A.8,5,4,2, B.8,7,5,2,C.9,7,6,4,D.7,4,2,解析:第一次 x 为 8,输出 8,第二次 x 为 6,输出 6,第三次 x 为 4,输出 4,第四次 x 为 2,输出 2,循环结束,所以答案选择 A)。23.以下关于 return 语句的叙述正确的是( )。(分数:1.00)A.没有 return 语句的自定义函数在执行结束时不能返回到调用处B.一个自定义函数中必须有一条 return 语句C.定义成 void 类型的函数中可以有带返回值的 return 语句D.个自定义函数中可以根据不同情况设置多条 return 语句 解析:一个函数可以有多个 return

16、 语句,所以选择 D )。24.已定义以下函数int fun( int *p) return *p; fun 函数返回值是( )。(分数:1.00)A.个整数 B.不确定的值C.形象 p 中存放的值D.形象 p 的地址值解析:本题考査的是指针的概念。在 C 语言中,指针是一种特殊的变量,它存放 的值是一个内存地址。所以一个指针变量涉及三个值:指针变量所指内容的值、指针变量中存放的值和指针 变量的地址值,分别用表达式*P、P、 scanf(“%d“,B.int *p; scanf(“%d“,p);C.int k,*p= scanf(“%d“,p); D.int k,*p;*p= scanf(“%

17、d“,p);解析:scanf 函数参数列表需要为指针,这个指针必须指向变量,所以答案选 择 C )。26.若有定义double a10 ,*s=a;以下能够代表数组元素 a3的是( )。(分数:1.00)A.*(s+3) B.(*s)3C.*s3D.*s+3解析:*(s+3)指针后移 3 个单位,为 a3的值。答案选择 A )。27.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.2,2,3,4,5,B.6,2,3,4,5, C.1,2,3,4,5,D.2,3,4,5,6解析:f 函数将 a0自增 5 次,所以答案选择 B)。28.有以下程序程序运行后的输出结果是( )。(分数:

18、1.00)A.31 B.34C.4D.32解析:本题考査的是二维数组的定义、赋初值和对二维数组元素的引用。在 fun 函 数中,首先将 s0k的值赋给 m,然后通过 for 循环,遍历 s1k-sn-1k之中的数,将遇到的比 m 大的数保存 到 m 中。很显然,这是搜索最大值的算法,搜索的是 S0ksn-1k之间的最大值。所以,主函数中 fun(a,4,0) 的功能就是搜索 a00a30之间的最大值,这 4 个值分别是 1、11、21、31,所以最终输出结果是31,应该 选择 A)。29.以下能正确定义字符串的语句是( )。(分数:1.00)A.char str=0; B.char str=x

19、43;C.char str=D.char str=064解析:字符串末尾一定要有结束标记,双引号括起来的默认添加了结束标记,所 以选择 A)。30.以下关于字符串的叙述正确的是( )。(分数:1.00)A.C 语言中有宇符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串比空格打头的字符串小 解析:空格是一种字符,所以空串肯定比空格打头的字符串小。31.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.a*b* B.a*bC.*a*bD.ab解析:第一个 While 循环跳过字符串前面的*,第二个 while

20、 循环将剩余的字符串赋 值给字符串 b,所以 fun 函数的功能是删除字符串 s 的前置*并赋值给 t。32.下列函数的功能是( )。(分数:1.00)A.检査 a 和 b 所指字符串中是否有0B.使指针 b 指向 a 所指字符串C.将 a 所指字符串和 b 所指字符串进行比较D.将 a 所指字符串赋给 b 所指空间 解析:将 a 数组里元素赋值给 b 数组,直到数组 a 的末尾,所以选择 D)。33.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.2B.3C.7D.0解析:本题考査的是递归算法的分析。一个直接或间接地调用自身的算法称为递 归算法。在一个递归算法中,至少要包含一个

21、初始值和一个递归关系。本题的 fun 函数在 x=0 或 x=1 时返回 3, 而在其余情况下返回 x-fun(x-2),所以本题的递归算法可以这样表示: fun(x)=3 (x=0 或 x=1)(初始值) fun(x)=x-fun(x-2)(x#0 且 x#1)(递归关系)在主函数中输出的结果是 fun (7),而 fun(7) = 7-fun(5) = 7-(5-fun(3) = 7-(5-(3-fun(1)。34.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.0B.1C.4 D.8解析:第一次循环返回 2,第二次循环返回 4,所以输出 4,答案选择 C)。35.以下结构体

22、类型说明和变量定义中正确的是( )。(分数:1.00)A.typedef struct int n; char c; REC;REC t1,t2;B.struct REC;int n; char c;REC t1,t2;C.typedef struct REC;int n=0; char c=A; t1,t2;D.structint n; char c; REC; REC t1,t2;解析:B)选项和 C)选项中,REC 后不应加分号,D)选项中没有 typedef,REC 不能作为类型名。所以答案选择 A)。36.假定已建立以下链表结构,且指针 p 和 q 已指向如下图所示的结点:则以下选项

23、中可将 q 所指结点从链表中删除并释放该结点的语句组是()。则以下选项中可将 q 所指结点从链表中删除并释放该结点的语句组是( )。(分数:1.00)A.p-next=q-next; free(q); B.p=q-next; free(q);C.p=q; free(q);D.(*p).next=(*q).next; free(p);解析:本题考査的是在链表中删除结点的操作。在本题中指针 P 指向结点 a, q 指 向结点 b。要把结点 b 删除,就应该首先让结点 a 的指针域指向结点 c,即 p-next=q-next,也可以写成(*p). next=(*q).next,然后释放结点 b,即

24、free(q)。所以,4 个选项中只有 A)满足题意。37.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.1002,ChangRong,1202.0B.1001,ZhangDa,1098.0 C.1001 ,ChangRong, 1098.0D.1002,ZhangDa,1202.0解析:f 函数是值传递,不会改变 main 函数中 t 的值,所以结果为 B)。38.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.11 7 B.12 12C.11 11D.12 7解析:f(2)展开后为 2*5+1,值为 11,f(1+1)展开后为 1+1*5+1 值为 7,所以答

25、案选择 A)。39.有以下程序程序运行后的输出结果为( )。(分数:1.00)A.6B.11C.21 D.1解析:a2 的值为 20, 20|1 结果为 21,所以答案选择 C)。40.设 fP为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fP)的返回值为( )。(分数:1.00)A.非 0 值 B.0C.0D.NULL解析:本题考査的是文件指针 feof 的运用。当文件读到结尾时,feof(fP)为非零值, 否则为 0。二、程序填空题(总题数:1,分数:20.00)用筛选法可得到 2 n(n10000)之间的所有素数,方法是:首先从素数 2 开始,将所有是 2 的倍数的 数

26、从数表中删去(把数表中相应位置的值置成 0);接着从数表中找下一个非 0 数,并从数表中删去该数的所 有倍数;依此类推,直到所找的下一个数等于 n 为止。这样会得到一个序列:2, 3, 5, 7, 11, 13, 17, 19, 23, 函数 fun 用筛选法找出所有小于等于 n 的素数,并统计素数的个数作为函数值返回。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构!(分数:20.00)填空项 1:_ (正确答案:(1)ai(2)ai(3)0 )解析:填空 1:因为本题的方法是首

27、先从素数 2 开始,将所有 2 的倍数的数从中删去(把数表中相应位置置 0),可知本空应填 ai。填空 2: while 循环表示接着从数表中找下一个非零数,并从表中删去该数的所有倍数,故填 ai。填空 3:因为要统计表中素数个数,因而只需把置 0 的数排除,因而此空填写 0。三、程序改错题(总题数:1,分数:20.00)给定程序 M0DI1.C 中函数 fun 的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将 这两个素数通过形参指针传回主函数。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!(分

28、数:20.00)_正确答案:(1) y=1; (2) d=a-i;)解析:这道题是历年的经典考题,也是验证哥德巴赫猜想的变体。原来的思路是:任意一个大于等于 6 的偶数 都可以分解为两个素数之和,n 为大于等于 6 的任一偶数,可分解为 n1 和 n2 两个数,分别检査 n1 和 n2是 否为素数,如果都是,则为一组解;如果 n1 不是素数,就不必再检査 n2 是否为素数。先从 n1=3 开始,检 :验 n1 和 n2(n2=N n1)是否为素数;然后使 n1+2 再检验 n1、n2 是否为素数,直到 n1=n/2 为止。四、程序设计题(总题数:1,分数:20.00)请编写函数 fun,它的功能是:计算并输出 n(包括 n)以内能被 5 或 9 整除的所有自然数的倒数之和。 例如,在主函数中从键盘给 n 输入 20 后,输出为:8=0.583333。注意:要求 n 的值不大于 100。部分源程序在文件 PR0G1.C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。(分数:20.00)_正确答案:()解析:本程序中循环语句用来遍历 n 以内的所有自然数,条件语句用来判断该数是否能被 5 或 9 整除,注意此 处判断条件中应使用逻辑或“II”运算符。变量 sum 累加符合要求的数的倒数和。

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

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1