ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:177KB ,
资源ID:507383      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-507383.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷37及答案与解析.doc)为本站会员(lawfemale396)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 37及答案与解析 1 阅读以下说明和流程图,填补流程图中的空缺 (1) (9),将解答填入对应栏内。 说明 假设数组 A中的各元素 A(1),A(2),A(M) 已经按从小到大排序 (M1);数组 B中的各元素 B(1),B(2),B(N) 也已经按从小到大排序 (N1)。执行下面的流程图后,可以将数组 A与数组 B中所有的元素全都存入数组 C中,且按从小到大排序(注意:序列中相同的数全部保留并不计排列顺序 )。例如,设数组 A中有元素:2,5,6,7,9;数组 B中 有元素: 2,3,4,7;则数组 C中将有元素: 2,2,3,4,5,6,

2、7,7,9。 流程图 2 阅读以下说明和 C程序,将应填入 (n)处的字句写在答题纸的对应栏内。 说明 下面的程序按照以下规则输出给定名词的复数形式: a若名词以 “y”结尾,则删除 y并添加 “ies”; b若名词以 “s”、 “ch”或 “sh”结尾,则添加 “es”; c其他所有情况,直接添加 “s”。 C语言程序 # include stdio.h # include string.h char *plural (char *word) int n; char *pstr; n=strlen(word); /*求给定单词的长度 */ pstr=(char *) malloc(n+3);

3、 /*申请给定单词的复数形式存储空间 */ if (!pstr|n 2) return NULL; strcpy (pstr,word);/*复制给定单词 */ if(1) pstrn-1 = i-; pstrn=e; pstrn+1=s;(2); else if(pstrn-1=s |pstrn-1=h pstrn+1=s; pstrn+2= 0; else pstrn=s; pstrn+1= 0; (4); main ( ) int i; char *ps; char wc910=“chair“, “dairy“, “boss“, “circus“, “fly“, “dog“, “chur

4、ch“, “clue“, “dish“); for(i=0; i 9; i+) ps=(5); printf(“%s: %s n“,wci,ps); /*输出单词及其复数形式 */ free (ps);/*释放空间 */ system (“pause“); 3 阅读以下说明和 C函数,将应填入 (n)处的字句写在对应栏内。 说明 若一个矩阵中的非零元素数目很少且分布没有规律,则称之为稀疏矩阵。对 m行 n列的稀疏矩阵 M,进行转置运算后得到 n行 m列的矩阵 MT,如图 3-1所示 为了压缩稀疏矩阵的存储空间,用三元组 (即元素所在的行号、列号和元素值、表示稀疏矩阵中的一个非零元素,再用一维数

5、组逐 行存储稀疏矩阵中的所有非零元素也称为三元组顺序表 )。例如,图 3-1所示的矩阵 M相应的三元组顺序表如表 3-1所示。其转置矩阵 MT的三元组顺序表如表 3-2所示。 函数TransposeMatrix(Matrix M)的功能是对用三元组顺序表表示的稀疏矩阵 M进行转置运算。 对 M实施转置运算时,为了将 M中的每个非零元素直接存入其转置矩阵MT三元组顺序表的相应位置,需先计算 M中每一列非零元素的数目 (即 MT中每一行非零元素的数目 ),并记录在向量 num中;然后根据以下关系,计算出矩阵 M中每列的第一个非零元素在转置矩阵 MT三元组顺序表中的位置: cpot0=0 cpotj

