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

    【计算机类职业资格】全国计算机等级考试二级C语言真题2013年3月及答案解析.doc

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

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

    【计算机类职业资格】全国计算机等级考试二级C语言真题2013年3月及答案解析.doc

    1、全国计算机等级考试二级 C 语言真题 2013 年 3 月及答案解析(总分: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.概要设

    2、计说明书D.集成测试计划5.算法的有穷性是指_。(分数: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.概念设

    3、计阶段C.逻辑设计阶段D.物理设计阶段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 语言编写的

    4、程序称为源程序,它以 ASCII 代码形式存放在一个文本文件中D.C 语言源程序经编译后生成后缀为.obj 的目标程序12.以下选项中,合法的一组 C 语言数值常量是_。(分数:1.00)A.12. 0Xa23 4.5e0B.028 .5e-3 -0xfC177 4e1.5 0abcD.0x8A 10,000 3.e513.以下选项中不合法的标识符是_。(分数:1.00)A. int i=0, k=18; ,则不符合 C 语言规定的赋值语句是_。(分数:1.00)A.i=(a+k)=(i+k);B.i=a%11;C.a=a+, i+;D.i=!a;16.有以下程序: #include stdi

    5、o.h main() int s, t, A=10; double B=6; s=sizeofA.; t=sizedB.; printf(“%d, %d/n“, s, t); 在 VC 6.0 平台上编泽运行,程序运行后的输出结果是_。(分数:1.00)A.10,6B.4,4C.2,4D.4,817.有以下程序: #include stdio.h main() char a, b, c, d; scanf(“%c%c“, c=getchar(); d=getchar(); printf(“%c%c%c%c/n“, a, b, c, d); 当执行程序时,按下列方式输入数据(从第 1 列开始,C

    6、R代表回车,注意:回车也是一个字符) 12CR 34CR 则输出结果是_。(分数:1.00)A.1234B.12C.1234D.12318.以下关于逻辑运算符两侧运算对象的叙述中正确的是_。(分数:1.00)A.可以是任意合法的表达式B.只能是整数 0 或非 0 整数C.可以是结构体类型的数据D.只能是整数 0 或 119.有以下程序: #include stdio.h main() 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); 程序输出_。(分数:1.00)

    7、A.1,1,2,0B.0,0,0,3C.编译有错D.0,1,2,020.有以下程序: #include stdio.h main() int x=1, y=0, a=0, b=0; switch(x) ease 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); 程序的运行结果是_。(分数:1.00)A.a=2, b=2B.a=2, b=1C.a=1, b=1D.a=1, b=021.以下程序段中的变量已正确

    8、定义:_ for(i=0; i4; i+, i+ ) for(k=1; k3; k+); printf(“*“); 程序段的输出结果是_。(分数:1.00)A.* *B.* * * *C.*D.* * * * * * * *22.有以下程序段: #include stdio.h 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(

    9、“%d/n“, n); 以下关于程序段执行情况的叙述,正确的是_。(分数:1.00)A.for 循环语句固定执行 8 次B.当产生的随机数 n 为 4 时结束循环操作C.当产生的随机数 n 为 1 和 2 时不做任何操作D.当产生的随机数 n 为 0 时结束程序运行23.有以下程序: #include stdio.h int f(int x); main() int n=1, m; m=f(f(f(n); printf(“%d/11“, m); int f(int x) return x*2; 程序运行后的输出结果是_。(分数:1.00)A.8B.2C.4D.124.以下叙述中错误的是_。(分

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

    11、nt x23=1, 2, 3, 4, 5, 6;27.有以下程序: #include stdio.h void 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“); 程序的运行结果是_。(分数:1.00)A.321678B.876543C.1098765D.34567828.有以下程序:

    12、#include stdio.h #define N 4 void 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“); 程序运行后的输出结果是_。(分数:1.00)A.-3, -1, 1, 3,B.-12, -3, 0, 0,C.0, 1, 2, 3,D.-

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

    14、sizeof(p0)31.有以下程序: #include stdio.h #include string.h main() char str20=“One*World“, “One*Dream“, *p=str1; printf(“%d, “, strlen(p); printf(“%s/n“, p); 程序运行后的输出结果是_。(分数:1.00)A.10, One*Dream!B.9, One*Dream!C.9, One*WorldD.10, One*World32.有以下程序: #include stdio.h main() char s=“012xy/08s34f4w2“; int i

    15、, n=0; for(i=0; si!=0; i+) if(si=0 printf(“%d/n“, n); 程序运行后的输出结果是_。(分数:1.00)A.0B.3C.7D.833.有以下程序: #include stdio.h fun(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); 执行后的输出结果是_。(分数:1.00)A.5, 11B.5,

    16、5C.11, 11D.11, 534.在 C 语言中,只有在使用时才占用内存单元的变量,其存储类型是_。(分数:1.00)A.auto 和 staticB.extem 和 registerC.auto 和 registerD.static 和 register35.下面结构体的定义语句中,错误的是_。(分数:1.00)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; int z; a;D.struct

    17、 int x; int y; int z; a;36.有以下程序: #include stdio.h typedef 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); 程序运行后的输出结果是_。(分数:1.00)A.2, 4B.1, 2C.1, 4D.2, 337.以下叙述中正确的是_。(分数:1.00)A.在 C 语言中,预处理命令行都以“#”开头B.预处理命令行必须位于 C 源程序

    18、的起始位置C.#include stdio.h必须放在 C 程序的开头D.C 语言的预处理不能实现宏定义和条件编译的功能38.有以下程序: #include stdio.h #include stdlib.h int 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); 程序的运行结果是_。(分数:1.00)A.0B.10C.20D.出错39.有以下程序: #include stdio.h main() unsigned

    19、 char a=8, c; c=a3: printf(“%d/n“, c); 程序运行后的输出结果是_。(分数:1.00)A.16B.1C.32D.040.读取二进制文件的函数调用形式为:fread(buffer,size,count,fp); ,其中 buffer 代表的是_。(分数:1.00)A.一个内存块的字节数B.一个整型变量,代表待读取的数据的字节数C.一个文件指针,指向待读取的文件D.一个内存块的首地址,代表读入数据存放的地址二、程序填空题(总题数:1,分数:18.00)41.下列给定程序中,函数 fun 的功能是:计算如下公式 直到 (分数:18.00)填空项 1:_三、程序修改

    20、题(总题数:1,分数:18.00)42.下列给定程序中函数 fun 的功能是:求出如下分数序列的前 n 项之和,和值通过函数值返回。 (分数:18.00)_四、程序设计题(总题数:1,分数:24.00)43.请编写函数 fun,其功能是:找出 2M 整型二维数组中最大元素的值,并将此值返回调用函数。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #define M 4 #include stdio.h int fun(int aM) void main() int arr2M=5, 8, 3, 45

    21、, 76, -4, 12, 82; printf(”max=% d/n“, fun(arr); (分数:24.00)_全国计算机等级考试二级 C 语言真题 2013 年 3 月答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.程序流程图中带有箭头的线段表示的是_。(分数:1.00)A.图元关系B.数据流C.控制流 D.调用关系解析:解析 在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择 C。2.结构化程序设计的基本原则不包括_。(分数:1.00)A.多态性 B.自顶向下C.模块化D.逐步求精解析:解

    22、析 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto 语句,所以选择 A。3.软件设计中模块划分应遵循的准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合 C.低内聚高耦合D.高内聚高耦合解析:解析 软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。4.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.00)A.可行性分析报告B.软件需求规格说明书 C.

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

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

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

    26、程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。(分数:1.00)A.课号,成绩B.学号,成绩C.学号,课号 D.学号,姓名,成绩解析:解析 学号是学生表 S 的主键,课号是课程表 C 的主键,所以选课表 SC 的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择 C。11.以下叙述中错误的是_。(分数:1.00)A.C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 B.C 程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用 C 语言编写的程序称为源程序,它以 ASCII 代码形式存放在

    27、一个文本文件中D.C 语言源程序经编译后生成后缀为.obj 的目标程序解析:解析 C 语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以 A 错误。由 C 语言构成的指令序列称为 C 源程序,C 源程序经过 C 语言编译程序编译之后生成一个后缀为.OBJ 的二进制文件(称为目标文件);最后要由“连接程序”把此.OBJ 文件与 C 语言提供的各种库函数连接起来生成一个后缀为.EXE 的可执行文件。12.以下选项中,合法的一组 C 语言数值常量是_。(分数:1.00)A.12. 0Xa23 4.5e0 B.028 .5e-3 -0xfC177 4e1.5 0abcD.0x8A 10,00

    28、0 3.e5解析:解析 C 语言中八进制整型常量的开头是数字 0,十六进制整型常量的开头数字是 0x。C 语言中的实型常量有两种表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以“e”或“E”后跟一个整数来表示以 10 为底数的幂数,且规定字母 e 或 E 之前必须要有数字,且 e 或 E 后面的指数必须为整数。B 选项中 028 错误,八进制中没有数字 8。C 选项中 4e1.5 中 e 后面的指数不是整数。D 选项中 3.e5 小数点后面缺少数字。13.以下选项中不合法的标识符是_。(分数:1.00)A. int i=0, k=18; ,则不符合 C 语言规定的赋值语句

    29、是_。(分数:1.00)A.i=(a+k)=(i+k);B.i=a%11; C.a=a+, i+;D.i=!a;解析:解析 取模运算符“%”为二元运算符,具有左结合性,并且参与运算的量应均为整型。选项 B 中的 a 变量是 double 实型,所以 B 不符合规定。16.有以下程序: #include stdio.h main() int s, t, A=10; double B=6; s=sizeofA.; t=sizedB.; printf(“%d, %d/n“, s, t); 在 VC 6.0 平台上编泽运行,程序运行后的输出结果是_。(分数:1.00)A.10,6B.4,4C.2,4D

    30、.4,8 解析:解析 C 语言中利用 sizeof()函数判断数据类型长度,在 VC 6.0 平台中,整型 int 占有 4 个字节,double 型数据占有 8 个字节。17.有以下程序: #include stdio.h main() char a, b, c, d; scanf(“%c%c“, c=getchar(); d=getchar(); printf(“%c%c%c%c/n“, a, b, c, d); 当执行程序时,按下列方式输入数据(从第 1 列开始,CR代表回车,注意:回车也是一个字符) 12CR 34CR 则输出结果是_。(分数:1.00)A.1234B.12C.1234

    31、D.123 解析:解析 按照从键盘输入的数据可以判断字符 1 给了变量 a,字符 2 给了变量 b,字符CR即回车给了变量 c,字符 3 给了变量 d。所以打印输出的结果为 D 选项。18.以下关于逻辑运算符两侧运算对象的叙述中正确的是_。(分数:1.00)A.可以是任意合法的表达式 B.只能是整数 0 或非 0 整数C.可以是结构体类型的数据D.只能是整数 0 或 1解析:解析 C 语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是任意合法的表达式,所以选择 A。19.有以下程序: #include stdio.h main() int a=0, b=0, c=0, d=0; i

    32、f(a=1)b=1; c=2; else d=3; printf(“%d, %d, %d, %d/n“, a, b, c, d); 程序输出_。(分数:1.00)A.1,1,2,0B.0,0,0,3C.编译有错 D.0,1,2,0解析:解析 本题中 if(a=1)b=1; 与 else d=3; 之间多了语句 c=2; ,所以会出现 else 语句的位置错误的编译失败提示。20.有以下程序: #include stdio.h main() int x=1, y=0, a=0, b=0; switch(x) ease 1: switch(y) case 0: a+; break; case 1:

    33、 b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(“a=%d, b=%d/n“, a, b); 程序的运行结果是_。(分数:1.00)A.a=2, b=2B.a=2, b=1 C.a=1, b=1D.a=1, b=0解析:解析 case 常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行 switch 语句时,根据 switch 的表达式,找到与之匹配的 case 语句,就从此 case 子句执行下去,不再进行判断,直到碰到 break 或函数结束为止。所以执行内层 switch(y)时只执行了 a+,此时 a 的值为

    34、 1。然后执行外层case 2 语句的 a+;b+;则 a 为 2,b 为 1。所以结果为 B。21.以下程序段中的变量已正确定义:_ for(i=0; i4; i+, i+ ) for(k=1; k3; k+); printf(“*“); 程序段的输出结果是_。(分数:1.00)A.* *B.* * * *C.* D.* * * * * * * *解析:解析 由于内层循环 for(k=1; k3; k+)后而直接跟了空语句“;”,所以在循环内部什么操作也不做,跳出外层循环后执行打印语句,所以打印了一个“*”,因此选择 C。22.有以下程序段: #include stdio.h int i,

    35、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.for 循环语句固定执行 8 次B.当产生的随机数 n 为 4 时结束循环操作C.当产生的随机数 n 为 1 和 2 时不做任何操作D.当产生的随机数 n 为 0 时结束程序运行 解析:解析 case 常量

    36、表达式只是起语句标号作用,并不是该处进行条件判断。在执行 switch 语句时,根据 switch 的表达式,找到与之匹配的 case 语句,就从此 case-子句执行下去,不再进行判断,直到碰到 break 或函数结束为止。简单地说,break 是结束整个循环体,而 continue 是结束单次循环。B 选项中当产生的随机数 n 为 4 时,要执行打印操作。C 选项中当产生的随机数为 1 和 2 时,分别执行 case 3 与case 4 后面语句的内容。由于存在 break 语句,所以 for 循环不是固定执行 8 次,执行次数与产生的随机数 n 有关系。23.有以下程序: #includ

    37、e stdio.h int f(int x); main() int n=1, m; m=f(f(f(n); printf(“%d/11“, m); int f(int x) return x*2; 程序运行后的输出结果是_。(分数:1.00)A.8 B.2C.4D.1解析:解析 第一次调用为 m=f(f(f(1),第二次调用为 m=f(f(2),第三次调用为 m=f(4),即返回值为 8。24.以下叙述中错误的是_。(分数:1.00)A.可以给指针变量赋一个整数作为地址值 B.函数可以返回地址值C.改变函数形参的值,不会改变对应实参的值D.当在程序的开头包含头文件 stdio.h 时,可以给

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

    39、, 5, 6; 解析:解析 D 选项中 x23定义的是一个两行三列的二维数组,而在给数组元素赋值时却赋成了三行,所以错误。27.有以下程序: #include stdio.h void 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“); 程序的运行结果是_。(分数:1.00)A.3216

    40、78 B.876543C.1098765D.345678解析:解析 本题中的函数 fun()的功能是将数组 k 中前 5 个元素倒序,所以返回后数组 k 中的元素排列是 5, 4, 3, 2, 1, 6, 7, 8, 9, 10。所以打印输出 k2到 k7元素的值,即 321678,所以选择 A。28.有以下程序: #include stdio.h #define N 4 void 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,

    41、 12, 13, 14, 15, 16, yN, i; fun(x, y); for(i=0; iN; i+) printf(“%d, “, yi); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.-3, -1, 1, 3, B.-12, -3, 0, 0,C.0, 1, 2, 3,D.-3, -3, -3, -3,解析:解析 本题中由 fun 函数可知,b0=a00-a03=1-4=-3, b1=a11-12=6-7=-1, b2=a22-21=11-10=1, b3=a33-31=16-13=3,所以主函数中打印 y 数组元素的值为 A选项。29.设有定义:c

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

    43、.sizeof(char)C.sizeof(*q)D.sizeof(p0)解析:解析 根据题目中的定义,可以知道 sizeof(p)计算的是数组 p 中所有元素所占用的字节数,而不是 char 型数据所占字节数。31.有以下程序: #include stdio.h #include string.h main() char str20=“One*World“, “One*Dream“, *p=str1; printf(“%d, “, strlen(p); printf(“%s/n“, p); 程序运行后的输出结果是_。(分数:1.00)A.10, One*Dream! B.9, One*Dre

    44、am!C.9, One*WorldD.10, One*World解析:解析 p 是指向二维字符数组第二行 One*Dream!的数组指针,所以长度是 10,打印输出的也是该字符串。32.有以下程序: #include stdio.h main() char s=“012xy/08s34f4w2“; int i, n=0; for(i=0; si!=0; i+) if(si=0 printf(“%d/n“, n); 程序运行后的输出结果是_。(分数:1.00)A.0B.3 C.7D.8解析:解析 本题中遇到“/”字符循环结束,所以只统计“/”之前的数字字符,所以为 3。33.有以下程序: #in

    45、clude stdio.h fun(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); 执行后的输出结果是_。(分数:1.00)A.5, 11 B.5, 5C.11, 11D.11, 5解析:解析 声明静态局部变量:函数调用结束后,其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。本题子函数 fun 中的变量 i 和 m 均为静态局部变量。所以第一次调用 fun 函数,返回 m 的值为 5,第二次再调用 fun 函数时,i 的值为 3,m 的值已经是 5 了,所以执行i+=m+1,i 的值变为 9,m=i+x+y=9+1+1=11。34.在 C 语言中,只有在使用时才占用内存单元的变量,其存储类型是_。(分数:1.00)A.auto 和 staticB.extem 和 registerC.auto 和


    注意事项

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




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

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

    收起
    展开