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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C 语言笔试-407 及答案解析(总分:99.00,做题时间:90 分钟)一、选择题(总题数:40,分数:65.00)1.按照“先进后出”原则组织数据的结构是( )。A队列 B栈C双向链表 D二叉树(分数:1.00)A.B.C.D.2.下列叙述中正确的是_。A) 栈是“先进先出”的线性表B) 队列是“先进后出”的线性表C) 循环队列是非线性结构D) 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(分数:2.00)A.B.C.D.3.从工程管理角度,软件设计一般分为两步完成,它们是_。A) 概要设计与详细设计 B) 数据设计与接口设计C) 软件结构设计与数据设计 D) 过程设计与

2、数据设计(分数:2.00)A.B.C.D.4.下列叙述中正确的是_。A) 软件交付使用后还需要进行维护 B) 软件一旦交付使用就不需要再进行维护C) 软件交付使用后其生命周期就结束 D) 软件维护是指修复程序中被破坏的指令(分数:2.00)A.B.C.D.5.为了使模块尽可能独立,要求_。A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(分数:2.00)A.B.C.D.6.下列叙述中正确的是( )。A数据的逻辑结

3、构与存储结构必定是一一对应的B由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C程序设计语言中的数组一般是顺序存储结构因此,利用数组只能处理线性结构D以上三种说法都不对(分数:1.00)A.B.C.D.7.在数据流图(DFD) 中,带有名字的箭头表示_。A) 控制程序的执行顺序 B) 模块之间的调用关系C) 数据的流向 D) 程序的组成成分(分数:2.00)A.B.C.D.8.以下程序的功能是:给 r 输入数据后计算半径为 r 的圆面积 s。程序在编译时出错。main()/* Beginning*/int r;float s;scanf(“%d“,s=*r*r*r;pr

4、intf(“s= %f/n“,s);出错的原因是 _。A) 注释语句书写位置错误 B) 存放圆半径的变量不应该定义为整型C) 输出语句中格式描述符非法 D) 计算圆面积的赋值语句中使用了非法变量(分数:2.00)A.B.C.D.9.为了提高软件模块的独立性,模块之间最好是( )。A) 控制耦合 B) 公共耦合 C) 内容耦合 D) 数据耦合(分数:2.00)A.B.C.D.10.有三个关系 R、S 和如下;(分数:2.00)A.B.C.D.11.以下叙述正确的是A) C 语言程序是由过程和函数组成的B) C 语言函数可以嵌套调用,例如:fun(fun(x)C) C 语言函数不可以单独编译D)

5、C 语言中除了 main 函数,其他函数不可作为单独文件形式存在(分数:1.00)A.B.C.D.12.下列程序的执行结果是( )#includestdio.hmain() int a,b,c;a=b=2;c=(a+) -1;printf(“%d,%d“,a,c);c+=-a+(+b);printf(“%d,%d“,a,c);A) 3,14,1 B) 3,14,2 C) 2,04,1 D) 2,14,1(分数:2.00)A.B.C.D.13.结构化程序有 3 种基本结构组成,3 种基本结构组成的算法_。A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务C) 只能完成符合结构化的任务 D

6、) 只能完成一些简单的任务(分数:1.00)A.B.C.D.14.以下选项中,合法的一组 C 语言数值常量是( )。A028.5e-3-0xfB12.0Xa234.5e0C.1774c1.50abcD0x8A10.0003.e5(分数:1.00)A.B.C.D.15.执行下列程序段后,变量 a,b,c 的值分别是( )。int x=5,y=4;int a,b,c;a=(-x=y+)?x:+y;b=+x;c=y;A) a=5,b=5,c=5 B) a=4,b=5,c=5C) a=5,b=6,c=5 D) a=1,b=5,c=6(分数:2.00)A.B.C.D.16.可以在 C 语言中用做用户标识

