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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C 语言-12-2 及答案解析(总分:84.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:51.00)1.详细设计的结果基本决定了最终程序的_。 A. 代码的规模 B. 运行速度 C. 质量 D. 可维护性(分数:1.00)A.B.C.D.2.表达式 3.6-5/2+1.2+5%2 的值是_。 A. 4.3 B. 4.8 C. 3.3 D. 3.8(分数:1.00)A.B.C.D.3.下面 4 个关于 C 语言的结论中错误的是U /U。 A. 可以用 dowhile 语句实现的循环一定可以用 while 语句实现 B. 可以用 for 语句实现的循环一定可以用 whi

2、le 语句实现 C. 可以用 while 语句实现的循环一定可以用 for 语句实现 D. dowhile 语句与 while 语句的区别仅是关键字“while”出现的位置不同(分数:2.00)A.B.C.D.4.下面各语句行中,能正确进行赋值字符串操作的语句是 ( ) A.char st 45“ABCDE“; B.char s5A,B,C,D,E C.char*s;s“ABCDE“; D.char*s;scanf(”%s”,s); (分数:1.00)A.B.C.D.5.以下结构体类型说明和变量定义中正确的是_。 A.typedef struct int n;char c;REC; REC t

3、1,t2; B.struct REC; int n;char c;); REC t1,t2; C.typedef struct REC; int n=0;char c=A;t1,t2; D.struct int n;char c;REC; REC t1,t2;(分数:2.00)A.B.C.D.6.变量 p 为指针变量,若 p=for(i=1;i=3;i+)for(j=3;j=i;j+)m=m%j;printf(“%d/n“,m);程序的运行结果是_。 A.1 B.0 C.2 D.3(分数:2.00)A.B.C.D.9.以下叙述中正确的是 _。 A.用 C 程序实现的算法必须要有输入和输出操作

