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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C语言笔试-450 及答案解析(总分:96.50,做题时间:90 分钟)一、选择题(总题数:40,分数:64.00)1.下列叙述中正确的是A) 算法的效率只与问题的规模有关,而与数据的存储结构无关B) 算法的时间复杂度是指执行算法所需要的计算工作量C) 数据的逻辑结构与存储结构是一一对应的D) 算法的时间复杂度与空间复杂度一定相关(分数:2.00)A.B.C.D.2.在软件开发中,下面的任务不属于设计阶段的是( )。A) 数据结构设计 B) 给出系统模块结构C) 定义模块算法 D) 定义需求并建立系统模块(分数:1.00)A.B.C.D.3.按照“先进先出”组织数据的数据结构是( )。A

2、) 队列 B) 栈 C) 双向链表 D) 二叉树(分数:2.00)A.B.C.D.4.简单的交换排序方法是( )。A) 快速排序 B) 选择排序C) 堆排序 D) 冒泡排序(分数:2.00)A.B.C.D.5.没有关系 R和 S,关系代数表达式为 R-(R-S)表示的是A) RDS B) R-S C) RUS D) RS(分数:2.00)A.B.C.D.6.在 E-R图中,用来表示实体联系的图形是( )。A椭圆形 B矩形C菱形 D三角形(分数:1.00)A.B.C.D.7.用链表表示线性表的优点是( )。A) 便于随机存取B) 花费的存储空间较顺序存储少C) 便于插入和删除操作D) 数据元素的

3、物理顺序和逻辑顺序相同(分数:1.00)A.B.C.D.8.对关系 S和只进行集合运算,结果中既包含 S中的所有元组也包含只中的所有元组,这样的集合运算称为( )。A) 并运算 B) 交运算 C) 差运算 D) 积运算(分数:1.00)A.B.C.D.9.下列说法不正确的是( )。A)一个 C语言源程序可以由一个函数组成也可以由多个函数组成B)main()中的“()”是函数的参数部分,括号内可为空,但括号不能省略C)C语言程序是以函数为基本单位的D)在 C语言程序中,注释行只能位于一条语句的后面(分数:2.00)A.B.C.D.10.下列合法的标识符是( )。 A) 123 B) #256 C

4、) a.55 D) abhj1_2_3(分数:1.00)A.B.C.D.11.若有下列定义(设 int类型变量占 2个字节):floatx=123.4567;则下列语句:printf(“x=%5.2f“,x);输出的结果是( )。A) x=123.46 B) 123.4567C) x=123.4567 D) 123.46(分数:1.00)A.B.C.D.12.下列程序的输出结果是( )。main()int a,b,d25;a:d/10%9;baprintf(“%d,%d/n“,a,b) ;A) 6,1 B) 2,1 C) 6,0 D) 2,0(分数:1.00)A.B.C.D.13.有下列程序:

5、fun(int x,int y) return (x+y);main()int a=1,b=2,c=3,sum;sm=fun(a+,b+,a+B) ,c+);printf(“%d/n“,sum);执行后的输出结果是( )。A) 6 B) 7C) 8 D) 9(分数:2.00)A.B.C.D.14.有以下程序:main()int k=5;while(-k)printf(“%d“,k-=3);printf(“/n“);执行后的输出结果是_。A) 1 B) 2C) 4 D) 死循环(分数:1.00)A.B.C.D.15.若有定义 float x=1.5;int a=1,b=3,c=2;,则正确的 s

6、witch语句是A) swimh(x)case 1.0:printf(“*/n“);case 2.0:printf(“*/n“);B) switch(int)x);case 1:printf(“*/n“);case 2:printf(“*/n“);C) switch(a+b)case 1:pfintf(“*/n“);case 2+1:pfintf(“*/n“);D) switch(a-I-b)case 1:pfintf(“*/n“);case c:printf(“*/n“);(分数:1.00)A.B.C.D.16.以下程序运行后的输出结果是 #includestdio.h main() int

