【计算机类职业资格】二级C语言真题7及答案解析.doc
《【计算机类职业资格】二级C语言真题7及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言真题7及答案解析.doc(26页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言真题 7 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.设数据结构 B=(D,R),其中 D=a,b,c,d,e,f R=(f,A),(d,B),(e,D),(c,e),(a,c) 该数据结构为_。(分数:1.00)A.线性结构B.循环队列C.循环链表D.非线性结构2.下列叙述中错误的是_。(分数:1.00)A.循环队列空的条件是队头指针与队尾指针相同B.若二叉树没有叶子结点,则为空二叉树C.带链栈的栈底指针是随栈的操作而动态变化的D.若带链队列中只有一个元素,则队头指针与队尾指针必定相同3.某带链栈的初始状态为 top=b
2、ottom=NULL,经过一系列正常的入栈与退栈操作后,top=bottom=20。该栈中的元素个数为_。 A1 B0 c)20 D不确定 (分数:1.00)A.B.C.D.4.设一棵度为 3 的树,其中度为 2,1,0 的结点数分别为 3,1,6。该树中度为 3 的结点数为_。(分数:1.00)A.1B.2C.3D.不可能有这样的树5.下面描述错误的是_。(分数:1.00)A.模块的独立性与模块的信息隐蔽和局部化无关B.内聚性和耦合性是模块独立程度的定性度量标准C.一个模块的内聚性越高则该模块的独立性越强D.一个模块的耦合性越高则该模块的独立性越弱6.下面属于黑盒测试方法的是_。(分数:1.
3、00)A.错误推测法B.基本路径测试C.判定覆盖D.条件覆盖7.下面模型中为概念模型的是_。(分数:1.00)A.实体-联系模型B.层次模型C.关系模型D.网状模型8.学生关系模式中有 D(D#,Dn,Dl,DAddr)(其属性分别为系编号、系名称、系主任和系地址)和S(S#,Sn,SG,Date,Maj,D#)(其属性分别为学号、姓名、性别、入学日期、专业和系编号)两个关系,关系 S 的主键(码)是 S#,关系 S 的外键(码)是_。(分数:1.00)AD#B.MajC.DlD.Dn9.关系的实体完整性要求关系中不能为空的属性是_。(分数:1.00)A.主键属性B.外键属性C.全部属性D.候
4、选键属性10.学生选修课程的关系模式为 SC(S#,Sn,Sd,Sa,C#,G)(其属性分别为学号、姓名、所在系、年龄、课程号和成绩);C(C#,Cn,P#)(其属性分别为课程号、课程名、先选课)。关系模式中包含对主属性部分依赖的是_。(分数:1.00)A.S#SdB.(S#,C#)GC.C#CnD.C#P#11.以下叙述中错误的是_。(分数:1.00)A.main()是 C 语言主函数的起始B.main()作为主函数必须位于源程序的起始位置行C.main()是 C 程序执行的起始行D.main 是不可替代的主函数名12.以下叙述中错误的是_。(分数:1.00)A.在一个程序中,每个模块均可以
5、独立编译运行B.程序“模块化”有利于任务的分解简化C.允许对函数单独进行编译,是 C 语言实现“模块化”的基础D.采用模块化结构,可以提高编程效率13.以下关于注释的叙述中错误的是_。(分数:1.00)A.注释的边界符号“/”和“*”之间不允许加入空格B.C 语言允许注释出现在程序中任意合适的地方C.注释的内容仅用于阅读,对程序的运行不起作用D.注释的边界符号“/*”和“*/”必须成对出现且可以嵌套14.以下是正确 C 语言标识符的是_。(分数:1.00)A._8_B.8C.8D.-8-15.算术运算符和圆括号有不同的运算优先级,对于表达式:a+b+c*(d+e),关于执行顺序,以下说法正确的
6、是_。(分数:1.00)A.先执行(d+e)得 r2,再执行 c*r2 得 r3,再执行 a+b 得 r1,最后执行 r1+r3 得表达式最后结果B.先执行 a+b 得 r1,再执行(d+e)得 r2,再执行 c*r2 得 r3,最后执行 r1+r3 得表达式最后结果C.先执行(d+e)得 r2,再执行 c*r2 得 r3,再执行 b+r3 得 14,最后执行 a+r4 得表达式最后结果D.先执行 a+b 得 r1,再执行 r1+c 得 r5,再执行(d+e)得 r2,最后执行 r5*r2 得表达式最后结果16.设有定义语句: double x=123.456; 则语句 printf(“%6.
7、2f,%3.0f/n“,x,x); 的输出结果是_。(分数:1.00)A.123.46,123.0B.123.45,123C.123.46,123D.123.45,123.17.有如下程序 #includestdio.h main() int x=072; printf(“%d/n“,x+1); 程序运行后的输出结果是_。(分数:1.00)A.073B.73C.142D.5918.有以下程序 #includestdio.h void main() double x=3.14159; printf(“%f/n“,(int)(x*1000+0.5)/(double)1000); 程序运行后的输出结
8、果是_。(分数:1.00)A.3.142000B.3.141000C.3.143000D.3.14000019.以下选项中错误的是_。(分数:1.00)A.printf(“%s/n“,“s“);B.printf(“%d%c/n“,“s“,“s“);C.printf(“%c/n“,“s“-32);D.printf(“%c/n“,65);20.若有定义:int a,b,c;,想通过语句:scanf(“%d,%d%d“, if(a!=1)r=1; if(b=2)r=2; else if(c!=3)r=3; else if(d=4)r=4; printf(“%d/n“,r); 执行后的输出结果是_。(
9、分数:1.00)A.0B.4C.1D.222.若有如下形式的函数 int fun(int a,int*p,int n) 调用函数之前需要对函数进行声明,则以下选项中错误的是_。(分数:1.00)A.int fun(int,int,int);B.int fun(int a,int*p,int n);C.int fun(int a,int*,int);D.int fun(int,int*,int);23.有以下程序 #includestdio.h main() int i,j=0; char a=“ab123c4d56ef7gh89“; for(i=0;ai;i+) if(ai=“0“ aj=“/
10、0“; printf(“%s“,a); 程序执行后的输出结果是_。(分数:1.00)A.123456789abcdefghB.abcdefghC.123456789D.1234567896ef7gh8924.有以下程序 #includestdio.h main() int a=-2,b=2; for(;+a) printf(“%d,%d,“,a,b); 程序执行后的输出结果是_。(分数:1.00)A.0,1,B.-1,1,0,1,C.-1,1,0,0,D.-1,1,25.若有以下程序 #includestdio.h int fun(int x) int y; y=x+; return y; m
11、ain() int k; for(k=0;k3;k+)printf(“%d,“,fun(k)+k);k+; 执行后的输出结果是_。(分数:1.00)A.1,5,B.0,6,C.0,4,D.1,7,26.有以下程序 #includestdio.h int*f(int*s) s+=2; s1+=6; *s=7; return s; main() int a5=1,2,3,4,5,*p=a; p=f(p); printf(“%d,%d,%d,%d“,a0,a1,*p,p1); 程序执行后的输出结果是_。(分数:1.00)A.1,2,7,10B.7,8,7,8C.1,2,1,2D.7,10,7,102
12、7.有以下程序 #includestdio.h main() int a=6,i; for(i=1;i=3;i+) if(a=5)break; if(a%2)a+=2;continue; a=(a-3,a+4); printf(“%d,%d“,i,a); 程序执行后的输出结果是_。(分数:1.00)A.0,6B.1,6C.8,6D.4,228.以下表达式中,其值不等于数值 3 的是_。(分数:1.00)A.0+“3“B.“D“-“A“C.“3“-“0“D.“d“-“a“29.有以下程序 #includestdio.h void fun(int a,int n,int flag) int i=0
13、,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(flag) if(aiaj) t=ai;ai=aj;aj=t; else if(aiaj) t=ai;ai=aj;aj=t; main() int c10=7,9,10,8,3,5,1,6,2,4,i; fun(c,10,0); fun(c,5,1); for(i=0;i10;i+) printf(“%d,“,ci); 程序运行结果正确的是_。(分数:1.00)A.6,7,8,9,10,5,4,3,2,1,B.5,4,3,2,1,6,7,8,9,10,C.6,7,8,9,10,1,2,3,4,5,D.1,2,
14、3,4,5,6,7,8,9,10,30.下面关于编译预处理的命令行中,正确的是_。(分数:1.00)A.#define int INTB.#define eps 0.001C.#DEFINE TRUED.#define E 2.8831.有如下程序 #includestdio.h main() int i,data; scanf(“%d“, for(i=0;i5;i+) if(idata printf(“%d,“,i); 程序运行时,从键盘输入:13回车后,程序输出结果为_。(分数:1.00)A.0,2,4,B.1,3,5,C.0,1,2,3,4,5,D.0,1,2,3,32.设变量 n 已正
15、确定义并赋值,以下不能实现自然数 1 到 n 累加求和的程序段是_。(分数:1.00)A.int sum=1,i=0;while(i=n)i+;sum+=i;B.int sum=0,i=1;while(i=n)sum+=i;i+;C.int sum=0,i=0;while(in)i+;sum+=i;D.int sum=1,i=1;while(in)i+;sum+=i;33.关于数组和指针,以下说法错误的是_。(分数:1.00)A.数组名本身就是一个指针,指向数组内存的起始位置B.既可以读入数据到数组中,也可以读入数据到未赋初值的指针中C.可以让一个指针指向一个同类型的数组D.指针可以指向同类型
16、的数组中的任意一个元素34.有下列程序 #includestdio.h int*f(int*s) s+=1; s1+=6; *s+=7; return s; main() int a 5=1,2,3,4,5,*p; p=f( printf(“%d,%d,%d,%d“,a1,a 2,*p,p1); 程序执行后的输出结果是_。(分数:1.00)A.3,9,10,5B.2,16,4,5C.2,10,10,5D.10,9,4,535.有以下程序 #includestdio.h double fun1(double a,int n) int i;double sum=0.0; for(i=0;in;i+
17、) sum+=ai/n; return sum; void fun2(double a,int n,double*p,double*q) int i; *p=*q=a0; for(i=1;in;i+) if(ai*p)*p=ai; else if(ai*q)*q=ai; void main() double a=1,2,3,4,5; double mx,mn,av; av=fun1(a,5); fun2(a,5, printf(“%f%f%f/n“,av,mx,mn); 程序的运行结果是_。(分数:1.00)A.5.000000 3.000000 1.000000B.3.000000 5.00
18、0000 1.000000C.1.000000 5.000000 3.000000D.3.000000 1.000000 5.00000036.设有函数说明语句: int fun(int,int); 以及函数指针定义语句: int(*f)(int,int); 若要使函数指针指向函数 fun 的入口地址,以下选项中正确的是_。(分数:1.00)A.f=fun();B.*f=fun;C.f=fun;D.*f=fun();37.有如下程序 #includestdio.h struct group int first,second,third; ; struet group get_min_max_s
19、um(int*array,int len) int i; struct group res; res.first=array0; res.second=array0; res.third=array0; for(i=1;ilen;i+) if(arrayires.first) res.first=arrayi; if(arrayires.second) res.second=arrayi; res.third+=arrayi; return res; main() int array5=9,1,3,4; struct group res=get_min_max_sum(array,5); pr
20、intf(“min=%d,max=%d,sum=%d/n“,res.first,res.second,res.third); 程序运行后的输出结果是_。(分数:1.00)A.min=0,max=9,sum=17B.min=1,max=9,sum=16C.min=1,max=4,sum=15D.min=0,max=4,sum=1638.若有语句:void*p=malloe(80);,则以下叙述错误的是_。(分数:1.00)A.可以通过指针 p 直接访问用 malloc 开辟的这块内存B.p 所指内存可以通过强制类型转换当作具有 20 个 int 型元素的一维数组来使用C.p 所指内存可以通过强制
21、类型转换当作具有 10 个 double 型元素的一维数组来使用D.p 所指内存可以通过强制类型转换当作具有 80 个 char 型元素的一维数组来使用39.设有如下类型说明语句 typedef struct int num; structint y,m,d;date; PER; 则以下定义结构体数组并赋初值的语句中错误的是_。(分数:1.00)A.PER st2=1001,2008,8,1,1002,2006,5,20;B.PER st2=1001,2008,8,1,1002,2006,5,20;C.PER st2=1001,2008,8,1,1002,2006,5,20;D.PER st2
22、=1001,2008,8,1,1002,2006,5,20;40.C 语言中标准库函数 fputs(str,fp)的功能是_。(分数:1.00)A.从 str 指向的文件中读一个字符串存入 fp 指向的内存B.把 str 所指的字符串输出到 fp 所指的文件中C.从 fp 指向的文件中读一个字符串存入 str 指向的内存D.把 fp 指向的内存中的一个字符串输出到 str 指向的文件二、(共 18 分)(总题数:1,分数:18.00)41.给定程序中,函数 fun 的作用是:不断从终端读入整数,由变量 a 统计大于 0 的个数,用变量 c 来统计小于 0 的个数,当输入 0 时结束输入,并通过
23、形参 pa 和 pb 把统计的数据传回主函数进行输出。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h void fun(int*px,int*py) /*found*/ int 1; scanf(“%d“, /*found*/ while 2 if(k0)a+; if(k0)b+; /*found*/ 3; *px=a;*py=b; main() int x,y; fun( printf(“x=%d y=%d/n“,x,y); (分数:18.00)三、(共 18 分)(总题数:1
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 答案 解析 DOC
