ImageVerifierCode 换一换
格式:DOC , 页数:32 ,大小:99.50KB ,
资源ID:1326179      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1326179.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

【计算机类职业资格】二级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 语言中,定义一维数组的语句一般形式如下:类型名数组名常量表达式;一维数组的引用

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