7、符的是_。A) voiddefine WORDB) as_b3_123IfC) for -abccasD) 2cDoSIG(分数:1.00)A.B.C.D.17.在嵌套使用 if 语句时,C 语言规定 else 总是_。A) 和之前与其具有相同缩进位置的 if 配对B) 和之前与其最近的 if 配对C) 和之前与其最近不带 else 的 if 配对D) 和之前的第一个 If 配对(分数:1.00)A.B.C.D.18.有下列程序:#includestdio.hmain()int a=6,b=7,m=1;switch(a%2)case0:m+;break;case 1=m+;switch(b%2

8、)defaut:m+;case0:m+;break;printf(“%d/n“,m);程序运行后的输出结果是( )。A) 1 B) 2 C) 3 D) 4(分数:2.00)A.B.C.D.19.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。main()float a,b,C,t;scanf(“%f,%f,%of“,if(aB) t=a;a=b;b=t;if(aC) t=a;a=c;c=t;if(bC) t=b;b=c;c=t;printf(“%f/n%f/n%f/n“,a,b,C) ;A) 1.002.003.00B) 1.003.002.00C) 132D) 3.0000

9、002.0000001.000000(分数:2.00)A.B.C.D.20.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。main()float a,b,c,t;scanf(“%f,%f,%f“,if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;)printf(“%f/n%f/n%f/n“,a,b,c);A) 1.00 B) 1.002.00 3.003.00 2.00C) 1 D) 3.0000003 2.0000002 1.000000(分数:1.00)A.B.C.D.21.以下程序的输出结果是_。#includ

10、estdio.hmain()int a=200;#define a 100printf(“%d“,a);#undef aprintf(“%d“,a);A) 200 100 B) 100 100 C) 100 200 D) 200 200(分数:2.00)A.B.C.D.22.有下列程序:#includestdio.hint f(int x,int y)return(y-x)*x);)main()int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(“%d/n“,d);程序运行后的输出结果是( )。A10 B9 C8 D7(分数:1.00)A.B.C.D.23.C

11、 语言规定,函数返回值的类型是( )。 A) 由调用该函数时的主调函数类型所决定 B) 由 return 语句中的表达式类型所决定 C) 由调用该函数时系统临时决定 D) 由定义该函数时所指定的数值类型决定(分数:2.00)A.B.C.D.24.以下程序的输出结果是_。#includestdio.h#define FUDGE(y) 2.84+y#define PR(a) printf(“%d/n“,(int)(a)#define PRINT1(a) PR(a);putchar(/n)main()int x=2;PRINT1(FUDGE(5)*x);A) 11 B) 12 C) 13 D) 15

12、(分数:2.00)A.B.C.D.25.有以下程序int f(int n)if(n=1)return 1;else return f(n-1)+1;main()int i,j=0;for(i=1;i3;i+)j+=f(i);printf(“%d/n“,j);程序运行后的输出结果是A) 4 B) 3 C) 2 D) 1(分数:2.00)A.B.C.D.26.有下列程序:int fun1(double a)(return a*=a;)int fun2(double x,double y)double a=0,b=0;a=fun 1(x); b=fun 1(y);return(int)(a+b);m

13、ain()double w;w=fun2(1.1,2.0),程序执行后变量 w 中的值是( )。A5.21 B5 C5.0 D0.0(分数:1.00)A.B.C.D.27.下列叙述中正确的是A) 定义函数时,形参的类型说明可以放在函数体内B) return 后边的值不能为表达式C) 如果函数值的类型与返回值类型不一致,以函数值类型为准D) 如果形参与实参类型不一致,以实参类型为准(分数:2.00)A.B.C.D.28.下列叙述中错误的是( )。 A) 在 C 语言中,对二进制文件的访问速度比文本文件快 B) 在 C 语言中,随机文件以二进制代码形式存储数据 C) 语句 FILE fp;定义了一

14、个名为 fp 的文件指针 D) C 语言中的文本文件以 ASCII 码形式存储数据(分数:2.00)A.B.C.D.29.以下程序输出正确的是_。amovep(int *pint(*a) 3int n)int i,j;for(i=0;in;i+)for(j=0;jn;j+) *p=aij;p+;main()int *p,a33=1,3,5,2,4,6;p=(int*)malloc(100);amovep(p,a,3);printf(“%d%d/n“,p2p5;free(p);A) 56 B) 25 C) 34 D) 程序错误(分数:2.00)A.B.C.D.30.设有定义“char s8;in