7、 a=1,b=2; while(a6)b+=a; a+=2; b%=10; printf(“%d, %d/n“, a, b); A) 5,11 B) 7,1 C) 7,11 D) 6,1(分数:1.00)A.B.C.D.17.以下程序运行后的输出结果是float fun(int x,int y) return(x+y);main( )int a=2,b=5,c=8;printf(“%3.0f/n“,fun(int)fun(a+c,b),a-c);A) 编译出错 B) 9 C) 21 D) 9.0(分数:2.00)A.B.C.D.18.若有以下调用语句,则不正确的 fun函数的首部是main(

8、)int a50,n;fun(n,void func2(int i);char st=“hello,friend!“;void funcl(int i)printf(“%c“,sti);if(i3)i+=2;func 2(i);void func 2(int i)printf(“%c“,sti);if(i3)i+=2;funcl(i);main()int i=0;funcl(i);printf(“/n“);A) hello B) hel C) hlo D) hlm(分数:1.00)A.B.C.D.23.下列叙述错误的是( )。A) 函数名是属于用户标识符,需符合 C语言对标识符的规定B) 形参

9、只能是变量C) 为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名D) 函数中定义的变量可以与其他函数中的变量同名(分数:2.00)A.B.C.D.24.下列合法的字符型常量是( )。A) /x13 B) /081 C) 65 D) “/n/(分数:2.00)A.B.C.D.25.以下程序运行后的输出结果是#includestdio.hmain( )int i=5;doif(i%3=1 if(i%5=2)printf(“*%d“,i);break;i+:while(i!=0);printf(“/n“);A) %7 B) *3*5 C) *5 D) *2*6(分数:2.00)A.B

10、.C.D.26.表达式 3.6-5/2+1.2+5%2的值是( )。A) 4.3 B) 4.8 C) 3.3 D) 3.8(分数:1.00)A.B.C.D.27.设有以下说明语句typedef structint n;char ch8;PER;则下面叙述中正确的是A) PER是结构体变量名 B) PER 是结构体类型名C) typedef struct是结构体类型 D) struct 是结构体类型名(分数:2.00)A.B.C.D.28.若运行以下程序时,从键盘输入 ADescriptorCR(CR表示回车),则下面程序的运行结果是( )。#includestdio.hmain()char c

11、;int v0=1,v1=0,v2=0;do switch(c=getchar()casea:caseA:casee:caseE:casei:caseI:caseo:caseO:caseu:caseU:v1+=1:default:v0+=1;v2+=1;while(c!=/n);printf(“v0=%d,v1=%d,v2=%d/n“,v0,v1,v2);A) v0=7,v1=4,v2=7 B) v0=8,v1=4,v2=8C) v0=11,v1=4,v2=11 D) v0=13,v1=4,v2=12(分数:2.00)A.B.C.D.29.设变量已正确定义,则下列能正确计算 f=n!的程序段是

12、( )。A) f=0;for(i=1 ;i=n;i+ +) f*=i;B) f=1;for(i=1;in;i+ +) f*=i;C) f=1;for(i=n;i1;i+ +)f*=i;D) f=1;for(i=n;i=2;i-)f*=i;(分数:2.00)A.B.C.D.30.下面程序的运行结果是#includestdio.hmain( )int a=1,b=10;dob-=a;a+;while(b-0);printf(“a=%d,b=%d/n“,a,b);A) a=3,b=11 B) a=2,b=8 C) a=1,b=-1 D) a=4,b=9(分数:2.00)A.B.C.D.31.函数调用

13、 strcat(strcpy(str1,str2),str3)的功能是( )。A) 将字符串 str1复制到字符串 str2中后再连接到字符串 str3之后B) 将字符串 str1连接到字符串 str2之后再复制到字符串 str3之后C) 将字符串 str2复制到字符串 sir1中后再将字符串 str3连接到字符串 str1之后D) 将字符串 str2连接到字符串 str1之后再将字符串 str1复制到字符串 str3中(分数:2.00)A.B.C.D.32.已知学生记录描述为:struct studentint no;char name20,sex;structint year,month,

14、day;birth;struct student s;设变量 s中的“生日”是“1984 年 11月 12日”,对“birth”正确赋值的程序段是( )。A) year=1984;month=11;day=12;B) s.year=1984;s.month=11;s.day=12;C) birth.year=1984;birth.month=11;birth.day=12;D) s.birth.year=1984;s.birth.month=11;s.birth.day=12;(分数:1.00)A.B.C.D.33.下面结构体的定义语句中,错误的是( )。Astruct ordint x;in

