【计算机类职业资格】初级程序员下午试题-18及答案解析.doc
《【计算机类职业资格】初级程序员下午试题-18及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】初级程序员下午试题-18及答案解析.doc(6页珍藏版)》请在麦多课文档分享上搜索。
1、初级程序员下午试题-18 及答案解析(总分:90.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.【说明】下列流程图用泰勒(Taylor)展开式 y=ex=1+x+x2/2!+x3/3!+xn/n!+计算并打印 ex的近似值,其中用(0)表示误差要求。【流程图】(分数:15.00)_二、B试题二/B(总题数:1,分数:15.00)2.【说明】 希赛教育集团公司为发展生产向社会公开招聘 M个工种的工作人员,每个工种各有不同的编号(1 至 M)和计划招聘人数。每位应聘者需申报两个工种,并参加公司组织的考试。公司将按应聘者的成绩从高分至低分的顺序进行排队录取。公司的录
2、取原则是:从高分到低分依次对每位应聘者先按其第一志愿录取;当不能按其第一志愿录取时,便将他的成绩扣去 5分后,重新排队,并按其第二志愿考虑录取。 程序为输出各工种实际招聘的应聘人员,每个工种都保留一个录取者的有序队列。录取处理循环直至招聘额满或已对全部应聘者都做了录取处理。 程序中,类型 STU包含有应聘者的基本信息:编号、成绩、志愿、排队成绩和录取志愿号。数组 rz的每个元素对应一个工种,包含有计划招聘人数和已录取的人数。【程序】 #includestdio.h #includemalloc.h #define M 20 #define PEMARK 5 typedef struct stu
3、 int no, total, z2, sortm, zi; struct stu *next; STU; struct rzmode int Imt, count; STU *next; rzM; STU *head=NULL, *over=NULL; int all FILE *fp; char dataf=“pp07.dat“; print(STU *p) for(;p!=NULL;p=p-next) printf(“%d(%d)/t“,p-no,p-total); insert(STU *p, STU *u) STU *v, *q; for(q=*p;q!=NULL;v=q,U (1)
4、 /U) if(q-sortmu-sortm)break; if(q=*p)U (2) /U; elseU (3) /U; U-next=q; main() int zn, i, no, total, z1, z2; STU *p, *v, *q; fp=fopen(dataf, “r“); if(fp=NULL) printf(“Cant open file %s./n“,dataf); exit(0); fscanf(fp, “%d“, for(all=0,i=1;i=zn;i+) fscanf(fp,“%d“, rzi.count=0;rzi.next=NULL; all+=U (4)
5、/U; for(;) if(fscanf(fp, “%d%d%d%d“, p=(STU*)malloc(sizeof(STU); p-no=no; p-total=p-sortm=total; p-zi=0;p-z0=z1;p-z1=z2; U (5) /U; fclose(fp); for(;all ) p=head; head=head-next; if(rzp-zp-zi.countU (6) /U) rzp-zp-zi.count+; insert( all-; continue; if(p-zi=1) p-next=over;over=p; continue; p-sortm-=DE
6、MARK;U (7) /U; insed( for(i=1;i=zn;i+) printf(“%d:/n“,i); print(rzi.next); printf(“/n“); printf(“over:/n“);print(head); print(over);printf(“/n“); (分数:15.00)_三、B试题三/B(总题数:1,分数:15.00)3.【说明】 有 n个整数,使其前面各数顺序向后移 m个位置,最后 m个数变成最前面的 m个数。 【函数】main() int number20,n,m,i; printf(“the total numbers is:“); scanf(
7、“%d“, printf(“back m:“); scanf(“%d“, for(i=0;i=n-1;i) scanf(“%d,“, U (1) /U; for(i=0;i=n-1;i) printf(“%d,“,numberi); move(array,n,m) int n,m,array20; int *p,array_end; array_end=U (2) /U; for(p=arrayn-1;U (3) /U;p-) *p=U (4) /U; *array=array_end; m-; if(m0)U (5) /U; (分数:15.00)_四、B试题四/B(总题数:1,分数:15.0
8、0)4.【说明】 编写程序,对于从键盘输入的 3个实数 a、b、c,计算实系数一元二次方程的根并输出所求的根。 【函数】 #includesldio.h #includesldlib.h #includemath.h Main() float a,b,c,delta,x1,x2; printf(“Enter a,b,c“); scanf(“%f%f%f“, if(U (1) /U) if(U (2) /U) printf(“Input error!/n“); else printf(“The single root is%f/n“,U (3) /U); else delta=b*b-4*a*c
9、; if(U (4) /U) x1=(-b+sqrt(delta)/(2*a); x2=(-b-sqrt(delta)/(2*a); printf(“x1=%8.2f/nx2=%8.2f/n“,x1,x2,); else if(delta=0) printf(“x1=x2=%8.2f/n“,U (5) /U; else Printf(“z2=%8.2f+%8.2f*i/n“,-b/(2*a),sqrt(-delta)/)(2*abs(a); Printf(“z2=%8.2f-%8.2f*i/n“,-b/(2*a),sqrt(-delta)/(2*abs(a); (分数:15.00)_五、B试题
10、五/B(总题数:1,分数:15.00)5.【说明】 在下面程序横线处填上适当的字句,3 个(2)空填的是一样的。使其输出结果为: x=5 x=6 y=7 x=8 z=9 【程序】 #includeiostream.h class X1 int x; U (1) /U; X1(int xx=0)x=xx; U (2) /Uvoid Output() cout“x=“xend; ; U (3) /UY1:public X1 int y; public: Y1(int xx=0,int yy=0);X1(xx)y=yy; U (2) /Uvoid Output() U (4) /UOutput();
11、 cout“y=“yendl; ; class Z1:public X1 int z: U (5) /U; Z1(int xx=0,int zz=0):X1(xx)(z=zz; U (2) /Uvoid Output() X1Output(); cout“z=“zendl; ; void main() X1 a(5);Y1 b(6,7);Z1 c(8,9); X1*p3= For(int i=0;i3;i+) pi-Output();coutendl; (分数:15.00)_六、B试题六/B(总题数:1,分数:15.00)6.【说明】 下面代码里,instr 是一个抽象类,它被两个子类 win
12、d和 rain分别实现,而 brass又继承了 wind类,并覆盖了 play方法。 【程序】 U (1) /Uclass instr U (2) /UVoid play(); class windU (3) /Uinstr void play()System.out.println(“wind play!“); class rain extends instr void play()System.out.println(“rain play!“); class brass extendsU (4) /U void play()System.out.println(“brass play!“)
13、; public class music static void tuneAll(instr e) for(int i=0;ie.length;i+) ei.play(); publicU(5) /Uvoid main(Stringargs) instr orch=new instr3; int i=0; orchi+=new wind(); orchi+=new rain(); orchi+=new brass(); tuneAll(orch); (分数:15.00)_初级程序员下午试题-18 答案解析(总分:90.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)
14、1.【说明】下列流程图用泰勒(Taylor)展开式 y=ex=1+x+x2/2!+x3/3!+xn/n!+计算并打印 ex的近似值,其中用(0)表示误差要求。【流程图】(分数:15.00)_正确答案:()解析:0 (2)0 (3)|t|:(4)s+1 (5)t*x/s分析本题考查程序流程图的内容。首先让我们来了解一下题目的真正含义,题目要求用泰勒展开式计算 y=ex的近似值。并且给出了误差要求,只要当误差小于 时,就可以输出计算结果了。泰勒展开式的式子是 n项之和,每多加一项,其值就越接近真实值。因此,在程序设计时,每加一项之前,先进行此项与 的比较,来判定计算结果是否已满足题目要求。从流程图
15、中看到有 S、y、t、x 这几个变量。其中 x、y 是公式中的变量,而 S、t 则是中间变量。从yy+t 语句可以看出,t 是每次要加的项,S 则是帮助 t改变的变量。在计算开始前,我们应该将 y的值赋为零,因此,第(2)空答案就为 0;而 S在 t没发生变化的初值也应该是 0,即第(1)空答案为 0。第(3)空处是个条件判断语句,应该是进行该加项与 比较判断,因此第(3)空的答案是|t|:。第(4)空与第(5)空要一起考虑。由于 S是帮助 t改变的变量,而 t的每次改变是分母乘以一个加 1的数,而分子乘以 x。这里假设 S是帮助 t改变分母的变量,第(4)空应填 s+1,那么第(5)空应该为
16、 t*x/s。二、B试题二/B(总题数:1,分数:15.00)2.【说明】 希赛教育集团公司为发展生产向社会公开招聘 M个工种的工作人员,每个工种各有不同的编号(1 至 M)和计划招聘人数。每位应聘者需申报两个工种,并参加公司组织的考试。公司将按应聘者的成绩从高分至低分的顺序进行排队录取。公司的录取原则是:从高分到低分依次对每位应聘者先按其第一志愿录取;当不能按其第一志愿录取时,便将他的成绩扣去 5分后,重新排队,并按其第二志愿考虑录取。 程序为输出各工种实际招聘的应聘人员,每个工种都保留一个录取者的有序队列。录取处理循环直至招聘额满或已对全部应聘者都做了录取处理。 程序中,类型 STU包含有
17、应聘者的基本信息:编号、成绩、志愿、排队成绩和录取志愿号。数组 rz的每个元素对应一个工种,包含有计划招聘人数和已录取的人数。【程序】 #includestdio.h #includemalloc.h #define M 20 #define PEMARK 5 typedef struct stu int no, total, z2, sortm, zi; struct stu *next; STU; struct rzmode int Imt, count; STU *next; rzM; STU *head=NULL, *over=NULL; int all FILE *fp; char
18、dataf=“pp07.dat“; print(STU *p) for(;p!=NULL;p=p-next) printf(“%d(%d)/t“,p-no,p-total); insert(STU *p, STU *u) STU *v, *q; for(q=*p;q!=NULL;v=q,U (1) /U) if(q-sortmu-sortm)break; if(q=*p)U (2) /U; elseU (3) /U; U-next=q; main() int zn, i, no, total, z1, z2; STU *p, *v, *q; fp=fopen(dataf, “r“); if(f
19、p=NULL) printf(“Cant open file %s./n“,dataf); exit(0); fscanf(fp, “%d“, for(all=0,i=1;i=zn;i+) fscanf(fp,“%d“, rzi.count=0;rzi.next=NULL; all+=U (4) /U; for(;) if(fscanf(fp, “%d%d%d%d“, p=(STU*)malloc(sizeof(STU); p-no=no; p-total=p-sortm=total; p-zi=0;p-z0=z1;p-z1=z2; U (5) /U; fclose(fp); for(;all
20、 ) p=head; head=head-next; if(rzp-zp-zi.countU (6) /U) rzp-zp-zi.count+; insert( all-; continue; if(p-zi=1) p-next=over;over=p; continue; p-sortm-=DEMARK;U (7) /U; insed( for(i=1;i=zn;i+) printf(“%d:/n“,i); print(rzi.next); printf(“/n“); printf(“over:/n“);print(head); print(over);printf(“/n“); (分数:1
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 初级 程序员 下午 试题 18 答案 解析 DOC
