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

上传人:syndromehi216 文档编号:1326219 上传时间:2019-10-17 格式:DOC 页数:31 大小:93KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试-410及答案解析.doc_第1页
第1页 / 共31页
【计算机类职业资格】二级C语言笔试-410及答案解析.doc_第2页
第2页 / 共31页
【计算机类职业资格】二级C语言笔试-410及答案解析.doc_第3页
第3页 / 共31页
【计算机类职业资格】二级C语言笔试-410及答案解析.doc_第4页
第4页 / 共31页
【计算机类职业资格】二级C语言笔试-410及答案解析.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、二级 C 语言笔试-410 及答案解析(总分:92.50,做题时间:90 分钟)一、选择题(总题数:40,分数:61.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) 二叉树(分数:1.00)A.B.C.D.4.两个或两个以上模块之间关

2、联的紧密程度称为_。A) 耦合度 B) 内聚度 C) 复杂度 D) 数据传输特性(分数:2.00)A.B.C.D.5.下列对于线性链表的描述中正确的是_。A) 存储空间不一定连续,且各元素的存储顺序是任意的B) 存储空间不一定连续,且前件元素一定存储在后件元素的前面C) 存储空间必须连续,且各前件元素一定存储在后件元素的前面D) 存储空间必须连续,且各元素的存储顺序是任意的(分数:1.00)A.B.C.D.6.数据流图中带有箭头的线段表示的是_。A) 控制流 B) 事件驱动 C) 模块调用 D) 数据流(分数:2.00)A.B.C.D.7.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比

3、较的次数为( )。A) 125 B) n/2 C) n D) n+1(分数:2.00)A.B.C.D.8.某二叉树共有 60 个叶子结点与 50 个度为 1 的结点,则该二叉树中的总结点数为( )。A) 148 B) 169 C) 182 D) 198(分数:2.00)A.B.C.D.9.下列叙述中正确的是A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 上述 3 种说法都不对(分数:2.00)A.B.C.D.10.在数据管理技术发展的三个阶段中,数据共享最好的是( )。A人工管理阶段

4、B文件系统阶段C数据库系统阶段 D三个阶段相同(分数:1.00)A.B.C.D.11.对关系 S 和只进行集合运算,结果中既包含 S 中的所有元组也包含只中的所有元组,这样的集合运算称为( )。A) 并运算 B) 交运算 C) 差运算 D) 积运算(分数:2.00)A.B.C.D.12.下列有关数据库的描述,正确的是A) 数据处理是将信息转化为数据的过程B) 数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C) 关系中的每一列称为元组,一个元组就是一个字段D) 如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(分数:2.00)A.

5、B.C.D.13.可以在 C 语言程序中用做用户标识符的一组标识符是( )。A) void B) aa123 abcBBN casC) as+b3 D) 6f-123 DoIf SIG(分数:1.00)A.B.C.D.14.有以下程序_。Main()int x,y,z;x=y=1;z=x+,y+,+y;printf(“%d,%d,%d/n“,x,y,z);程序运行后的输出结果是_。(A) 2,3,3(B) 2,3,2(C) 2,3,1(D) 2,2,1(分数:1.00)A.B.C.D.15.以下选项中,能用作数据常量的是_。A) 0115 B) 0118 C) 1.5e1.5 D) 115L(

6、分数:2.00)A.B.C.D.16.在 C 语言中,运算对象必须是整型数的运算符是A) % B) / C) %和/ D) *(分数:1.00)A.B.C.D.17.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A) 函数的实参和其对应的形参共占同一存储单元 B) 形参只是形式上的存在,不占用具体存储单元C) 同名的实参和形参占同一存储单元 D) 函数的形参和实参分别占用不同的存储单元(分数:1.00)A.B.C.D.18.下列变量声明合法的是( )。A) short.a=1.4e-1; B) double b=l+3e2.8;C) long do=0xfdaL; D) f

7、loat2_aaa=1e-3;(分数:2.00)A.B.C.D.19.若有“double a;“,则正确的输入语句是( )。A) scanf(“%1f“,a); B) scanf(“%f“,C) scanf(“%1f“,(分数:1.00)A.B.C.D.20.已知字符 a 的 ASCII 十进制代码为 97,则执行下述程序段后的输出结果是char ch;int k;ch=a;k=12;printf(“%c,%d,“,ch,ch,k);printf(“k=%d/n“,k);A) 因变量类型与格式描述符的类型不匹配输出无定值B) 输出项与格式描述符个数不符,输出为零值或不定值C) a,97,12k