15、t y;int z;struct ord a; Bstruct ordint x;int y;int z;struct ord a;Cstruct ordint x;int y;int z;a; Dstructint x;int y;int z;a;(分数:1.00)A.B.C.D.34.函数 fseek(pf,OL,SEEK_END)中的 SEEK_END代表的起始点是A) 文件开始 B) 文件末尾 C) 文件当前位置 D) 以上都不对(分数:2.00)A.B.C.D.35.读取二进制文件的函数调用形式为:fread(buffer, size, count,pf);,其中 buffer代表的

16、是_。(A) 一个文件指针,指向待读取的文件(B) 一个整型变量,代表待读取的数据的字节数(C) 一个内存块的首地址,代表读入数据存放的地址(D) 一个内存块的字节数(分数:2.00)A.B.C.D.36.在“文件包含”预处理语句的使用形式中,当#include 后面的文件名用“(双撇号)括起时,寻找被包含文件的方式是( )。A) 直接按系统设定的标准方式搜索目录B) 先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索C) 仅仅搜索源程序所在目录D) 仅仅搜索当前目录(分数:2.00)A.B.C.D.37.有以下程序:#includevoid WriteStr(char *fn,c

17、har*str)FILE*fp;fp=fopen(fn,“w“);fputs(str,fp);fclose(fp);main()WriteStr(“t1.dat“,“start“);WriteStr(“t1.dat“,“end“);程序运行后,文件 t1.dat中的内容是_。A) start B) end C) startend D) endrt(分数:2.00)A.B.C.D.38.有以下程序:#includestdio.hmain()FILE*fp;char str10;fp=fopen(“myfile,dat“,“);fputs(“abc“,ip);fclose(fp);fp=fopen

18、(“myfile.dat“,“a*“);fprintf(fp,“%d“,28);rewind(fp);fscanf(fp,“%s“,str);puts(str);fclose(fp);程序运行后的输出结果是( )。Aabc B28cCabc28 D内类型不一致而出错(分数:1.00)A.B.C.D.39.有以下程序main()char s=“Yes/n/No“,*ps=s ;puts(ps+4);*(ps+4)=0;puts(s);程序运行后的输出结果是(选项 D中的第一行是空行)_。A) n/NoYes/NoB) /NOYes C) n/NoYes/NoD) /NoYes(分数:1.00)A

19、.B.C.D.40.下列程序的输出结果是( )。#include stdio.hstruct abcint a, b, c, s;main()struct abc s2=1,2,3,4,5,6;int t;t=s0.a+s1.b;printf(“%d/n“,t);A) 5 B) 6 C) 7 D) 8(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:32.50)41.一棵二叉树第六层(根结点为第一层)的结点数最多为个 1。(分数:2.00)填空项 1:_42.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于 1 的联系。(分数:2

20、.00)填空项 1:_43.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中U /U的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(分数:2.00)填空项 1:_44.对如下图所示的二叉树进行中序遍历的结果为_。(分数:2.00)填空项 1:_45.软件设计模块化的目的是U /U。(分数:2.00)填空项 1:_46.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于 1 的联系。(分数:2.00)填空项 1:_47.数据元素之间U /U的整体称为逻辑结构。(分数:2.00)填空项 1