15、t i=0;”,下列不能将一行(不超过 80 个字符)带有空格的字符串正确读入的语句或语句组是( )。Agets(s);Bwhile(si+=getchar()!=/n);si=/0;Cscanf(“%s“,s);Ddoscanf(“%c“, A) 1 2 3 4 B) 2 3 4 4 C) 4 3 3 2 D) 1 1 2 3(分数:2.00)A.B.C.D.32.设有如下的程序段: char str=“HelloWorld“; char*ptr; ptr=str; 执行上面的程序段后,*(ptr+10)的值为( )。 A) /0 B) 0 C) 不确定的值 D) 0的地址(分数:1.00)

16、A.B.C.D.33.设函数中有整型变量 n,为保证其在未赋值的情况下初值为 0,应选择的存储类别是A) auto B) register C) static D) auto 或 register(分数:2.00)A.B.C.D.34.有以下程序#includestdio.hint fun(char s)int n=0:while(*s=9double r2;float r3;union uuchar ul5long u22ua;mya;A) 30 B) 29 C) 24 D) 22(分数:2.00)A.B.C.D.36.下述程序的运行结果是( )。#includestdio.h#includ

17、estring.hmain()char*s1=“abDuj“; char*s2=“ABdUG“:int t;t=strcmp(s1,s2);printf(“%d“,t);A正数 B负数C零 D不确定的值(分数:1.00)A.B.C.D.37.有以下程序:#includestdio.h#includestring.hstruct Aint a;char b10;double c;void f(struct A t);main()struct A a=“1001“,“ZhangDa“,1098,0;f(a);printf(“%d,%s,%6.1f/n“,a.a,a.b,a.c);void f(st

18、ruct A t)(t.a=1002;strcpy(t.b,“ChangRong“);t.c=1202.0;)程序运行后的输出结果是( )。A1001,ZhangDa,1098.0 B1002,ChangRong,1202.0C1001,ChangRong,1098.0 D1002,ZhangDa,1202.0(分数:1.00)A.B.C.D.38.设有下列说明语句:strcut strint x;float y;char z;st;则下列的叙述中不正确的是( )。A) struct 是结构体类型的关键字B) st 是结构体类型名C) x、y、z 都是结构体成员名D) struct str 是

19、结构体类型名(分数:2.00)A.B.C.D.39.有以下程序:#includestdio.hmain()int a=1,b=2,c=3,x;x=(ab)c;printf(“%d/n“,x);程序的运行结果是_。A) 0 B) 1 C) 2 D) 3(分数:2.00)A.B.C.D.40.以下程序有错,错误原因是( )。main()int *p,i;char *q,ch;p=q=p=i9;i+)pi=i+1;printf(“%d/n“,a12);程序运行后的输出结果是U /U。(分数:2.00)填空项 1:_42.数据库设计分为以下 6 个设计阶段:需求分析阶段、_、逻辑设计阶段、物理设计阶段

20、、实施阶段、运行和维护阶段。(分数:2.00)填空项 1:_43.以下程序运行时,若从键盘输入:10 20 30 回车,输出的结果是U /U。#includestdio.hmain()int i=0,j=0,k=0;scanf(“% d%* d%d“, if(ab) t=a; a=b; b=t;if(ac) t=a; a=c; c=t;printf(“%d, %d, %d/n“, a, b, c);(分数:2.00)填空项 1:_46.有以下程序:#include stdio.hmain()int t=1,i=5;for(;i=0;i-) t*=i;printf(“%d/n“,t);执行后的输

