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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C 语言笔试-454 及答案解析(总分:106.00,做题时间:90 分钟)一、选择题(总题数:40,分数:72.00)1.算法的时间复杂度是指_。A) 执行算法程序所需要的时间B) 算法程序的长度C) 算法执行过程中所需要的基本运算次数D) 算法程序中的指令条数(分数:2.00)A.B.C.D.2.下列叙述中错误的是( )。A) 线性表是由 n 个元素组成的一个有限序列B) 线性表是一种线性结构C) 线性表的所有结点有且仅有一个前件和后件D) 线性表可以是空表(分数:2.00)A.B.C.D.3.设有下列二叉树:(分数:2.00)A.B.C.D.4.在数据库系统的内部结构体系中,索引属

2、于( )。 A) 模式 B) 内模式 C) 外模式 D) 概念模式(分数:2.00)A.B.C.D.5.某二叉树共有 60 个叶子结点与 50 个度为 1 的结点,则该二叉树中的总结点数为( )。A) 148 B) 169 C) 182 D) 198(分数:2.00)A.B.C.D.6.在软件设计中,不属于过程设计工具的是_。(A) PDL(过程设计语言)(B) PAD 图(C) N-S 图(D) DFD 图(分数:2.00)A.B.C.D.7.下列特征中不是面向对象方法的主要特征的是( )。A) 多态性 B) 继承C) 封装性 D) 模块化(分数:1.00)A.B.C.D.8.数据流图用于抽

3、象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。 A) 控制流 B) 加工 C) 存储文件 D) 源和潭(分数:2.00)A.B.C.D.9.数据库管理系统是A) 操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(分数:2.00)A.B.C.D.10.下列叙述中正确的是A) 数据库系统是一个独立的系统,不需要操作系统的支持B) 数据库技术的根本目标是要解决数据的共享问题C) 数据库管理系统就是数据库系统D) 以上 3 种说法都不对(分数:2.00)A.B.C.D.11.用链表表示线性表的优点是(

4、)。A) 便于随机存取B) 花费的存储空间较顺序存储少C) 便于插入和删除操作D) 数据元素的物理顺序和逻辑顺序相同(分数:2.00)A.B.C.D.12.关系代数运算是以_为基础的运算。A) 关系运算 B) 谓词运算 C) 集合运算 D) 代数运算(分数:2.00)A.B.C.D.13.下列说法不正确的是( )。A) C 语言程序是以函数为基本单位的,整个程序由函数组成B) C 语言程序的一条语句可以写在不同的行上C) C 语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D) C 语言程序的每个语句都以分号结束(分数:2.00)A.B.C.D.14.以下 4 个选项中,不

5、能看成一条语句的是A) ; B) a=5,b=25,c=3.6; C) if(a5); D) if(b!=5)x=2;y=6;(分数:1.00)A.B.C.D.15.下列不正确的转义字符是( )。A) / B) /t C) /n D) 088(分数:1.00)A.B.C.D.16.sizeof(float)是( )。A)一种函数调用 B)一种函数定义 C)一个浮点表达式 D)一个整型表达式(分数:2.00)A.B.C.D.17.下列标识符不是关键字的是( )。A) break B) char C) Switch D) return(分数:2.00)A.B.C.D.18.以下选项中不能作为 C

6、语言合法常量的是_。A) cd B) 0.1e+6 C) “/a“ D) /011(分数:1.00)A.B.C.D.19.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的 switch 语句是_。A) switch(x) B) switch(int)x);case 1.0:printf(“*/n“); case 1:printf(“*/n“);case 2.0:printf(“*/n“); case 2:printf(“*/n“);C) switch(a+b) D) switch(a+b)case 1;printf(“*/n“); case 1:printf(“*/n

7、“);case 2+1:printf(“*/n“); case c:printf(“*/n“);)(分数:2.00)A.B.C.D.20.有以下程序:main()int a,b,d=25;a=d/10%9;b=a(-1);printf(“%d,%d/n“,a,b);程序运行后的输出结果是_。A) 6,1 B) 2,1C) 6,0 D) 2,0(分数:1.00)A.B.C.D.21.若要求从键盘读人含有空格字符的字符串,应该使用函数( )。A) getc() B) gets() C) getchar() D) scanf()(分数:1.00)A.B.C.D.22.下列程序的输出结果是( )。#i