21、:_48.若 x和 y都是 double型变量,且 x的初值为 3.0,y 的初值为 2.0,则表达式 pow(y,fabs(x)的值为U /U。(分数:2.00)填空项 1:_49.设 x、y、z 均为 int型变量,请写出描述“x 或 y中至少有一个小于 z“的表达式 1。(分数:2.00)填空项 1:_50.以下函数 rotate的功能是:将 a所指 N行 N列的二维数组中的最后一行放到 b所指二维数组的第 0列中,把 a所指二维数组中的第 0行放到 b所指二维数组的最后一列中,b 所指二维数组中其他数据不变。#define N 4void rotade(int aN,int bN)in

22、t i,j;for(i=0;iN;i+)biN-1=U /U;U /U:aN-1i;(分数:2.00)填空项 1:_51.下述程序的输出结果是_。long fun5(int n)long s;if(n=1)|(n=-2)s=2:elses=n+fun5(n-1);return(s):main()long x;x=fun5(4);printf(“%1d/n“,x);(分数:4.00)填空项 1:_52.以下程序的输出结果是_。#includestdio.h#includestring.hchar*fun(char*t)char*p=t;return(p+strlen(t)/2);main()ch

23、ar*str=“abcdefgh“;str=fun(str);puts(str);(分数:2.50)填空项 1:_53.以下程序运行后的输出结果是_。#includestdio.hint a=5;void fun(int b)int a=10; a+=b; printf(“%d“, a);main()int c=20;fun(c); a+=c; printf(“%d/n“, a);(分数:2.00)填空项 1:_54.以下程序运行后的输出结果是U /U。#include stdio.hmsin()int i,n=0,0,0,0,0;for(i=1;i=4;i+)ni=ni-1*2+1;prin

24、tf(“%d“,ni);(分数:2.00)填空项 1:_55.一棵二又树的中序遍历结果为 DBEAFC,前序遍历结果为 ABDECF,则后序遍历结果为_。(分数:2.00)填空项 1:_二级 C语言笔试-450 答案解析(总分:96.50,做题时间:90 分钟)一、选择题(总题数:40,分数:64.00)1.下列叙述中正确的是A) 算法的效率只与问题的规模有关,而与数据的存储结构无关B) 算法的时间复杂度是指执行算法所需要的计算工作量C) 数据的逻辑结构与存储结构是一一对应的D) 算法的时间复杂度与空间复杂度一定相关(分数:2.00)A.B. C.D.解析:解析 根据时间复杂度和空间复杂度的定

25、义可知,算法的时间复杂度与空间复杂度并不相关。数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上描述数据元素之间的关系的,是独立于计算机的;数据的存储结构研究数据元素和数据元素之间的关系如何在计算机中表示,它们并非一一对应的关系。算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。2.在软件开发中,下面的任务不属于设计阶段的是( )。A) 数据结构设计 B) 给出系统模块结构C) 定义模块算法 D) 定义需求并建立系统模块(分数:1.00)A.B.C.D. 解析:解析 软件设计一般分为总体设计和详细设计两个阶段。总体设计的任务是确定软件的总体结构、子系统和模块的划分,确定模块间的接

26、口和评价模块划分质量,并进行数据分析;详细设计的任务是确定每一模块实现的定义,包括数据结构、算法和接口。3.按照“先进先出”组织数据的数据结构是( )。A) 队列 B) 栈 C) 双向链表 D) 二叉树(分数:2.00)A. B.C.D.解析:解析 队列是一种特殊的线性表,只允许在表的一端插入元素,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”,先插入的元素先被删除,是按“先进先出”的原则组织数据的。4.简单的交换排序方法是( )。A) 快速排序 B) 选择排序C) 堆排序 D) 冒泡排序(分数:2.00)A.B.C.D. 解析:解析 所谓的交换类排序方法是指借助数据

27、元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。5.没有关系 R和 S,关系代数表达式为 R-(R-S)表示的是A) RDS B) R-S C) RUS D) RS(分数:2.00)A. B.C.D.解析:解析 R-S 表示属于 R但不属于 S,R-(R-S)表示属于 R但不属于(R-S),即相当于 RS。6.在 E-R图中,用来表示实体联系的图形是( )。A椭圆形 B矩形C菱形 D三角形(分数:1.00)A.B.C. D.解析:解析 E-R 图也即实体一联系图(Entity Relationship

28、 Diagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型,构成 E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型(Entity):用矩形表示,矩形框内写明实体名;属性(Attribute):用椭圆形表示,并用无向边将其与相应的实体连接起来;联系(Relationship):用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n 或 m:n)。7.用链表表示线性表的优点是( )。A) 便于随机存取B) 花费的存储空间较顺序存储少C) 便于插入和删除操作D) 数据元素的物理顺序和逻辑顺序相同(分数:1.0

29、0)A.B.C. D.解析:解析 在链表中因为除了存放数据元素之外,还要存放指针,所以链表花费的存储空间要比顺序表还要多。在插入和删除数据元素时,只需要移动相应的记录指针即可。在链表中数据的物理结构与逻辑结构不一定相同,因为是靠指针来实现对数据的指定的,所以不能进行随机存取。8.对关系 S和只进行集合运算,结果中既包含 S中的所有元组也包含只中的所有元组,这样的集合运算称为( )。A) 并运算 B) 交运算 C) 差运算 D) 积运算(分数:1.00)A. B.C.D.解析:解析 关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。9.下列说法不正确的是