21、出结果是U /U。(分数:2.00)填空项 1:_47.在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是 1。(分数:2.00)填空项 1:_48.以下程序的功能是:输出 100 以内(不含 100)能被 3 整除且个位数为 6 的所有整数,请填空。main()( int i,j;for(i=0;i10;i+)j=i*10+6;if(_)continue;printf(“%d“,j);(分数:2.00)填空项 1:_49.下列程序段中循环体的执行次数是_。a=15;b=0dob+=2;a-=2+b;while(a=0);(分数:2.00)填空项 1:_50.函数 m

22、y_cmp()的功能是比较字符串 s 和 t 的大小,当 s 等于 t 时返回 0,否则返回 s 和 t 的第一个不同字符的 ASCII 码差值,即 st 时返回正值,当 st 时返回负值。请填空。my_cmp(char *s,char*t)while(*s=*t)if(*s=/0)return 0;+s; +t;return_;(分数:2.00)填空项 1:_51.以下程序的输出结果是_。void fun( )static int a=0; a+=2;printf(“%d“,a);main( )int cc; for(cc=1;cc4;cc+)fun( ); printf(“/n“);(分数

23、:2.00)填空项 1:_52.下列程序的运行结果是_。#includestdio.hlong func(int x)long p;if(x=Ox=1)return(1);p=x*func(x-1);return(p);main()printf(“%d/n“,func(4);(分数:2.00)填空项 1:_53.若有下列定义:int a=1,2,3,4,5,6,7,8,9,10,*p=a;,则值为 3 的表达式为: 1。(分数:2.00)填空项 1:_54.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中

24、x 是数组名,n 是 x 中的数据个数,max 存放最大值,index 存放最大值所在元素的下标。请填空。#includestdlib.h#includestdio.hvoid fun(inta,int n,int *max,int *d)int i;*max=a0;*d=0;for(i=0;U /U;i+)if(*maxU /U)*max=ai;*d=i;main()int i,x20,max,index,n=10;randomize();for(i=0;in;i+)xi=rand()%50;printf(“%4d“,xi);printf(“/n“);fun(x,n,printf(“%d“,

25、x);main()fun(11);pfintf(“/n“);(分数:2.00)填空项 1:_二级 C 语言笔试-407 答案解析(总分:99.00,做题时间:90 分钟)一、选择题(总题数:40,分数:65.00)1.按照“先进后出”原则组织数据的结构是( )。A队列 B栈C双向链表 D二叉树(分数:1.00)A.B. C.D.解析:解析 栈是线性表的一种,其插入和删除运算都只在表的一端进行。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,不是最后被删除,是按先进后出的原则组织数据的。2.下列叙述中正确的是_。A) 栈是“先进先出”的线性表B) 队列是“先进后出”

26、的线性表C) 循环队列是非线性结构D) 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(分数:2.00)A.B.C.D. 解析:知识点 线性表及其顺序存储结构、栈和队列的特点、线性链表的概念评析 栈是种特殊的线性表,这种线性表只能在固定的端进行插入和删除操作,允许插入和删除的端称为栈顶,另端称为栈底。个新元素只能从栈顶一端进入,删除时,只能删除栈项的元素,即刚刚被插入的元素。所以栈又称“后进先出”表,所以选项 A 是错误的。队列可看作是插入在端进行,删除在另端进行的线性表,允许插入的端称为队尾,允许删除的端称为队头。在队列中,只能删除队头元素,队列的最后个元素定是最新入队的元素。因此

27、队列又称“先进先出”表,所以选项 B 是错误的,循环队队列是将队列存储空间的最后个位置绕到第个位置,形成逻辑上的环状空间,供队列循环使用。它的逻辑结构仍然是线性结构,所以选项 C 是错误的。有序线性表既可以采用顺序存储结构,也可以采用链式存储结构,所以选项 D 是正确的。3.从工程管理角度,软件设计一般分为两步完成,它们是_。A) 概要设计与详细设计 B) 数据设计与接口设计C) 软件结构设计与数据设计 D) 过程设计与数据设计(分数:2.00)A. B.C.D.解析:解析 从工程管理角度来看软件设计一般分为两步完成,分别是概要设计和详细设计。4.下列叙述中正确的是_。A) 软件交付使用后还需

28、要进行维护 B) 软件一旦交付使用就不需要再进行维护C) 软件交付使用后其生命周期就结束 D) 软件维护是指修复程序中被破坏的指令(分数:2.00)A. B.C.D.解析:解析 软件生命周期分为软件定义、软件开发及软件运行维护三个阶段,软件交付使用后还需要进行维护。软件运行维护阶段:软件投入运行,并在使用中不断地维护,进行必要的扩充和删改。5.为了使模块尽可能独立,要求_。A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D) 模块的内聚程度要尽量低,且各模块间的耦合程度

