填空题阅读以下说明和流程图,回答问题将解答填入对应栏。[说明]本流程图实现采用递归函数来求一个整数数组中从元素0到元素n中的最小值。该算法思想是这样的,首先我们假设有一个求数组中最小元素的函数,然后,在求某一具有n的元素的数组的最小值时,只要求将前n-1的元素的最小值与第n个元素比较即可。不断地重复这一过程,直到数组中只剩下一个元素,那么它必定是最小值。注:intmin(intX,inty)为返回两数中最小数的函数。intminInArray(inta[],intn)为返回数组中最小数的函数。minA为数组中最小值。[问题l]将流程图的(1)~(4)处补充完整。[问题2]min()函数的定义为(5)。
填空题[说明] “背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1、w2、…、wn,希望从N件物品中选出若干件物品,并使所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。 [函数] #include <stdio.h> #define N 7 #define S 15 typedef struct int s; int n; int job; KNAPTP; int knap (int S,int n) ; main () if (knap (S,N)) printf ("OK! /n"); else printf ("NO! /n") ; int knap (int S,int n) KNAPTP stack[100] ,x; int top,k, rep; x.S=S; x.n=n; x.job=0; top=1; stack[top] =x; k=0; while (1) x=stack [top] ; rep=1; while (! k&&rep) if(x.s=0) k=1; else if x.s<0 ||x.n<=0) rep=0; else x.s= (2) ; x. job=1; (3) =x; if(!k) rep=1; while(top>=1&&rep) x=stack [top--1]; if (x,job=1) x.s+=w[x.n+1]; (4) ; stack [++top] =x; (5) ; if(k) while (top>=1) x=stack [top--] ; if (x.job==1) printf ("M/t",w[x.n+1]) ; return k;
填空题[说明2] [C程序代码2]是能求得“背包问题”的一组解的递归算法程序。“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有Ⅳ件物品,其重量分别为W1,W2,…,Wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包中,即所选物品的重量之和等于S。 [C程序代码2] BTREE; #include<stdio.h> #define N 7 #define S 15 int w[N+1] = 0,1,4,3,4,5,2,7; int knap ( int S, int n) if (S == 0) return 1 ; if ( s<0 ( s>0 if ( (1) ) ) printf( "4d",w[n] ); return 1 ; return (2) ; main () if (knap(S,N) ) printf( "OK!/n" ); else printf ( "N0 ! /n" ) ; 请将[C程序代码2]中空缺处的内容填补完整。
填空题[说明]
试从含有n个int 型数的数组中删去若干个成分,使剩下的全部成分构成一个不减的子序列。设计算法和编写程序求出数组的不减子序列的长。
[C++ 程序]
#include<stdio.h>
#define N 100
int b[]={9,8,5,4,3,2,7,6,8,7,5,3,4,5,9,1};
int a [N];
#define n sizeofb/sizeofb[0]
void main ( )
{
kit k,i,j;
{{U}} (1) {{/U}}
{{U}} (2) {{/U}}
for (i=1;i<n; i++ )
{
for ( j=k;{{U}} (3) {{/U}}; j--);
{{U}} (4) {{/U}}; /*长为 j+1 的子序列的终元素存储在 a[j+1]*/
if ({{U}} (5) {{/U}} k++; /*最长不减子序列长 k 增1*/
}
printf ( "K = %d/n ",k );
}
填空题阅读以下说明和Java程序,将应填入{{U}} (n) {{/U}}处的字句写在对应栏内。 [说明] 下面程序输出一个矩形面积,以及矩形区域上的假想的作物产量。 [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 {{U}}(1) {{/U}};} public int get_ideal_crop()(return {{U}}(2) {{/U}};}}class Lot_size{ private int length; private int width; private Crop_assessment crop={{U}} (3) {{/U}}; public void set(int 1,int W,int a,int i){ length=1; width=W; crop.set(a,i); } public int get_area(){return length*width;} public int get_data()freturn{{U}} (4) {{/U}};} public int get_data2()(return{{U}} (5) {{/U}};}}
填空题阅读以下说明和Java程序,将应填入{{U}} (n) {{/U}}处的字句写在对应栏内。
[说明]
下面程序是为汽车市场编制的一个程序的一部分。其中automobile是基类。
[Java程序]
class MainJava{
public static void main(String agr[]){
car sedan=new car();
sedan.initialize(24,20.0,4);
System.out.println ("The sedan can travel"
+{{U}} (1) {{/U}}+"miles./n");
System.out.println ("The sedan has"
+{{U}} (2) {{/U}}+"doors./n");
}
}
class automobile{
protected int miles_per_gallon; //汽车每加仑行驶公里数
{{U}} (3) {{/U}}double fuel_capacity; //油箱容积
public void initialize(int in_mpg,int in_fuel){
miles_per_galion=in_mpg;
fuel_capacity=in_fuel;
}
public int get_mpg(){//提供一辆特定汽车每加仑公里数
return miles_per_gallon;
}
public double get_fuel(){//提供油箱容积
return fuel_capacity;
}
public double travel_distance(){//计算满油箱情况下的可行驶总公里数
return{{U}} (4) {{/U}};
}
}
class car {{U}}(5) {{/U}}{
private int Total_doors;
public void initialize(int in_mpg,double in_fuel,int doors){
Total_doors=doors;
miles_per_gallon=in_mpg;
fuel_capacity=in_fuel;
}
public int doors(){
return Total_doors;
}
}
填空题阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。[说明]假设一个剧场有N*N个座位,顾客买票时可以提出任意有效的座号请求。下面用二维数组a[N][N]模拟剧场中的座位,a[i][j]等于0表示第i排第j列(0≤i,j≤N-1)的票尚未售出。函数intFind(inta[][N],intR,int*row,int*col)的功能是:在部分票已售出的情况下,找出剧场中的R*R个空座位,要求这些座位的排列形成一个正方形。若找到满足要求的一个座位排列,则函数返回1,并算出该正方形左上角的行、列号;若未找到,则返回0。例如,一个7×7个座位的剧场如下图(a)所示,已售出部分座位的剧场如下图(b)所示,图中阴影部分表示已售出的座位,从图(b)中找出的3×3正方形空座位如图(c)中斜线区所示。[C语言函数]intFind(inta[][N],intR,int*row,int*col)inti,j,k,c,t;intFOUND=0;for(i=0;!FOUNDi++)/*从第0排开始查找*/(1);while(j<N-R+1(2)k++);/*查找第i排连续的R个座位*/if(k>=R)/*找到第i排连续的R个空座位*/for(c=0;c<R;c++)/*查找其余的R*(R-1)个座位*/for(t=1;t<R;t++)if(a[(3)][j+c]!=0)break;if(t<R)break;/*for*/if((4))FOUND=1;/*if*/(5);/*while*//*fori*/if(FOUND)*row=i-1;*col=j-1;/*计算正方形区域的左上角坐标*/return1;return0;
填空题[说明] 从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中; 请编写程序,其功能是:以行为单位把字符串中的所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数writedat()把结果XX输出到文件OUT5.DAT中。 原始数据文件存放的格式是:每行的宽度均小于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左右两侧的内容互换*/ void StrOR (void) int i; char *p1, *p2 , t[80]; for (i=0;i<maxline; i++) p2=xx [i] ; while (*p2) /*找到最后一个,'o' */ if ( (1) ) p1=p2 p2++; strcat (t,p1+1) ; strcat (t,xx [i]) ; p1=xx[i]; p2=t ; while(*p2) /*删符'o'*/ jf( (2) )( (3) )=*p2; p2++; (4) ; 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) i++; maxline= (5) ; 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) ;
填空题【说明8.1】 以下程序的功能是:生成20个200~300之间的随机整数,输出其中能被5整除的数并求出它们的和。 【程序代码8.1】 Private Sub Command1_Click() For i=1 To 20 x=Int( (1) *200+100) If (2) =0 Then Print x S=S+ (3) End If Next i Print"Sum=";S End Sub 【说明8.2】 程序8.2运行后,单击窗体,则在窗体上显示的内容是:a= (4) 和b= (5) 。 【程序代码8.2】 Private Sub Form_Click() Dim a As Integer,b As Integer a=20:b=50 p1 a,b p2 a,b p3 a,b Print"a=";a,"b=";b End Sub Sub p1(x As Integer, ByValy As Integer) x=x+l0 y=y+20 End Sub Sub p2(ByVal×As Integer, y As Integer) x=x+l0 y=y+20 End Sub Sub p3(ByVal×As Integer, ByVal y As Integer) x=x+10 y=y+20 End Sub
填空题阅读以下说明和Java程序代码,将应填入(n)处的字句写在答题纸的对应栏内。 [说明] 在下面的Java程序代码中,类SalesTicket能够完成打印票据正文的功能,类 HeadDecorator与FootDecorator分别完成打印票据的抬头和脚注的功能。己知该程序运行后的输出结果如下所示,请填补该程序代码中的空缺。 这是票据的抬头! 这是票据正文! 这是票据的脚注! --------------------------------------- 这是票据的抬头! 这是票据的脚注! [Java程序代码] public class SalesTicket public void printTicket() System.out.println("这是票据正文!"); public class Decorator extends SalesTicket SalesTicket ticket; public Decorator(SalesTicket t) ticket =t; public void printTicket() if(ticket!=null) ticket. printTicket(); public class HeadDecorator extends Decorator public HeadDecorator(SalesTicket t) (1) ; public void printTicket() System.out.rintln("这是票据的抬头!"); Super.printTicket(); public class FootDecorator extends Decorator public FootDecorator(SalesTicket t) (2) ; public void printTicket() super.printTicket(); System.out.println("这是票据的脚注!"); public class Main public static void main(String[] args) Decorator T= new HeadDecorator( (3) ); T. (4) ; System.out.println("-----------------------------------------"); T=new FootDecorator( (5) ); T.printTicket();
填空题[说明] 下面程序是为汽车市场编制的一个程序的一部分。其中automobile是基类。 [Java程序] class MainJava public static void main (String agr[] car sedan=new car; sedan.initialize (24, 20.0, 4); System.out.println("The sedan can travel" + (1) +"miles./n"); System.out .println("The sedan has" + (2) +"doors./n"); class automobile protected int miles_per_gallon; //汽车每加仑行驶公里数 (3) double fuel_capacity; //油箱容积 public void initialize (int in_mpg, int in_fuel) miles_per_gallon=in_mpg; fuel_capacity=in_fuel; public int get_mpg() //提供一辆特定汽车每加仑公里数 return miles_per_gallon; public double get_fuel() //提供油箱容积 return fuel_capacity; public double travel_distance() //计算满油箱情况下的可行驶总公里数 return (4) ; class car (5) private int Total_doors; public void initialize(int in_mpg, double in_fuel, int doors) Total_doors=doors; miles_per_gallon=in_mpg; fuel_capacity=in_fuel; public int doors() return Total_doors;
填空题【说明】某学校举办了一场奥运知识竞赛,参加竞赛的选手为200名,1~200为选手编号。竞赛时间为9:00~11:00。8道竞赛题目依次从“A”~“H”编号,选手可按任意次序答题,每完成一道题目,可立即提交答案。若答案正确(Y),则选择其他题目进行解答,否则,可继续做该题目或选择其他题目进行解答,直至竞赛结束。选手提交答案的情况及判定结果由专人即时录入,录入数据包括提交答案的时间、选手编号、题目编号(A~H)、是否正确(Y/N)等。对竞赛情况进行统计和排名的规则如下:1.若选手X在竞赛时提交的题目P解答正确,则解答该题目所用时间计算如下:解答题目P的用时=提交题目P正确的时间-竞赛的开始时间+罚时,罚时=提交题目P错误解答的次数×20例如:表1中14号选手在10:27提交了题目A的正确解答,因此该选手正确解答该题目所用时间P为87分钟,由于他在09:37和09:52两次提交了题目A的错误解答,因此罚时为(2×20)分钟=40分钟,所以14号选手解答题目A的用时=(87+40)分钟:127分钟。2.已经提交正确答案的题目再次提交时不再计算。3.竞赛结束时,选手的总用时为所有解答正确的题目用时累加所得,解答不正确的题目不计时。4.排名时,完成题目数量多者排名靠前;若完成的题目数相同,则用时少者排名靠前;若完成的题目数和所用时间均相等,则名次相同;完成题目数为。的选手不参加排名。本应用程序的运行窗口如图3所示。窗口中的两个文本框为Txt_time和Txt_player,分别用于录入提交答案的时间和选手编号。组合列表框Combo1提供题目编号(A~H),录入时从中选择。检查框Chk_yn用于输入解答是否正确信息。当单击“确定”按钮(Cmd_comfirm)时,录入的提交信息加入列表框List1中,排名情况在列表框List2输出。单击“关闭”按钮时退出应用程序。在开发过程中,需要编写的部分程序代码如下:【程序】PrivateTypeinfoNoAsInteger′选手编号NumAsInteger′完成题目数量TimeAsInteger′完成题目的总用时d(8)AsInteger′d用于记录提交第i个题目错误答案的次数a(8)AsBoolean′a用于记录第i个题目是否已经提交正确答案EndTypeDimR(201)Asinfo′R[j]用于统计编号为j的选手提交答案的情况DimMaxlndexAsInteger′Maxlndex记录提交答案的选手中编号最大者PrivateSubForm_Load()Fori=1to8Combo1.Addltemchr((1))NextCombo1.Text=Combo1.List(0):txt_time.Text="":txt_player.Text=""Fori=1To200R(i)num=0:R(i).time=0:R(i).no=iForj=1To8R(i).d(j)=0:R(i).a(j)=FalseNextj,iEndSubPrivateSubcmd_confirm_Click()Dimh,m,k,timeAsInteger,ch,pass,s1AsStringK=Instr(txt_time,text,":"):Ifk<2ThenGotoerror1H=Val(Left(txt_time.Text,k-1)):m=Val(Mid(txt_time.Text,k+1))Ifh>11Orh=11Andm>0Orm>=60ThengotoerrorlTime=(2)′计算答题时间,以分钟为单位Iftxt_plater,text<1ortxt_player,text>200ThenGotoerrorl ch=(3)pass=IIf(chk_yn.(4)=0,"N","Y")s1=txt_time.Text+Space(4)+txt_player.Texts1=s1+Space(10-Len(txt_player.Text))+ch+Space(8)+passList1.Additems1K=Val(txt_player.Text)′k为选手编号R(k).no=k′编号为k的选手的提交信息记录在下标为k的数组′元素中Ifk>maxindexThenmaxindex=k M=Asc(ch)-Asc("a")Ifpass<>"Y"Then′编号为k的选手提交第m个题目的解答不正确R(k).d(m)=R(k).d(m)+1ElseIfR(k).a(m)<>TrueThen′已经提交正确的题目的解答不再计算R(k).a(m)=true:R(k).num=R(k).num+1R(k).time=R(k).time+(5)Callstatistic′调用过程statistic进行实时排名和输出EndIfExitSuberror1:MsgBox"录入信息有错误!",vbOKOnlyEndSub
填空题【说明】 编写字符界面的Application程序,接收依次输入的10个整型数据,每个数据一行,将这些数据按升序排序后从系统的标准输出设备输出。 【Java代码】 import java.iO.*; import java.util.* ; public class compositor public static void main ( String args[] ) final int NUMBER=10; Vector dataVector=new Vector (); try BufferedReader br=new BufferedReader ( (1) InputStreamReader ( System.in )); System.out.println ("请输入"+NUMBER+"个整数"); for (int i=0; i<NUMBER; i++ ) int temp=Integer.parselnt ( br. (2) ); int low=0, high=i-1, mid=0; while ( (3) ) System.out.println ( low+","+mid+","+high ); (4) ; if ((( Integer ) dataVectOr.get( mid )) .intValue () ==temp ) data Vector.insertElementAt ( new Integer ( temp ), mid ); break; else if ((( Integer ) dataVector.get ( mid )) .intValue ( ) >temp ) high=mid-1; else (5) ; if ( low>high ) dataVector, insertElementAt ( new Integer ( temp ), iow ); //输出 System.out.println ( "/n升序的排序结果为; "); for (int i=0; i<NUMBER; i++ ) System.out.print ( dataVector.get( i ) .toString () +"/t" ); catch ( NumberFormatException nfe) System.out.println ( nfe.toString ()); System.out.println ( "整数格式输入错误。"); catch ( IOException ioe ) System.out.println ( ioe.toString ());
填空题【说明】 程序8用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额,职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于0结束。 假设个人所得税法规定:个人收入所得,按月计税,以每月收入总额减除免税金额800元后的余额作为该月的月应纳税所得额。适用税率如表2所示。 表 2 级数 月应纳税所得额 适用税率(%) 1 2 3 4 5 6 7 8 9 不超过500元的部分 501元~2000元的部分 2001元~5000元的部分 5001元~2000元的部分 2001元~4000元的部分 4001元~6000元的部分 6001元~8000元的部分 8001元~100000元的部分 超过100000元的部分 5 10 15 20 25 30 35 40 45 上表表明,个人收入所得税是按照超额累进的税率来征收的。 设一个人的月应纳税所得额为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; (1) ;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 (2) ; employee[N]. Id=Code;employee[N]. Salary =Wage; scanf("%d %Id", for(i=1;i<=N;i++) K= (3) ; /*计算月应纳税所得额*/ S=0; /*月应纳税额赋初值*/ if(K>0) for(j=1;j<=9;j++) if (4) /*月应纳税所得额超过第j级*/ S=S+(paylevel[j]-paylevel[j-1])*taxPrate[j-1]/100; elseS =S+ (5) * taxPrate[j-1]/100; break; printf("职工%d应缴纳的个人所得税额:%10.21f/n",employee[i].Id,S); sum+=S; printf("全体职工个人所得税总额:%10.21f/n",sum);
填空题阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在对应栏内。 [说明1] 函数int function(int a)的功能是判断指定的正整数是否为素数,若是,返回1,否则返回0。 [C函数1] int function(int a) int yes,i; i=2;yes=1; while(i<=a/2 i++; return yes; [说明2] 函数int deleteARR(int*arr,intn)的功能是指定的有序数组压缩成各元素互不相同的有序数组,即相同数只保留一个,多余的被删除。函数返回值是互不相同的元素个数。 [C函数2] int deleteARR(int*arr,int n) int k,j; k=0;j=1; while(j<n) if( (3) ) (4) =arr[j]; j++; return (5) ;
填空题【说明】在窗体上设计两个文本框和两个标签,标签上显示:“摄氏温度:”和“华氏温度:”,文本框一个用于输入摄氏温度数,一个用于输出对应的华氏温度。摄氏温度与华氏温度的转换公式为:c=(5/9)×(f-32)要求:对输入的摄氏温度数有检查功能,以拒绝接收非数字字符。运行界面如图所示。【VisualBasic代码】PrivateSubCommandl_Click()Text1=""Text2=""Text1.Enabled=TrueText2.Enabled=TrueText1.SetFocusEndSubPrivateSubCommand2Click()EndEndSubPrivateSubFormLoad()Text1=""Text2=""Text1.Enabled=FalseText2.Enabled=FalseEndSubPrivateSubTextl_Change()Text2.Text={{U}}(1){{/U}}EndSubPrivateSubTextl_KeyPress(KeyAsciiAs{{U}}(2){{/U}})If{{U}}(3){{/U}}ThenIfChr(KeyAscii)<"0"Or{{U}}(4){{/U}}Then{{U}}(5){{/U}}EndIfEndIfEndSub
填空题【说明】 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 【函数】 main ( ) int number[10]; input (number); max min (number); output (number); input (number) int number[10]; int i; for ( i=0;i<9;i++ ) scanf ( "%d,", scanf ( "%d", max_min ( array ) int array[10]; int *max,*min,k,1; int *p,*arr_end; arr end= (1) ; max=min=array; for ( p= (2) ;p<arr_end;p++ ) if( (3) ) max=p; else if ( *p<*min ) min=p; (4) ; l=*min; (5) ;array[0]=1;1=*p; *p=array[9];array[9]=k;k=*p; return; output ( array ) int array[10]; int *p; for ( p=array;p<array+9;p++ ) printf ( "%d,",*p ); printf ( "%d/n",array[9] );
填空题阅读以下说明和C程序,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明] 下面的程序按照以下规则输出给定名词的复数形式:a.若名词以“y”结尾,则删除y并添加“ies”;b.若名词以“s”、“ch”或“sh”结尾,则添加“es”;c.其他所有情况,直接添加“s”。 [C语言程序] # include <stdio.h> # include <string.h> char *plural (char *word) int n; char *pstr; n=strlen(word); /*求给定单词的长度*/ pstr=(char *) malloc(n+3); /*申请给定单词的复数形式存储空间*/ if (!pstr||n<2) return NULL; strcpy (pstr,word);/*复制给定单词*/ if( (1) ) pstr[n-1] = 'i-'; pstr[n]='e'; pstr[n+1]='s'; (2) ; else if(pstr[n-1]=='s' ||pstr[n-1]=='h' pstr[n+1]='s'; pstr[n+2]='\0'; else pstr[n]='s'; pstr[n+1]='\0'; (4) ; main ( ) int i; char *ps; char wc[9][10]="chair", "dairy", "boss", "circus", "fly", "dog", "church", "clue", "dish"); for(i=0; i<9; i++) ps= (5) ; printf("%s: %s\n",wc[i],ps); /*输出单词及其复数形式*/ free (ps);/*释放空间*/ system ("pause");
填空题[说明1]函数BTREE*SortTreeSearch(BTREE*tree,intkey)采用非递归方法,在二叉排序树(二叉查找树)中查找键值为key的结点。若找到,则返回键值所在结点的指针,否则返回NULL。typedefstructnodeintdata;/*结点的键值*/structnode*left;structnode*right;[C程序代码1]以上[C程序代码1]中共有3处错误。请在表8-5中指出这些错误所在代码的行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行。
填空题[函数2.1说明] 假设两个队列共享一个循环向量空间,其类型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,DateType x)的功能是实现第i个队列的入队操作。 [函数2.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; [函数2.2说明] 函数int BtreeEquaI(BinTreeNode *T1,BinTreeNode *T2)的功能是递归判断两棵二叉数是否相等,若相等则返回1,否则返回0。当两棵树的结构完全相同,并且对应结点的值也相同时才被认为相等。 已知二叉树中的结点类型定义为: struct BinTreeNode char data; BinTreeNode *left,*right; ; 其中data为结点值域,left和right分别为指向左、右子女结点的指针域。 [函数2.2] int BtreeEqual(BinTreeNode *T1,BinTreeNode *T2) (if (T1==NULL&&T2==NULL) return 1; else if ( (4) ) return 0; else if( (5) ) return 1; else return 1;