8、ncludestdio.hvoid main()int a=0,b=1,c=2;if(+a0+b0)+C;printf(“%d,%d,%d“,a,b,c);A) 0,1,2 B) 1,2,3 C) 1,1,3 D) 1,2,2(分数:2.00)A.B.C.D.23.有以下程序#include stdio.hmain()int x;scanf(“%d“,if(x=3); elseif(x!=1O) printf(“%d/n“,x);程序运行时,输入的值在_范围才会有输出结果。A) 不等于 10 的整数 B) 大于 3 且不等 10 的整数C) 大于 3 或等于 10 的整数 D) 小于 3 的整

9、数(分数:2.00)A.B.C.D.24.有以下程序:#includestdio.hmain()int c=0,k;for(k=1;k3;k+)switch(k)default:c+=k;case2:c+;break;case4:c+=2;break;printf(“%d/n“,c);程序运行后的输出结果是( )。A3 B5 C7 D9(分数:1.00)A.B.C.D.25.当变量 e 的值不为 2、4、6 时,值也为“真”的表达式是A) (c=2)(c=4)(c=6) B) (c=2else y=1;该语句所表示的含义是( )。(分数:2.00)A.B.C.D.27.若变量已正确定义,下列正

10、确的程序段是( )。A) while(ch=getchar()=/N)putchar(ch); B) while(ch=getchar()=/n)putchar(ch);C) while(ch=getchar()!=/N)putchar(ch); D) while(ch=getchar()!=/n)putchar(ch);(分数:2.00)A.B.C.D.28.有以下程序:main()int a=666, b=888;printf(“% d/n“, a, b);程序运行后的输出结果是_。A) 错误信息 B) 666 C) 888 D) 666,888(分数:2.00)A.B.C.D.29.有以

11、下程序:fun(int x)int p;if(x=0|x=1)return(3);p=x-fun(x-2);return p;main()printf(“%d/n“,fun(7);执行后的输出结果是_。A) 7 B) 3 C) 2 D) 0(分数:2.00)A.B.C.D.30.下列程序中函数 reverse()的功能是将 a 所指数组中的内容进行逆置。#includestdio.hvoid reverse(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 b10=1,2,3,4,5,6,7,8,9,1

12、0;int i,s=0;reverse(b,10);for(i=0;i3;i+)s+=bi;printf(“%d/n“,s);程序运行后的输出结果是( )。A) 27 B) 6 C) 25 D) 30(分数:2.00)A.B.C.D.31.下列叙述中正确的是( )。A) break 语句只能用于 switch 语句体中B) continue 语句的作用是使程序的执行流程跳出包含它的所有循环C) break 语句只能用在循环体内和 switch 语句体内D) 在循环体内使用 break 语句和 continue 语句的作用相同(分数:2.00)A.B.C.D.32.以下程序段的输出结果是( )。

13、 #includestdio.h main() char p4=“ABC“,“DEF“,“GHI“; int i; for(i=0;i3;i+) puts(pi); A) A B C B) A D G C) A B C D E F G H I D) A B C(分数:2.00)A.B.C.D.33.有以下程序:main()int a44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,),i,j,k,t;for(i=0;i4;i+)for(j=0;j3;j+)for(k=j+1;k4;k+)if(ajiaki)t=aji;aji=aki;aki=t;/*按列排序*/for(i=

14、0;i4;i+)printf(“%d,“,aii);程序运行后的输出结果是_。A) 1,6,5,7, B) 8,7,3,1, C) 4,7,5,2, D) 1,6,2,1,(分数:2.00)A.B.C.D.34.有以下程序:#includestring.hmain()char p20=a,d,c,d,q=“abc“,r=“abcde“strcat(p,r);strcpy(p+strlen(q),q);printf(“%d/n“,sizeof(p);程序运行后的输出结果是_。A) 9 B) 6C) 11 D) 7(分数:2.00)A.B.C.D.35.有下列函数:int fun(char*s)c

