[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷44及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷44及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷44及答案与解析.doc(9页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 44及答案与解析 1 下面的流程图,用来完成求字符串 t在 s中最右边出现的位置。其思路是:做一个循环,以 s的每一位作为字符串的开头和 t比较,如果两字符串的首字母是相同的,则继续比下去,如果一直到 t的最后一个字符也相同,则说明在 s中找到了一个字符串 t;如果还没比较到 t的最后一个字符,就已经出现字符串不等的情况,则放弃此次比较,开始新一轮的比较。当在 s中找到一个字符串 t时,不应停止寻找 (因为要求的是求 t在 s中最右边出现位置 ),应先记录这个位置 pos,然后开始新一 轮的寻找,若还存在相同的字符串,则更新位置的记录,直到循
2、环结束,输出最近一次保存的位置。如果 s为空或不包含 t,则返回 -1。 注:返回值用 pos表示。 问题 将流程图的 (1) (5)处补充完整。 2 说明 1 函数 void convelt(chal *a,int n)是用递归方法将一个正整数 n按逆序存放到一个字符数组 a中,例如, n=123,在 a中的存放为 3、 2、 1。 C函数 1 void convert(char *a, int n) int i; if(i=n/10)!=0; convert( (1) , i); *a= (2) ; 说明 2 函数 int index(char *s, char *t)检查字符串 s中是否
3、包含字符串 t,若包含,则返回 t在 s中的开始位置 (下标值 ),否则返回 -1。 C函数 2 int index(char *s, char *t) int i, j=0; k=0; for(i=0; si!: 0; i+) ( for( (3) ; (tk!=0) if( (5) ) return(i); return(-1); 3 函数 Node *difference(A,B)用于求两个集合之差 C=A-B,即当且仅当 e是 A中的一个元素,但不是 B中的元素时, e是 C中的元素。集合用有序链表实现,用一个空链表表示一个空集合,表示非空集合的链表根据元素之间按递增排列。执行C=A-
4、B之后,表示集合 A和 B的链表不变,若结果集合 C非空,则表示其链表 根据元素之值按递增排列。函数 append()用于在链表中添加节点。 C函数 typedef struct node int element; struct node *link; Node; Node *A, *B, *C; Node *append(last, e) Node *last; int e; last- link=(Node *)malloc(sizeof(Node); last- link- element=e; return(last- link); Node *difference(A,B) Node
5、 *A, *B; Node *c, *last; C=last=(Node *)malloc(sizeof(Node); while( (1) ) if(A- element B- element) last=append(last, A- element); A=A- link: else if( (2) ) A: A- link; B: B- link; elSe (3) ; while( (4) ) last=append(last, A- element); A=A- link: (5) ; last=c; c=c- link; free(last); return(c); 4 为参加
6、网球比赛的选手安排比赛日程。 设有 n(n=2k)位选手参加网球 循环赛,循环赛共进行 n-1天,每位选手要与其他n-1位选手赛一场,且每位选手每天赛一场,不轮空。试按此要求为比赛安排日程。 设 n位选手被顺序编号为 1,2,n 。比赛的日程表是一个 n行 n-1列的表, i行 j列的内容是第 i号选手第 j天的比赛对手。用分治法设计日程表,就是从其中一半选手 (2m-1位 )的比赛曰程,导出全体 (2m位 )选手的比赛日程。从只有 2位选手的比赛日程出发,反复这个过程,直到为 n位选手安排好比赛日程为止。 C函数 #include stdio.h #define MAXN 64 int aM
7、AxN+1MAXN; void main() int twoml, twom, il,j,m,k; printf(“指定 n(n=2的 k次幂 )位选手,清输入 k。 n“); scanf(“%d“, a11=2; /*预设 2位选手的比赛日程 */ a21=1; m=1;twoml=1; while(m k) (1) ; twoml+=twoml; /*为 2m位选手安排比赛日程 */ (2) ; /*填日程表的左下角 */ for(il=twoml+l; il =twom; i1+) for(j=1; j =twoml-1; j+) ai1J=ai1-twomlj+twoml; (3) ;
8、 for(i1=2;i1 =twom; i1+)ai1twoml=ai1-1twom1+l; for(j=twoml+1; j twom; j+) for(i1=1; i1 twoml;i1+) ai1j=ai1+1j-1; (4) ; /*填日程表的右下角 */ for(j=twoml; j twom;j+) for(ii=i; i1 =twoml;i1+) (5) ; for(i1=1;i1 =twom;i1+) for(j=1; J twom;j+) printf(“%4d“, ai1J); printf(“n“); printf(“n“); 5 下而程序实现十进制向其他进制的转换。 C
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 44 答案 解析 DOC
