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

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

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

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

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

    1、二级 C 语言-612 及答案解析(总分: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.低内聚高耦合D.高内聚高耦合4.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.00)A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划5.算法的

    2、有穷性是指_。(分数:1.00)A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用6.对长度为 n 的线性表排序,存最坏情况下,比较次数不是 n(n-1)/2 的排序方法是_。(分数:1.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序7.下列关于栈的叙述正确的是_。(分数:1.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据8.在数据库设计中,将 E-R 图转换成关系数据模型的过程属于_。(分数:1.00)A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计

    3、阶段9.有三个关系 R、S 和 T 如下: (分数:1.00)A并B.自然连接C.笛卡儿积D交10.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。(分数:1.00)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩11.下列叙述中错误的是_。(分数:1.00)A.一个 C 语言程序只能实现一种算法B.C 程序可以由多个程序文件组成C.C 程序可以由一个或多个函数组成D.一个 C 函数可以单独作为一个 C 程序文件存在12.以下选项中,能用作数据常量的是_。(分数:1

    4、.00)A.115LB.0118C.1.5e1.5D.011513.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是_。(分数:1.00)A.下划线B.大写字母C.数字字符D.连接符14.设变量已正确定义并赋值,以下正确的表达式是_。(分数:1.00)A.x=y+z+5,+yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.015.设有定义:int x=2;,以下表达式中,值不为 6 的是_。(分数:1.00)A.x+,2*xB.2*x,x+=2C.x*=(1+x)D.x*=x+116.有以下程序 #includestdio.h main() int x,y,z;

    5、 x=y=1; z=x+,y+,+y; printf(“%d,%d,%d/n“,x,y,z); 程序运行后的输出结果是_。(分数:1.00)A.2,3,1B.2,3,2C.2,3,3D.2,2,117.有以下程序 #includestdio.h main() char c1,c2; c1=“A“+“8“-“4“; c2=“A“+“8“-“5“; printf(“%c,%d/n“,c1,c2); 已知字母 A 的 ASCII 码为 65,程序运行后的输出结果是_。(分数:1.00)A.E,DB.D,69C.E,68D.输出无定值18.若有定义 int x,y;并已正确给变量赋值,则以下选项中与表

    6、达式(x-y)?(x+):(y+)中的条件表达式(x-y)等价的是_。(分数:1.00)A.(x-y0|x-y0)B.(x-y0)C.(x-y0)D.(x-y=0)19.有以下程序 #includestdio.h main() int x=1,y=0; if(!x)y+; else if(x=0) if(x)y+=2; else y+=3; printf(“%d/n“,y); 程序运行后的输出结果是_。(分数:1.00)A.3B.2C.1D.020.若有定义:float x=1.5;int a=1,b=3,c=2;,则正确的 switch 语句是_。(分数:1.00)A.switch(a+b)

    7、case 1: printf(“*/n“);case 2+1: printf(“*/n“);B.switch(int)x);case 1: printf(“*/n“);case 2: printf(“*/n);C.switch(x)case 1.0: printf(“*/n“);case 2.0: printf(“*/n“);D.switch(a+b)case 1: printf(“*/n“);case c: printf(“*/n“);21.有以下程序 #includestdio.h main() int y=9; for(;y0;y-) if(y%3=0)printf(“%d“,-y);

    8、程序的运行结果是_。(分数:1.00)A.852B.963C.741D.87542122.有以下程序 #includestdio.h main() int i,j,m=1; for(i=1;i3;i+) for(j=3;j0;j-) if(i*j3)break; m*=i*j; printf(“m=%d/n“,m); 程序运行后的输出结果是_。(分数:1.00)A.m=4B.m=2C.m=6D.m=523.有以下程序 #includestdio.h int fun(int x,int y) if(x!=y)return(x+y)/2); else return(x); main() int a

    9、=4,b=5,c=6; printf(“%d/n“,fun(2*a,fun(b,c); 程序运行后的输出结果是_。(分数:1.00)A.6B.3C.8D.1224.有以下程序 #includestdio.h int add(int a,int b)return(a+b); main() int k,(*f)(int,int),a=5,b=10; f=add; . 则以下函数调用语句错误的是_。(分数:1.00)A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a.b);D.k=*f(a,b);25.有以下程序 #includestdio.h main() int n,*p=NU

    10、LL; *p= printf(“Input n:“); scanf(“%d“, printf(“output n:“); printf(“%d/n“,p); 该程序试图通过指针 p 为变量 n 读入数据并输出,但程序有多处错误,以下语句正确的是_。(分数:1.00)A.int n,*p=NULL;B.*p=C.scanf(“%d“,26.下列定义数组的语句中,正确的是_。(分数:1.00)A.int N 10int xN;B.#define N=10;int xN;C.int x010;D.int x;27.有以下程序 #includestdio.h main() int a=2,3,5,4,

    11、i; for(i=0;i4;i+) switch(i%2) case 0: switch(ai%2) case 0:ai+;break; case 1:ai-; break; case 1:ai=0; for(i=0;i4;i+)printf(“%d“,ai);printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.3 0 4 0B.2 0 5 0C.3 3 4 4D.0 3 0 428.有以下程序 #includestdio.h main() int b33=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0;i3;i+) for(j=i;j=i;j+)

    12、t+=bibji; printf(“%d/n“,t); 程序运行后的输出结果是_。(分数:1.00)A.3B.4C.1D.929.以下语句中存在语法错误的是_。(分数:1.00)A.char ss620;ss1=“right?“;B.char ss20=“right?“;C.char*ss6;ss1=“right?“;D.char*ss*“right?“;30.以下不能将 s 所指字符串正确复制到 t 所指存储空间的是_。(分数:1.00)A.while(*t=*s)t+;s+;B.for(i=0;ti=si;i+);C.do*t+=*s+;)while(*s);D.for(i=0,j=0;t

    13、i+=sj+;);31.有以下程序 #includestdio.h void swap(char*x,char*y) char t; t=*x; *x=*y; *y=t; main() char *s1=“abc“, *s2=“123“; swap(s1,s2);printf(“%s,%s/n“,s1,s2); 程序执行后的输出结果是_。(分数:1.00)A.1bc,a23B.abc,123C.123,abcD.321,cba32.有以下函数 int fun(char *x, char *y) int n=0; while(*x=*y)y+;n+; return n; 函数的功能是_。(分数:

    14、1.00)A.统计 x 和 y 所指字符串中最前面连续相同的字符个数B.查找 x 和 y 所指字符串中是否有“/0“C.将 y 所指字符串赋给 x 所指存储空间D.统计 x 和 y 所指字符串中相同的字符个数33.有以下程序 #includestdio.h int fun() static int x=1; x*=2; return x; main() int i,s=1; for(i=1;i=3;i+) s*=fun(); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.30B.10C.0D.6434.在一个 C 源程序文件中所定义的全局变量,其作用域为_

    15、。(分数:1.00)A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和 extern 说明来决定范围35.以下叙述中错误的是_。(分数:1.00)A.用 typedef 定义新的类型名后,原有类型名仍有效B.可以用 typedef 将已存在的类型用一个新的名字来代表C.可以通过 typedef 增加新的类型D.用 typedef 可以为各种类型起别名,但不能为变量起别名36.有以下程序 #includestdio.h struct S int a,b;data2=10,100,20,200; main() struct S p=data1; printf(“

    16、%d/n“,+(p.A); 程序运行后的输出结果是_。(分数:1.00)A.21B.11C.20D.1037.有以下程序 #includestdio.h #define PT 3.5; #define S(x)PT*x*x; main() int a=1,b=2;printf(“%4.1f/n“,S(a+b); 程序运行后的输出结果是_。(分数:1.00)A.31.5B.程序有错无输出结果C.7.5D.14.038.有以下程序 #includestdio.h main() unsigned char a=2,b=4,c=5,d; d=a|b;dprintf(“%d/n“,d); 程序运行后的输

    17、出结果是_。(分数:1.00)A.4B.3C.5D.639.有以下程序 #includestdio.h #includestdlib.h main() int *a,*b,*c; a=b=c=(int*)malloc(sizeof(int); *a=1;*b=2,*c=3; a=b; printf(“%d,%d,%d/n“,*a,*b,*c); 程序运行后的输出结果是_。(分数:1.00)A.1,1,3B.2,2,3C.1,2,3D.3,3,340.以下叙述中正确的是_。(分数:1.00)A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失B.打开一个已存在的文件并进行了写操

    18、作后,原有文件中的全部数据必定被覆盖C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1 个数据D.C 语言中的文件是流式文件。因此只能顺序存取数据二、程序填空题(总题数:1,分数:18.00)41.下列给定程序中,函数 fun 的功能是计算下式: 直到 (分数:18.00)三、程序改错题(总题数:1,分数:18.00)42.下列给定程序中,函数 fun 的功能是:将 s 所指字符串的正序和反序进行连接,形成的新串放在 t 所指的数组中。 例如,当 s 所指字符串为“ABCD”时,t 所指字符串中的内容应为“ABCDDCBA”。 请改正程序中的错误,使它能得出正确

    19、的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h #includestring.h /*fnund*/ 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; /*fnund*/ t2*d-1=“/0“; main() char s100,t100; printf(|/nPlease enter string S:“); scanf(“%s“,s); fun(s,t); printf(

    20、“/nThe result is:%s/n“,t); (分数:18.00)_四、程序设计题(总题数:1,分数:24.00)43.编写函数 fun,其功能是:将 s 所指字符串中除了下标为奇数,同时 ASCII 码值也为奇数的字符之外,其余所有字符全部删除,串中剩余字符所形成的一个新串放在 t 所指的数组中。 例如,若 S 所指字符串的内容为“ABCDEFG12345”,其中字符 A 的 ASCII 码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符 1 的 ASCII 码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后 t 所指数组中的内容应为“135”。 注意:部

    21、分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #includestdio.h #includestring.h void fun(char*s,char t) main() char s100,t100; printf(“/nPlease enter string s:“); scanf(“%s“,s); fun(s,t); printf(“/nThe result is:%s/n“,t); (分数:24.00)_二级 C 语言-612 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数

    22、:40,分数:40.00)1.程序流程图中带有箭头的线段表示的是_。(分数:1.00)A.图元关系B.数据流C.控制流 D.调用关系解析:解析 在数据流图中,用标有名字的带箭头线段表示数据流。在程序流程图中,用标有名字的带箭头线段表示控制流,因此本题答案为 C。2.结构化程序设计的基本原则不包括_。(分数:1.00)A.多态性 B.自顶向下C.模块化D.逐步求精解析:解析 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto 语句,多态性是面向对象的程序设计的思想,因此本题答案为 A。3.软件设计中模块划分应遵循的准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合

    23、 C.低内聚高耦合D.高内聚高耦合解析:解析 软件设计中,模块划分应遵循的准则是高内聚低耦合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的准则,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性高,易于理解和维护。模块之间的耦合应尽可能地低,模块的内聚应尽可能地高,因此本题答案为 B。4.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.00)A.可行性分析报告B.软件需求规格说明书 C.概要设计说明书D.集成测试计划解析:解析 A 错误,可行性分析阶段产生可行性分析报告。C 错误,总体设计阶段产生概要设计说明书。D 错误,集成测试计划是在概要设计阶段编

    24、写的文档。B 正确,需求规格说明书是需求分析阶段产生的主要文档,是后续工作如设计、编码等需要的重要参考文档。5.算法的有穷性是指_。(分数:1.00)A.算法程序的运行时间是有限的 B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用解析:解析 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。算法的有穷性是指算法程序的运行时间是有限的,因此本题答案为 A。6.对长度为 n 的线性表排序,存最坏情况下,比较次数不是 n(n-1)/2 的排序方法是_。(分数:1.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序 解析:解析 快速排序、冒

    25、泡排序和直接插入排序在最坏情况下,比较次数都是 n(n-1)/2,堆排序在最坏情况下的比较次数最少,是 O(log 2 n),因此本题答案为 D。7.下列关于栈的叙述正确的是_。(分数:1.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据 C.只能在栈底插入数据D.不能删除数据解析:解析 栈是只允许在同一端进行插入和删除运算的线性表,按“先进后出”组织数据,因此本题答案为 B。8.在数据库设计中,将 E-R 图转换成关系数据模型的过程属于_。(分数:1.00)A.需求分析阶段B.概念设计阶段C.逻辑设计阶段 D.物理设计阶段解析:解析 将 E-R 图转换成关系数据模型是把图形分析

    26、出来的联系反映到数据库中,即设计出表,因此属于逻辑设计阶段,答案为 C。9.有三个关系 R、S 和 T 如下: (分数:1.00)A并B.自然连接C.笛卡儿积D交 解析:解析 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,因此 B 错误。笛卡儿积是用 R 集合中的元素为第一元素,S 集合中的元素为第二元素构成的有序对,因此 C 错误。根据关系 T 可以很明显地看出是从关系 R 与关系 S 中取得相同的关系组,所以使用的是交运算,选择 D。10.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号

    27、,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。(分数:1.00)A.课号,成绩B.学号,成绩C.学号,课号 D.学号,姓名,成绩解析:解析 学号是学生表 S 的主键,课号是课程表 C 的主键,因此选课表 SC 的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,故本题答案为 C。11.下列叙述中错误的是_。(分数:1.00)A.一个 C 语言程序只能实现一种算法 B.C 程序可以由多个程序文件组成C.C 程序可以由一个或多个函数组成D.一个 C 函数可以单独作为一个 C 程序文件存在解析:解析 一个 C 程序可以有一个或多个程序文件,也可以有一个或多

    28、个函数,所以一个 C 语言程序可以实现多种算法。12.以下选项中,能用作数据常量的是_。(分数:1.00)A.115L B.0118C.1.5e1.5D.0115解析:解析 选项中 115L 表示 115 是长整型数据,合法。B 选项是八进制常量的表示方法,但是在八进制中不能含有数字 8,因此 B 选项错误。C 选项中 e 后面应该是整数,不能是小数(1.5),因此 C 选项错误。D 选项中八进制常量应该是以数字“0”开始,而不是以字母“o”开始。故本题答案为 A。13.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是_。(分数:1.00)A.下划线B.大写字母C.数字字符D.连

    29、接符 解析:解析 C 语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。因此 D 选项中的连接符不合法。14.设变量已正确定义并赋值,以下正确的表达式是_。(分数:1.00)A.x=y+z+5,+y B.int(15.8%5)C.x=y*5=x+zD.x=25%5.0解析:解析 B 与 D 选项中取模运算符%的左右两个操作数均应为整数,因此 B、D 选项错误。C 选项中不能将 x+z 的值赋给表达式 y*5,因此 C 选项错误。故本题答案为 A。15.设有定义:int x=2;,以下表达式中,值不为 6 的是_。(分数:1.00)A.x+,2*xB.2*x,x+=2 C.x*=(

    30、1+x)D.x*=x+1解析:解析 选项 B 中,2*x 对 x 的值没有影响,x 仍为 2,“x+=2”执行后,表达式值为 4。故本题答案为 B。16.有以下程序 #includestdio.h 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,1 B.2,3,2C.2,3,3D.2,2,1解析:解析 对于表达式“z=x+,y+,+y;”,因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式改成“(z=x+),(y+),(+y)”。然后从左向右先计算

    31、表达式 z=x+,因为 x+先使用后自增,所以 z 的值为 1,x 的值为 2。再计算逗号表达式第二个表达式 y+,此时 y 的值为 1,y+的值为 2。最后计算第三个表达式+y,y 的值为 3。故本题答案为 A。17.有以下程序 #includestdio.h main() char c1,c2; c1=“A“+“8“-“4“; c2=“A“+“8“-“5“; printf(“%c,%d/n“,c1,c2); 已知字母 A 的 ASCII 码为 65,程序运行后的输出结果是_。(分数:1.00)A.E,DB.D,69C.E,68 D.输出无定值解析:解析 本题中字符变量 c1 是字符A的 A

    32、SCII 码加上 4,即 69 所对应的字符E。字符变量c2 是字符A的 ASCII 码加上 3,即 68 所对应的字符D。但是打印输出时,c1 以%c 的格式输出,因此是 E,c2 以%d 的格式输出,因此是 68。故本题答案为 C。18.若有定义 int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x+):(y+)中的条件表达式(x-y)等价的是_。(分数:1.00)A.(x-y0|x-y0) B.(x-y0)C.(x-y0)D.(x-y=0)解析:解析 条件表达式:x=表达式 1?表达式 2:表达式 3 的含义是:先求解表达式 1,若其值为非0(真),则求解表达式 2,

    33、将表达式 2 的值赋给 x,若表达式 1 的值为 0(假),则求解表达式 3,将表达式3 的值赋给 x。在本题中与表达式(x-y)等价的是(x-y0|x-y0),A 选项正确。19.有以下程序 #includestdio.h main() int x=1,y=0; if(!x)y+; else if(x=0) if(x)y+=2; else y+=3; printf(“%d/n“,y); 程序运行后的输出结果是_。(分数:1.00)A.3B.2C.1D.0 解析:解析 在 if else 语句中 else 总是与离它最近的 if 配对。本题目中 x 为 1,因此“!x”为 0,所以执行 els

    34、e in 吾句中的内容,判断(x=0)是否成立,因为 x 为 1,所以条件不成立,因此 else if 内部的 if.else 语句不再执行,所以 y 的值还是初始值 0。20.若有定义:float x=1.5;int a=1,b=3,c=2;,则正确的 switch 语句是_。(分数:1.00)A.switch(a+b)case 1: printf(“*/n“);case 2+1: printf(“*/n“); B.switch(int)x);case 1: printf(“*/n“);case 2: printf(“*/n);C.switch(x)case 1.0: printf(“*/n

    35、“);case 2.0: printf(“*/n“);D.switch(a+b)case 1: printf(“*/n“);case c: printf(“*/n“);解析:解析 B 选项的“switch(int)x);”语句中不应该有最后的分号。switch(expr1)中的 expr1 不能用浮点类型或 long 类型,也不能为一个字符串,因此 C 错误。ease 后面只能是常量表达式,因此 D 错误。21.有以下程序 #includestdio.h main() int y=9; for(;y0;y-) if(y%3=0)printf(“%d“,-y); 程序的运行结果是_。(分数:1.

    36、00)A.852 B.963C.741D.875421解析:解析 第一次执行 for 循环,y 的值为 9,y%3 的值为 0,满足条件打印-y,即先减 1 后打印,因此打印 8;第二次执行 for 循环,y 的值为 7,y%3 的值为 1,不执行打印语句;第三次执行 for 循环,y的值为 6,y%3 的值为 0,满足条件打印-y,即先减 1 后打印,因此打印 5;第四次执行 for 循环,y 的值为 4,不满足 if 条件,不执行打印语句;第五次执行 for 循环,y 的值为 3,满足 if 条件,打印输出2;第六次执行 for 循环,y 的值为 1,不满足条件,不执行打印语句。故本题答案

    37、为 A。22.有以下程序 #includestdio.h main() int i,j,m=1; for(i=1;i3;i+) for(j=3;j0;j-) if(i*j3)break; m*=i*j; printf(“m=%d/n“,m); 程序运行后的输出结果是_。(分数:1.00)A.m=4B.m=2C.m=6 D.m=5解析:解析 第一次外循环 i 的值为 1,第一次内循环 j 的值为 3,不满足条件,则执行 m*=i*j,即 m的值为 3;第二次泊勺值为 2,不满足条件,则执行 m*=i*j,即 m 的值为 6;第三次 j 的值为 1,不满足条件,则执行 m*=i*j,即 m 的值仍

    38、为 6。第二次外循环 i 的值为 2,j 的值为 3,满足条件,执行 break语句,跳出循环。故本题答案为 C。23.有以下程序 #includestdio.h int fun(int x,int y) if(x!=y)return(x+y)/2); else return(x); main() int a=4,b=5,c=6; printf(“%d/n“,fun(2*a,fun(b,c); 程序运行后的输出结果是_。(分数:1.00)A.6 B.3C.8D.12解析:解析 本题中第一次调用为 fun(8,fun(5,6),因为 fun(5,6)返回值为 5,所以第二次调用为fun(8,5)

    39、=6,因此选择 A。24.有以下程序 #includestdio.h int add(int a,int b)return(a+b); main() int k,(*f)(int,int),a=5,b=10; f=add; . 则以下函数调用语句错误的是_。(分数:1.00)A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a.b);D.k=*f(a,b); 解析:解析 D 选项中*f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,因此不能将其赋值给整型变量 k。25.有以下程序 #includestdio.h main() int n,*p=N

    40、ULL; *p= printf(“Input n:“); scanf(“%d“, printf(“output n:“); printf(“%d/n“,p); 该程序试图通过指针 p 为变量 n 读入数据并输出,但程序有多处错误,以下语句正确的是_。(分数:1.00)A.int n,*p=NULL; B.*p=C.scanf(“%d“,解析:解析 选项 B 的正确写法应为 p=,选项 C 的正确写法应为 scanf(“%d“,p);,选项 D 的正确写法应为 printf(“%d/n“,*p);。故本题答案为 A。26.下列定义数组的语句中,正确的是_。(分数:1.00)A.int N 10i

    41、nt xN;B.#define N=10;int xN; C.int x010;D.int x;解析:解析 数组说明的一般形式为:类型说明符数组名常量表达式。A 中 N 是变量,不能用变量定义数组长度。C 选项中数组长度是非法的一串数字,定义数组时必须为其指明长度。D 选项中数组长度为空,因此非法。故本题答案为 B。27.有以下程序 #includestdio.h main() int a=2,3,5,4,i; for(i=0;i4;i+) switch(i%2) case 0: switch(ai%2) case 0:ai+;break; case 1:ai-; break; case 1:

    42、ai=0; for(i=0;i4;i+)printf(“%d“,ai);printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.3 0 4 0 B.2 0 5 0C.3 3 4 4D.0 3 0 4解析:解析 第一次循环 i 为 0,i%2 为 0,执行 switch(a0%2)中的 case 0 语句后内容即 a0+,a0的值变成 3;第二次循环 i 的值为 1,i%2 为 1,执行 case 1:ai=0;因此 a1的值变成 0;第三次循环 i 的值为 2,i%2 为 0,执行 switch(a2%2)中的 case 1 语句后的内容 a2-,a2的值变成4;第四次循环

    43、 i 的值为 3,i%2 为 1,执行 case 1:aj=0;因此 a3的值变成 0。故本题答案为 A。28.有以下程序 #includestdio.h main() int b33=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0;i3;i+) for(j=i;j=i;j+)t+=bibji; printf(“%d/n“,t); 程序运行后的输出结果是_。(分数:1.00)A.3B.4 C.1D.9解析:解析 每次内循环只循环一次就结束,第一次外循环时 t=t+b0bO0=1+b00=1+0=1;第二次外循环时 t=t+b1b11=1+b11=1+1=2;第三次外循环时

    44、 t=1+b2b22=2+b22=2+2=4。故本题答案为 B。29.以下语句中存在语法错误的是_。(分数:1.00)A.char ss620;ss1=“right?“; B.char ss20=“right?“;C.char*ss6;ss1=“right?“;D.char*ss*“right?“;解析:解析 数组定义后,不能对数组整体赋值,ss 是二维数组,因为 ss1是一维字符数组,即字符串,字符串赋值可以使用“strcpy(ss1,“right“);”的形式,而选项 A 中对二维数组中的第“1”维(相当于一个一维数组)赋值,是不可以的。选项 B 和 D 是在定义时对数组同时进行初始化,这

    45、是可以的。选项 C 中,将字符串在内存中的首地址赋给指针数组的一个元素,这是可以的。故本题答案为 A。30.以下不能将 s 所指字符串正确复制到 t 所指存储空间的是_。(分数:1.00)A.while(*t=*s)t+;s+;B.for(i=0;ti=si;i+);C.do*t+=*s+;)while(*s); D.for(i=0,j=0;ti+=sj+;);解析:解析 do*t+=*s+;while(*s);,不能因为当*s=“/0“时,while(*s)跳出循环,这样字符串结束标志“/0“没有复制给*t,造成*t 不完整。注意,*t+=*s+是先执行 t=*s,然后才进行t=t+1,s=s+1。选项 B、A、D 都能将“/0“复制过去。31.有以下程序 #includestdio.h void swap(char*x,char*y) char t; t=*x; *x=*y; *y=t; main() char *s1=“abc“, *s2=“123“; swap(s1,s2);printf(“%s,%s/n“,s1,s2); 程序执行后的输出结果是_。(分数:1.00)A.1bc,a23 B.abc,123C.123,abcD.321


    注意事项

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




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

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

    收起
    展开