15、har*t=s;while(*t+);return(t-s);该函数的功能是( )。A) 比较两个字符串的大小B) 计算 s 所指字符串占用内存字节的个数C) 计算 s 所指字符串的长度D) 将 s 所指字符串复制到字符串 t 中(分数:2.00)A.B.C.D.36.下列程序执行的输出结果是( )。#includestdio.hmain()char a24;strcpy(a,“are“);strcpy(a1,“you“);a03=printf(“%s/n“,a);A) arei1=f(8)/f(4); i2=f(4+4)/f(2+2);printf(“% d, % d/n“, i1, i2)

16、;程序运行后的输出结果是_。A) 64, 28 B) 4, 4 C) 4, 3 D) 64, 64(分数:2.00)A.B.C.D.39.标准库函数 fgets(s,n,file)的功能是( )。A) 从文件 file 中读取长度为 n 的字符串存入字符数组 s 中B) 从文件 file 中读取长度不超过 n-1 个字符的字符串放到字符数组 s 中C) 从文件 file 中读取 n 个字符串存入字符数组 s 中D) 从文件 file 中读取长度为 n-1 个字符的字符串存入字符数组 s 中(分数:2.00)A.B.C.D.40.有以下程序:#include stdio.hmain()int a

17、33,*p,i;p=for(i=0;i9;i+) pi=i+1;printf(“%d/n“,a12);程序运行后的输出结果是( )。A) 3 B) 6 C) 9 D) 2(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:34.00)41.数据库系统的三级模式分别为 1 模式、内模式与外模式。(分数:2.00)填空项 1:_42.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是 1。(分数:2.00)填空项 1:_43.块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 1 的作用是将测试数据传送给被测试的模块,并显示被测试模块所

18、产生的结果。(分数:2.00)填空项 1:_44.在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。常见的数据模型有 3种,它们分别是层次模型、网状模型和 1。(分数:2.00)填空项 1:_45.设变量 a 和 b 已正确定义并赋初值。请写出与 a=a+b 等价的赋值表达式U /U。(分数:2.00)填空项 1:_46.阅读下面程序,则执行后的输出结果是_。#include“stdio.h“main()int x,y,z;x=1;y=2;z=3;if(xy)if(xz)printf(“%d“,x);else printf(“%d“,y);printf(“%d/n“,z);

19、(分数:2.00)填空项 1:_以下程序的功能是从键盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。请填空。main( )float x,amax,amin;scanf(“%f“, amin=x:while(U /U)if(xamax) amax=X;elseifU /U amin=X;else scanf(“%f“,scanf(“%2d%2d“,a,b);printf(“%d %d/n“, a,b);(分数:2.00)填空项 1:_48.有以下程序#includestdio.hmain()char c1,c2;scanf(“%c“,*c1);while(c165|c190)

20、 scanf(“%c“,c2=c1+32;printf(“%c,%c/n“,c1,c2);程序运行输入 6 回车后,自否输出结果、结束运行(请回答能或不能)U /U。(分数:2.00)填空项 1:_49.下面程序的功能是:计算 120 之间的奇数之和与偶数之和,请填空使程序功能完整。#includestdio.hmain()int a=0,b=0,c=0,i;for(i=0;i=20;i+=2)a+=i;_;c+=b;printf(“偶数之和=%d/n“,a);printf(“奇数之和=%d/n“,c-21);(分数:2.00)填空项 1:_以下程序的功能是输出如下形式的方阵:13 14 15

21、 169 10 11 125 6 7 81 2 3 4请填空。main()int i,j,x;for(j=4; jU /U; j-)for(i=1; i=4; i+)x=(j-1)*4 +U /U;printf(“M“,x);printf(“/n“);(分数:4.00)填空项 1:_填空项 1:_50.函数调用语句:“fgets(buf,n,fp);”从中指向的文件中读入 n 个字符放到 buf 字符数组中,函数返回值为 1。(分数:2.00)填空项 1:_51.以下程序是求矩阵 a、b 的和,结果存入矩阵 c 中,请填空。 #includestdio.h main() int a44=1,2

22、,6,7,0,4,2,-8,1,4,5,2,2,4,6,8; int b44=-4,0,7,9,2,-7,7,4),6,9,0,1),8,8,6,5); int i,j,c44; for(i=0;i4;i+) for(j=0;j4;j+) cij=_; for(i=0;i4;i+) for(j=0;j4;j+) printf(“%d“,cij); (分数:2.00)填空项 1:_52.以下程序中函数 huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda,请填空

