欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言笔试-114及答案解析.doc

    • 资源ID:1325955       资源大小:91.50KB        全文页数:27页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言笔试-114及答案解析.doc

    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.

    24、若变量已正确定义,有以下程序段: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,3 C.3,5,5D.3,5,7解析:解析 本题是一个陷阱题,以书写格式来考查考生对 if语句的理解。if 语句只对紧跟其后的一条语句或语句块产生作用。因此,题目中两条 if语句只有 a=b;和 c=b是 if的子旬。第 1条 if语句中b 为假,所以跳过语句 a=b;,执行 c=a;后,a=3、b=5、c=3。第 2条 if语句的判断条件 c!=a为假,所以

    25、跳过语句 c=b;。故最终输出的结果是:3,5,3,应该选择 B) 。14.设已有定义:float X;,则以下对指针变量 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) 5解析:解析 若有以下定义:inta34,i,j;且 0=i3,0=j4,则可以有以下几种方式来引用数组中的第 i行、第 j列的元素:aij,*(ai

    26、+j),*(*(a+i)+j),(*(a+i)j, *(a00+4*i+j)。30.下列叙述中正确的是( )。(分数:1.00)A.每个 C程序文件中都必须要有一个 main()函数B.在 C程序中 main()函数的位置是固定的C.C程序中所有函数之间都可以相互调用,与函数所在位置无关D.在 C程序的函数中不能定义另一个函数 解析:解析 本题考查的知识点是函数。每一个 C程序中都必须有且只有一个 main()函数,但一个 C程序可以由多个程序文件组成,所以并非每个 C程序文件中都必须要有一个 main()函数,故选项 A)不正确。C语言并未对 main()函数的位置作要求,因此选项 B)也是

    27、错误的。C 语言中,在一个函数被调用之前一定要先声明该函数,所以定义靠后的函数若在前面没有声明该函数的原型,是不能被定义靠前的函数所调用的,即函数之间的调用并非与函数所在位置无关,所以选项 C)不正确。故本题的正确答案应该为选项 D)。31.有以下程序,其中%u 表示按无符号整数输出:main() unsigned int x=OxFFFF;/*X 的初值为十六进制数*/printf(“%u/n”,X);程序运行后的输出结果是( )。(分数:1.00)A.-1B.65535 C.32767D.OxFFFF解析:解析 本题主要考查的知识点是:整型常量。整型常量有十进制、八进制和十六进制 3种表示

    28、:十进制整数以正号(+)或负号(-)开头,由首位非 0的一串十进制数字组成,正负号也可省略,表示正整数;八进制整数以数字 0开头,后面接若干个八进制数字(0-7);十六进制整数以数字 0和字母 X(大、小写均可)开头,后面接若干个十六进制数字(数字 09 和字母 AF,大、小写均可)。故本题是以无符号整数形式输出一个十六进制整数 FFFF,将其转换为十进制就是 65535,故本题应该选择 B) 。32.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( )。(分数:1.00)A.概要设计B.详细设计C.可行性分析D.需求分析 解析:解析 通常,将软件产品从提出、实现、

    29、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。软件生命周期的主要活动阶段为:可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。需求分析。对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。软件实现。把软件设计转换成计算机可以接受的

    30、程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。33.若有说明语句:char c=/72;,则变量 C( )。(分数:1.00)A.包含 1个字符 B.包含 2个字符C.包含 3个字符D.说明不合法,C 的值不确定解析:解析 C 语言的字符型常量中,允许用一种特殊形式的字符常量,就是以一个“/”开头的字符。其中,“/ddd”表示用 ASC码(八进制数)表示一个字符,本题中的

    31、 char c=/72即表示占一个字符的变量 c的 ASC码值。34.已有定义:char c;,程序前面已在命令行中包含 ctypeh文件。不能用于判断 C中的字符是否为大写字母的表达式是( )。(分数:1.00)A.isupper(C)B.A=c=Z C.A=cc=ZD.c=(Z-32)(a-32)=C解析:解析 本题考查的知识点是:大写字母的判断。大写字母从 AZ 的 ASC码是连续的,所以如果当一个字符大于等于 A且小于等于 Z时,那这个字符就一定是一个大写字母,故选项 C)正确。C 语言中的库函数 isupper()的作用也正是判断一个字符是否为大写字母的,故选项 A)正确。在 ASC

    32、码中,小写字母的编码也是连续的,对应的小写字符比大写字符的 ASC码值大 32,所以选项 D)经过小写字符-32 后,换算成了对应的大写字母 Z和 A,所得到结果和选项 C)是一致的,故也是正确的。选项 B) 中,C 语言的逻辑表达式不能用于判断 c中的字符是否为大写字母。35.软件生命周期中所花费用最多的阶段是( )。(分数:1.00)A.详细设计B.软件编码C.软件测试D.软件维护 解析:解析 软件生命周期分为软件定义、软件开发及软件运行维护 3个阶段。本题中,详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长、花费代价最大的一个阶段,软件工

    33、程学的一个目的就是提高软件的可维护性,降低维护的代价。36.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )。(分数:1.00)A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元 解析:解析 本题考查的知识点是:函数的形参和实参。在定义函数时函数名后面括弧中的变量名称为“形式参数”(简称形参),在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”(简称实参)。C 语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递

    34、,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。故本题应该选择 D) 。37.对于现实世界中事物的特征,在实体一联系模型中使用( )。(分数:1.00)A.属性描述 B.关键字描述C.二维表格描述D.实体描述解析:解析 属性(Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。38.数据库系统的核心是( )。(分数:1.00)A.数据库B.数据库管理系统 C.模拟模型D.软件工程解析:解析 数据库管理系统(Database Manaqement Syscem,DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组

    35、织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。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,1 D.2,2,1解析:解析 本题主要考查的知识点是运算符的优先级和结合性。解本题的关键在于表达式Z=x+、V+、+Y 的计算,其中有三种运算符“=”、“,”和“+”,它们的优先级从高到低依次是“+”、“=”和“,”,所以原表达式就相当于(Z=(X+),(Y+),(+Y)。自增运算符“+”是

    36、单目运算符,即它只对一个运算分量起作用,根据其在运算分量的前面或后面分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加 1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加 1之后的值,后缀形式表达式的值为运算分量加 1之前的值。40.设有以下语句:int a=1,b=2,C;c=a(b2);执行后,C 的值为( )。(分数:1.00)A.6B.7C.8D.9 解析:解析 本题考查的是位运算。因为任何数在计算机中都是以二进制的形式存在的,而位运算就是直接针对一个数的二进制位来进行的一些操作。题中的表达式 b2 意思是将 b的二进制位往左移动 2位,b 的原值为

    37、2,即二进制的 00000000 00000010。往左移动 2位后应该变为 00000000 00001000,即十进制 8。不难看出每往左移动 1位,就相当于在原值的基础上乘以 1个 2,但这也不一定准确,因为还要考虑往左移出去的那些位。接下来是 a8,是按位异或运算符,简单来说就是比较参与运算的两个数相应的二进制位,若两个位相同则结果为 0,否则为结果为 1。二、填空题(总题数:15,分数:30.00)41.栈的基本运算有三种:入栈、退栈和 (1) 。(分数:2.00)填空项 1:_ (正确答案:读栈顶元素或读栈顶的元素或读出栈顶元素)解析:解析 栈的基本运算有三种:入栈、退栈和读栈顶元

    38、素。入栈运算是指在栈顶位置插入一个新元素。这个运算有两个基本操作:首先将栈顶指针进一(即 top加 1),然后将新元素插入到栈顶指针指向的位置。退栈运算是指取出栈顶元素并赋给一个指定的变量。这个运算有两个基本操作:首先将栈顶元素(栈顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针退一(即 top减 1)。读栈顶元素是指将栈顶元素赋给一个指定的变量。这个运算不删除栈顶元素,只是将它的值赋给一个变量。42.希尔排序法属于 (2) 排序法。(分数:2.00)填空项 1:_ (正确答案:插入)解析:解析 希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。所以希尔排序法属于

    39、插入类排序,但它对简单插入排序做了很大的改进。43.类是一个支持集成的抽象数据类型,而对象是类的 (3) 。(分数:2.00)填空项 1:_ (正确答案:实例)解析:解析 类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是对应类的实例。44.源程序文档化要求程序应加注释。注释一股分为序言性注释和 (4) 。(分数:2.00)填空项 1:_ (正确答案:功能性注释)解析:解析 注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的并头部分,它给出程序的整体说明;功能性注释的位置一般嵌在源程序体之中,主要描述其后的语句或程序做什么。45.数据库设计包括概念设计、 (5

    40、) 和物理设计。(分数:2.00)填空项 1:_ (正确答案:逻辑设计)解析:解析 数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目标独立的若干个阶段。它们是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。在数据库设计中采用上面几个阶段中的前四个阶段。46.以下程序运行时若从键盘输入:10 20 30回车。输出结果是 (6) 。#includemain()int i=0, j=0,k=0;scanf(“%d%*d%d”,&i,&j,&k);printf(“%d%d%d/n”,i,j,k);(分数:2.00)填空项 1

    41、:_ (正确答案:10 30 0)解析:解析 本题考查了标准输入函数 scanf()。scanf()函数的第一个参数为控制字符串,由它决定应该接受多少个什么类型的输入数据,其中以字符%开头的是控制字符。“%d”表示接收一个十进制整数,而“%*d”表示跳过一个输入的十进制整数。因此,本题的 Scanf()函数要求用户输入三个十进制整数,但只接受第一个和第三个到函数的第二个和第三个参数所指的内存地址中。所以本题的输出为:10 30 0。47.若整型变量 a和 b中的值分别为 7和 9,要求按以下格式输出 a和 b的值:a=7b=9请完成输出语句:printf(“ (7) ”,a,b);(分数:2.

    42、00)填空项 1:_ (正确答案:a=%d/nb=%d/n)解析:解析 本题考查的是 printf函数的应用。printf 函数有两种参数:格式控制参数和输出项参数,其中格式控制参数由两种成分组成:格式说明和普通字符,普通字符将被简单地复制显示,格式说明项将引起一个输出参数项的转换与显示,它是由“%”引出并以一个类型描述符结束的字符串。本题中,a=和b=就是普通字符,可以直接显示,又因为 a和 b为整数,所以格式说明项为%d,另外还要在每行输出结束时加转义字符/n 进行换行。所以,应填写 a=%d/nb=%d/n。48.以下程序用于判断 a、b、c 能否构成三角形,若能,输出 YES,否则输出

    43、 NO。当给 a、b、c 输入三角形三条边长时,确定 a、b、c 能构成三角形的条件是需同时满足三个条件:a+bc,a+cb,b+ca。请填空。main()float a,b,c:scanf(“%f%f%”a,b,c);if( (8) )printf(“YES/n”);/*a、b、c 能构成三角形*/else printff(NO/n”);/*a、b、c 不能构成三角形*/(分数:2.00)填空项 1:_ (正确答案:(a+bC) &(a+cB) &(b+cA))解析:解析 三角形形式的条件是两边之和大于第三边。要用“”指令连接三个条件,表示三个条件都要满足。49.设有定义语句:int a3=

    44、012,则数组元素 a12的值是 (9) 。(分数:2.00)_解析:解析 本题考查的知识点是:二维数组的初始化。二维数组的初始化列表既可以使用一对花括号,也可以使用二重嵌套的花括号来表示。只使用一对花括号时,列表中的值按 a00、a01、a10、a11的顺序存放。若使用了二重嵌套的花括号,其最外层花括号中按顺序无论是 1个值还是一个以花括号括起来的值块,都对应二维数组中的一行,若元素个数不足则以 0代之。因此,本题中的0、1、250.有以下程序:void f(int Y,inf*X)(Y=Y+*X;*X=*X+y;)main()int X=2,Y=4:f(Y,X);printf“%d%d/n

    45、”,X,Y);执行后输出结果是 (10) 。(分数:2.00)填空项 1:_ (正确答案:8 4)解析:解析 本题考核的知识点是函数的调用、值传递和地址传递的区别。“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对形参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响。函数 f(Y,*X)的作用是让 Y的值加上指针 X所指向变量的值,让指针 X所指向变量的值加上 Y的值。由于形参 Y是传值的,形参 X是传地址的,故调用该函数后,作为实参的 Y的值将不改变,而实参 X的值将改变,故最后输出的 Y的值为 4,而 x的值为 8。51

    46、.以下 sstrcpy()函数实现字符串复制,即将 t所指字符串复制到 S所指向内存空间中,形成一个新的字符串 S。请填空。void sstrcpy(char*s,char*t)(while(*s+= (11) );)main()char str1100,sfr2=“abcdefgh”;sstrcpy(str1,str2);printf(“%s/n”,str1);(分数:2.00)填空项 1:_ (正确答案:*t+或*(t+))解析:解析 本题考核的知识点是通过字符串指针引用字符串中的元素。主函数中定义了两个字符型数组 str1和 str2,并且给 str2赋初值“abcdefgh”,接着调用函数 sstrcpy(scr1,ser2),将字符串scr2的值赋给 scr1。在函数 sstrcpy(*s,*f)中,用了一个 while循环,每循环一次将形参指针 t所指的字符赋给形参指针 s所指向的存储空间,然后指针 s和指针 t都下移到下一个元素。所以空格处应该填*t+或*(t+)。52.定义如下变量和数组:int i;int x33=(1,2,3,4,5,6,7,8,9);则下面语句的输出结果是 (12) 。for(i=0;i3;i+)printf(“%d”,Xi2-i);(分数:2.00)填空项 1:_ (正确答案:3,5,7)解析:解析 考查二维数组元素的引用方法。题中通过


    注意事项

    本文(【计算机类职业资格】二级C语言笔试-114及答案解析.doc)为本站会员(Iclinic170)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开