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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

【计算机类职业资格】国家二级(C语言)机试模拟试卷133及答案解析.doc

1、国家二级(C 语言)机试模拟试卷 133 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列叙述中正确的是( )。(分数:2.00)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对2.下列叙述中正确的是( )。(分数:2.00)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构3.下列关于二叉树的叙述中,正确的是( )。(分数:2.00)A.叶子结点总是比度为 2 的结点少一个B.叶子结点

2、总是比度为 2 的结点多一个C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍4.软件生命周期中的活动不包括( )。(分数:2.00)A.市场调研B.需求分析C.软件测试D.软件维护5.某系统总体结构图如下图所示: (分数:2.00)A.7B.6C.3D.26.程序调试的任务是( )。(分数:2.00)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误7.下列关于数据库设计的叙述中,正确的是( )。(分数:2.00)A.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建

3、立数据字典8.数据库系统的三级模式不包括( )。(分数:2.00)A.概念模式B.内模式C.外模式D.数据模式9.有三个关系 R、S 和 T 如下: (分数:2.00)A.自然连接B.交C.投影D.并10.下列选项中属于面向对象设计方法主要特征的是( )。(分数:2.00)A.继承B.自顶向下C.模块化D.逐步求精11.以下叙述中错误的是( )。(分数:2.00)A.算法正确的程序可以有零个输入B.算法正确的程序最终一定会结束C.算法正确的程序可以有零个输出D.算法正确的程序对于相同的输入一定有相同的结果12.以下叙述中正确的是( )。(分数:2.00)A.C 语句必须在一行内写完B.C 程序

4、中的每一行只能写一条语句C.C 语言程序中的注释必须与语句写在同一行D.简单 C 语句必须以分号结束13.以下选项中关于 C 语言常量的叙述错误的是( )。(分数:2.00)A.经常被使用的变量可以定义成常量B.常量分为整型常量、实型常量、字符常量和字符串常量C.常量可分为数值型常量和非数值型常量D.所谓常量,是指在程序运行过程中,其值不能被改变的量14.以下选项中,不合法的 C 语言用户标识符是( )。(分数:2.00)A.abB.AaBcC.a 一一 bD._115.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是( )。(分数:2.00)A.x=y=5;B.x=n25;C.x+n

5、=i;D.x=5=4+l:16.设有定义: int a;float b; 执行 scanf(“2df”,&a,&b); 语句时,若从键盘输入 876 5430 则 a 和 b 的值分别是( )。(分数:2.00)A.87 和 60B.876 和 5430C.87 和 5430D.76 和 543017.有以下定义语句,编译时会出现编译错误的是( )。(分数:2.00)A.char a=x2d;B.char a=n;C.char a=a;D.char a=“aa”;18.当变量 c 的值不为 2、4、6 时,值也为”真”的表达式是( )。(分数:2.00)A.(c=2c=2&c=2&c=0)y=