29、要尽量强(分数:2.00)A.B. C.D.解析:解析 在结构化程序设计中,模块划分的原则是:模块内具有高内聚度,模块间具有低耦合度。6.下列叙述中正确的是( )。A数据的逻辑结构与存储结构必定是一一对应的B由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C程序设计语言中的数组一般是顺序存储结构因此,利用数组只能处理线性结构D以上三种说法都不对(分数:1.00)A.B.C.D. 解析:解析 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。数据的存储结构(也称数据的物理结构)是指数据的逻辑结构在计算机存储空间中的存放形式。通常一种数据的逻辑结构根据需要可以表示成多种

30、存储结构。7.在数据流图(DFD) 中,带有名字的箭头表示_。A) 控制程序的执行顺序 B) 模块之间的调用关系C) 数据的流向 D) 程序的组成成分(分数:2.00)A.B.C. D.解析:评析 在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。8.以下程序的功能是:给 r 输入数据后计算半径为 r 的圆面积 s。程序在编译时出错。main()/* Beginning*/int r;float s;scanf(“%d“,s=*r*r*r;printf(“s= %f/n“,s);出错的原因是

31、 _。A) 注释语句书写位置错误 B) 存放圆半径的变量不应该定义为整型C) 输出语句中格式描述符非法 D) 计算圆面积的赋值语句中使用了非法变量(分数:2.00)A.B.C.D. 解析:解析 必须用一个符号名来代表,而且这个符号名必须在程序中进行指定,否则计算机将不能识别。9.为了提高软件模块的独立性,模块之间最好是( )。A) 控制耦合 B) 公共耦合 C) 内容耦合 D) 数据耦合(分数:2.00)A.B.C.D. 解析:解析 耦合性与内聚性是模块独立性的两个定性标准,是互相关联的。在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,有利于提

32、高模块的独立性。10.有三个关系 R、S 和如下;(分数:2.00)A.B.C.D. 解析:解析 关系 R 与 S 经交运算后所得到的关系是由那些既在 R 内又在 S 内的有序组组成的,记为RS。11.以下叙述正确的是A) C 语言程序是由过程和函数组成的B) C 语言函数可以嵌套调用,例如:fun(fun(x)C) C 语言函数不可以单独编译D) C 语言中除了 main 函数,其他函数不可作为单独文件形式存在(分数:1.00)A.B. C.D.解析:解析 C 语言中只有函数没有过程,故选项 A 错误;C 语言可以嵌套调用,故选项 B 正确;C 语言函数可以单独编译成dll 文件,故选项 C

33、 错误;C 语言中除 main 函数以外,其他函数可作为单独文件形式存在,故选项 D 也错误。12.下列程序的执行结果是( )#includestdio.hmain() int a,b,c;a=b=2;c=(a+) -1;printf(“%d,%d“,a,c);c+=-a+(+b);printf(“%d,%d“,a,c);A) 3,14,1 B) 3,14,2 C) 2,04,1 D) 2,14,1(分数:2.00)A. B.C.D.解析:解析 本题主要考查自加运算符(+、-)的使用。前缀变量“+i、-i”,在使用 i 之前,先使 i 的值加 1 或者减 1,再使用此时的表达式的值参与运算:后

34、缀变量“i+、i-”,先使用此时的表达式的值参与运算,在使用 i 之后,再使 i 的值加 1 或者减 1。题中计算表达式 c=(a+)-1 时先使用 a 的值进行计算,结果为 c=2-1=1,然后将 a 的值加 1,即执行完此语句后 a 的值是 3;表达式 c+=-a+(+b)等价于 c=c+(-a+)+(+b),c=1+(-3)+3=1,此时 a=4,b=3。13.结构化程序有 3 种基本结构组成,3 种基本结构组成的算法_。A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务C) 只能完成符合结构化的任务 D) 只能完成一些简单的任务(分数:1.00)A. B.C.D.解析:解析 结

