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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

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