[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷39及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷39及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷39及答案与解析.doc(10页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 39 及答案与解析 1 阅读以下说明和流程图回答问题,将解答填入对应栏。 说明 “直接插入法 ”排序是一种 N2运算量的例程,只能用在 N较小的时候,其方法是:挑出第二个数将它按与第一个数大小的顺序插入,然后挑出第三个数将它按大小顺序插入到前两个数中,如此下去,一直到最后一个也插入。 注:流程中循环开始的说明按照 “循环变量:循环初值,循环终值,增量 ”格式描述。 问题 将流程图的 (1) (5)处补充完整。 2 阅读以下函数说明和 C语言函数,将应填入 (n)处的字句写在对应栏内。 说明 1 函数 int function(int a)的功
2、能是判断指定的正整数是否为素数,若是,返回 1,否则返回 0。 C函数 1 int function(int a) int yes,i; i=2;yes=1; while(i =a/2 i+; return yes; 说明 2 函数 int deleteARR(int*arr,intn)的功能是指定的有序数组压缩成各元素互不相同的有序数组,即相同数只保留一个,多余的被删除。函数返回值是互不相同的元素个数。 C函数 2 int deleteARR(int*arr,int n) int k,j; k=0;j=1; while(j n) if( (3) ) (4)=arrj; j+; return
3、(5); 3 阅读以下函数说明和 C语言函数,将应填入 (n)处的字句写在对应栏内。 说明 已知一棵二叉树用二叉链表存储, t指向根结点, p指向树中任一结点。下列算法为输出从 t到 P之间路径上的结点。 C程序 #define Maxsize 1000 typedef struct node TelemType data; struct node*1child,*rchild; BiNode,*BiTree; void Path(BiTree t,BiNode*P) BiTree*stackMaxsize,*stacklMaxsize,*q; int tagMaxsize,top=0,top
4、l; q=t; /*通过先序遍历发现 P*/ do(while(q!=NULL stacktop=q; tagtop=0; (2); if(top 0) if(stacktop=P) break; /*找到 P,栈底到栈顶为 t到 P*/ if(tagtop=1)top-; elseq=stacktop; q=q- rchild; tagtop=1; (3); top-; topl=0; while(top 0) q=stacktop; /*反向打印准备 */ topl+; (4); top-; while(5) /*打印栈的内容 */ q=stackltopl; printf(q- data
5、); topl-; 4 阅读以下函数说明和 C语言函数,将应填入 (n)处的字句写在对应栏内。 说明 某银行共发出 M张储蓄卡,每张储蓄卡拥有唯一的卡号,每天每张储蓄卡至多支持储蓄卡持有者的 N笔 “存款 ”或 “取款 ”业务。程序中用数组 cardMN+3中的每一行存放一张储蓄卡的有关信息,其中: cardi0存放第 i张卡的卡号; cardi1存放第 i张卡的余额; cardi2存放第 i张卡的当日业务实际发生笔数; cardi3 cardiN+2存放第 i张卡的当日存取款金额,正值代表存款,负值代表取款。 当持卡者输入正确的卡号、存款或取款金额后,程序进行相应的处理;若输入不正确的数据,
6、程序会提示持卡者重新输入;若输入的卡号为负数时,银行终止该卡的当日业务。 C程序 #include stdio.H #define M 6 #define N 5 long cardMN+3=9801,2000,0,9812,2000,2,9753,3000,1, 8750,500,0,9604,2800,3,),(8901,5000,5,; int locate(long cardN+3,int m,long no) int i; for(i=0;i m;i+) if(1)=no) return i; (2); main() long cardNo,money; int k; while(1
7、) printf(“请输入卡号 :n“); scanf(“%1d“, if(cardNo 0) break; k=locate(card,M,cardNo); if(k=-1) printf(“不存在 %id号的储蓄卡 n“,cardNo); continue; printf(“请输入金额 (正 值代表存款,负值代表取款 ):n“); scanf(“%id“, if(cardk1+money 0) printf(“存款余额不足,不能完成本次的取款业务 n“); continue; if(cardk2=N) printf(“已完成本卡的当日业务 n“); continue; /*处理一笔业务的数
8、据 */ cardk (3)=money; (4); (5); 5 阅读以下说明和 C+程序,将应填入 (n)处的字句写在对应栏内。 说明 下面程序是为汽车市场编制的一个程序的一部分。其中 automobile是基类。 C+程序 /Auto.h #ifndef AUTO_H #define AUTO_H class automobile (1): int miles_per_gallon; /汽车每加仑行驶公里数 float fuel_capacity; /油箱容积 public: void initialize(int in_mpg,int in_fuel); int get_mpg(voi
9、d); float get_fuel(void); float travel_distance(void); #endif /Auto.cpp #include“auto.h“ void automobile:initialize(int in_mpg,float in fuel) miles_per_gallon=in_mpg; fuel_capacity=in_fuel; ) int automobile:get_mpg() /提供一辆特定汽车每加仑公里数 return miles per_gallon; float automobile:get_fuel() /提供油箱容积 return
10、 fuel_capacity; float automobile:travel_distance() return (2) /car.h #ifndef CAR_H #define CAR_H #include“auto.h“ class car: (3) int Total_doors; public: void initialize(int in_mpg,float in_fuel,int doors=4); int doors(void); ; #endif /car.cpp #include“car.h“ void car:initialize(int in_mpg,float in_
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 39 答案 解析 DOC