35、构化程序的 3 种基本结构是顺序、循环、选择,任何复杂的任务都可以通过这 3 种结构来实现。14.以下选项中,合法的一组 C 语言数值常量是( )。A028.5e-3-0xfB12.0Xa234.5e0C.1774c1.50abcD0x8A10.0003.e5(分数:1.00)A.B. C.D.解析:解析 C 语言中,八进制数其开头必须是数字“0”,其数字包括 07,因此选项 A 错误。浮点数据的指数形式表示中,字母 e 或 E 之后的指数必须为整数,所以选项 C 错误。选项 D 中,整型数据10,000 的表示形式是错误的。15.执行下列程序段后,变量 a,b,c 的值分别是( )。int

36、x=5,y=4;int a,b,c;a=(-x=y+)?x:+y;b=+x;c=y;A) a=5,b=5,c=5 B) a=4,b=5,c=5C) a=5,b=6,c=5 D) a=1,b=5,c=6(分数:2.00)A.B. C.D.解析:解析 本题考查自加(+)、自减(-)运算符的使用。“+i,-i”,在使用 i 之前,先使 i 的值加 1 或者减 1,再使用此时的表达式的值参与运算;“i+,i-”,先使用此时的 i 的值参与运算,在使用 i 之后,再使 i 的值加 1 或者减 1。对于第 1 个表达式-x=4,y+=4。两者相等,-x=y+为真,所以 a=x=4,执行完此语句后 y 的值

37、是 5。第 2 个表达式 b=+x,x 的值先加 1,然后赋给 b,即 b=x+1=5;第一个表达式 c=y=5。16.可以在 C 语言中用做用户标识符的是_。A) voiddefine WORDB) as_b3_123IfC) for -abccasD) 2cDoSIG(分数:1.00)A.B. C.D.解析:评析 C 语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第个字符必须是字母或下划线。另外还需要注意的是关键字不能作标识符。选项 a 中 void,C 中 for 都为关键字,D 中 2c以字母开头。17.在嵌套使用 if 语句时,C 语言规定 else 总是_。A) 和之前

38、与其具有相同缩进位置的 if 配对B) 和之前与其最近的 if 配对C) 和之前与其最近不带 else 的 if 配对D) 和之前的第一个 If 配对(分数:1.00)A.B.C. D.解析:解析 C 语言的语法规定:else 子句总是与前面最近的不带 else 的 if 相结合。18.有下列程序:#includestdio.hmain()int a=6,b=7,m=1;switch(a%2)case0:m+;break;case 1=m+;switch(b%2)defaut:m+;case0:m+;break;printf(“%d/n“,m);程序运行后的输出结果是( )。A) 1 B) 2

39、 C) 3 D) 4(分数:2.00)A.B. C.D.解析:解析 本题考查 switch 语句。第一个 switch 语句,因为 a=6,a%2=0,所以执行 case0,将 m 加1,遇到 break 语句跳出 switch 语句,结束循环。19.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。main()float a,b,C,t;scanf(“%f,%f,%of“,if(aB) t=a;a=b;b=t;if(aC) t=a;a=c;c=t;if(bC) t=b;b=c;c=t;printf(“%f/n%f/n%f/n“,a,b,C) ;A) 1.002.003.00B

40、) 1.003.002.00C) 132D) 3.0000002.0000001.000000(分数:2.00)A.B.C.D. 解析:解析 本题考查 if 语句。第 1 个 if 语句,实现如果 ab,则交换 a、b 值的功能;第 2 个 if 语句,实现如果 ac,则交换 a、c 的值的功能;第 3 个 if 语句,实现如果 bc,则交换 b、c 的值的功能。3 个 if 语句结合起来实现的功能就是将 a、b、c 按从大到小排序。20.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。main()float a,b,c,t;scanf(“%f,%f,%f“,if(ab)t=

41、a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;)printf(“%f/n%f/n%f/n“,a,b,c);A) 1.00 B) 1.002.00 3.003.00 2.00C) 1 D) 3.0000003 2.0000002 1.000000(分数:1.00)A.B.C.D. 解析:解析 本题考查 if 语句。第 1 个 if 语句,实现如果 ab,则交换 a、b 值的功能;第 2 个 if 语句,实现如果 ac,则交换 a、c 的值的功能;第 3 个 if 语句,实现如果 bc,则交换 b、c 的值的功能。3 个 if 语句结合起来实现的功能就

