[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷40及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷40及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷40及答案与解析.doc(9页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 40 及答案与解析 1 阅读以下说明和流程图,回答问题将解答填入对应栏。 说明 本流程图实现采用递归函数来求一个整数数组中从元素 0到元素 n中的最小值。该算法思想是这样的,首先我们假设有一个求数组中最小元素的函数,然后,在求某一具有 n的元素的数组的最小值时,只要求将前 n-1的元素的最小值与第 n个元素比较即可。不断地重复这一过程,直到数组中只剩下一个元素,那么它必定是最小值。 注: int min(int X,int y)为返回两数中最小数的函数。 int minInArray(int a,int n)为返回数组中最小数的函数。 min
2、A为数组中最小值。 问题 l 将流程图的 (1) (4)处补充完整。 问题 2 min()函数的定义为 (5)。 2 阅读以下函数说明和 C语言函数,将应填入 (n)处的字句写在对应栏内。 说明 1 本程序输入一字符串,并将其中的大写字母变成小写字母。 C函数 1 #include stdio.h void main() int i=0; char s120; printf(“Enter a string.n“); scanf(“%s“,s); while( (1) ) if( (2) ) si=si-A+a; i+; printf(“%sn“,S); 说明 2 本程序用二分法,在已按字母次序
3、从小到大排序的字符数组 listlen中,查找字符 c,若 c在数组中,函数返回字符 c在数组中的下标,否则返回 -1。 C函数 2 int search(char list, char c,int len) ( intlow=0, high=len-1,k; while( (3) ); k=(10w+high)/2; if( (4) ) return k; else if( (5) )high=k-1; else low=k+1; return -1; 3 阅读以下函数说明和 C语言函数,将应填入 (n)处的字句写在对应栏内。 说明 函 数 void diff(Node*A,Node*B,N
4、ode*r)的功能是:根据两个由整数按升序构成的单链表 L1 和 L2(分别由 A,B指向 )构造一个单链表 L3(由 *r指向 ),要求 L3 中的所有整数都是 L1,并且不是 L2 中的整数,还要求 L3 中的所有整数都两两不等。 C函数 #include malloc.h typedef struct node int data; struct node*next; Node; void diff(Node*A,Node*B,Node*r) int lastnum; Node*P; *r=NULL; if(!A) return; while(1) if(A- data B- data)
5、lastnum=A data; p=(Node*)malloc(sizeof(Node); P- data=lastnum; P- next=*r; (2); do A=A- next; while( (3) ; else iffA- data B- data) B=B- next; else (4); lastnum=A- data; while (A while(A) lastnum=A- data; p=(Node*)malloc(sizeof(Node); P- data=lastnum; (5); *r=P; while(A 4 阅读以下函数说明和 C语言函数,将应填入 (n)处的字
6、句写在对应栏内。 说明 设一个环上有编号为 0 n-1的 n粒颜色不尽相同的珠子 (每粒珠子颜色用字母表示, n粒珠子的颜色由输入的字符串表示 )。从环上的某两粒珠子间剪开,则环上珠子形成一个序列然后按以下规则从序列中取走珠子:首先从序列左端取走所有连续的同色珠子;然后从序列右端在剩下的珠子中取走所有连续的同色珠子 ,两者之和为该剪开处可取走珠子的粒数。在不同位置剪开,能取走的珠子也不尽相同。 本程序所求的是在环上哪个位置剪开,按上述规则可取走的珠子粒数最多。程序中用数组存储字符串。例如: 10粒珠子颜色对应字符串为 “aaabbbadcc”,在 0号珠子前剪开,序列为 aaabbbadcc,
7、从左端取走 3粒 a色珠子,从右端取走 2粒 c色珠子,共取走 5粒珠子。若在 3号珠子前剪开,即 bbbadccaaa,共取走 6粒珠子。 C函数 int count(char*s,int start,int end) inti,c=0,color=sstart,step=(start end)?-1:1; for(i=start;si=color;i+=step) if(step 0 (2) ; return c; void main() char t,s120; int i,j,C,len,maxc,cut=0; printf(“请输入环 上代表不同颜色珠子字符串 :“); scanf(
8、“%s“,s ); len=strlen(s); for(i=maxc=0;i len;i+) /*尝试不同的剪开方式 */ c=count(s,0,len-1); if(c len) C+=count( (3); if(c maxc)cut=i;maxc=c; ) /*数组 s的元素循环向左移动一个位置 */ t=s0; for(j=1;i len;i+) (4); (5); printf(“在第 %d号珠子前面剪开,可以取走 %d个珠子 .n“,cut,maxc); 5 阅读以下说明和 C+程序,将应填入 (n)处的字句写在对应栏内。 说明 下面程序实现十进制向其它进制的转换。 C+程序
9、#include“ioStream.h“ #include“math.h“ #include typedef struct node int data; node*next; Node; Class Transform DUDlic: void Trans(int d,int i); /d为数字 ;i为进制 void print(); private: Node*top; ; void Transform:Trans(int d,int i) int m,n=0; Node*P; while(d 0) (1); d=d/i; p=new Node; if(!n) p- data=m; (2);
10、 (3); n+; else p- data=m; (4); (5); void Transform:print() Node*P; while(top!=NULL) p=top; if(p- data 9) cout data+55; else cout data; top=p- next; delete p; 6 阅读以下说明和 Java程序,将应填入 (n)处的字句写在对应栏内 说明 以下程序的功能时三角形、矩形和正方形的面积输出。 程序由 5个类组成: areatest是主类,类 Triangle, Rectangle和 Square分别表示三角形、矩形和正方形,抽象类 Figure提
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 40 答案 解析 DOC
