【计算机类职业资格】二级C语言笔试-114及答案解析.doc
《【计算机类职业资格】二级C语言笔试-114及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-114及答案解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-114 及答案解析(总分:70.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.有以下程序:main()int k=5,n=0;while(k0)(switch(k)(default:break;case 1:n+=k;case 2:case 3:n+=k;k-;printf(“%d/n”, n);程序运行后的输出结果是( )。(分数:1.00)A.0B.4C.6D.72.栈和队列的共同点是( )。(分数:1.00)A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点3.有以下定义语句:double a,b;int w;l
2、ong c;若各变量已正确赋值,则下列选项中正确的表达式是( )。(分数:1.00)A.a=a+b=b+B.w%(int)a+b)C.(c+w)%(int)aD.w=a=b4.s1和 s2已正确定义并分别指向两个字符串。若要求:当 s1所指串大于 s2所指串时,执行语句 S,则以下选项中正确的是( )。(分数:1.00)A.if(s1s2)S;B.if(strcmp(s1,s2)S;C.iflstrcmp(s2,s1)0)S;D.if(strcmp(s1,s2)0)S;5.以下不能正确计算代数式 sin2( )值的 C语言表达式是( )。(分数:1.00)A.1/3,sin(1/2)*sin(
3、1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)6.设有定义:float a=2,b=4,h=3;,以下 C语言表达式中与代数式 1/2(a+b) h计算结果不相符的是( )。(分数:1.00)A.(a+b) *h/2B.(1/2)*(a+b) +hC.(a+b) *h*1/2D.h/2*(a+7.按照 C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。(分数:1.00)A.大写字母B.连接符C.数字字符D.下划线8.有以下程序:main()int a=7,b=8,*p,*q,*r;p=a;q
4、=b;r=p;p=q;q=r;printf(“%d,%d,%d,%d/n”,*p,*q,a,b);程序运行后的输出结果是( )。(分数:1.00)A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,79.有以下程序:main()int a44=(1,4,3,2),(8,6,5,7),(3,7,2,5),(4,8,6,1),i,j,k,t;for(i=0;i4;i+)for(j=0;j3;j+)for(k=j+i;k4;k+)if(ajiakit=aji:aji=aki;=aki=t;/*按列排序*/for(i=0;i4:i+)printf(“%d,”aii);程序运行后的输出
5、结果是( )。(分数:1.00)A.1,6,5,7,B.8,7,3,1,C.4,7,5,2,D.1,6,2,1,10.现有如下程序段:#include“stdio h”main()int k30=12,324,45,6,768,98,21,34,453,456;int count=0,i=0;while(ki)if(ki%2=0IIki%5=0)count+;i+printf(“%d,%d/n”,count,i); 则程序段的输出结果为( )。(分数:1.00)A.7,8B.8,8C.7,10D.8,1011.检查软件产品是否符合需求定义的过程称为( )。(分数:1.00)A.确认测试B.集成
6、测试C.验证测试D.验收测试12.设有如下说明:typedef struct ST(long a;int b;char c2;)NEW;则下面叙述中正确的是( )(分数:1.00)A.以上的说明形式非法B.ST是一个结构体类型C.NEW是一个结构体类型D.NEW是一个结构体变量13.若变量已正确定义,有以下程序段:int a=3,b=5,c=7;if(ab) a=b;c=a;if(c=ac=b;printf(“%d,%d,%d/n”,a,b,c) ;其输出结果是( )。(分数:1.00)A.程序段有语法错B.3,5,3C.3,5,5D.3,5,714.设已有定义:float X;,则以下对指针
7、变量 P进行定义且赋初值的语句中正确的是( )。(分数:1.00)A.float*P=1024;B.int*P=(float)X:C.float p=main()int aMN;int i,j;for(i=0:iM;i+)for(j=0;jN;j+)aij=i+j-(i-j);fun((分数:1.00)A.;A) 3B) 4C) 530.下列叙述中正确的是( )。(分数:1.00)A.每个 C程序文件中都必须要有一个 main()函数B.在 C程序中 main()函数的位置是固定的C.C程序中所有函数之间都可以相互调用,与函数所在位置无关D.在 C程序的函数中不能定义另一个函数31.有以下程序
8、,其中%u 表示按无符号整数输出:main() unsigned int x=OxFFFF;/*X 的初值为十六进制数*/printf(“%u/n”,X);程序运行后的输出结果是( )。(分数:1.00)A.-1B.65535C.32767D.OxFFFF32.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( )。(分数:1.00)A.概要设计B.详细设计C.可行性分析D.需求分析33.若有说明语句:char c=/72;,则变量 C( )。(分数:1.00)A.包含 1个字符B.包含 2个字符C.包含 3个字符D.说明不合法,C 的值不确定34.已有定义:char
9、 c;,程序前面已在命令行中包含 ctypeh文件。不能用于判断 C中的字符是否为大写字母的表达式是( )。(分数:1.00)A.isupper(C)B.A=c=ZC.A=cc=ZD.c=(Z-32)(a-32)=C35.软件生命周期中所花费用最多的阶段是( )。(分数:1.00)A.详细设计B.软件编码C.软件测试D.软件维护36.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )。(分数:1.00)A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元37.对
10、于现实世界中事物的特征,在实体一联系模型中使用( )。(分数:1.00)A.属性描述B.关键字描述C.二维表格描述D.实体描述38.数据库系统的核心是( )。(分数:1.00)A.数据库B.数据库管理系统C.模拟模型D.软件工程39.有以下程序:main()int X,Y,Z;x=y=1:Z=X+,Y+,+Y;printf(“%d,%d,%d/n”,X,Y,Z);程序运行后的输出结果是( )。(分数:1.00)A.2,3,3B.2,3,2C.2,3,1D.2,2,140.设有以下语句:int a=1,b=2,C;c=a(b2);执行后,C 的值为( )。(分数:1.00)A.6B.7C.8D.
11、9二、填空题(总题数:15,分数:30.00)41.栈的基本运算有三种:入栈、退栈和 (1) 。(分数:2.00)填空项 1:_42.希尔排序法属于 (2) 排序法。(分数:2.00)填空项 1:_43.类是一个支持集成的抽象数据类型,而对象是类的 (3) 。(分数:2.00)填空项 1:_44.源程序文档化要求程序应加注释。注释一股分为序言性注释和 (4) 。(分数:2.00)填空项 1:_45.数据库设计包括概念设计、 (5) 和物理设计。(分数:2.00)填空项 1:_46.以下程序运行时若从键盘输入:10 20 30回车。输出结果是 (6) 。#includemain()int i=0
12、, j=0,k=0;scanf(“%d%*d%d”,k-;printf(“%d/n”, n);程序运行后的输出结果是( )。(分数:1.00)A.0B.4C.6D.7 解析:解析 本题考查的是 switch语句。switch 语句中的 case或 default只是一种入口标号,它并不形成一种子句的概念。当满足其中某个标号的条件而进入 switch语句中时,如果没碰到 break语句,将一直执行到 switch语句的结尾。题目中使用了一个 while循环使 k从 5递减到 1,当 k=5或 4的时候从default标号进入 switch,碰到 break;语句立即跳出,没有改变 n;当 k=3
13、时,执行了一次 n+=k;当k=2时,也执行了一次 n+=k;当 k=1时,执行了两次 n+=k;。所以最终 n的值为 3+2+1+1=7。2.栈和队列的共同点是( )。(分数:1.00)A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素 D.没有共同点解析:解析 栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表。本题答案为 C)。3.有以下定义语句:double a,b;int w;long c
14、;若各变量已正确赋值,则下列选项中正确的表达式是( )。(分数:1.00)A.a=a+b=b+B.w%(int)a+b)C.(c+w)%(int)a D.w=a=b解析:解析 本题考核的知识点是 C语言中一些运算符的简单应用。选项 A)中不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为 a=b+(b=b+)才正确,故选项 A)不正确;选项 B)中运算符“%”的对象必须是整型,而在选项 B)中(int)a+b 为 double型,故选项 B)不正确;选项 D)中 a、b 都为 double型,“=”应该改为“=”,故选项 D)不正确。所以,4 个选项中选项 C)符合题意。4.s1和 s2
15、已正确定义并分别指向两个字符串。若要求:当 s1所指串大于 s2所指串时,执行语句 S,则以下选项中正确的是( )。(分数:1.00)A.if(s1s2)S;B.if(strcmp(s1,s2)S;C.iflstrcmp(s2,s1)0)S;D.if(strcmp(s1,s2)0)S; 解析:解析 本题考核的知识点是字符串的比较。在 C语言中字符串的比较用 strcmp()函数,该函数有两个参数,分别为被比较的两个字符串。如果第一个字符串大干第二个字符串返回值大干 0,若小于返回值小于 0,相等返回值为 0。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符
16、串就是较大的字符串,如果遇到某一个字符小,该字符所在的字符串就是较小的字符串。本题中要求当 s1所指字符串大于 s2所指串时,执行语句 S,因此应该为 strcmp(s1,s2)0 或者strcmp(s2,s1)0,所以,4 个选项中 D) 符合题意。5.以下不能正确计算代数式 sin2( )值的 C语言表达式是( )。(分数:1.00)A.1/3,sin(1/2)*sin(1/2) B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)解析:解析 本题考查的是除法运算符“/”的用法。当运算符“/”的左右两边运算分量都
17、是整数的时候,运算结果也是一个整数,如果除不净则舍去小数部分。若两个运算分量有一个是实数,才会返回真正除法上的实数结果。选项 A)中传递给 sin()函数的参数表达式 1/2计算出来的结果为整数 0,所以不能正确计算出题目要求的值,而其余选项中,除号两边都至少有一个运算分量是实数,故应该选择 A)。6.设有定义:float a=2,b=4,h=3;,以下 C语言表达式中与代数式 1/2(a+b) h计算结果不相符的是( )。(分数:1.00)A.(a+b) *h/2B.(1/2)*(a+b) +h C.(a+b) *h*1/2D.h/2*(a+解析:解析 本题考核的知识点是将简单的数学表达式表
18、示成合法的 C程序的语句。选项 B) 中由于 1和 2都是整型,其 1/2的运算结果为 0,故整个表达式的值为 0,所以它的结果和题目中要求的代数式的计算结果不相符,所以,4 个选项中选项 B)符合题意。7.按照 C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。(分数:1.00)A.大写字母B.连接符 C.数字字符D.下划线解析:解析 本题考查的知识点是:标识符。C 语言的标识符要符合以下规定:标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串;标识符不能与任意一个关键字同名;标识符中的字母区分大小写。故本题应该选择 B)。8.有以下程序:main()int a=
19、7,b=8,*p,*q,*r;p=a;q=b;r=p;p=q;q=r;printf(“%d,%d,%d,%d/n”,*p,*q,a,b);程序运行后的输出结果是( )。(分数:1.00)A.8,7,8,7B.7,8,7,8C.8,7,7,8 D.7,8,8,7解析:解析 本题考核的知识点是指针变量的基本应用。程序中定义了两个变量 a和 b,并分别赋初值为 7和 8,定义了三个指针变量 p、q、r,并让指针 p指向变量 a,让 q指向变量 b,然后通过一个中间指针变量 r,使指针变量 p和 q互换,互换后 p指向 q所指的内容即 b,q 指向开始 D所指向的内容即 a,因此最后输出的*p、*q
20、的值为 8、7、a、b 的值没有改变仍为 7、8。所以,4 个选项中选项 C) 符合题意。9.有以下程序:main()int a44=(1,4,3,2),(8,6,5,7),(3,7,2,5),(4,8,6,1),i,j,k,t;for(i=0;i4;i+)for(j=0;j3;j+)for(k=j+i;k4;k+)if(ajiakit=aji:aji=aki;=aki=t;/*按列排序*/for(i=0;i4:i+)printf(“%d,”aii);程序运行后的输出结果是( )。(分数:1.00)A.1,6,5,7, B.8,7,3,1,C.4,7,5,2,D.1,6,2,1,解析:解析 题
21、目中首先定义了一个二维数组 a,并初始化为:|1 4 3 2|8 6 5 7|3 7 2 5|4 8 6 1|然后通过三重循环对数组 a实行按列排序。从 if(ajiaki)“当前面的元素大于后面的”则交换可以看出,排序是从小到大的,所以排序结束后,数组 a的内容应该是:|1 4 2 1|小|3 6 3 2| |4 7 5 5| |8 8 6 7|大最后通过一个 for循环,依次输出:a00,a11,a22,a33的值,即输出 1,6,5,7。10.现有如下程序段:#include“stdio h”main()int k30=12,324,45,6,768,98,21,34,453,456;i
22、nt count=0,i=0;while(ki)if(ki%2=0IIki%5=0)count+;i+printf(“%d,%d/n”,count,i); 则程序段的输出结果为( )。(分数:1.00)A.7,8B.8,8C.7,10D.8,10 解析:解析 在 C语言中,定义一维数组的语句一般形式如下:类型名数组名常量表达式;一维数组的引用形式为:数组名下标表达式count表示能被 2整除或被 5整除的个数,i 则计算有多少个数组元素。11.检查软件产品是否符合需求定义的过程称为( )。(分数:1.00)A.确认测试 B.集成测试C.验证测试D.验收测试解析:解析 确认测试的任务是验证软件的
23、功能和性能,以及其他特性是否满足需求规格说明中确定的各种需求;集成测试的主要目的是发现与接口有关的错误。12.设有如下说明:typedef struct ST(long a;int b;char c2;)NEW;则下面叙述中正确的是( )(分数:1.00)A.以上的说明形式非法B.ST是一个结构体类型C.NEW是一个结构体类型 D.NEW是一个结构体变量解析:解析 本题考查的知识点是:结构体的定义和用户定义类型的结合。结构体类型说明的一般形式为:struct 结构体标识名(类型名 1结构体成员名;)题中 ST为结构体标识名,而结构体标识名是可选项,NEW 为结构体类型故 C)为正确答案。13.
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 114 答案 解析 DOC
