文档库 最新最全的文档下载
当前位置:文档库 › 程序改错

程序改错

1、(题号:1)在一个一维整型数组中找出其中最大的数及其下标。
答 案:
1. int fun(int *a,int *b,int n)
2. *b=c-a;}
3. scanf("%d",&a[i]); 或 scanf("%d", a + i );
4. max=fun(a,&p,N);
2、(题号:2)为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。
1.scanf("%d",p++);
2.if(*p>*max) 3.if(max==arr)
4.for(i=0;i3、(题号:3)用起泡法对10个整数从小到大排序。
1. void sort(int *x,int n) 2.for(j=0;j3. if(x[j]>x[j+1]) 4. sort(a,n);
4、(题号:4)在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。
1. scanf("%d",&number);
2. for(i=N-2;i>=0;i--) 3. a[i+1]=a[i];
4. break;}
5、(题号:5)将一个字符串中第m个字符开始的全部字符复制成为另一个字符串。
1.{ char *p1,*p2; 2.p1= str1+m-1; 3.while(*p1) 4. strcopy(str1,str2,m);
6、(题号:6)以下程序的功能是求如下表达式:请改正程序中的错误,使程序能得到正确的运行结果。
1 1 1
S = 1 + —— + ——— + ...... + ———————
1+2 1+2+3 1+2+3+......+n
1. scanf("%d",&n);
2. float fun(int n)
3. for(i=1;i<=n;i++)
4. s+=1.0/t 或 s=s+1.0/(float)t;
7、(题号:7)下面程序的功能是利用二维数组输出如图所示的图形。请改正程序中的错误,使程序能得到正确的运行结果。
*******
*****
***
*
***
*****
*******
1.#define N 7 2.a[i][j]=' ';
3..z=z-1; 或 z--; 4.printf("%c",a[i][j]);
8、(题号:8)输入一行英文文本,将每一个单词的第一个字母变成大写。例如:输入"This is a C program.",输出为"This Is A C Program."。
1.char fun(char *c)
2.return *c; 3.{ char s[81],*p=s;
4.putchar(*p);
10、(题号:10)将若干学生的档案存放在一个文件中,并显示其内容。
1. { struct student *p;
2. FILE *fp;
3.for(p=stu;pname,(*p).age);
11、(题号:11)下列给定程序中,函数fun的功能是:判断m是否为素数,若是返回1,否则返回0。主函数的功能是:按每行5个输出1-100之间的全部素数。
1. int fun( int m) 2. for(i=2;i4. printf("pi=%f \n",s*4)
12、(题号:12)函数fun的功能是:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。

π 1 1 1
— = 1 - — + — - — + ...
4 3 5 7
1. #include "math.h" 2. float s=0,t=1,p=1
3. while(fabs(t)>1e-4)
4. printf("pi=%f\n",s*4);
13、(题号:13)下列给定程序中,函数fun的功能是:求1到10的阶乘的和。主函数和fun函数中,各有两个错误,请改正,

使其能得到正确的运行结果。
1.for(i=1;i<=10;i++) 2.s=s+fac(i); 或 s+=fac(i); 或 s=fac(i)+s;
3.float y=1.0; 4.return y;
14、(题号:14)、函数fun的功能是:求1到20的阶乘的和。请改正程序中的错误,使它能得出正确的结果。
1.t=1; 2.t=t*j; 3.s=s+t;
4.printf("jiecheng=%f\n",s);
15、(题号:15)函数fun的功能是:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。请改正程序中的4个错误,使它能得出正确的结果。
1.printf("%8.0f",f1); 2.for(i=1;i<20;i++) 3f1=f2;
4.f2=f3;
16、(题号:16)函数fun的功能是:根据整型形参m的值,计算如下公式的值。
1 1 1
t = 1- —— - —— - ... - ——
2x2 3x3 mxm
例如,若m=5,则应输出:0.536389 请改正程序中的错误,使它能得出正确的结果。
1. for(i=2;i<=m;i++) 或 for(i=2;i2.y-=1.0/(i*i);或 y=y-1.0/(i*i); 或 y-=1.0/(float)(i*i)
3. return y; 或 return (y)

17、(题号:17)函数fun的功能是:实现交换两个整数的值。例如给a和b分别输入3和6 ,输出为a=6 b=3。
1. void fun (int *a,int *b) 或 fun (int *a,int *b)
2. t=*a;
3. *a=*b;
4. *b=t;
18、(题号:18)、函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。
1. while ((k>=2)&&(mc<10)) 或 while ((k>=2)&&(mc<=9))
2.if(!(k%17!=0 && k%3!=0 )) 或 if(!(k%17!=0)&&(k%3!=0))
3. k--; 或 k=k-1; 或 k-=1;
4.return m; 或 return(m);
19、(题号:19)函数fun的功能是:计算正整数num的各位上的数字之积。例如,输入252,则输出应该是20。
1.long k=1;
2.num/=10; 或 num=num/10;
3.scanf("%ld",&n);
4.printf("\n%ld\n",fun(n));
20、(题号:20)已知一个数列从第0项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项的和。下列给定程序中,函数fun的功能是:计算并输出该数列的前n项的平方根之和sum,n的值通过形参传入。例如,当n=10时,程序的输出结果应为23.177745。请更改程序中的错误,使它能得出正确的结果。
1. double fun (int n)
2. sum=1.0; 或 sum=1;
3. s2=1.0; 或 s2=1;
4. for(k=4;k<=n;k++) 或 for(k=4;k21、(题号:21)函数fun的功能是:根据以下公式求π值,并作为函数值返回。例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。

π 1 1 2 1 2 3 1 2 3 4
— = 1 + — + — x — + — x — x — + — x — x — x — + ...
2 3 3 5 3 5 7 3 5 7 9
1.while(t>eps) 或 while(t>=eps)
2. t=t*n/(2*n+1)
3. return 2*s; 或 return (2*s)

22、(题号:22)函数fun的功能是:求出两个非零正整数的最大公约数

,并作为函数值返回。例如,若给num1和num2分别输入49和21,则输出的最大公约数为7。
1. a=b;
2. b=t;
3. r=a%b;}
4. return b; 或 return (b)
23、(题号:23)在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。例如,数组中元素的值依次为39,-47,21,2,-8,15,0,则程序的运行结果为19.250000。
1. double sum=0.0; 或 double sum=0;
2. while(s[i]!=0) 或 while(!s[i]==0)
3. sum/=c; 或 sum=sum/c;
4. return sum; 或 return (sum);

24、(题号:24) fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的元素之和sum。
1.sum=0;
2.scanf("%d",&a[i][j]);
3.sum=sum+a[i][i]; 或 sum+=a[i][i];
4.printf("sum=%d\n",sum);

25、(题号:25) fun函数的功能是:给定n个实数,输出平均值,并统计在平均值以下(含平均值)的实数个数。例如,n=6时,输入23.5, 45.67, 12.1, 6.4,58.9, 98.4所得平均值为40.828335,在平均值以下的实数个数应为3。
1.float xa=0; 或 float xa=0.0;
2.for(j=0;j3.for(j=0;j4.return c; 或 return (c);
26、(题号:26) fun函数的功能是:找出大于m的最小素数,并将其作为函数值返回。
1.for(k=2;k2.if(i%k==0) break; 或 if(!(i%k)) break;
3.if(i<=k) 或 if(k==i) 或 if(k>=i/2) 或 if(k=i/2) 或 if(k>sqrt(i))
4.return i; 或 return (i);
27、(题号:27) fun函数的功能是:实现3行3列矩阵的转置,即行列互换。
1. scanf("%d",&a[i][j]); 或 scanf("%d",(*(a+i)+j));
2.for(j=0;j3.t=a[i][j];
4.a[j][i]=t;
28、(题号:28) fun函数的功能是:求一个3行4列矩阵的外框的元素值之和,注意,矩阵四个角上的元素不能重复加。例如,矩阵元素为1,2,3,4,5,6,7,8,9,10,11,12时,四框元素值之和应为65。
1. int i,j,s,s1=0,s2=0,s3=0,s4=0;
2. s2=s2+a[m-1][j]; 或 s2+=a[m-1][j];
3.for(i=1;i4. s=s1+s2+s3+s4;
29、(题号:29) fun函数的功能是:实现两个字符串的连接。例如:输入dfdfqe和12345时,则输出dfdfqe12345.
1.while(s1[i]!='\0')i++; 或 while(s1[i])i++; 或 while(s1[i]!=NULL)i++; 或 while(s1[i]!=0)i++;
2.while(s2[j]!='\0') 或 while(s2[j]) 或 while(s2[j]!=NULL) 或 while(s2[j]!=0)
3.s1[i]=s2[j];
4.s1[i]='\0'; 或 s1[i]=NULL; 或 *(s1+i)='\0'; 或 s1[i]=0;
30、(题号:30)将字符串s中最后一次出现的子字符串t1替换成字符串t2,所形成的新串放在w所指的数组中,在此处,要求t1和t2所指字符串的长度相同。例如,当s所指字符串中的内容

为"abcdabfabc",t1中的内容为"ab",t2中的内容为"99"时,结果w所指数组中的内容应为"abcdabf99c"。
1. while (*w) 或 while (*w!=0) 或 while (*w!='\0') 或 for (;*w;) 或 for (;*w!='\0';)
2. if ( *r == *p ) { r++; p++; }
3. if ( *r == '\0' ) a = w; 或 if ( *r ==0 ) a = w;
4. *a=*r;

31、(题号:31)将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如:当s所指的字符串的内容为"ABCD"时,t所指数组中的内容为"DCBAABCD"。请改正程序中的语法错误,使它能运行出正确的结果。
答 案:
1. void fun (char s[],char t[]) 或 void fun (char *s,char *t)
2. d = strlen(s);
3. for (i = 0; i4. t[2*d] = '\0'; 或 t[i+d] = '\0'; 或 t[i+d] =NULL; 或 t[2*d] = NULL; 或 t[2*d] = 0; 或 t[i+d] = 0;
32、(题号:249)下面程序的功能是:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min代表最低分,avg代表平均分。
1. float a[10],min,max,avg;
2. scanf("%f",&a[i]); 或 scanf("%f",a+i);
3. max=min=avg=a[0];
4. if (min>a[i]) 或 if (a[i]
33、(题号:250)以下程序输出前六行杨辉三角形,既
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
…………
…………
1.for(i=0;i<6;i++) 或 for(i=0;i<=5;i++)
2.if(j==0||j==i)
3. a[i][j]=a[i-1][j]+a[i-1][j-1]; 或 a[i][j]=a[i-1][j-1]+a[i-1][j];
4. print("\n");
34、(题号:251)有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置.
1. scanf("%d",&a[i]);
2. for(i=1;i<10;i++) 或 for(i=0;i<10;i++) 或 for(i=1;i<=9;i++) 或 for(i=0;i<=9;i++)
3. if(a[i]4. a[k]=a[0];

35、(题号:253)输入10个数,要求输出这10个数的平均值
1.for(i=1;i<10;i++) 或 for(i=1;i<=9;i++)
2.float score[10],aver; 或 float aver,score[10];
3.scanf("%f", &score[i]); 或 scanf("%f", score+i);
4.aver=average(score);
36、(题号:255)用"起泡法"对输入的十个字符排序后按从小到大的次序输出.
1.for(i=0;i2.sort(str);
3.for(i=0;i4.if(str[i]>str[i+1]) 或 if(str[i+1]37、(题号:256)以下程序把两个数按由大到小的顺序输出来.
1. swap( int *p1,int *p2) 或 void swap( int *p1,int *p2)
2. scanf("%d%d",&a,&b);
3. p1=&a;p2=&b;
4. printf("max=%d,min=%d\n",*p1,*p2); 或 printf("max=%d,min=%d\n",a,b);
38、(题号:257)将6个数按输入时顺序的逆序进行排列.
1. p1=p+i; p2=p+(m-1-i);
2. char *p,num[6];
3. scanf("%d",&num[i]);
4. sort(p,6);
39、(题号:258)用指针作函数参数,编程序求一维数组中的最大和最小的元素值.
1. void maxmin(int arr[ ],int *pt1,int *pt2,int n) 或 maxmin(int arr[ ],int *pt1,int

*pt2,int n)
2. *pt1=*pt2=arr[0]; 或 *pt1=*pt2=*(arr+0); 或 *pt2=*pt1=arr[0];
3.{if(arr[i]>*pt1) *pt1=arr[i]; 或 {if(*(arr+i)>*pt1)) *pt1=arr[i];
4. p1=&a;p2=&b
40、(题号:350)请编写一个函数 int fun(int x),它的功能是:判断整数x是否是同构数。若是同购数,函数返回1;否则返回0。所谓“同构数”是指这个数出现在它的平方数的右边。例如:输入整数25,25的平方数是625,25是625中右侧的数,所以25是同构数。x的值由主函数从键盘读入,要求不大于1000。
1. int k;
2. k=x*x;
3. if((k%10==x)||(k%100==x)||(k%1000==x))
41、(题号:351)编写一个函数,该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asdasasdfgasdaszx67asdmklo,字符串为:asd,则应输出n=4。
1. int i,n=0;
2. for(i=0;i<=strlen(str)-3;i++) 或 for(i=0;i3. n++; 或 n+=1; 或 n=n+1; 或 ++n;
42、(题号:352)编写函数fun其功能是在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出矩阵第一行与第三行元素之积,并在fun()函数中输出。
1. sum=1;
2. for(i=0;i<3;i+=2) 或 for(i=0;i<3;i=i+2) 或 for(i=0;i<3;i++,i++)
3. sum=sum*a[i][j]; 或 sum*=a[i][j];
43、(题号:353)编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1+1/3+1/5+1/7+...+1/(2m-3)
1. double y=1;
2. for(i=1; i<=m; i++)
3. {y+=1.0/(2*i-3); }

44、(题号:354)下列程序中,函数fun的功能是:在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符的原字符向后顺序移动。例如:调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为:eABCDFGH。
1. q=p+i;
2. while(q>p) 或 while(q>=p)
3. { *q=*(q-1);

45、(题号:356)下列程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
1.{ int i,k; 或 { int i; int k; 或 { int k,i; 或 { int k; int i;
2.if(i%k==0) 或 if(!(i%k))
3.if(k==i) 或 if(i==k)
46、(题号:357)下列程序中,函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆连接到t串的后面。例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“ABCDEEDCBA”。
1. for(i=0;i<=sl;i++)
2. t[sl+i]=s[sl-i-1];
3. t[sl+i]='\0';
47、(题号:358)请编写函数fun,对长度为8个字符的字符串,将8个字符按降序排列。例如,原来的字符串为CEAedcab,排序后输出为edcbaECA。
1. int i,j;
2. for(j=i+1;j3. if(s[i]48、(题号:360)给定程序MODI1.C中函数fun的功能是:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87654时

,t中的数为: 864。
1.if(d%2==0) 或 if(d%2!=1)
2.{ *t=d* sl+ *t; 或 { *t+=d*sl; 或 { *t+=sl*d; 或 { *t=*t+d* sl; 或 { *t=*t+sl*d;
3. s/=10; 或 s=s/10;
49、(题号:362)给定程序MODI1.C中函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。
1.double fun (double *a, double *b)
2.c = sqrt(*a)+sqrt(*b) ; 或 c = sqrt(*b)+sqrt(*a) ;
3.return c; 或 return(c); 或 return sqrt(*b)+sqrt(*a); 或 return sqrt(*a)+sqrt(*b);
50、(题号:363)给定程序MODI1.C中函数fun的功能是:求出a所指数组中最大数和次最大数(规定最大数和次最大数不在a[0]和a[1]中),依次和a[0]、a[1]中的数对调。例如数组中原有的数为:7、10、12、0、3、6、9、11、5、8,
输出的结果为:12、11、7、0、3、6、9、10、5、8。
1. else if( a[k]>max2 )
2. t = a[0]; a[0]=a[m1]; a[m1] = t;
3. t = a[1]; a[1]=a[m2]; a[m2] = t;

51、(题号:364)给定程序MODI1.C中函数 fun 的功能是:计算正整数num的各位上的数字之积。例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。
1.{long k=1;
2.num/=10;
3.} while(num) ; 或 while(num!=0)
52、(题号:365)给定程序MODI1.C中函数 fun 的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。
1. p = j;
2. if(a[i] < a[p]) 或 if(a[p] > a[i])
3. p = i;

53、(题号:366)给定程序函数 fun 的功能是:删除字符串s中的所有空白字符(包括Tab字符、回车符及换行符)。输入字符串时用'#'结束输入。
1. for (i = 0,t = 0; p[i] ; i++)
2. if(!isspace(*(p+i))) c[t++]=p[i];
3. c[t]='\0';
54、(题号:367)给定程序中函数 fun 的功能是:求出以下分数序列的前n项之和。和值通过函数值返回main 函数。2/1+3/2+5/3+8/5+13/8+21/13 …… 例如,若n = 5,则应输出:8.391667。
1. double fun(int n)
2. s = s + (double)a / b; 或 s += (double)a / b; 或 s += a /(double)b; 或 s=s+a/(double)b;
3. return s; 或 return (s);

55、(题号:368)给定程序中函数 fun 的功能是:用插入排序法将n个字符进行排序(降序)。(提示: 插入法排序的思路是:先对数组的头两个元素进行排序, 然后根据前两个元素的情况插入第三个元素,再插入第四个元素…)。
1. { int a ,b,t;
2. while((b>=0)&&(t>aa[b]))
3. aa[b+1]=t;
56、 (题号:369)给定程序MODI1.C中函数 fun 的功能是:从m个学生的成绩中统计出高于和等于平均分的学生人数, 此人数由函数值返回。平均分通过形参传回,输入学生成绩时, 用-1结束输入,由程序自动统计学生人数。例如,若输入 8 名学生的成绩,输入形式如下:80.5 60 72 90.5 98 51.5 88 64 -1结果为:The number of students :4 Ave = 75.56。
1. if ( s[ i ] >= av ) count++;
2. *aver = av;

3. return count;
57、(题号:370)给定程序中函数fun的功能是:求出在字符串中最后一次出现的子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。例如,当字符串中的内容为:"abcdabfabcdx",t中的内容为:"ab"时,输出结果应是:abcdx。当字符串中的内容为:"abcdabfabcdx",t中的内容为:"abd"时,则程序输出未找到信息:not found!。
1. a = NULL;
2. if ( *r == *p ) { r++; p++; }
3. if ( *r == '\0' ) a = s;
58、(题号:371)给定程序MODI1.C中函数 fun 的功能是:将s所指字符串中出现的、t1所指子串全部替换成t2所指子字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如,当s所指字符串中的内容为:"abcdabfab",t1所指子串中的内容为:"ab",t2所指子串中的内容为:"99"时, 结果,在w所指的数组中的内容应为:"99cd99f99"。
1. while(*r) 2. if ( *r == '\0' ) 3. while ( *r ){ *a = *r; a++; r++; }
59、(题号:373)给定程序MODI1.C中函数fun的功能是:将a所指字符串中的字符和b所指字符串中的字符, 按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。 例如,当a所指字符串中的内容为"abcdefg",b所指字符串中的内容为"1234"时,c所指数组中的内容应该为"a1b2c3d4efg"; 而当a所指字符串中的内容为"1234",b所指字符串中的内容为"abcdefg"时,c所指数组中的内容应该为"1a2b3c4defg"。
1. void fun( char *a, char *b, char *c )
2. while( *b ) { *c = *b; c++; b++; }
3. while( *a ) { *c = *a; c++; a++; }
60、(题号:375)给定程序的功能是:读入一个整数k (2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数:2310,则应输出:2、3、5、7、11。
1. IsPrime(int n)
2. if(!(n%i)) 或 if(n%i==0)
3. return ( m );
61、(题号:376)函数 fun 的功能是:根据整型形参 m,计算某一数据项的值。y = 1/(100*100)+1/(200*200)+1/(300*300) + …… + 1/(m*m) 例如,若m = 2000,则应输出: 0.000160。
1. double fun ( int m )
2. for( i = 100; i <= m; i += 100 )
3. y += 1.0 / d ;
62、(题号:377)给定程序MODI1.C中函数 fun 的功能是:根据整型形参 n,计算某一数据项的值。
A[1]=1, A[2]=1/(1 + A[1]), A[3]=1/(1 + A[2]), …,A[n]=1/(1 + A[n-1]) 例如,若 n=10,则应输出:a10=0.617977。
1. float fun(int n)
2. for (i=2; i<=n; i++)
3. A = 1.0/(1+A);

63、(题号:378)给定程序MODI1.C中函数 fun 的功能是:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。例如,若 n = 15,则应输出:The value is: 2209。
1.for (k=4; k<=n; k++)
2.a=b;

b=c; c=d;
3.return d;
64、(题号:379)给定程序中函数 fun 的功能是:将 m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指字符串中。例如:把3个串:"abc","CD","EF"串连起来,结果是The result is : abcCDEF。
1. int k, q, i;
2. pt[i] = str[k][i] ;
3. pt += q ; 或 pt=pt+q;
65、(题号:380)给定程序的功能是:读入一个整数m ( 5≤m≤20 ),函数getarr调用函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。例如,若输入整数7,则应输出:3 10 17 28 32 36 47。
1. int i, j, p, t;
2. if ( a[p] > a[i] ) p = i;
3. if ( p != j )
66、(题号:381)给定程序MODI1.C的功能是:删除w所指数组中下标为k的元素中的值。程序中,调用了getindex、arrout和arrdel三个函数,getindex用以输入所删元素的下标,函数中对输入的下标进行检查,若越界,则要求重新输入,直到正确为止。arrout用以输出数组中的数据,arrdel进行所要求的删除操作。
1. arrout ( int *w, int m ) 2. for (k = 0; k < m; k++) 3. printf ("%d ", w[k]);
67、(题号:382)给定程序MODI1.C的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行 (这里的“单词”是指由空格隔开的字符串)。
例如,若输入:I am a student to take the examination.,则应输出:I Am A Student To Take The Examination.。
1. upfst(char *p)
2. for ( ; *p; p++ )
3. else if ( *p != ' ' )
68、(题号:383)给定程序的功能是:读入一行英文文本,将其中每个单词的最后一个字母改成大写,然后输出此文本行 (这里的“单词”是指由空格隔开的字符串)。例如,若输入I am a student to take the examination.,则应输出"I aM A studenT tO takE thE examination."。
1. int k=0;
2. { if ( *p == ' ' )
3. *(p -1 ) = toupper( *( p - 1 ));
69、(题号:384)给定程序MODI1.C中函数 fun 的功能是:输入两个双精度数,函数返回它们的平方和的平方根值。例如输入:22.936 和 14.121,输出为:y = 26.934415。
1. double fun (double *a, double *b)
2. c = sqrt(*a * *a + *b * *b);
3. return c;
70、(题号:385)给定程序MODI1.C中函数 fun 的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。例如输入圆的半径值:19.527 输出为:s = 598.950017。
1. float fun(float r)
2. s=1.0/2*(3.14159*r*r);
3. return s;

71、(题号:386)给定程序MODI1.C中函数 fun 的功能是:求两个形参的乘积和商数,并通过形参返回调用程序。例如输入:61.82 和 12.65,输出为:c = 782.023000 d = 4.886957
1. void fun ( double a, double b, double *x, double *y )
2. *x = a * b;
3. *y = a / b;
72、(题号:387)给定程序MODI1.C中函数 fun 的功能是:统计字符串中各元

音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。
1. num[k]=0;
2. switch(*s)
3. if (i >= 0)
73、(题号:388)给定程序MODI1.C中函数 fun 的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
1. { m=i;
2. for(k=i;k3. if(a[k]>a[m]) m=k;
74、(题号:389)给定程序MODI1.C中 fun 函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如, 给字符串s 输入:AAaaBBb123CCccccd,则应输出结果:upper = 6, lower = 8。
1. void fun ( char *s, int *a, int *b )
2. (*a)++ ;
3. (*b)++;

75、(题号:390)给定程序MODI1.C中 fun 函数的功能是:判断两个指针所指存储单元中的值的符号是否相同;若相同函数返回1,否则返回0。这两个存储单元中的值都不为0。
1. fun ( double *a, double *b )
2. if ( *a * *b > 0.0 )
3. else return 0;
76、(题号:391)给定程序MODI1.C中函数 fun 的功能是:判断字符ch是否与str所指串中的某个字符相同; 若相同,什么也不做,若不同,则将其插在串的最后。
1. void fun(char *str, char ch )
2. if ( *str == '\0' )
3. str[1] = '\0';
77、(题号:392)编写程序, 求矩阵(3行3列)与5的乘积
例如, 输入下面的矩阵:
100 200 300
400 500 600
700 800 900
程序输出:
500 1000 1500
2000 2500 3000
3500 4000 4500
1. int i,j; 或 int i;int j;
2. for(i=0; i < 3; i++) 或 for(i=0; i<3; i++)
3. array[i][j]=array[i][j]*5;
78、(题号:394)请编写一个函数fun,函数的功能是:输入一个字符串,过滤此串,滤掉字母字符,并统计新生成串中包含的字符个数。例如:输入的字符串为ab234$df4,则输出为:The new string is 234$4 There are 5 char in the new string.。
1. for(i=0,j=0;*(ptr+i)!='\0';i++)
2. if(*(ptr+i)>'z'|| *(ptr+i)<'a'&&*(ptr+i)>'Z' || *(ptr+i)<'A')
3. {*(ptr+j)=*(ptr+i);

79、(题号:395)请编写一个函数fun,函数的功能是:求出N×M整型数组的最小元素及其所在的行坐标及列坐标(如果最小元素不唯一,选择位置在最前面的一个)。例如:输入的数组为:
9 2 3
4 15 6
12 1 9
10 11 2 求出的最小数为1,行坐标为2,列坐标为1。
1. {for(j=0;j2. if(min >array [i][j])
3. Col=j;}

80、(题号:396)请编写一个函数fun,函数的功能是:统计出若干个学生的平均成绩,最低分以及得最低分的人数。例如,输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9,最高分为56,得最高分的人

数为1人。
1. sum+=array[i];} 或 sum=sum+array [i]; }
2. ave=sum/n;
3. if(array [i]==Min) J++;
81、(题号:397)请编写函数fun, 函数的功能是: 移动一维数组中的内容; 若数组中有n个整数, 要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。例如, 一维数组中的原始内容为: 1,2,3,4,5,6,7,8,9,10; p的值为3。移动后, 一维数组中的内容应为: 5,6,7,8,9,10,1,2,3,4。
1. int i,k=0,b[N];
2. for(i=p+1; i < n; i++) b[k++]=w[i];
3. for(i=0; i <= p; i++) b[k++]=w[i];

82、(题号:398)给定程序MODI1.C中函数fun的功能是: 将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A, z转换为a),其它字符不变。
1. while(*s!='\0')
2. else *s += 1;
3. s++;
83、(题号:399)程序定义了N×N的二维数组,并在主函数中自动赋值。函数fun(int a[][N], int n)的功能是:使数组左下三角元素中的值乘以n(包括主对角线元素) 。
1. int i,j;
2. for(j=0; j<=i; j++)
3. a[i][j]*=n;
84、(题号:400)编写函数fun将整型数组中所有小于0的元素放到所有大于0的元素的前面(要求只能扫描数组一次)。
1. int i=0,j=n-1,temp; 2. j--; 3. if(i85、(题号:550)求1!+2!+3!+……+10!。程序中共有4条错误语句,请改正错误。
1.float x=1; 或 float x=1.0; 或 float x=1.;
2.for(i=2;i<=m;i++) 或 for(i=1;i<=m;i++)
3.x=x*i; 或 x*=i; 或 x=i*x;
4.return x; 或 return(x);
86、(题号:551)将数组元素逆序存放。如数组元素为1,2,3,4,5,则逆序存放后数组元素的值为5,4,3,2,1。
1.for(i=0;i<=m;i=i+1) 或 for(i=0;i<=m;i++)
2.x[i]=x[j];
3.inv(a,10);
4.printf("%3d",a[i]);
87、(题号:552)编写一个函数,判断一个数字是否在一个正整数中,若在则函数返回值为1,否则函数返回值为0。输入输出由主函数完成。
1. if(n==k) z=1;
2. m=m/10; 或 m/=10;
3. }while(m!=0); 或 }while(m); 或 }while(m>0);
4. return (z); 或 return z;

88、(题号:553)从键盘输入一个数,是3位数就加上100,是4位数就除以100,其它情况不变。
1. int k=0,d; 或 int k,d;k=0;
2.while(x!=0) 或 while(x) 或 while(x>0)
3.x=x/10; 或 x/=10;
4.if(n==4) m=m/100;
89、(题号:554)编写函数fun计算下列分段函数的值,输入x,输出y的值。
x*20 x<0且x≠-3
f(x)= sin(x) 0≤x<10且x≠2及x≠3
x*x+x-1 其它答 案:
1.scanf("%f",&x);
2. y=sin(3*x); 或 y=sin(3.0*x); 或 y=sin(x*3.0); 或 y=sin(x*3);
3. printf("%f\n",y);
90、(题号:555)以下程序的功能是统计 400~499 这些数中“4”这个数字出现的次数,判断一个数有几位数字4用函数fun实现。
1.while(x!=0)
2.if(y==4) k++;
3.return(k); 或 return k;
4.k=k+fun(i); 或 k=fun(i)+k;
91、(题号:556)下面程序的功能是将十进制数转换

成二进制数。
1.while (b>0) 或 while (02.b=b/2; 或 b/=2;
3.scanf("%d",&a);
4.for(i=strlen(s)-1;i>=0;i--) 或 for(i=strlen(s)-1;i>=0;i-=1) 或 for(i=strlen(s)-1;i>=0;i=i-1)
92、(题号:557)程序功能是输入一个长整数,求各位数字的平方和。如果输入的是负数,求其相反数的各位数字的平方和。例如:输入-123,输出14。
1.scanf("%ld", &in);
2.while(in>0) 或 while(03.in=in/10;
93、(题号:563)一个5位数,判断它是不是回文数。例如12321是个回文数,即它的个位与万位相同,十位与千位相同。
1.scanf("%ld",&x);
2.qian=x%10000/1000; 或 qian=x/1000%10
3.if★(★ge★==★wan★&&★shi★==★qian★)
94、(题号:564)输入两个整数,n1,n2(要求n11.scanf ("%d%d",&n1,&n2);
2.n2=j;
3.if (j%3==0) n++;
95、(题号:567)函数fun的功能是将字符串中每一个数字字符都替换成一个$字符。例如输入:A1B23CDE456 则输出为:A$B$$CDE$$$。
1.while(*(s+i)!='\0') 或 while(*(s+i)!=0)
2.if(*(s+i)>='0'&&*(s+i)<='9') 或 if(*(s+i)>=48&&*(s+i)<=57')
3. fun(s);


相关文档