30、( )。A)一个 C语言源程序可以由一个函数组成也可以由多个函数组成B)main()中的“()”是函数的参数部分,括号内可为空,但括号不能省略C)C语言程序是以函数为基本单位的D)在 C语言程序中,注释行只能位于一条语句的后面(分数:2.00)A.B.C.D. 解析:解析 本题涉及 C语言基本的 3个知识点:C 语言是以函数为基本单位的,每一个函数完成相对独立的功能,一个程序可以包括多个函数,但有且仅有一个主函数;主函数 main()的圆括号内是填写参数的,可以没有参数,但括号不可以省略:程序的注释部分应该在“/*/”之间,它允许出现在程序的任何位置。10.下列合法的标识符是( )。 A) 1

31、23 B) #256 C) a.55 D) abhj1_2_3(分数:1.00)A.B.C.D. 解析:解析C 语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。“#”、“.”不允许出现在标识符中。11.若有下列定义(设 int类型变量占 2个字节):floatx=123.4567;则下列语句:printf(“x=%5.2f“,x);输出的结果是( )。A) x=123.46 B) 123.4567C) x=123.4567 D) 123.46(分数:1.00)A. B.C.D.解析:解析 本题考查 printf函数的格式。“%5.2f”格式符中的“f”表示以

32、带小数点的形式输出单精度或者双精度数:“5”表示指定数据输出宽度为 5;“.2”表示指定输出数据小数位占 2位数,并对截去的第一位小数做四舍五入处理。12.下列程序的输出结果是( )。main()int a,b,d25;a:d/10%9;baprintf(“%d,%d/n“,a,b) ;A) 6,1 B) 2,1 C) 6,0 D) 2,0(分数:1.00)A.B. C.D.解析:解析 算术运行符“/”、“%”的优先级处于同一级,并且两者的结合性都是从左到右。所以算术表达式运算过程为:a25/10%92%92;当逻辑运算符“main()int a=1,b=2,c=3,sum;sm=fun(a+

33、,b+,a+B) ,c+);printf(“%d/n“,sum);执行后的输出结果是( )。A) 6 B) 7C) 8 D) 9(分数:2.00)A.B.C. D.解析:解析 函数 fun(int x,int y)的功能是返回两个整型数据的和。在主函数中,变量 a,b,c 的初始值分别为 1,2,3。因此逗号表达式“a+,b+,a+b”的值等于 5,表达式 c+的值为 3,调用于函数的表达式为“fun(5,3);”,其返回值等 8。所以变量 sum的值等于 8。14.有以下程序:main()int k=5;while(-k)printf(“%d“,k-=3);printf(“/n“);执行后的

34、输出结果是_。A) 1 B) 2C) 4 D) 死循环(分数:1.00)A. B.C.D.解析:解析 while(-k)执行后 k=4,k-=3 等价于 k=k-3。15.若有定义 float x=1.5;int a=1,b=3,c=2;,则正确的 switch语句是A) swimh(x)case 1.0:printf(“*/n“);case 2.0:printf(“*/n“);B) switch(int)x);case 1:printf(“*/n“);case 2:printf(“*/n“);C) switch(a+b)case 1:pfintf(“*/n“);case 2+1:pfintf

35、(“*/n“);D) switch(a-I-b)case 1:pfintf(“*/n“);case c:printf(“*/n“);(分数:1.00)A.B.C. D.解析:解析 C 语言中,switch 语句专用于实现多分支结构程序,其特点是各分支清晰且直观。switch后面括号中可以是任何表达式,取其整数部分与各常量表达式进行比较。常量表达式中不能出现变量,且类型必须是整型、字符型或枚举型,各常量表达式各不相同。16.以下程序运行后的输出结果是 #includestdio.h main() int a=1,b=2; while(a6)b+=a; a+=2; b%=10; printf(“%