4、B.用 C 程序实现的算法可以没有输出但必须要输入 C.用 C 程序实现的算法可以没有输入但必须要有输出 D.用 C 程序实现的算法可以既没有输入也没有输出 (分数:1.00)A.B.C.D.10.下面一组中都是 C 语言关键字的是_。 A. double Int for B. main while goto C. volatile break static D. malloc sizeof new(分数:1.00)A.B.C.D.11.若有以下说明和语句int c45,(*p)5;p=c;能够正确引用 c 数组元素的是_。 A. p+1 B. *(p+1) C. *(p+1)+3 D. *(

5、p0+2)(分数:1.00)A.B.C.D.12.下面程序的输出结果是_。void prty(int *x)printf(“%d/n“,+ *x);main() int a=25;prty( A. 23 B. 24 C. 25 D. 26(分数:1.00)A.B.C.D.13.若有语句:char*line5;,以下叙述中正确的是_。 A. 定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量 B. 定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组 C. 定义 line 是一个指针数组,语句中的*号称为间址运算符 D. 定义 line 是一个指向

6、字符型函数的指针(分数:2.00)A.B.C.D.14.若 a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*a 后,a 的值是 _ 。 A. -3 B. 9 C. -12 D. 6 (分数:1.00)A.B.C.D.15.有以下程序:main() int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf(“%d,%d/n“,k,m);程序运行后的输出结果是U /U。 A. 0,0 B. 0,1 C. 1,0 D. 1,1(分数:1.00)A.B.C.D.16.设有以下定义:typedef unionlong i;int k5;char c,D

7、ATE,struct dateint cat;DATE cow;double dog;too;DATE max;则下列语句的执行结果是 U /Uprintf(“%d“,stzeof(struct date)+sizeof(max); A. 25 B. 30 C. 18 D. 8(分数:1.00)A.B.C.D.17.下列叙述中正确的是_。 A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 D.循环队列中元素的个数是由队头指针和队尾指针共同决定(分数:2

8、.00)A.B.C.D.18.有下列二叉树,对此二叉树中序遍历的结果为U /U。(分数:2.00)A.B.C.D.19.有以下程序:#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(分数:4.00)A.B.C.D.20.算法的空间复杂度

9、是指U /U。 A. 算法程序的长度 B. 算法程序中的指令条数 C. 算法程序所占的存储空间 D. 算法执行过程中所需要的存储空间(分数:2.00)A.B.C.D.21.下述程序的输出结果是U /U。 #includestdio.h void main() int a20,*p4; int i,k=0; for(i=0;i20;i+) ai=i; for(i=0;i4;i+) pi= while(n6) n-; printf(“%d“,n); 该程序的输出结果是( )。 A. 987 B. 876 C. 8765 D. 9876(分数:1.00)A.B.C.D.24.在结构化方法中,用数据流

10、程图(DFD) 作为描述工具的软件开发阶段是_。 A. 可行性分析 B. 需求分析 C. 详细设计 D. 程序编码 (分数:1.00)A.B.C.D.25.在下列给出的表达式中,与 while(E)中的(E)不等价的表达式是U /U。 A.(!E=O) B.(E0|E0) C.(E=0) D.(E!=0)(分数:1.00)A.B.C.D.26.若变量 a、i 已正确定义,且 i 已正确赋值,合法的语句是_。 A. a=1 B. +i; C. a=a+=5; D. a=int(i);(分数:2.00)A.B.C.D.27.设有以下程序段:int x=0,s=0; while(!x!=0)s+=+

11、x; printf(“%d“, s); 则 A. 运行程序段后输出 0 B. 运行程序段后输出 1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次(分数:1.00)A.B.C.D.28.以下程序的输出结果是#include int a33=1,2,3,4,5,6,7,8,9,*p;main( ) p=(int *)malloc(sized(int);f(p,a) ;printf(“%d/n“,*p);free(p);f(int *s,int p 3) *s=p11; A. 1 B. 4 C. 7 D. 5(分数:2.00)A.B.C.D.29.有以下程序#include stdio

12、.hint fun(char s) int n=O;while(*s=9 s+; return (n);main() char s10= 6, 1, *, 4, *, 9, *, 0, *;printf(“%d/n“,fun(s); A. 9 B. 61490 C. 61 D. 5(分数:1.00)A.B.C.D.30.若有定义 int *p,n;则通过语句 scanf 能够正确读入数据的程序段是U /U。 A. p=j4;j+) cij=_; for(i=0;i4;i+) for(j=0;j4;j+) printf(“%d“,cij);(分数:2.00)填空项 1:_38.以下程序的输出结果

13、是_。 #includestdio.h main() int i; for(i=a;if;i+,i+)printf(“%c“,i-a+A); printf(“/n“); (分数:2.00)填空项 1:_39.下面程序的运行结果是_。 #define N 10 #define s(x) x*x #define f(x) (x*x) main() int i1,i2; i1=1000/s(N); i2=1000/f(N); printf(“%d %d/n“,i1,i2); (分数:1.00)填空项 1:_40.有以下程序,若运行时从键盘输入:18,11回车,则程序的输出结果是_。 main() i

14、nt a,b; printf(“Enter a,b:“);scanf(“%d,%d“,a,b); while(a!=b) while(ab)a-=b; while(ba)b-=a; printf(“%3d%3d“,a,b); (分数:2.00)填空项 1:_41.有以下程序: main() int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%d/n“,x); 执行后输出的结果是U U /U /U。(分数:2.00)填空项 1:_42.下列程序的输出结果是_。 main() int i; for(i=1;i+1;i+) i

15、f(i4) printf(“%d/n“,i); break; printf(“%d/n“,i+);(分数:2.00)填空项 1:_43.若 fp 已正确定义为个文件指针,d1.dd 为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen(_);。(分数:3.00)填空项 1:_44.表示“整数 x 的绝对值大于 5“时值为“真“的 C 语言表达式是U U /U /U。(分数:1.00)填空项 1:_45.对于软件测试,从是否需要执行被测软件的角度,可以分为静态测试和动态测试。代码检查属于 1 测试。(分数:3.00)填空项 1:_46.以下程序的输出结果是U U /U /U。 voi

16、d fun() static int a=0; a+=2; printf(“%d“,A) ; main() int cc; for(cc=1;cc4;cc+)fun(); printf(“/n“); (分数:1.00)填空项 1:_47.以下程序运行后的输出结果是U U /U /U。 main() int i,j,a3=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) for(j=i+1;j3;j+)aji=0; for(i=0;i3;i+) for(j=0;j3;j+)printf(“%d“,aij); printf(“/n“); (分数:2.00)填空项 1:_48.下面

17、程序的功能是:计算 110 之间的奇数之和与偶数之和,请填空。 #include stdio.h main( ) int a,b,c,i; a=c=0; for(i=0;i=10;i+=2) a+=i; _; c+=b; printf(“偶数之和=%d/n“,a); printf(“奇数之和=%d/n“,c-11);(分数:2.00)填空项 1:_49.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除

18、后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10 请填空。 #include stdio.h #define N 80 int fun(int a,int n) int i,j=1; for(i=1;in;i+) if(aj-1!=ai) aj+=ai; _; main() int aN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,i,n=19; printf(“The original data:/n“); for(i=0;in;i+) printf(“%3d“,ai); n=fun(a,n); printf(“/nThe data aft

19、er deleted: /n“); for(i=0;in;i+)printf(“%3d“,ai);printf(“/n/n“); (分数:4.00)填空项 1:_50.以下程序的输出结果是_。 main() char s=“abcdef“; s3=/0; printf(“%s/n“,s); (分数:4.00)填空项 1:_二级 C 语言-12-2 答案解析(总分:84.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:51.00)1.详细设计的结果基本决定了最终程序的_。 A. 代码的规模 B. 运行速度 C. 质量 D. 可维护性(分数:1.00)A.B.C. D.解析:解析

