[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷43及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷43及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷43及答案与解析.doc(10页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 43 及答案与解析 1 读以下说明和流程图,回答问题将解答填入对应栏。 说明 下面的流程图,用来完成求字符串 t在 s中最右边出现的位置。其思路是:做一个循环,以 s的每一位作为字符串的开头和 t比较,如果两字符串的首字母是相同的,则继续比下去,如果一直到 t的最后一个字符也相同,则说明在 s中找到了一个字符串 t;如果还没比较到 t的最后一个字符,就已经出现字符串不等的情况,则放弃此次比较,开始新一轮的比较。当在 s中找到一个字符串 t时,不应停止寻找 (因为要求的是求 t在s中最右边出现位置 ),应先记录这个位置 pos,然后开始新一轮的
2、寻找,若还存在相同的字符串,则更新位置的记录,直到循环结束,输出最近一次保存的位置。如果 s为空或不包含 t,则返回 -1。 注:返回值用 pos表示。 问题 将流程图的 (1) (5)处补充完整。 2 阅读以下函数说明和 C语言函数,将应填入 (n)处的字句写在对应栏内。 说明 1 函数 int factors(int n)的功能是判断整数 n(n =2)是否为完全数。如果 n是完全数,则函数返回 0,否则返回 -1。 所谓 “完全 数 ”是指整数 n的所有因子 (不包括 n)之和等于 n自身。例如: 28的因子为 1, 2, 4, 7, 14,而 28=1+2+4+7+14,因此 28是
3、“完全数 ”。 C函数 1 int factors(int n) int i, S; for(i=l, s=0;i =n/2;i+) if(n%i=O) (1); if( (2) )return 0; rerurn -1; 说明 2 函数 int maxint(int a,int k)的功能是用递归方法求指定数组中前 k个元素的最大值,并作为函数值返回。 C函数 2 int maxint(int a,int k) int t; if( (3) )return (4); t=maxint(a+1, (5) )j return(a0t) ? a0 : t; 3 阅读以下函数说明和 C语言函数,将应
4、填入 (n)处的字句写在对应栏内 。 说明 该程序从正文文件 test.txt中读入一批整数,并将它们按照递增的顺序存放在一个链表中。其中,函数 struct Link*insertChain(struct Link*head,structLink*k)用来寻找结点 k在链表 head中的插入位置,并插入该结点。 C程序 #include stdio.h #include stdlib.h struct Link int number; struct Link *next; struct Link *insertChain(struct Link *head,struct Link *k);
5、VOid main() struct Link *ptr, *head; FILE *fd; int hum; if(fd=fopen(“test.txt“,“r“)=NULL) print(“Cannot open this file!n“); return; head=NULL; while(fscanf(fd, “%d“,hum)=1) ptr=(1); if(!ptr) return; ptr- number=hum; ptr- next=NULL; head=insertChain(head, ptr); (2); return; struct Link *insertChain(s
6、truct Link *head,struct Link *k) struct Link *ptr,*u; ptr=head; while(ptr k k- number ptr- number) u=ptr; (3) if(ptr = head) head=k; else (4); (5); return head; 4 阅读以下函数说明和 C语言函数,将应填入 (n)处的字句写在对应栏内。 说明 这是一个模拟渡口管理的算法。某汽车轮渡口,过江渡船每次能载 10辆车过江。过江车辆分为客车类和火车类,上船有如下规定:同类车先到先上船,客车先于货车上渡船,且每上 4辆客车,才允许上一辆货车;若等
7、待客车不足 4辆,则以货车代替,若无货车等待则允许客车都上船。 程序中用到的函数有 enqueue(queue*sq, elemtype*x)在队列 sq中入队一个元素x; outqueue(queue*sq, elemtype*x)在队列 sq中出队一个元素,并将其值赋给 x;empty(queue*sq)判断队列 sq是否为空队,若为空,返回 1;否则返回 0。 C程序 #include stdio.h void pass() queue bus,truct; /*bus表示客车队列, truck表示货车队列 */ char ch; int n,tag; /* n为车号, tag为标志,
8、tag=0表示客车, tag=1表示货车 */ intcount=0, countbus=0, counttruck=0; /*分别表示上 渡船汽车数、客车数、货车数 */ while(1) printf(“输入命令 : n“); Scanf(“%c“, switch(ch) casee: caseE: printf(“车号 : n“); Scanf(“%d“, printf(“客车 货车 (01): n“); scanf(“%d“, if( (1) ) enqueue( else enqueue( break; casei: caseI: while(count 10) if( (2) bu
9、s)=0) /*客车出队 */ outqueue( printf(“上船的车号为 : n“); count+; (3) ; eise if( (4) ) /*货 车出队 */ countbus=0; outqueue( printf(“上船的车号为 : n“); count+; counttruck+; else if(empty( outqueue(n); printf(“没有 10辆车排队轮渡 n“); count+; countbus+; else printf(“没有 10辆车排队轮渡 n“); retUrn; break; caseq: caseQ:break; if(ch=q |
10、ch=Q) break; 5 阅读以下说明和 C+代码,将解答写入对应栏内。 说明 类 Stock的定义中有三处错误,分别在代码的第 04、 06、 10行。请补齐下述代码中的空缺 (1) (3),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。 C+程序 01 #include iostream.h 02 using namespace std; 03 class Stock 04 protected: 05 Stock()shares=0; share_val=0.0;Output(); 06 Stock(int n=0, double pr=3.5): (1) /初始化
11、 shares值为 n 07 share_val=pr; 08 Output(); 09 ; 10 void Stock(); 11 void Output()(cout shares ; share val endl; 12 public: 13 /成员函数 14 private: 15 /成员变量 16 int shares; 17 double share_val; 18 ; 19 20 void main() /构造三个 Stock对象 a,b,C 21 Stock a(1); 22 Stock b; 23 Stock C; Stock(); 24 /其他代码省略,且代码无输出 25
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 43 答案 解析 DOC
