首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
某CPU的主振频率为100MHz,平均每个机器周期包含4个主振周期。各类指令的平均机器周期数和使用频度如表2.9所示,则该计算机系统的速度为平均约()兆指令/秒。若某项事务处理工作所要执行的机器...
查看本题答案
包含此试题的试卷
初级程序员《单项选择》真题及答案
点击查看
你可能感兴趣的试题
假设某微处理器的主振频率为20MHz两个时钟周期组成一个机器周期平均4个机器周期可以完成一条指
1.25
2.5
5
10
25
100
设置一台计算机主频为100MHz每个机器周期平均有2个时钟周期每条指令平均有2.5个机器周期则此机器
假设某微处理器的主振频率为20MHz两个时钟周期组成一个机器周期平均4个机器周期可以完成一条指
1.25
2.5
5
10
25
100
假设微处理器的主振频率为50MHz两个时钟周期组成一个机器周期平均三个机器周期完成一条指令则它
2
3
8
15
假设某微处理器的主振频率为20MHz两个时钟周期组成一个机器周期平均4个机器周期可以完成一条指
1.25
2.5
5
10
25
100
假设微处理器的主振频率为50MHz两个时钟周期组成一个机器周期平均三个机器周期完成一条指令则它
10
20
40
100
某机CPU芯片的主振频率为8MHz每个机器周期平均包含4个时钟周期该机的平均指令执行速度为0.8MI
1个机器周期
1.5个机器周期
3个机器周期
2.5个机器周期
假设微处理器的主振频率为50MHz两个时钟周期组成一个机器周期平均三个机器周期完成一条指令则它的机器
2
3
8
15
假设某微处理器的主振频率为20MHz两个时钟周期组成一个机器周期平均4个机器周期可以完成一条指
1.25
2.5
5
10
25
100
某示波器的带宽为100MHz则表示
可以测量频率为100MHz以下的信号波形
可以完整显示频率为100MHz以上的信号波形
可以测量带宽为100MHz的信号波形
可以测量200MHz以下的信号波形
CPU的外频是100MHz倍频是17那么CPU的工作频率即主频是
某CPU的主振频率为100MHz平均每个机器周期包含4个主振周期各类指令的平均机器周期数和使用
1
5
10
15
20
33.3
50
66.7
I.100
J.200
某CPU的主振频率为100MHz平均每个机器周期包含4个主振周期各类指令的平均机器周期数和使用
1
5
10
15
20
33.3
50
66.7
I.100
J.200
假设微处理器的主振频率为50MHz两个时钟周期组成一个机器周期平均三个机器周期完成一条指令则它的机器
10
20
40
100
假设微处理器的主振频率为50MHz两个时钟周期组成一个机器周期平均三个机器周期完成一条指令则它的机器
10
20
40
100
某CPU的主振频率为100MHz平均每个机器周期包含4个主振周期各类指令的平均机器周期数和使用
1
5
10
15
20
33.3
50
66.7
I.100
J.200
假设某微处理器的主振频率为20MHz两个时钟周期组成一个机器周期平均4个机器周期可以完成一条指
1.25
2.5
5
10
25
100
某CPU的主振频率为100MHz平均每个机器周期包含4个主振周期各类指令的平均机器周期数和使用
1
5
10
15
20
33.3
50
66.7
I.100
J.200
假设微处理器的主振频率为50MHz两个时钟周期组成一个机器周期平均三个机器周期完成一条指令则它的机器
2
3
8
15
某机CPU芯片的主振频率为8MHz其时钟周期是多少μs若已知每个机器周期平均包含4个时钟周期该机的平
热门试题
更多
阅读以下说明和C程序填充程序中的空缺[说明]埃拉托斯特尼筛法求不超过自然数N的所有素数的做法是先把N个自然数按次序排列起来1不是素数也不是合数要划去2是素数取出2输出然后将2的倍数都划去剩下的数中最小者为33是素数取出3输出再把3的倍数都划去剩下的数中最小者为55是素数输出再把5的倍数都划去这样一直做下去就会把不超过N的全部合数都筛掉每次从序列中取出的最小数构成的序列就是不超过N的全部质数下面的程序实现埃拉托斯特尼筛法求素数其中数组元素sieve[i]i>0的下标i对应自然数isieve[i]的值为1/0分别表示i在/不在序列中也就是将i划去去掉时就将sieve[i]设置为0[C程序]#include<stdio.h>#defineN10000intmaincharsieve[N+1]=0;inti=0k;/*初始时2~N都放入sieve数组*/fori=2;______;i++sieve[i]=1;fork=2;;/*找出剩下的数中最小者并用K表示*/for;k<N+1&&sieve[k]==0;______;if______break;print%d/tk;/*输出素数*//*从sieve中去掉k及其倍数*/fori=k;i<N+1;i=____________;return0;/*endofmain*/
阅读以下说明和C++代码填充代码中的空缺[说明]下面的程序用来计算并寻找平面坐标系中给定点中最近的点对若存在多对则输出其中的一对即可程序运行时先输入点的个数和一组互异的点的坐标通过计算每对点之间的距离从而确定出距离最近的点对例如在图所示的8个点中点11与20.5是间距最近的点对[C++代码]#include<iostream>#include<cmath>usingnamespacestd;classGPointprivate:doublexy;public:voidsetXdoublexthis->x=x;voidsetYdoubleYthis->y=Y;doublegetXreturnthis->x;doublegetYreturnthis->y;;classComputeDistancepublic:doubledistanceGPointaGPointbreturnsqrta.getX-b.getX*a.getX-b.getx+a.getY-b.getY*a.getY-b.getY;;intmainintijnumberofP0ints=0;cout<<输入点的个数:;cin>>numberOfPOints;______points=newGPoint[numberOfPoints];//创建保存点坐标的数组memsetpoints0sizeofpoints;cout<<输入<<numberOfPoints<<个点的坐标:;fori=0;i<numberOfPointsi++doubletmpxtmpy;Cin>>tmpx>>tmpy;points[i].setXtmpx;points[i].setYtmpy;______computeDistance=newComputeDistance;intp1=0p2=1;//p1和p2用于表示距离最近的点对在数组中的下标doubleshortestDistance=computeDistance->distancepoints[p1]points[p2];//计算每一对点之间的距离fori=0;i<numberOfPoints;i++forj=i+1;j<______;j++doubletmpDistance=computeDistance->______;if______p1=i;p2=j;shortestDiStance=tmpDistance;cout<<距离最近的点对是:;coutpoints[p1].getX<<<<points[p1].getY<<和;cout<<points[p2].getX<<<<points[p2].getY<<<<endl;deletecomputeDiStance;return0;
阅读以下说明和C函数将应填入______处的语句或语句成分写在对应栏内[说明1]函数deldigitchar*s的功能是将字符串s中的数字字符去掉使剩余字符按原次序构成~个新串并保存在原串空间中其思路是先申请一个与s等长的临时字符串空间并令t指向它将非数字字符按次序暂存入该空间最后再复制给s[C函数]voiddeldigitchar*schar*t=char*malloc______;/*申请串空间*/intik=0;if!treturn;fori=0;i<strlens;i++=if!*s+i>=’0’&&*s+i<=’9’t[k++]=______;______=’/0’/*设置串结束标志*/strcpyst;freet;[说明2]函数reversechar*sintlen的功能是用递归方式逆置长度为len的字符串s例如若串s的内容为abcd则逆置后其内容变为dcba[C函数]voidreversechar*sintlencharch;if______ch=*s;*s=*s+len-1;*s+len-1=ch;reverse______;
阅读以下说明和C++代码填补C++代码中的空缺将解答写在对应栏内[说明]已知某公司按周给员工发放工资其工资系统需记录每名员工的员工号姓名工资等信息其中一些员工是正式的按年薪分周发放每年按52周计算另一些员工是计时工以小时工资为基准按每周工作小时数核算发放下面是实现该工资系统的C++代码其中定义了4个类工资系统类PayRoll员工类Emplovee正式工类Salaried和计时工类HourlySalaried和Hourly是Employee的子类[C++代码]//头文件和域名空间略constintEMPLOYEE_NUM=5;classEmployeeprotected:intemDCode;//员工号stringname;//员工姓名doublesalary;//周发放工资public:EmployeeconstintempCodeconststring&namethis->empCode=empCode;this->name=name;virtual~Employeevirtualvoidpay=0;doublegetSalaryreturnthis->salary;;classSalaried______private:doublepayRate;//年薪public:SalariedconstintempCodeconststring&namedoublepayRate:EmployeeempCodenamethis->payRate=payRate;voidpaythis->salary=______;//计算正式员工的周发放工资数cout<<this->name<<:<<this->salary<<endl;;classHourly______private:doublepayRate;//小时工资数inthours;//周工作小时数public:HourlyconstintempCodeconststring&nameinthoursdoublepayRate:EmployeeempCodenamethis->payRate=payRate;this->hours=hoursvoidpaythis->saiary=______;//计算计时工的周发放工资数cout<<this->name<<::<<this->salary<<endl;;classPayRollpublic:voidpayEmployee*e[]forinti=0;i<EMPLOYEE_NUM;i++e[i]->pay;;intmainPayRoll*payRoll=newPayRoll;______employees[EMPLOYEE_NUM]=newSalaried1001ZhangSan58000.00//此处省略对其他职工对象的生成newHourly1005L11250.00;payRoll->pay______;doubletotal=0.0;forinti=0;i<EMPLOYEE_NUM;i++total+=employees[i]->getSalary;//统计周发放工资总额cout<<总发放额=<<total<<endl;deletepayRoll;retum0;
阅读以下说明和C函数填充函数中的空缺[说明]已知两个整数数组A和B中分别存放了长度为m和n的两个非递减有序序列函数AdjustmentABmn的功能是合并两个非递减序列并将序列的前m个整数存入A中其余元素依序存入B中例如合并前合并后数组A的内容1928147数组B的内容47122937912282937合并过程如下从数组A的第一个元素开始处理用数组B的最小元素B[0]与数组A的当前元素比较若A的元素较小则继续考查A的下一个元素否则先将A的最大元素暂存入temp然后移动A中的元素挪出空闲单元并将B[0]插入数组A最后将暂存在temp中的数据插入数组B的适当位置保持B的有序性如此重复直到A中所有元素都不大于B中所有元素为止[C函数]voidAdjustmentintA[]intB[]intmintn/*数组A有m个元素数组B有n个元素*/intktemp;fori=0;i<m;i++ifA[i]<=B[0]continuetemp=______;/*将A中的最大元素备份至temp*//*从后往前依次考查A的元素移动A的元素并将来自B的最小元素插入A中*/fork=m-1;______;k--A[k]=A[k-1];A[i]=______;/*将备份在七emp的数据插入数组B的适当位置*/fork=1;______&&k
阅读以下说明和C函数将应填入______处的语句或语句成分写在对应栏内[说明]已知单链表L含有头节点且节点中的元素值以递增的方式排列下面的函数DeleteList在L中查找所有值大于minK且小于maxK的元素若找到则逐个删除同时释放被删节点的空间若链表中不存在满足条件的元素则返回-1否则返回0例如某单链表如图1所示若令minK为20maxK为50则删除后的链表如图2所示链表节点类型定义如下typedefStructNodeintdata;structNode*next;Node*LinkList;[C函数]intDeleteListLinkListLintminxintmaxK/*在含头节点的单链表L中删除大于minx且小于maxK的元素*/______*q=L*p=L->next;/*p指向第一个元素节点*/intdeiTag=0;whilepifp->data<=minKiq=p;p=______;elseifp->data<maxK=/*找到删除满足条件的节点*/q->next=______freep;p=______;delTag=1;elsebreak;if______return-1;return0;
阅读下列说明和C++代码填充代码中的空缺[说明]某学校在学生毕业时要求对其成绩进行综合评定学生的综合成绩GPA由其课程加权平均成绩Wg与附加分Ag构成即GPA=Wg+Ag设一个学生共修了n门课程则其加权平均成绩Wg定义如下其中gradeiCi分别表示该学生笫i门课程的百分制成绩及学分学生可以通过参加社会活动或学科竞赛获得附加分Ag学生参加社会活动所得的活动分Apoints是直接给出的而竞赛分Awards则由下式计算一个学生最多可参加m项学科竞赛其中li和si分别表示学生所参加学科竞赛的级别和成绩对于社会活动和学科竞赛都不参加的学生其附加分按活动分为0计算下面的程序实现计算学生综合成绩的功能每个学生的基本信息由抽象类Student描述包括学号stuNo姓名name课程成绩学分grades和综合成绩GPA等参加社会活动的学生由类ActStudent描述其活动分由Apoints表示参加学科竞赛的学生由类CmpStudent描述其各项竞赛的成绩信息由awards表示[C++代码]#include<string>#include<iostream>usingnamespacestd;constintn=5;/*课程数*/constintm=2;/*竞赛项目数*/classStudentprotected:intstuNo;stringname;doubleGPA;/*综合成绩*/int*grades[2];/*各门课程成绩和学分*/public:StudentconstintstuNeconststring&nameintgrades[][2]this->stuNo=stuNo;this->name=name;this->grades=grades;Virtual~StudentintgetstuNo/*实现略*/stringgetName/*实现略*/______;doublecomputeWginttotalGrades=0totalCredits=0;forinti=0;i<N;i++totalGrades+=grades[i][0]*grades[i][1];totalGredits+=grades[i][1];returnGPA=doubletotalGrades/totalCredits;;classActStudent;publicStudentintApoints;public;ActStudentconstintstuNoconststring&nameintgs[][2]intApoints:______this->Apoints=Apoints;doublegetGPAreturnGPA=______;;classCmpStudent:publicStudentprivate:int*awards[2];public:CmpStudentconstintstuNoconststring&nameintgs[][2]intawards[][2]:______this->award=award;doublegetGPAintAwards=0;forinti=0;i<M;i++Awards+=awards[i][0]*awards[i][1];ReturnGPA=______;;intmain//以计算3个学生的综合成绩为例进行测试intg1[][2]=803902953854863g2[][2]=603602603604653g3[][2]=803902703654753;//课程成绩intc3[][2]=2333;//竞赛成绩Student*Student[3]=newActStudent101Johng13//3为活动分newActStudent102Zhangg20newActStudent103Lig3C3;//输出每个学生的综合成绩forinti=0;i<3;i++Cout<<______<<endl;delete*student;return0;
阅读以下说明和C函数填补C函数中的空缺[说明]函数numberOfwordscharmessage[]的功能是计算存储在message字符数组中的一段英文语句中的单词数目输出每个单词单词长度超过20时仅输出其前20个字母并计算每个英文字母出现的次数即频数字母计数时不区分大小写假设英文语句中的单词合乎规范此处不考虑单词的正确性单词不缩写或省略即不会出现类似don’t形式的词单词之后都为空格或标点符号函数中判定单词的规则是1一个英文字母串是单词2一个数字串是单词3表示名词所有格的撇号’与对应的单词看作是一个单词除上述规则外其他情况概不考虑例如句子The1990’switnessedmanychangesinpeople’sconceptsofconservation中有10个单词输出如下The1990’switnessedmanychangesinpeople’sconceptsofconservation函数numberOfwords中用到的部分标淮库函数如下所述函数原型说明intislowerintch;若ch表示一个小写英文字母则返回一个非0整数否则返回0intisupperintch若ch表示一个大写英文字母则返回一个非0整数否则返回0intisalnumintch;若ch表示一个英文字母或数字字符则返回一个非0整数否则返回0intisabhaintch;若ch表示一个英文字母则返回一个非0整数否则返回0intisdigitintch;若ch表示一个数字字符则返回一个非0整数否则返回0[C函数]intnumberOfwordscharmessage[]charwordbuffer[21]i=0;/*i用作wordbuffer的下标*/______pstr;intps[26]=0;/*ps[0]用于表示字母’A’或’a’的频数*//*ps[1]用于表示字母’B’或’b’的频数依此类推*/intwordcounter=0;Pstr=message;while*pstrif______*pstr/*调用函数判断是否为一个单词的开头字符*/i=0;do/*将一个单词的字符逐个存入wordbuffer[]并对字母计数*/wordbuffer[i++]=*pstr;ifisalpha*pstrif______*pstrps[*pstr-’a’]++;elseps[*pstr-’A’]++;______;/*pstr指向下一字符*/whilei<20&&isalnum*pstr||*pstr==’/;ifi>=20/*处理超长单词含名词所有格形式*/whileisalnum*pstr||*pstr==’\pstr++;______=’/0’;/*设置暂存在wordbuffer中的单词结尾*/wordcounter++;/*单词计数*/putswordbuffer;/*输出单词*/______;/*pstr指向下一字符*/returnwordcounter;
阅读以下说明和C程序填充程序中的空缺[说明]埃拉托斯特尼筛法求不超过自然数N的所有素数的做法是先把N个自然数按次序排列起来1不是素数也不是合数要划去2是素数取出2输出然后将2的倍数都划去剩下的数中最小者为33是素数取出3输出再把3的倍数都划去剩下的数中最小者为55是素数输出再把5的倍数都划去这样一直做下去就会把不超过N的全部合数都筛掉每次从序列中取出的最小数构成的序列就是不超过N的全部质数下面的程序实现埃拉托斯特尼筛法求素数其中数组元素sieve[i]i>0的下标i对应自然数isieve[i]的值为1/0分别表示i在/不在序列中也就是将i划去去掉时就将sieve[i]设置为0[C程序]#include<stdio.h>#defineN10000intmaincharsieve[N+1]=0;inti=0k;/*初始时2~N都放入sieve数组*/fori=2;______;i++sieve[i]=1;fork=2;;/*找出剩下的数中最小者并用K表示*/for;k<N+1&&sieve[k]==0;______;if______break;print%d/tk;/*输出素数*//*从sieve中去掉k及其倍数*/fori=k;i<N+1;i=____________;return0;/*endofmain*/
阅读以下说明和C代码回答下面问题将解答写在对应栏内[说明1]下面代码的设计意图是将保存在文本文件data.txt中的一系列整数不超过100个读取出来存入数组arr[]然后调用函数sort对数组arr的元素进行排序最后在显示屏输出数组arr的内容[C代码]若分别采用函数定义方式12和调用方式12请分析程序的运行情况填充下面的空若采用定义方式1和调用方式1则输出为00000000若采用定义方式1和调用方式2则______若采用定义方式2和调用方式1则______若采用定义方式2和调用方式2则______
阅读以下说明和C函数填充函数中的空缺[说明]函数Insert_key*rootkey的功能是将键值key插入到*root指向根结点的二叉查找树中二叉查找树为空时*root为空指针若给定的二叉查找树中已经包含键值为key的结点则不进行插入操作并返回0否则申请新结点存入key的值并将新结点DHA树中返回1提示二叉查找树又称为二叉排序树它或者是一棵空树或者是具有如下性质的二叉树若它的左子树非空则其左子树上所有结点的键值均小于根结点的键值若它的右子树非空则其右子树上所有结点的键值均大于根结点的键值左右子树本身就是二叉查找树设二叉查找树采用二叉链表存储结构链表结点类型定义如下typedefstructBiTnodeintkey_value;/*结点的键值为非负整数*/structBiTnode*left*right;/*结点的左右子树指针*/BiTnode*BSTree;[C函数]intInsert_keyBSTree*rootintkeyBiTnode*father=NULL*p=*root*s;while______&&key!=p->key_value/*查找键值为key的结点*/father=p;ifkey<p->key_valuep=______;/*进入左子树*/elsep=______;/进入右子树*/ifpreturn0;/*二叉查找树中已存在键值为key的结点无需再插入*/s=BiTnode*malloc______;/*根据结点类型生成新结点*/if!srettlrn-1;s->key_value=key;s->left=NULL;s->right=NULL;if!father______;/*新结点作为二叉查找树的根结点*/else/*新结点插入二叉查找树的适当位置*/ifkey<father->key_valuefather->left=s;elsefather->right=s;return1;
阅读以下说明和C函数填充函数中的空缺[说明]如果矩阵A中的元素A[ij]满足条件A[ij]是第i行中值最小的元素且又是第j列中值最大的元素则称之为该矩阵的一个马鞍点一个矩阵可能存在多个马鞍点也可能不存在马鞍点下面的函数求解并输出一个矩阵中的所有马鞍点最后返回该矩阵中马鞍点的个数[C函数]IntfindSaddleinta[][N]intM/*a表示M行N列矩阵N是宏定义符号常量*/introwcoiumnik;intminElem;intcount=0;/*count用于记录矩阵中马鞍点的个数*/forrow=0;row<______;row++/*minElem用于表示第row行的最小元素值其初值设为该行第0列的元素值*/______;forculumn=1;column<______;column++ifminElem>a[row][column]minElem=a[row][coiumn];fork=0;k<N;k++ifa[row][k]==minelem/对第row行的每个最小元素判断其是否为所在列的最大元素*/fori=0;i<M;i++if______>minElembreak;ifi>=______printf%d%d:%d/nrowkminElem;/*输出马鞍点*/count++;/*if*//*if*//*for*/returncount/*findSaddle*/
阅读以下说明和C++代码填充代码中的空缺[说明]下面的程序用来计算并寻找平面坐标系中给定点中最近的点对若存在多对则输出其中的一对即可程序运行时先输入点的个数和一组互异的点的坐标通过计算每对点之间的距离从而确定出距离最近的点对例如在图所示的8个点中点11与20.5是间距最近的点对[C++代码]#include<iostream>#include<cmath>usingnamespacestd;classGPointprivate:doublexy;public:voidsetXdoublexthis->x=x;voidsetYdoubleYthis->y=Y;doublegetXreturnthis->x;doublegetYreturnthis->y;;classComputeDistancepublic:doubledistanceGPointaGPointbreturnsqrta.getX-b.getX*a.getX-b.getx+a.getY-b.getY*a.getY-b.getY;;intmainintijnumberofP0ints=0;cout<<输入点的个数:;cin>>numberOfPOints;______points=newGPoint[numberOfPoints];//创建保存点坐标的数组memsetpoints0sizeofpoints;cout<<输入<<numberOfPoints<<个点的坐标:;fori=0;i<numberOfPointsi++doubletmpxtmpy;Cin>>tmpx>>tmpy;points[i].setXtmpx;points[i].setYtmpy;______computeDistance=newComputeDistance;intp1=0p2=1;//p1和p2用于表示距离最近的点对在数组中的下标doubleshortestDistance=computeDistance->distancepoints[p1]points[p2];//计算每一对点之间的距离fori=0;i<numberOfPoints;i++forj=i+1;j<______;j++doubletmpDistance=computeDistance->______;if______p1=i;p2=j;shortestDiStance=tmpDistance;cout<<距离最近的点对是:;coutpoints[p1].getX<<<<points[p1].getY<<和;cout<<points[p2].getX<<<<points[p2].getY<<<<endl;deletecomputeDiStance;return0;
阅读以下说明和C++代码填补C++代码中的空缺将解答写在对应栏内[说明]已知某公司按周给员工发放工资其工资系统需记录每名员工的员工号姓名工资等信息其中一些员工是正式的按年薪分周发放每年按52周计算另一些员工是计时工以小时工资为基准按每周工作小时数核算发放下面是实现该工资系统的C++代码其中定义了4个类工资系统类PayRoll员工类Emplovee正式工类Salaried和计时工类HourlySalaried和Hourly是Employee的子类[C++代码]//头文件和域名空间略constintEMPLOYEE_NUM=5;classEmployeeprotected:intemDCode;//员工号stringname;//员工姓名doublesalary;//周发放工资public:EmployeeconstintempCodeconststring&namethis->empCode=empCode;this->name=name;virtual~Employeevirtualvoidpay=0;doublegetSalaryreturnthis->salary;;classSalaried______private:doublepayRate;//年薪public:SalariedconstintempCodeconststring&namedoublepayRate:EmployeeempCodenamethis->payRate=payRate;voidpaythis->salary=______;//计算正式员工的周发放工资数cout<<this->name<<:<<this->salary<<endl;;classHourly______private:doublepayRate;//小时工资数inthours;//周工作小时数public:HourlyconstintempCodeconststring&nameinthoursdoublepayRate:EmployeeempCodenamethis->payRate=payRate;this->hours=hoursvoidpaythis->saiary=______;//计算计时工的周发放工资数cout<<this->name<<::<<this->salary<<endl;;classPayRollpublic:voidpayEmployee*e[]forinti=0;i<EMPLOYEE_NUM;i++e[i]->pay;;intmainPayRoll*payRoll=newPayRoll;______employees[EMPLOYEE_NUM]=newSalaried1001ZhangSan58000.00//此处省略对其他职工对象的生成newHourly1005L11250.00;payRoll->pay______;doubletotal=0.0;forinti=0;i<EMPLOYEE_NUM;i++total+=employees[i]->getSalary;//统计周发放工资总额cout<<总发放额=<<total<<endl;deletepayRoll;retum0;
阅读以下说明和C++代码填补C++代码中的空缺将解答写在对应栏内[说明]已知某公司按周给员工发放工资其工资系统需记录每名员工的员工号姓名工资等信息其中一些员工是正式的按年薪分周发放每年按52周计算另一些员工是计时工以小时工资为基准按每周工作小时数核算发放下面是实现该工资系统的C++代码其中定义了4个类工资系统类PayRoll员工类Emplovee正式工类Salaried和计时工类HourlySalaried和Hourly是Employee的子类[C++代码]//头文件和域名空间略constintEMPLOYEE_NUM=5;classEmployeeprotected:intemDCode;//员工号stringname;//员工姓名doublesalary;//周发放工资public:EmployeeconstintempCodeconststring&namethis->empCode=empCode;this->name=name;virtual~Employeevirtualvoidpay=0;doublegetSalaryreturnthis->salary;;classSalaried______private:doublepayRate;//年薪public:SalariedconstintempCodeconststring&namedoublepayRate:EmployeeempCodenamethis->payRate=payRate;voidpaythis->salary=______;//计算正式员工的周发放工资数cout<<this->name<<:<<this->salary<<endl;;classHourly______private:doublepayRate;//小时工资数inthours;//周工作小时数public:HourlyconstintempCodeconststring&nameinthoursdoublepayRate:EmployeeempCodenamethis->payRate=payRate;this->hours=hoursvoidpaythis->saiary=______;//计算计时工的周发放工资数cout<<this->name<<::<<this->salary<<endl;;classPayRollpublic:voidpayEmployee*e[]forinti=0;i<EMPLOYEE_NUM;i++e[i]->pay;;intmainPayRoll*payRoll=newPayRoll;______employees[EMPLOYEE_NUM]=newSalaried1001ZhangSan58000.00//此处省略对其他职工对象的生成newHourly1005L11250.00;payRoll->pay______;doubletotal=0.0;forinti=0;i<EMPLOYEE_NUM;i++total+=employees[i]->getSalary;//统计周发放工资总额cout<<总发放额=<<total<<endl;deletepayRoll;retum0;
阅读以下说明和C程序填充函数中的空缺[说明]N个游戏者围成一圈从1~N顺序编号游戏方式如下从第一个人开始报数从1到3报数凡报到3的人退出圈子直到剩余一个游戏者为止该游戏者即为获胜者下面的函数playingLinklisthead模拟上述游戏过程并返回获胜者的编号其中N个人围成的圈用一个包含N个结点的单循环链表来表示如图1所示游戏者的编号放在结点的数据域中在函数中以删除结点来模拟游戏者退出圈子的处理整型变量c初值为1用于计数指针变量p的初始值为head如图1所示游戏时从p所指向的结点开始计数p沿链表中的指针方向遍历结点c的值随p的移动相应地递增当c计数到2时就删除p所指结点的下一个结点因下一个结点就表示报数到3的游戏者如图2所示然后将c设置为0后继续游戏过程结点类型定义如下typedefstructnodeintcode;/*游戏者的编号*/structnode*next;NODE*LinkList;[C函数]intP1ayingLinkListheadintn/*head指向含有n个结点的循环单链表的第一个结点即编号为1的游戏者*/LinkListp=headq;intthewinnerc=1;whilen>______ifc==2/*当c等于2时p所指向结点的后继即为将被删除的结点*/q=p->next;p->next=______;printf%d/tq->code;/*输出退出圈子的游戏者编号*/freeq;/*if*/p=______;/*while*/theWinner=______;freep;returntheWinner;/*返回最后一个游戏者即获胜者的编号*/
阅读下列说明和C++代码填充代码中的空缺[说明]某学校在学生毕业时要求对其成绩进行综合评定学生的综合成绩GPA由其课程加权平均成绩Wg与附加分Ag构成即GPA=Wg+Ag设一个学生共修了n门课程则其加权平均成绩Wg定义如下其中gradeiCi分别表示该学生笫i门课程的百分制成绩及学分学生可以通过参加社会活动或学科竞赛获得附加分Ag学生参加社会活动所得的活动分Apoints是直接给出的而竞赛分Awards则由下式计算一个学生最多可参加m项学科竞赛其中li和si分别表示学生所参加学科竞赛的级别和成绩对于社会活动和学科竞赛都不参加的学生其附加分按活动分为0计算下面的程序实现计算学生综合成绩的功能每个学生的基本信息由抽象类Student描述包括学号stuNo姓名name课程成绩学分grades和综合成绩GPA等参加社会活动的学生由类ActStudent描述其活动分由Apoints表示参加学科竞赛的学生由类CmpStudent描述其各项竞赛的成绩信息由awards表示[C++代码]#include<string>#include<iostream>usingnamespacestd;constintn=5;/*课程数*/constintm=2;/*竞赛项目数*/classStudentprotected:intstuNo;stringname;doubleGPA;/*综合成绩*/int*grades[2];/*各门课程成绩和学分*/public:StudentconstintstuNeconststring&nameintgrades[][2]this->stuNo=stuNo;this->name=name;this->grades=grades;Virtual~StudentintgetstuNo/*实现略*/stringgetName/*实现略*/______;doublecomputeWginttotalGrades=0totalCredits=0;forinti=0;i<N;i++totalGrades+=grades[i][0]*grades[i][1];totalGredits+=grades[i][1];returnGPA=doubletotalGrades/totalCredits;;classActStudent;publicStudentintApoints;public;ActStudentconstintstuNoconststring&nameintgs[][2]intApoints:______this->Apoints=Apoints;doublegetGPAreturnGPA=______;;classCmpStudent:publicStudentprivate:int*awards[2];public:CmpStudentconstintstuNoconststring&nameintgs[][2]intawards[][2]:______this->award=award;doublegetGPAintAwards=0;forinti=0;i<M;i++Awards+=awards[i][0]*awards[i][1];ReturnGPA=______;;intmain//以计算3个学生的综合成绩为例进行测试intg1[][2]=803902953854863g2[][2]=603602603604653g3[][2]=803902703654753;//课程成绩intc3[][2]=2333;//竞赛成绩Student*Student[3]=newActStudent101Johng13//3为活动分newActStudent102Zhangg20newActStudent103Lig3C3;//输出每个学生的综合成绩forinti=0;i<3;i++Cout<<______<<endl;delete*student;return0;
阅读以下说明和C程序填充函数中的空缺[说明]N个游戏者围成一圈从1~N顺序编号游戏方式如下从第一个人开始报数从1到3报数凡报到3的人退出圈子直到剩余一个游戏者为止该游戏者即为获胜者下面的函数playingLinklisthead模拟上述游戏过程并返回获胜者的编号其中N个人围成的圈用一个包含N个结点的单循环链表来表示如图1所示游戏者的编号放在结点的数据域中在函数中以删除结点来模拟游戏者退出圈子的处理整型变量c初值为1用于计数指针变量p的初始值为head如图1所示游戏时从p所指向的结点开始计数p沿链表中的指针方向遍历结点c的值随p的移动相应地递增当c计数到2时就删除p所指结点的下一个结点因下一个结点就表示报数到3的游戏者如图2所示然后将c设置为0后继续游戏过程结点类型定义如下typedefstructnodeintcode;/*游戏者的编号*/structnode*next;NODE*LinkList;[C函数]intP1ayingLinkListheadintn/*head指向含有n个结点的循环单链表的第一个结点即编号为1的游戏者*/LinkListp=headq;intthewinnerc=1;whilen>______ifc==2/*当c等于2时p所指向结点的后继即为将被删除的结点*/q=p->next;p->next=______;printf%d/tq->code;/*输出退出圈子的游戏者编号*/freeq;/*if*/p=______;/*while*/theWinner=______;freep;returntheWinner;/*返回最后一个游戏者即获胜者的编号*/
阅读以下说明和C函数填充函数中的空缺[说明]函数GetDateIdDATEdate的功能是计算并返回指定合法日期date是其所在年份的第几天例如date表示2008年1月25曰时函数的返回值为25date表示2008年3月3日时函数返回值为63函数Kday_Dateinttheyearintk的功能是计算并返回指定合法年份theyeartheyear≥1900的第天1≤k≤365所对应的日期例如2008年的第60天是2008年2月29日2009年的第60天是2009年3月1日函数isLeapYearinty的功能是判断y代表的年份是否为闰年是则返回1否则返回0DATE类型定义如下typedefstructintyearmonthday;DATE;[C函数1]intGetDateIdDATEdateConstintdays_month[13]=0312831303130313130313031;intidate_id=date.day;fori=0;i<______;i++date_id+=days_month[i];if______&&isLeapYeardate.yeardate_id++;returndate_id;[C函数2]______Kday_Dateinttheyearintkinti;DATEdate;intdays_month[13]=0312831303130313130313031;assertk>=1&&k<=365&&theyear>=1900;/*不满足断言时程序终止*/date.year=______;ifisLeapYeardate.yeardays_month[2]++;fori=1;;k=k-davs_month[i++];ifk<=0date.day=k+______;date.month=i-1;break;returndate;
阅读以下说明和C函数将应填入______处的语句或语句成分写在对应栏内[说明]已知单链表L含有头节点且节点中的元素值以递增的方式排列下面的函数DeleteList在L中查找所有值大于minK且小于maxK的元素若找到则逐个删除同时释放被删节点的空间若链表中不存在满足条件的元素则返回-1否则返回0例如某单链表如图1所示若令minK为20maxK为50则删除后的链表如图2所示链表节点类型定义如下typedefStructNodeintdata;structNode*next;Node*LinkList;[C函数]intDeleteListLinkListLintminxintmaxK/*在含头节点的单链表L中删除大于minx且小于maxK的元素*/______*q=L*p=L->next;/*p指向第一个元素节点*/intdeiTag=0;whilepifp->data<=minKiq=p;p=______;elseifp->data<maxK=/*找到删除满足条件的节点*/q->next=______freep;p=______;delTag=1;elsebreak;if______return-1;return0;
阅读以下说明和C函数填充函数中的空缺[说明]已知两个整数数组A和B中分别存放了长度为m和n的两个非递减有序序列函数AdjustmentABmn的功能是合并两个非递减序列并将序列的前m个整数存入A中其余元素依序存入B中例如合并前合并后数组A的内容1928147数组B的内容47122937912282937合并过程如下从数组A的第一个元素开始处理用数组B的最小元素B[0]与数组A的当前元素比较若A的元素较小则继续考查A的下一个元素否则先将A的最大元素暂存入temp然后移动A中的元素挪出空闲单元并将B[0]插入数组A最后将暂存在temp中的数据插入数组B的适当位置保持B的有序性如此重复直到A中所有元素都不大于B中所有元素为止[C函数]voidAdjustmentintA[]intB[]intmintn/*数组A有m个元素数组B有n个元素*/intktemp;fori=0;i<m;i++ifA[i]<=B[0]continuetemp=______;/*将A中的最大元素备份至temp*//*从后往前依次考查A的元素移动A的元素并将来自B的最小元素插入A中*/fork=m-1;______;k--A[k]=A[k-1];A[i]=______;/*将备份在七emp的数据插入数组B的适当位置*/fork=1;______&&k
阅读以下说明和C程序填充程序中的空缺[说明]埃拉托斯特尼筛法求不超过自然数N的所有素数的做法是先把N个自然数按次序排列起来1不是素数也不是合数要划去2是素数取出2输出然后将2的倍数都划去剩下的数中最小者为33是素数取出3输出再把3的倍数都划去剩下的数中最小者为55是素数输出再把5的倍数都划去这样一直做下去就会把不超过N的全部合数都筛掉每次从序列中取出的最小数构成的序列就是不超过N的全部质数下面的程序实现埃拉托斯特尼筛法求素数其中数组元素sieve[i]i>0的下标i对应自然数isieve[i]的值为1/0分别表示i在/不在序列中也就是将i划去去掉时就将sieve[i]设置为0[C程序]#include<stdio.h>#defineN10000intmaincharsieve[N+1]=0;inti=0k;/*初始时2~N都放入sieve数组*/fori=2;______;i++sieve[i]=1;fork=2;;/*找出剩下的数中最小者并用K表示*/for;k<N+1&&sieve[k]==0;______;if______break;print%d/tk;/*输出素数*//*从sieve中去掉k及其倍数*/fori=k;i<N+1;i=____________;return0;/*endofmain*/
阅读以下说明和C函数填充函数中的空缺[说明]函数GetDateIdDATEdate的功能是计算并返回指定合法日期date是其所在年份的第几天例如date表示2008年1月25曰时函数的返回值为25date表示2008年3月3日时函数返回值为63函数Kday_Dateinttheyearintk的功能是计算并返回指定合法年份theyeartheyear≥1900的第天1≤k≤365所对应的日期例如2008年的第60天是2008年2月29日2009年的第60天是2009年3月1日函数isLeapYearinty的功能是判断y代表的年份是否为闰年是则返回1否则返回0DATE类型定义如下typedefstructintyearmonthday;DATE;[C函数1]intGetDateIdDATEdateConstintdays_month[13]=0312831303130313130313031;intidate_id=date.day;fori=0;i<______;i++date_id+=days_month[i];if______&&isLeapYeardate.yeardate_id++;returndate_id;[C函数2]______Kday_Dateinttheyearintkinti;DATEdate;intdays_month[13]=0312831303130313130313031;assertk>=1&&k<=365&&theyear>=1900;/*不满足断言时程序终止*/date.year=______;ifisLeapYeardate.yeardays_month[2]++;fori=1;;k=k-davs_month[i++];ifk<=0date.day=k+______;date.month=i-1;break;returndate;
阅读以下说明和C函数将应填入______处的语句或语句成分写在对应栏内[说明1]函数deldigitchar*s的功能是将字符串s中的数字字符去掉使剩余字符按原次序构成~个新串并保存在原串空间中其思路是先申请一个与s等长的临时字符串空间并令t指向它将非数字字符按次序暂存入该空间最后再复制给s[C函数]voiddeldigitchar*schar*t=char*malloc______;/*申请串空间*/intik=0;if!treturn;fori=0;i<strlens;i++=if!*s+i>=’0’&&*s+i<=’9’t[k++]=______;______=’/0’/*设置串结束标志*/strcpyst;freet;[说明2]函数reversechar*sintlen的功能是用递归方式逆置长度为len的字符串s例如若串s的内容为abcd则逆置后其内容变为dcba[C函数]voidreversechar*sintlencharch;if______ch=*s;*s=*s+len-1;*s+len-1=ch;reverse______;
阅读以下说明和C函数将应填入______处的语句或语句成分写在对应栏内[说明1]函数deldigitchar*s的功能是将字符串s中的数字字符去掉使剩余字符按原次序构成~个新串并保存在原串空间中其思路是先申请一个与s等长的临时字符串空间并令t指向它将非数字字符按次序暂存入该空间最后再复制给s[C函数]voiddeldigitchar*schar*t=char*malloc______;/*申请串空间*/intik=0;if!treturn;fori=0;i<strlens;i++=if!*s+i>=’0’&&*s+i<=’9’t[k++]=______;______=’/0’/*设置串结束标志*/strcpyst;freet;[说明2]函数reversechar*sintlen的功能是用递归方式逆置长度为len的字符串s例如若串s的内容为abcd则逆置后其内容变为dcba[C函数]voidreversechar*sintlencharch;if______ch=*s;*s=*s+len-1;*s+len-1=ch;reverse______;
阅读以下说明和C函数填充函数中的空缺[说明]如果矩阵A中的元素A[ij]满足条件A[ij]是第i行中值最小的元素且又是第j列中值最大的元素则称之为该矩阵的一个马鞍点一个矩阵可能存在多个马鞍点也可能不存在马鞍点下面的函数求解并输出一个矩阵中的所有马鞍点最后返回该矩阵中马鞍点的个数[C函数]IntfindSaddleinta[][N]intM/*a表示M行N列矩阵N是宏定义符号常量*/introwcoiumnik;intminElem;intcount=0;/*count用于记录矩阵中马鞍点的个数*/forrow=0;row<______;row++/*minElem用于表示第row行的最小元素值其初值设为该行第0列的元素值*/______;forculumn=1;column<______;column++ifminElem>a[row][column]minElem=a[row][coiumn];fork=0;k<N;k++ifa[row][k]==minelem/对第row行的每个最小元素判断其是否为所在列的最大元素*/fori=0;i<M;i++if______>minElembreak;ifi>=______printf%d%d:%d/nrowkminElem;/*输出马鞍点*/count++;/*if*//*if*//*for*/returncount/*findSaddle*/
阅读以下说明和C函数填充函数中的空缺[说明]已知两个整数数组A和B中分别存放了长度为m和n的两个非递减有序序列函数AdjustmentABmn的功能是合并两个非递减序列并将序列的前m个整数存入A中其余元素依序存入B中例如合并前合并后数组A的内容1928147数组B的内容47122937912282937合并过程如下从数组A的第一个元素开始处理用数组B的最小元素B[0]与数组A的当前元素比较若A的元素较小则继续考查A的下一个元素否则先将A的最大元素暂存入temp然后移动A中的元素挪出空闲单元并将B[0]插入数组A最后将暂存在temp中的数据插入数组B的适当位置保持B的有序性如此重复直到A中所有元素都不大于B中所有元素为止[C函数]voidAdjustmentintA[]intB[]intmintn/*数组A有m个元素数组B有n个元素*/intktemp;fori=0;i<m;i++ifA[i]<=B[0]continuetemp=______;/*将A中的最大元素备份至temp*//*从后往前依次考查A的元素移动A的元素并将来自B的最小元素插入A中*/fork=m-1;______;k--A[k]=A[k-1];A[i]=______;/*将备份在七emp的数据插入数组B的适当位置*/fork=1;______&&k
阅读以下说明和C++代码填充代码中的空缺[说明]下面的程序用来计算并寻找平面坐标系中给定点中最近的点对若存在多对则输出其中的一对即可程序运行时先输入点的个数和一组互异的点的坐标通过计算每对点之间的距离从而确定出距离最近的点对例如在图所示的8个点中点11与20.5是间距最近的点对[C++代码]#include<iostream>#include<cmath>usingnamespacestd;classGPointprivate:doublexy;public:voidsetXdoublexthis->x=x;voidsetYdoubleYthis->y=Y;doublegetXreturnthis->x;doublegetYreturnthis->y;;classComputeDistancepublic:doubledistanceGPointaGPointbreturnsqrta.getX-b.getX*a.getX-b.getx+a.getY-b.getY*a.getY-b.getY;;intmainintijnumberofP0ints=0;cout<<输入点的个数:;cin>>numberOfPOints;______points=newGPoint[numberOfPoints];//创建保存点坐标的数组memsetpoints0sizeofpoints;cout<<输入<<numberOfPoints<<个点的坐标:;fori=0;i<numberOfPointsi++doubletmpxtmpy;Cin>>tmpx>>tmpy;points[i].setXtmpx;points[i].setYtmpy;______computeDistance=newComputeDistance;intp1=0p2=1;//p1和p2用于表示距离最近的点对在数组中的下标doubleshortestDistance=computeDistance->distancepoints[p1]points[p2];//计算每一对点之间的距离fori=0;i<numberOfPoints;i++forj=i+1;j<______;j++doubletmpDistance=computeDistance->______;if______p1=i;p2=j;shortestDiStance=tmpDistance;cout<<距离最近的点对是:;coutpoints[p1].getX<<<<points[p1].getY<<和;cout<<points[p2].getX<<<<points[p2].getY<<<<endl;deletecomputeDiStance;return0;
阅读以下说明和C函数填充函数中的空缺[说明]如果矩阵A中的元素A[ij]满足条件A[ij]是第i行中值最小的元素且又是第j列中值最大的元素则称之为该矩阵的一个马鞍点一个矩阵可能存在多个马鞍点也可能不存在马鞍点下面的函数求解并输出一个矩阵中的所有马鞍点最后返回该矩阵中马鞍点的个数[C函数]IntfindSaddleinta[][N]intM/*a表示M行N列矩阵N是宏定义符号常量*/introwcoiumnik;intminElem;intcount=0;/*count用于记录矩阵中马鞍点的个数*/forrow=0;row<______;row++/*minElem用于表示第row行的最小元素值其初值设为该行第0列的元素值*/______;forculumn=1;column<______;column++ifminElem>a[row][column]minElem=a[row][coiumn];fork=0;k<N;k++ifa[row][k]==minelem/对第row行的每个最小元素判断其是否为所在列的最大元素*/fori=0;i<M;i++if______>minElembreak;ifi>=______printf%d%d:%d/nrowkminElem;/*输出马鞍点*/count++;/*if*//*if*//*for*/returncount/*findSaddle*/
阅读以下说明和C函数填充函数中的空缺[说明]函数Insert_key*rootkey的功能是将键值key插入到*root指向根结点的二叉查找树中二叉查找树为空时*root为空指针若给定的二叉查找树中已经包含键值为key的结点则不进行插入操作并返回0否则申请新结点存入key的值并将新结点DHA树中返回1提示二叉查找树又称为二叉排序树它或者是一棵空树或者是具有如下性质的二叉树若它的左子树非空则其左子树上所有结点的键值均小于根结点的键值若它的右子树非空则其右子树上所有结点的键值均大于根结点的键值左右子树本身就是二叉查找树设二叉查找树采用二叉链表存储结构链表结点类型定义如下typedefstructBiTnodeintkey_value;/*结点的键值为非负整数*/structBiTnode*left*right;/*结点的左右子树指针*/BiTnode*BSTree;[C函数]intInsert_keyBSTree*rootintkeyBiTnode*father=NULL*p=*root*s;while______&&key!=p->key_value/*查找键值为key的结点*/father=p;ifkey<p->key_valuep=______;/*进入左子树*/elsep=______;/进入右子树*/ifpreturn0;/*二叉查找树中已存在键值为key的结点无需再插入*/s=BiTnode*malloc______;/*根据结点类型生成新结点*/if!srettlrn-1;s->key_value=key;s->left=NULL;s->right=NULL;if!father______;/*新结点作为二叉查找树的根结点*/else/*新结点插入二叉查找树的适当位置*/ifkey<father->key_valuefather->left=s;elsefather->right=s;return1;
热门题库
更多
中级网络工程师
中级信息系统管理工程师
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术