20、 详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,但详细设计阶段的任务还不是具体的编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。因此,详细设计阶段的结果基本上就决定了最终的程序代码的质量。2.表达式 3.6-5/2+1.2+5%2 的值是_。 A. 4.3 B. 4.8 C. 3.3 D. 3.8(分数:1.00)A.B.C.D. 解析:3.下面 4 个关于 C 语言的结论中错误的是U /U。 A. 可以用 dowhile 语句实现的循环一定可以用 while 语句实现 B. 可以用 for 语句实现的循环一定可以用 while 语句实现 C.

21、可以用 while 语句实现的循环一定可以用 for 语句实现 D. dowhile 语句与 while 语句的区别仅是关键字“while”出现的位置不同(分数:2.00)A.B.C.D. 解析:解析 本题考查几个循环语句的关系。dowhile 语句、while 语句、for 语句所实现的循环可以相互替代;dowhile 语句和 while 语句的区别是 dowhile 语句至少执行一次,再判断循环条件,while 语句是先判断条件再执行。4.下面各语句行中,能正确进行赋值字符串操作的语句是 ( ) A.char st 45“ABCDE“; B.char s5A,B,C,D,E C.char*

22、s;s“ABCDE“; D.char*s;scanf(”%s”,s); (分数:1.00)A.B.C. D.解析:5.以下结构体类型说明和变量定义中正确的是_。 A.typedef struct int n;char c;REC; REC t1,t2; B.struct REC; int n;char c;); REC t1,t2; C.typedef struct REC; int n=0;char c=A;t1,t2; D.struct int n;char c;REC; REC t1,t2;(分数:2.00)A. B.C.D.解析:解析 B 选项和 C 选项中,REC 后不应加分号,D

23、选项,没有 typedef,REC 不能作为类型名。所以答案选择 A。6.变量 p 为指针变量,若 p=for(i=1;i=3;i+)for(j=3;j=i;j+)m=m%j;printf(“%d/n“,m);程序的运行结果是_。 A.1 B.0 C.2 D.3(分数:2.00)A. B.C.D.解析:解析 虽为 for 循环嵌套,但是 m=m%j 语句只执行一次,即当 i3 时,内层循环条件成立,m=55% 3=1,故本题答案选 A。9.以下叙述中正确的是 _。 A.用 C 程序实现的算法必须要有输入和输出操作 B.用 C 程序实现的算法可以没有输出但必须要输入 C.用 C 程序实现的算法可

