ImageVerifierCode 换一换
格式:DOC , 页数:18 ,大小:156KB ,
资源ID:1318116      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1318116.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】2018年计算机二级C语言模拟题2及答案解析.doc)为本站会员(testyield361)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

1、2018 年计算机二级 C 语言模拟题 2 及答案解析(总分:100.00,做题时间:120 分钟)一、选择题(总题数:40,分数:40.00)1.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是( )。(分数:1.00)A.12345ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA2.下列叙述中正确的是( )。(分数:1.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队

2、列中元素的动态变化情况D.循环队列中元素的个数由队头指针和队尾指针共同决定3.在长度为 n 的有序线性表中进行二分法查找,最坏情况下需要比较的次数是( )。(分数:1.00)A.0(n)B.0(n2)C.D.4.数据流图中带有箭头的线段表示的是( )。(分数:1.00)A.控制流B.事件驱动C.模块调用D.数据流5.下列叙述中正确的是( )。(分数:1.00)A.顺序存储结构的存储空间一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间6.

3、在软件开发中,需求分析阶段可以使用的工具是( )。(分数:1.00)A.N-S 图B.DFD 图C.PAD 图D.程序流程图7.一间宿舍可住多名学生,则实体宿舍和学生之间的联系是( )。(分数:1.00)A.一对一B.一对多C.多对一D.多对多8.在面向对象方法中,不属于“对象”基本特点的是( )。(分数:1.00)A.一致性B.分类性C.多态性D.标识唯一性9.在数据管理技术发展的三个阶段中,数据共享最好的是( )。(分数:1.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.三个阶段相同10.有三个关系 R、S 和 T 如下:由关系 R 和 S 通过运算得到关系 T,则所使用的运

4、算为( )。 (分数:1.00)A.笛卡尔积B.交C.并D.自然连接11.以下叙述中错误的是( )。 (分数:1.00)A.使用三种基本结构构成的程序只能解决简单问题B.结构化程序由顺序、分支、循环三种基本结构组成C.C 语言是一种结构化程序设计语言D.结构化程序设计提倡模块化的设计方法12.以下四个程序中,完全正确的是( )。 (分数:1.00)A.B.C.D.13.C 源程序中不能表示的数制是( )。(分数:1.00)A.十进制B.八进制C.二进制D.十六进制14.以下选项中,能用作用户标识符的是( )。(分数:1.00)A._0_B.8_8C.voidD.unsigned15.若有定义语

5、句“int x=10;”,则表达式“x-=x+x”的值为( )。 (分数:1.00)A.10B.-20C.0D.-1016.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.1,2B.1,0C.3,2D.0,017.有以下程序若想通过键盘输入,使得 al 的值为 12, a2 的值为 34, cl 的值为字符 a, c2 的值为字符 b,程序输出结果是 12,a,34,b 则正确的输入格式是( )(代表空格字符)。(分数:1.00)A.12 口 a 口 34 口 bB.12a34bC.12,a,34,bD.12 口 a34 口 b18.若变量已正确定义,在“if(w)printf(

6、“dn“,k);”中,以下不可替代 w 的是( )。(分数:1.00)A.a=b+cB.ch=getchar()C.ab+c D.a+解析:选项 C)是非法的表达式,C 语言中没有“b 的条件不满足,因此不执行逗号表达式“a=b,b=C;”的操作,而是执行“c=a”的操作,即 c 的值为 10。故本题答案为 A)。20.下列叙述中正确的是( )。(分数:1.00)A.在 switch 语句中,不一定使用 break 语句 B.在 switch 语句中,必须使用 defaultC.break 语句必须与 switch 语句中的 case 配对使用D.break 语句只能用于 switch 语句解

7、析:default 语句在 switch 语句中可以省略,因此 B)错误;switch 语句中并非每个 case 后都需要使用 break 语句,因此 C)错误;break 语句还可以用于 for 等循环结构中,因此 D)错误。故本题答案为 A)。21.以下不构成无限循环的语句或语句组是( )。(分数:1.00)A.B. C.D.解析:选项 B)中 do 后面的语句只执行了一次便结束了循环;A)选项中条件 while(l)永远成立,因此是死循环;C)选项中 n 的值为 10,而循环体为空语句,所以 while(n)永远为真,进入死循环;D)选项中 for 语句第二个表达式为空,因此没有判定条件

