p->next=s; p=p->next; } p->next=NULL; return h;}
outlink(NODE *h, FILE *pf) { NODE *p; p = h->next;
fprintf(pf ,\ while(p)
{ fprintf(pf ,\ fprintf (pf,\}
outresult(int s, FILE *pf)
{fprintf(pf,\main()
{ NODE *head; int even; head=creatlink(12); head->data=9000;
outlink(head , stdout); even=fun(head);
printf(\ outresult(even, stdout);}
第一空:NODE 第二空:p->data 第三空:p=p->next
___2___; } for (i=0;i strcat(f,s); strcpy(ch,f); } printf(\ 第一空:(ch[i]==’o’) 第二空:i++ 第三空:break 66. 给定程序的功能是:从键盘输入一个字符串(长度 不超80个字符),依次扫描字符串的小写字母o,每次将小写字母o左侧所有小写字母转换为大写字母,大写字母转换为小写字母。并把小写字母o删除,依次直至小写字母o处理完,之后把已处理的字符串输出到屏幕。例如:输入字符串为”aA1BoCao”,处理后输出为”aA1BcA”。输入字符串”aAobC”,输出为”AabC”。 #include {int i=0,j=0,nulin,sj=0,m; char ch[80]; printf(\ scanf(\ while (ch[i]!='\\0') { if (ch[i]=='o') sj++; i++; } for (i=0;i /***************found***************/ ___1___; for (m=0;m {if (ch[m]>='a' && ch[m]<='z') ch[m]=ch[m]-32; /***************found***************/ ___2___ if (ch[m]>='A' && ch[m]<='Z') ch[m]=ch[m]+32; } if (m>=j) ch[m]=ch[m+1]; } /***************found***************/ ___3___;} printf(\ 第一空:nulin=strlen(ch); 第二空:else 第三空:ch[nulin-1]=’\\0’; 64. 给定程序的功能是把一个字符串的字符复制到另 外一个字符串中。 void cpystr(char *ps,char *pd) { while(*ps!='\\0') { *pd=*ps; pd++; /******found******/ ___1___; } /******found******/ *pd=___2___;} main(){ char *pa=\ pb=b; /******found******/ ___3___ printf(\ return 0;} 第一空:ps++ 第二空:’\\0’或0 第三空:strcpy(pa,pb); 65. 给定程序的功能是:从键盘输入一个字符串(长度 不超过80个字符),依次扫描字符串中的小写字母o,每次将小写字母o的左右字符串部分作交叉换位,即左边字符串移到小写字母o的右边,而原先右边的则返之。并把小写字母o删除,依次直至小写字母o处理完,之后已处理的字符串出到屏幕。例如:输入字符串为:”123oabco98”,处理后输出为”98123abc”。 void main() {int i=0,j=0,sj=0,bs; char ch[80]; char *s,*f; printf(\ scanf(\ while (ch[i]!='\\0') { /******found******/ if ___1___ {sj++;} /******found******/ 16 67. 给定函数 countValue(int n),它的功能是:求n 以内(不包括n)同时被3与7整除的所有自然数之和的平方根s,s作为函数返回值。主程序调用该函数输出n为1000时的函数值153.909064。 /******found******/ ___1___ countValue(int n) { double xy=0.0; int i; /******found******/ for(i=8;__2___;i++) if(i%3==0&&i%7==0) xy+=i; xy=sqrt((double)xy); /******found******/ ___3___;} main() { printf(\第一空:double 第二空:i 68. 给定函数 countValue(int n),它的功能是:求n 以内(不包括包括n)同时能被7与11整除的所有自然数的平方根之和s,s作为函数返回值。主程序调用该函数输出n为1000时的函数值。 double countValue(int n) /******found******/ { ___1___xy=0.0; int i; for(i=1;i if(i==0&&i%7==0) /******found******/ ___2___; return xy;} main(){ /******found******/ printf(\ 第一空:double 第二空:xy=xy+sqrt((double)i) 第三空:countValue(1000) ┌1 (n=0,1) n!= ┤ └n×(n-1)!(n>1) #include if (n<0) printf(\/************found************/ else if (___1___) m=1; /************found************/ else ___2___; return(m);} main(){ int n; long y; printf(\/************found************/ scanf(\ y=ref(n); printf(\ return;} 第一空:(n==0||n==1)第二空:m=ref(n-1)*n 第三空:&n 71.给定程序的功能是求出数组中的最大数max及最大 数的个数cnt数组xx中值能被3整除或能被7整除的算术平均值pj(保留职位小数),结果max,cnt,pj输出到屏幕。 #define N 20 void main() { int max; int cnt,xx[N]={78,43,56,34,43,32,85, 43,46,10,90,34,90,3,52,61,42,89,90,54}; float pj; long j=0; int I,k; /*************found************/ ___1___ /*************found************/ for(___2___;I /*************found************/ {if (xx[I]>max) ___3___; if (xx[I]%3==0||xx[I]%7==0) {j+=xx[I];k++;} } for (I=0,cnt=0;I printf(\max,cnt,pj);} 第一空:max=xx[0];第二空: for(i=0,k=0;i 69. 给定程序的功能分别求 7个学生三门课程的平均 成绩,在主程序中输出各学生平均成绩和最大平均成绩av。 float fun(float a,float b,float c) { float sum,aver; sum=a+b+c; /**********found************/ ___1___; return(aver);} main(){ float a[7][3]={{80,90.5,81.5}, {70,69.8,90.5}, {68,97,99.0}, {86.5,89,95}, {78,96,90}, {87.5,89,92}, {64.5,80,78}}; float av=0.0,b[7];int i; for (i=0;i<7;i++) /**********found************/ {b[i]=___2___; /**********found************/ if ___3___ av=b[i];} for (i=0;i<7;i++) printf(\ printf(\ 第一空:aver=sum/3.0 第二空:b[i]=fun(a[i][0],a[i][1],a[i][2]); 第三空:if(av 70.给定程序的功能是用递归法计算n!。用递归方法计算n!,可使用如下公式表示 17 72. 给定程序的功能是找出所有100以内(含100)满 足I,I+4,I+10都是素数的整数I(I+10也以100以内)的个数cnt以及这些I之和sum。 int cnt,sum; int isPrime(int number) { int i,tag=1; if(number==1) return 0; for(i=2;tag&&i<=number/2;i++) /***************found***************/ if(___1___) tag=0; return tag;} void countValue() { int I,count=0,xx[30]; int j,k,m; cnt=0; sum=0; /***************found***************/ for(I=1;___2___;I++) if(isPrime(I)) {xx[count]=I;count++;} for(I=0;I if (isPrime(xx[I]+4)&&isPrime(xx[I]+10)) /***************found***************/ {___3___;}} void main(){ cnt=sum=0; countValue();printf(\printf(\ 第一空:number%i==0 第二空:I<90 第三空:cnt++;sum+=xx[I] 75. 给定程序的功能是计算学生和平均成绩和不及格 的人数。 struct stu_list { int num; char name[20]; char sex; float score; }s[5]={{9801,\ {9802,\ {9803,\ {9804,\ {9805,\main() { int i,c=0; float ave,sum=0; for (i=0;i<5;i++) { /***************found***************/ sum+=___1___; /***************found***************/ if (___2___) c+=1;} printf(\ /***************found***************/ ___3___; printf(\ return; } 第一空:sum+=s[i].score 第二空:if(s[i].score<60) c+=1 第三空:ave=sum/5; 73.给定程序的功能是对从键盘输入的字符数组 xx(不 超过80个字符),按字符从大到小的顺序进行排序,排序后的结果存入字符串数组xx中。例如:输入:dAe,BfC.结果:fedCBA. #include { char xx[80] ; int numi,numj; char ch; printf(\ scanf(\ for (numi=0;numi /***************found***************/ for (numj=___1___;numj /***************found***************/ ___2___; xx[numi]=xx[numj]; /***************found***************/ ___3___;} printf(\ 第一空:numi+1 第二空:ch=xx[numi] 第三空:xx[numj]=ch 76. 给定程序的功能是在三位整数(100至999)中寻 找符合下面条件的整数,并依次从小到大存入数组b[]中;它既是完全平方数,又有两位数相同,例如144,676等。函数int jsValue(int n)判断参数是否满足该条件,如果满足该条件函数返回值为1,否则返回值为0。 #include int n1,n2,n3; j=10; while(j*j<=n) 74. 给定程序的功能是:对字符数组xx中字符按给定 { if (n==j*j) 的替代关系对所有字符进行替代,仍存入数组xx的对应 { n1=n / 100; 的位置上。替代关系:f(p)=p*11 mod 256(p是数组xx/***************found***************/ 中某一个字符的ASCII值,f(p)是计算后新字符的ASCII n2=___1___; 值),如果原字符是大写字母或计算后f(p)值小于等于 n3=n % 10; 32, 则该字符不变,否则将f(p)所对应的字符进行替代。 if(n1==n2||n1==n3||n2==n3) void main() k=1; } { char xx[80]; /***************found***************/ int i,j; ___2___; } printf(\ return k;} scanf(\main() /***************found***************/ { int b[20],num,i; for (i=0;___1___;i++) for (i=100,num=0;i<=999;i++) if((('A'<=xx[i])&&(xx[i]<='Z'))|| if (jsValue(i)==1) (((xx[i]*11) % 256 )<=32)) { b[num]=i; /***************found***************/ /***************found***************/ ___2___ ___3___; } else for (i=0;i 元素,然后输出对角线元素之和。 18 int fun() { int a[3][3],sum; int i,j; /***************found**************/ sum=___1___; for (i=0;i<3;i++) {for (j=0;j<3;j++) /***************found**************/ scanf(\ for (i=0;i<3;i++) /***************found**************/ ___3___ printf(\main(){ fun();} 第一空:sum=0 第二空:& 第三空:sum=sum+a[i][i]; 78. 给定程序的功能是求下列分数序列的前n项之和。 n值从键盘输入,和值通过函数值返回主程序输入。 { int i,j,k; USER temp; for(i=0;i for(j=i+1;j if (strcmp(sp[k].name,sp[j].name)>0) k=j; temp=sp[k];sp[k]=sp[i];sp[i]=temp; }} outdata(USER *sp) { int i; printf(\ for (i=0;i printf(\main(){ USER sp[N],temp; getdata(sp); getsort(sp); outdata(sp);} 第一空:USER *sp 第二空:gets 第三空:gets 码,按姓名的字典顺序排列后,输出用户的姓名和电话号码。函数getdata读入五位用户的姓名和电话号码。 8.391667。 getsort函数把数据按姓名的字典顺序排序。outdata输double fun(int n) 出最后的结果。 { int a,b,c,k; double s; #define N 5 s=0.0; a=2; typedef struct /***************found***************/ { char name[20]; ___1___; char num[10]; for (k=1;k<=n;k++) }USER; { s=s+(double)a/b; getdata(USER *sp) c=a; a=a+b;b=c; } { int i; /***************found***************/ printf(\ ___2___;} for(i=0;i printf(\function is: %lf\\n\/***************found***************/ fun(n));} ___1___; 第一空:b=1第二空:return s 第三空:&n for(i=0;i for(j=i+1;j 码,按姓名的字典顺序排列后,输出用户的姓名和电话 if (strcmp(sp[k].name,sp[j].name)>0) k=j; 号码。函数getdata读入五位用户的姓名和电话号码。 temp=sp[k]; getsort函数把数据按姓名的字典顺序排序。outdata输 /***************found***************/ 出最后的结果。 ___2___; #define N 5 /***************found***************/ typedef struct ___3___; }} { char name[20]; outdata(USER *sp) char num[10]; { int i; printf(\ }USER; for (i=0;i /***************found***************/ printf(\ getdata(___1___) main(){ USER sp[N],temp; { int i; getdata(sp); printf(\ getsort(sp); for(i=0;i outdata(sp);} {printf(\ 第一空:USER temp 第二空:sp[k]=sp[i]; 第三空: /***************found***************/ sp[i]=temp; printf(\/***************found***************/ 81.给定程序的功能是找出方阵中每列最小元素以及所 printf(\在的行号。函数findmin找出每列中最小元素所在行号,getsort (USER *sp) 函数outdata输出方阵中每列最小元素及其所在行号。 19 23581321,,,,,,??例如:若n=5,则应该输出:123581880. 给定程序的功能是读入五位用户的姓名和电话号 #define M 4 main() { int s[M][M]={{14,23,52,3}, {34,22,52,41},{12,15,8,9},{54,98,23,21}}; int im[M]; findmin(s,im); outdata(s,im);} findmin(int a[][M],int ln[]) { int i,j,t; for (i=0;i /***************found***************/ for(j=1;___1___;j++) if(a[j][i] /***************found***************/ ___2___; }} outdata(int(*a)[M],int *ln) { int i,j; printf(\ for(i=0;i { for (j=0;j printf(\ printf(\ printf(\ for (i=0;i /***************found***************/ printf(\ printf(\ 第一空:j printf(\ for (i=0;i /***************found***************/ {printf(\ sum=sum+ a[i][ln[i]]; } printf(\ 第一空:t=j;第二空:sum=0; 第三空:ln[i] main函数读入数组a的各元素 值,inver函数逆序后重新放置数组a元素的值。 #define N 10 void invert(int *s,int i,int j) { int t; if (i /***************found***************/ *(s+i)=___1___; *(s+j)=t; /***************found***************/ invert(s,___2___,j-1); }} main() { int a[N],i; for (i=0;i { printf(\ /***************found***************/ scanf(\ invert(a,0,N-1); for (i=0;i printf(\ printf(\ 82. 定程序的功能是找出方阵中每行最大元素以及所} 在的列号。函数finemax找出每行中最大元素所在列号,第一空:s[j] 第二空:i+1 第三空:a+i 函数outdata输出方阵中每最行大元素及其所在行号和 84. 定程序的功能是:将无符号八进制数字构成的字符每行中最大元素的和sum。 串转换为十进制整数。例如,输入的字符串为:556,则#define M 4 输入十进制整数366。 main() main() { int s[M][M]={{14,23,52,3}, /***************found***************/ {34,22,52,41}, { char ___1___,s[6]; {12,15,8,9}, int n; p=s; gets(p); {54,98,23,21}}; /***************found***************/ int im[M],sum; n=___2___; findmax(s,im); /***************found***************/ outdata(s,im);} while(___3__!='\\0') findmax(int a[][M],int ln[]) n=n*8+*p-'0'; printf(\ { int i,j,t; 第一空:*p 第二空:*p-‘0’ 第三空:*(++p) for (i=0;i { t=0; 85. 定函数int MySearch(char *str,char *s)的功能 for(j=1;j 20 83. 定程序和功能是