24、以没有输入但必须要有输出 D.用 C 程序实现的算法可以既没有输入也没有输出 (分数:1.00)A.B.C. D.解析:解析 算法的特性中包括“有零个或多个输入”及“有一个或多个输出”这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一千算法必须至少有一个输出。10.下面一组中都是 C 语言关键字的是_。 A. double Int for B. main while goto C. volatile break static D. malloc sizeof new(分数:1.00)A.B.C. D.解析:解析 C 语言中的关键字有 32 个关键字(参见 C 语言

25、教程),本题中只有 C 符合题意。11.若有以下说明和语句int c45,(*p)5;p=c;能够正确引用 c 数组元素的是_。 A. p+1 B. *(p+1) C. *(p+1)+3 D. *(p0+2)(分数:1.00)A.B.C.D. 解析:解析 p 是一个指针,所以 A 选项错误;同时 p 又是一个数组的指针,所以 B 选项没有指明 p 的空间,错误;C 选项与 B 选项的错误相同。12.下面程序的输出结果是_。void prty(int *x)printf(“%d/n“,+ *x);main() int a=25;prty( A. 23 B. 24 C. 25 D. 26(分数:1

26、.00)A.B.C.D. 解析:13.若有语句:char*line5;,以下叙述中正确的是_。 A. 定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量 B. 定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组 C. 定义 line 是一个指针数组,语句中的*号称为间址运算符 D. 定义 line 是一个指向字符型函数的指针(分数:2.00)A. B.C.D.解析:解析 本题考查指针数组的定义,说明符*line5中,遵照运算符的优先级,的优先级高于*号,因此 line 先与结合,构成一个数组,在它前面的*号则说明了数组 line 是指针类型,它

27、的每个元素都是基类型为 char 的指针。所以选项 A 叙述正确。14.若 a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*a 后,a 的值是 _ 。 A. -3 B. 9 C. -12 D. 6 (分数:1.00)A.B.C. D.解析:解析 C 语言中对赋值运算的运算的运算顺序是自右向左。本题中,计算 a*a 之后,a 的值依然为3,表达式 a*a 的值为 9;a-=9, a=3-9=-6:a+=-6,a=-6+-6=-12。15.有以下程序:main() int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf(“%d,%d/n“,k,

28、m);程序运行后的输出结果是U /U。 A. 0,0 B. 0,1 C. 1,0 D. 1,1(分数:1.00)A.B.C. D.解析:解析 在“|”运算中当其左边的表达式为真,右边的表达式将不再执行。主函数中,“|”左边的表达式 k=(n=ba),“21”为真,所以 n 被赋值为 1,接着 k 被赋值 1,即“|”运算符左边表达式为真,此时不再计算“|”右边的表达式,因此 m 的值没有被改变仍为 0,最后的输出结果 1,0。所以,4 个选项中选项 C 符合题意。16.设有以下定义:typedef unionlong i;int k5;char c,DATE,struct dateint ca

29、t;DATE cow;double dog;too;DATE max;则下列语句的执行结果是 U /Uprintf(“%d“,stzeof(struct date)+sizeof(max); A. 25 B. 30 C. 18 D. 8(分数:1.00)A.B. C.D.解析:17.下列叙述中正确的是_。 A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 D.循环队列中元素的个数是由队头指针和队尾指针共同决定(分数:2.00)A.B.C.D. 解析:解

30、析 循环队列有队头和队尾两个指针,但是循环队列仍是线性结构,因此 A 错误;在循环队列中需要队头与队尾两个指针来共同反映队列中元素的动态变化情况,因此 B 与 C 错误,故本题答案为 D。18.有下列二叉树,对此二叉树中序遍历的结果为U /U。(分数:2.00)A.B. C.D.解析:解析 对二叉树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,注意依旧按照“左于树根结点右子树”的顺序。本题的遍历顺序是这样的: 首先访问左子树;BDEY;在左子树 BDEY 中,也按中序遍历,先访问左子树 DY;在左子树 DY 中,也按中序遍历,先访问左子树,左子树没有,则访

31、问根结点 D,然后访问右子树 Y;接着访问根 B,再访问右于树 E:访问左子树 BDEY 后,接着访问根结点 A,接着访问右子树 CFXZ;右子树 CFXZ 的访问顺序同理可得:FCZX。19.有以下程序:#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,

32、One*World(分数:4.00)A. B.C.D.解析:解析 p 是指向二维字符数组第二行 One*Dream!的数组指针,所以长度是 10,打印输出的也是该字符串。20.算法的空间复杂度是指U /U。 A. 算法程序的长度 B. 算法程序中的指令条数 C. 算法程序所占的存储空间 D. 算法执行过程中所需要的存储空间(分数:2.00)A.B.C.D. 解析:解析 一个算法的空间复杂度,一般是指执行这个算法所需的存储空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要的额外空间。21.下述程序的输出结果是U /U。 #includes

33、tdio.h void main() int a20,*p4; int i,k=0; for(i=0;i20;i+) ai=i; for(i=0;i4;i+) pi= while(n6) n-; printf(“%d“,n); 该程序的输出结果是( )。 A. 987 B. 876 C. 8765 D. 9876(分数:1.00)A.B. C.D.解析:解析 该题目应该根据循环体第一次和最后一次执行时的输出结果来决定哪一项是正确的。第一次进入循环时,n 的值是 9,循环体内,先经过 n-运算,n 的值变为 8,所以第一次的输出值是 8,由此可以排除选项 A)和 D)。由循环条件 n6 可以知道