8、,进入死循环。因此本题答案为 B)。22.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.3 B.5C.7D.9解析:向 switch 语句块传送参数后,编译器会先寻找匹配的 case 语句块,找到后就执行该语句块,遇到break 跳出;如果没有匹配的语句块,则执行 default 语句块。case 与 default 没有顺序之分。因此第一次循环 k 的值为 1,执行 c+=k,c 的值为 1,再执行 case2 后的语句 C+,c 的值为 2,遇到 break 语句跳出循环;第二次循环 k 的值为 2,执行 case2 后面的语句 C+,c 的值为 3,跳出循环。故本题答案为

9、 A)。23.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.8B.10C.9 D.7解析:调用“f(a,b)”函数返回 3,调用“f(a,c)”函数返回 6,因此外层调用“f(f(a,b),f(a,c);”,即调用“f(3,6)”函数返回 9,故本题答案为 C)。24.若有定义语句“double x,y,*px,*py;”,执行了“px=x;py=”应为“scanf(“%lf%lf“,”。故本题答案为 A)。25.若有定义语句“double a,*p=”中,*号是一个指针运算符,而非间址运算符,因此 D)错误。26.以下定义数组的语句中错误的是( )。 (分数:1.00)A.i

10、nt num= 1,2,3,4,5,6 ;B.int num3= 1,2,3,4,5,6 ;C.int num24= 1,2,3,4,5,6 ; D.int num4=l,2,3,4,5,6;解析:C)选项中定义的数组为 2 行 4 列,而赋值时赋成了 3 行,因此出错。27.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.1,2,3,4,5,6,7,8,9,0, B.2,1,4,3,6,5,8,7,0,9,C.0,9,8,7,6,5,4,3,2,1,D.0,1,2,3,4,5,6,7,8,9,解析:函数调用中发生的数据传递是单向的,即只能把实参的值传递给形参,而不能把形参的值反

11、向地传递给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化,所以数组 c 中的元素的值并没有变化,故选择 A)。28.有以下程序当执行上述程序段,从键盘上输入 55566 7777123 后,y 的值为( )。(分数:1.00)A.566.0 B.55566.0C.7777.0D.566777.0解析:本题考査的是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其中的格式命令可以说明最大域宽。在百分号()与格式码之间的整数用于限制从对应域读入的最大字符数。因此 j 的值为 55,y 的值为 566.0,字符数组 name 的值为 7777123。故本题答案

12、为 A)。29.有以下程序若运行时输入:2 4 6,则输出结果为( )。(分数:1.00)A.2 0 0B.2 0 4 C.2 4 0D.2 4 6解析:本题中输入的 3 个数据 2、4、6 分别赋给了 x00、xl0和 x20。x0l仍为初始时的0,因此打印输出时的结果为 B)选项。30.下列语句组中,正确的是( )。(分数:1.00)A.char *s;s=”Olympic“; B.char s7;s=”Olympic”;C.char *s;s=”Olympic”;D.char s7;s=”Olympic”;解析:字符型指针变量可以用选项 A)的赋值方法“char*S;S=”Olympic

13、”;”,选项 C)的写法“char*s,s=“Olympic“;”是错误的。字符数组可以在定义的时候初始化“chars=“Olympic“;”或者“CharS=“Olympic“;”都是正确的,但是不可以在定义字符数组后,对数组名赋值(数组名是常量,代表数组首地址)。所以选项 B)和选项 D)都是错误的。对于本例,选项 B)、D)中字符数组 s 的大小至少为 8,才能存放下字符串(字符串的末尾都有结束标志0)。31.有以下程序(字符 a 的 ASCII 码值为 97)程序运行后的输出结果是( )。(分数:1.00)A.abcB.789C.7890 D.979899解析:因为小写字符 a、h、c

14、 的 ASCII 码的值分别为 97、98、99,而在“do.while”循环语句中,每次对字符的 ASCII 码的值取余数并输出,所以分别输出 7、8、9,选项 B)正确。32.有以下函数该函数的功能是( )。(分数:1.00)A.计算 s 所指字符串占用内存字节的个数B.比较两个字符串的大小C.计算 s 所指字符串的长度 D.将 s 所指字符串复制到字符串 t 中解析:首先“char*s”接受一个字符型数组的首地址并将这个首地址赋给另一个字符型指针“char*t,While(*t+)”不断循环,直到*t 为0,再将 t-1,这时字符指针 t 指向字符串的最后一个字符,又因为 s 指向字符数