23、。#includestring.hchar*huiwen(char*str)char*p1,*p2;int i,t=0;p1=str;p2=_;for(i=0;i=strlen(str)/2;i+)if(*p1+!=*p2-)t=1;break;if(t=0)return(“yes!“);else return(“no!“);main()char str50;printf(“Input:“);scanf(“%s“,str);printf(“%s/n“,huiwen(str);(分数:2.00)填空项 1:_53.下列程序的运行结果是_。#define POW(r)(r)*(r)main()in

24、t x=3,y=2,t;t=POW(x+y);printf(“%d/n“,t);(分数:2.00)填空项 1:_二级 C 语言笔试-454 答案解析(总分:106.00,做题时间:90 分钟)一、选择题(总题数:40,分数:72.00)1.算法的时间复杂度是指_。A) 执行算法程序所需要的时间B) 算法程序的长度C) 算法执行过程中所需要的基本运算次数D) 算法程序中的指令条数(分数:2.00)A.B.C. D.解析:评析 所谓算法的时间复杂度,是指执行算法所需要的计算工作量。2.下列叙述中错误的是( )。A) 线性表是由 n 个元素组成的一个有限序列B) 线性表是一种线性结构C) 线性表的所

25、有结点有且仅有一个前件和后件D) 线性表可以是空表(分数:2.00)A.B.C. D.解析:解析 线性表是一种线性结构,由 n(n0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项 C)是错误的。3.设有下列二叉树:(分数:2.00)A.B. C.D.解析:命题目的 本题考查二叉树的遍历。解题要点 所谓二叉树的前序遍历(DLR)是指在访问根结点、遍历左子树与遍历右子树这 3 者中,首先访问根结点,然后遍历左子树,最后遍历右子树,并且,在遍历左右子树时,上述规则同样适用,即“根-左-右”,故该二叉树的前序遍历结

26、果为“ATBZXCYP”。考点链接 对于本题,若使用后序遍历和中序遍历的结果分别为“ZBTYCPXA”和“TZBACYXP”。4.在数据库系统的内部结构体系中,索引属于( )。 A) 模式 B) 内模式 C) 外模式 D) 概念模式(分数:2.00)A.B. C.D.解析:解析 内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及 hash 等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。5.某二叉树共有 60 个叶子结点与 50 个度为 1 的结点,则该二叉树中的总结点数为( )。A) 1

27、48 B) 169 C) 182 D) 198(分数:2.00)A.B. C.D.解析:解析 叶子结点总是比度为 2 的结点多一个。所以,具有 60 个叶子结点的二叉树有 59 个度为 2的结点。总结点数=60 个叶子结点+59 个度为 2 的结点+50 个度为 1 的结点169 个结点6.在软件设计中,不属于过程设计工具的是_。(A) PDL(过程设计语言)(B) PAD 图(C) N-S 图(D) DFD 图(分数:2.00)A.B.C.D. 解析:7.下列特征中不是面向对象方法的主要特征的是( )。A) 多态性 B) 继承C) 封装性 D) 模块化(分数:1.00)A.B.C.D. 解析