34、,最后一次循环开始时,n 的值应该为 7,所以最后一次执行循环时,输出为 6,由此可以排除选项 C)。24.在结构化方法中,用数据流程图(DFD) 作为描述工具的软件开发阶段是_。 A. 可行性分析 B. 需求分析 C. 详细设计 D. 程序编码 (分数:1.00)A.B. C.D.解析:解析 软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。25.在下列给出的表达式中,与 while(E)中的(E)不等价的表达式是U /U。 A.(!E=O) B.(E0|E0) C.(E=0) D.(E!=0)(分数:1.00)A.B. C.D

35、.解析:解析 在 while(E)中,表达式 E 可以是 C 语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项 B 中表达武 E0|E0 是一个逻辑表达式。26.若变量 a、i 已正确定义,且 i 已正确赋值,合法的语句是_。 A. a=1 B. +i; C. a=a+=5; D. a=int(i);(分数:2.00)A.B. C.D.解析:解析 选项 D 显然是错的,而选项 A 没有分号结束,不是 C 语句;a+=5 违反了赋值表达式左侧必须为一个变量(不能是常量或表达式)的规定。27.设有以下程序段:int x=0,s=0; while(!x!=0)s+=+x; p

36、rintf(“%d“, s); 则 A. 运行程序段后输出 0 B. 运行程序段后输出 1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次(分数:1.00)A.B. C.D.解析:解析 考查 while 语句的使用,逻辑非运算符和不等于运算符的区别,逻辑非运算符“!”的优先级大于不等于运算符“!=”的优先级。28.以下程序的输出结果是#include int a33=1,2,3,4,5,6,7,8,9,*p;main( ) p=(int *)malloc(sized(int);f(p,a) ;printf(“%d/n“,*p);free(p);f(int *s,int p 3) *

37、s=p11; A. 1 B. 4 C. 7 D. 5(分数:2.00)A.B.C.D. 解析:解析 本题考查了二维数组元素引用的方法。题中用动态存储分配函数 malloc 分配了一个 int 型数据长度大小的内存,然后指针 p 指向了这段内存,函数 f( )中对 p 所指向的数据进行了赋值,p11为二维数组第二行第二列的元素,对应于实参 a 的元素 5,所以输出结果为 5。29.有以下程序#include stdio.hint fun(char s) int n=O;while(*s=9 s+; return (n);main() char s10= 6, 1, *, 4, *, 9, *,