15、组的首地址即字符串的首地址,所以“return(t-S)”便是返回字符数组中字符串的长度 p 故本题答案为 C)。33.设有如下函数定义若执行调用语句”n=fum(3);”,则函数 fun 总共被调用的次数是( )。(分数:1.00)A.3 B.2C.4D.5解析:首先调用“n=fun(3)”,3 被当作参数传递进去,进行了第一次调用,3 被当作参数传进去后,程序会执行语句“else return fun(k-1)+1”进行第二次调用,参数是 3-1 也就是 2,2 被当作参数传进去后,程序会执行语句“else return fun(k-1)+1”进行第三次调用,参数是 2-1 也就是 1,1

16、 被当作参数传进去后,程序会执行语句“else if(k=l)return1”不再递归调用,因此最终结果为 3 次,选项 A)正确。34.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.9 B.8C.7D.10解析:题目中定义的静态局部变量 a,在静态存储区内分配存储单元,在程序整个运行期间都不释放。因此第一次调用函数执行“n+=a+”时,a 先与 n 相加再进行自增运算。n 的值为 4,a 的值为 2,且 a 变量执行完后空间没有释放。再执行“s=s+f(A)”时,s 的值为 4,调用 f(A)函数时,n 的返回值为“n=3+2=5”,此时 a 的值为 3,所以 s 的值为 9

17、,选项 A)正确。35.设有定义:则以下赋值语句中错误的是( )。(分数:1.00)A.data2.real=datal.unreal;B.data2=datal;C.data2.real=datal.real;D.data2=(2,6); 解析:选项中可以在声明变量的同时为 data2 赋值,但是“data2=(2,6)”应写作“data2=2,6”,因此选择 D)。36.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.Zhao,m,85,90, Qian,f,95,92 B.Zhao,m,85,90, Zhao,m,85,90C.Qian,f,95,92, Qian,f,95

18、,92D.Qian,f,95,92, Zhao,m,85,90解析:本题考査的是函数调用时的参数传递问题。程序在调用函数时,传给函数 f 的参数只是结构变量 c在栈中的一个拷贝,函数 f 做的所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量 c 的值。因此本题答案为 A)。37.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.10,9,8,7,6,5,4,3,2,1,B.1,2,3,4,5,6,7,8,9,10, C.2,3,1,6,8,7,5,4,10,9,D.10,9,8,7,6,1,2,3,4,5,解析:本题的子函数 f 的功能是对结构体变量 s 中第二个成员数组

19、中所有的数据进行从小到大的冒泡排序,因此结果是 B)。38.以下关于宏的叙述中正确的是( )。(分数:1.00)A.宏替换没有数据类型限制 B.宏定义必须位于源程序中所有语句之前C.宏名必须用大写字母表示D.宏调用比函数调用耗费时间解析:宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头,因此 B)选项中宏定义必须位于源程序中所有语句之前是错误的。宏名一般用大写,但不是必须用大写,因此 C)选项错误。宏展开不占运行时间,只占编译时间,函数调用占运行时间(分配内存、保留现场、值传递、返回值),因此 D)选项错误。39.设有以下语句执行后,C 的值为( )。(分数:1.00)A.8

20、B.7C.9 D.6解析:b 为 2,以二进制表示为 00000010,执行左移两位操作后为 00001000,然后与 a00000001 做异或操作,结果为 00001001,即十进制的 9,因此 C)选项正确。40.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.123 B.12300C.1D.321解析:程序首先将数组 a10中的元素 1、2、3 分别写人了文件 dl.dat 文件中,然后又将 dl.dat 文件中的数据 123,整体写人了变量 n 的空间中,因此打印 n 时输出的数据为 123,选项 A)正确。二、程序填空题(总题数:1,分数:20.00)(分数:20)(

21、1).(分数:6)填空项 1:_ (正确答案:1.0)解析:在这里要给 f 赋初值,由计算表达式可知此空应该填 1.0。(2).(分数:7)填空项 1:_ (正确答案:-1)解析:在计算的过程中正负号是交错的,因而此空填写-1。(3).(分数:7)填空项 1:_ (正确答案:t)解析:本题考查了复合赋值运算,由本题求表达式 f(x)的值可知此空应该填写 t。三、程序改错题(总题数:1,分数:20.00)给定程序 MOD1.C 中函数 fun 的功能是:从 3 个红球、5 个白球、6 个黑球中任意取出 8 个作为一组输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是 15。程序中 i 的值代表红球数,j 的值代表白球数,k 的值 代表黑球数。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!(分数:20)(1).(分数:10)_正确答案:(for(i=l;i=0。for 循环的作用是每一次循环将 1.0/t 与 sn 相加,并将值存入 sn 中。

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