28、:解析面向对象设计方法与面向过程设计方法有本质的不同,其基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:分类性、多态性、封装性、模块独立性、继承和多态性等。模块化是结构化程序设计的特点。8.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。 A) 控制流 B) 加工 C) 存储文件 D) 源和潭(分数:2.00)A. B.C.D.解析:解析 数据流图用于抽象描述一个软件的逻辑模型,它由一些特定的图符构成,包括 4 个方面,即加工、数据流、存储文件、源和潭。9.数据库管理系统是A) 操作系统的一

29、部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(分数:2.00)A.B. C.D.解析:解析 数据库管理系统是指位于用户与操作系统之间的数据管理软件。数据库管理系统是为数据库建立、使用和维护而配置的软件。10.下列叙述中正确的是A) 数据库系统是一个独立的系统,不需要操作系统的支持B) 数据库技术的根本目标是要解决数据的共享问题C) 数据库管理系统就是数据库系统D) 以上 3 种说法都不对(分数:2.00)A.B. C.D.解析:解析 数据库技术的根本目的是要解决数据的共享问题;数据库需要操作系统的支持;数据库管理系统(Database Management Syst

30、em,DBMS)对数据库进行统一的管理和控制,以保证数据库的安全性和完整性,它是数据库系统的核心软件。11.用链表表示线性表的优点是( )。A) 便于随机存取B) 花费的存储空间较顺序存储少C) 便于插入和删除操作D) 数据元素的物理顺序和逻辑顺序相同(分数:2.00)A.B.C. D.解析:解析 在链表中因为除了存放数据元素之外,还要存放指针,所以链表花费的存储空间要比顺序表还要多。在插入和删除数据元素时,只需要移动相应的记录指针即可。在链表中数据的物理结构与逻辑结构不一定相同,因为是靠指针来实现对数据的指定的,所以不能进行随机存取。12.关系代数运算是以_为基础的运算。A) 关系运算 B)

31、 谓词运算 C) 集合运算 D) 代数运算(分数:2.00)A.B.C. D.解析:评析 关系代数运算是以关系代数作为运算对象的组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包括垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。13.下列说法不正确的是( )。A) C 语言程序是以函数为基本单位的,整个程序由函数组成B) C 语言程序的一条语句可以写在不同的行上C) C 语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D) C 语言程序的每个语句都以分号结束(分数:2.00)A.B.C. D.解析:解析 本题涉及 C 语言的 3 个基本知识点:C 语言

32、的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数;C 语言规定每个语句以分号结束,其书写格式是自由的,一条语句可以写在不同的行上,或者一行也可以写多条语句;注释行虽然对程序的运行不起作用,但是它可以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。14.以下 4 个选项中,不能看成一条语句的是A) ; B) a=5,b=25,c=3.6; C) if(a5); D) if(b!=5)x=2;y=6;(分数:1.00)A.B.C.D. 解析:解析 选项 D) 为两条语句。15.下列不正确的转义字符是( )。A) / B) /t

33、 C) /n D) 088(分数:1.00)A.B.C.D. 解析:解析 /是反斜线转义字符:/t是水平跳格转义字符;/n饭是换行转义字符;C 语言中没有规定088为转义字符。16.sizeof(float)是( )。A)一种函数调用 B)一种函数定义 C)一个浮点表达式 D)一个整型表达式(分数:2.00)A.B.C.D. 解析:解析 sizeof(float)是 C 语言内部规定的用于计算单精度型变量(float)在计算机的内存中所占用的字节数量的函数,返回一个整数值。17.下列标识符不是关键字的是( )。A) break B) char C) Switch D) return(分数:2.

34、00)A.B.C. D.解析:解析 break、char、return、switch 都是 C 语言中的关键字,switch 不是。因为 C 语言区分字母的大小写。18.以下选项中不能作为 C 语言合法常量的是_。A) cd B) 0.1e+6 C) “/a“ D) /011(分数:1.00)A. B.C.D.解析:评析 C 语言时常量分为整型常量、实型常量和字符型常量。用单引号(即撇号)括起来一个字符称为字符常量,由于字符常量只能包含一个字符,因此选项 A 错误;转义字符常量是将反斜杠(/)后面的字符转成另外的意义,选项 D 表示了个 ASCII 码为 011 的八进制数;选项 B 是用指数

