[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷12及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷12及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷12及答案与解析.doc(13页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 12及答案与解析 1 阅读以下说明和流程图,将应填入 (n)处的字句写在对应栏内。【说明】 在一个矩阵中,如果其零元素的个数大大多于其非零元素的个数时,称这样的矩阵为稀疏矩阵。若直接用一个两维数组表示稀疏矩阵,会因存储太多的零元素而浪费大量的内存空间。通常采用三元组数组表示稀疏矩阵。 稀疏矩阵的每个非零元素用一个二元组来表示:即非零元素的行号、列号和它的值。然后按某种顺序将全部非零元素的三元组存于一个数组中。例如对于以下两维数组。 int x54=1,0,0,0, 0,5,0,0, 0,0,7,2, 6,0,0,0, 0,3,0,8; 可用以
2、下数组 a来表示: int a3=5,4,7, 0,0,1, 1,1,5, 2,2,7, 2,3,2, 3,0,6, 4,1,3, 4,3,8; 其中三元数组 a的第 1行元素的值分别存储稀疏矩阵 x的行数、列数和非零元素个数。 下面的流程图描述了稀疏矩阵转换的过程。 【流程图】 注:流程图,循环开始的说明按照 “循环变量名:循环初值,循环终值,增量 ”格式 描述。 2 阅读以下函数说明和 C语言函数,将应填入 (n)处的字句写在对应栏内。 函数 2.1说明 求任意两个正整数的最大公约数的欧几里德算法。用辗转相除法求正整数 m和 n的最大公约数,并返回该公约数。 函数 2.1 void fun
3、c1(int m, int n) r=m% n; while(r 0) (1); n=r; (2); return n; 函数 2.2说明 判断 101 200之间有多少个素数,并输出所有素数。用一 个数分别去除 2到 sqrt (这个数 ),如果能被整除,则表明此数不是素数,反之是素数。 函数 2.2 void func2 ( ) int m, i, k, h=0,leap=1; printf ( “n“ ); for ( m=101;m =200;m+ ) (3); for (i=2;i =k; i+ ) if(4) leap=0;break; if ( leap ) printf ( “
4、%-4d“,m ); (5); if ( h%10=0 ) printf ( “n“ ); leap=1; printf ( “n The total is %d“, h ); 3 阅读以下说明和 C语言函数,将应填入 (n)处的字句写在对应栏内。 说明 若 S和 T是用结点大小为 1的单链表存储的两个串,试设计一个算法找出 S中第一个不在 T中出现的字符。查找过程是这样的,取 S中的一个字符 (结点 ),然后和T中所有的字符一一比较,直到比完仍没有相同的字符时,查找过程结束,否则再取 S中下一个字符,重新进行上述过程。 函数 typedef struct node char data; st
5、ruct node *next; LinkStrNode; /结点类型 typedef LinkStrNode *LinkString; /LinkString 为链串类型 LifikString S; /S 是链串的头指针 char SearchNoin ( LinkString S, LinkString T ) /查找不在 T中出现的字符 LinkStrNode *p, *q; (1); q=T; while (2) /取 S中结点字符 while(3)/进行字符比较 q=q- next; if(q=NULL) return (4); /找到并返回字符值 q=T; /指针恢复串 T的开始
6、结点 (5); printf(“theres no such character.“); return NULL: 4 阅读以下说明和 C语言函数,将应填入 (n)处的字句写在对应栏内。 说明 编写一个函数,输入为偶数时,调用函数求 1/2+?/+1/ n,当输入 n为奇数时,调用函数 1/1+1/3+1/n ( 利用指针函数 )。 函数 #include “stdio. h“, main() float peven (), podd (), dcall (); float sum; int n; while (1) scanf(“%d“, class stack float data max
7、size; int top; public: stuck(void); stack(void); bool empty(void); void push(float a); float pop(void); ; stack: :stack(void) top =0; cout “stack initialized.“ endl; stack: stack(void) cout “ stack destoryed.“ endl; bool stack: empty (void) return (1); void stack: :push(float a) if(top= =maxsize) co
8、ut “Stack is full!“ endl; return; datatop =a; (2); float stack: pop (void) if(3) cout “Stack is undcrflow !“ endl; return 0; (4); return (5); void main( ) stack s; coat “now push the data:“; for(inti=l;i =maxsize;i+ +) cout i “ “; s. push(i); coat endl; cout “now pop the data:“; for(i = 1 ;i = maxsi
9、ze ;i + + ) cout s. pop() “ “; 8 阅读以下说明和 Java代码,将应填入 (n)处的字句写在对应栏内。 说明 本程序的功能是给公司的员工 Tom, Jack, Green增加薪水。三人的职位分别是programmer, Manager, CEO。 程序由 6个类组成: WorkerTest是主类, programmer, Manager, CEO三个类,薪水增加的规则是 programmer的涨幅是 5%; Manager的是 10%; CEO也是Manager,但是它除了有 Manager的涨幅,还有 1000元的 bonus。接口 SalaryRaise提供
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 12 答案 解析 DOC