8、=12D) a,97,k=12(分数:1.00)A.B.C.D.21.以下选项中与 if(a=1) a=b; else a+;语句功能不同的 switch 语句是A) switch(a)case 1: a=b; break;default:a+;B) switch(a=1)case 0: a=b; break;case 1:a+;C) switch(a)default: a+; break;case 1:a=b;D) switch(a=1)case 1:a=b; break;case 0:a+;(分数:1.00)A.B.C.D.22.为了避免在嵌套的条件语句 ifelse 中产生二义性,C 语

9、言规定,else 子句总是与( )配对。A) 缩排位置相同 if B) 其前面最近的 ifC) 其后面最近的 if D) 同一行上的 if(分数:2.00)A.B.C.D.23.有以下程序:main()int i,j,x=0;for(i=0;i2;i+)x+;for(j=0;j=3;j+)if(j=0;j=3;j+)x+; x+; printf(“x=%d/n“,x);程序执行后的输出结果是( )。Ax=4 Bx=8 Cx=6 Dx=12(分数:1.00)A.B.C.D.24.有下列程序:main()int x=5;doprintf(“%d“,x-=4);while(!(-X);程序的输出结果

10、是( )。A) 1 B) 20 C) 1-4 D) 死循环(分数:2.00)A.B.C.D.25.有下列程序段:struct stint x;int *y;*pt;int a=1,2,b=3,4;struct st c2=10,a,20,b;pt=c;下列选项中表达式的值为 11 的是( )。A) *pt-y B) pt-x C) +pt-x D) (pt+)-X(分数:1.00)A.B.C.D.26.以下错误的定义语句是( )。Aint x3=(0,1,1,2,3);Bint x43=1,2,3,1,2,3,1,2,3,1,2,3);Cint x4=1,2,3,1,2,3,12,3,1,2,

11、3);Dint x3=1,2,3,4;(分数:1.00)A.B.C.D.27.在嵌套使用 if 语句时,C 语言规定 else 总是( )。A) 和之前与其具有相同缩进位置的 if 配对B) 和之前与其最近的 if 配对C) 和之前与其最近的且不带 else 的 if 配对D) 和之前的第一个 if 配对(分数:1.00)A.B.C.D.28.有以下程序(说明:字母 A 的 ASCII 码值是 65) #includestdio.hvoid fun(char *s)while(*s)if(*s%2) printf (“%c“, *s);s+;main()char a=“BYTE“;fun(a)

12、; printf(“/n“);程序运行后的输出结果是_。A) BY B) BT C) YT D) YE(分数:1.00)A.B.C.D.29.以下程序的输出结果是( )。main()int x=0.5;char z=a;printf(“%d/n“,(x A) 1,2,3,4,5,6,7,8,9,0 B) 2,1,4,3,6,5,8,7,0,9C) 0,9,8,7,6,5,4,3,2,1 D) 0,1,2,3,4,5,6,7,8,9(分数:2.00)A.B.C.D.34.下列程序的输出结果是( )。#includestdio.hint fun(int x)int p;if(x=0x=1) ret

13、urn 3;elsep=x-fun(x-2) ;return p;void main()printf(“/n%d“,fun(5) );A) 5 B) 3 C) 7 D) 1(分数:1.00)A.B.C.D.35.若已定义: int a=0,1,2,3,4,5,6,7,8,9,*p=a,i; 其中 0i9,则对 a 数组元素不正确的引用是( )。 A) ap-a B) *( char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(“%d%d%3.1f%3.1f/n“,a,c,f,x);程序运行后的输出结果是( )。A) 1 65 1 6.

14、5 B) 1 65 1.5 6.5 C) 1 65 1.0 6.5 D) 2 65 1.5 6.5(分数:1.00)A.B.C.D.37.以下关于 typedef 的叙述错误的是_。(A) 用 typedef 可以增加新类型(B) typedef 只是将已存在的类型用一个新的名字来代表(C) 用 typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名(D) 用 typedef 为类型说明一个新名,通常可以增加程序的可读性(分数:2.00)A.B.C.D.38.#define 能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5 的值的函数 f,正确的宏定义语句为( )

15、。A) #define f(x)5*x*x+5*x+5 B) #define f5*x*x+5*x+5C) #define f(a)(5*a*a+5*a+5) D) #define(5*x*x+5*x+5)fx)(分数: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 个字符的字符串存入字符数组

