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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

【计算机类职业资格】全国计算机等级考试二级C语言真题2008年9月及答案解析.doc

1、全国计算机等级考试二级 C 语言真题 2008 年 9 月及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈则元素出栈的顺序_。(分数:2.00)A.12345ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA2.下列叙述中正确的是_。(分数:2.00)A.循环队列中有队头和卧尾两个指针,因此,循环队列是非线牲结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能

2、反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定3.在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是(分数:2.00)A.O(B.O(n2)C.O(log2D.O(nlog24.下列叙述中正确的是_。(分数:2.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间5.数据流图中带有箭头的线段表示的是_。(分数:2.00)A.控制流B.事件驱动C.模块调用D.数

3、据流6.在软件开发中,需求分析阶段可使用的工具是_。(分数:2.00)A.N-S 图B.DFD 图C.PAD 图D.程序流程图7.在面向对象方法中,不属于“对象”基本特点的是_。(分数:2.00)A.一致性B.分类性C.多态性D.标识唯一性8.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是_。(分数:2.00)A.一对一B.一对多C.多对一D.多对多9.在数据管理技术发展的三个阶段中,数据共享最好的是_。(分数:2.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.三个阶段相同10.有三个关系 R、S 和 T 如下: (分数:2.00)A.笛卡尔积B.交C.并D.自然连接11.以

4、下叙述中正确的是_。(分数:1.00)A.C 程序的基本组成单位是语句B.C 程序中的每行只能写一条语句C.简单 C 语句必须以分号结束D.C 语句必须在一行内写完12.计算机能直接执行的程序是_。(分数:1.00)A.源程序B.目标程序C.汇编程序D.可执行程序13.以下选项中不能作为 C 语言合法常量的是_。(分数:1.00)A.cdB.0.1e+6C.“/a“D./01114.以下选项中正确的定义语句是_。(分数:1.00)A.double a;b;B.doubla=b=7;C.double a=7,b=7;D.double,a,b;15.以下不能正确表示代数式 (分数:1.00)A.2

5、*a*b/c/dB.a*b/c/d*2C.a/c/d*b*2D.2*a*b/c*d16.C 源程序中不能表示的数制是_。(分数:1.00)A.二进制B.八进制C.十进制D.十六进制17.若有表达(W)?(-x):(+y),则其中与 W 等价的表达式是_。(分数:1.00)A.w=1B.w=0C.w!=1D.w!=018.执行以下程序段后,W 的值为_。 int w=A,x=14,y=15 w=(xy)(分数:1.00)A.-1B.NULLC.1D.019.若变量已正确定义为 int 型,要通过语句 scanf(“%d,%d,%d“, a=10; b=50; c=30; if(ab)a=b, b

6、=c; c=a; printf(“a=%d b=%d c=%d/n“,a,b,c); 程序的输出结果是_。(分数:1.00)A.a=10 b=50 c=10B.a=10 b=50 c=30C.a=10 b=30 c=10D.a=50 b=30 c=5021.若有定义语句:int m=5,4,3,2,1,i=4;,则下面对 m 数组元素的引用中错误的是_。(分数:2.00)A.m-iB.m2*2C.mm0D.mm22.下面的函数调用语句中,func 函数的实参个数是_。 func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8);(分数:2.00)A.3B.4C.5D.82

7、3.若有定义语句:double x5=1.0,2.0,3.0,4.0,5.0,*p=x;则错误引用 x 数组元素的是_。(分数:2.00)A.*pB.x5C.*(p+1)D.*x24.若有定义语句:char s10=“1234567/0/0“;,则 strlen(s)的值是_。(分数:2.00)A.7B.8C.9D.1025.以下叙述中错误的是_。(分数:2.00)A.用户定义的函数中可以没有 return 语句B.用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值C.用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D.函数的 retur

8、n 语句中可以没有表达式26.以下关于宏的叙述中正确的是_。(分数:2.00)A.宏名必须用大写字母表示B.宏定义必须位于源程序中所有语句之前C.宏替换没有数据类型限制D.宏调用比函数调用耗费时间27.有以下程序#include stdio.hmain() int i,j; for(i=3;i=-1;i-) for(i=1;j=2;j+) printf(“%d“,i+j); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.234 345B.432 543C.23 34 45D.45 34 2328.有以下程序 #include stdio.h mare() int x=1

9、,y=2,z=3; if(xy) if(yz) printf(“%d“,+z); else printf(“%d“,+y); printf(“%d/n“,x+); 程序的运行结果是_。(分数:2.00)A.331B.41C.2D.129.有以下程序 #include stdio.h main() int i=5; do if(i%3=1) if(i%5=2) printf“*%d“,i); break; i+; while(i!=0); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.*7B.*3*5C.*5D.*2*630.有以下程序 #include stdio.h

10、int fun(int a, int b) if(b=0) return a; else return(fun(-a,-b); main() printf(“%d/n“,fun(4,2); 程序的运行结果是_。(分数:2.00)A.1B.2C.3D.431.有以下程序 #include stdio.h #include stdlib.h int fun(int n) int *p; p=(int*)malloc(sizeof(int); *p=n; return *p; int a; a=fun(10); printf(“%d/n“,a+fun(10); 程序的运行结果是_。(分数:2.00)

11、A.0B.10C.20D.出错32.有以下程序 #includestdio.h void fun(int a, int b) int t; t=a; a=b; int c10=1,2,3,4,5,6,7,8,9,0,i; for(i=0;i10;i+=2) fun(ci,ci+1); for(i=0;i10;i+) printf(“%d,“,ci); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.1,2,3,4,5,6.7,8,9,0,B.2,1.4.3.6,5.8,7,0,9,C.0,9,8,7,6,5,4,3,2,1,D.0,1,2,3,4,5,6,7,8,9,33

12、.有以下程序 #include stdio.h struct st int x,y; data2=1,10,2,20; main() struct st *p=data; printf(“%d,“,p-y); printf(“%d/n“,(+p)-x); 程序的运行结果是_。(分数:2.00)A.10,1B.20,1C.10,2D.20,234.有以下程序 #include stdio.h void fun(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 k10=1,2,3,4,5,6,7

13、,8,9,10,i; fun(k,5); for(i=2;i8;i+) printf(“%d“,ki); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.345678B.876543C.1098765D.32167835.有以下程序 #include stdio.h #define N 4 void fun(int aN,int b) int i; for(i=0;iN;i+) bi=aii; main() int xN=1,2,3,4,5,6,7,8,9,10 ,YN,i; fun(x,y); for(i=0;iN;i+) printf(“%d,“,yi); print

14、f(“/n“); 程序的运行结果是_。(分数:2.00)A.1,2,3,4,B.1,0,7,0,C.1,4,5,9,D.3,4,8,10,36.有以下程序 #include stdio.h int fun(int (*s)4,int n,int k) int m,i; m=s0kl; for(i=1;in;i+) if(sikm) m=sik; return m; main() int a44=1,2,3,4,11,12,13,14, 21,22,23,24, 31,32,33,34; printf(“%d/n“,fun(a,4,0); 程序的运行结果是_。(分数:2.00)A.4B.34C.

15、31D.3237.有以下程序 #include stdio.h main() struct STUchar name9;char sex;double score2;sturt STU a=“Zhao“ ,m,85.0,90.0,b=“Qian“ ,f,95:0,92.0; b=a; printf(“%s,%c,%2.0f,%2.0f/n“,b.name,b.sex,b.score0,b.score1); 程序的运行结果是_。(分数:2.00)A.Qian,f,95,92B.Qian,85,90C.Zhao,f,95,92D.Zhao,m,85,9038.假定已建立以下链表结构,且指针 p 和

16、 q 已指向如图所示的结点: (分数:2.00)A.(*.next=(*.next; free(;B.p=q-next; free(;C.p=q; free(;D.p-next=q-next; free(;39.有以下程序 #include stdio.h main() char a=4; printf(“%d/n,a=a1); 程序的运行结果是_。(分数:2.00)A.40B.16C.8D.440.有以下程序 #include stdio.h main() FILE*pf, char *s1=“China“,*s2=“Beijing“; pf=fopen(“abc.dat“,“wb+“);

17、fwrite(s2,7,1,pf); rewind(pf); /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf); 以上程序执行后 abc.dat 文件的内容是_。(分数:2.00)A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina二、B填空题/B(总题数:13,分数:30.00)41.对下列二叉树进行中序遍历的结果是U 【1】 /U。 (分数:2.00)填空项 1:_42.按照软件测试的一般步骤,集成测试应在U 【2】 /U测试之后进行。(分数:2.00)填空项 1:_43.软件工程三要素包括方法、工具和过程,其

18、中,U 【3】 /U支持软件开发的各个环节的控制和管理。(分数:2.00)填空项 1:_44.数据库设计包括概念设计、U 【4】 /U和物理设计。(分数:2.00)填空项 1:_45.在二维表中,元组的U 【5】 /U不能再分成更小的数据项。(分数:2.00)填空项 1:_46.设变量 a 和 b 已正确定义并赋初值。请写出与 a=a+b 等价的赋值表达式U 【6】 /U。(分数:2.00)填空项 1:_47.若整型变量 a 和 b 中的值分别为 7 和 9,要求按以下格式输出 a 和 b 的值: a=7 b=9 请完成输出语句:printf(“U 【7】 /U“,a,b);。(分数:2.00

19、)填空项 1:_48.以下程序的输出结果是U 【8】 /U。 #includestdio.h main() int i,j,sum; for(i=3;i=-1;i-) (sum=0; for(j=1;j=i;j+) sum+=i*j; printf(“%d/n,sum); (分数:2.00)填空项 1:_49.以下程序的输出结果是U 【9】 /U。 #include stdio.h main() int j,a=1,3,5,7,9,11,13,15,*P=a+5; for(j=3; j;j-) switch(i) case 1: case 2: printf(“%d“,*p+); break;

20、 case 3: printf(“%d“,* (-p); (分数:2.00)填空项 1:_50.以下程序的输出结果是U 【10】 /U。 #include stdio.h #define N 5 int fun(int *s,int a,int n) int j; *s=a j=n; while(a!=sj) j-; return j; main() int sN+1; int k: for(k=1 ;k=N;k+) sk=k+1: print f(“%d/n“,fun(s,4,N); (分数:2.00)填空项 1:_51.以下程序的输出结果是U 【11】 /U。 #include stdio

21、.h int fun(int x) static int t=0; return(t+=x); main() int s,i; for(i=1 ;i=5;i+) s=fun(i); printf(“%d/n“,s);(分数:2.00)填空项 1:_52.以下程序按下现指定的数据给 x 数组的下三角置数,并按如下形式输出,请填空。 4 3 7 2 6 9 1 5 8 10 #include stdio.h main() int x44,n=0,i,j; for(j=0;j4;j+) for(i=3;ij;U 【12】 /U) n+;xij=U 【13】 /U: for(i=0;i4;i+) fo

22、r(j=0;j=i;j+) printf(“%3d“,xij); printf(“/n“); (分数:4.00)填空项 1:_53.以下程序的功能是:通过函数 func 输入字符并统计输入字符的个数。输入时用字符作为输入结束标志。请填空。 #include stdio.h longU 【14】 /U; /*函数说明语句*/ main() long n; n=func(); printf(“n=%1d/n“n); long func() long m; for( m=0;getchar()!=U 【15】 /U; return m; (分数:4.00)填空项 1:_全国计算机等级考试二级 C 语

23、言真题 2008 年 9 月答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈则元素出栈的顺序_。(分数:2.00)A.12345ABCDEB.EDCBA54321 C.ABCDE12345D.54321EDCBA解析:知识点 栈结构的存储方式 评析 栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。这表明

24、栈的运算规则是“先进后出”(或称“后进先出”)。在栈顶进行插入运算,称为进栈(或入栈),在栈顶进行删除运算,称为退栈(或出栈)。本题中,依次进栈,即依次插入元素 1、2,3、4、5、A、B、C、D、E,依次出栈,即依次删除元素,根据栈“先进后出”的规则,应该以倒序出栈。即元素出栈顺序为 EDCBA54321。2.下列叙述中正确的是_。(分数:2.00)A.循环队列中有队头和卧尾两个指针,因此,循环队列是非线牲结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定

25、解析:知识点 循环队列 评析 所谓循环队列,就是将队列存储空间的最后一个位置绕到第 1 个位置,形成逻辑上的环状空间,供队列循环使用。所以循环队列还是属于线性结构,所以选项 A 是错误的。循环队列的头指针 front 指向队列的第一个元素的前一位置,队尾指针 rear 指向队列的最后一个元素,循环队列的动态变化需要头尾指针共同反映,所以选项 B、C 是错误的。循环队列的长度是:(sq.rear-sq.front+maxsize)%maxsize,所以循环队列的长度是由队头和队尾指针共同决定的,所以选项 D 正确。3.在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是(分数:2

26、.00)A.O(B.O(n2)C.O(log2 D.O(nlog2解析:知识点 二分查找法的时间复杂度评析 二分法检索要求线性表结点按关键值排序且以顺序方式存储。在查找时,首先与表的中间位置上结点的关键值比较,若相等则检索成功;否则根据比较结果确定下一步在表的前半部分或后半部分继续进行。二分法检索的效率比较高,设线性表有 n 个元素,则最多的检索次数为大于 long2n(2 为底数)的最小整数,最少的检索次数为 1。4.下列叙述中正确的是_。(分数:2.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C

27、.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间解析:知识点 顺序存储结构和链式存储结构 评析 顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素,链式存储结构中各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,所以选项 A 是正确的。两者都可以存储线性的、有序的逻辑结构,所以选项 B、C 不正确。顺序结构使用的是连续物理空间,链式结构可以使用零散的物理空间存储,链式结构更灵活,不存在谁节约空间的说法,所以选项 D 不正确。5.数据流图中带有箭头的线段表示的是_。(分数:2.00)A.控制流B.

28、事件驱动C.模块调用D.数据流 解析:知识点 数据流图的表示 评析 数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素与说明如下: 加工(转换):输入数据经加工变换产生输出。 数据流:沿箭头方向传送数据的通道,一般在旁边标注数据流名。 存储文件(数据源):表示处理过程中存放各种数据的文件。 源,潭:表示系统和环境的接口,属系统之外的实体。6.在软件开发中,需求分析阶段可使用的工具是_。(分数:2.00)A.N-S 图B.DFD 图 C.PAD 图D.程序流程

29、图解析:知识点 软件开发 评析 软件开发阶段包括需求分析、总体设计、详细设计、编码和测试 5 个阶段。其中需求分析阶段常用的工具是数据流图(简称 DFD)和数据字典(简称 DD)。常见的详细设计的图形描述工具主要有程序硫程图、N-S 结构图、问题分析图(简称 PAD 图)。7.在面向对象方法中,不属于“对象”基本特点的是_。(分数:2.00)A.一致性 B.分类性C.多态性D.标识唯一性解析:知识点 面向对象方法的基本理论 评析 面向对象方法中最基本的概念是对象,它的基本特点有:标识唯性、分类性、多态性、封装性和模块独立性好。8.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是_。(分数:2

30、.00)A.一对一B.一对多 C.多对一D.多对多解析:知识点 E-R 模型的基本概念 评析 两个实体间的联系可以归纳为 3 种类型: 一对一联系:一对一的联系表现为主表中的每一条记录只与相关表中的一条记录相关联。 一对多联系或多对一:一对多的联系表现为主表中的每一条记录与相关表中的多条记录相关联。 多对多联系:多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录与其匹配。 一间宿舍可以住多个学生,但每个学生只能住一个宿舍,所以实体宿舍和学生之间的联系为一对多的联系。9.在数据管理技术发展的三个阶段中,数据共享最好的是_。(分数:2.00)A.人工管理阶段B.文件系统阶段C.数据库系统

31、阶段 D.三个阶段相同解析:知识点 数据库管理技术的发展特点 评析 数据库管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。 人工管理阶段的特点:数据不保存、数据不独立、数据不能共享、数据无结构,没有专门的数据管理软件。 文件系统阶段的特点:数据可以长期保存,有专门的数据管理软件文件系统。但是数据独立性低,共享性差、冗余度大,数据记录内有结构,整体无结构。 数据库系统阶段的特点:数据结构化,数据独立性高,数据共享性高,冗余度小,易于扩充,数据库管理系统提供统一的数控制功能,包括数据安全性、完整性、并发控制和数据恢复功能。10.有三个关系 R、S 和 T 如下: (分数:

32、2.00)A.笛卡尔积B.交C.并D.自然连接 解析:知识点 关系代数运算 评析 笛卡尔积:设关系 R 和 S 的元数分别是 r 和 s,定义 R 和 S 的笛卡尔积是一个(r+s)元元组集合,每一个元组的前 r 个分量来自 R 的一个元组,后 s 个分量来自 S 的一个元组。若 R 有 k1 个元组,s 有 k2 个元组,则关系 R 和关系 S 的广义笛卡尔积有 k1k2 个元组。 交:设关系 R 和关系 S 具有相同的目 n,且相应的属性诹自同一个域,则关系 R 与关系 S 的交由属于 R 又属于 S的所有元组组成。 并:设关系 R 和关系 S 具有相同的目 n(即两个关系都有 n 个属性

33、),且相应的属性取自同一个域,则关系 R 与关系 S 的并由属于 R 或属于 S 的元组组成。 自然连接:是一种特殊的等值连接,它要求两个关系中进行比较的分量必须有相同的属性组,并且要将结果中重复的属性去掉。11.以下叙述中正确的是_。(分数:1.00)A.C 程序的基本组成单位是语句B.C 程序中的每行只能写一条语句C.简单 C 语句必须以分号结束 D.C 语句必须在一行内写完解析:评析 C 程序是由函数构成的。个 C 源程序至少包含个 main 函数,也可以包含个 main 函数和若干个其他函数。因此,函数是 C 程序的基本单位,故选项 A 错误;C 程序书写格式自由,行内可以写几个语句,

34、个语句可以分写在多行上,故选项 B,D 错误;C 语言规定,每个语句和数据定义的最后必须有个分号,分号是 C 语句的必要组成部分,故选项 C 正确。12.计算机能直接执行的程序是_。(分数:1.00)A.源程序B.目标程序C.汇编程序D.可执行程序 解析:评析 我们把由高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”,由汇编语言编写的程序称为“汇编程序”。对于计算机本身来说,它并不能直接识别由高级语言编写的程序,只能识别和执行由 0 和 1 组成的二进制指令。为了把源程序转换成机器能接受的目标程序,软件工作者编制了一系列软件,通过这些软件可以把用户按规定语法写出的语句翻

35、译成二进制的机器指令,这种具有翻译功能的软件称为“编译程序”。然后将编译后的目标程序与系统的函数库和其他目标程序连接起来,形成可执行程序由计算机直接执行。13.以下选项中不能作为 C 语言合法常量的是_。(分数:1.00)A.cd B.0.1e+6C.“/a“D./011解析:评析 C 语言时常量分为整型常量、实型常量和字符型常量。用单引号(即撇号)括起来一个字符称为字符常量,由于字符常量只能包含一个字符,因此选项 A 错误;转义字符常量是将反斜杠(/)后面的字符转成另外的意义,选项 D 表示了个 ASCII 码为 011 的八进制数;选项 B 是用指数形式表示的实型常量。用“e”或“E”后的

36、个整数表示以 10 为底的幂数,以这种形式表示的实型常量需注意字母 e(或 E)之前必须有数字,且 e 后面的指数必须为整数;用一对双引号括起来的字符序列称为字符串常量,选项 C就为个正确的字符串常量。14.以下选项中正确的定义语句是_。(分数:1.00)A.double a;b;B.doubla=b=7;C.double a=7,b=7; D.double,a,b;解析:评析 C 语言规定,每个语句和数据定义以分号结束,则说明选项 A 是两条语句,前条是对变量 a 作双精度型定义的语句,而后一个“b;”是一个缺少类型的不正确的定义形式,如果是定义多个变量,则应用逗号隔开;当定义多个变量赋同个

37、值时,不能用等式连写的方式,如选项 B 的“double a=b=7;”应写成“double a=7,b=7;”所以选项 B 错误,选项 C 正确;在定义语句时,类型与变量名之间应用空格分隔,而不是逗号,所以选项 D 错误。15.以下不能正确表示代数式 (分数:1.00)A.2*a*b/c/dB.a*b/c/d*2C.a/c/d*b*2D.2*a*b/c*d 解析:评析 本题考查的是算术运算符的优先级。算术运算符包括:+(加法运算符,或正值运算符)、-(减法运算符,或负值运算符)、*(乘法运算符)、/(除法运算符)、(模运算符,或称求余运算符),其中*、/两运算符的优先组相同,所以选项 D 错

38、误,它表示的是 2abd/c,而不是 2ab/(cd)。16.C 源程序中不能表示的数制是_。(分数:1.00)A.二进制 B.八进制C.十进制D.十六进制解析:评析 C 源程序中的整形常量可用三种形式表示:十进制数;八进制数:以 0 开头的数是八进制数;十六进制数:以 Ox 开头的数是十六进制数。17.若有表达(W)?(-x):(+y),则其中与 W 等价的表达式是_。(分数:1.00)A.w=1B.w=0C.w!=1D.w!=0 解析:评析 条件表达式的一般形式为:表达式 1?表达式 2:表达式 3,其执行顺序:先求解表达式 1,若非 0(真)则求解表达式 2,此时表达式 2 的值就作为整

39、个条件表达式的值,若表达式 1 的值为 0(假),则求解表达式 3,此时表达式 3 的值就作为整个条件表达式的值。本题中相当于先判断 w 的值是否为非0,所以与 w 等价的表达式是 w!=0。18.执行以下程序段后,W 的值为_。 int w=A,x=14,y=15 w=(xy)(分数:1.00)A.-1B.NULLC.1 D.0解析:评析 本题考查的是括号与逻辑运算符的混合运算,其运算优先级为先括号,后逻辑运算符。另外注意“ a=10; b=50; c=30; if(ab)a=b, b=c; c=a; printf(“a=%d b=%d c=%d/n“,a,b,c); 程序的输出结果是_。(

40、分数:1.00)A.a=10 b=50 c=10 B.a=10 b=50 c=30C.a=10 b=30 c=10D.a=50 b=30 c=50解析:评析 本题 if 条件表达式“ab”的值为 0,所以不执行其后的 if 语句“a-b,b=c;”,直接执行下一条语句“c=a”,故 c 变量的值为 10,所以输出结果为“a=10 b=50 c=10”。21.若有定义语句:int m=5,4,3,2,1,i=4;,则下面对 m 数组元素的引用中错误的是_。(分数:2.00)A.m-iB.m2*2C.mm0 D.mm解析:评析 一维数组的定义方式为:类型说明符 数组名常量表达式。其中“常量表达式”

41、表示元素的个数,即数组长度。元素的下标从 0 开始,最大下标是元素个数减一。本题定义了一个由 5 个元素(m0到 m4)组成的数组。选项 A 表示对 m3的引用;选项 B 表示对 m4的引用;由于 m0的值为 5,所以选项 C 表示 m5,但由于 m 数组元素的最大下标为 4,所以本引用下标越界;由于 mi即 m4的值为 1,所以选项 D 表示对 m1的引用。22.下面的函数调用语句中,func 函数的实参个数是_。 func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8);(分数:2.00)A.3 B.4C.5D.8解析:评析 本调用语句 func 中包含了 3 个实

42、参,一个是对 f2 函数调用“f2(v1,v2)”的返回值;另一个是逗号表达式“(v3,v4,v5)”的值 v5(逗号表达式的一般形式为:表达式 1,表达式 2,表达式 3表达式 n,它的值为表达式 n 的值);还有个实参也是逗号表达式“v6,max(v7,v8)”的值,即对 max 函数调用的返回值。23.若有定义语句:double x5=1.0,2.0,3.0,4.0,5.0,*p=x;则错误引用 x 数组元素的是_。(分数:2.00)A.*pB.x5 C.*(p+1)D.*x解析:评析 本题定义了一个有 5 个数组元素的维数组 x 和指针变量 p,且将 x 的首地址(即 x0)的地址)赋

43、给了指针变量 p,即 p 指向了 x 数组的第 0 号元素,所以*p 的值为 x0的值,选项 A 的引用正确;由于 p+1 就是 x1的地址,所以*(p+1)所指向的数组元素为 x1,故选项 C 的引用正确;由于 x 就是数组 x 的首地址,所以*x 即对 x0的引用,所以选项 D 引用正确;由于数组最大下标是元素个数减一,所以选项 B 的引用越界。24.若有定义语句:char s10=“1234567/0/0“;,则 strlen(s)的值是_。(分数:2.00)A.7 B.8C.9D.10解析:评析 strlen(字符数组)是测试字符串的长度的函数。函数的值为字符串的实际长度,不包括/0在

44、内。 C 语言中字符串是以/0字符结束的,且 salen()函数计算的是/0字符前的所有字符的个数,所以本题 strlen(s)的值是 7。需要与其区分的是 sizeof()函数,它的功能是计算变量或数组所分配到的内存空间的大小。如果本题要求计算 sizeof(s)的话,则其值应为 10。25.以下叙述中错误的是_。(分数:2.00)A.用户定义的函数中可以没有 return 语句B.用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值 C.用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D.函数的 return 语句中可以没有表达式解析:

45、评析 本题考查的是 return 语句。用户定义的函数中可以没有 return 语句,所以选项 A 正确;如果被调函数中没有 return 语句,并不带回个确定的、用户所希望得到的函数值,但实际上,函数并不是不带回值,而只是不带回有用的值,带回的是一个不确定的值,为了明确表示“不带回值”,可以用“void”定义“无类型”,这样,系统就保证不使函数带回任何值,所以选项 C 正确;当函数中不需要指明返回值时,可以写成“return”,所以选项 D 正确;一个函数中可以有个以上的 return 语句,执行到哪一个 return 语句,哪一个语句起作用,即返回主函数,不再执行它下面的其他语句,所以选项 B 错误。26.以下关于宏的叙述中正确的是_。(分数:2.00)A.宏名必须用大写字母表示B.宏定义必须位于源程序中所有语句之前C.宏替换没有数据类型限制 D.宏调用比函数调用耗费时间解析:评析 宏名一般习惯用大写字母表示,以便与变量名相区别,但这并非规定,也可用小写字母,所以选项 A 错误;宏命令出现在程序中函数的外面,宏名的有效范围为定义命令之后到本源文件结束,通常,宏命令写在文件开头,函数之前,作为文件的一部分,在此文件范围内有效,而并不必须位于源程序中所有语句之前,所以选项 B 错误;用宏名代替个字符串,也就是作简单的置换,

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