38、0, *;printf(“%d/n“,fun(s); A. 9 B. 61490 C. 61 D. 5(分数:1.00)A.B.C. D.解析:解析 本题考查的知识点是:while 循环的简单应用。 题目 fun()函数中 while 循环的意思是:判断 s 所指内容是否为数字字符,如果是数字字符,则计算表达式 11=10*n+*s-0;。其中。s-0的作用是将相应的数字字符转换为数值,例如字符8减去字符0后,得到的结果就是数值 8 了。n=10*n+的作用是将累计变量 n 中原来内容乘以 10,然后再加上刚转换的数字字符的数值,例如原来 n 的值为 1,*s现在的内容为2,那么执行了 n=1

39、0*n+*s-0,;语句后,n 的值变为 12,如果接下来再来一个8字符,执行 n=10*n+*s-0;语句后,n 的值就是 128 了。故不难看出 fun()函数的作用是“将数字字符串转换为相应的十进制数值,碰到非数字字符时结束”。从主函数中定义的字符数组 s 的初始化内容可以看出,fun()函数返回值应该是 61。故应该选择 C。30.若有定义 int *p,n;则通过语句 scanf 能够正确读入数据的程序段是U /U。 A. p=j4;j+) cij=_; for(i=0;i4;i+) for(j=0;j4;j+) printf(“%d“,cij);(分数:2.00)填空项 1:_ (

40、正确答案:aij+bij)解析:解析 求两个矩阵的和只要将对应元素相加即可。38.以下程序的输出结果是_。 #includestdio.h main() int i; for(i=a;if;i+,i+)printf(“%c“,i-a+A); printf(“/n“); (分数:2.00)填空项 1:_ (正确答案:ACE)解析:解析 在本题中,for 循环体每执行完一次,变量 i 的值自加两次。i 的初值为 a,执行一次循环后变为 c,之后再变成 e,当其变为 q 时,循环条件若不满足,循环终止,故本题共输出 3 个字符。表达式“i-a+A”即表示输出 i 对应的大写字母,结果为 ACE。39

41、.下面程序的运行结果是_。 #define N 10 #define s(x) x*x #define f(x) (x*x) main() int i1,i2; i1=1000/s(N); i2=1000/f(N); printf(“%d %d/n“,i1,i2); (分数:1.00)填空项 1:_ (正确答案:1000 10)解析:解析 先将程序中的宏替换掉,两处的宏替换后分别为 i1=1000/10*10 和 i2=1000/(10*10),即i1=1000,i2=10,所以最后输出的 i1 和 i2 的值分别为 1000 和 10。40.有以下程序,若运行时从键盘输入:18,11回车,则

42、程序的输出结果是_。 main() int a,b; printf(“Enter a,b:“);scanf(“%d,%d“,a,b); while(a!=b) while(ab)a-=b; while(ba)b-=a; printf(“%3d%3d“,a,b); (分数:2.00)填空项 1:_ (正确答案:1 1)解析:41.有以下程序: main() int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%d/n“,x); 执行后输出的结果是U U /U /U。(分数:2.00)填空项 1:_ (正确答案:-4)解析:解

43、析 本题中,n=0,可以判断(!n)为真,执行 x=x-1=2-1=1;m=1,可以判断(m)为真,执行 x=x-2=1-2=-1;进而可以判断(x)为真,执行 x=x-3=-1-3=-4。所以,最后输出为-442.下列程序的输出结果是_。 main() int i; for(i=1;i+1;i+) if(i4) printf(“%d/n“,i); break; printf(“%d/n“,i+);(分数:2.00)填空项 1:_ (正确答案:1 3 5)解析:解析 本题考查了 for 循环语句的使用,break 语句用在本题中是结束 for 循环直接跳出循环体外。当 i=1 时,因为 if 语句条件不满足,所以直接执行 printf(“%d/n“,i+);输出 1,同时 i 自加 1;执行第二次 for 循环时,i=3;同样的 if 语句条件不满足,所以直接执行 printf(“%d/n“,i+);输出3,同时 i 自加 1;执行第三次 for 循环时,i=5,if 语句条件满足,所以执行 printf(“%d/n“,i),输出5,然后 break 语句跳出了 for 循环。43.若 fp 已正确定义为个文件指针,d1.dd 为二进制文件,请填空,以便为“读”而

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