16、 s 中(分数:2.00)A.B.C.D.40.设有以下语句:char str412=“aaa“,“bbbb“,“ccccc“,“dddddd“,*strp4;int i;for(i=0;i4;i+) strpi=stri;下列选项不是对字符正确引用的是(其中 0k4)( )。A) strp B) strkk C) * strpk D) * strp(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:31.50)41.测试用例包括输入值集和 1 值集。(分数:2.00)填空项 1:_42.数据结构分为逻辑结构与存储结构,线性链表属于 1。(分数:2.00)填空项 1:_43.模块

17、测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 1 的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(分数:2.00)填空项 1:_44.在面向对象方法中,类之间共享属性和方法的机制称为 1。(分数:2.00)填空项 1:_45.在链表的运算过程中,能够使空表与非空表的运算统一的结构是 1。(分数:2.00)填空项 1:_46.已有定义:char c= ;int a=1,b;(此处 c 的初值为空格字符),执行 b=!c,若要通过 at=a;a=b;b=t;main( )int i=3,j=5,*p=i,*q=j;swap(p,q); pr

18、intf(“%d %d/n“,*p,*q);(分数:2.00)填空项 1:_以下程序按下面指定的数据给 x 数组的下三角置数,并按如下形式输出:请填空。43 72 6 91 5 8 10#includestdio.hmain( )int x44,n=0,i,j;for(j=0;j4;j+)for(i=3;i=j;U /U)n+;xij=U /U;for(i=0;i4;i+)for(j=0;j=i;j+) printf(“%3d“,xij);printf(“/n“);(分数:4.00)填空项 1:_填空项 1:_50.有以下程序:int sub(int n) return(n/10+n%10);

19、 main()int x,y;scanf(“%d“, char nam10; char sex;SS;int fun(SS person)int i, n=0;for(i=0; iN;NBSP;i+)NBSP;if(_=M ) n+;return n;main()SS WN=1, “AA“,F,2,“BB“,M,3,“CC“,M; int n;n=fun(W); printf(“n=%d/n“,n);(分数:2.00)填空项 1:_53.以下程序中函数 huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出,所谓

20、回文即正向与反向的拼写都一样,例如:adgda,请填空。#include char *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:_54.下列程序从名为 filea.da

21、t 的文本文件中逐个读入字符并显示在屏幕上。请填空。#include stdio.hmain()FILE *fp; char ch;fp = fopen(U /U);ch = fgetc(fp);while(!feof(fp) putchar(ch); ch=fgetc(fp); putchar(“/n“); fclose(fp);(分数:1.50)填空项 1:_二级 C 语言笔试-410 答案解析(总分:92.50,做题时间:90 分钟)一、选择题(总题数:40,分数:61.00)1.数据的存储结构是指( )。A) 数据所占的存储空间B) 数据的逻辑结构在计算机中的存放形式C) 数据在计算机

22、中的顺序存储方式D) 存储在计算机外存中的数据(分数:2.00)A.B. C.D.解析:解析 数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式。数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。2.下列数据结构中,属于非线性的是( )。A) 线性表 B) 队列 C) 树 D) 栈(分数:2.00)A.B.C. D.解析:解析 线性结构,是指数据元素只有一个直接前件元素和直接后件元素。线性表是线性结构。栈和队列是指对插入和删除操作有特殊要求的线性表,树是非线性结构。3.按照“先进后出”原则组织数据的数据结构是( )。A) 队列 B) 栈 C) 双向链表 D) 二

23、叉树(分数:1.00)A.B. C.D.解析:解析 栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,不是最后被删除的,是按先进后出的原则组织数据的。4.两个或两个以上模块之间关联的紧密程度称为_。A) 耦合度 B) 内聚度 C) 复杂度 D) 数据传输特性(分数:2.00)A. B.C.D.解析:解析 耦合度是模块间互相连接的紧密程度。5.下列对于线性链表的描述中正确的是_。A) 存储空间不一定连续,且各元素的存储顺序是任意的B) 存储空间不一定连续,且前件元素一定存储在后件元素的前面

24、C) 存储空间必须连续,且各前件元素一定存储在后件元素的前面D) 存储空间必须连续,且各元素的存储顺序是任意的(分数:1.00)A. B.C.D.解析:解析 线性链表是链式存储结构。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。6.数据流图中带有箭头的线段表示的是_。A) 控制流 B) 事件驱动 C) 模块调用 D) 数据流(分数:2.00)A.B.C.D. 解析:知识点 数据流图的表示评析 数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流

