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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、全国计算机等级考试二级 C 语言真题 2006 年 9 月及答案解析(总分:84.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.下列选项中不符合良好程序设计风格的是_。(分数:1.00)A.源程序要文档化B.数据说明的次序要规范化C.避免滥用 goto 语句D.模块设计要保证高耦合、高内聚2.从工程管理角度,软件设计般分为两步完成,它们是_。(分数:1.00)A.概要设计与详细设计B.过程控制C.软件结构设计与数据设计D.程序设计与数据设计3.下列选项中不属于软件生命周期开发阶段任务的是_。(分数:1.00)A.软件测试B.概要设计C.软件维护D.详细设计4

2、.在数据库系统中,用户所见数据模式为_。(分数:1.00)A.概念模式B.外模式C.内横式D.物理模式5.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和_。(分数:1.00)A.编码设计B.测试阶段C.运行阶段D.物理设计6.设有如下三个关系表 (分数:1.00)A.T=RSB.RSC.T=RSD.T=R/S7.下列叙述中正确的_。(分数:1.00)A.一个算法的空间复杂度大,则其时间复杂度也必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一今算法的时间复杂度大,则其空间复杂度必定小D.上述三种说法都不对8.在长度为 64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数

3、为_。(分数:1.00)A.63B.64C.6D.79.数据库技术的根本目标是解决数据的_。(分数:1.00)A.存储问题B.共享问题C.安全问题D.保护问题10.对下列二叉树 (分数:1.00)A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG11.下列叙述错误的是_。(分数:1.00)A.一个 C 语言程序只能实现种算法B.C 程序可以由多个程序文件组成C.C 程序可以由个或多个函数组成D.一个 C 函数可以单独作为个 C 程序文件存在12.下列叙述中正确的是_。(分数:1.00)A.每个 C 程序文件中都必须要有个 main()函数B.在 C 程序中 main()函

4、数的位置是固定的C.C 程序中所有函数之间都可以相互调用,与函数所在位置无关D.在 C 程序的函数中不能定义另个函数13.下列定义变量的语句中错误的是_。(分数:1.00)A.int _int;B.double int_;C.char For;D.float US$;14.若变量 x、y 己正确定义并赋值,以下符合 C 语言语法的表达式是_。(分数:1.00)A.x,y=x-B.x1=yC.x=x10=xyD.double(/1015.以下关于逻辑运算符两侧运算对象的叙述中正确的是_。(分数:1.00)A.只能是整数 0 或 1B.只能是整数 0 或非 0 整数C.可以是结构体类型的数据D.可

5、以是任意合法的表达式16.若有定义 int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x):(y)中的条件表达式(x-y)等价的是_。(分数:1.00)A.(x-yB.(x-yC.(x-y0|x-y0)D.(x-y=0)17.有以下程序 main() int x,y,z; x=y=1; z=x,y,y; printf(“%d,%d,%d/n“,x,y,z); 程序运行后的输出结果是_。(分数:1.00)A.2,3,3B.2,3,2C.2,3,1D.2,2,118.设有定义:int a; float b;执行 scanf(“%2d%f“, a=10; /* 给 a 赋值 b=

6、20; 给 b 赋值 */ printf(“ab=%d/n“,ab);/* 输出计算结果 */ 程序运行后的输出结果是_。(分数:1.00)A.ab=10B.ab=30C.30D.出错20.在嵌套使用 if 语句时,C 语言规定 else 总是_。(分数:1.00)A.和之前与其具有相同缩进位置的 if 配对B.和之前与其最近的 if 配对C.和之前与其最近的且不带 else 的 if 配对D.和之前的第个 if 配对21.下列叙述中正确的是_。(分数:1.00)A.break 语句只能使用 switch 语句B.在 switch 语句中必须使用 defaultC.break 语句必须与 sw

7、itch 语句中的 case 配对使用D.在 switch 语句中,不一定使用 break 语句22.有以下程序 main() int k=5; while(-k) printf(“%d“,k-=3); printf(“/n“); 执行后的输出结果是_。(分数:1.00)A.1B.2C.4D.死循环23.有以下程序 main() int i; for(i=1;i=40;i) if(i%5=0) if(i%8=0) printf (“%d“,i); printf(“/n“); (分数:1.00)A.5B.24C.32D.4024.以下选项中,值为 1 的表达式是_。(分数:1.00)A.1-0B

8、.1-、0C.1-0D./0-025.有以下程序 fun(int x,int y)return(xy); main() int a=1,b=2,c=3,sum; sum=fun(a,b,a+b),c); printf(“%d/n“,sum); (分数:1.00)A.6B.7C.8D.926.有以下程序 main() char s=“abcde“; s=2; printf(“%d/n“,s0); 执行后的结果是_。(分数:1.00)A.输出字符 a 的 ASC码B.输出字符 c 的 ASC码C.输出字符 cD.程序出错27.有以下程序 fun(int x,int y) static int m=

9、0,i=2; i+=m1; m=ixy; return m; main() int j=1,m=1,k; k=fun(j,m); printf(“%d,“,k); k=fun(j,m); printf(“%d/n“,k); 执行后的输出结果是_。(分数:1.00)A.5,5B.5,11C.11,11D.11,528.有以下程序 fun(int x) int p; if(x=0|x=1) return(3); p=x-fun(x-2); return p; main0 printf(“%d/n“,fun(7); 执行后的输出结果是_。(分数:1.00)A.7B.3C.2D.029.在 16 位编

10、译系统上,若有定义 int a=10,20,30,*p=,少逗号当执行 p;后,下列说法错误的是_。(分数:1.00)A.p 向高地址移了一个字节B.p 向高地址移了一个存储单元C.p 向高地址移了两个字节D.p 与 a1 等价30.有以下程序 main0 int a=l,b=3,c=5; int *p 1 = *p-pl*(*p2); print“%dXn“,c); 执行后的输出结果是_。(分数:1.00)A.1B.2C.3D.431.若有定义:int w35;,则以下不能正确表示该组元素的表达方式是_,(分数:1.00)A.*(*w3)B.*(w1)4C.*(*(w1)D.*(B.int

11、fun(double, in;C.int fun(double *x, int ;D.iht fun(double*,int*);33.若有定义语句:int k23,*pk3;,则以下语句中正确的是_。(分数:1.00)A.pk=k;B.pk0=C.pk=k0;D.pk1=k;34.有以下程序 void change(int k)k0=k5; main() int x10=1,2,3,4,5,6,7,8,9,10,n=0; while(n=4) change( n; for(n=0;n5;n) printf(“%d“,xn); printf(“/n“); 程序运行后输出的结果是_。(分数:1.

12、00)A.678910B.13579C.12345D.6234535.若要求定义具有 1O 个 int 型元素的一维数组 a,则以下定义语句中的错误的是_。(分数:1.00)A.#define N 10 int a;B.#define n 5 int a2*nC.int a55;D.int n=10,a;36.有以下程序 main() int x32=0,i; for(i=0;i3;i) scanf(“%d“,xi); printf(“%3d%3d%3d/n“,x00,x01,x10); 若运行时输入:246回车,则输出结果为_。(分数:1.00)A.200B.204C.240D.24637.

13、有以下程序 main() char s=“aeiou“,*ps; ps=s; printf(“%c/n“,*ps4); 程序运行后输出的结果是_。(分数:1.00)A.aB.eC.uD.元素 s4的地址38.在以下语句中存在语法错误的是_。(分数:1.00)A.char ss620; ss1=“right?“;B.char ss20=“fight?“;C.char *ss6; ss1=“right?“;D.char *ss=“right?“;39.若有定义:char *x=“abcdefghi“;,以下选项中正确运用了 strcpy 函数的是_。(分数:1.00)A.char y10; str

14、cpy(y,x4);B.char y10; strcpy(y,C.char y10,*s; strcpy(s=y5,;D.char y10,*s; strcpy(s=y1,x1);40.有以下程序 iht add (int a, int b) return(ab); mian() int k,(*f)(),a=5,b=10; f=add; 则以下函数调用语句错误的是_。(分数:1.00)A.k=(*(a,;B.k=add(a,;C.k=*f(a,;D.k=f(a,;41.有以下程序 #include string.h main(int argc, char *argv) int i=1,n=0

15、; while(iargc) n=nstrlen(argvi);i; printf(“%d/n“,n); 该程序生成的可执行文件名为:proc.exe。若运行时输入命令行: proc 123 45 67 则程序的输出结果是_。(分数:1.00)A.3B.5C.7D.1142.有以下程序 void fun2 (char a,char b) printf(“%c%c“,a,b); char a=A,b=B; void fun1() a=C; b=D; main() fun1(); printf(“%c%c“,a,b); fun2 (E,F); 程序的运行结果是_。(分数:1.00)A.CDEFB.

16、ABEFC.ABCDD.CDAB43.有以下程序 #include stdio.h #define N 5 #define M N1 #define f(x) (x*M) main() int i1,i2; i1=f(2) i2=f(11); printf(“%d %d/n“,i1,i2); 程序的运行结果是_。(分数:1.00)A.12 12B.11 7C.11 11D.12 744.设有以下语句 typedef struct TT char c; int a4;CIN; 则下面叙述中正确的是_。(分数:1.00)A.可以用 TT 定义结构体变量B.TT 是 struct 类型的变量C.可以

17、用 CIN 定义结构体变量D.CIN 是 struct TT 类型的变量45.有以下结构体说明、变量定义和赋值语句 struct STD char name10; int age; char sex; s5,*ps; ps= 则以下 scanf 函数调用语句中错误引用结构体变量成员的是_。(分数:1.00)A.scanf(“%s“,s0.nam;B.scanf(“%d“,C.scanf(“%c“,D.scanf(“%d“,ps-ag;46.若有以下定义和语句 union date int i; char c; fioat f; x; int y; 则以下语句正确的是_。(分数:1.00)A.x

18、=10.5;B.c=101;C.y=x;D.printf(“%d/n“,;47.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量 s、p、q 均已正确定义,并用于指向链表结点,指针变量 s 总是作为头指针向链表的第个结点。 若有以下程序段 q=s; s=s-next; p=s; while(p-next) p=p-next; P-next=q; q-next=NULL; 该程序段实现的功能是_。 (分数:1.00)A.首结点成为尾结点B.尾结点成为首结点C.删除首结点D.删除尾结点48.若变量已删除正确定义,则以下语句的输出结果是_。 s=32; s=32; printf(“%d“,

19、s);(分数:1.00)A.-1B.0C.1D.3249.以下叙述中正确的是_。(分数:1.00)A.C 语言中的文件是流式文件,因此只能顺序存取数据B.打开个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C.在千程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1 个数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失50.有以下程序 #include stdio.h main() FILE *fp; int i; char ch=“abcd“,t; fp=fopen(“abc.dat“,“wb“); for(i=O;i4;i)fwri

20、te( fseek (fp,-2L,SEEK_END); fread ( fclose (fp); printf (“%c/n“,t); 程序执行后的输出结果是_。(分数:1.00)A.dB.cC.bD.a二、B填空题/B(总题数:17,分数:34.00)51.下列软件系统结构图 (分数:2.00)填空项 1:_52.U2 /U的任务是诊断和改正程序中的错误。(分数:2.00)填空项 1:_53.个关系表的行称为U 3 /U。(分数:2.00)填空项 1:_54.按“先进后出”原则组织数据的数据结构是U 4 /U。(分数:2.00)填空项 1:_55.数据结构分为线性结构和非线性结构,带链的队

21、列属于U 5 /U。(分数:2.00)填空项 1:_56.设有定义:float x=123.4567;,则执行以下语句后的输出结果是U 6 /U。 printf(“%f/n“(int)(x*1000.5)/100.1;(分数:2.00)填空项 1:_57.以下程序运行后的输出结果是U 7 /U。 main() int m=011, n=11; printf(“%d %d/n“,m,n); (分数:2.00)填空项 1:_58.以下程序运行后的输出结果是U 8 /U。 main() int x, a=1,b=2,c=3,d=4; x=(ab)?a:b; x=(xc)?x:c; x=(dx)?x:

22、d; printf(“%d/n“,x); (分数:2.00)填空项 1:_59.有以下程序,若运行时从键盘输入:18, 11回车,则程序的输出结果是U 9 /U。 main() int a,b; printf(“Enter a,b:“); scanf(“%d,%d“, while (a!=b) while(ab) a-=b); white(ba) b-=a; printf(“%3d%3d/n“,a,b); (分数:2.00)填空项 1:_60.以下程序的功能是:将输入的正整数按逆序输出。例如:若输入 135 则输出 531。请填空。 #include stdio.h main() int n,

23、 s; printf(“Enter a number:“); scanf(“%d“, printf(“Output: “); do s=n%10; printf(“%d“,s); U10 /U; while (n!=0); printf(“/n); (分数:2.00)填空项 1:_61.以下程序中,函数 fun 的功能是计算 x2(上标)-2x6,主函数中将调用 fun 函数计算: y1=(x8)2(上标)-2(x8)6 y2=sin2(上标)(x)-2sin(x)6 请填空。 #include “math.h“ double fun(double x) return (x*x-2*x6);

24、main() double x,y1,y2; printf(“Enter x:“); scanf(“%1f“, y1=fim(U 11 /U); y2=run(U 12 /U); printf(“y1=%1f,y2=%1f/n“,y1,y2); (分数:2.00)填空项 1:_62.下面程序的功能是:将 N 行 N 列二维数组中每一行的元素进行排序,第 0 行从小到大排序,第 1 行从大到小排序,第 2 行从小到大排序,第 3 行从大到小排序,例如: (分数:2.00)填空项 1:_63.下列程序中的函数 strcpy2 ()实现字符串两次复制,即将 t 所指字符串复制两次到 s 所指内存空间

25、中,合并形成一个新字符串。例如,若 t 所指字符串为:efgh,调用 strcpy2 后,s 所指字符串为: efghefgh。请填空。 #include stdio.h #include string.h viod strcpy2(char *s,char *t) char while (*s=t); s=U 15 /U: while(U 16 /U=*p); main() char str1100=“abcd“, str2=“efgh“; strcpy2 (str1,str2); printf(“%s/n“,str1); (分数:2.00)填空项 1:_64.下面程序的运行结果是U 17

26、/U。 #include stdio.h int f(int a,int n) if(n1) return a0f(a1,n-1); else return a0; main() int aa10=12,3,4,5,6,7,8,9,10,s; s=f (aa2,4); printf(“%d/n“,s); (分数:2.00)填空项 1:_65.下面程序由两个源程序文件:t4.h 和 t4.c 组成,程序编译运行的结果是:U 18 /U。 t4.h 的源程序为: #define N 10 #define t2 (x) (x*N) t4.c 的源程序为: #include stdio.h #defi

27、ne M 8 #define f(x) (x)*M) #include “t4.h“ main() int i,j; i=f(11); j=f2(11); printf(“%d%d/n“,i,j); (分数:2.00)填空项 1:_66.下面程序的功能是建立一个有 3 个结点的单循环链表,然后求各个结点数值域 data 中数据的和, 请填空。 (分数:2.00)填空项 1:_67.有以下程序,其功能是:以二进制“写”方式打开文件 d1.dat,写入 1100 这 100 个整数后关闭文件。再以二进制“读”方式打开文件 d1.dat,将这 100 个整数读入到另一个数组 b 中,并打印输出。请填

28、空。 #include stdio.h main() FILE *fp; int i,a100,b100; fp=fopen (“d1.dat“,“wb“); for (i=0;i100;i) ai=i1; fwrite (a,sizeof(int),100,fp); fclose fp; fp=fopen(“d1.dat“,U 20 /U); fread (b,sizeof(int),100,fp); fclose(fp); for(i=0;i100;i) printf(“%d/n“,bi); (分数:2.00)填空项 1:_全国计算机等级考试二级 C 语言真题 2006 年 9 月答案解析

29、(总分:84.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.下列选项中不符合良好程序设计风格的是_。(分数:1.00)A.源程序要文档化B.数据说明的次序要规范化C.避免滥用 goto 语句D.模块设计要保证高耦合、高内聚 解析:评析:良好的程序设计风格可以使程序结构清晰合理,使程序代码便于维护,因此,程序设计风格对保证程序的质量很重要。主要应注意和考虑下述些因素:1、源程序要文挡化;2、数据说明的次序要规范化;3、语句的结构应该简单直接,不应该为提高效率而把语句复杂化,避免滥用 goto 语句。模块设计要保证低耦合、高内聚。2.从工程管理角度,软件设计般分

30、为两步完成,它们是_。(分数:1.00)A.概要设计与详细设计 B.过程控制C.软件结构设计与数据设计D.程序设计与数据设计解析:评析:从工程管理角度看,软件设计分为两步完成:概要设计与详细设计。概要设计(义称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。3.下列选项中不属于软件生命周期开发阶段任务的是_。(分数:1.00)A.软件测试B.概要设计C.软件维护 D.详细设计解析:评析:软件生命周期分为软件定义、软件开发及软件维护。其中软件开发阶段的任务中软件设计阶段可分解成概要

31、设计阶段和详细设计骱段;软件维护不属于软件开发阶段。4.在数据库系统中,用户所见数据模式为_。(分数:1.00)A.概念模式B.外模式 C.内横式D.物理模式解析:评析:数据库管理系统的三级模式结构由外模式、模式和内模式组成。夕模式,或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式,或逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。外模式是模式的部分。内模式,或存储模式,或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取力式的描述。5.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和_。(

32、分数:1.00)A.编码设计B.测试阶段C.运行阶段D.物理设计 解析:评析:数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略 评析:数据库设计以下 6 个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。6.设有如下三个关系表 (分数:1.00)A.T=RSB.RSC.T=RS D.T=R/S解析:评析:从图中可以看出,关系 T 是关系 R 和关系 S 的简单扩充,而扩充的符号为,所以答案为T=RS。7.下列叙述中正确的_。(分数:1.00)A.一个算法的空间复杂度大,则其时间复杂度也必定大B.一个算法的空间复杂度大,则其

33、时间复杂度必定小C.一今算法的时间复杂度大,则其空间复杂度必定小D.上述三种说法都不对 解析:评析:算法的复杂度主要包括时间复杂度和空间复杂度:算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度;算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数,为了能够比较客观地反映出个算法的效率,在度量个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。8.在长度为 64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为_。(

34、分数:1.00)A.63B.64 C.6D.7解析:评析:在进行顺序查找过程中,如果线性表中的第 1 个元素就是被查找元素,则只需做次比较就查找成功,查找效率最高;但如果被查找的元素是线性表中的最后个元素,或者被查找的元素根本就不在线性表中,则为了查找这个元素需要与线性表中所有的元素进行比较,这是顺序查找的最坏情况。所以对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较 n 次。9.数据库技术的根本目标是解决数据的_。(分数:1.00)A.存储问题B.共享问题 C.安全问题D.保护问题解析:评析:由于数据的集成性使得数据可为多个应用所共享,特 SU 是在网络发达的今天,数据库与网络的结合

35、扩大了数据关系的应用范围。数据的共享本身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不致性。因此,数据库设计的根本目标是要解决数据共享问题。10.对下列二叉树 (分数:1.00)A.ACBDFEG B.ACBDFGEC.ABDCGEFD.FCADBEG解析:评析:二叉树的中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。11.下列叙述错误的是_。(分数:1.00)A.一个 C 语言程序只能实现种算法 B.C 程序可以由多个程序文件组成

36、C.C 程序可以由个或多个函数组成D.一个 C 函数可以单独作为个 C 程序文件存在解析:评析:一个 C 语言程序可以实现多种算法。个 C 程序可以由个或多个源程序文件组成,个源程序文件由个或多个函数组成,构成 C 语言程序的基本单位是函数,函数也是 C 程序中模块化程序设计的基础,C 函数可分为标准库函数和用户定义函数两类。12.下列叙述中正确的是_。(分数:1.00)A.每个 C 程序文件中都必须要有个 main()函数B.在 C 程序中 main()函数的位置是固定的C.C 程序中所有函数之间都可以相互调用,与函数所在位置无关D.在 C 程序的函数中不能定义另个函数 解析:评析:每个 C

37、 程序由多个 C 程序文件组成,而每个 C 程序都必须有一个 main()函数,故每个C 程序文件中都必须有个 main()函数的说法是错误的。在 C 程序中所有函数都是平行的,即在定义函数时是相互独立的,个函数并不能从属于另个函数,即函数不能嵌套定义,函数间可以相互调用,但不能调用 main()函数,main()函数的位置也不是固定的。13.下列定义变量的语句中错误的是_。(分数:1.00)A.int _int;B.double int_;C.char For;D.float US$; 解析:评析:C 语言中用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符,

38、C 语言规定标识符能由字母、数字和下划线三种字符组成,且第个字符必须为字母或下划线。选项 D 中含有“$”,故不符合标识符的定义。14.若变量 x、y 己正确定义并赋值,以下符合 C 语言语法的表达式是_。(分数:1.00)A.x,y=x- B.x1=yC.x=x10=xyD.double(/10解析:评析:赋值表达式的左边不能为算式,故选项 B、c 错误;选项 D 为强制类型的转换,其书写形式为:(类型名)(表达式),即正确书写应为:(double)x/10 或(double)(x/10);选项 A 为逗号表达式符合C 语言语法。15.以下关于逻辑运算符两侧运算对象的叙述中正确的是_。(分数

39、:1.00)A.只能是整数 0 或 1B.只能是整数 0 或非 0 整数C.可以是结构体类型的数据D.可以是任意合法的表达式 解析:评析:逻辑运算符两侧的运算对象不但可以是 0 和 1,也可以是任意基本类型或指针类型的数据,还可以是任意合法表达式。16.若有定义 int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x):(y)中的条件表达式(x-y)等价的是_。(分数:1.00)A.(x-yB.(x-yC.(x-y0|x-y0) D.(x-y=0)解析:评析:“(x-y)?(x):(y)”的求解顺序是:先判断 x-y 的值,如果为非 0(真),则执行X,从而表达式返回 X的值

40、;如果 0(假),则执行 y,从而表达式返回 y的值。相当于“或”的关系,所以选项 C 正确。17.有以下程序 main() int x,y,z; x=y=1; z=x,y,y; printf(“%d,%d,%d/n“,x,y,z); 程序运行后的输出结果是_。(分数:1.00)A.2,3,3B.2,3,2C.2,3,1 D.2,2,1解析:评析:x:表示在使用 x 之后,使 x 的值加 1;y:表示在使用 y 之后,使 y 的值加1;y:表示在使用 y 之前,使 y 的值加 1。此题中执行 z=x,是将 x 的值先赋给 z,所以 z=1,接下来 x 自行加 1,其结果为 2:执行 y后,y=

41、2,执行后,y=3;故答案选 C。18.设有定义:int a; float b;执行 scanf(“%2d%f“, a=10; /* 给 a 赋值 b=20; 给 b 赋值 */ printf(“ab=%d/n“,ab);/* 输出计算结果 */ 程序运行后的输出结果是_。(分数:1.00)A.ab=10 B.ab=30C.30D.出错解析:评析:在 C 语言中,注释是用于协助读者更好地理解程序,它不会被系统编译执行,此题中第处的注释内容包括:“/*给 a 赋值 b=20; 给 b 赋值 */”,故本题中“b=20;”在程序中不起作用,所以输出语句执行的 ab 的值为 100 的值,即输出为“

42、ab=10”。20.在嵌套使用 if 语句时,C 语言规定 else 总是_。(分数:1.00)A.和之前与其具有相同缩进位置的 if 配对B.和之前与其最近的 if 配对C.和之前与其最近的且不带 else 的 if 配对 D.和之前的第个 if 配对解析:评析:在嵌套使用 if 语句时,C 语言规定 else 总是和之前与其最近的且不带 else 的 if 配对。21.下列叙述中正确的是_。(分数:1.00)A.break 语句只能使用 switch 语句B.在 switch 语句中必须使用 defaultC.break 语句必须与 switch 语句中的 case 配对使用D.在 swi

43、tch 语句中,不一定使用 break 语句 解析:评析:在 switch 语句中,break 语句主要起到在执行一个 case 分支后,使流程跳出 switch 结构,即终止 switch 语句的执行,但最后个分支(default)可以不加 break 语句。22.有以下程序 main() int k=5; while(-k) printf(“%d“,k-=3); printf(“/n“); 执行后的输出结果是_。(分数:1.00)A.1 B.2C.4D.死循环解析:评析:此题中首先给 k 赋初值 5,执行 while 语句:中的表达式“-k”,k 先自行减 1 结果为 4,满足 while

44、 执行条件输出:k=k-3=4-3=1;此时输出结果为 1。返回执行 while 语句,重复上面的操作,while 后的表达式为 0,退出循环,所以最后的输出结果为 1。23.有以下程序 main() int i; for(i=1;i=40;i) if(i%5=0) if(i%8=0) printf (“%d“,i); printf(“/n“); (分数:1.00)A.5B.24C.32 D.40解析:评析:在满足 for 语句条件下,第个 if 语句的条件是指 i 先对 5 取余后,再自行加 1;第二个if 语句的条件是指:i=i1 后,再对 8 取余。设可以满足第个 if 语句的值为:x,

45、那么可以满足第二个 if 语句的值为:x2,转换为方程组: x=32,所以答案选 C。24.以下选项中,值为 1 的表达式是_。(分数:1.00)A.1-0B.1-、0 C.1-0D./0-0解析:评析:0代表 ASC码为 48 的字符,/0代表 ASC码为 0 的字符,1代表 ASC码为 49的字符,所以只有选项 B 的表达式的值为 1。25.有以下程序 fun(int x,int y)return(xy); main() int a=1,b=2,c=3,sum; sum=fun(a,b,a+b),c); printf(“%d/n“,sum); (分数:1.00)A.6B.7C.8 D.9解析:评析:在 fun(a,b,ab),c)中,先算括号内的(a,b,ab)逗号运算,即先算出 a的值,a=2;再算出 b的值,b=3;最后

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