【计算机类职业资格】国家二级(C语言)机试模拟试卷144及答案解析.doc
《【计算机类职业资格】国家二级(C语言)机试模拟试卷144及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级(C语言)机试模拟试卷144及答案解析.doc(16页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级(C 语言)机试模拟试卷 144 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.设数据结构 B=(D,R),其中 D:a,b,c,d,e,fR=(f,a),(d,b),(e,d),(c,e),(a,c)该数据结构为( )。(分数:2.00)A.线性结构B.循环队列C.循环链表D.非线性结构2.下列叙述中错误的是( )。(分数:2.00)A.循环队列空的条件是队头指针与队尾指针相同B.若二叉树没有叶子结点,则为空二叉树C.带链栈的栈底指针是随栈的操作而动态变化的D.若带链队列中只有一个元素,则队头指针与队尾指针必定相同3.某带链栈的初
2、始状态为 top=bottom=NuLL,经过一系列正常的入栈与退栈操作后,top=bottom=20。该栈中的元素个数为( )。(分数:2.00)A.1B.0C.20D.不确定4.设一棵度为 3 的树,其中度为 2,1,0 的结点数分别为 3,1,6。该树中度为 3 的结点数为( )。(分数:2.00)A.1B.2C.3D.不可能有这样的树5.下面描述错误的是( )。(分数:2.00)A.模块的独立性与模块的信息隐蔽和局部化无关B.内聚性和耦合性是模块独立程度的定性度量标准C.一个模块的内聚性越高则该模块的独立性越强D.一个模块的耦合性越高则该模块的独立性越弱6.下面属于黑盒测试方法的是(
3、)。(分数:2.00)A.错误推测法B.基本路径测试C.判定覆盖D.条件覆盖7.下面模型中为概念模型的是( )。(分数:2.00)A.实体一联系模型B.层次模型C.关系模型D.网状模型8.学生关系模式中有 D(D#,Dn,D1,DAddr。)(其属性分别为系编号、系名称、系主任和系地址)和S(S#,Sn,SG,Date,Maj,D#)(其属性分别为学号、姓名、性别、入学日期、专业和系编号)两个关系,关系 S 的主键(码)是 S#,关系 S 的外键(码)是( )。(分数:2.00)A.D#B.MajC.D1D.Dn9.关系的实体完整性要求关系中不能为空的属性是( )。(分数:2.00)A.主键属
4、性B.外键属性C.全部属性D.候选键属性10.学生选修课程的关系模式为 SC(S#,Sn,Sd,Sa,C#,G)(其属性分别为学号、姓名、所在系、年龄、课程号和成绩);C(C#,Cn,P#)(其属性分别为课程号、课程名、先选课)。关系模式中包含对主属性部分依赖的是( )。(分数:2.00)A.S#SdB.(S#,C#)CC.C#CnD.C#P#11.以下叙述中错误的是( )。(分数:2.00)A.main()是 C 语言主函数的起始B.main()作为主函数必须位于源程序的起始位置行C.main()是 C 程序执行的起始行D.main 是不可替代的主函数名12.以下叙述中错误的是( )。(分数
5、:2.00)A.在一个程序中,每个模块均可以独立编译运行B.程序“模块化”有利于任务的分解简化C.允许对函数单独进行编译,是 C 语言实现“模块化”的基础D.采用模块化结构,可以提高编程效率13.以下关于注释的叙述中错误的是( )。(分数:2.00)A.注释的边界符号“”和“*”之间不允许加入空格B.C 语言允许注释出现在程序中任意合适的地方C.注释的内容仅用于阅读,对程序的运行不起作用D.注释的边界符号“*”和“*”必须成对出现且可以嵌套14.以下是正确 C 语言标识符的是( )。(分数:2.00)A._8_B.8C.8D.-8-15.算术运算符和圆括号有不同的运算优先级,对于表达式:a+b
6、+c*(d+e),关于执行顺序,以下说法正确的是( )。(分数:2.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+14 得表达式最后结果D.先执行 a+b 得 r1,再执行 r1+c 得 r5,再执行(d+e)得 r2,最后执行 r5*r2 得表达式最后结果16.设有定义语句:double
7、x=123456:则语句 printf(“62f,30fn“,x,x);的输出结果是( )。(分数:2.00)A.12346,1230B.12345,123C.12346,123D.12345,12317.有如下程序#includestdiohmain()int x=072:printf(“dn“,x+1);程序运行后的输出结果是( )。(分数:2.00)A.073B.73C.142D.5918.有以下程序#includestdi0hvoid main()double x=314159:printf(“fn“,(int)(x*1000+05)(dfuble)1000);程序运行后的输出结果是(
8、 )。(分数:2.00)A.3142000B.3141000C.3143000D.314000019.以下选项中错误的是( )。(分数:2.00)A.printf(“sn“,s);B.printf(“dcn“,s,s);C.printf(“cn“,s-32);D.pfinff(“cn“,65);20.若有定义:int a,b,c;,想通过语句:scanf(“d,dd“,&a,&b,&(分数:2.00)A.;把 1、2、3 分别输入给变量 a、b、c,则正确的键盘输入是()。B.1,2,3回车C.1,2tab3回车D.1回车tab2tab3E.D21.有以下程序#includestdiohmai
9、n()int a=1,b=2,c=3,d=4,r=0;if(a!=1)r=1;if(b=2)r=2;else if(c!=3)r=3;else if(d=4)r=4;pfinff(“dn“,r);执行后的输出结果是( )。(分数:2.00)A.0B.4C.1D.222.若有如下形式的函数 int fun(int a,int*p,int n)调用函数之前需要对函数进行声明,则以下选项中错误的是( )。(分数:2.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(in
10、t,int*,int);23.有以下程序#includestdiohmain()int i,j=0;char a=“abl23c4d56efTgh89“;for(i=0;ai;i+)if(ai=0&ai=9)aj+j=ai;aj=0;pfinff(“s“,a);程序执行后的输出结果是( )。(分数:2.00)A.123456789abcdefghB.abcdefghC.123456789D.1234567896effgh8924.有以下程序#includestdiohmain()int a=-2,b=2;for(;,+a&-b;)printf(“d,d,“,a,b);程序执行后的输出结果是(
11、)。(分数:2.00)A.0,1,B.-1,1,0,1,C.-1,1,0,0,D.-1,1,25.若有以下程序#includestdiohint fun(int x)int y;y=x+:return y;main()int k;for(k=0;k3;k+)pfinff(“d,“,fun(k)+k);k+;执行后的输出结果是( )。(分数:2.00)A.1,5,B.0,6,C.0,4,D.1,7,26.有以下程序#includestdiohint*f(int*s)s+=2;s1+=6;*s=7;return s;main()int a5=1,2,3,4,5,*p=a;p=f(p);pfinff
12、(“d,d,d,d“,a0,a1,*p,P1);程序执行后的输出结果是( )。(分数:2.00)A.1,2,7,10B.7,8,7,8C.1,2,1,2D.7,10,7,1027.有以下程序#includestdiohmain()int a=6,i;for(i=1;i=3;i+)if(a=5)break;if(a2)a+=2;continue;a=(a-3,a+4);pfinff(“d,d“,i,a);程序执行后的输出结果是( )。(分数:2.00)A.0,6B.1,6C.8,6D.4,228.以下表达式中,其值不等于数值 3 的是( )。(分数:2.00)A.o+3B.D-AC.3-0D.d
13、-a29.有以下程序#includestdiohvoid fun(int a,int n,int flag)int i=0,j,t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(flag)if(aiaJ)t=ai;ai=aj;aj=t;elseif(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);程序运行结果正确的是( )。(分数:2.00)A.6,7,8,9,10,5,4,3,2,1,B.5,4
14、,3,2,1,6,7,8,9,10,C.6,7,8,9,10,1,2,3,4,5,D.1,2,3,4,5,6,7,8,9,10,30.下面关于编译预处理的命令行中,正确的是( )。(分数:2.00)A.#define int INTB.#define eps0001C.#DEFINE TRUED.#define E28831.有如下程序#includestdiohmain()int i,data;scanf(“d“,&data);for(i=0;i5;i+)if(idata&i2)|(idata&i3=0)continue;printf(“d,“,i);程序运行时,从键盘输入:13回车后,程序
15、输出结果为( )。(分数:2.00)A.0,24,B.1,3,5,C.0,1,23,4,5,D.0,1,2,3,32.设变量 n 已正确定义并赋值,以下不能实现自然数 1 到 n 累加求和的程序段是( )。(分数:2.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.关于数组和指针,以下说法错误的是( )。(分数:2.00)A.数组名本
16、身就是一个指针,指向数组内存的起始位置B.既可以读人数据到数组中,也可以读入数据到未赋初值的指针中C.可以让一个指针指向一个同类型的数组D.指针可以指向同类型的数组中的任意一个元素34.有下列程序#includestdiohint*f(int*s)s+=1;s1+=6;*s+=7;return s;main()int a5=1,2,3,4,5,*p;p=f(&a1);printf(“d,d,d,d“,a1,a2,*p,P1);程序执行后的输出结果是( )。(分数:2.00)A.3,9,10,5B.2,16,4,5C.2,10,10,5D.10,9,4,535.有以下程序#includestdi
17、ohdouble fun1(double a,int n)int i;double sum=00;for(i=0;in;i+)sum+=ain;return sum;void fun2(double a,in tn,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;voicmain()double a=1,2,3,4,5;double mx,mn,av;av=fun1(a,5);fun2(a,5,&mx,&mn);printf(“fffn“,av,mx,mn);程序的运行结果是( )
18、。(分数:2.00)A.500000030000001000000B.300000050000001000000C.100000050000003000000D.30000001000000500000036.设有函数说明语句:int fun(int,int);以及函数指针定义语句:int(*f)(int,int);若要使函数指针指向函数 fun 的入口地址,以下选项中正确的是( )。(分数:2.00)A.f=fun();B.*f=fun;C.f=fun;D.*f=fun();37.有如下程序#includestdiohstruet groupint first,second,third;st
19、ruet group get_rain_maxsum(int*array,int len)int i;struet group re$;resfirst=array0;ressecond=array0;resthird=array0;for(i=1;ilen;i+)if(arrayiresfirst)resfirst=arrayi;if(arrayiressecond)ressecond=arrayi;resthird+=arrayi;return res;main()int array5=9,1,3,4;struet group res=get_min_max_sum(array,5);pr
20、intf(“main=d,max=d,sum=dn“,resfirst,ressecond,resthird);程序运行后的输出结果是( )。(分数:2.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=malloc(80);,则以下叙述错误的是( )。(分数:2.00)A.可以通过指针 p 直接访问用 malloc 开辟的这块内存B.P 所指内存可以通过强制类型转换当作具有 20 个 int 型元素的一维数组来使用C.P 所指内存可以通过强制类型转
21、换当作具有 10 个 double 型元素的一维数组来使用D.P 所指内存可以通过强制类型转换当作具有 80 个 char 型元素的一维数组来使用39.设有如下类型说明语句 typedef struetint num;struetint y,m,d;date;PER;则以下定义结构体数组并赋初值的语句中错误的是( )。(分数:2.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=1001
22、,2008,8,1,1002,2006,5,20;40.C 语言中标准库函数 fputs(str,fp)的功能是( )。(分数:2.00)A.从 str 指向的文件中读一个字符串存入 fp 指向的内存B.把 str 所指的字符串输出到 fp 所指的文件中C.从 fp 指向的文件中读一个字符串存人 str 指向的内存D.把 fp 指向的内存中的一个字符串输出到 str 指向的文件二、程序填空题(总题数:1,分数:2.00)41.函数 fun 的功能是:将一副扑克牌编号为 1,2,3,53,54,以某种特定的方式洗牌,这种方式是将这副牌分成两半,然后将它们交叉,并始终保持编号为 1 的牌在最上方,
23、如第一次这样洗牌后的结果为:1,28,2,29,53,27,54。两次洗牌后的结果为:1,41,28,15,2,42,53,40,27,14,54 程序的功能是:输出经过 n 次这样洗牌后的结果。请在程序的下画线处填入正确的内容,并把下画线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1C 中。不得增行或删行,也不得更改程序的结构!试题程序:#includestdiohvoid fun(int a55,int n)int i,k;*found*int【1】55;for(i=0;in;i+)for(k=1;k=27;k+)b2*k-1=ak;*found*b【2】*k=
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 语言 模拟 试卷 144 答案 解析 DOC