25、图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素与说明如下:加工(转换):输入数据经加工变换产生输出。数据流:沿箭头方向传送数据的通道,一般在旁边标注数据流名。存储文件(数据源):表示处理过程中存放各种数据的文件。7.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。A) 125 B) n/2 C) n D) n+1(分数:2.00)A.B.C. D.解析:解析 对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元

26、素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为 n。8.某二叉树共有 60 个叶子结点与 50 个度为 1 的结点,则该二叉树中的总结点数为( )。A) 148 B) 169 C) 182 D) 198(分数:2.00)A.B. C.D.解析:解析 叶子结点总是比度为 2 的结点多一个。所以,具有 60 个叶子结点的二叉树有 59 个度为 2的结点。总结点数=60 个叶子结点+59 个度为 2 的结点+50 个度为 1 的结点=169 个结点。9.下列叙述中正确的是A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度

27、必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 上述 3 种说法都不对(分数:2.00)A.B.C.D. 解析:解析 时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用的存储空间大小的度量。人们都希望选择一个既节省存储空间、又节省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说,时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项 A、B、C 的说法都是错误的。10.在数

28、据管理技术发展的三个阶段中,数据共享最好的是( )。A人工管理阶段 B文件系统阶段C数据库系统阶段 D三个阶段相同(分数:1.00)A.B.C. D.解析:解析 数据管理技术分为:人工管理阶段、文件系统阶段和数据库系统阶段三个阶段。人工管理阶段无共享,冗余度大;文件管理阶段共享性差,冗余度大;数据库系统管理阶段共享性大,冗余度小。11.对关系 S 和只进行集合运算,结果中既包含 S 中的所有元组也包含只中的所有元组,这样的集合运算称为( )。A) 并运算 B) 交运算 C) 差运算 D) 积运算(分数:2.00)A. B.C.D.解析:解析 关系的并运算是指,由结构相同的两个关系合并,形成一个

29、新的关系,其中包含两个关系中的所有元组。12.下列有关数据库的描述,正确的是A) 数据处理是将信息转化为数据的过程B) 数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C) 关系中的每一列称为元组,一个元组就是一个字段D) 如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(分数:2.00)A.B.C.D. 解析:解析 数据处理是指将数据转换成信息的过程,故选项 A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项 B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存

30、储文件中的字段,故选项 C)叙述错误。13.可以在 C 语言程序中用做用户标识符的一组标识符是( )。A) void B) aa123 abcBBN casC) as+b3 D) 6f-123 DoIf SIG(分数:1.00)A.B. C.D.解析:解析 C 语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。14.有以下程序_。Main()int x,y,z;x=y=1;z=x+,y+,+y;printf(“%d,%d,%d/n“,x,y,z);程序运行后的输出结果是_。(A) 2,3,3(B) 2,3,2(C) 2,3,1(D) 2,2,1(分数:1.00

31、)A.B.C. D.解析:15.以下选项中,能用作数据常量的是_。A) 0115 B) 0118 C) 1.5e1.5 D) 115L(分数:2.00)A.B.C.D. 解析:评析 在 C 语言中,有整型常量、实型常量、字符常量和字符串常量等类型。整型常量和实型常量又称数值型常量。基本整型常量只能用数字表示,不带小数点,例如 12、-1 和 0 等,在 VC6.0 中可以在整型常量的后面加个字母 l(L 的小写)或 L;实型常量必须用带小数点的数表示,例如 3.14159、-2.71828、0.0 等;选项 A 中字母 o 不符合要求,选顶 B 中超出八进制的范围,选项 C 中 e 后面的不为

32、整数,因此选顶 D 是正确的。16.在 C 语言中,运算对象必须是整型数的运算符是A) % B) / C) %和/ D) *(分数:1.00)A. B.C.D.解析:解析 在 C 语言中,“%”运算符两侧的运算数必须是整型。17.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A) 函数的实参和其对应的形参共占同一存储单元 B) 形参只是形式上的存在,不占用具体存储单元C) 同名的实参和形参占同一存储单元 D) 函数的形参和实参分别占用不同的存储单元(分数:1.00)A.B.C.D. 解析:解析 在内存中,实参单元与形参单元是不同的单元。在 C 语言中,仅在调用函数时,给形参

33、分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。18.下列变量声明合法的是( )。A) short.a=1.4e-1; B) double b=l+3e2.8;C) long do=0xfdaL; D) float2_aaa=1e-3;(分数:2.00)A. B.C.D.解析:解析 解答本题需了解 3 个知识点:标识符是由字母、数字或下画线组成,并且它的第一个字符必须是字母或者下画线;do 是 C 语言中的一个关键字,不能再用做变量名和函数名:C 语言规定指数形式的实型常量 e 或 E 后面的指数必须是整数。19.若有“double a;“,则正