35、形式表示的实型常量。用“e”或“E”后的个整数表示以 10 为底的幂数,以这种形式表示的实型常量需注意字母 e(或 E)之前必须有数字,且 e 后面的指数必须为整数;用一对双引号括起来的字符序列称为字符串常量,选项 C就为个正确的字符串常量。19.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的 switch 语句是_。A) switch(x) B) switch(int)x);case 1.0:printf(“*/n“); case 1:printf(“*/n“);case 2.0:printf(“*/n“); case 2:printf(“*/n“);C) swi

36、tch(a+b) D) switch(a+b)case 1;printf(“*/n“); case 1:printf(“*/n“);case 2+1:printf(“*/n“); case c:printf(“*/n“);)(分数:2.00)A.B.C. D.解析:解析 switch-case 结构中,case 后面必须是整数或者字符常量。因此选项 A、D 都错。而 B 中switch 后面不能有分号。注意,(2+1)是一个常量。20.有以下程序:main()int a,b,d=25;a=d/10%9;b=a(-1);printf(“%d,%d/n“,a,b);程序运行后的输出结果是_。A)

37、6,1 B) 2,1C) 6,0 D) 2,0(分数:1.00)A.B. C.D.解析:解析 本题的考点是关于 C 语言的整数运算和逻辑运算。由于 d 初值为 25,“a=d/10%9 中d/10”整除结果是 2,再用 9 求余结果仍是 2,因此 a 的值为 2。而对于“b=a(-1)”,由于 a 值为 2不为 0,-1 也不为 0,因此“a(-1)”结果为真,b 值是 1。输出结果应该是 2、1。正确选项是 B。21.若要求从键盘读人含有空格字符的字符串,应该使用函数( )。A) getc() B) gets() C) getchar() D) scanf()(分数:1.00)A.B. C.

38、D.解析:解析 gete()函数是从文件指针指定的文件中读入一个字符,并把它作为函数值返回; getchar()函数是从终端(或系统隐含指定的输入设备)输入一个字符,getc()和 getehar()都不能读字符串(可以与循环语句结合输入一个字符串);seanf()函数不能输入带空格的字符串; gets()函数可以从键盘读入空格字符。22.下列程序的输出结果是( )。#includestdio.hvoid main()int a=0,b=1,c=2;if(+a0+b0)+C;printf(“%d,%d,%d“,a,b,c);A) 0,1,2 B) 1,2,3 C) 1,1,3 D) 1,2,2

39、(分数:2.00)A.B.C. D.解析:解析 本题考查汀语句。先判断 if 语句的条件是否成立,+a=10,此条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算符的真假,即不进行+b 操作,就可以直接得出整个表达式的值为逻辑 1,执行下列的+c。23.有以下程序#include stdio.hmain()int x;scanf(“%d“,if(x=3); elseif(x!=1O) printf(“%d/n“,x);程序运行时,输入的值在_范围才会有输出结果。A) 不等于 10 的整数 B) 大于 3 且不等 10 的整数C) 大于 3 或等于 10

40、的整数 D) 小于 3 的整数(分数:2.00)A.B. C.D.解析:评析 本题考查的是 if-else 语句的执行过程当条件表达式 x=3 时,由于 if 语句末尾直接是分号,没有语句,因此没有语句执行;否则,即当条件表达式 x3 时转向 else 语句,如果 x!=10 执行printf 语句,因此输入的 x 的范围应该是大于 3 且不等于 10 的整数。24.有以下程序:#includestdio.hmain()int c=0,k;for(k=1;k3;k+)switch(k)default:c+=k;case2:c+;break;case4:c+=2;break;printf(“%d

