首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下应用程序说明和C程序,将C程序段中(1)~(7)空缺处的语句填写完整。 【说明】 某超市集团为发展业务向社会公开招聘N个工种的工作人员,每个工种各有不同的编号(1至M)和计划招聘人数。每位应聘者需申报两个工种,并参加集团组织的考试。该
阅读以下应用程序说明和C程序,将C程序段中(1)~(7)空缺处的语句填写完整。 【说明】 某超市集团为发展业务向社会公开招聘N个工种的工作人员,每个工种各有不同的编号(1至M)和计划招聘人数。每位应聘者需申报两个工种,并参加集团组织的考试。该
admin
2009-02-15
39
问题
阅读以下应用程序说明和C程序,将C程序段中(1)~(7)空缺处的语句填写完整。
【说明】
某超市集团为发展业务向社会公开招聘N个工种的工作人员,每个工种各有不同的编号(1至M)和计划招聘人数。每位应聘者需申报两个工种,并参加集团组织的考试。该集团公司将按应聘者的成绩从高分至低分的顺序进行排队录取。具体录取原则是:从高分到低分依次对每位应聘者先按其第一志愿录取;当不能按其第一志愿录取时,便将他的成绩扣去5分后,重新排队,并按其第二志愿录取。
以下C程序为输出各工种实际招聘的应聘人员,每个工种都保留一个录取者的有序队列。录取处理循环直至招聘额满或已对全部应聘者都作了录取处理后跳出。
C程序中,类型STU包含有应聘者的基本信息:编号、成绩、志愿、排队成绩和录取志愿号。数组 rzl)的每个元素对应一个工种,包含有计划招聘人数和已录取的人数。
【C程序】
#include
#define N 36
#define EDMARK 5
typedef struct stu {
int no, total, z[2], sortm, zi;
struct stu *next;
} STU;
struct rznode {
int lmt, count;
STU *next;
} rz [N];
STU *head = NULL, *over = NULL;
int all
FILE *fp;
char dataf [ ] = "zp2008.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 , (1) )
if (q-> sortm < u->sortm)
break;
if ( q == *p)
(2);
else
(3);
u->next = q ;
}
main ( )
{ int zn, i, no, total, zl, z2 ;
STU *p, *v, *q;
fp = fopen(dataf, "r" );
if (fp == NULL)
{ printf ("Can’t open file %s.kn" ,dataf);
exit (0);
}
fscanf (fp, "%d" ,&zn);
for (all = 0, i = 1; i <= zn; i++)
{ fscanf (fp, "%d", &rz [ i ].lmt ;
rz
.count = 0;
rz
.next = NULL;
all +=(4);
}
for (;;)
{ if (( fscanf(fp, "%d%d%d%d" ,&no,&total,&zl,&z2)) != 4 )
break;
p = ( STU *) malloc (sizeof (STU));
p->no = no;
p->total = p->sortm = total;
p->zi = 0;
p->z[0] = z1;
p->z[1] = z2;
(5);
}
fclose (fp);
for (;all && head != NULL;)
{ p = head;
head = head->next;
if (rz[p->z[p->zi]].count <(6))
{ rz[p->z[p->zi]].count ++;
insert(&rz[p->z[p->zi]].next,p);
all--;
continue;
}
if (p->zi >= 1 )
{ p->next = over;
over = p;
continue;
}
p->sortm -= DEMARK;
(7);
insert(&head,p);
}
for (i = 1; i <= zn; i++ )
{ printf("%d:\n" ,i);
print( rz[i ].next);
printf(" \n");
}
printf( "over:\n" );
print(head);
print(over);
printf(" \n");
}
选项
答案
(1)q=q->next或q=v->next或其等价的代码形式 (2)*p=u或其等价的代码形式 (3)v->next=u或其等价的代码形式 (4)rz[i].1mt (5)insert(&head,p) (6)rz[p-,[p->zi)].1mt或其等价的代码形式 (7)p->zi++或p->zi=1,或其等价的代码形式
解析
这是一道要求读者掌握队列应用的程序设计题。本题的解答思路如下。
该C程序由主函数main、打印函数print及表元插入函数insert组成。主函数main首先打开数据文件,读入各工种需招聘的人数并统计总招聘人数。再读入应聘者信息,并调用函数insert按成绩排队,应聘者信息全部读入后,按照第一志愿录取。如果不能按照第一志愿录取招聘者,则将其成绩扣去5分,按照第二志愿录取。最后输出各工种招聘结果。
函数insert的功能是根据指针u所指单元的排队成绩,将此表元插入队列。p为指向队列首的指针。 (1)空缺处在此函数的for循环中,由队首开始查找,每次需要保存指向当前表元的指针,并更改指向当前表元的指针,(1)空缺处之前的语句“v=q”是保存指向当前表元的指针,因此该空缺处所填入的更改指向当前表元指针的语句是“q=q->next(或q=v->next)”或其等价的代码形式。
当找到排队成绩小于u所指表元或已查找至队尾时,就要将u所指表元插入队列。如果此表元需插在队首,则需更改队首的指针,即(2)空缺处所填写的内容是“*p=u”或其等价代码形式:否则,需要根拥保存的前驱表元指针来进行插入操作,即(3)空缺处所填写的内容是“v->next=u”或其等价的代码形式。
主函数main首先将各丁种录取队列设为空队列,并统计总招聘人数。(4)空缺处所在的语句是统计总招聘人数,方法为招聘各工种人数进行累加,因此(4)空缺处所填写的内容是“rz
.1mt”。
(5)空缺处所在的for循环功能是:读入应聘者信息,形成表元,并按成绩插入队列。其中,插入是通过调用函数insert实现的,因此(5)空缺处所填入的内容是“insert(&head,p)”。
形成队列成绩后,开始按成绩和志愿决定聘用者。如果当前应聘者的志愿工种未招满,则聘用此应聘者,并将此工种已聘用人数加1,且将此聘用者信息加入工种录取队列。(6)空缺处所在判断条件的功能是:判断志愿工种是否己招满。如果志愿工种己招满,则根据此志愿是否是第一志愿来进一步划分。如果是第一志愿,则将成绩扣5分,再插入应聘者队列,考虑第二志愿;否则将此应聘者移入不录取队列。因此(6)空缺处所填写的内容是“rz[p->[p->zi]].1mt”。
(7)空缺处所填入语句的功能是,将志愿工种置为第二工种,应填入“p->zi++”或“p->zi=1”或其他等价的代码形式。
转载请注明原文地址:https://jikaoti.com/ti/qvW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在某机床上加工一批零件,要求其直径控制在1.5±0.2cm。检验员定时抽查测量了产品的直径,并绘制了如下的质量控制图。检验结论是:有()次检查发现质量问题,需要进一步查明原因并改进。
下面描述正确的是(20)。
文件的类型可以根据()来识别。
以下关于信息存储的叙述中,不正确的是(66)。
下列关于Word文本编辑的叙述中,不正确的是(33)。
在Excel2010中,设A1单元格中的值为20,A2单元格中的值为60,若在C1单元格中输入函数“=AVERAGE(A1,A2)”,按回车键后,,则C1单元格中的值为(
某地区去年粮食产量资料如下表:根据该表可以推算出,该地区去年薯类的产量为()万吨。
在Word2010中,________________内容在普通视图下可看到。
假设100个数据的平均值为82.31,其中有10个数据又发生了如下增减变化:+3.52,+2.87,-4.13,+5.34,-2.87,+2.50,-3.52,+4.23,-5.04,+0.10,则新的平均值变为(26)。
数据录入工作有两个指标:录入速度和错误率。一般而言,数据录入员在录入大批数据时,录入速度会(65),错误率会(66)。66
随机试题
铣床运转()h以后,就应进行一级保养。
患儿,女,6岁,发热1天后出现皮疹,躯干分布多,四肢末端少,为红色斑丘疹,数小时后变成小水泡,痒感重,护士考虑该患儿可能是
图5-27所示截面Z2轴过半圆底边,则截面对Z1、Z2轴的关系为()。
斯金纳认为,人和动物的行为有两类:__行为和__行为。
离婚带来的“恨”,让一些单亲母亲难以控制。父母离异后跟着母亲生活的晓恒学习成绩中上,母亲却很不满意,总要求他考前三名。母亲的口头禅是“我活着都是为了你,你不好好学习,我还有什么指望。”同样生活在离异单亲家庭的虹虹也有自己的烦恼。她在小区里有几个玩伴,但小朋
将5个相同的圆锥体零件表面涂上红、黄、蓝三种颜色。要求同一个零件的底面只能用一种颜色,同一个零件的斜面也只能用一种颜色,且5个零件的颜色彼此不完全相同,问总共有多少种不同的涂色方式:?
Whyis(1)fun?WhatdelightsmayitSpractitionerexpectashisreward?Firstisthesheerjoyofmakingthings.Asthechildd
文档“北京政府统计工作年报.docx”是一篇从互联网上获取的文字资料,请打开该文档并按下列要求进行排版及保存操作:将除封面页外的所有内容分为两栏显示,但是前述表格及相关图表仍需跨栏居中显示,无需分栏。
A、Avoidjunkfood,saltyfoods,caffeineandalcohol.B、Drinkaslittlewateraspossiblebetweenmeals.C、Takedrinkswithless
Forthispart,youareallowed30minutestowriteashortessayentitledOnlineEducation.Youshouldwriteatleast150words
最新回复
(
0
)