42、是将 a、b、c 按从大到小排序。21.以下程序的输出结果是_。#includestdio.hmain()int a=200;#define a 100printf(“%d“,a);#undef aprintf(“%d“,a);A) 200 100 B) 100 100 C) 100 200 D) 200 200(分数:2.00)A.B.C. D.解析:评析 #define 宏名的有效范围为定义命令之后到本源文件结束,可以在程序中使用#undef 命令终止宏定义的作用域。本题由#undef 的作用,使 a 的作用范围在#define a 100 到#undef a 之间,故答案为 C22.有下

43、列程序:#includestdio.hint f(int x,int y)return(y-x)*x);)main()int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(“%d/n“,d);程序运行后的输出结果是( )。A10 B9 C8 D7(分数:1.00)A.B. C.D.解析:解析 在 C 语言中子函数 f(int x,int y)的功能是计算 y 减去 x 的差与 x 之积。所以在主函数中,调用 f(a,b)的值等于 3,调用 f(a,c)的值等于 6,然后再调用 f(3,6)的值等于 9,所以正确答案为选项 B。23.C 语言规定,函数返回值的类型

44、是( )。 A) 由调用该函数时的主调函数类型所决定 B) 由 return 语句中的表达式类型所决定 C) 由调用该函数时系统临时决定 D) 由定义该函数时所指定的数值类型决定(分数:2.00)A.B.C.D. 解析:解析 本题考查函数调用时的数值类型。函数调用时,函数返回值的类型既不由主调函数类型所决定,也不由 return 语句中的表达式类型所决定,更不是由系统临时决定,而是由定义该函数时所指定的数值类型所决定。24.以下程序的输出结果是_。#includestdio.h#define FUDGE(y) 2.84+y#define PR(a) printf(“%d/n“,(int)(a)

45、#define PRINT1(a) PR(a);putchar(/n)main()int x=2;PRINT1(FUDGE(5)*x);A) 11 B) 12 C) 13 D) 15(分数:2.00)A.B. C.D.解析:评析 在程序中如果有带实参的宏,则按#define 命令行中指定的字符串从左到右进行置换,如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中,可以得出答案为“12”。25.有以下程序int f(int n)if(n=1)return 1;else return f(n-1)+1;main()int i,j=0;for(i=1;i3;i+)j+

46、=f(i);printf(“%d/n“,j);程序运行后的输出结果是A) 4 B) 3 C) 2 D) 1(分数:2.00)A.B. C.D.解析:解析 在 main 函数中,对 f(1)和 f(2)的值进行了累加。f(1)=1f(2)=f(1)+1=2最后,j 的值为 1+2=326.有下列程序:int fun1(double a)(return a*=a;)int fun2(double x,double y)double a=0,b=0;a=fun 1(x); b=fun 1(y);return(int)(a+b);main()double w;w=fun2(1.1,2.0),程序执行后

47、变量 w 中的值是( )。A5.21 B5 C5.0 D0.0(分数:1.00)A.B.C. D.解析:解析 子函数 fun1(double a)的功能是返回 a 的平方值的整数部分。子函数 fun2(double x,double y)的功能是返回 x 的平方值的整数部分与 y 的平方值的整数部分的和。又因为题中变量 w 的定义为 double 型,函数 fun2 的定义为 int 型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量 w 的值为 5.0。27.下列叙述中正确的是A) 定义函数时,形参的类型说明可以放在函数体内B) return 后边的值不能为表达式C) 如果函数值的类型与返回值类型不一致,以函数值类型为准D) 如果形参与实参类型不一致,以实参类型为准(分数:2.00)A.B.C. D.解析:解析 定义函数时,形参的类型说明放在形参表列内说明,或放在函数定

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