计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
程序员(初级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
程序员应用技术
程序员基础知识
程序员应用技术
问答题【函数2.1说明】 函数palindrome(char s[])的功能是,判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。 【函数2.1】 int palindrome( char s[ ] ) { char * pi, * pj; pi=s; pj=s+strlen(s)-1; while( pi<pjpj -- } if({{U}} (2) {{/U}})return -1; else return 0; } 【函数2.2说明】 函数f(char * str,char del)的功能是:将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。 例如若str的值为“33123333435”,del的值为“3”,调用此函数后,将输出3个子字符串,分别为“12”、“4”和“5”。 【函数2.2】 void f( char * str, char del) { int i ,j ,len; len = strlen (str) i=0; while(i < len) { while({{U}} (3) {{/U}})i++; /*忽略连续的标志字符*/ /*寻找从str[i]开始直到标志字符出现的一个子字符串*/ j=i+1; while(str[j] != del /*给找到的字符序列置字符串结束标志*/ printf("%s/t", {{U}}(5) {{/U}}; } }
进入题库练习
问答题【说明】 编写程序,对于从键盘输入的3个实数a、b、c,计算实系数一元二次方程的根并输出所求的根。 【函数】 #include<sldio.h> #include<sldlib.h> #include<math.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; 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))); } } }
进入题库练习
问答题试题七阅读以下应用说明、属性设置及VisualBasic程序代码,将应填入(n)处的字句写在答题纸的对应栏内。[应用说明7]本应用程序的运行窗口如下图所示:只要用户单击“闪烁”按钮,文字“欢迎光临”就会以0.3秒消失、0.3秒显示反复进行闪烁;单击“停止”按钮时,闪烁停止,恢复图示的初态。在开发过程中,需要设置的属性如下:[属性设置7]在开发过程中,需要编写的程序代码如下:[程序代码7]PrivateSubCmdF_Click()Timer1.(3)=TrueLabe1.Visible=FalseEndSubPrivateSubTimer1_Timer()(4)=notLabe1.VisibleEndSubPrivateSubCmdT_Click()Timer1.Enabled=(5)Labe1.Visible=trueEndSub
进入题库练习
问答题(5)
进入题库练习
问答题【说明】下面的程序的功能是利用实现Runnable接口的方法来创建线程,并利用它来执行响应的一些操作。最后使得m的执行结果:100,如图3。注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。classClassName{{U}}(1){{/U}}Runnable{intn;{{U}}(2){{/U}}{try{Thread.sleep(2000);n=100;}catch({{U}}(3){{/U}}e){}}publicstaticvoidmain(String[]args){try{ClassNamea=newClassName();{{U}}(4){{/U}}threadl.{{U}}(5){{/U}}();threadl,join();intm=a.n;System.out.println("m="+m);}catch({{U}}(3){{/U}}e){}}}
进入题库练习
问答题【说明】 该程序运行后,输出下面的数字金字塔 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 ...... 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 【程序】 #include < stdio. h > main ( ) } char max, next; int i; for( max = '1'; max <= '9'; max + +) { for(i=1;i<=20-{{U}} (1) {{/U}};++i) printf(" "); for(next = {{U}}(2) {{/U}};next <= {{U}}(3) {{/U}};next ++) printf(" %c" ,next); for(next={{U}} (4) {{/U}};next>={{U}} (5) {{/U}};next--) printf(" %c" ,next); printf(" /n" ); } }
进入题库练习
问答题【说明】 著名的四色定理指出任何平面区域均可以用4种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过4种颜色的着色方案。 【函数】 # include <stdio.h> #define N 10 /*要着色的N个区域*/ void output(int color[]) /*输出一种着色方案 color[i]的值为区域i所着颜色*/ int i; for (i=0; i<N; i++) printf("%4d", color[i]); printf("/n"); int back(int *ip, int color[j] /*回溯*/ int c=4; while (c==4) if (*ip<=0) return 0: --(*ip); c= (1) ; color[*ip]=-1; return c; /*检查区域i,考查c种颜色的可能性 */ int colorOK(iht i, int c, int adj[][N], int color[]) int j; for(j=0; j<i; j++) if ( (2) ) return 0; return 1; /*为区域i选一种可着的颜色*/ int select(int i, int c, int adj[][N], int color[]) /*寻找各种着色方案 adj[i][j]=1表示区域i与区域j不相邻*/ int k; for (k=c; k<=4; k++) /*4种颜色*/ if (colorOK( (3) )) return k; return 0; int coloring(int adj[][N]) int color[N], i, c, cnt; for (i=0; i<N; i++) color[i]=-1: i=c=0; cnt=0; while (1) [ if ((c= (4) )==0) c=back( if (c==0) return cnt; else (5) ; i++; if(i==N) output(color); ++cnt; c=back( else c=0; void main() int adj[N][N]= 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0 ; printf("共有%d 组解./n", coloring(adj));
进入题库练习
问答题【说明】已知某二叉树的非叶子结点都有两个孩子结点,现将该二叉树存储在结构数组Ht中。结点结构及数组Ht的定义如下:#defineMAXLEAFNUM30structnode{charch;/*当前结点表示的字符,对于非叶子结点,此域不用*/char*pstr;/*当前结点的编码指针,非叶子结点不用*/intparent;/*当前结点的父结点,为0时表示无父结点*/intlchild,rchild;/*当前结点的左、右孩子结点,为0时表示无对应的孩子结点*/};structnodeHt[2*MAXLEAFNUM];/*数组元素Ht[0]不用*/该二叉树的n个叶子结点存储在下标为1~n的Ht数组元素中。例如,某二叉树如果其存储结构如下图所示,其中,与叶子结点a对应的数组元素下标为1,a的父结点存储在Ht[5],表示为Ht[1].parent=5。Ht[7].parent=0表示7号结点是树根,Ht[7].child=3、Ht[7].rchild=6分别表示7号结点的左孩子是3号结点、右孩子是6号结点。如果用0或1分别标识二叉树的左分支和右分支(如上图所示),从根结点开始到叶子结点为止,按所经过分支的次序将相应标识依次排列,可得到一个0、1序列,称之为对应叶子结点的编码。例如,上图中a,b,c,d的编码分别是100,101,0,11。函数LeafCode(Ht[],n)的功能是:求解存储在Ht中的二叉树中所有叶子结点(n个)的编码,叶子结点存储在Ht[1]~Ht[n]中,求出的编码存储区由对应的数组元素pstr域指示。函数LeafCode从叶子到根逆向求叶子结点的编码。例如,对上图中叶子结点a求编码的过程如下图所示。typedefenumStatus{ERROR,OK}Status;【C函数】StatusLeafCode(structnodeHt[],intn){intpc,pf;/*pc用于指出树中的结点,pf则指出pc所对应结点的父结点*/inti,start;chartstr[31]={'/0'};/*临时存储给定叶子结点的编码,从高下标开始存入*/for(i=1;{{U}}(1){{/U}};i++){/*对所有叶子结点求编码,i表示叶结点在HT数组中的下标*/start=29;pc=i;pf=Ht[i].parent;while(pf!={{U}}(2){{/U}}){/*没有到达树根时,继续求编码*/if({{U}}(3){{/U}}.lchild==pc)/*pc所表示的结点是其父结点的左孩子*/tstr[--start]='0';elsetstr[--start]='1';pc={{U}}(4){{/U}};pf=Ht[pf].parent;/*pc和pf分别向根方向回退一层*/}/*endofwhile*/Ht[i].pstr=(char*)malloc(31-start);if(!Ht[i].pstr)returnERROR;strcpy(Ht[i].pstr,{{U}}(5){{/U}});}/*endoffor*/returnOK;}/*andofLeafCode*/
进入题库练习
问答题[说明] 函数encode()和decode()分别通过参数传递实现对字符串的变换和复原,返回值均为处理以后的字符串长度。变换函数encode()顺序考察已知字符串的字符,按以下规则逐组生成新字符串: (1)若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中; (2)若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它复制到新字符串中; (3)若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字值为n,则将其后继字符重复复制n+1次到新字符串中; (4)以上述一次变换为一组,在不同组之间另插入一个下划线‘_’用于分隔。 例如:encode()函数对字符中26a3t2的变换结果为666_a_tttt_2。 函数decode()用于经函数encode()处理的字符中,即复制不连续相同的单个字符,而将一组连续相同的字符(不超过10个)变换成一个用于表示重复次数的数字符和一个重复出现的字符,并在复原过程中掠过变换函数为不同组之间添加的一个下划线字符。 注:假定调用变换函数encode()时的原始字符串中不包含下划线字符。[函数]int encode(char *instr,char *outstr) char *ip, *op,c; int k,n; ip=instr; op=outstr; while ( * ip) if(*ip>='0' c= (1) ; for (k=0;k<n;k++) *op++=c; else *op++=*ip; (2) ; ip++; if (op>outstr) (3) ; *op='/0'; (4) ;int decode(char *instr,char *outstr) char *ip,*op,c; int n; ip=instr; op=outstr; while ( *ip) c=*ip; n=0; while( *ip==c n++; if(n>1) *op+ + ='0'+n-1; * op++=c; if(*ip=='_') ip++; *op='/0'; (4) ;
进入题库练习
问答题【说明】 编写程序,利用带参数的主函数main(),实现二进制文件的复制。比如,若该程序已生成可执行文件filebin.exe,在DOS操作系统命令状态下键入如下命令行: filebin f0.fil f1.fil 则实现将已存在的二进制文件f1.fil依原样复制给名为f0.fil的二进制文件。 【函数】 #include<stdio.h> void fcopy(FILE *fout, FILE *fin) { char k; do{ k=fgetc({{U}} (1) {{/U}}); if(feof(fin)) break; fputc({{U}} (2) {{/U}}); }while(1); } void main(int argc,char *argv[]) { FILE *fin,*fout; if(argc!={{U}} (3) {{/U}}) return; if((fin=fopen(argv[2],"rb"))==NULL) return; fout={{U}} (4) {{/U}}; fcopy({{U}} (5) {{/U}}); fclose(fin); fclose(fout); }
进入题库练习
问答题【说明】 函数diff的功能是:根据两个由整数(都大于-32768)按升序构成的单链表L1和L2(分别由A,B指向)构造一个单链表L3(由*r指向),要求13中的所有整数都是L1,并且不是 L2中的整数,还要求L3中的所有整数都两两不等。 【函数】 #include < malloc. h > typedef struct node { int d; struct node * next } Node; void diff(Node *A,Node * B,Node * * r) { int lastnum; Node * p; *r = NULL; if( ! A) return; while({{U}} (1) {{/U}}) if(A->d < B ->d) { lastnum =A -> d; p= ( Node * ) malloc( sizeof(Node) ); p->d = lastnum; p->next= *r; {{U}}(2) {{/U}}; do A = A -> next; while({{U}} (3) {{/U}}); } else if(A->d > B->d) B=B- >next; else { {{U}} (4) {{/U}}; lastnum=A -> d; while ( A } while(A) { lastnum=A->d; p=( Node * ) malloc( sizeof(Node) ); p-> d = lastnum; {{U}} (5) {{/U}}; *r=p; while (A } }
进入题库练习
问答题[说明]设有一张学生成绩表存放在Acess数据库中,其中包括学生编号、姓名以及各科目考试成绩。下面的应用程序利用数据控件(Data)实现了对这张数据表中记录的增加、删除、修改、查找和刷新操作,其中,删除一条记录后,要求界面显示下一条记录;要查找记录,首先要求用户输入学生姓名,程序查找并显示匹配的第一条记录;执行刷新操作后,要求界面显示数据表的第一条记录。程序的运行界面如下:在开发过程中,数据控件Datal与成绩数据表相连接,各文本框与数据表相应字段绑定,界面上从左到右各操作按钮分别取名为CmdAdd、CmdDelete、CmdUpdate、CmdFind、CmdRefresh和CmdClose。[VisualBasic代码]PrivateSubCmdAdd_Click()’增加新记录Datal.Recordset.(1)EndSubPrivateSubCmdDelete_Click()’删除记录Data1.Recoldset.DeleleData1.Recoldset.(2)EndSubPnvateSubCmdUpdate_Click()’修改记录Data1.Reeordset.EditData1.Recordset.UpdateEndSubPrivateSubCmdFind_Click()’查找记录Dimname,searchAsStringname=InputBox("请输入要查询的姓名:")scarch="姓名='"&name&"'"’Data1.Recordset.MoveFirstDara1.Recordset.FindFirstscarchIfData1.Reeoldset.(3)ThenMsgBox"姓名为"&name&"的记录未找到!"EndIfEndSubPrivateSubCmdRefresh_Click()’刷新记录(4)EndSubPrivateSubCmdClose_Click()’退出程序Daral.Recordset.(5)EndEndSub
进入题库练习
问答题试题八阅读下列程序说明和C程序,将应填入(n)处的字句写在答题纸的对应栏内。[程序8说明]程序8用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额。职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于0结束。假设个人所得税法规定:个人收入所得,按月计税,以每月收入总额减除免税金额800元后的余额作为该月的月应纳税所得额。适用税率如下表所示。上表表明,个人收入所得税是按照超额累进的税率来征收的。设一个人的月应纳税所得额为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元。[程序8]#include#defineMaxNum50#defineBASE800/*免税金额基数*/intpaylevel[]={0,500,2000,5000,20000,40000,60000,80000,100000,1000001};inttaxPrate[]={5,10,15,20,25,30,35,40,45};/*税率表*/typedefstruct{intId;/*职工的工号*/longSalary;/*职工的工资*/}Info;/*查找工号为Id的职工在数组employee中的下标,返回值为0表示没有*/intfind(intId,Infoemployee[],intm){intj;employee[0].Id=Id;for(j=m;(1);j--);returnj;}voidmain(void){Infoemployee[MaxNum+1];longWage;doublesum=0,K,S;inti,j,N=0,Code;scanf("%d%ld",/*读入职工号、工资或薪金*/while(Code>0){i=find(Code,employee,N);if(i>0)employee[i].Salary+=Wage;else{(2);employee[N].Id=Code;employee[N].Salary=Wage;}scanf("%d%ld",}for(i=1;i0){for(j=1;j<=9;j++)if((4))/*月应纳税所得额超过第j级*/S=S+(paylevel[j]-paylevel[j-1])*taxPrate[j-1]/100;else{S=S+((5))*taxPrate[j-1]/100;break;}}printf("职工%d应缴纳的个人所得税额:%10.2lf\n",employee[i].Id,S);sum+=S;}printf("全体职工个人所得税总额:%10.2lf\n",sum);}
进入题库练习
问答题[说明]图4-8的流程图所描述的算法功能是将给定的原字符串中的所有前部空白和尾部空白都删除,但保留非空字符。例如,原字符串“FileName”,处理变成“FileName”。图4-9、图4-10和图4-11分别详细描述了图4-8流程图中的处理框A、B、C。假设原字符串中的各个字符依次存放在字符数组ch的各元素ch(1)、ch(2)、…、ch(n)中,字符常量KB表示空白字符。图4-8所示的流程图的处理过程是:先从头开始找出该字符串中的第一个非空白字符ch(i),再从串尾开始向前找出位于最末位的非空白字符ch(j),然后将ch(i)、……、ch(j)依次送入ch(1)、ch(2)、……中。如果字符串中没有字符或全是空白字符,则输出相应的说明。在图4-8流程图中,strlen()是取字符串长度函数。图4-8算法总流程图图4-9处理框A对应的流程图图4-10处理框B对应的流程图图4-11处理框C对应的流程图1.[问题1]请将图4-9、图4-10和图4-11流程图中(1)~(4)空缺处的内容填写完整。
进入题库练习
问答题阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 [说明] 下面的函数sort(int n,int a[])对保存在数组a中的整数序列进行非递减排序。由于该序列中的元素在一定范围内重复取值,因此排序方法是先计算出每个元素出现的次数并记录在数组b中,再从小到大顺序地排列各元素即可得到一个非递减有序序列。例如,对于序列6,5,6,9,6,4,8,6,5,其元素在整数区间[4,9]内取值,因此使数组元素b[0]~b[5]的下标0~5分别对应数值4~9,顺序地扫描序列的每一个元素并累计其出现的次数,即将4的个数记入b[0],5的个数记入b[1],依此类推,9的个数记入b[5]。最后依次判断数组b的每个元素值,并将相应个数的数值顺序地写入结果序列即可。 对于上例,所得数组b的各个元素值如下: b[0] b[1] b[2] b[3] B[4] b[5] 1 2 4 0 1 1 那么在输出序列中写入1个4、2个5、4个6、1个8、1个9,即得4,5,5,6,6,6,6,8,9,从而完成排序处理。 [C函数] void sort(int n,int a[]) { int *b; int i, k, number; int minimum=a[0],maximum=a[0]; /*minimum和maximum分别表示数组a的最小、最大元素值*/ for(i=1; i<n; i++){ if(______) minimum=a[i]; eiSe if (______) maximum=a[i]; } number=maximum-minimum+1; if(number<=1)return; b=(int*)calloc(number,sizeof(int)); if(!b) return; for(i=0;i<n; i++){/*计算数组a的每个元素值出现的次数并记入数组b */ k=a[i]-minimum; ++b[k]; } /*按次序在数组a中写入排好的序列*/ i=______; for(k=0; k<number; k++) for(; ______; --b[k] ) a[i++]=minimum+______; }
进入题库练习
问答题【说明】 以下程序的功能是设计一个栈类stack<T>,并建立一个整数栈。 【程序】 #include < iostream. h > #include < stdlib. h > const int Max =20; //栈大小 template < class T > class stack //栈元素数组 T s[Max]; //栈顶下标 int top; public: stack( ) top =-1; //栈顶初始化为-1 void push( const T //item入栈 T pop( ); //出栈 int stackempty( ) const; //判断栈是否为 ; template < class T > void stack <T >::push(const T exit(1); top ++ s[top] = item; template < class T > T stack<T> ::pop() T temp; if(top== (2) ) cout <<"栈为空,不能出栈操作" < < endl; exit(1); temp =s[top]; top --; return temp; template < class T > int stack < T >:: stackempty( ) const return top == -1; void main( ) stack <int> st; int a[] =1,2,3,4,5; cout <<"整数栈" <<endl; cout <<"入栈序列:" <<endl; for(int i=0;i<4;i ++) cout <<a[i] <<" "; (3) ; cout << endl <<"出栈序列"; while( (4) ) tout<< (5) <<" "; cout< < endl;
进入题库练习
问答题5.
进入题库练习
问答题试题五(共15分)阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。[说明]某班级有N名学生,他们可根据自己的情况选修名称和数量不尽相同的课程。设N等于6,学生信息、所选课程及成绩用链表结构存储,如图5-1所示。图5-1程序中相应的类型定义如下:#defineN6structnode{charcname[5];/*课程名*/intgrade;/*成绩*/structnode*next;/*指针,指示某学生选修的下一门课程及成绩*/};structstudent{charxh[5];/*学号*/charname[20];/*姓名*/structnode*link;/*指针,指示出选修的课程及成绩链表*/}stud_info[N];stud_info[]为一个全局数组。函数func(charkc[],int*num)的功能是统计选修了课程名为kc的学生的人数,并返回该课程的平均成绩(若无人选修该课程,则平均成绩为0),参数num带回选修课程kc的学生人数。[C函数]doublefunc(charkc[],int*num){inti,count=0,sum=0;/*count用于记录选修课程名为kc的学生的人数*/doubleavg=0.0;structnode*p;for(i=0;inext;}/*while*/}(4);if((5))avg=(double)sum/count;/*计算平均成绩*/returnavg;}/*func*/
进入题库练习
问答题【说明】某绘图系统存在Point、Line和Square这三种图元,它们具有Shape接口,图元的类图关系如图5-10所示。现要将Circle图元加入此绘图系统以实现功能扩充。已知某第三方库已经提供XCircle类,且完全满足系统新增的Circle图元所需的功能,但XCircle不是由Shape派生而来,它提供了的接口不被系统直接使用。【C++代码5-1】既使用了XCircle又遵循了Shape规定的接口,即避免了从头开发一个新的Circle类,又可以不修改绘图系统中已经定义的接口。【C++代码5-2】根据用户指定的参数生成特定的图元实例,并对它进行显示操作。该绘图系统定义的接口与XCircle提供的显示接口及其功能如表5-13所示。{{B}}表5-13绘图系统定义的接口与XCircle显示接口功能表{{/B}}ShapeXCircle功 能Display()DisplayIt()显示图元【C++代码5-1】classCircle:public{{U}}(1){{/U}}{Private;{{U}}(2){{/U}}m_circle;Public;voiddisplay(){m_circle.{{U}}(3){{/U}}}};【C++代码5-2】classFactory{public;{{U}}(4){{/U}}getShapeInstance(inttype){//生成特定类实例Switch(type){case0:returnnewPoint;case1:returnnewRectangle;case2:returnnewLine;case3:returnnewCircle;default:returnNULL;}}};voidmain(intargc,char*argv[]){if(argc!=2){cout<<"errorparameters!"<<endl;return;}inttype=atoi(argv[1]);Factoryfactory;Shape*s;s=factory.{{U}}(5){{/U}};if(s==NULL){cout<<"Errorgettheinstance!"<<endl;return;}s->display();{{U}}(6){{/U}};Return;}
进入题库练习
问答题阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。[说明]下面流程图的功能是:在给定的一个整数序列中查找最长的连续递增子序列。设序列存放在数组A[1:n](n≥2)中,要求寻找最长递增子序列A[K:K+L-1](即A[K]<A[K+1]<…<A[K+L-1])。流程图中,用Kj和Lj分别表示动态子序列的起始下标和长度,最后输出最长递增子序列的起始下标K和长度L。例如,对于序列A={1,2,4,4,5,6,8,9,4,5,8},将输出K=4,L=5。[流程图]注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为1,格式为:循环控制变量=初值,终值
进入题库练习