41、/n“,c);程序运行后的输出结果是( )。A3 B5 C7 D9(分数:1.00)A. B.C.D.解析:解析 本题考查了 switch 开关语句,当表达式与某一个 caset 后面的常量表达式相等时,就执行case 后面的语句,若没有匹配,则执行 default 后面的语句,各个 case 和 default 的出现次序不影响结果,执行完一个 case 语句,流程就转移到下一个 case 并继续执行。因此在 case 的分支后,加 break 语句来跳出 switch 语句。当 k=1 时,switch 语句中没有相对应的 case,所以执行 default 语句,此时 c为 1,没有遇到

42、 break 语句,则执行 case2,c+,此时 c 的值在下次使用前加 1,等于 2,break 跳出。继续 for 循环,当 k=2 时,执行 case2,c 再次自加值为 3,遇到 break 跳出。当 k=3 时,不符合循环,则输出 c 的结果,答案为 3。25.当变量 e 的值不为 2、4、6 时,值也为“真”的表达式是A) (c=2)(c=4)(c=6) B) (c=2else y=1;该语句所表示的含义是( )。(分数:2.00)A.B.C. D.解析:解析 语句 if(c=d)y=0;else y=1;是 if(aB)语句的一个子句。所以整个 C 语句表达式的意思是:在 ab

43、 的情况下,如果 c=d 则 y=0,否则 y=1。所以,选项 C)为正确答案。27.若变量已正确定义,下列正确的程序段是( )。A) while(ch=getchar()=/N)putchar(ch); B) while(ch=getchar()=/n)putchar(ch);C) while(ch=getchar()!=/N)putchar(ch); D) while(ch=getchar()!=/n)putchar(ch);(分数:2.00)A.B.C.D. 解析:解析 本题考查两个知识点:C 语言用/n这个字符常量表示换行:getchar 函数的作用是从终端输入一个字符,当遇到换行时结

44、束输入。28.有以下程序:main()int a=666, b=888;printf(“% d/n“, a, b);程序运行后的输出结果是_。A) 错误信息 B) 666 C) 888 D) 666,888(分数:2.00)A.B. C.D.解析:解析 printf 如果实参个数多余,不算错,只输出前面的正确参数。29.有以下程序:fun(int x)int p;if(x=0|x=1)return(3);p=x-fun(x-2);return p;main()printf(“%d/n“,fun(7);执行后的输出结果是_。A) 7 B) 3 C) 2 D) 0(分数:2.00)A.B.C. D

45、.解析:解析 函数 fun 是一个递归调用函数,首先主函数将实参 7 传递给 fun 函数中的形参 x,由于 x=7不满足 if 语句的条件,则执行下面的“p=x-fun(x-2);”语句,此语句继续调用本身,直到当 x=1 时,返回函数值 3 代入到调用它的表达式中,以此类推,最终 p 的值为 2。30.下列程序中函数 reverse()的功能是将 a 所指数组中的内容进行逆置。#includestdio.hvoid reverse(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 b10=1,2,3

46、,4,5,6,7,8,9,10;int i,s=0;reverse(b,10);for(i=0;i3;i+)s+=bi;printf(“%d/n“,s);程序运行后的输出结果是( )。A) 27 B) 6 C) 25 D) 30(分数:2.00)A. B.C.D.解析:解析 本题考查函数调用时的参数传递。函数 reverse 将数组 b 进行了逆置,此时的 b10=10,9,8,7,6,5,4,3,2,1,后面 for 语句的功能是将 b 中的前 3 个数累加,将结果放在 s 中,最后将 s输出,结果 s=10+9+8=27。31.下列叙述中正确的是( )。A) break 语句只能用于 sw

47、itch 语句体中B) continue 语句的作用是使程序的执行流程跳出包含它的所有循环C) break 语句只能用在循环体内和 switch 语句体内D) 在循环体内使用 break 语句和 continue 语句的作用相同(分数:2.00)A.B.C. D.解析:解析 只能在循环体内和 switch 语句体内使用 break 语句当 break 出现在循环体的 switch 语句体内时,其作用只是跳出该 switch 语句体,并不能中止循环体的执行。若想强行中止循环体的执行,可以在循环体中,但并不在 switch 语句中设置 break 语句,满足某种条件则跳出本层循环体。32.以下程序

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