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

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

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

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

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

    1、二级 C语言笔试-34 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.若有说明:int *p,m=5,n;,以下正确的程序段是(分数:2.00)A.p=scanf(“%d“,B.p=scanf(“%d“,*p)C.scanf(“%d:,*p=n;D.p=*p=m;2.以下合法的字符型常量是(分数:2.00)A./x13B./081C.65D.“/n“3.有以下程序main( )int x=0,y=0,i;for(i=1;+i) if(i%2=0)x+;continue;if(i%5=0)y+;break;printf(“%d,%d“,x,

    2、y);程序的输出结果是A)2,1 B)2,2 C)2,5 D)5,2(分数:2.00)A.B.C.D.4.有以下程序#include main( )FILE *fp;int i=20,j=30,k,n;fp=fopen(“d1.dat“,“w“);fprintf(fp,“%d/n“,i);fprintf(fp,“%d/n“,j);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d%d“,k,n);printf(“%d%d/n“,k,n);fclose(fp);程序运行后的输出结果是A)20 30 B)20 50 C)30 50 D)30 20(分数:

    3、2.00)A.B.C.D.5.下列关于队列的叙述中正确的是(分数:2.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表6.以下叙述中错误的是(分数:2.00)A.计算机不能直接执行用 C语言编写的源程序B.C程序经 C编译程序编译后,生成后缀为.obj 的文件是一个二进制文件C.后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件D.后缀为.obj 和.exe 的二进制文件都可以直接运行7.下面程序输出的结果是main( )int i;int a33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+

    4、)printf(“%d“,a2-ii);A)1 5 9 B)7 5 3 C)3 5 7 D)5 9 1(分数:2.00)A.B.C.D.8.有以下程序main( ) int k=5,n=0;doswitch(k)case 1: case 3:n+=1;k-;break;default:n=0;k-;case 2: case 4:n+=2;k-;break;printf(“%d“,n);while(k0scanf(“%d,%d“,k=a;if(ab)k=a%b;else k=b%a;printf(“%d/n“,k);A)5 B)3 C)2 D)0(分数:2.00)A.B.C. D.解析:解析 本

    5、题考查简单的 ifelse语句。先执行条件 if(ab),显然不成立,再执行 else语句。24.以下叙述中正确的是(分数:2.00)A.构成 C程序的基本单位是函数 B.可以在一个函数中定义另一个函数C.main( )函数必须放在其他函数之前D.C函数定义的格式是 Kwhile(c=getchar()!=/n)switch(c-2)case0:case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);case 4:putchar(c+3);break;printf(“/n“)从第一列开始输入以下数据代表一个回车符。27

    6、43程序的输出结果是A)66877 B)668966 C)6677877 D)6688766(分数:2.00)A. B.C.D.解析:解析 本题主要考查了字符输入输出函数 getchar和 putchar的使用。getchar 函数用来从标准输入设备上读入一个字符,putchar(c)函数是将字符变量 c中的字符输出到标准输出设备上,并且字符可以看作整数参与运算。26.以下程序的输出结果是main( )int c=35;printf(“%d/n“,cc);A)0 B)70 C)35 D)1(分数:2.00)A.B.C. D.解析:解析 本题考查按位与“”。因为 1int i=0;scanf(“

    7、%s“,s);while(si!=/n)if(si=c)si-32;else if(si=c-32)si=si+32;i+;puts(s);A)ahaMa B)AbAMa C)AhAMa空格ahA D)ahAMa空格ahA(分数:2.00)A. B.C.D.解析:解析 本题主要考查的知识点是大写字母比它对应的小写字母 ASCII码值小 32,并且字符可以看作整数进行算术运算等操作。29.设变量均已正确定义,若要通过 scanf(“%d%c%d%c“,语句为变量 a1和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和 Y。以下所示的输入形式中正确的是(注:代表空格字符)(分数:2.0

    8、0)A.10X20YB.10X20YC.10X20YD.10X20Y 解析:解析 本题中,scanf 函数的格式控制没有空格,所以,对于选项 A)、B)、C),输入的第一个空格会作为字符赋值给变量 c1,而不会被解释成分隔符。30.已知大写字母 A的 ASCII码是 65,小写字母 a的 ASCII码是 97。以下不能将变量 c中的大写字母转换为对应小写字母的语句是(分数:2.00)A.c=(c-A)%26+aB.c=c+32C.c=c-A+aD.c=(A+c)%26-a 解析:解析 C 语言中,字符数据参加运算时,实际上是其 ASCII码参与运算。大写字母的 ASCII码比其对应的小写字母的

    9、 ASCII码小 32。因此大写字母转化为小写字母只需将其加上 32即可。所以选项 B)、C)都符合条件,因为变量 c中存储的是大写字母,所以“c-A”的值一定小于 26,故选项 A)与选项 C)的含义相同。31.C语言规定,在一个源程序中,main 函数的位置(分数:2.00)A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意 D.必须在最后解析:解析 不论 main函数在整个过程中的位置如何,一个 C程序总是从 main函数开始执行的。32.有以下程序int f(int n) if(n=1) return 1;else return f(n-1) +1;main( )int i,

    10、j=0;for(i=1;i3;i+) j+=f(i);printf(“%d/n“,j);程序运行后的输出结果是A)4 B)3 C)2 D)1(分数:2.00)A.B. C.D.解析:解析 在 main函数中,对 f(1)和 f(2)的值进行了累加。f(1)=1f(2)=f(1)+1=2最后,j 的值为 1+2=333.有以下语句,则对 a数组元素的引用不正确的是(0i9)int a10=0,1,2,3,4,5,6,7,8,9,*p=a;A)ap-a B)*(ai) C)pi D)*(*(a+i)(分数:2.00)A.B.C.D. 解析:解析 本题考查数组指针的应用。选项 D)第一层括号中为数组

    11、 a中第 i项元素的值,外面再加指针运算符没有意义。34.某二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为(分数:2.00)A.n+1 B.n-1C.2nD.n/2解析:解析 对于任何一棵二叉树 T,如果其终端结点(叶子)数为 n1,度为 2的结点数为 n2,则n1=n2+1,所以该二叉树的叶子结点数等于 n+1。35.下列叙述中,不属于测试的特征的是(分数:2.00)A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性 D.测试的经济性解析:解析 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有 3个方面的重要特征,即测试的挑剔性、完全

    12、测试的不可能性及测试的经济性。其中,没有测试的可靠性这一说法。36.下面程序段的运行结果是char a =“lanuage“,*p;p=a;while(*p!=u)printf(“%c“,*p-32);p+;A)LANGUAGE B)language C)LAN D)langUAGE(分数:2.00)A.B.C. D.解析:解析 本段程序的作用是输出字符串“lanuage”中字母 u之前的字符,并将其转化为大写字母。注意:如果一个字符数组用来作为字符串使用,那么在定义该字符数组时,数组的大小就应该比它将要实际存放的最长字符多一个元素,以存放,/0,。37.有以下程序main() int a44

    13、=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+)fof(k=j+1;k4;k+)if(ajiaki)t=aji;aki;aki=t;/*按列排序*/for(i=0;i4;i+)printf(“%d,aii);程序运行后的输出结果是(分数:2.00)A. B.C.D.解析:解析 奉题利用多重 for循环的嵌套来实现对二维数组元素的按列排序。利用最外层循环来实现对列的控制。内部循环利用选择法对数组元素按照从小到大的顺序进行排列,最后输出对角线上的元素值。38.在结构化程序设计中,模块划分的原则是(分数:2.0

    14、0)A.各模块应包括尽量多的功能B.各模块的规模应尽量大C.各模块之间的联系应尽量紧密D.模块内具有高内聚度、模块间具有低耦合度 解析:解析 在结构化程序设计中,一般较优秀的软件设计尽量做到高内聚、低耦合,这样有利于提高软件模块的独立性,也是模块划分的原则。39.在 C语言中,函数返回值的类型最终取决于(分数:2.00)A.函数定义时在函数首部所说明的函数类型 B.return语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型解析:解析 在 C语言中,应当在定义函数时指定函数值的类型,凡不加类型说明的函数,一律按整型处理。在定义函数时,对函数值说明的类型一般应该

    15、和 return语句中的表达式类型一致。如果函数值的类型和 return语句中的表达式类型不一致,则以函数类型为主,即函数类型决定返回值的类型。40.在执行下述程序时,若从键盘输入 6和 8,则结果为main( )int a,b,s;scanf(“%d%d“,S=aif(ab)s=b;S*=s;printf(“%d“,s);A)36 B)64 C)48 D)以上都不对(分数:2.00)A.B. C.D.解析:解析 本题中 a的值为 6,b 的值为 8,最后 s的值为 8,s*=s 等价于 s=s*s。二、填空题(总题数:13,分数:30.00)41.设一棵完全二叉树共有 700个结点,则在该二

    16、叉树中有 1 个叶子结点。(分数:2.00)填空项 1:_ (正确答案:350)解析:解析 完全二叉树中,设高度为 n,则除 A层外其他层结点数都到达最大,可以算出 h=10,1 至9层结点个数为 29-1=511,最后一层结点个数为 700-511=189个,189/2=95,除最后一层外共有结点 29-1-95=161个,所以所有的结点个数为:189+161=350 个。42.常用的黑箱测试有等价类划分法、 1 和错误推测法 3种。(分数:2.00)填空项 1:_ (正确答案:边界值分析法)解析:解析 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑

    17、箱测试有等价类划分法、边界值分析法和错误推测法 3种。43.数据库管理系统常见的数据模型有层次模型、网状模型和 13 种。(分数:2.00)填空项 1:_ (正确答案:关系模型)解析:解析 数据库管理系统是位于用户与操作系统之间的一层系统管理软件,属于系统软件,是用户与数据库之间的一个标准接口,其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。44.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 1。(分数:2.00)填空项 1:_ (正确答案:软件生命周期)解析:解析 软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研

    18、究与需求分析、设计、实现、测试、交付使用及维护等活动。45.数据库保护分为:安全性控制、 1、并发性控制和数据的恢复。(分数:2.00)填空项 1:_ (正确答案:完整性控制)解析:解析 安全性控制:防止未经授权的用户有意或无意存取数据库中的数据,以免数据被泄露、更改或破坏;完整性控制:保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作;并发控制:正确处理好多用户、多任务环境下的并发操作,防止错误发生;恢复:当数据库被破坏或数据不正确时,使数据库将其恢复到正确的状态。46.执行以下程序后的输出结果是_。main( )int a=10;a=(3*5,a+4);printf(“a

    19、=%d/n“,a);(分数:2.00)填空项 1:_ (正确答案:a=14)解析:解析 本题考查的是表达式的优先级问题。先计算表达式 3*5=15,再计算 a+4=14,将数据 14赋值给 a,根据 printf( )函数内的输出格式控制串,最后的输出结果应为“a=14”。47.以下程序的输出结果是_。#include string.hmain( )printf(“%d/n“,strlen(“IBM/n012/1/“);(分数:2.00)填空项 1:_ (正确答案:9)解析:解析 本题的字符串中共有 9个字符,它们分别是I、B、M、/n、0、1、2、/1、/,其中,“/n”表示换行,“/”表示

    20、反斜杠字符“/”,所以本题的最后输出结果为 9。48.已定义 char ch=$;int i=1,j;,执行 j!=chcase 1:case 2:return 1;return(fib(g-1) +fib(g-2);main( )long k;k=fib(5);printf(“k=%51d/n“,k);(分数:2.00)填空项 1:_ (正确答案:k=5)解析:解析 本题主要考查了函数的递归调用方法。g=0 或 g=1或 g=2是递归的终止条件,然后用回代的方法从一个已知值推出下一个值,直到计算出最终结果。50.下面程序的功能是输出数组 s中最大元素的下标,请填空。main( )int k,

    21、p,s =1,-9,7,2,-10,3;for(p=0,k=p;p6;p+)if(spsk)_printf(“%d/n“,k);(分数:2.00)填空项 1:_ (正确答案:k=p;)解析:解析 为寻找数组中最大元素的下标,需先预设 1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至比较了数组的全部元素后,这时临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,比较通常从首元素开始顺序向后继元素。程序中,存储临时最大元素下标的变量是 k,变量 p控制顺序考查的循环控制变量。当发现当前元

    22、素 sp比临时最大元素 sk更大时,应该用 p更新k,所以在空框处应填入代码“k=p;”。51.以下程序的功能是:求出数组 x中各相邻两个元素的和依次存放到 a数组中,然后输出。请填空。main( )int x10,a9,i;for(i=0;i10;i+) scanf(“%d“,xi);for( 11 ;i10;i+)ai-1=xi+ 12 ;for(i=0;i9;i+) printf(“%d“,ai);printf(“);(分数:4.00)填空项 1:_ (正确答案:i=1xi-1)解析:解析 对于 10个数,相邻的两个数相加取和,总共要进行 9次加法运算,所以空 11处应填入i=1。相邻的

    23、两个数相加取和,放在数组 a中,x0与 x1的和存放在 a0中,所以空 12处应填入 xi-1。52.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me() 函数在a:/myfile.txt 中有定义。) _main( )printf(“/n“);try_me( );printf(“/n“);(分数:2.00)填空项 1:_ (正确答案:#include a:/myfile.txt)解析:解析 本题考查了函数的存储分类的概念。如果没有特别说明,函数的存储范围是从定义函数的位置到文件的结尾,如果其他文件想使用这个函数,需要用 ginclude文件包含命令将定义函数的文

    24、件包含进来。53.以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的 data域不放数据,表空的条件是 ph-next=NULL),请填空。#include stdio.hstruct list int data;struct list *next;struct list *creatlist( )struct list *p,*q,*ph;int a;ph=(struct list*)malloc(sizeof(struct list);p=q=ph;printf(“Input an integer number;ent

    25、re-1 to end:/n“);scanf(“%d“,a);while(a!=-1)p=(struct list*)malloc(sizeof(struct list);14 =a;q-next=p; 15 =p;scanf(“%d“,a);p-next=/0;return(ph);main( )stuct list * head;head=creatlist();(分数:4.00)填空项 1:_ (正确答案:p-dataq)解析:解析 本题考查的是链表这一数据结构对结构体变量中数据的引用。链表的特点是结构体变量中有两个域,一个是数据,另一个是指向该结构体变量类型的指针,用以指明链表的下一个结点。


    注意事项

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




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

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

    收起
    展开