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

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

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

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

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

    1、二级 C语言-70 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:80.00)1.程序流程图中带有箭头的线段表示的是_。 A.图元关系 B.数据流 C.控制流 D.调用关系(分数:2.00)A.B.C.D.2.结构化程序设计的基本原则不包括_。 A.多态性 B.自顶向下 C.模块化 D.逐步求精(分数:2.00)A.B.C.D.3.软件设计中模块划分应遵循的准则是_。 A.低内聚低耦合 B.高内聚低耦合 C.低内聚高耦合 D.高内聚高耦合(分数:2.00)A.B.C.D.4.在软件开发中,需求分析阶段产生的主要文档是_。 A.可行性分析报告 B.软

    2、件需求规格说明书 C.概要设计说明书 D.集成测试计划(分数:2.00)A.B.C.D.5.算法的有穷性是指_。 A.算法程序的运行时间是有限的 B.算法程序所处理的数据量是有限的 C.算法程序的长度是有限的 D.算法只能被有限的用户使用(分数:2.00)A.B.C.D.6.对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2的排序方法是_。 A.快速排序 B.冒泡排序 C.直接插入排序 D.堆排序(分数:2.00)A.B.C.D.7.下列关于栈的叙述正确的是_。 A.栈按“先进先出”组织数据 B.栈按“先进后出”组织数据 C.只能在栈底插入数据 D.不能删除数据(分数:2.

    3、00)A.B.C.D.8.在数据库设计中,将 E-R图转换成关系数据模型的过程属于_。 A.需求分析阶段 B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段(分数:2.00)A.B.C.D.9.有 3个关系 R、S 和 T如下: RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系 R和 S通过运算得到关系 T,则所使用的运算为_。 A.并 B.自然连接 C.笛卡尔积 D.交(分数:2.00)A.B.C.D.10.设有表示学生选课的 3张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课

    4、号,成绩),则表 SC的关键字(键或码)为_。 A.课号,成绩 B.学号,成绩 C.学号,课号 D.学号,姓名,成绩(分数:2.00)A.B.C.D.11.以下叙述中错误的是_。 A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 C.用 C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中 D.C语言源程序经编译后生成后缀为.obj 的目标程序(分数:2.00)A.B.C.D.12.以下选项中,合法的一组 C语言数值常量是_。 A.12. 0Xa23 4.5e0 B.028

    5、.5e-3 -0xf C177 4e1.5 0abc D.0x8A 10,000 3.e5(分数:2.00)A.B.C.D.13.以下选项中不合法的标识符是_。 A. int i=0, k=18;,则不符合 C语言规定的赋值语句是_。 A.i=(a+k)=(i+k); B.i=a%11; C.a=a+, i+; D.i=!a;(分数:2.00)A.B.C.D.16.有以下程序:#include stdio.hmain() int s, t, A=10; double B =6;s=sizeof(A); t=sizeof(B);printf(“% d, % d/n“, s, t);在 VC 6.

    6、0平台上编译运行,程序运行后的输出结果是_。 A.10,6 B.4,4 C.2,4 D.4,8(分数:2.00)A.B.C.D.17.有以下程序:#include stdio.hmain() char a, b, c, d;scanf(“% c% c“, c=getchar(); d=getchar();printf(“% c% c% c% c/n“, a, b, c, d);当执行程序时,按下列方式输入数据(从第 1列开始,CR代表回车,注意:回车也是一个字符)12CR34CR则输出结果是_。 A.12 34 B.12 C.1234 D.12 3(分数:2.00)A.B.C.D.18.以下关

    7、于逻辑运算符两侧运算对象的叙述中正确的是_。 A.可以是任意合法的表达式 B.只能是整数 0或非 0整数 C.可以是结构体类型的数据 D.只能是整数 0或 1(分数:2.00)A.B.C.D.19.有以下程序:#include stdio.hmain() int a=0, b=0, c=0, d=0;if(a=1) b=1; c=2;else d=3;printf(“% d, % d, % d, % d/n“, a, b, c, d);程序输出_。 A.1,1,2,0 B.0,0,0,3 C.编译有错 D.0,1,2,0(分数:2.00)A.B.C.D.20.有以下程序:#include st

    8、dio.hmain() int x=1, y=0, a=0, b=0;switch (x) case 1:switch(y) case 0: a+; break;case 1: b+; break;case 2: a+; b+; break;case 3: a+; b+;printf(“a=% d, b=% d/n“, a, b);程序的运行结果是_。 A.a=2, b=2 B.a=2, b=1 C.a=1, b=1 D.a=1, b=0(分数:2.00)A.B.C.D.21.以下程序段中的变量已正确定义:for(i=0; i4; i+, i+)for(k=1; k3; k+); printf

    9、(“*“);程序段的输出结果是_。 A.* * B.* * * * C.* D.* * * * * * * *(分数:2.00)A.B.C.D.22.有以下程序段:#include stdio.hint 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);以下关于程序段执行情况的叙述,正确的是_。 A.for循环语句

    10、固定执行 8次 B.当产生的随机数 n为 4时结束循环操作 C.当产生的随机数 n为 1和 2时不做任何操作 D.当产生的随机数 n为 0时结束程序运行(分数:2.00)A.B.C.D.23.有以下程序:#include stdio.hint f(int x);main() int n=1, m;m=f(f(f(n); printf(“% d/n“, m);int f(int x) return x*2; 程序运行后的输出结果是_。 A.8 B.2 C.4 D.1(分数:2.00)A.B.C.D.24.以下叙述中错误的是_。 A.可以给指针变量赋一个整数作为地址值 B.函数可以返回地址值 C.

    11、改变函数形参的值,不会改变对应实参的值 D.当在程序的开头包含头文件 stdio.h时,可以给指针变量赋 NULL(分数:2.00)A.B.C.D.25.设已有定义:float x;,则以下对指针变量 p进行定义且赋初值的语句中正确的是_。 A.int *p=(float)x; B.float *p= C.float p= D.float *p=1024;(分数:2.00)A.B.C.D.26.以下数组定义中错误的是_。 A.int x23=1,2,3,4,5,6; B.int x3=0; C.int x3=1,2,3, 4,5,6; D.int x23=1,2, 3,4, 5,6;(分数:2

    12、.00)A.B.C.D.27.有以下程序:#include stdio.hvoid fun(int a, int n) int i, t;for(i=0; in/2; i+) t=ai; ai=an-1-i; an-1-i=t; main() int k10=1,2,3,4,5,6,7,8,9,10, i;fun(k, 5);for(i=2; i8; i+) printf(“% d“, ki);printf(“/n“);程序的运行结果是_。 A.321678 B.876543 C.1098765 D.345678(分数:2.00)A.B.C.D.28.有以下程序:#include stdio.

    13、h#define N 4void fun(int aN, int b) int i;for(i=0; iN; i+) bi=aii-aiN-1-i;main() int xNN=1,2,3,4, 5,6,7,8, 9,10,11,12, 13,14,15,16, yN, i;fun(x, y);for(i=0; iN; i+) printf(“% d,“, yi); printf(“/n“);程序运行后的输出结果是_。 A.-3,-1,1,3, B.-12,-3,0,0, C.0,1,2,3, D.-3,-3,-3,-3,(分数:2.00)A.B.C.D.29.设有定义:char s81; i

    14、nt i=0;,以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是_。 A.gets(s); B.while(si+=getchar()!=/n); si=/0; C.scanf(“%s“, s); D.do scanf(“%c“, while(si+!=/n); si=/0;(分数:2.00)A.B.C.D.30.设有定义:char p=1, 2, 3, *q=p;,以下不能计算出一个 char型数据所占字节数的表达式是_。 A.sizeof(p) B.sizeof(char) C.sizeof(*q) D.sizeof(p0)(分数:2.00)A.B.C.D.31

    15、.有以下程序:#include stdio.h#include string.hmain() char str20=“One* World“, “One* Dream!“,* p=str1;printf(“% d,“, strlen(p); printf( “% s/n“, p);程序运行后的输出结果是_。 A.10, One * Dream! B.9, One * Dream! C.9, One * World D.10, One * World(分数:2.00)A.B.C.D.32.有以下程序:#include stdio.hmain() char s=“012xy/08s34f4w2“;

    16、int i, n=0;for(i=0; si!=0; i+)if(si=0printf(“% d/n“, n);程序运行后的输出结果是_。 A.0 B.3 C.7 D.8(分数:2.00)A.B.C.D.33.有以下程序:#include stdio.hfun(int x, int y) static int m=0, i=2;i+=m+1; m=i+x+y; return m;main() int j=1, m=1, k;k=fun(j, m); printf(“% d,“, k);k=fun(j, m); printf(“% d/n“, k);执行后的输出结果是_。 A.5,11 B.5,

    17、5 C.11,11 D.11,5(分数:2.00)A.B.C.D.34.在 C语言中,只有在使用时才占用内存单元的变量,其存储类型是_。 A.auto和 static B.extern和 register C.auto和 register D.static和 register(分数:2.00)A.B.C.D.35.下面结构体的定义语句中,错误的是_。 A.struct ord int x; int y; int z; struct ord a; B.struct ord int x; int y; int z; struct ord a; C.struct ord int x; int y;

    18、int z; a; D.struct int x; int y; int z; a;(分数:2.00)A.B.C.D.36.有以下程序:# include stdio.htypedef struct int b, p; A;void f(A c) /* 注意:c 是结构变量名* /int j;c.b+=1; c.p+=2;main()int i;A a=1,2;f(a);printf(“% d, % d/n“, a.b, a.p);程序运行后的输出结果是_。 A.2,4 B.1,2 C.1,4 D.2,3(分数:2.00)A.B.C.D.37.以下叙述中正确的是_。 A.在 C语言中,预处理命

    19、令行都以“#”开头 B.预处理命令行必须位于 C源程序的起始位置 C.#include stdio.h必须放在 C程序的开头 D.C语言的预处理不能实现宏定义和条件编译的功能(分数:2.00)A.B.C.D.38.有以下程序:#include stdio.h#include stdlib.hint fun(int n) int *p;p=(int*)malloc(sizeof(int);*p=n; return *p;main() int a;a=fun(10); printf(“% d/n“, a+fun(10);程序的运行结果是_。 A.0 B.10 C.20 D.出错(分数:2.00)A

    20、.B.C.D.39.有以下程序:# include stdio.hmain() unsigned char a=8, c;c=a3;printf(“% d/n“, c);程序运行后的输出结果是_。 A.16 B.1 C.32 D.0(分数:2.00)A.B.C.D.40.读取二进制文件的函数调用形式为:fread(buffer, size, count, fp);,其中 buffer代表的是_。 A.一个内存块的字节数 B.一个整型变量,代表待读取数据的字节数 C.一个文件指针,指向待读取的文件 D.一个内存块的首地址,代表读入数据存放的地址(分数:2.00)A.B.C.D.二、程序填空题(总

    21、题数:1,分数:6.00)41.下列给定程序中,函数 fun的功能是:找出 100999(含 100和 999)所有整数中各位上数字之和为x(x为正整数)的整数,并输出;符合条件的整数个数作为函数值返回。 例如,当 x值为 5时,100999各位上数字之和为 5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500,共有 15个。当 x值为 27时,各位数字之和为 27的整数是:999,只有 1个。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程

    22、序的结构! 试题程序: #include stdio.h int fun(int x) int n, s1, s2, s3, t; n=0; t=100; /*found* / while(t=_) /*found* / s1=t% 10; s2=(_)% 10; s3=t/100; /*found* / if(s1+s2+s3=_) printf(“% d“, t); n+; t+; return n; main() int x=-1; while(x0) printf(“Please input (x0): “); scanf(“% d“, printf(“/nThe result is:

    23、 % d/n“, fun(x); (分数:6.00)填空项 1:_三、程序修改题(总题数:1,分数:6.00)42.下列给定程序中函数 fun的功能是:从低位开始依次取出长整型变量 s中偶数位上的数,构成一个新数放在 t中。高位仍在高位,低位仍在低位。 例如,当 s中的数为 7654321时,t 中的数为 642。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include stdlib.h #include stdio.h #include conio.h /*found* / void fun(long s

    24、, long t) long s1=10; s/=10; * t=s% 10; /*found* / while(s0) s=s/100; * t=s% 10* s1+* t; s1=s1* 10; void main() long s, t; system (“CLS“); printf(“/nPlease enter s: “); scanf(“% ld“, fun(s, printf(“The result is: % ld/n“, t); (分数:6.00)_四、程序设计题(总题数:1,分数:8.00)43.学生的记录由学号和成绩组成,N 名学生的数据已放入主函数中的结构体数组 s中。

    25、请编写函数 fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdio.h #define N 16 typedef struct char num10; int s; STREC; void fun(STREC a) void main() STREC sN=“GA005“, 85, “GA003“, 76, “GA002“, 69 , “GA004“, 85, “GA001“, 91, “GA007“, 72, “GA

    26、008“,64, “GA006“, 87, “GA015“, 85, “GA013“, 91, “GA012“, 64, “GA014“, 91, “GA011“, 66, “GA017“, 64, “GA018“, 64, “GA016“, 72; int i; fun(s); printf(“The data after sorted: /n“); for(i=0; iN; i+) if(i% 4=0) /*每行输出 4个学生记录* / printf(“/n“); printf(“% s % 4d“, si.num, si.s); printf(“/n“); (分数:8.00)_二级 C语

    27、言-70 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:80.00)1.程序流程图中带有箭头的线段表示的是_。 A.图元关系 B.数据流 C.控制流 D.调用关系(分数:2.00)A.B.C. D.解析:解析 在数据流图中,用标有名字的箭头表示数据流,在程序流程图中,用标有名字的箭头表示控制流。所以选择 C。2.结构化程序设计的基本原则不包括_。 A.多态性 B.自顶向下 C.模块化 D.逐步求精(分数:2.00)A. B.C.D.解析:解析 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto语句,所以选择 A。3.软件设计中模

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

    29、产生可行性分析报告。C 错误,概要设计说明书是总体设计阶段产生的文档。D 错误,集成测试计划是在概要设计阶段编写的文档。B 正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。5.算法的有穷性是指_。 A.算法程序的运行时间是有限的 B.算法程序所处理的数据量是有限的 C.算法程序的长度是有限的 D.算法只能被有限的用户使用(分数:2.00)A. B.C.D.解析:解析 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。6.对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2的排序方法是_。 A.快速排序 B.

    30、冒泡排序 C.直接插入排序 D.堆排序(分数:2.00)A.B.C.D. 解析:解析 除了堆排序算法的比较次数是 O(nlog2n),其他的都是 n(n-1)/2。7.下列关于栈的叙述正确的是_。 A.栈按“先进先出”组织数据 B.栈按“先进后出”组织数据 C.只能在栈底插入数据 D.不能删除数据(分数:2.00)A.B. C.D.解析:解析 栈是按“先进后出”的原则组织数据的,数据的插入和删除都在栈顶进行操作。8.在数据库设计中,将 E-R图转换成关系数据模型的过程属于_。 A.需求分析阶段 B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段(分数:2.00)A.B.C. D.解析:解析

    31、将 E-R图转换成关系数据模型则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。9.有 3个关系 R、S 和 T如下: RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系 R和 S通过运算得到关系 T,则所使用的运算为_。 A.并 B.自然连接 C.笛卡尔积 D.交(分数:2.00)A.B.C.D. 解析:解析 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以 B错误。笛卡尔积是用 R集合中元素为第一元素,S 集合中元素为第二元素构成的有序

    32、对,所以 C错误。根据关系 T可以很明显地看出是从关系 R与关系 S中取得相同的关系组,所以是交运算,选择 D。10.设有表示学生选课的 3张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC的关键字(键或码)为_。 A.课号,成绩 B.学号,成绩 C.学号,课号 D.学号,姓名,成绩(分数:2.00)A.B.C. D.解析:解析 学号是学生表 S的主键,课号是课程表 C的主键,所以选课表 SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择 C。11.以下叙述中错误的是_。 A.C语言中的每条可执行语句

    33、和非执行语句最终都将被转换成二进制的机器指令 B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 C.用 C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中 D.C语言源程序经编译后生成后缀为.obj 的目标程序(分数:2.00)A. B.C.D.解析:解析 C 语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以 A错误。由 C语言构成的指令序列称 C源程序,C 源程序经过 C语青编译程序编译之后生成一个后缀为.obj 的二进制文件(称为目标文件);最后要由“连接程序”把此.obj 文件与 C语言提供的各种库函数连接起来生成一个后缀为.e

    34、xe 的可执行文件。12.以下选项中,合法的一组 C语言数值常量是_。 A.12. 0Xa23 4.5e0 B.028 .5e-3 -0xf C177 4e1.5 0abc D.0x8A 10,000 3.e5(分数:2.00)A. B.C.D.解析:解析 C 语言中八进制整型常量的开头是数字 0,十六进制整型常量的开头数字是 0x。C 语言中的实型常量有两种表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以“e”或“E”后跟一个整数来表示以 10为底数的幂数,字母 e或 E之前必须要有数字,且 e或 E后面的指数必须为整数。B 选项中 028错误,八进制中没有数字 8。C

    35、 选项中 4e1.5中 e后面的指数不是整数。D 选项中3.e5小数点后面缺少数字。13.以下选项中不合法的标识符是_。 A. int i=0, k=18;,则不符合 C语言规定的赋值语句是_。 A.i=(a+k)=(i+k); B.i=a%11; C.a=a+, i+; D.i=!a;(分数:2.00)A.B. C.D.解析:解析 取模运算符“%”为二元运算符,具有左结合性,参与运算的量均为整型。选项 B中的 a变量是 double实型,所以 B不符合规定。16.有以下程序:#include stdio.hmain() int s, t, A=10; double B =6;s=sizeof

    36、(A); t=sizeof(B);printf(“% d, % d/n“, s, t);在 VC 6.0平台上编译运行,程序运行后的输出结果是_。 A.10,6 B.4,4 C.2,4 D.4,8(分数:2.00)A.B.C.D. 解析:解析 C 语言中利用 sizeof()函数判断数据类型长度,在 VC 6.0平台中,整型 int占有 4字节,double型数据占有 8字节。17.有以下程序:#include stdio.hmain() char a, b, c, d;scanf(“% c% c“, c=getchar(); d=getchar();printf(“% c% c% c% c/

    37、n“, a, b, c, d);当执行程序时,按下列方式输入数据(从第 1列开始,CR代表回车,注意:回车也是一个字符)12CR34CR则输出结果是_。 A.12 34 B.12 C.1234 D.12 3(分数:2.00)A.B.C.D. 解析:解析 按照从键盘输入的数据可以判断字符 1给了变量 a,字符 2给了变量 b,字符CR即回车给了变量 c,字符 3给了变量 d。所以打印输出的结果为 D选项。18.以下关于逻辑运算符两侧运算对象的叙述中正确的是_。 A.可以是任意合法的表达式 B.只能是整数 0或非 0整数 C.可以是结构体类型的数据 D.只能是整数 0或 1(分数:2.00)A.

    38、B.C.D.解析:解析 C 语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是任意合法的表达式,所以选择 A。19.有以下程序:#include stdio.hmain() int a=0, b=0, c=0, d=0;if(a=1) b=1; c=2;else d=3;printf(“% d, % d, % d, % d/n“, a, b, c, d);程序输出_。 A.1,1,2,0 B.0,0,0,3 C.编译有错 D.0,1,2,0(分数:2.00)A.B.C. D.解析:解析 本题中 if(a=1)b=1;与 else d=3;之间多了语句 c=2;所以会出现 else语

    39、句的位置错误的编译失败提示。20.有以下程序:#include stdio.hmain() int x=1, y=0, a=0, b=0;switch (x) case 1:switch(y) case 0: a+; break;case 1: b+; break;case 2: a+; b+; break;case 3: a+; b+;printf(“a=% d, b=% d/n“, a, b);程序的运行结果是_。 A.a=2, b=2 B.a=2, b=1 C.a=1, b=1 D.a=1, b=0(分数:2.00)A.B. C.D.解析:解析 case 常量表达式只是起语句标号作用,并

    40、不是对该处进行条件判断。在执行 switch语句时,根据 switch的表达式,找到与之匹配的 case语句,就从该 case子句执行下去,不再进行判断,直到碰到 break或函数结束为止。所以执行内层 switch(y)时只执行了 a+,此时 a的值为 1。然后执行外层 case 2语句的 a+; b+; a为 2,b 为 1。所以结果为 B。21.以下程序段中的变量已正确定义:for(i=0; i4; i+, i+)for(k=1; k3; k+); printf(“*“);程序段的输出结果是_。 A.* * B.* * * * C.* D.* * * * * * * *(分数:2.00)

    41、A.B.C. D.解析:解析 由于内层循环 for(k=1; k3; k+)后面直接跟了空语句“;”所以在循环内部什么操作也不做,跳出外层循环后执行打印语句,所以打印了一个“*”,选择 C。22.有以下程序段:#include stdio.hint 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);以下关于程序段执

    42、行情况的叙述,正确的是_。 A.for循环语句固定执行 8次 B.当产生的随机数 n为 4时结束循环操作 C.当产生的随机数 n为 1和 2时不做任何操作 D.当产生的随机数 n为 0时结束程序运行(分数:2.00)A.B.C.D. 解析:解析 casc 常量表达式只是起语句标号作用,并不在该处进行条件判断。在执行 switch语句时,根据 switch的表达式,找到与之匹配的 case语句,就从该 case子句执行下去,不再进行判断,直到碰到 break或函数结束为止。简单地说 break用于结束整个循环体,而 continue用于结束单次循环。B 选项中产生的随机数 n为 4时要执行打印操

    43、作。C 选项中当产生的随机数为 1和 2时分别执行 case 3与case 4后面语句的内容。由于存在 break语句,所以 for循环不是固定执行 8次,执行次数与产生的随机数 n有关系。23.有以下程序:#include stdio.hint f(int x);main() int n=1, m;m=f(f(f(n); printf(“% d/n“, m);int f(int x) return x*2; 程序运行后的输出结果是_。 A.8 B.2 C.4 D.1(分数:2.00)A. B.C.D.解析:解析 第一次调用 m=f(f(f(1),第二次为 m=f(f(2),第三次为 m=f(

    44、4),即返回值为 8。24.以下叙述中错误的是_。 A.可以给指针变量赋一个整数作为地址值 B.函数可以返回地址值 C.改变函数形参的值,不会改变对应实参的值 D.当在程序的开头包含头文件 stdio.h时,可以给指针变量赋 NULL(分数:2.00)A. B.C.D.解析:解析 不能将一个整数直接赋给指针变量作为地址,所以 A是错误的。函数的返回值可以是地址,即指针。函数调用时形参值的变化不会传递给实参。25.设已有定义:float x;,则以下对指针变量 p进行定义且赋初值的语句中正确的是_。 A.int *p=(float)x; B.float *p= C.float p= D.float *p=1024;(分数:2.00)A.B. C.D.解析:解析 指针用于存放地址的变量,用(类型名 *指针变量名)的形式定义。赋值时应将某个变量地址即 B.int x3=0; C.int x3=1,2,3, 4,5,6; D.int x23=1,2, 3,


    注意事项

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




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

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

    收起
    展开