6、=cpotj-1+numj-1) /*j为列号 */ 类型 ElemType, Triple和 Matrix定义如下: typedef int ElemType; typedef struct /*三元组类型 */ int r,c; /*矩阵元素的行号、列号*/ ElemType e; /*矩阵元素的值 */ Triple; typedef struct /*矩阵的元组三元组顺序表存储结构 */ int rows,cols,elements; /*矩阵的行数、列数和非零元素数目 */ Triple dataMAXSIZE; Matrix; C语言函数 int TransposeMatrix(M

7、atrix M) int j,q,t; int *num, *cpot; Matrix MT; /*MT是 M的转置矩阵 */ num=(int*)malloc(M.cols*sizeof(int); cpot=(int*)malloc(M.cols*sizeof(int); if(!num |cpot) return ERROR; MT.rows=(1); /*设置转置矩阵 MT行数、列数和非零元素数目*/ MT.cols=(2); MT.elements=M.elements; if(M.elements 0) for (q=0 ; q M. cols ; q+) numq=0; for

8、(t=0; t M.elements;+t) /*计算矩阵 M中每一列非零元素数目 */ num M.datat.c+; /*计算矩阵 M中每列第一个非零元素在其转置矩阵三元组顺序表中的位置 */ (3); for(j=1;j M.cols;j+) cpotj=(4); /*以下代码完成转置矩阵 MT三元组顺序表元素的设置 */ for(t=0;t M.elements;t+) j=(5); /*取矩阵 M的一个非零元素的列号存入 j*/ /*q为该非零元素在转置矩阵 MT三元组顺序表中的位置 (下标 )*/ q=cpotj; MT.dataq.r=M.datat.c; MT.dataq.c=

9、M.datat.r; MT.dataq.e=M.datat.e; +cpotj; /*计算 M中第 j列的下一个非零元素的目的位置*/ /*for*/ /*if*/ free(num); free(cpot); /*此处输出矩阵元素,代码省略 */ return OK; /*TransposeMatrix*/ 4 阅读以下说明和 C语言函数,将应填入 (n)处的字句写在答题纸的对应栏内。 说明 假设一个剧场有 N*N个座位,顾客买票时可以提出任意有效的座号请求。下面用二维数组 aNN模拟剧场中的座位, aij等于 0表示第 i排第 j列 (0i,jN-1)的票尚未售出。 函数 int Find

10、(intaN,int R,int *row, int *col)的功能是:在部分票已售出的情况下,找出剧场中的 R*R个空座位,要求这些座位的排列形成一个正方形。若找到满足要求的一个座位排列,则函数返回 1,并算出该正方形左上角的行、列号;若未找到,则返回 0。 例如,一个 77个座位的剧场如下图 (a)所示,已售出部分座位的剧场如下图 (b)所示,图中阴影部分表示已售出的座位,从图 (b)中找出的 33正方形空座位如图 (c)中斜线区所示。 C语言函数 int Find(int aN,int R,int *row,int *col) int i,j,k,c,t; int FOUND=0; f

11、or(i=0; !FOUND i+) /*从第 0排开始查找 */ (1); while(j N-R+1 (2) k+); /*查找第 i排连续的 R个座位 */ if(k =R) /*找到第 i排连续的 R个空座位 */ for(c=0;c R;c+) /*查找其余的 R*(R-1)个座位 */ for(t=1;t R;t+) if(a(3)j+c!=0)break; if(t R)break; /*for*/ if(4)FOUND=1; /*if*/ (5); /*while*/ /*for i*/ if(FOUND) *row=i-1; *col=j-1; /*计算正方形区域的左上角坐标

12、 */ return 1; return 0; 5 阅读以下说明和 C函数,将应填入 (n)处的字句写在答题纸的对应栏内。 说明 某班级有 N名学生,他们可根据自己的情况选修名称和数量不尽相同的课程。设N等于 6,学生信息、所选课程及成 绩用链表结构存储,如图 5-1所示。 程序中相应的类型定义如下: #define N 6 struct node char cname5; /*课程名 */ int grade; /*成绩 */ struct node *next; /*指针,指示某学生选修的下一门课程及成绩 */ ; struct student char xh5; /*学号 */ char

13、 name20; /*姓名 */ struct node *link; /*指针,指示出选修的课程及成绩链表 */ stud_infon; Stud_info为一个全局数组。 函数func(char kc,int *num)的功能是统计选修了课程名为 kc的学生的人数,并返回该课程的平均成绩 (若无人选修该课程,则平均成绩为 0),参数 num带回选修课程 kc的学生人数。 C语言函数 double func(char kc, int *num) int i, count=0, sum=0; /*count用于记录选修课程名为 kc的学生的人数 */ double avg=0.0; struc

14、t node *p; for(i=0; i N; i+) p=(1); /*取第土个学生所修课程链表的头指针 */ while (p) if(2) sum=(3); count+; break; /* if*/ p=p- next; /*while*/ (4); if(5) avg=(double) sum /count; /*计算平均成绩 */ return avg; /*func*/ 6 阅读下列说明、图和 C+代码,将应填入 (n)处的字句写在答题纸的对应栏内。 说明 已知对某载客车辆 (Car)进行类建模,如图 5-1所示,其中类 Engine表示发动机引擎,类 Wheel表示车轮 ,

15、类 Body表示车身,类 Driver表示司机,类Passenger表示乘客。 C+代码 const int (1)=7; /定义最多载客数 const int MAX WHEELS=5; /定义最多轮胎数 class Body /此处代码省略 ; /车身类 class Passenger /此处代码省略 ; /乘客类 class Wheel /此处代码省略 ;/车轮类 class Driver /司机类 public: string name; /表示第几路公交车司机 Driver(string driverName):name(2); /构造函数 ; class Engine /引擎类 p

16、ublic: string engineNo; /引擎编号 Engine(string engineNo)(3)-engineNo=engineNo; /构造函数 ; class Car /汽车类 protected: Engine * engine; Driver * driver; Body body; Wheel * wheelsMAX_HEELS; Passenger * passengersMAX_PASSENGERS; public: Car(Driver * driver)/构造函数 this-driver=driver; engine=new Engine(“TX6536型号引

17、擎 “); int index; for (index=0; index MAX_HEELS; index+) wheelsindex=new Wheel(); for(index=0; indexMAX_PASSENGERS; index+) passengersindex=NULL; virtual Car() /析构函数 for (int index=0; index MAX_WHEELS; index+) delete wheelsindex; delete (4); int getPassengerNumber()/获取车上乘客数量 /此处代码省略 void getOnPasseng

18、er(Passenger * aPassenger)/乘客上车 /此处代码省略 void run()/开车 if(driver=NULL) cout “司机尚未上车 !“; return; /此处代码省略 ); void main() Driver driver(“第五路公交车司机 “); Car car (5); Passenger passengers MAX_PASSENGERS; for (int index = 0; index MAX PASSENGERS; index+) /乘客上车处理 car.getOnPassenger( car.run(); 7 阅读以下说明和 Java程

19、序代码,将应填入 (n)处的字句写在答题纸的对应栏内。 说明 在下面的 Java程序代码中,类 SalesTicket能够完成打印票据正文的功能,类 HeadDecorator与 FootDecorator分别完成打印票据的抬头和脚注的功能。己知该程序运行后的输出结果如下所示,请填补该程序代码中的空缺。 这是票据的抬头 ! 这是票据正文 ! 这是票据的脚注 ! - 这是票据的抬头 ! 这是票据的脚注 ! Java程序代码 public class SalesTicket public void printTicket() System.out.println(“这是票据正文 !“); publ

20、ic class Decorator extends SalesTicket SalesTicket ticket; public Decorator(SalesTicket t) ticket =t; public void printTicket() if(ticket!=null) ticket. printTicket(); public class HeadDecorator extends Decorator public HeadDecorator(SalesTicket t) (1); public void printTicket() System.out.rintln(“这

21、是票据的抬头 !“); Super.printTicket(); public class FootDecorator extends Decorator public FootDecorator(SalesTicket t) (2); public void printTicket() super.printTicket(); System.out.println(“这是票据的脚注 !“); public class Main public static void main(String args) Decorator T= new HeadDecorator(3); T. (4); Sys

22、tem.out.println(“-“); T=new FootDecorator(5); T.printTicket(); 软件水平考试(初级)程序员下午(应用技术)模拟试卷 37答案与解析 1 【正确答案】 (1)i;(2)A(i);(3)B(j);(4)i;(5)j;(6)B(j);(7)A(i);(8)i;(9)i 2 【正确答案】 (1)pstrn-1=y;(2)pstrn+2=0;(3)pstrn-2 c|pstrn-2=s;(4)return pstr;(5)plufal(wci) 3 【正确答案】 (1)M.cols;(2)M.rows;(3)cpot0=0;(4)cpotj-

23、1+numj-1;(5)M.datat.c 4 【正确答案】 (1)j=0;(2)k R;(3)i+t;(4)c =R;(5)j+或 j+=1 5 【正确答案】 (1)stud_infoi.link;(2)!strcmp(p- cname,kc);(3)sum+p-grade;(4)*num=count;(5)count!=0 6 【正确答案】 (1)MAX_PASSENGERS;(2)driverName;(3)this;(4)engine;(5)(2)super(t);(3)newFootDecoratro(new SalesTicke();(4)print Ticket();(5)new HeadDecorator(null)

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