34、确的输入语句是( )。A) scanf(“%1f“,a); B) scanf(“%f“,C) scanf(“%1f“,(分数:1.00)A.B.C.D. 解析:解析 函数 scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。本题中定义变量 a 为双精度型变量,双精度变量的格式符为“1e”;变量的地址用取地址符“ else a+;语句功能不同的 switch 语句是A) switch(a)case 1: a=b; break;default:a+;B) switch(a=1)case 0: a=b;

35、 break;case 1:a+;C) switch(a)default: a+; break;case 1:a=b;D) switch(a=1)case 1:a=b; break;case 0:a+;(分数:1.00)A.B. C.D.解析:解析 选项 B 中,switch 语句中表达式“a=1”为“真”时,表达式取值 1,程序流程转向 case 1: a+;,与 if(a=1) a=b; else a+;语句功能不同。22.为了避免在嵌套的条件语句 ifelse 中产生二义性,C 语言规定,else 子句总是与( )配对。A) 缩排位置相同 if B) 其前面最近的 ifC) 其后面最近的

36、 if D) 同一行上的 if(分数:2.00)A.B. C.D.解析:解析 本题考查 if else 语句。C 语言规定,else 总是与它前面的最近的 if 配对。23.有以下程序:main()int i,j,x=0;for(i=0;i2;i+)x+;for(j=0;j=3;j+)if(j=0;j=3;j+)x+; x+; printf(“x=%d/n“,x);程序执行后的输出结果是( )。Ax=4 Bx=8 Cx=6 Dx=12(分数:1.00)A.B. C.D.解析:解析 当 i=0 时,i2 成立,执行第一个 for 循环 x 自加为 1,接着执行第二个 for 循环,j=0时 j=

37、3 成立,此时 if 不成立执行 x+后,x 为 2,接着 j=1 时,j=3 成立,继续循环,此时 if 成立,continue 是跳出本次循环继续下一次循环,不再执行 x+了,接着 j=2 时,j=3 成立,此时 if 不成立,执行其后的语句,当 j=4 时,退出第二个循环,接着执行其后的 x+,x 为 4,当 i=1 时,i2 成立,执行第一个循环,x=5,此时接着执行其后的语句,即第二个循环,j=0 时 j3 成立,此时 if 不成立,x+后,x 为 6,接着 j 为 1 时,j=3 成立,继续循环,此时 if 成立不再执行 x+了,接着 j=2 时,j=3 成立,此时 if 不成立,

38、执行其后的 x+,x 为 7,j=3 时,j=3 成立,此时 if 成立,不再执行其后的语句了,当 j=4 时,退出第二个循环,执行循环外部的语句,所以 x 为 8,故选 B 选项。24.有下列程序:main()int x=5;doprintf(“%d“,x-=4);while(!(-X);程序的输出结果是( )。A) 1 B) 20 C) 1-4 D) 死循环(分数:2.00)A.B.C. D.解析:解析 本题考查 dowhile 循环。执行 printf 语句,x=x-4=1,输出 1,判断 while 循环的控制条件, -x=0,则(!(-X)非零,循环条件成立,执行下一次循环;执行 p

39、rintf 语句,x=x-4=-4,输出-4,判断 while 循环的控制条件,-X=-5,则(!(-x)为零,循环条件不成立,结束循环。25.有下列程序段:struct stint x;int *y;*pt;int a=1,2,b=3,4;struct st c2=10,a,20,b;pt=c;下列选项中表达式的值为 11 的是( )。A) *pt-y B) pt-x C) +pt-x D) (pt+)-X(分数:1.00)A.B.C. D.解析:解析 由题目的已知条件可知,pt 指向结构体数组 c2的第一元素 c0,所以 pt-x=10,执行自加运算后为 11。26.以下错误的定义语句是(

40、 )。Aint x3=(0,1,1,2,3);Bint x43=1,2,3,1,2,3,1,2,3,1,2,3);Cint x4=1,2,3,1,2,3,12,3,1,2,3);Dint x3=1,2,3,4;(分数:1.00)A.B.C. D.解析:解析 一维数组定义和初始化允许省略行下标,不允许省略列下标。27.在嵌套使用 if 语句时,C 语言规定 else 总是( )。A) 和之前与其具有相同缩进位置的 if 配对B) 和之前与其最近的 if 配对C) 和之前与其最近的且不带 else 的 if 配对D) 和之前的第一个 if 配对(分数:1.00)A.B.C. D.解析:解析 C 语