36、d, %d/n“, a, b); A) 5,11 B) 7,1 C) 7,11 D) 6,1(分数:1.00)A.B. C.D.解析:解析 a 的初值为 1,b 的初值为 2;循环中通过“b+=a;”完成 a值的累加,变量 a的值每次增加 2,所以 a的取值为 1、3、5、7,当 a=7时跳出循环,循环中变量 b不仅完成累加,还要进行“b%=10”的运算,前两次循环 b的值分别变为 3(2+1)和 6(3+3),做求余运算后 b的值不变,最后一次循环 b=6+5=11;执行“b%=10;”后 b的值变为 1。所以最后 a=7,b=1。17.以下程序运行后的输出结果是float fun(int

37、x,int y) return(x+y);main( )int a=2,b=5,c=8;printf(“%3.0f/n“,fun(int)fun(a+c,b),a-c);A) 编译出错 B) 9 C) 21 D) 9.0(分数:2.00)A.B. C.D.解析:解析 本题考查函数调用。将 a、b、c 的值代入函数调用 fun(int)fun(a+c,h),a-c)可得到fun(int)fun(10,5),-6)。函数调用分为两步:调用函数 fun(10,5);利用强制类型转换(int)将函数 fun(10,5)的返回值 15.000000转换成 15,再将其结果作为函数的实参进行第二次函数调用

38、fun(15,-6),其结果为 9。18.若有以下调用语句,则不正确的 fun函数的首部是main( )int a50,n;fun(n,void func2(int i);char st=“hello,friend!“;void funcl(int i)printf(“%c“,sti);if(i3)i+=2;func 2(i);void func 2(int i)printf(“%c“,sti);if(i3)i+=2;funcl(i);main()int i=0;funcl(i);printf(“/n“);A) hello B) hel C) hlo D) hlm(分数:1.00)A.B.C.

39、 D.解析:解析 本题首先调用函数 funcl(0),输出 st0=h,i 值变为 2,再调用函数 func2(2),输出st2=1,此时 i3,执行 i+=2,i 值变为 4,然后再调用函数 funcl(4),输出 st4=o,此时 i值大于3,函数调用结束。因此,输出结果为 hlo。23.下列叙述错误的是( )。A) 函数名是属于用户标识符,需符合 C语言对标识符的规定B) 形参只能是变量C) 为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名D) 函数中定义的变量可以与其他函数中的变量同名(分数:2.00)A.B.C. D.解析:解析 本题考查函数调用时参数的作用域。在函数

40、调用时,函数体内定义的变量的作用域在函数体内,因而在不同函数体内定义的变量可以相同,不影响各个变量的使用。24.下列合法的字符型常量是( )。A) /x13 B) /081 C) 65 D) “/n/(分数:2.00)A. B.C.D.解析:解析 C 语言的字符常量是用单引号()括起来的一个字符,也可以用以一个“/”开头的字符序列来表示字符常量。其中形式/ddd 表示 1到 3位 8进制数所代表的字符;形式/xhh 表示 1到 2位 16进制数所代表的字符。在本题中/x13表示回车符,是一个字符常量;而/081用 8进制数所代表的字符形式不正确,因为 8进制数所表示的字符中不会出现数字“8”;

41、65单引号(即撇号)括起来的不是一个字符,而是一个+进制数字:“/n“是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。25.以下程序运行后的输出结果是#includestdio.hmain( )int i=5;doif(i%3=1 if(i%5=2)printf(“*%d“,i);break;i+:while(i!=0);printf(“/n“);A) %7 B) *3*5 C) *5 D) *2*6(分数:2.00)A. B.C.D.解析:解析 本程序的功能是从 5(i的初值为 5)开始,打印满足条件“i%3 等于 1同时 i%5等于 2”的i值。第一个满足条件的 i是 7,因此

