首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
[说明] 试从含有n个int 型数的数组中删去若干个成分,使剩下的全部成分构成一个不减的子序列。设计算法和编写程序求出数组的不减子序列的长。 [C++ 程序] #include<stdio...
查看本题答案
包含此试题的试卷
初级程序员《填空》真题及答案
点击查看
你可能感兴趣的试题
[说明]试从含有n个int型数的数组中删去若干个成分使剩下的全部成分构成一个不减的子序列设计算法和编
已知在文件IN11.DAT中存有若干个个数
已知在文件in.dat中存有若干个个数<200四位非零整数函数readdat读取这若干个整数并存入数
任何一个C程序都由和若干个被调用的其它函数组成
以下程序的功能是删去一维数组中所有相同的数使相同的数只剩一个数组中的数已按由小到大的顺序排列函数fu
已知在文件IN13.DAT中存有若干个个数#include〈conio.h>#defineMAXNU
什么是指数体系试举例说明若干个因素指数的乘积等于总变动指数
已知文件IN.DAT中存有若干个小于200的四位正整数函数ReadDat读取若干个正整数并将其存入数
avg函数的功能是求整型数组中的前若干个元素的平均值设数组元素个数最多不超过10则下列函数说明语句错
int avg(int*a,int n);
int avg(int a[10],int n);
int avg(int a,int n); int avg(int a[],int n);
请编写函数fun函数的功能是:删去一维数组中所有相同的数使之只剩一个数组中的数已按由小到大的顺序排列
已知在文件IN13.DAT中存有若干个个数〈2004位数字的正整数函数ReadDat的功能是读取这若
在主函数中从键盘输入若干个数放入数组x中用0结束输入但不计入数组下列给定程序中函数fun的功能是输出
已知在文件IN13.DAT中存有若干个个数
avg函数的功能是求整型数组中的前若干个元素的平均值设数组元素个数最多不超过10则下列函数说明语句错
int avg(int *a,int n);
int avg(int a[10],int n);
int avg(int a,int n) ;
int avg(int a[],int n);
已知在IN.DAT文件中存有若干个<200四位数字的正整数函数ReadDat读取若干个正整数并存入数
已知在文件in.dat中存有若干个小于200的4位数字的正整数函数ReadDat读取若干个正整数并存
请补充函数fun该函数的功能是删去一维数组中所有相同的数使之只剩一个数组中的数已按由小到大的顺序排列
以下程序的功能是删去一维数组中所有相同的数使之只剩一个数组中的数已按由小到大的顺序排列函数返回删除后
请编写函数fun该函数的功能是删去一维数组中所有相同的数使之只剩一个数组中的数已按由小到大的顺序排列
已知在IN.DAT文件中存有若干个<200四位数字的正整数函数ReadDat读取这若干个正整数并存入
热门试题
更多
阅读下列说明图和C++代码填补空缺 [说明] 已知对某载客车辆Car进行类建模如图12-2所示其中类Engine表示发动机引擎类Wheel表示车轮类Body表示车身类Driver表示司机类Passenger表示乘客 constint1 =7;//定义最多载客数constintMAX_WHEELS=5; //定义最多轮胎数classBody{//此处代码省略 ;//车身类classPassenger{//此处代码省略}; //乘客类ClassWheel{//此处代码省略}; //车轮类ClassDriver{//司机类 publicstringname;//表示第几路公交车司机 DriverstringdriverNamemarne2{}; //构造函数};classEngine{ //引擎类publicstringengineNo; //引擎编号EnginestringengineNo{3 ->engineNo=engineNo;}//构造函数}; ClassCar{//汽车类protected: Engine*engine;Driver*driver;Bodybody; Wheel*wheels[MAX_WHEELS];Passenger*passengers[MAX_PASSENGERS]; publicCarDriver*driver //构造函数this->driver=driver;engine=new EngineTX6536型号引擎;forintindex=0;index<MAX_WHEELS; index++{wheels[index]=newWheel; }forintindex=0;index
【说明4.1】 假设两个队列共享一个循环向量空间如图1-2所示其类型Queue2定义如下 typedefstruct{ DateTypedata[MaxSize]; intfront[2]rear[2]; }Queue2; 对于i=0或1front[i]和rear[i]分别为第i个队列的头指针和尾指针函数.EnQueueQueue2*QintiDaleTypex的功能是实现第i个队列的入队操作 【函数4.1】 intEnQueueQueue2*QintiDateTypex {/*若第i个队列不满则元素x入队列并返回1否则返回0*/ ifi<0‖i>1return0; ifQ->rear[i]==Q->front[1] return0; Q->data[2]=x; Q->rear[i]=[3]; return1; } 【说明4.2】 函数BTreeEqualBinTreeNode*T1BinTtneNode*T2的功能是递归法判断两棵二叉树是否相等若相等则返回1否则返回0函数中参数T1和T2分别为指向这两棵二叉树根结点的指针当两棵树的结构完全相同并且对应结点的值也相同时才被认为相等 已知二叉树中的结点类型BinTreeNode定义为 structBinTreeNode{ chardata; BinTreeNode*left*right; }; 其中dau为结点值域leR和risht分别为指向左右子女结点的指针域 【函数4.2】 intBTreeEqualBinTreeNode*T1BinTreeNode*T2 { ifTi==NULL&&T2==NULLreturn1/*若两棵树均为空则相等*/ elseif4return0;/*若一棵为空一棵不为空则不等*/ elseif5return1;/*若根结点值相等并且左右子树*/ /*也相等则两棵树相等否则不等*/ elsereturn0; }
类Stock的定义中有两处错误请指出错误所在行号并给出该行修改后的完整结果
【说明】 本程序通过移动滑动条修改颜色RGB值从而控制颜色程序中有一个面板3个标签和3个滑动条标签和滑动条一一对应分别对应三原色红绿蓝任意拖动其中的一个滑动条所对应的颜色值就会发生变化面板的颜色也会发生对应的变化如下图所示滑动条值的范围是0~255 【Java代码】 importjava.awt.*; importjava.awt.event.*; importjavax.swing.*; publicclasssimpleextendsJFrameimplementsAdjustmentListener{ publicsimple{ setTitlesimple; setSize300200; addWindowListenernewWindowAdapter{ publicvoidwindowClosing1{ System.exit0; } }; ContainercontentPane=getContentPane; JPanelp=2; p.setLayoutnewGridLayout32; p.addredLabel=newJLabelRed0; p.addred=newJScrollBarAdjustable.HORIZONTAL000255; red.setBlocklncrement16; red.addAdjustmentListenerthis; p.addgreenLabel=3Green0; p.addgreen=newJScrollBarAdjustable.HORIZONTAL000255; greensetBIocklncrement16; green.addAdjustmentListenerthis; p.addblueLabel=newJLabelBlue0; p.addbtue=newJScrollBarAdjustable.HORIZONTAL000255; bluesetBIocklncrement16; blue.addAdjustmentListenerthis; contentPane.addpSouth; colorPanet=newJPanel; colorPanet.setBackgroundnewColor000; contentPane.add4Center; }publicvoidadjustmentValueChangedAdjustmentEventevt{ redLabel.setTextRed+red.getValue; greenLabel.setTextGreen+green.getValue; blueLabel.setTextBlue+blue.getValue; coiorPanel.setBackgroundnewColorred.getValuegreen.getValueblue.getValue; colorPanel.repaint; } publicstaticvoidmainString[]args{ JFramef=5; f.show; } privateJLabelredLabel; privateJLabelgreenLabel; privateJLabelblueLabel; privateJScrollBarred; privateJScroilBargreen; privateJScrollBarblue; privateJPanelcolorPanel;
【说明】 输入数组最大的与第一个元素交换最小的与最后一个元素交换输出数组 【函数】 main { intnumber[10]; inputnumber; maxminnumber; outputnumber; } inputnumber intnumber[10]; {inti; fori=0;i<9;i++ scanf%d&number[i]; scanf%d&number[9]; } max_minarray intarray[10]; {int*max*mink1; int*p*arr_end; arrend=1; max=min=array; forp=2;p<arr_end;p++ if3max=p; elseif*p<*minmin=p; 4; l=*min; 5;array[0]=1;1=*p; *p=array[9];array[9]=k;k=*p; return; } outputarray intarray[10]; {int*p; forp=array;p<array+9;p++ printf%d*p; printf%d/narray[9]; }
【说明】 以下【C程序】的功能是逐一从指定课程成绩文件中读入学生的考号和成绩对同一学生汇总他她的总成绩并按如图6-14所示格式输出名次按总成绩由高到底的顺序总成绩同一名次的学生人数同一名次学生的学号按学号由小到大的顺序 该应用程序约定学生学习课程不超过30种课程成绩文件的第1个数字就是课程号统计过程中同一课程号的成绩文件不能重复输入 该应用程序采用链表结构存储学生的相关信息链表中的每个表元对应一位学生在数据输入过程中形成一个按学号从小到大顺序链接的有序链表当数据输入结束后程序按总成绩从高到低学号从小到大的顺序对链表排序最后程序按指定格式输出链表中的信息 【C程序】 #include<stdio.h> #defineM30 #defineNLEN10 typedefstructnode{ intcur_s;/*最近输入成绩的科目*/ Charno[NLEN]; intscore structnode*next; }NODE ints[M]spssimarkorderC; FILE*fp;NODE*h*U*V*p; Charfname[80]no[NLEN]ans; main {forh=NULLsp=0;; {printf输入科目成绩文件名输入aaaa表示强行结束/n while1 {scanf%sfname; ifstrcmpfnameaaaa==0 break; iffp=fopenfnamer==NULL printf不能打开文件%s请重新输入科目文件名/nfname; else break; } ifstrcmpfnameaaaa==0break; fscanffp%d&ss;/*输入科目号*/s[sp]=s; fori=0;s[i]!=ss;1++; if1 {printf该科目的成绩已输入请输入别的科目成绩文件/n; continue; } sp++; whilefscanffp%s%dno&mark==2 {/*在链表中寻找最近输入的学号*/ forv=h;v!=NULL&&strcmpv->nono<0;u=vv=v->next ifv!=NULL&&strcmpv->nonb==0 {/*该生已有成绩*/ ifV->cur_s!=ss {/*该生的当前科目成绩是第一次输入*/ v->score+=mark;/*累计总成绩*/ v->cur_s=ss; }/*同一科目成绩重复输入后输入成绩被忽略*/ } else {p=NODE*mallocsizeofNODE;/*一位新的学生*/ strcpyp->nono; p->score=mark; p->cur_s=ss; p->next=v; ifv==h 2; else 3; } } fclosefp; printf还有科目成绩文件要输入吗Y/N; scanf%c&ans; ifans==’N’||ans==’n’break; }/*以下按总成绩和学号对链表排序*/ v=NODE*mallocsizeofNODE; v->next=h; h=v; whilev->next!=NULL {/*在余下的部分链表中找总成绩高学号小的表元*/ forp=vu=v->next;u->next!=NULL;u=u->next ifu->next->score>p->next->score||u->next->score ==p->next->score&&strcmpu->next->nop->next->no<0 p=u; ifp!=v {u=p->next; p->next=4; 5=v->next; v->next=u; } v=v->next; } v=h;h=h->next;freev; printf名次总成绩人数学号/n;/*以下按格式要求输出*/ v=h;order=1; whilev!=NULL {forc=1u=v->next;u!=NULL&&u->score==v->score;6; printf%4d%7d%8dorderv->scorec; fororder+=ci=1;7;v=v->nexti++ {ifi>1&&i%5==1 printf/n%23c’’; printf%sv->no; } printf/n; } }
【说明】程序8用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额职工的当月收入工资或薪金通过键盘输入每次输入一个职工的工号和工资或薪金由于该公司的工资或薪金是不定时发放的所以输入过程中每个职工的收入会出现多次输入整个输入以工号小于等于0结束假设个人所得税法规定个人收入所得按月计税以每月收入总额减除免税金额800元后的余额作为该月的月应纳税所得额适用税率如表2所示表2 级数 月应纳税所得额 适用税率% 123456789 不超过500元的部分501元~2000元的部分2001元~5000元的部分5001元~2000元的部分2001元~4000元的部分4001元~6000元的部分6001元~8000元的部分8001元~100000元的部分超过100000元的部分 51015202530354045上表表明个人收入所得税是按照超额累进的税率来征收的设一个人的月应纳税所得额为K元用下面的公式计算其应缴纳的个人所得税额S元若0<K≤500则S=K×5%;若500<K≤2000则S=500×5%+K-500×10%;若2000<K≤5000则S=500×5%+1500×10%+K-2000×15%;若5000<K≤20000则S=500×5%+1500×10%+3000×15%+K-5000×20%;...例如某人某月收入总额为4100元减去800元后应纳税所得额为3300元其应缴纳的个人所得税额为500*5%+1500*10%+1300*15%=370元【程序】#include<stdio.h>#defineMaxNum50#defineBASE800/*免税金额基数*/intpaylevel[]={050020005000200004000060000800001000001000001};inttaxPrate[]={51015202530354045};/*税率表*/typedefstruct{intld;/*职工的工号*/longSalary;/*职工的工资*/}Info;/*查找工号为ld的职工在数组employee中的下标返回值为0表示没有*/intfindintldInfoemployee[]intm{intj;employee[0].Id=Id;forj=m;1;j--;returnj;}voidmainvoid{Infoemployee[MaxNum+1];longWage;doublesum=0KS;intijN=0Code;scanf%d%Id&Code&Wage;whileCode>0{i=findCodeempolyeeN;ifi>0employee[i].Salary+=Wage;else{2;employee[N].Id=Code;employee[N].Salary=Wage;}scanf%d%Id&Code&Wage;}fori=1;i<=N;i++{K=3;/*计算月应纳税所得额*/S=0;/*月应纳税额赋初值*/ifK>0{forj=1;j<=9;j++if4/*月应纳税所得额超过第j级*/S=S+paylevel[j]-paylevel[j-1]*taxPrate[j-1]/100;else{S=S+5*taxPrate[j-1]/100;break;}}printf职工%d应缴纳的个人所得税额%10.21f/nemployee[i].IdS;sum+=S;}printf全体职工个人所得税总额%10.21f/nsum;}
【说明】 设学生学生数少于50人某次考试的成绩按学号顺序逐行存放于某文件中文件以单行句点.为结束符下面的流程图用于读取该文件并把全部成绩从高到低排序到数组B[50]中 【流程图】
【说明】 在下面函数横线处填上适当的字句使其输出结果为 构造函数. 构造函数. 12 56 析构函数 析构函数. 【C++代码】 #includeiostream.h classAA {public; AAintiintj {A=i;B=j; cout<<构造函数./n; } ~AA{1;} voidprint; private: intAB; }; voidAA∷print {cout<<A<<<<B<<endl;} voidmain { AA*a1*a2; 2=newAA12; a2=newAA56; 3; a2->print; 4a1; 5a2; }
【说明】 设串s和串t采用顺序存储结构编写函数实现串s和串t的比较操作要求比较结果包括大于小于和等于3种情况 【函数】 intStrCompareSStrTypesSStrTypet { intn=s.lengthm=1ijtag; i=0;j=0; while2 { if3 { i++; j++; } elseifs.str[i]>t.str[j] { tag=1; returntag; } else { tag=-1; returntag; } } ifn==m tag=0; elseif4 tag=1; elseifn<m tag=-1; 5; }
【说明】 编写字符界面的Application程序接收依次输入的10个整型数据每个数据一行将这些数据按升序排序后从系统的标准输出设备输出 【Java代码】 importjava.iO.*; importjava.util.*; publicclasscompositor { publicstaticvoidmainStringargs[] { finalintNUMBER=10; VectordataVector=newVector; try { BufferedReaderbr=newBufferedReader 1InputStreamReaderSystem.in; System.out.println请输入+NUMBER+个整数; forinti=0;i<NUMBER;i++ { inttemp=Integer.parselntbr.2; intlow=0high=i-1mid=0; while3 { System.out.printlnlow++mid++high; 4; ifIntegerdataVectOr.getmid.intValue==temp { dataVector.insertElementAtnewIntegertempmid; break; } elseifIntegerdataVector.getmid.intValue>temp { high=mid-1; } else { 5; } } iflow>high { dataVectorinsertElementAtnewIntegertempiow; } } //输出 System.out.println/n升序的排序结果为;; forinti=0;i<NUMBER;i++ { System.out.printdataVector.geti.toString+/t; } } catchNumberFormatExceptionnfe { System.out.printlnnfe.toString; System.out.println整数格式输入错误; } catchIOExceptionioe { System.out.printlnioe.toString; } } }
阅读以下说明和C++代码填补空缺 [说明] C++标准模板库中提供了vector模板类可作为动态数组使用并可容纳任意数据类型其所属的命名空问为stdvector模板类的部分方法说明如表12-3所示 表12-3vector模板类的部分方法 方法 含义 push_backk 向vector对象的尾部添加一个元素k begin 返回一个迭代器对象该对象指向vector中的第一个元素 end 返回一个迭代器对象该对象指向vector中的最后一个元素 empty 测试vector对象是否为空 eraseptr 删除vector中ptr指向的元素 [C++代码]#include<iostream> #include<vector>usingnamespace1; typedefvector<2>INTZECTOR; constintARRAY_SIZE=6;voidShowVectorINTVECTOR& theVector;intmain{ INTVECTORtheVector; //初始化theVector将theVector的元素依次设置为0至5forint cEachItem=0;cEachItem<ARRAY_SIZE;cEachItem++ theVector.push_back3; ShowVectortheVector;//依次输出theVector中的元素theVector. erasetheVector.begin+3; ShowVectortheVector;}void ShowVectorINTVECTOR&theVector{iftheVector. empty{cout<<theVectorisempty. <<endl;return;}INTVECTORiterator 4;fortheIterator= theVector.begin;theIterator!=theVector.end ;theIterator++{cout<<*theIterator; iftheIterator!=thevector.end-1cout<<; }cout<<endl;} 该程序运行后的输出结果为012345 5
【说明】 找一个最小的自然数使它等于不同的两组三个自然数的三次幂之和即找最小的x使得x=a*a*a+b*b*b+c*C*c+d*d*d+e*e*e+f*f*f其中abcdef者是是自然数a≤b≤C≤d≤e≤f[abc]!=[def 【C++程序】 #include<stdio.h> #defineN100 voidmain { intijilihi0j0k0ilj1k1; intj1[N]jh[N];/*第i层平面的行的变化范围自jl[i]至jh[i]*/ intk[N][N];/*第i层平面中对应行j当前的列号值为k[i][j]*/ intp[N]min;/*p[i]=i*i*i*/ i1=1;j1=1;k1=1;/*首先只局限下三角棱体的顶点*/ i1=1;ih=1;/*预置i的变化范围初值i1<=i<=ih*/ j1[1]=1;jh[1]=1;/*对应i层平面的行的变化范围*/ k[i1][j1[i1>=1;/*第i层平面中对应行的列的初值*/ p[1]=1; do { min=p[i1]+p[j1]+p[k1]; i0=i1;j0=j1;k0=k1; ifi1==ih/*当前候选者在ih平面则ih增1*/ { ih++; 1; /*为ih平面设定j的变化范围和对应k值*/ j1[ih]=1;jh[ih]=1;k[ih][1]=1; } ifi1==i1&&j1==i1&&k1==i1 i1++;/*在i1平面最下角点找到候选者i1增1*/ else { ifk1==1&&jh[i1]<i1 {/*在第一列找到候选者i1平面的行的上界增1*/ 2; k[i1][jh[i1>=1; } ifk1==j1&&j1[i1]<i1 else 3;/*调整i1平面当前行的列号*/ } i1=i1;/*预定最上平面的最小行的当前列为下一个候选者*/ j1=j1[i1]; k1=k[i1][j1]; fori=i1;i<=ih;i++/*寻找最小值所在平面号行号和列号*/ { forj=j1[i];j<=jh[i];j++ ifp[i]+p[j]+p[k[i][j><4 { i1=i;j1=j;k1=k[i][j]; } } }whilep[i1]+p[j1]+p[k1]!=min&&5; ifp[i1]+p[j1]+p[k1]==min printf%4d=%2d^3+%d^3+%dA3=%2d^3+%d^3+%d^3/nmini0j0k0i1j1k1; elseprintfThe%distoosmall./nN; }
请认真阅读以下关于某传输系统的技术说明状态转换图及C++代码根据要求回答问题1和问题2 【说明】 传输门是传输系统中的重要装置传输门具有Open打开Closed关闭Opening正在打开StayOpen保持打开和Closing正在关闭5种状态触发状态的转换事件有clickcomplete和timeout 3种事件与其相应的状态转换如图6-18所示 下面的【C++代码1】与【C++代码2】分别用两种不同的设计思路对传输门进行状态模拟请填补代码段中的空缺语句 【C++代码1】constintCLOSED=1;const intOPENING=2;constintOPEN=3;const intCLOSING=4;constintSTAYOPEN=5; //定义状态变量用不同整数表示不同状态 classDoor{private: private: intstate; //传输门当前状态void setStateintstate{this->state=stale;} //设置当前状态public: Door:stateCLOSED{}; voidgetState{ //根据当前状态输出相应的字符串 switchstate{ caseOPENING:cout<<OPENING<<endl; break;caseCLOSED: cout<<CLOSED<<endl;break; caseOPEN:cout<<OPEN<<endl; break; caseCLOSING:cout<<CLOSING<<endl; break; caseSTAYOPEN:cout<<STAYOPEN<<endl;break; } }voidclick{ //发生click事件时进行状态转换if 1setStateOPENING; elseif2 setStateCLOSING;else if3setStateSTAYOPEN; } voidtimeout{ //发生timeout事件时进行状态转换 ifstate==OPEN setStateCLOSING;} voidcomplete{ //发生complete事件时进行状态转换 ifstate==OPENINGsetStateOPEN; elseifstate==CLOSING setStateCLOSED;} };int main{DooraDoor; aDoor.getState;aDoor.click;aDoor.getState; aDoor.complete;aDoor.getState; aDoor.click;aDoor.getState;aDoor.click; aDoor.getState;return0; }【C++代码2】classDoor {public: DoorState*CLOSED*OPENING*OPEN*CLOSING*STAYOPEN *state;Door; virtual~Door{... //释放申请的内存此处代码省略}; voidsetStateDoorState*state{this->state=state; }voidgetState{ //例如当前状态为CLOSED时输出字符串为CLOSED }; voidclick;void timeout;void complete;}; Door::Door{CLOSED= newDoorClosedthis;OPENING=new DoorOpeningthis;OPEN=new DoorOpenthis;CLOSING=new DoorClosingthis;STAYOPEN=new DoorStayOpenthis;state= CLOSED;} voidDoor::click{4;} voidDoor::timeout{5;} voidDoor::complete{6;} classDoorState{ //定义一个抽象的状态它是所有状态类的基类protected:Door *door;public: DoorStateDoor*door{this->door=door;} virtual~DoorStatevoid; virtualvoidclick{} virtualvoidcomplete{} virtualvoidtimeout{} };classDoorClosed:public DoorState{//定义一个基本的closed状态 public:DoorClosedDoor *door:DoorStatedoor{}virtual~ DoorClosed{}void click;}; voidDoorClosed::click{7;} //其他状态类的定义与实现代码省略iht main{DooraDoor; aDoor.getState;aDoor.click; aDoor.getState;aDoor.complete; aDoor.getState;aDoor.timeout;aDoor.getState; return0; 【问题2】 请用150字以内的文字简要说明【C++代码1】【C++代码2】这两种对传输门进行状态模拟的设计思路的区别之处
阅读以下技术说明流程图和C程序根据要求回答问题1和问题2 【说明】 如图6-13所示的程序流程图描述了对8位二进制整数求补的算法该算法的计算过程如下从二进制数的低位最右位开始依次向高位逐位查看直到首次遇到1时停止查看然后对该1位左面的更高位如果存在的话逐位求反所得的结果就是对原二进制数求补的结果例如对二进制整数10010110求补的结果时01101010 设8位二进制整数中的各位从低位到高位依次存放在整型数组BIT的BIT[1]~BIT[8]中例如二进制整数10010110存放在数组BIT后则有BIT[1]=0BIT[2]=1BIT[7]=0BIT[8]=1若流程图中存在空操作则用NOP表示 以下待修改的【C程序】完成的功能是对于给定的1个长正整数从其个位数开始每隔一位取1个数字即取其个位百位和万位等数字形成1个新的整数并输出例如将该程序修改正确后运行时若输入9753186420则输出的整数为73840 【C程序】行号C代码01 #include<stdio.h>02int main03{long nnum;04int i;05do{ 06 printf请输入一个正整数:;07 scanf%1dn;08 }whilen<=0;09 k=1;10for i=1;n>=0;i++{11 ifi%2=1{12 num=num+n%10*k; 13k= k*10;14 }15n= n/10;16}17 printf新数据为%d/nnum;18 return0;19 } 【问题1】 请将图6-13流程图中1~5空缺处的内容补充完整其中1空缺处按循环变量名循环初值增量循环终值格式描述
关于上述C++代码中sh和tr的以下叙述中哪两个是正确的写出编号 ①sh和tr分别引用同一个对象 ②sh和tr分别引用同一类型的不同的对象 ③sh和tr分别引用不同类型的不同对象 ④sh和tr分别引用同一个对象的不同复制 ⑤sh和tr所引用的内存空间是相同的
阅读以下说明和C++代码填补空缺 [说明] C++标准模板库中提供了vector模板类可作为动态数组使用并可容纳任意数据类型其所属的命名空问为stdvector模板类的部分方法说明如表12-3所示 表12-3vector模板类的部分方法 方法 含义 push_backk 向vector对象的尾部添加一个元素k begin 返回一个迭代器对象该对象指向vector中的第一个元素 end 返回一个迭代器对象该对象指向vector中的最后一个元素 empty 测试vector对象是否为空 eraseptr 删除vector中ptr指向的元素 [C++代码]#include<iostream> #include<vector>usingnamespace1; typedefvector<2>INTZECTOR; constintARRAY_SIZE=6;voidShowVectorINTVECTOR& theVector;intmain{ INTVECTORtheVector; //初始化theVector将theVector的元素依次设置为0至5forint cEachItem=0;cEachItem<ARRAY_SIZE;cEachItem++ theVector.push_back3; ShowVectortheVector;//依次输出theVector中的元素theVector. erasetheVector.begin+3; ShowVectortheVector;}void ShowVectorINTVECTOR&theVector{iftheVector. empty{cout<<theVectorisempty. <<endl;return;}INTVECTORiterator 4;fortheIterator= theVector.begin;theIterator!=theVector.end ;theIterator++{cout<<*theIterator; iftheIterator!=thevector.end-1cout<<; }cout<<endl;} 该程序运行后的输出结果为012345 5
从下列3道试题试题5至试题7中任选1道解答如果解答的试题数超过1道则题号小的1道解答有效 阅读以下应用说明及VisualBasic程序代码根据要求回答问题1至问题3 【说明】在Visual Basic程序中设计一个个人所得税计算器其应用程序的运行窗口如图6-16所示 窗口中的3个文本框和两个按钮的名称分别为Txt_salaryTxt_baseTxL_taxCmd_compute和 Cmd_quit个人所得税计算器程序运行时文本框Txt_base中存放的是免税金额基数应扣除的基本费用当用户在文本框Txt_salary中输入月收入工资或薪金并单击【计算】按钮Cmd_compute后Txt_tax框中就显示计算所得的应纳税额文本框Txt_base和Txt_tax在运行时不接受用户输入Txt_base的内容以灰色显示 个人工资或薪金所得税是按照超额累进的税率来征收的其计算方法如下以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额再将应纳税所得额按相应级数采用相应的税率进行累进计算目前的免税金额基数为1 600元税率如表6-15所示 表6-15 个人所得税税率表工资薪金所得适用 级数 全月应纳税所得额 税率% 1 不超过500元的 5 2 超过500元至2000元的部分 10 3 超过2000元至5000元的部分 15 4 超过5000元至20000元的部分 20 5 超过20000元至40000元的部分 25 6 超过40000元至60000元的部分 30 7 超过60000元至80000元的部分 35 8 超过80000元至100000元的部分 40 9 超过100000元的部分 45 注本表所称全月应纳税所得额是指依照本法第六条的规定以每月收入额减除费用1600元后的余额或者减除附加减除费用后的余额 设某个人的全月应纳税所得额为M元用下面的公式计算其应缴纳的个人所得税额S元 若0<M≤500则S=M×5% 若500<M≤2000则S=500×5%+M-500×10% 若2000<M≤5000则S=500×5%+1500×10%+M-2000×15% 若5000<M≤20000则S=500×5%+1500×10%+3000×15%+M-5000×20% 假设某程序员2008年5月份工资总额为4700元减去1600元后应纳税所得额为3100元其应缴纳的个人所得税额为500×5%+1500×10%+1100×15%=340元 在开发过程中需要编写的程序代码如下【VisualBask程序】Option Base0PrivateSubCmdcompute-Click DimpayleveltaxPrate paylevel=Array050020005000200004000060000800001000001000001 taxPrate=Array51015202530354045 M=1S=0 IfM>0ThenForj=1To9 If2Then s=s+paylevelj-paylevelj-1*taxPratej-1/100 Else 3Exit ForEndif NextjEndif4 =Str$SEndSubPrivateSub Cmd_quit_ClickEndEndSub PrivateSubForm_LoadTxt_tax.Text= Txt_salary.Text= Txt_base.Text=1600Txt_tax.Locked= TrueTxt_base.Enabled=5 EndSub 【问题3】 为使应用程序启动时所载入的窗口图6-16中具有背景图像取自用户自定义的某个图像文件C:/user/background.bmp并且在程序运行时当被遮的该窗口又重现时其背景图像会自动重画在开发如图6-16所示窗体时应对窗体属性对话框图6-17中哪些关键属性进行什么样的设置
【说明】 本程序用古典Eratosthenes筛选法求从2起到指定范围内的素数如果要找出2~10中的素数开始时筛中有2~10的数然后取走筛中最小的数2宣布它是素数并把该素数的倍数都取走这样第一步以后筛子中还留下奇数3579重复上述步骤再取走最小数3宣布它为素数并取走3的倍数于是留下57反复重复上述步骤直到筛中为空时工作结束求得2~10中的全部素数 【代码】 #include<stdio.h> #defineMAX22500 /*程序中用数组sieve表示筛子数组元素sieve[i]的值为1时表示数i在筛子中值为-1时表示数i已被取走*/ main {unsignedintirangefactork; intsieve[MAX]; printfpleaseinputtherange:; scanf%d⦥/*range指出在多大的范围内寻找素数*/ fori=2;i<=range;i++ 1; factor=2; whilefactor<=range {if2/*筛中最小数是素数*/ {printf%d/tfactor; k=factor; whilek<=range/*移走素数的倍数*/ {3; k=4; } } 5; } }
从下列3道试题试题5至试题7中任选1道解答如果解答的试题数超过1道则题号小的1道解答有效 阅读以下应用说明及VisualBasic程序代码根据要求回答问题1至问题3 【说明】在Visual Basic程序中设计一个个人所得税计算器其应用程序的运行窗口如图6-16所示 窗口中的3个文本框和两个按钮的名称分别为Txt_salaryTxt_baseTxL_taxCmd_compute和 Cmd_quit个人所得税计算器程序运行时文本框Txt_base中存放的是免税金额基数应扣除的基本费用当用户在文本框Txt_salary中输入月收入工资或薪金并单击【计算】按钮Cmd_compute后Txt_tax框中就显示计算所得的应纳税额文本框Txt_base和Txt_tax在运行时不接受用户输入Txt_base的内容以灰色显示 个人工资或薪金所得税是按照超额累进的税率来征收的其计算方法如下以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额再将应纳税所得额按相应级数采用相应的税率进行累进计算目前的免税金额基数为1 600元税率如表6-15所示 表6-15 个人所得税税率表工资薪金所得适用 级数 全月应纳税所得额 税率% 1 不超过500元的 5 2 超过500元至2000元的部分 10 3 超过2000元至5000元的部分 15 4 超过5000元至20000元的部分 20 5 超过20000元至40000元的部分 25 6 超过40000元至60000元的部分 30 7 超过60000元至80000元的部分 35 8 超过80000元至100000元的部分 40 9 超过100000元的部分 45 注本表所称全月应纳税所得额是指依照本法第六条的规定以每月收入额减除费用1600元后的余额或者减除附加减除费用后的余额 设某个人的全月应纳税所得额为M元用下面的公式计算其应缴纳的个人所得税额S元 若0<M≤500则S=M×5% 若500<M≤2000则S=500×5%+M-500×10% 若2000<M≤5000则S=500×5%+1500×10%+M-2000×15% 若5000<M≤20000则S=500×5%+1500×10%+3000×15%+M-5000×20% 假设某程序员2008年5月份工资总额为4700元减去1600元后应纳税所得额为3100元其应缴纳的个人所得税额为500×5%+1500×10%+1100×15%=340元 在开发过程中需要编写的程序代码如下【VisualBask程序】Option Base0PrivateSubCmdcompute-Click DimpayleveltaxPrate paylevel=Array050020005000200004000060000800001000001000001 taxPrate=Array51015202530354045 M=1S=0 IfM>0ThenForj=1To9 If2Then s=s+paylevelj-paylevelj-1*taxPratej-1/100 Else 3Exit ForEndif NextjEndif4 =Str$SEndSubPrivateSub Cmd_quit_ClickEndEndSub PrivateSubForm_LoadTxt_tax.Text= Txt_salary.Text= Txt_base.Text=1600Txt_tax.Locked= TrueTxt_base.Enabled=5 EndSub 【问题1】 请根据【说明】信息和如图6-16的显示效果将【Visual Basic程序】中1~5空缺处的程序语句填写完整
【说明】 函数fun1intbb[]的功能是在3位整数100~999中寻找符合条件的整数并依次从小到大存入数组中它既是完全平方数两位数字又相同例如144676等 【函数2.11】 fun1intbb[] { intijk=0gsb; fori=100;i<=999;i++ { g=i%10; 1 b=i/100; ifi==intsqrti*intsqrti&&g==s‖s==b‖b==g 2 } returnk; } 【函数2.2说明】 函数voidfun2的功能是数组a中有300个四位数求出数组a千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数CNT再把所有满足此条件的四位数依次存入数组bb中然后对数组bb的四位数按小到大的顺序进行排序例如91239-1-2-3>0则该数满足条件存入数组bb中且个数CNT=CNT+198129-8-1-2<0则该数不满足条件忽略 【函数2.2】 voidfun2 { intqbsgij; fori=0;i<300;i++ {q=a[i]/1000; b=a[i]/100%10; s=a[i]/10%10; g=a[i]%10; ifq-b-s-g>0 3 } fori=0;i<cnt-1;i++ forj=i+1;j<cnt;j++ ifbb[i]>bb[j] {4 bb[i]=bb[j]; 5 } }
【说明】 设计一个日期类Date包括年月日等私有数据成员要求实现日期的基本运算如某日期加上天数某日期减去天数两日期相差的天数等 在Date类中设计如下重载运算符函数 Dateoperator+intdays:返回某日期加上天数得到的日期 Dateoperator-intdays:返回某日期减去天数得到的日期 intoperator-Date&b:返回两日期相差的天数 【程序】 #include<iostream.h> intdaytab[2][12]={{312831303130313130313031} {312931303130313130313031}}; //day_tab二维数组存放各月天数第一行对应非闰年第二行对应闰年classDate { intyearmonthday//年月日 intleapint;//判断是否闰年 intdtonDate& Datentodint public: Date{} DateintyintmintdIyear=y;month=m;day=d;} voidsetdayintd{day=d;} voidsetmonthintm{month=m;} voidsetyearinty{year=y;} intgetday{returnday;} intgetmonth{returnmonth:} intgetyear{returnyea;} Dateoperator+intdays//+运算符重载函数 { staticDatedate; intnumber=1 date=ntodnumber returndate } Dateoperator-intdays//-运算符重载函数 { staffsDatedate; intnumber=2; number-=days; date=ntodnumber returndate; } intoperator-Date&b//-运算符重载函数 { intdays=3; returndays; } voiddisp { cout<<year<<.<<month<<.<<day<<endl; } }; intDate::leapintyear if4//是闰年 return1;//不是闰年 else return0: } intDate::dtonDate&d//求从公元0年0月0日到d日期的天数 { intymdays=0; fory=1;y<=d.year;y++ if5days+=366;//闰年时加366天 elsedays+=365;//非闰年时加365天 form=0;m<d.month-1;m++ if6 days+=day_tab[1][m]; else days+=day_tab[0][m]; days+=d.day; returndays; } DateDate::ntodintn//将从元0年0月0日的天数转换成日期 { inty=1m=1drest=nlp; while1 {ifleapy ifrest<=366break; elserest-=366; else//非闰年 ifrest=365break; elserest-=365; y++; } y--; Ip=leapy; while1 { iflp//闰年 ifrest>day_tab[1][m-1]rest-=day_tab[1][m-1]; elsebreak; else//非闰 ifrest>day_tab[0][m-1]rest-=day_tab[0][m-1]; elsebreak; m++; } d=rest; returnDatey;md; } voidmain { Datenow2003101then200565; cout<<now:;now.disp; cout<<then:;then.disp; cout<<相差天数:<<then-now<<endl; Datedl=now+1000d2=now-1000; cout<<now+1000:;d1.disp; cout<<now-1000::d2.disp; }
写出下面消息对应的方法编号如果该消息错误或者没有对应的方法调用请填写无sq->perimeter
写出下面消息对应的方法编号如果该消息错误或者没有对应的方法调用请填写无sh->perimeter
阅读下列说明和C++代码回答问题[说明] 已知下列程序运行时的输出应为1:11:1 1:1[C++程序]01#include <iostream>02usingnamespacestd; 03classstick{04protect; 051{};06Stockint nintpr=1{07shares=n;share_val=pr; 08};09void~stock{}; 10public:11//成员函数 12voidoutput{13 2<<shares<<:<<shareval<<endl;14 }15private:16 //成员变量17intshares;18 intshare_val;19}; 2021voidmain{22 Stocka1;a.output;23Stockb; b.output;24StockC=Stock ;c.output;25} 请补齐上述代码中的空缺1和2
阅读以下说明和C++代码填补空缺 [说明] C++标准模板库中提供了vector模板类可作为动态数组使用并可容纳任意数据类型其所属的命名空问为stdvector模板类的部分方法说明如表12-3所示 表12-3vector模板类的部分方法 方法 含义 push_backk 向vector对象的尾部添加一个元素k begin 返回一个迭代器对象该对象指向vector中的第一个元素 end 返回一个迭代器对象该对象指向vector中的最后一个元素 empty 测试vector对象是否为空 eraseptr 删除vector中ptr指向的元素 [C++代码]#include<iostream> #include<vector>usingnamespace1; typedefvector<2>INTZECTOR; constintARRAY_SIZE=6;voidShowVectorINTVECTOR& theVector;intmain{ INTVECTORtheVector; //初始化theVector将theVector的元素依次设置为0至5forint cEachItem=0;cEachItem<ARRAY_SIZE;cEachItem++ theVector.push_back3; ShowVectortheVector;//依次输出theVector中的元素theVector. erasetheVector.begin+3; ShowVectortheVector;}void ShowVectorINTVECTOR&theVector{iftheVector. empty{cout<<theVectorisempty. <<endl;return;}INTVECTORiterator 4;fortheIterator= theVector.begin;theIterator!=theVector.end ;theIterator++{cout<<*theIterator; iftheIterator!=thevector.end-1cout<<; }cout<<endl;} 该程序运行后的输出结果为012345 5
【说明】 下面程序的功能是显示已定义的一个3行3列的二维数组每行的元素并求所有元素的和并输出请在程序的每条横线处填写一个适当的语句使程序的功能完整 publicclassArrayt 1static2mainStringargs[] { intsum=0; int[][]=t{111213}{212223}{313233}}; forinti=0;3i++ { System.out.printb[+i+]:; forintj=0;4j++ System.out.printb[i][j]+; 5 } System.out.println; } System.out.printlnsum=+sum; } }
阅读以下技术说明Java源程序和运行测试部分根据要求回答问题1和问题2 【说明】1.HTTP◆ HTTP请求消息示例GET/indexhtmlHTTP/1.1 Accept:image/gifimage/jpeg*/* Accept-Language:zh-ch Accept-encoding:gzipdeflate User-Agent:Mozilla/4.0compatible:MSIE6.0;Windows2003 Host:localhost:8080Connection:Keep-Alive ◆HTTP响应消息示例HTTP/1.1200 OKServert:Microsoft-IIS/6.0 Date:Mon3Jan200813:13:33GMT Content-Type:text/htmlLast-Modified:Mon11Jan2008 13:23:42GMTContelit-Length:112 <html>...</html> 2.相关类及主要成员函数◆ServerSocket类 服务器端套接字它监听固定端口以接收来自客户端的连接请求一旦建立连接就返回一个Socket类型的对象类中的主要成员函数如表6-16所示 表6-16ServerSocket类的主要成员函数 函数名 功能说明 ServerSocketPORT 构造函数 Accept 返回建立连接的Socket类型的对象 Close 关闭当前的ServerSocket类型的对象◆Socket类基于连接的套接字类中的主要成员函数如表6-17所示表6-17 Socket类的主要成员函数 函数名 功能说明 GetnetAddress 返回InetAddress类型的对象该对象封装了与该套接字所关联的客房机的IP地址 GetInputSffeam 返回当前对象所关联的输入流 GetOutputStream 返回当前对象所关联的输出流 Close 关闭当前对象【Java源程序一个简单的Web服务器】 /*WebScrvc.java*/packageobjclass; importjava.net.*;importjava.io.*; publicclassWebServer{publicstaticfinal intPORT=8080;//Web服务器侦听的端口号 publicstaticfinalStringWEB_ROOT= SyStem.getPropertyuser.dir+ File.separator+webroot; //WEB_ROOT变量存放Web服务器工作目录HTMLGIF图片等静态文件资源 privatestaticfinalStringSHUTDOWN_COMMAND=/shutdown; //SHUTDOWN_COMM_AND变量保存关闭服务器的命令 privateBooleanshutdown=false; //是否收到关闭服务器命令的标志publicstaticvoidmainSting[] args{WebServerserver=new WebServer;Server.await }publicvoid await{ServerSocketserverSocket =null;try{ serverSocket=new1 ; //创建侦听端口号为PORT的ServerSocket类型的对象 System.out.printlnWebServerStarted!; } catchIOExceptione{ e.printStackTrace; SyStem.exit1;} while!shutdown{ //循环等待客房端连接 Socketsocket=null; InputStreaminput=null; OutputStreamoutput=null; try{ Socket=2; //创建来自客房端的连接套接字 Input=socket.3; //创建输入流 Output=socket.4 ; //创建输出流 Requestrequest=newRequestinput; //创建request对象 Request.5; //解析客户端HTTP请求 Responseresponse=newReSponseoutput; //创建Response对象 responsesetRequestrequest; //将request对象传递给response对象 response.6; //给客户端发送所请求的静态资源 7; //关闭连接套接字 shutdown=request.8.equals SHUTDOWN_COMMAND; //凑数当前HTTP请求中的URL是否是关闭服务器命令 } CatchExceptione{ e.printStackTrace; continue; } }}}/* Request.java*/packageobjclass;import java.io.InputStream;importjava.iO.IOException; publicClassRequest{privateInputStream input;privateStringurl; publicRequestInputStreaminput{this.input=input;} publicvoidparse{...parseUrl;...} //解析客户端HTTP请求消息private StringparseUrlStringrequestString{...} //解析客户端HTTP请求中的URLpublicStringgetUrl{return url;}}/*Response.java*/ packageobjclass;importjava.io.*;public classResponse{privatestaticfinalintBUFFER_ SIZE=1024;Requestrequest; OutputStreamoutput;publicResponseOutputStrearm output{this.output=output;}publicvoid setRequestRequestrequest{this.request=request;} publicvoidsendStaticResourcethrowsIOmxception{...} //向客户端发送所请求的静态资源} 【问题2】 对以上【Java源程序】进行运行测试请将以下910空缺处的测试命令填写完整 在本机运行WebServer程序然后打开IE浏览器 1在IE地址栏中输入请求/index.html页面的命令9 2在IE地址栏中输入关闭Web服务器的命令10
【说明】 给定函数fun的功能是将从键盘上输入的每个单词的第一个字母转换为大写字母输入时各单词必须用空格隔开用.结束输入 【函数】 intfunchar*cintstatus { if1==’’ return1; else { if2&&3&&4 5=’A’-’a’; return0; } } main { intflag=1; charch; printf请输入一字符串用点号结束输入!/n; do{ ch=getchar; flag=fun&chflag; putcharch; }whilech!=’.’; printf/n; }
阅读下列说明图和C++代码填补空缺 [说明] 已知对某载客车辆Car进行类建模如图12-2所示其中类Engine表示发动机引擎类Wheel表示车轮类Body表示车身类Driver表示司机类Passenger表示乘客 constint1 =7;//定义最多载客数constintMAX_WHEELS=5; //定义最多轮胎数classBody{//此处代码省略 ;//车身类classPassenger{//此处代码省略}; //乘客类ClassWheel{//此处代码省略}; //车轮类ClassDriver{//司机类 publicstringname;//表示第几路公交车司机 DriverstringdriverNamemarne2{}; //构造函数};classEngine{ //引擎类publicstringengineNo; //引擎编号EnginestringengineNo{3 ->engineNo=engineNo;}//构造函数}; ClassCar{//汽车类protected: Engine*engine;Driver*driver;Bodybody; Wheel*wheels[MAX_WHEELS];Passenger*passengers[MAX_PASSENGERS]; publicCarDriver*driver //构造函数this->driver=driver;engine=new EngineTX6536型号引擎;forintindex=0;index<MAX_WHEELS; index++{wheels[index]=newWheel; }forintindex=0;index
热门题库
更多
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术
有线传输专业技术