6、sqrt(x); if(xB.if(x=0)y=sqrt(x); else y=sqrt(一 x);C.y=sqrt(x);D.if(x20.有以下程序: #include main() int y=10; while(y 一一); prinff(“y=dn”,y); 程序执行后的输出结果是( )。(分数:2.00)A.y=一 1B.y=0C.y=1D.while 构成无限循环21.有以下程序: #include main() int i; for(i=1;iA.5B.24C.32D.4022.有以下程序: #include main() int s; scanf(“d”,&s); while

7、(s0) switch(s) case 1:prinff(“d”,s+5); case 2:printf(“d”,s+4);break; case 3:printf(“d”,s+3);default:printf(“d”,s+1);break; scanf(“d”,&s); 运行时,若输入 1 2 3 4 5 0,则输出结果是( )。(分数:2.00)A.66656B.6566456C.66666D.666665623.以下叙述中错误的是( )。(分数:2.00)A.用户定义的函数中可以没有 return 语句B.用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值C

8、.用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D.函数的 return 语句中可以没有表达式24.有以下程序: #include void fun(char*c,intd) *c=*c+1: d=d+1: printf(“e,e,”,*c,d); main() char b=a,a=A; fun(&b,a); printf(“c,cn”,b,a); 程序运行后的输出结果是( )。(分数:2.00)A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B25.下列选项中,能正确定义数组的语句是( )。(分数:2.00)A.int Bum02008;

9、B.int num;C.int N=2008; int nunN;D.#define N 2008 int RumN;26.以下函数实现按每行 8 个输出 w 所指数组中的数据: #include void fun(int*w,int n) int i; for(i=0;iA.if(i8=0)printf(“n”);B.if(i8=0)continue;C.if(i8=0)printf(“n”);D.if(i8=0)continue;27.有以下程序: #include void fun(char*c) while(*c) if(*c=a&*c=a&six); prinff(“dn”,+(P

10、一y); 程序运行后的输出结果是( )。(分数:2.00)A.3,4B.4,1C.2,3D.1,237.有以下程序: #include #define SUB(a)(a)一(a) main() int a=2,b=3,c=5,d; d=SUB(a+b)*c; prinff(“dn”,d); 程序运行后的输出结果是( )。(分数:2.00)A.0B.一 12C.一 20D.1038.有以下程序: #include main() int a:2,b; b=a=2c=2&c=2&c=2&c=0)y=sqrt(x); if(xB.if(x=0)y=sqrt(x); else y=sqrt(一 x);C

11、.y=sqrt(x); D.if(x解析:解析:本题重点考查的知识点是:sqrt()函数。sqrt()函数的作用是计算平方根,要求输出的参数x 必须大于等于 0。题目公式的要求是无论 x 大于等于 0 还是小于 0,y 的值都为 x 绝对值的开方。选项 C中调用了 sqrt(x)函数,而没有判断 x 的正负,则 y=sqrt(x)会出错。20.有以下程序: #include main() int y=10; while(y 一一); prinff(“y=dn”,y); 程序执行后的输出结果是( )。(分数:2.00)A.y=一 1 B.y=0C.y=1D.while 构成无限循环解析:解析:y

12、 一一表示 y 使用后再自减 1。所以最后一次 y 的值为 0,条件不成立但仍要执行自减操作,y 的值为一 1,跳出循环。打印 y 的值一 1。21.有以下程序: #include main() int i; for(i=1;iA.5B.24C.32 D.40解析:解析:本题的含义是在 1 一 40 的整数的范围中,只有当 i 的值能被 5 整除,且 i+2 的值能被 8 整除时,打印 i 的值,满足这个条件的只有 32,选择 C 选项。22.有以下程序: #include main() int s; scanf(“d”,&s); while(s0) switch(s) case 1:prin

13、ff(“d”,s+5); case 2:printf(“d”,s+4);break; case 3:printf(“d”,s+3);default:printf(“d”,s+1);break; scanf(“d”,&s); 运行时,若输入 1 2 3 4 5 0,则输出结果是( )。(分数:2.00)A.66656B.6566456 C.66666D.6666656解析:解析:switch 语句的执行流程是:首先计算 switch 后面圆括号中表达式的值,然后用此值依次与各个 case 的常量表达式比较,若圆括号中表达式的值与某个 ease 后面的常量表达式的值相等,就执行此case 后面的语

14、句,执行后遇 break 语句就退出 switch 语句;若圆括号中表达式的值与所有 case 后面的常量表达式都不等,则执行 default 后面的语句。然后退出。所以输入 1 时打印 65,输入 2 时打印 6,输入 3 时打印 64,输入 4 时打印 5,输入 5 时打印 6。23.以下叙述中错误的是( )。(分数:2.00)A.用户定义的函数中可以没有 return 语句B.用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值 C.用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D.函数的 return 语句中可以没有表达式解析:解

15、析:本题重点考察函数返回值的相关知识,函数的值只能通过 return 语句返回主调函数,在函数中允许有多个 return 语句,但每次调用只能有一个 return 语句被执行,因此只能返回一个函数值。不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。因此 B 选项正确。24.有以下程序: #include void fun(char*c,intd) *c=*c+1: d=d+1: printf(“e,e,”,*c,d); main() char b=a,a=A; fun(&b,a); printf(“c,cn”,b,a); 程序运行后的输出结果是( )。(分数:2.00)

16、A.b,B,b,A B.b,B,B,AC.a,B,B,aD.a,B,a,B解析:解析:本题重点考察函数的调用,首先要了解字母对应的 ASC码。例如 A 为 65,a 为 97。即字母+1 则可得到下一个字母。其次是函数形参和实参的问题,运行过程如下:在 fun(&b,a)中,*c=a,d=65。*c+1=b,d+1=66,printf(”c,c,”*c,d);输出 b,B,因为指针 c 指向地址的值为 b,此时 b=*c=b;函数返回执行 printf(“c,cn”,b,a);输出 b,A,因此 A 选项正确。25.下列选项中,能正确定义数组的语句是( )。(分数:2.00)A.int Bum

17、02008;B.int num;C.int N=2008; int nunN;D.#define N 2008 int RumN; 解析:解析:C 语言不允许定义动态数组,定义数组的大小必须为常量表达式。A 选项错误,C 语言中数组没有此类型的定义方法;B 选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定初值的个数;C 选项错误,N 为变量,不能用来定义数组大小。因此 D 选项正确。26.以下函数实现按每行 8 个输出 w 所指数组中的数据: #include void fun(int*w,int n) int i; for(i=0;iA.if(i8=0)printf(“n”);

18、B.if(i8=0)continue;C.if(i8=0)printf(“n”); D.if(i8=0)continue;解析:解析:要按照每行 8 个输出数据的话,横线处语句的功能应该为:当 i 是 8 的倍数时(即 i8=0),输出一个换行符。因此 C 选项正确。27.有以下程序: #include void fun(char*c) while(*c) if(*c=a&*c=a&six); prinff(“dn”,+(P 一y); 程序运行后的输出结果是( )。(分数:2.00)A.3,4B.4,1C.2,3 D.1,2解析:解析:本题考查结构体数组的相关操作,dt 为结构体数组,那么指针

19、 p 指向了结构体数组的一个元素,所以 p 一x 为 1,p 一y 为 2,结果为 2,3。选项 C 正确。37.有以下程序: #include #define SUB(a)(a)一(a) main() int a=2,b=3,c=5,d; d=SUB(a+b)*c; prinff(“dn”,d); 程序运行后的输出结果是( )。(分数:2.00)A.0B.一 12C.一 20 D.10解析:解析:本题考查宏定义,宏定义只是做简单的替换,所以本题中 SUB(a+b);*c=(a+b)一(a+b)*c=一 20,所以答案为 C 选项。38.有以下程序: #include main() int a

20、:2,b; b=adata。)解析:解析:(1)题目中变量:是用来存放累加和的,因此必须初始化。 (2)题目中*p 是结构体,不能转化为 bool 型。 (3)p 是指针,只能用 p 一,不能用 p。四、程序设计题(总题数:1,分数:2.00)43.编写函数 fun,其功能是:求 ss 所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为 1,则输出 3。注意:部分源程序在文件 PROG1C 中。清勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 #includestdioh #includestringh

21、#define M 81 int fun(char*ss,charc) main() char aM,ch; void NONO(); printf(“nPlease enter a string:”);gets(a); printf(“nPlease enter a char:”);ch=getchar(); printf(“nThe number of the char is:dn”,fun(a,ch); NONO(); void NONO() *本函数用于打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。* int i; FILE*rf,*wf; char aM,hM,ch

22、; rf=fopen(“indat”,“r”); wf:fopen(“outdat”,“w”); for(i=0;i10;i+) fscanf(rf,“s”,a); fscanf(rf,“s”,b); ch=*b: fprintf(wf,“c=dn”,ch,fun(a,ch); fclose(rf);fclose(wf); (分数:2.00)_正确答案:(正确答案:int fun(char*ss,char c) int i=0: for(;*ss!=0;ss+) if(*ss=c) i+*求出 ss 所指字符串中指定字符的个数* return i: )解析:解析:本题考查:for 循环语句遍历字符串,并通过 if 条件语句,判断字符串是否结束。 从字符串中查找指定字符,需要使用循环判断结构,循环语句用来遍历字符串,循环条件为字符串没有结束,即当前字符不是0,判断语句用来判断当前字符是否为指定字符。最后返回指定字符的个数。

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