[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷12及答案与解析.doc

上传人:花仙子 文档编号:507356 上传时间:2018-11-29 格式:DOC 页数:13 大小:132.50KB
下载 相关 举报
[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷12及答案与解析.doc_第1页
第1页 / 共13页
[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷12及答案与解析.doc_第2页
第2页 / 共13页
[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷12及答案与解析.doc_第3页
第3页 / 共13页
[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷12及答案与解析.doc_第4页
第4页 / 共13页
[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷12及答案与解析.doc_第5页
第5页 / 共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提供

10、了一个增加薪水的方法 raise()。 java程序 public class WorkerTest public WorkerTest( ) public static void main( String args) Programmer programmer = new Programmer( “Tom“ ,3000); Manager manager = new Manager( “Jack“ ,4000); CEO ceo = new CEO( “Green“ ,4000); Worker worker = new Worker3; programmer, raise( ); mana

11、ger, raise( ); ceo. raise( ); worker0 = programmer; worker 1 = manager; worker2 = ceo; for ( int i = 0 ;i worker, length; i + + ) System. out. prinfln (“ Name:“ + worker i. getName ( ) +“ tSalary:“ + worker i. getSalary (); public interface SalaryRaise void raise( ); public class Worker public Strin

12、g name; public double (1); public Worker( ) public String getName( ) return name; public void setName( String name) this. name = name; public double getSalary( ) return salary; public void setSalary(double salary) this. salary = salary; public class Programmer extends Worker implements (2) public Pr

13、ogrammer( ) public void raise( ) double pets=0.05; double sala = this. getSalary( ) * (1 + pers); this. setSalary (sala); public Programmer( Siring name, double salary) t this. name = name; this. salary = salary; public class Manager extends (3) implements SalaryRaise public Manager( ) public Manage

14、r(String name, double salary) this. name = name; this. salary = salary; public void raise( ) double pets = 0.1; double sala = this. getSalary() * (1 + pers); this. setSalary(sala); public class CEO extends Manager implements SalaryRaise public CEO() public CEO( String name,double salary) this. name

15、= name; this. salary = salary; public void raise( ) double bonus = 1000; (4); double sala = this. getSalary( ); (5); this. setSalary(sala); 软件水平考试(初级)程序员下午(应用技术)模拟试卷 12答案与解析 1 【正确答案】 (1)m,n,s (2) 1 (3) 0,m, 1 (4) 0,n,1 (5) i,j,xij 2 【正确答案】 (1)m=n (2)r=m%n (3)k=sqrt(m+1) (4)m%i=0 (5)h+ 3 【正确答案】 (1)p=

16、S (2)p (3)q&p- data!=q- data (4)p- data (5)p=p-next 4 【正确答案】 (1)array+10 (2)array+1 (3)*p *max (4)k=*max (5)*p=array0 5 【正确答案】 (1) Exit For (2) Option1.Value (3) getInterestRate (4) Select Case strTime (5) sngCorpus * intDays * getInterestRate() 【试题解析】 (1)此处需要查询 interestRate中数组元素的下标,即组合框中所选择项的编号。因此循

17、环遍历组合框的各项,当某项与所选项匹配时,应即刻退出循环; (2)由于数组元素 interestRate(i,j,0)对应于个人单位 ,即单选钮 Option1被选中,其Value属性为真; (3)函数最后需要返回日利率的值,其形式为:函数名 =表达式; (4)“Select Case表达式 End Case” 是 VB提供的多分支选择结构,这里需要根据用户选择的存期 strTime来确定天数; (5)此处应填入计算利息的表达式。 6 【正确答案】 (1) FileSystemObject (2) CommonDialog1.filename (3) ts.ReadAll (4) ts. Wr

18、ite Text1.Text (5) Text1.SelLength 【试题解析】 (1)FSO对象的声明格式是: Dim对象名 As New FileSystemObject; (2)文件对话框中选中的文件名称 (含磁盘路径 )包含在 filename属性中; (3)此处要获取文件的全部内容,因此需用 ReadAll方法读取整个文件; (4)此处要将文本框内容 Text1.Text更新至文件,应使用 Write方法一次性写入; (5)文本框中是否选定了内容可以根据属性 SelLength (选定长度 )是否为零来判断。 7 【正确答案】 (1)top=0? true:false (2)top

19、+(或者 top =top+1)(3)top=0 (4)top-(或者 top =top-1) (5)datatop 【试题解析】 (1)判断堆栈是否为空的条件是 top为 0,而且本函数的返回值为布尔类型,故此处应该填写 top=0? true:false; (2)数据入栈后,栈顶指针要向上移动一个单元; (3)top为 0说明堆栈已经空了,此处 if语句返回堆栈为空的提示; (4)先将栈顶指针往下移动一个单元,才可以指向要出栈的数据; (5)本行代码的功能是 返回要出栈的数据。 8 【正确答案】 (1)salary (2)SalaryRalse (3)Worker (4) super. raise() (5)sala+=bonus及其等效形式 【试题解析】 (1)从 Worker这个类的结构来看,它有两个属性 ufinle和 salary,因此这里应该填 salary; (2) (3):很显然 Programmer类和 Manager类继承于 Worker类和 SalaryRaise接口。 (4) (5): CEO类继承于 Manager类,而根据题意, CEO除了有 Managor的涨幅,还有 1000元的 bonus。所以, CEO薪水的涨幅可以使用基类相同的方法super raise(),然后再加上奖金 sala+=bonus即可。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1