42、输出*7。26.表达式 3.6-5/2+1.2+5%2的值是( )。A) 4.3 B) 4.8 C) 3.3 D) 3.8(分数:1.00)A.B.C.D. 解析:解析 算术运算符的结合方向为“自左至右”,先按运算符的优先级别高低次序执行,同时在 C中两个整数相除或求余数其结果依旧为整数。计算后结果为 3.6-2+1.2+1=3.8。27.设有以下说明语句typedef structint n;char ch8;PER;则下面叙述中正确的是A) PER是结构体变量名 B) PER 是结构体类型名C) typedef struct是结构体类型 D) struct 是结构体类型名(分数:2.00)

43、A.B. C.D.解析:解析 本题中,typedef 声明新的类型名 PER来代替已有的类型名,PER 代表上面指定的一个结构体类型,此时,也可以用 PER来定义变量。28.若运行以下程序时,从键盘输入 ADescriptorCR(CR表示回车),则下面程序的运行结果是( )。#includestdio.hmain()char c;int v0=1,v1=0,v2=0;do switch(c=getchar()casea:caseA:casee:caseE:casei:caseI:caseo:caseO:caseu:caseU:v1+=1:default:v0+=1;v2+=1;while(c

44、!=/n);printf(“v0=%d,v1=%d,v2=%d/n“,v0,v1,v2);A) v0=7,v1=4,v2=7 B) v0=8,v1=4,v2=8C) v0=11,v1=4,v2=11 D) v0=13,v1=4,v2=12(分数:2.00)A.B.C.D. 解析:解析 本题考查的是 switch语句的应用。分析程序,do-while 语句是先执行 do后面的语句再判断是否符合 while的条件。V2+=1;语句无论读入的是什么字母(包括回车符),此语句都要执行,语句default:v0+=1;亦是如此;而语句 caseU:v1+=1;只有在读入的字母是a、A、e、E、i、I、o

45、、O、u、U时才会执行。29.设变量已正确定义,则下列能正确计算 f=n!的程序段是( )。A) f=0;for(i=1 ;i=n;i+ +) f*=i;B) f=1;for(i=1;in;i+ +) f*=i;C) f=1;for(i=n;i1;i+ +)f*=i;D) f=1;for(i=n;i=2;i-)f*=i;(分数:2.00)A.B.C.D. 解析:解析 要正确计算函数 f=n!,由 n!的数学定义可知 n!=n*(n-1)*(n-2)*1。在选项 A)中,由于 f的初值为 0,在 for循环语句中, f 依次乘以 1,2,3,n。最后计算 f=n!=O,所以选项 A)不正确。在选

46、项 B)中,f 的初值为 1,在 for循环语句中,f 依次乘以 1,2,3,(n-1)。最后计算得到 f=(n-1)!,所以选项 B)不正确。在选项 C)中,f 的初值为 1,在 for循环语句中,f 依次乘以n,n+1, n+2,所以选项 C)不正确。在选项 D)中,f 的初值为 1,在 for循环语句中,f 依次乘以n,n-1,n-2,2。最后计算 f=n!,所以选项 D)正确。30.下面程序的运行结果是#includestdio.hmain( )int a=1,b=10;dob-=a;a+;while(b-0);printf(“a=%d,b=%d/n“,a,b);A) a=3,b=11

47、 B) a=2,b=8 C) a=1,b=-1 D) a=4,b=9(分数:2.00)A.B. C.D.解析:解析 本题考查两个知识点:自加自减运算符和 do-while循环语句。do-while 循环条件是 b-0,所以循环体语句只执行一次。31.函数调用 strcat(strcpy(str1,str2),str3)的功能是( )。A) 将字符串 str1复制到字符串 str2中后再连接到字符串 str3之后B) 将字符串 str1连接到字符串 str2之后再复制到字符串 str3之后C) 将字符串 str2复制到字符串 sir1中后再将字符串 str3连接到字符串 str1之后D) 将字符串 str2连接到字符串 str1之后再将字符串 str1复制到字符串 str3中(分数:2.00)A.B.C. D.解析:解析 strcat(s1,s2)是把 s2字符串连接到 s1字符串末尾,strcpy(s1,s2)是把 s2字符串复制给s1字符串,要保证 s1能容纳下连接或复

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