41、言的语法规定:else 子句总是与前面最近的不带 else 的 if 相结合,与书写格式无关。所以选项 C) 为正确答案。28.有以下程序(说明:字母 A 的 ASCII 码值是 65) #includestdio.hvoid fun(char *s)while(*s)if(*s%2) printf (“%c“, *s);s+;main()char a=“BYTE“;fun(a); printf(“/n“);程序运行后的输出结果是_。A) BY B) BT C) YT D) YE(分数:1.00)A.B.C.D. 解析:解析 阅读程序可知,函数只会输出 ASCII 码值为奇数的字母,执行 fu

42、n(a)时,依次取出 a中的字母,当取第一个字母 B 时,因为 B 的 ASCII 码值为 66,所以不会输出 B,字母 Y 的 ASCII 码为 89,字母 T 的 ASCII 码值为 84,字母 E 的 ASCII 码值为 69,所以最后输出字母 YE。正确答案为 D。29.以下程序的输出结果是( )。main()int x=0.5;char z=a;printf(“%d/n“,(x A) 1,2,3,4,5,6,7,8,9,0 B) 2,1,4,3,6,5,8,7,0,9C) 0,9,8,7,6,5,4,3,2,1 D) 0,1,2,3,4,5,6,7,8,9(分数:2.00)A. B.

43、C.D.解析:解析 fun 函数无值返回。main 函数调用时数组元素作实参,形参的改变不会影响实参。因此,循环调用结束后,C 数组没有任何改变。34.下列程序的输出结果是( )。#includestdio.hint fun(int x)int p;if(x=0x=1) return 3;elsep=x-fun(x-2) ;return p;void main()printf(“/n%d“,fun(5) );A) 5 B) 3 C) 7 D) 1(分数:1.00)A. B.C.D.解析:解析 本题考查函数的递归调用。在函数递归调用时,fun(5):a=5-fun(3)-fun3:a=3-fun

44、(1)-fun(1):a=3,反推回去 fun(3):a=3-3=O-fun(5):a=5-0=5,最后的计算结果为 5。35.若已定义: int a=0,1,2,3,4,5,6,7,8,9,*p=a,i; 其中 0i9,则对 a 数组元素不正确的引用是( )。 A) ap-a B) *( char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(“%d%d%3.1f%3.1f/n“,a,c,f,x);程序运行后的输出结果是( )。A) 1 65 1 6.5 B) 1 65 1.5 6.5 C) 1 65 1.0 6.5 D) 2 65

45、1.5 6.5(分数:1.00)A.B. C.D.解析:解析 本题考查复合赋值运算符。本题中先计算 c 的值,c=c*(x=6.5)=10*6.5= 65;然后计算 f的值,f=f/c=100.0/65=1.538462;最后计算 a 的值,a=f,a 取 f 的整数部分,即为 1。37.以下关于 typedef 的叙述错误的是_。(A) 用 typedef 可以增加新类型(B) typedef 只是将已存在的类型用一个新的名字来代表(C) 用 typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名(D) 用 typedef 为类型说明一个新名,通常可以增加程序的可读性(分数

46、:2.00)A. B.C.D.解析:38.#define 能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5 的值的函数 f,正确的宏定义语句为( )。A) #define f(x)5*x*x+5*x+5 B) #define f5*x*x+5*x+5C) #define f(a)(5*a*a+5*a+5) D) #define(5*x*x+5*x+5)fx)(分数:2.00)A.B.C. D.解析:解析 带参数宏的格式为:#define 标识符(形参衰) 形参表达式。其功能是:预处理程序将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。39.标准库函数 fgets(s,n,

47、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.解析:解析 字符串输入函数 fgets()的调用形式为:fgets(s,n,fp)。fgets 函数参数说明:“s”可以是一个字符数组名,也可以是指向字符串的指针;“n”为要读取的最多的字符个数;“fp”是指向该文件的文件型指针。fgets 函数的功能:从 fp 所指向的文件中读取长度不超过 n-1 个字符的字符串,并将该字符串放到字符数组 s 中;读入字符串后会自动在字符串末尾加入“/0”结束符,表示字符串结束。40.设有以下语句:char str412=“aaa“,“bbbb“,“ccccc“,“dddddd“,*strp4;int i;for(i=0;i4;i+) strpi=stri;下列选项不是对字符正确引用的是(其中 0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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