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

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

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

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

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

    1、二级 C 语言笔试-372 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.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、) 队列按“先进先出”原则组织数据(分数:2.00)A.B.C.D.4.对长度为 n 的线性表排序,在最坏情况下,比较次数是 nlog2n 的排序方法是A) 快速排序 B) 冒泡排序 C) 直接插入排序 D) 堆排序(分数:2.00)A.B.C.D.5.下列描述中正确的是A) 软件工程只是解决软件项目的管理问题B) 软件工程主要解决软件产品的生产率问题C) 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D) 软件工程只是解决软件开发中的技术问题(分数:2.00)A.B.C.D.6.在软件设计中,不属于过程设计工具的是A) PDL B) DFD 图 C) PAD 图 D) N-S 图

    3、(分数:2.00)A.B.C.D.7.软件(程序)调试的目标是A) 诊断和改正程序中的错误 B) 尽可能多地发现程序中的错误C) 发现并改正程序中的所有错误 D) 确定程序中错误的性质(分数:2.00)A.B.C.D.8.数据库系统的核心是A) 数据库 B) 数据库管理系统 C) 数据库管理员 D) 数据库应用系统(分数:2.00)A.B.C.D.9.在关系数据库中,用来表示实体之间联系的是A) 二维表 B) E-R 图 C) 元组 D) 文件(分数:2.00)A.B.C.D.10.设有如下三个关系表:(分数:2.00)A.B.C.D.11.计算机高级语言程序的运行方法有编译执行和解释执行两种

    4、,以下叙述中正确的是A) C 语言程序仅可以编译执行 B) C 语言程序仅可以解释执行C) C 语言程序既可以编译执行又可以解释执行 D) 以上说法都不对(分数:1.00)A.B.C.D.12.以下叙述中错误的是A) 用户所定义的标识符允许使用关键字B) 用户所定义的标识符应尽量做到“见名识意”C) 用户所定义的标识符中,大、小写字母代表不同标识D) 用户所定义的标识符必须以字母或下划线开头(分数:1.00)A.B.C.D.13.若有说明语句:char c=/72; ,则变量 cA) 包含 1 个字符 B) 包含 2 个字符 C) 包含 3 个字符 D) 说明不合法,c 的值不确定(分数:1.

    5、00)A.B.C.D.14.现有定义 int a; double b; float c; char k; ,则表达式 a/b+c-k 值的类型为A) int B) double C) float D) char(分数:1.00)A.B.C.D.15.以下定义语句中正确的是A) int a=b=0; B) char A=65+1, b=b; C) float a=1, * b=a, * c=b; D) double a=0.0; b=1.1;(分数:1.00)A.B.C.D.16.若在定义语句 int a, b, c, *p=c;之后,接着执行以下选项中的语句,则能正确执行的语句是A) scan

    6、f(“%d“, a, b, c); B) scanf(“% d% d% d“, a, b, c); C) scanf(“%d“, p); D) scanf(“%d“, p);(分数:1.00)A.B.C.D.17.以下程序的运行结果是int k=0; void fun(int m)m+=k; k+=m; printf(”m=%d k=%d”, m, k+); main()int i=4;fun(i+); printf(“i=%d k=%d/n“, i, k); A) m=4 k=5 i=5 k=5 B) m=4 k=4 i=5 k=5C) m=4 k=4 i=4 k=5 D) m=4 k=5

    7、i=4 k=5(分数:1.00)A.B.C.D.18.在执行下述程序时,若从键盘输入 6 和 8,则结果为main()int a, b, s; scanf(“%d%d“,a,b); s=a:if(ab)s=b; s*=s; printf(“%d“, s); A) 36 B) 64 C) 48 D) 以上都不对(分数:1.00)A.B.C.D.19.有以下程序:main()int k=5, n=0; while(k0)switch(k)default:break; case 1:n+=k:case 2:case 3:n+=k:k-; printf(“%d/n“, n); 程序运行后的输出结果是A

    8、) 0 B) 4 C) 6 D) 7(分数:1.00)A.B.C.D.20.有以下程序:#includestdio.hmain()int x; scanf(“%d“,x); if(x=3); elseif(x!=10) printf(“%d/n“, x); 程序运行时,输入的值在_范围才会有输出结果。A) 不等于 10 的整数 B) 大于 3 且不等于 10 的整数C) 大于 3 或等于 10 的整数 D) 小于 3 的整数(分数:1.00)A.B.C.D.21.有以下程序:#includestdio.hmain()int a=1, b=0; printf(“%d, “, b=a+b); pr

    9、intf(“%d/n“, a=2*b); 程序运行后的输出结果是A) 0, 0 B) 1, 0 C) 3, 2 D) 1, 2(分数:2.00)A.B.C.D.22.有以下程序:main()int num44=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, i, j; for(i=0; i4; i+)for(j=0; j=i; j+)printf(“%4c“, ); for(j=_; j4; j+)printf(“%4d“, numij); printf(“/n“);若要按以下形式输出数组右上半三角1 2 3 46 7 811 12

    10、16则在程序下划线处应填入的语句是A) i-1 B) i+1 C) i D) 4-1(分数:2.00)A.B.C.D.23.以下程序段中,与语句:k=ab?(bc?1:0):0; 功能相同的是A) if(ab)(bc)k=1; else k=0; B) if(ab)|(bc)k=1; else k=0; C) if(a=b)k=0; else if(b=c)k=1; D) if(ab)k=1; else if(bc) k=1; else k=0;(分数:2.00)A.B.C.D.24.有以下程序:void ss(char*s, char t)while(*s)if(*s=t)*s=t=a+A;

    11、 s+; main()char str1100=“abcddfefdbd“, c=d; ss(str1, c); printf(“%s/n“, str1); 程序运行后的输出结果是A) ABCDDEFEDBD B) abcDDfefDbD C) abcAAfefAbA D) Abcddfefdbd(分数:2.00)A.B.C.D.25.现有如下程序段:#include “stdio.h“main()int k30=12, 324, 45, 6, 768, 98, 21, 34, 453, 456; int count=0, i=0; while(ki)if(ki %2=0|ki%5=0) co

    12、unt+; i+; printf(“%d, % d/n“, count, i); 则程序段的输出结果为A) 7, 8 B) 8, 8 C) 7, 10 D) 8, 10(分数:2.00)A.B.C.D.26.以下程序运行后的输出结果是#include string.hvoid f(char*s, char*t)char k; k=*s; *s=*t; *t=k; s+; t-; if(*s)f(s, t); main()char str10=“welcome“, *p; p=str+strlen(str)/2+1; f(p, p-2);printf(“%s/n“, str); A) eelco

    13、mw B) weoclme C) welcome D) emoclew(分数:2.00)A.B.C.D.27.设有如下程序段:int x=2004,y=2008;printf(“%d/n“, (x, y); 则以下叙述中正确的是A) 输出值为 2004B) 输出值为 2008C) 运行时产生出错信息D) 输出语句中格式说明符的个数少于输出项的个数,不能正确输出(分数:2.00)A.B.C.D.28.有以下程序:#includestdio.hvoid fun(char*c, int d)*c=*c+1; d=d+1; printf(“%c, %c, “, *c, d); main()char b

    14、=a,a=A; fun(b, a); printf(“%c, %c/n“, b, a); 程序运行后的输出结果是A) b, B, b, A B) b, B, B, A C) a, B, B, a D) a, B, a, B(分数:2.00)A.B.C.D.29.有以下程序:#includestdio.h#includestring.hmain()char a10=“abcd“;printf(“%d, %d/n“, strlen(a), sizeof(a); 程序运行后的输出结果是A) 7, 4 B) 4, 10 C) 8, 8 D) 10, 10(分数:2.00)A.B.C.D.30.若有定义

    15、 int a2 3; ,则对 a 数组的第 i 行第 j 列(假设 i, j 已正确说明并赋值)元素值的正确引用为A) *(*(a+i)+j) B) (a+i)j C) *(a+i+j) D) *(a+i)+j(分数:2.00)A.B.C.D.31.有以下程序:#includestdio.hmain()char c1, c2, c3, c4, c5, c6; scanf(“%c% c% c%c“, c1, c2, c3, c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c% c/n“, c5, c6); 程

    16、序运行后,若从键盘输入(从第 1 列开始):123回车45678回车则输出结果是A) 1267 B) 1256 C) 1278 D) 1245(分数:2.00)A.B.C.D.32.以下程序的运行结果是#includestdio.hint a=1; int f(int c)static int a=2; c=c+1:return(a+)+c; main()int i, k=0; for(i=0; i2; i+) int a=3; k+=f(a); k+=a; printf(“%d/n“, k); A) 17 B) 16 C) 15 D) 14(分数:2.00)A.B.C.D.33.设有定义:i

    17、nt n1=0, n2, *p=n2, *q=n1;,以下赋值语句中与 n2=n1;语句等价的是A) *p=*q; B) p=q; C) *p=n1; D) p=*q;(分数:2.00)A.B.C.D.34.设有如下说明:Typedef struct STlong a; int b; Char c2; NEW; 以下说法正确的是A) NEW 是一个结构体变量 B) NEW 是一个结构体类型C) ST 是一个结构体类型 D) 以上说明形式非法(分数:2.00)A.B.C.D.35.有以下程序:#includestdio.h#includestring.htypedef struct char n

    18、ame9; char sex; float score2; STU; void f(STU a)STU b=“Zhao“, m, 85.0, 90.0; int i; strcpy(a.name, b. name); a.sex=b.sex; for(i=0; i2; i+)a.scorei=b.scorei; main()STU c=“Qian“, f, 95.0, 92.0; f(c); printf(“%s, %c, %2. 0f, %2.0f/n“, c. name, c.sex, c.score0, c.score1); 程序的运行结果是A) Qian, f, 95, 92 B) Q

    19、ian, m, 85, 90 C) Zhao, f, 95, 92 D) Zhao, m, 85, 90(分数:2.00)A.B.C.D.36.有以下程序:#includestdio.h#define N 4void fun(int aN, int b)int i;for(i=0; iN; i+)bi=aii; main()int xN=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, yN, i; fun(x, y); for(i=0; iN; i+)printf(“%d, “, yi); printf(“/n“); 程序的运行结果是A) 1, 2, 3, 4, B) 1, 0,

    20、 7, 0, C) 1, 4, 5, 9, D) 3, 4, 8, 10,(分数:2.00)A.B.C.D.37.有以下程序:#includestdio.hint 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); 程序运行后的输出结果是A) 3 B) 6 C) 8 D) 12(分数:2.00)A.B.C.D.38.若 x 是 int 型变量,且有下面的程序片段:for(x=3; x6; x+)printf(x%

    21、2)?(“*%d“):(“#%d/n“), x); 上面程序片段的输出结果是A) * *3#4* *5B) #3* *4#5C) #3* *4#5D) * *3#4* *5(分数:2.00)A.B.C.D.39.有以下程序:#includestdio.h#defineN 5#define M N+1#define f(x)(x*M)main()int i1, i2; i1=f(2); i2=f(1+1); printf(“%d%d/n“, i1, i2); 程序的运行结果是A) 12 12 B) 11 7 C) 11 11 D) 12 7(分数:2.00)A.B.C.D.40.有以下程序:#i

    22、ncludestdio.hmain()unsigned char a=8, c; c=a3; printf(“%d/n“, c); 程序运行后的输出结果是A) 32 B) 16 C) 1 D) 0(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:30.00)41.对下列二叉树进行前序遍历的结果为 1。(分数:2.00)填空项 1:_42.结构化程序设计的基本原则包括 1、逐步求精、模块化和限制使用 goto 语句。(分数:2.00)填空项 1:_43.数据流图是描述数据在软件中的流动和变换的过程,而对数据流图中所包含元素的定义则是 1。(分数:2.00)填空项 1:_44.在

    23、E-R 图中,_表示实体间的联系。(分数:2.00)填空项 1:_45.在职员管理关系数据库中,存取个职员信息的数据单位是 1。(分数:2.00)填空项 1:_46.以下程序运行后的输出结果是_。main()int a, b, c; a=10; b=20; c=(a%b1)|(a/b1); printf(“%d%d%d/n“, a, b, c); (分数:2.00)填空项 1:_47.有以下程序段,且变量已正确定义和赋值。for(s=1.0, k=1; k=n; k+)s=s+1.0/(k*(k+1); printf(“s=%f/n/n“, s); 请填空,使下面程序段的功能与之完全相同S=1

    24、.0; k=1; while(_)s=s+1.0/(k*(k+1); k+; printf(“s=%f/n/n“, s);(分数:2.00)填空项 1:_48.以下程序的输出结果是_。#includestdio.hmain()int n=12345, d; while(n!=0)d=n% 10; printf(“%d“, d); n/=10; (分数:2.00)填空项 1:_49.以下程序的输出结果是_。#includestdio.hvoid swap(int*a, int*b)int *t; t=a; a=b; b=t; main()inti=3, j=5, *p=i,*q=j; swap(

    25、p, q); printf(“%d%d/n“, *p, *q); (分数:2.00)填空项 1:_50.以下 fun 函数的功能是找出具有 N 个元素的一维数组中的最小值,并作为函数值返回。请填空。(设 N已定义)int fun(int xN)int i, k=0; for(i=0; iN; i+)if(xixk)k=_; return xk; (分数:2.00)填空项 1:_51.mystrlen 函数的功能是计算 str 所指字符串的长度,并作为函数值返回。请填空。int mystrlen(char*str)int I; for(I=0; _!=/n; I+); return(I);(分数

    26、:2.00)填空项 1:_52.以下程序运行后的输出结果是_。#include stdio.h#include stdlib.h#include string.hmain()char *p; int i; p=(char*)malloc(sizeof(char)* 20); strcpy(p, “welcome“); for(i=6; i=0; i-)putchar(*(p+i); printf(“/n“); free(p); (分数:2.00)填空项 1:_53.设有定义“struct int a; float b; char c; abc, *p_abc=abc; “,则对结构体成员 a

    27、的引用方法可以是 abc.a 和 p_abc 1a。(分数:2.00)填空项 1:_54.以下程序的输出结果是_。#include stdio.hmain()int a5=2, 4, 6, 8, 10, *p; p=a; p+; printf(“%d“, *p); (分数:2.00)填空项 1:_55.以下程序用来判断指定文件是否能正常打开。请填空。#include stdio.hmain()FILE *fp; if(fp=fopen(“test. txt“, “r“)=_)printf(“未能打开文件!/n“); elseprintf(“文件打开成功!/n“); (分数:2.00)填空项 1

    28、:_二级 C 语言笔试-372 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.算法的时间复杂度是指A) 算法所处理的数据量 B) 算法的执行时间C) 算法在执行过程中所需要的基本运算次数 D) 算法程序中的语句或指令条数(分数:2.00)A.B.C. D.解析:解析 一个算法的时间复杂度是指执行这个算法所需的极端工作量。2.数据的存储结构是指A) 存储在外存中的数据 B) 数据所占的存储空间C) 数据在计算机中的顺序存储方式 D) 数据的逻辑结构在计算机中的表示(分数:2.00)A.B.C.D. 解析:解析 数据的存储结构也称为数据的物理结

    29、构,是数据的逻辑结构在计算机存储空间中的存放形式。3.下列对队列的叙述正确的是A) 队列按“先进后出”原则组织数据 B) 队列属于非线性表C) 队列在队尾删除数据 D) 队列按“先进先出”原则组织数据(分数:2.00)A.B.C.D. 解析:解析 队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作,另一端进行删除操作。其中,允许插入的一端称为队尾(rear),允许删除的一端称为队首(front)。队列具有先进先出的特点,它是按“先进先出”的原则组织数据的。4.对长度为 n 的线性表排序,在最坏情况下,比较次数是 nlog2n 的排序方法是A) 快速排序 B) 冒泡排序 C) 直接插

    30、入排序 D) 堆排序(分数:2.00)A.B.C.D. 解析:解析 在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都是 n(n-1)/2,堆排序需要比较的次数为 nlo2n。5.下列描述中正确的是A) 软件工程只是解决软件项目的管理问题B) 软件工程主要解决软件产品的生产率问题C) 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D) 软件工程只是解决软件开发中的技术问题(分数:2.00)A.B.C. D.解析:解析 软件工程的目标是在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的

    31、产品。6.在软件设计中,不属于过程设计工具的是A) PDL B) DFD 图 C) PAD 图 D) N-S 图(分数:2.00)A.B. C.D.解析:解析 常见的过程设计工具有图形工具(程序流程图、N-S 图、PAD 图、HIPO 图)、表格工具(判定表)和语言工具(PDL)。DFD 是数据流图,是描述数据处理过程的工具。7.软件(程序)调试的目标是A) 诊断和改正程序中的错误 B) 尽可能多地发现程序中的错误C) 发现并改正程序中的所有错误 D) 确定程序中错误的性质(分数:2.00)A. B.C.D.解析:解析 软件测试与软件调试是两个不同的概念:软件测试的目的是发现错误,而软件调试的

    32、目的是发现错误或导致程序失效的原因,并修改程序以修正错误,调试是测试之后的活动。8.数据库系统的核心是A) 数据库 B) 数据库管理系统 C) 数据库管理员 D) 数据库应用系统(分数:2.00)A.B. C.D.解析:解析 数据库管理系统是一种软件系统,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库系统的核心。9.在关系数据库中,用来表示实体之间联系的是A) 二维表 B) E-R 图 C) 元组 D) 文件(分数:2.00)A. B.C.D.解析:解析 关系数据库系统采用关系模型作为数据的组织形式。在关系模型中用二维表来表示实体及实体之间的联系。10.设有如下三

    33、个关系表:(分数:2.00)A.B.C. D.解析:解析 对于两个关系的合并操作可以用笛卡儿积表示。设有 n 元关系 R 和 m 元关系 S,它们分别有 p 和 q 个元组,则 R 与 S 的笛卡儿积记为 RS,它是一个 m+n 元关系,元组个数是 pq,由题意可得,关系 T 是由关系 R 与关系 S 进行笛卡儿积运算得到的。11.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A) C 语言程序仅可以编译执行 B) C 语言程序仅可以解释执行C) C 语言程序既可以编译执行又可以解释执行 D) 以上说法都不对(分数:1.00)A. B.C.D.解析:解析 解释程序是将

    34、源程序(如 BASIC)作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。编译程序是把高级语言(如 FORTRAN、COBOL、Pascal、C 等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机执行这个目标程序,得到计算结果。12.以下叙述中错误的是A) 用户所定义的标识符允许使用关键字B) 用户所定义的标识符应尽量做到“见名识意”C) 用户所定义的标识符中,大、小写字母代表不同标识D) 用户所定义的标识符必须以字母或下划线开头(分数:1.00)A. B.C.D.解析:解析 C 语言规定标识符只能由字母、数字和下划线 3 种字符组成,且第一个字符必须为字母或

    35、下划线,排除 D);用户定义标识符中大小写字母之间是有区别的,并且应尽量做到“见名识意”,排除选项 B)和 C);C 语言中还规定标识符不能为 C 语言的关键字,故选项 A)叙述错误,正确答案是选项 A)。13.若有说明语句:char c=/72; ,则变量 cA) 包含 1 个字符 B) 包含 2 个字符 C) 包含 3 个字符 D) 说明不合法,c 的值不确定(分数:1.00)A. B.C.D.解析:解析 C 语言的字符型常量中,允许用一种特殊形式的字符常量,就是以一个“/”开头的字符。其中,“/ddd“表示用 ASCII 码(八进制数)表示一个字符,本题中的 char c=/72即表示占

    36、一个字符的变量 c 的 ASCII 码值。14.现有定义 int a; double b; float c; char k; ,则表达式 a/b+c-k 值的类型为A) int B) double C) float D) char(分数:1.00)A.B. C.D.解析:解析 双目运算中两边运算量类型转换规律:运算数 1运算数 2转换结果类型短整型长整型短整型-长整型整型长整型整型-长整型字符型整型字符型-整型有符号整型无符号整型有符号整型-无符号整型整型浮点型整型-浮点型在 a/b 的时候,a、b 的类型不一致,根据类型转换规则,把整型转换成 double 类型,之后的加、减类似。转化规则为

    37、 char,short- int-unsigned-long-doublefloat。15.以下定义语句中正确的是A) int a=b=0; B) char A=65+1, b=b; C) float a=1, * b=a, * c=b; D) double a=0.0; b=1.1;(分数:1.00)A.B. C.D.解析:解析 本题考查变量的定义方法。如果要一次进行多个变量的定义,则它们之间要用逗号隔开。因此选项 A)和 D)错误;在选项 C)中,变量 c 是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量 b;所以正确答案为 B)。16.若在定义语句 int a, b, c,

    38、*p=c;之后,接着执行以下选项中的语句,则能正确执行的语句是A) scanf(“%d“, a, b, c); B) scanf(“% d% d% d“, a, b, c); C) scanf(“%d“, p); D) scanf(“%d“, p);(分数:1.00)A.B.C.D. 解析:解析 scanf 函数中的输入项必须是指针,只有选项 D)符合这个要求。17.以下程序的运行结果是int k=0; void fun(int m)m+=k; k+=m; printf(”m=%d k=%d”, m, k+); main()int i=4;fun(i+); printf(“i=%d k=%d/

    39、n“, i, k); A) m=4 k=5 i=5 k=5 B) m=4 k=4 i=5 k=5C) m=4 k=4 i=4 k=5 D) m=4 k=5 i=4 k=5(分数:1.00)A.B. C.D.解析:解析 由于在 main()函数中,变量 1=4,所以就调用 fun(4),则输出“m=4 k=4”。然后变量 k增 1 等于 5,变量 i 增 1 等于 5,所以 main()函数的“printf(“i=%d k=%d/n“,i, k):“语句输出“i=5 k=5“。18.在执行下述程序时,若从键盘输入 6 和 8,则结果为main()int a, b, s; scanf(“%d%d“

    40、,a,b); s=a:if(ab)s=b; s*=s; printf(“%d“, s); A) 36 B) 64 C) 48 D) 以上都不对(分数:1.00)A.B. C.D.解析:解析 本题中 a 的值为 6,b 的值为 8,最后 s 的值为 8,s*=s 等价于 s=s*s。19.有以下程序:main()int k=5, n=0; while(k0)switch(k)default:break; case 1:n+=k:case 2:case 3:n+=k:k-; printf(“%d/n“, n); 程序运行后的输出结果是A) 0 B) 4 C) 6 D) 7(分数:1.00)A.B.

    41、C.D. 解析:解析 本题考查的是 switch 语句。在 switch 语句中,表达式的值与某一个 case 后面的常量表达式的值相等时,就执行此 case 后面的语句,若所有的 case 中的常量表达式的值都没有与表达式的值匹配的,就执行 default 后面的语句,各个 case 和 default 的出现次序不影响执行结果。所以在本题中,当k=5 和 k=4 的时候,case 都没有与其匹配的值,所以执行了 default 语句;当 k=3 时,执行“case 3:n+=k; ”,得 n=3,然后执行 default;当 k=2 时,执行“case 2:case 3:n+=k; ”,得

    42、 n=5,然后执行 default;当 k=1 时,执行“case 1:n+=k; case2:case 3:n+=k; ”,使得 n 加两次 k,得到 n=7。20.有以下程序:#includestdio.hmain()int x; scanf(“%d“,x); if(x=3); elseif(x!=10) printf(“%d/n“, x); 程序运行时,输入的值在_范围才会有输出结果。A) 不等于 10 的整数 B) 大于 3 且不等于 10 的整数C) 大于 3 或等于 10 的整数 D) 小于 3 的整数(分数:1.00)A.B. C.D.解析:解析 ifelse 控制结构中,els

    43、e 总是与最近的未配对的 if 匹配。本题的执行过程为:如果输入整数小于 3,则不进行任何操作,否则判断是否不等于 10,若为真则进行输出。因此程序输出的数据为大于 3,且不等于 10 的整数。21.有以下程序:#includestdio.hmain()int a=1, b=0; printf(“%d, “, b=a+b); printf(“%d/n“, a=2*b); 程序运行后的输出结果是A) 0, 0 B) 1, 0 C) 3, 2 D) 1, 2(分数:2.00)A.B.C.D. 解析:解析 执行第一个 printf 语句时,b=a+b=1,所以输出 1,执行第二个 printf 语句

    44、时,a=2*b=2*1=2,所以输出结果为 2。22.有以下程序:main()int num44=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, i, j; for(i=0; i4; i+)for(j=0; j=i; j+)printf(“%4c“, ); for(j=_; j4; j+)printf(“%4d“, numij); printf(“/n“);若要按以下形式输出数组右上半三角1 2 3 46 7 811 1216则在程序下划线处应填入的语句是A) i-1 B) i+1 C) i D) 4-1(分数:2.00)A.B.C

    45、. D.解析:解析 此题中嵌套了两个 for 语句,第一个用来输出空格,第二个用来输出数字。如此类型的输出某种格式的考题,一般是采用多重循环来解决,需要考生找出输出数据的特点,并用相对应的数学公式表达出来。23.以下程序段中,与语句:k=ab?(bc?1:0):0; 功能相同的是A) if(ab)(bc)k=1; else k=0; B) if(ab)|(bc)k=1; else k=0; C) if(a=b)k=0; else if(b=c)k=1; D) if(ab)k=1; else if(bc) k=1; else k=0;(分数:2.00)A. B.C.D.解析:解析 表达式 k=a

    46、b?(bc?1:0):0 表示:如果(ab)条件为真,则 k 取值(bc?1:0),否则 k取值 0;当 ab 的情况下,如果 bc,则 k 值为 1,否则为 0。所以该表达式与选项 A)功能相同。24.有以下程序:void ss(char*s, char t)while(*s)if(*s=t)*s=t=a+A; s+; main()char str1100=“abcddfefdbd“, c=d; ss(str1, c); printf(“%s/n“, str1); 程序运行后的输出结果是A) ABCDDEFEDBD B) abcDDfefDbD C) abcAAfefAbA D) Abcdd

    47、fefdbd(分数:2.00)A.B. C.D.解析:解析 在内存中,字符数据以 ASCII 码存储,它的存储形式与整数的存储形式类似。C 语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它们的 ASCII 码进行算术运算,在本题中,s+相当于 s=s+1,即让 s 指向数组中的下一个元素。25.现有如下程序段:#include “stdio.h“main()int k30=12, 324, 45, 6, 768, 98, 21, 34, 453, 456; int count=0, i=0; while(ki)if(ki %2=0|ki%5=0) count+; i+; printf(“%d, % d/n“, count, i); 则程序段的输出结果为A) 7, 8 B) 8, 8 C) 7, 10 D) 8, 10(分数:2.00)A.B.C.D. 解析:解析 在 C 语言中,定义一维数组的语句一般形式如下:类型名数组名常量表达式;一维数组的引用


    注意事项

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




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

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

    收起
    展开