填空题阅读以下说明和C语言函数,将应填入{{U}}(n){{/U}}处的字句写在答题纸的对应栏内。[说明]一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点:否则,从树根的左子树根出发,沿结点的左孩子分支向下查找,直到某个结点不存在左孩子时为止,该结点即为此二叉树的“最左下”结点。例如,下图所示的以A为根的二叉树的“最左下”结点为D,以C为根的子二叉树中的“最左下”结点为C。二叉树的结点类型定义如下:typedefstructBSTNode{intdata;structBSTNode*1ch,*rch;/*结点的左、右孩子指针*/}*BSTree;函数BSTreeFind_Del(BSTreeroot)的功能是:若root指向一棵二叉树的根结点,则找出该结点的右子树上的“最左下”结点*p,并从树下删除以*p为根的子树,函数返回被册除子树的根结点指针:若该树根的右子树上不存在“最左下”结点,则返回空指针。[函数]BSTreeFind_Del(BSTreeroot){BSTreep,pre;if(!root)returnNULL;/*root指向的二叉树为空树*/{{U}}(1){{/U}};/*令p指向根结点的右子树*/if(!p)returnNULL;{{U}}(2){{/U}};/*设置pre的初值*/while(p->1ch){pre=p;p={{U}}(3){{/U}};}if({{U}}(4){{/U}}==root)/*root的右子树根为"最左下"结点*/pre->rch=NULL;else{{U}}(5){{/U}}=NULL;/*删除以"最左下"结点为根的子树*/returnp;}
填空题[函数2.1说明]
将一个正整数分解质因数。例如:输入90,打印出90=2×3×3×5。
[函数2.1]
fun 1 ( int n )
{
int i;
for ( i=2;i<=n; i++)
{
while (({{U}} (1) {{/U}})
{
if (n %i==0 )
{ printf ( "%d*",i );
{{U}} (2) {{/U}}
}
else
break;
}
}
printf ( "%d",n ) ;}
[函数2.2说明]
下面程序的功能是:海滩上有一堆桃子,5只猴子来分。第1只猴子把这堆桃子平均分为5份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第2只猴子把剩下的桃子又平均分成5份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第3、第4、第5只猴子都是这样做的,问海滩上原来最少有多少个桃子?
[函数2.2]
main ( )
{int i, m, j, k, count;
for ( i=4;i<10000;i+=4 )
{ count=0;
{{U}} (3) {{/U}};
for ( k=0;k<5;k++ )
{
{{U}} (4) {{/U}};
i=j;
if ( j%4==0 )
{{U}} (5) {{/U}};
else
break;
}
i=m;
if ( count==4 )
{printf ( "%d/n", count) ;
break;}
}
}
填空题[说明] 将一正整数序列K1,K2,...,K9重新排列成一个新的序列,新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。 在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。 [函数] #include<stdio.h> #include<conio. h> void jsValue(int a[10] [9]) int i, j ,k.n, temp; int b[9]; for (i=0 ; i<10 ; i++) temp=a [1] [0 ] ; for(j=8;j>=0;j--) if(temp<a[il [j]) (1) =a[i][j]; if(temp==a[i] [j]) (2) =a[i][j];; if(temp==a[i] [j]) (3) =temp; for (j=0; j<9; j++) a[j][j]=b[j] void main () int a [10][9]= 6, 8,9,1,2, 5,4,7,3, 3,5,8,9,1,2,6,4,7, 8,2,1,9,3,5,4,6,7), 3,5,1,2,9,8,6,7,4, 4,7,8,9,1,2,5,3,6, 4,7,3,5,1,2,6,8,9, 9,1,3,5,8,6,2,4,7, 2,6,1,9,8,3,5,7,4, 5,3,7,9,1,8,2,6,4, 7,1,3,2,5,8,9,4,6 ; int i,j; (4) ; for(i=0; i<10; i++) for(j=0; j<9; j++) printf("%d",a[i] [j] ); if( (5) ) printf(","); printf ("/n"); getch () ;
填空题【说明】 程序8用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额,职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于0结束。 假设个人所得税法规定:个人收入所得,按月计税,以每月收入总额减除免税金额800元后的余额作为该月的月应纳税所得额。适用税率如表2所示。 {{B}}表 2{{/B}}
级数
月应纳税所得额
适用税率(%)
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> #define MaxNum 50 #define BASE 800 /*免税金额基数*/ int paylevel[]={0,500,2000,5000,20000,40000,60000,80000,100000,1000001}; int taxPrate[]={5,10,15,20,25,30,35,40,45}; /*税率表*/ typedef struct{ int ld; /*职工的工号*/ long Salary; /*职工的工资*/ } Info; /*查找工号为ld的职工在数组employee中的下标,返回值为0表示没有*/ int find (int ld ,Info employee[], int m) { int j; employee[0]. Id=Id; for(j=m;{{U}} (1) {{/U}};j--); return j; } void main(void) { Info employee[MaxNum+1]; long Wage; double sum=0, K,S; int i,j,N=0,Code; scanf("%d %Id", while(Code>0){ i=find (Code, empolyee, N ); if(i>0)employee [i]. Salary+=Wage; else{{{U}} (2) {{/U}}; employee[N]. Id=Code;employee[N]. Salary =Wage; } scanf("%d %Id", } for(i=1;i<=N;i++) { K={{U}} (3) {{/U}}; /*计算月应纳税所得额*/ S=0; /*月应纳税额赋初值*/ if(K>0) { for(j=1;j<=9;j++) if{{U}} (4) {{/U}} /*月应纳税所得额超过第j级*/ S=S+(paylevel[j]-paylevel[j-1])*taxPrate[j-1]/100; else{S =S+{{U}} (5) {{/U}}* taxPrate[j-1]/100; break; } } printf("职工%d应缴纳的个人所得税额:%10.21f/n",employee[i].Id,S); sum+=S; } printf("全体职工个人所得税总额:%10.21f/n",sum); }
填空题[说明] 完成以下中序线索化二叉树的算法。 [函数] Typedef int datatype; Typedef struct node Int ltag, rtag; Datatype data; *lchild,* rchild; bithptr; bithptr pre; void inthread ( p ); if inthread ( p->lchild ); if ( p->lchild==unll ) (1) ; if ( P->RCHILD=NULL) p->rtag=1; if (2) if (3) pre->rchild=p; if ( p->1tag==1 ) (4) ; INTHREAD ( P->RCHILD ); (5) ;
填空题[说明]设计一个评选优秀教师和学生的程序,其类结构如下图所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。[C++程序]#include<iostream.h>#include<stdio.h>enumbooleanFalse,True;classbaseProtected:charname[8];public:voidgetname()cout<<"姓名:";cin>>name;voidprintname()cout<<"姓名:"<<name<<endUvirtualbooleanisgood()=0;classstudent:(1)intnum;public:voicigetnum()cout<<"考绩:";cin>>num;booleanisgood()return(2);;classteacher:(3)intnum;public:voidgetnum()cout<<"每年发表论文数:";cin>>num;booleanisgood()return(4);voidmain()base*p[50];student*pstud;teacher*ptech;charch;intcount=0;docunt<<"输入教师(t)或学生(S):";cin>>ch;if(ch=='s')pstud=newstudent;pstud->getname();pstud->getnum();p[count++]=pstud;elseif(ch=='t')ptech=newteacher;ptech->getname();ptech->getnum();p[count++]=ptech;elsecout<<"输入错误"<<endl;cout<<"继续输入吗(Y/n)";cin>>ch;while(ch=='Y');for(inti=0;i<count;i++)if((5))//若为优秀,则输出之p[i]->printname();
填空题[说明] 函数move(int *a,int n)用于整理数组a[]的前n个元素,使其中小于零的元素移到数组的前端,大于零的元素移到数组的后端,等于零的元素留在数组中间。 令a[0]~a[low-1]小于零(初始为空); a[low]~a[i-1]等于零(初始为空); a[i]~a[high]还未考察,当前考察元素为a[i]。a[high+1]~a[n-1]大于零(初始为空)。 [函数] move (int *a,int n) int i,low, high,t; low=i=0; high=n-1; while( (1) ) if(a[i]<0) t=a[i];a[i]=a[low];a[low]=t; (2) ; i++; else if( (3) ) t=a[i]; a[i] =a[high]; a[high]=t; (4) ; else (5) ;
填空题【说明4.1】 假设两个队列共享一个循环向量空间(如图1-2所示),其类型Queue2定义如下: typedef struct DateType data [MaxSize]; int front[2],rear[2]; Queue2; 对于i=0或1,front[i]和rear[i]分别为第i个队列的头指针和尾指针。函数.EnQueue (Queue2*Q,int i,DaleType x)的功能是实现第i个队列的入队操作。 【函数4.1】 int EnQueue(Queue2 * Q, int i, DateType x) /*若第i个队列不满,则元素x入队列,并返回1;否则,返回0*/ if(i<0‖i>1) return 0; if(Q->rear[i]==Q->front[ (1) ] return 0; Q->data[ (2) ]=x; Q->rear[i]=[ (3) ]; return 1; 【说明4.2】 函数BTreeEqual(BinTreeNode*T1,BinTtneNode*T2)的功能是递归法判断两棵二叉树是否相等,若相等则返回1,否则返回0。函数中参数T1和T2分别为指向这两棵二叉树根结点的指针。当两棵树的结构完全相同,并且对应结点的值也相同时,才被认为相等。 已知二叉树中的结点类型BinTreeNode定义为: struct BinTreeNode char data; BinTreeNode * left, * right; ; 其中dau为结点值域,leR和risht分别为指向左、右子女结点的指针域, 【函数4.2】 int BTreeEqual(BinTreeNode * T1, BinTreeNode * T2) if(Ti == NULL /*若一棵为空一棵不为空,则不等*/ else if( (5) ) return 1; /*若根结点值相等并且左、右子树*/ /*也相等,则两棵树相等,否则不等*/ else return 0;
填空题【说明】
下面程序的功能是:在含有10个元素的数组中查找最大数,及最大数所在位置(即下标值),最大数可能不止一个。
例如:若输入
2 8 5 7 8 4 8 3 2 8
则应输出
The max:8
Total:4 //最大数出现次数
The positions:1 4 6 9
【函数】
#include<stdio.h>
#define M 10
int fun(int* a,int * n,int pos[ ])
{
int i, k max = - 32767;
{{U}} (1) {{/U}}
for(i=0;i<M;i++)
if({{U}} (2) {{/U}})max=a[i];
for(i=0;i<M;i++)
if({{U}} (3) {{/U}})pos[k++]=i;
*n=k;
return max;
}
main()
{
int a[M],pos[M],i=0j,n;
printf("Enter 10umber:")
for(i=0,i<M;i++)scanf("%d",{{U}} (4) {{/U}});
j=fun({{U}} (5) {{/U}});
printf("The max:%d/n",j);
printf("Total: %d", n);
printf("The position:")
for (i=0; i<n;i++) printf ("%4d", pos[i]);
printf("/n");
}
填空题【说明】本应用程序是一个小写数字转换成大写格式的转换器,其运行窗口如图5所示。窗口中有两个标签(lblNumber和lblChinese)、两个文本框(txtNnmber和txtChinese)和一个命令按钮(cmdChange)。当单击按钮cmdChange时,将文本框txtNumber中数字转换成中文大写,并显示在文本框txtChinese中。例如,在文本框txtNumber输入0076845,单击cmdChange按钮,将在文本框txtChinese中显示“柒万陆仟捌佰肆拾伍”。程序中调用的函数CChinse(StrdigitAsString)的功能是先删除字符串的所有前导0,再调用函数Change(StrdigitAsString),将数字字符串Strdigit转换成中文大写格式。为了防止用户在文本框txtNumber输入非数字形式的字符,程序将以空字符代替所输入的非数字有形字符。【程序】PrivateFunctionTransfer(StrdigitAsString)AsString′完成小写向大写的转换,这段代码省略EndFunctionPrivateFunctionCChinese(StrdigitAsString)AsStringDimintLen,intCounterAsIntegerintLen=Len(Strdigit)IfintLen>0Thenintcounter=0Do'过滤数字串Strdigit的前导0intcounter=intcounter+1LoopUntilMid(Strdigit,{{U}}(1){{/U}})intLen={{U}}(2){{/U}}Strdigit={{U}}(3){{/U}}(Strdigit,intLen)CChinese=Transfer(Strdigit)EndIfEndFunctionPrivateSubcmdChange_Click()txtChinese.Text=CChinese({{U}}(4){{/U}})'调用Cchinese函数EndSubPrivateSubtxtNumber_KeyPress(KeyAsciiAsInteger)SelectCaseKeyAscii'根据输入字符的ASCII码的值进行判断CaseKeyAscii<32'保留输入的控制字符Case48To57'保留输入的数字字符CaseElse'其他情况以空字符代替{{U}}(5){{/U}}=0EndSelectEndSub
填空题阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在对应栏内。 [说明] 已知一棵二叉树用二叉链表存储,t指向根结点,p指向树中任一结点。下列算法为输出从t到P之间路径上的结点。 [C程序] #define Maxsize 1000 typedef struct node TelemType data; struct node*1child,*rchild; BiNode,*BiTree; void Path(BiTree t,BiNode*P) BiTree*stack[Maxsize],*stackl[Maxsize],*q; int tag[Maxsize],top=0,topl; q=t; /*通过先序遍历发现P*/ do(while(q!=NULL stack[top]=q; tag[top]=0; (2) ; if(top>0) if(stack[top]==P) break; /*找到P,栈底到栈顶为t到P*/ if(tag[top]==1)top--; elseq=stack[top]; q=q->rchild; tag[top]=1; (3) ; top--; topl=0; while(top>0) q=stack[top]; /*反向打印准备*/ topl++; (4) ; top--; while( (5) ) /*打印栈的内容*/ q=stackl[topl]; printf(q->data); topl--;
填空题[说明] 下面程序输出一个矩形面积,以及矩形区域上的假想的作物产量。 [Java程序] public class Mainjava public static void main(String[] args) Lot_size small = new Lot_size() ; Lot_size medium = new Lot_size(); small.set (5,5,5,25) ; medium.set (10,10,10, 50) ; System.out.println("For a small lot of area " +small.get_area () +"/n"); System.out.println("the actual crops are $" +small.get_data2 () +" /n") ; System.out.println("and ideal crops are $" +small.get_data () +"/n") ; System.out.println("For a medium lot of area" +medium.get_area () +"/n"); system.out.println ("the actual crops are $ " +medium.get_data2 () +"/n "); System.out.println ("and ideal crops are $" +medium.get_data () +"/n"); class Crop_assessment private int actual_crop; private int ideal_crop; public void set(int in_actual,int in_ideal) actual_crop = in_actual; ideal_crop = in_ideal; public int get_actual_crop () return (1) ; public int get_ideal_crop() return (2) ; class Lot_size private int length; private int width; private Crop_assessment crop = (3) ; public void set(int 1,int w,int a,int i) length =1; width = w; crop.set (a,i) ; public int get_area () return lengt h*width; public int get_data() return (4) ; public int get_data2 () return (5) ;
填空题【说明】
从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编写程序,其功能是:以行为单位把字符串中所有小写字母。左边的字符串内容移到该串的右边存放,然后把小写字母。删除,余下的字符串内容移到已处理字符串的左边存放。最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT(),把结果XX输出到文件 OUT5.DAT中。
例如:原文:You can create an index on any field.
you have the correct record.
结果:n any field.Yu can create an index
rd. yu have the crreet res
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
【函数】
#include "stdio.h"
#include "string.h"
#include "conio.h"
#include "ctype.h"
#include "mem.h"
unsigned char xx[50] [80]
int maxline=0;
int readdat(void);
void writedat(void)
/*将题目要求的字符串中所有小写字母o左边的字符串内容移到谊串的右边存放,即将串中“最后”一个字母o左右两侧的内容互换*/
void StrOR(void)
{
inti;
char*p1,* p2,t[80];
for(i=0;i<maxline;i++)
{ t[0]='/0';
p2=xx[i];
while(*p2) /*找到最后一个别'o'*/
{ if({{U}} (1) {{/U}})p1=p2;
p2++;
}
strcat(t,p1+1);
*p1='/0';
strcat(t,xx[i]);
p1=xx[i];
p2=t;
while(*p2) /*删去字符'o'*/
{ if({{U}} (2) {{/U}}){{U}} (3) {{/U}}=*p2;
p2++;
}
{{U}}(4) {{/U}};
}
}
void main()
{
clrscr();
if(readdat())
{ printf("Can't open the file IN. DAT!/n");
return;
}
StrOR();
writedat();
}
int readdat(void)
{
FILE * fp;
int i=0;
char * p;
if((fp=fopen("in.dat","r" ))==NULL)
return 1;
while(fgets(xx[i],80, fp)!=NULL)
{ p=strchr(xx[i],'/n');
if(p)
*p=0;
i++;
}
maxline:{{U}} (5) {{/U}};
fclose(fp);
return 0;
}
void writedat (void)
{ FILE * fp;
int i;
fp=fopen("in.dat',"w");
for(i=0;i<maxline;i++)
{ printf("%s/n",xx[i]);
fprintf(fp," %s/n",xx[i]);
}
fclose(fp);
}
}
}
填空题[说明]以下是一账号和密码输入的检验程序。对输入的账号和密码规定如下所述。(1)账号为不超过6位的数字,密码为4位字符,在本题中,密码假定为“Pass”。(2)密码输入时在屏幕上不显示输入的字符,而以“*”代替。(3)当输入不正确,如账号为非数字字符或密码不正确时,显示有关信息。(4)当输入正确时,关闭密码窗口,显示记事本窗口。按要求完成有关控件的其他属性的设置,编写确定按钮的单击事件过程。相关界面如下:(可能要用到的单词:MultiLlne,ScrollBars,PasswordChar,MaxLength)密码窗口frmPass控件设置如下表所示。控件控件名(Name)标题(Caption)其他属性帐号标签1blNo账号密码标签1blNo密码帐号文本框txtNo无定义密码文本框txtPas无定义确定按钮comOk确定记事本窗口frmNotepad控件设置如下表所示。控件控件名(Name)标题(Caption)其他属性文本框TxtNotepad无定义清除按钮CmdClear清除返回按钮cmdBack返回在密码窗口的属性窗口,对密码文本框设置属性MuniLine为False。[VisualBasic代码]PrivateSubcmdOK_Click()IftxtPas.Text="Pass"ThenLoadfrmNotePadfrmNotePad.ShowfrmPass.HideElseMsgBox"密码错误!",vbExclamation+vbRetryCancel,"重输入密码"txtPas.Text=""txtPas.SetFocus{{U}}(1){{/U}}EndSubPrivateSubForm_Load()txtPas.PasswordChar="*"xtNo.MaxLength=6EndSubPrivateSubtxtNoLostFocus(DimiAsInteger,sAsString*1Fori=1To{{U}}(2){{/U}}s=Mid(txtNo.Text,i,1)If{{U}}(3){{/U}}Or{{U}}(4){{/U}}ThenMsgBox"账号有非数字符号!",vbExclamation+vbRetryCancel,"1输入账号"{{U}}(5){{/U}}txtNo.SetFocusExitSubEndIfNextiEndSub
填空题[说明] 本程序中的函数void first_jnsert(NODE**p,int v)的功能是在已知链表的首表元之前插入一个指定的表元; 函数NODE *reverse_copy(NODE *p)的功能是按已知链表复制出一个新的链表,但新的链表的表元链接顺序与已知链表的表元链接顺序相反; 函数voidprint_link(NODE*p)用来输出链表中各表元的值; 函数void free_link(NODE*p)用来释放链表全部表元空间。 [函数] #include <stdio.n> #include <malloc.h> typedef struct node int val; struct node *next; NODE; void first_insert (NODE **p,int v) NODE *q= (NODE *) malloc (sizeof (NODE) ; q->val=v; (1) ; *p= (2) ; NODE *reverse_copy (NODE *p) NODE *u; for (u=NULL; p;p=p->next) first_insert( (3) ); return u; void print_link (NODE *p) for (; (4) ) printf ("%d/t" ,p->val) ; printf (" /n") ; void free_link (NODE *p) NODE *u; while (p ! =NULL) u=p->next ; free (p); (5) ; void main () NODE *link1, *link2 ; int i; link1=NULL ; for(i=1;i<=10;i++) first_insert (&link1,i) ; link2=reverse_copy (link1) ; print_link (link1) ; free_link (link1) ; print_link (link2); free_link (link2);
填空题【说明】 下面程序的功能是显示已定义的一个3行3列的二维数组每行的元素,并求所有元素的和并输出。请在程序的每条横线处填写一个适当的语句,使程序的功能完整。 public class Arrayt (1) static (2) main(String args[]) int sum=0; int [][] = t 11,12,13, 21,22,23,31,32,33; for(int i=0; (3) i++) System. out. print("b["+i+"]:"); for(int j=0; (4) j++) System. out. print(b[i] [j] +" "); (5) System. out. println (); System. out. println("sum="+sum);
填空题【说明】 函数move(int*a,int n)用于整理数组a[]的前n个元素,使其中小于0的元素移到数组的前端,大于0的元素移到数组的后端,等于0的元素留在数表中间。 令a[0]~a[low-1)小于0(初始为空);a[low]-a[i-1]等于0(初始为空);a[i]~a[high]还未考察,当前考察元素为a[i]。a[high+1]~a[n-1]大于0(初始为空)。 【函数】 move(int*a ,int n) int i,low,high,t; low=i=0;high=n-1; while( (1) ) if(a[i]<0) t=a[i];a[i]=a[low];a[low]=t; (2) ;i++; else if( (3) ) t=a[i];a[i]=a[high];a[high]=t; (4) ; else (5) ;
填空题阅读以下说明和Java程序,将应填入{{U}} (n) {{/U}}处的字句写在对应栏内 [说明] 以下程序的功能时三角形、矩形和正方形的面积输出。 程序由5个类组成:areatest是主类,类Triangle,Rectangle和Square分别表示三角形、矩形和正方形,抽象类Figure提供了一个计算面积的抽象方法。 [Java程序] public class areatest { public static viod main(string args[]){ Figure[]Figures={ New triangle(2,3,3),new rectangle(5,8),new square(5) }; for(int i=0; i<Figures.length;i++){ system.out.println(Figures+"area="+Figures.getarea()); } } } public abstract class figure { public abstract double getarea(); } public class rectangle extends {{U}}(1) {{/U}}{ double height; double width; public rectangle (double height,double width){ this.height=height; this.width=width; } public string tostring(){ return"rectangle:height="+height+",width="+width+":"; } public double getarea(){ return{{U}} (2) {{/U}} } } public class square exends{{U}} (3) {{/U}} { public square(double width){ {{U}} (4) {{/U}}; } public string tostring(){ return"square:width="+width":"; } } public class triangle entends{{U}} (5) {{/U}} { double la; double lb; double lc; public triangle(double la,double lb,double lc){ this.la=la;this.lb=lb;this.lc=lc; } public string tostring()( return"triangle:sides="+la+","+lb+","+lc+":"; } public double get area(){ double s=(la+lb+lc)/2.0; return math.sqrt(s*(s-la)*(s-lb)*(s-lc)); } }
填空题阅读以下说明和C++程序,将应填入 (n) 处的字句写在对应栏内。 [说明] 下面程序实现十进制向其它进制的转换。 [C++程序] #include"ioStream.h" #include"math.h" #include typedef struct node int data; node*next; Node; Class Transform DUDlic: void Trans(int d,int i); //d为数字;i为进制 void print(); private: Node*top; ; void Transform::Trans(int d,int i) int m,n=0; Node*P; while(d>0) (1) ; d=d/i; p=new Node; if(!n) p->data=m; (2) ; (3) ; n++; else p->data=m; (4) ; (5) ; void Transform::print() Node*P; while(top!=NULL) p=top; if(p->data>9) cout<<data+55; else cout<<data; top=p->next; delete p;
填空题【说明】求解约瑟夫环问题。算法分析:n个士兵围成一圈,给他们依次编号,班长指定从第w个士兵开始报数,报到第s个士兵出列,依次重复下去,直至所有士兵都出列。【流程图】【问题】将流程图中的(1)~(5)处补充完整。
