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