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

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

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

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

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

    1、二级 C 语言-7-1 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是_。(分数:1.00)A.算法的效率只与问题的规模有关,而与数据的存储结构无关B.算法的时间复杂度是指执行算法所需要的计算工作量C.数据的逻辑结构与存储结构是一一对应的D.算法的时间复杂度与空间复杂度一定相关2.栈和队列的共同点是_。(分数:1.00)A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点3.下列关于队列的叙述中正确的是_。(分数:1.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性

    2、表D.队列是先进后出的线性表4.下面概念中,不属于面向对象方法的是_。(分数:1.00)A.对象B.继承C类D.过程调用5.软件是指_。(分数:1.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合6.信息隐蔽的概念与下述哪一种概念直接相关_。(分数:1.00)A.软件结构定义B.模块独立性C.模块类型划分D.模块耦合度7.下列选项中,不属于模块间耦合的是_。(分数:1.00)A.数据耦合B.标记耦合C.异构耦合D.公共耦合8.对于现实世界中事物的特征,在实体联系模型中使用_。(分数:1.00)A.属性描述B.关键字描述C.二维表格描述D.实体描述9.下列数据模型

    3、中,具有坚实理论基础的是_。(分数:1.00)A.层次模型B.网状模型C.关系模型D.以上三个都是10.关系表中的每一横行称为一个_。(分数:1.00)A.元组B.字段C.属性D码11.下列叙述中错误的是_。(分数:1.00)A.一个 C 语言程序只能实现一种算法B.C 程序可以由多个程序文件组成C.C 程序可以由一个或多个函数组成D.一个 C 函数可以单独作为一个 C 程序文件存在12.C 语言源程序名的后缀是_。(分数:1.00)ACBexeCobjDcp13.以下选项中不能用作 C 程序合法常量的是_。(分数:1.00)A.1,234B.“/123“C.123D.“/x7D“14.表达式

    4、 a+=a-=a=9 的值是_。(分数:1.00)A.0B.-9C.18D.915.若有定义语句: int x=12,y=8,z; 在其后执行语句 z=0.9+x/y; 则 z 的值为_。(分数:1.00)A.1B.1.9C.2D.2.416.阅读以下程序 #include stdio.h main() int case; float printF; printf(“请输入 2 个数:“); scanf(“%d%f“, printf(“%d%f/n“,case,printF); 该程序在编译时产生错误,其出错原因是_。(分数:1.00)A.定义语句出错,case 是关键字,不能用作用户自定义标

    5、识符B.定义语句出错,pfintF 不能用作用户自定义标识符C.定义语句无错,scanf 不能作为输入函数使用D.定义语句无错,printf 不能输出 case 的值17.有以下程序 #include stdio.h main() char c1,c2,c3,c4,c5,c6; scanf(“%c%c%c%c“, c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c%c/n“,c5,c6); 程序运行后,若从键盘输入(从第 1 列开始) 123回车 45678回车 则输出结果是_。(分数:1.00)A.1245B.12

    6、56C.1278D.126718.以下选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是_。(分数:1.00)A.x%2=0B.x/2C.x%2!=0D.x%2=119.以下选项中与 if(a=1) a=b; else a+; 语句功能不同的 switch 语句是_。(分数:1.00)A.switch(a=1)case 0:a=b;break;case 1:a+;B.switch(a)case 1:a=b;break;default:a+;C.switch(a)defauh:a+;break;case 1:a=b;D.switch(a=1)case 1:a=b;break;case 0

    7、:a+;20.若变量已正确定义,有以下程序段 i=0; do printf(“%d,“,i); while(i+); printf(“%d/n“,i); 其输出结果是_。(分数:1.00)A.0,1B.0,0C.1,1D.程序进入无限循环21.有以下程序 #include stdio.h main() int a=1,b=2,c=3,d=0; if (a=1 else printf(“%d,%d,%d/n“,a,b,c); else printf(“%d,%d,%d/n“,a,b,c); 程序运行后的输出结果是_。(分数:1.00)A.1,3,3B.1,3,2C.1,2,3D.3,2,122.

    8、有以下程序段 int i,n; for(i=0;i8;i+) n=rand()%5; switch(n) case 1: case 3: printf(“%d/n“,n);break; case 2: case 4: printf(“%d/n“,n); continue; case 0: exit(0); printf(“%d/n“,n); 以下关于程序段执行情况的叙述,正确的是_。(分数:1.00)A.当产生的随机数 n 为 0 时结束程序运行B.当产生的随机数 n 为 4 时结束循环操作C.当产生的随机数 n 为 1 和 2 时不做任何操作D.for 循环语句固定执行 8 次23.以下叙述

    9、中错误的是_。(分数:1.00)A.用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值B.用户定义的函数中可以没有 return 语句C.用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D.函数的 return 语句中可以没有表达式24.有以下程序 #include stdio.h void fun(char *c,int d) *c=*c+1; d=d+1; printf(“%c,%c,“,*c,d); main() char b=“a“,a=“A“; fun( printf(“%c,%c/n“,b,a); 程序运行后的输出结果是_。(

    10、分数:1.00)A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B25.下列选项中,能正确定义数组的语句是_。(分数:1.00)A.#define N 2008int numN;B.int num;C.int N=2008;int numN;D.int num02008;26.以下函数实现按每行 8 个输出 w 所指数组中的数据 #include stdio.h void fun(int *w,int n) int i; for(i=0;in;i+) _ printf(“%d“,wi); printf(“/n“); 在横线处应填入的语句是_。(分数:1.00)A.if(i

    11、%8=0) printf(“/n“);B.if(i/8=0) continue;C.if(i/8=0) printf(“/n“);D.if(i%8=0) continue;27.有以下程序 #include stdio.h void fun(char *c) while(*c) if(*c=“a“ c+; main() char s81; gets(s); fun(s); puts(s); 当执行程序时从键盘上输入 Hello Beijing回车,则程序的输出结果是_。(分数:1.00)A.HELLO BEIJINGB.Hello BeijingC.hello beijingD.hELLO B

    12、eijing28.有以下程序 #inclnde stdio.h main() int a44=1,4,3,2, 8,6,5,7, 3,7,2,5, 4,8,6,1; int i,j,k,t; for(i=0;i4;i+) for(j=0;j3;j+) for(k=j+1;k4;k+) if(ajiaki) t=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,29.若要求从键盘读入含有空格字符的

    13、字符串,应使用函数_。(分数:1.00)A.gets()B.getc()C.getchar()D.scanf()30.设有如下程序段 #include stdio.h char s20=“Beijing“,*p; p=s; 则执行“p=s;”语句后,以下叙述正确的是_。(分数:1.00)A.可以用*p 表示 s0B.s 数组中元素的个数和 p 所指字符串长度相等C.s 和 p 都是指针变量D.数组 s 中的内容和指针变量 p 中的内容相同31.有以下程序 #include stdio.h main() char s=“abcde“; s+=2; printf(“%d/n“,s0); 执行后的结

    14、果是_。(分数:1.00)A.程序出错B.输出字符 c 的 ASCII 码C.输出字符 cD.输出字符 a 的 ASCII 码32.有以下程序 #include stdio.h #include string.h void fun(char *s,int n) char *t; int i,j; for(j=0;in-1;i+) for(j=i+1;jn;j+) if(strlen(si)strlen(sj) t=si;si=sj;sj=t; main() char *ss=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“; fun(ss,5); printf(“%s,%s

    15、/n“,ss0,ss4); 程序的运行结果是_。(分数:1.00)A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc33.有以下程序 #include stdio.h int a=4; int f(int n) int t=0; static int a=5; if(n%2) int a=6; t+=a+; else int a=7; t+=a+; return t+a+; main() int s=a,i=0; for(;i2;i+) s+=f(i); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.28B.24C.3

    16、2D.3634.有以下程序 #include stdio.h int f(int n) int t=0, a=5; if(n/2) int a=6; t+=a+; else int a=7; t+=a+; return t+a+; main() int s=0,i=0; for(;i2;i+) s+=f(i); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.24B.28C.32D.3635.有以下定义和语句 struct workers int num;char name20;char c; struct int day;int month;int yea

    17、r; s; ; struct workers w,*pw; pw= 能给 w 中 year 成员赋值为 1980 的语句是_。(分数:1.00)A.s.year=1980;B.year=1980;C.pw-year=1980;D.*pw.year=1980;36.以下叙述中错误的是_。(分数:1.00)A.可以通过 typedef 增加新的类型B.可以用 typedef 将已存在的类型用一个新的名字来代表C.用 typedef 定义新的类型名后,原有类型名仍有效D.用 typedef 可以为各种类型起别名,但不能为变量起别名37.有以下程序 #include stdio.h struct tt

    18、 int x;struct tt *y; *p; struct tt a4=20,a+1,15,a+2,30,a+3,17,a; main() int i; p=a; for(i=1;i=2;i+) printf(“%d,“,p-x); p=p-y; 程序的运行结果是_。(分数:1.00)A.20,15,B.30,17,C.15,30,D.20,30,38.有以下程序 #include stdio.h main() struct STU char name9;char sex;double score2; struct STU a=“Zhao“,“m“,85.0,90.0,b=“Qian“,“

    19、f“,95.0,92.0; b=a; printf(“%s,%c,%2.0f,%2.0f/n“,b.name,b.sex,b.score0,b.score1); 程序的运行结果是_。(分数:1.00)A.Zhao,m,85,90B.Qian,m,85,90C.Zhao,f,95,92D.Qian,f,95,9239.以下叙述中错误的是_。(分数:1.00)A.C 程序对预处理命令行的处理是在程序执行的过程中进行的B.预处理命令行的最后不能以分号表示结束C.#define MAX 是合法的宏定义命令行D.在程序中凡是以“#”开始的语句行都是预处理命令行40.有以下程序 #include stdi

    20、o.h main() FILE *f; f=fopen(“filea.txt“,“w“); fprintf(f,“abc“); fclose(f); 若文本文件“filea.txt”中原有内容为“hello”,则运行以上程序后,文件“filea.txt”中的内容为_。(分数:1.00)A.abcB.abcloC.helloabcD.abchello二、程序填空题(总题数:1,分数:20.00)41.给定程序中,函数 fun 的功能是计算下式 直到 (分数:20.00)三、程序改错题(总题数:1,分数:20.00)42.给定程序 MODI1.C 中函数 fun 的功能是:将 s 所指字符串的正序

    21、和反序进行连接,形成一个新串放在t 所指的数组中。 例如,当 s 所指字符串为:“ABCD”时,则 t 所指字符串中的内容应为:“ABCDDCBA”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include stdio.h #include string.h /*found*/ void fun(char s,char t) int i,d; d=strlen(s); for(i=0;id;i+) ti=si; for(i=0;id;i+) td+i=sd-1-i; /*found*/ t2*d-1=“

    22、/0“; main() char s100,t100; printf(“/nPlease enter string s:“); scanf(“%s“,s); fun(s,t); printf(“/nThe result is:%s/n“,t); (分数:20.00)_四、程序设计题(总题数:1,分数:20.00)43.函数 fun 的功能是:将 s 所指字符串中除了下标为奇数、同时 ASCII 值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在 t 所指的数组中。 例如,若 s 所指字符串中的内容为“ABCDE FG12345”,其中字符 A 的 ASCII 码值虽为

    23、奇数,但所在元素的下标为偶数,因此必须删除;而字符 1 的 ASCII 码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后 t 所指的数组中的内容应是“135”。 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。 给定源程序: #include stdio.h #include string.h void fun(char *s,char t) main() char s100,t100; printf(“/nPlease enter string s:“); scanf(“

    24、%s“,s); fun(s,t); printf(“/nThe result is:%s/n“,t); (分数:20.00)_二级 C 语言-7-1 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是_。(分数:1.00)A.算法的效率只与问题的规模有关,而与数据的存储结构无关B.算法的时间复杂度是指执行算法所需要的计算工作量 C.数据的逻辑结构与存储结构是一一对应的D.算法的时间复杂度与空间复杂度一定相关解析:解析 算法的时间复杂度是指算法在计算机内执行时所需时间的度量;与时间复杂度类似,空间复杂度是指算法在计算机内执行时所

    25、需存储空间的度量。因此,选项 B 的说法是正确的。2.栈和队列的共同点是_。(分数:1.00)A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素 D.没有共同点解析:解析 栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表。本题答案为 C。3.下列关于队列的叙述中正确的是_。(分数:1.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表 D.队列是先进后出的线性表解析:

    26、解析 队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作,另一端进行删除操作。其中,允许插入的一端称为队尾(rear),允许删除的一端称为队首(front)。队列具有先进先出的特点,它是按“先进先出”的原则组织数据的。4.下面概念中,不属于面向对象方法的是_。(分数:1.00)A.对象B.继承C类D.过程调用 解析:解析 面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象、类、消息、继承等概念。5.软件是指_。(分数:1.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合 解析:

    27、解析 本题考查软件的定义。软件是计算机系统中与硬件相互依存的另一部分,它包括程序、相关数据及其说明文档。因此,本题的正确答案是选项 D。6.信息隐蔽的概念与下述哪一种概念直接相关_。(分数:1.00)A.软件结构定义B.模块独立性 C.模块类型划分D.模块耦合度解析:解析 利用信息隐蔽,可以确保每一个模块的独立性。7.下列选项中,不属于模块间耦合的是_。(分数:1.00)A.数据耦合B.标记耦合C.异构耦合 D.公共耦合解析:解析 模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从强到弱分别是:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合和非直接耦

    28、合,没有异构耦合这种方式。8.对于现实世界中事物的特征,在实体联系模型中使用_。(分数:1.00)A.属性描述 B.关键字描述C.二维表格描述D.实体描述解析:解析 本题考查对实体联系模型的理解和掌握。在实体联系模型中,用属性来描述现实世界中对象的属性所表示的对象的性质、特征和行为,因此正确答案为选项 A。9.下列数据模型中,具有坚实理论基础的是_。(分数:1.00)A.层次模型B.网状模型C.关系模型 D.以上三个都是解析:解析 关系模型较之格式化模型(网状模型和层次模型)有以下几方面的优点,即数据结构比较简单、具有很高的数据独立性、可以直接处理多对多的联系,以及有坚实的理论基础。10.关系

    29、表中的每一横行称为一个_。(分数:1.00)A.元组 B.字段C.属性D码解析:解析 关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为一个属性,对应表中的一个字段;在二维表中凡能唯一标识元组的最小属性集称为该表的键或码。11.下列叙述中错误的是_。(分数:1.00)A.一个 C 语言程序只能实现一种算法 B.C 程序可以由多个程序文件组成C.C 程序可以由一个或多个函数组成D.一个 C 函数可以单独作为一个 C 程序文件存在解析:解析 一个 C 语言程序能实现多种算法,所以 A 错误。12.C 语言源程序名的后缀是_。(分数:1.00)AC BexeCobjDcp解析:解析 C 语

    30、言源程序名的后缀为.c,所以 A 正确。13.以下选项中不能用作 C 程序合法常量的是_。(分数:1.00)A.1,234 B.“/123“C.123D.“/x7D“解析:解析 整数不能用逗号隔开,所以 A 错误。14.表达式 a+=a-=a=9 的值是_。(分数:1.00)A.0 B.-9C.18D.9解析:解析 赋值语句,从右向左执行,先执行 a=9,再执行 a-=a,a 为 0,再执行 a+=a,结果仍为 0,所以 A 正确。15.若有定义语句: int x=12,y=8,z; 在其后执行语句 z=0.9+x/y; 则 z 的值为_。(分数:1.00)A.1 B.1.9C.2D.2.4解

    31、析:解析 x、y 为整数,x/y 值为 1,加上 0.9 为 1.9,赋值给整型 z,接受后为 1。16.阅读以下程序 #include stdio.h main() int case; float printF; printf(“请输入 2 个数:“); scanf(“%d%f“, printf(“%d%f/n“,case,printF); 该程序在编译时产生错误,其出错原因是_。(分数:1.00)A.定义语句出错,case 是关键字,不能用作用户自定义标识符 B.定义语句出错,pfintF 不能用作用户自定义标识符C.定义语句无错,scanf 不能作为输入函数使用D.定义语句无错,prin

    32、tf 不能输出 case 的值解析:解析 用户自定义标识符不能使用关键字,case 是关键字之一,所以选择 A。17.有以下程序 #include stdio.h main() char c1,c2,c3,c4,c5,c6; scanf(“%c%c%c%c“, c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c%c/n“,c5,c6); 程序运行后,若从键盘输入(从第 1 列开始) 123回车 45678回车 则输出结果是_。(分数:1.00)A.1245 B.1256C.1278D.1267解析:解析 本题考查的是

    33、输入输出函数。scanf()是格式化输入函数;getchar()函数从键盘缓冲区读入下一个字符;putchar()输出一个字符;printf()函数是格式化输出函数。在题目中,程序执行到scanf()函数时,会暂停等待用户输入 4 个字符,按题意输入 123回车后,字符 13 被分别赋值到c1c3 中,而 c4 会得到一个换行符“/n“。然后执行第 1 个 getchar()函数,由于前面的 scanf()函数读完了缓冲区中的所有字符,所以此时程序又会暂停等待用户输入,按题意输入 45678回车后,缓冲区第一个字符 4 赋值到 c5,第二个字符 5 赋值给 c6,所以本题应该选择 A。18.以

    34、下选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是_。(分数:1.00)A.x%2=0 B.x/2C.x%2!=0D.x%2=1解析:解析 当 x 为大于 1 的奇数,x%2=0 表达式为 0,所以选择 A。19.以下选项中与 if(a=1) a=b; else a+; 语句功能不同的 switch 语句是_。(分数:1.00)A.switch(a=1)case 0:a=b;break;case 1:a+; B.switch(a)case 1:a=b;break;default:a+;C.switch(a)defauh:a+;break;case 1:a=b;D.switch(a=1

    35、)case 1:a=b;break;case 0:a+;解析:解析 如果 a 等于 1 则执行 a=b;否则 a+;选项 A 不符,所以选择 A。20.若变量已正确定义,有以下程序段 i=0; do printf(“%d,“,i); while(i+); printf(“%d/n“,i); 其输出结果是_。(分数:1.00)A.0,1 B.0,0C.1,1D.程序进入无限循环解析:解析 循环语句中输出 0,i 为 0 循环结束,执行循环条件后 i 为 1,输出 1,所以选择 A。21.有以下程序 #include stdio.h main() int a=1,b=2,c=3,d=0; if (

    36、a=1 else printf(“%d,%d,%d/n“,a,b,c); else printf(“%d,%d,%d/n“,a,b,c); 程序运行后的输出结果是_。(分数:1.00)A.1,3,3 B.1,3,2C.1,2,3D.3,2,1解析:解析 执行“a=1 for(i=0;i8;i+) n=rand()%5; switch(n) case 1: case 3: printf(“%d/n“,n);break; case 2: case 4: printf(“%d/n“,n); continue; case 0: exit(0); printf(“%d/n“,n); 以下关于程序段执行情

    37、况的叙述,正确的是_。(分数:1.00)A.当产生的随机数 n 为 0 时结束程序运行 B.当产生的随机数 n 为 4 时结束循环操作C.当产生的随机数 n 为 1 和 2 时不做任何操作D.for 循环语句固定执行 8 次解析:解析 n 为 0 时执行 exit(0);函数结束,所以产生的随机数为 0 时,函数结束。答案选择 A。23.以下叙述中错误的是_。(分数:1.00)A.用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值 B.用户定义的函数中可以没有 return 语句C.用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D.函数

    38、的 return 语句中可以没有表达式解析:解析 return 语句结束函数,即使函数中有多个 return 语句,也只会执行一个,所以选项 A 错误。24.有以下程序 #include stdio.h void fun(char *c,int d) *c=*c+1; d=d+1; printf(“%c,%c,“,*c,d); main() char b=“a“,a=“A“; fun( printf(“%c,%c/n“,b,a); 程序运行后的输出结果是_。(分数:1.00)A.b,B,b,A B.b,B,B,AC.a,B,B,aD.a,B,a,B解析:解析 调用 fun 函数输出为加 1 之

    39、后的值,fun 函数功能将 main 函数中的 b 自增 1,a 没有变化,所以输出为 A。25.下列选项中,能正确定义数组的语句是_。(分数:1.00)A.#define N 2008int numN; B.int num;C.int N=2008;int numN;D.int num02008;解析:解析 数组定义的长度必须为常量,所以 A 选项正确。26.以下函数实现按每行 8 个输出 w 所指数组中的数据 #include stdio.h void fun(int *w,int n) int i; for(i=0;in;i+) _ printf(“%d“,wi); printf(“/n

    40、“); 在横线处应填入的语句是_。(分数:1.00)A.if(i%8=0) printf(“/n“); B.if(i/8=0) continue;C.if(i/8=0) printf(“/n“);D.if(i%8=0) continue;解析:解析 当 i 为 8 的倍数时,输出一个回车符,只有 A 符合题意。27.有以下程序 #include stdio.h void fun(char *c) while(*c) if(*c=“a“ c+; main() char s81; gets(s); fun(s); puts(s); 当执行程序时从键盘上输入 Hello Beijing回车,则程序的

    41、输出结果是_。(分数:1.00)A.HELLO BEIJING B.Hello BeijingC.hello beijingD.hELLO Beijing解析:解析 fun 函数将字符串中的小写字符转换为大写字母,所以答案选择 A。28.有以下程序 #inclnde stdio.h main() int a44=1,4,3,2, 8,6,5,7, 3,7,2,5, 4,8,6,1; int i,j,k,t; for(i=0;i4;i+) for(j=0;j3;j+) for(k=j+1;k4;k+) if(ajiaki) t=aji; aji=aki; aki=t; /*按列排序*/ for(

    42、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,解析:解析 第一个嵌套的 for 循环把二维数组按列从小到大排序,最后输出对角线上的元素,答案选择 A。29.若要求从键盘读入含有空格字符的字符串,应使用函数_。(分数:1.00)A.gets() B.getc()C.getchar()D.scanf()解析:解析 本题考查的知识点是输入函数。C 语言提供了许多输入函数,其中有:getchar(输入字符)、scanf(格式输入)和 gets(输入字符串)等。题目

    43、要求输入的是字符串,所以可以排除 getchar 函数,而且要求输入的字符串中包含空格,而 scanf 函数默认将输入的空格字符作为分隔符,所以空格不会被输入,故可排除。getc 函数的作用是从文件中输入一个字符,故也不可取。gets 函数可以输入一整行作为一个字符串,其中也包括空格字符,故应该选择 A。30.设有如下程序段 #include stdio.h char s20=“Beijing“,*p; p=s; 则执行“p=s;”语句后,以下叙述正确的是_。(分数:1.00)A.可以用*p 表示 s0 B.s 数组中元素的个数和 p 所指字符串长度相等C.s 和 p 都是指针变量D.数组 s

    44、 中的内容和指针变量 p 中的内容相同解析:解析 本题主要考查的是字符数组、字符串和字符指针的一些概念。数组元素个数,是在定义数组的时候确定的,本题的 s 数组元素个数是 20。而字符串长度是从该字符串的第 1 个字符开始,一直到“/0”字符为止,所历经的字符个数,“/0”不算在内。所以本题 p 所指字符串(“Beijing“)的长度为7。因此选项 B 的叙述不正确。s 是数组名,而不是指针变量,因此选项 C 不正确。数组 s 中除了包含字符串“Beijing”外,还包含其后的 20 个以内字节的内容,而指针变量 p 中包含的只是数组 s 的首地址。因此选项 D 的说法也不正确。31.有以下程

    45、序 #include stdio.h main() char s=“abcde“; s+=2; printf(“%d/n“,s0); 执行后的结果是_。(分数:1.00)A.程序出错 B.输出字符 c 的 ASCII 码C.输出字符 cD.输出字符 a 的 ASCII 码解析:解析 本题考查了数组名的概念。在 C 语言中,数组名类似于一个指向数组首地址的指针常量,一旦定义就不能修改其内容。所以本题中的 s+=2 语句让数组名 s 的内容加 2 是错误的,编译无法通过。故应该选择 A。32.有以下程序 #include stdio.h #include string.h void fun(char *s,int n) char *t; int i,j; for(j=0;in-1;i+) for(j=i+1;jn;j+) if(strlen(si)strlen(sj) t=si;si=sj;sj=t; main() char *ss=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“; fun(ss,5); printf(“%s,%s/n“,ss0,ss4);


    注意事项

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




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

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

    收起
    展开