问答题请根据以下各小题的要求设计C应用程序(包括界面和代码)。下列给定程序中,函数fun()的功能是:将n个无序整数从小到大排序。请改正程序指定部位的错误,使它能得到正确结果。  注意:  不要改动函数main(),不得增行或删行,也不得更改程序的结构。/**********code.c**********/#includevoidfun(intn,int*a){ inti,j,p,t; for(j=0;ja[i])    /**********found**********/    t=i;  if(p!=j)  {   t=a[j];   a[j]=a[p];   a[p]=t;  } }}voidputarr(intn,int*z){ inti; for(i=1;i=n;i++,z++) {  printf(%4d,*z);  if(!(i%10))   printf(); } printf();}voidmain(){ intaa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11; printf(Beforesorting%dnumbers:,n); putarr(n,aa); fun(n,aa); printf(Aftersorting%dnumbers:,n); putarr(n,aa);}/**********-code.c**********/

问答题
请根据以下各小题的要求设计C应用程序(包括界面和代码)。 下列给定程序中,函数fun()的功能是:将n个无序整数从小到大排序。请改正程序指定部位的错误,使它能得到正确结果。   注意:   不要改动函数main(),不得增行或删行,也不得更改程序的结构。 /**********code.c**********/ #include  void fun(int n, int *a) {  int i,j,p,t;  for(j=0;ja[i])     /**********found**********/     t=i;   if(p!=j)   {    t=a[j];    a[j]=a[p];    a[p]=t;   }  } } void putarr(int n, int *z) {  int i;  for(i=1;i<=n;i++,z++)  {   printf(%4d,*z);   if(!(i%10))    printf();  }  printf(); } void main() {  int aa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;  printf(Before sorting %d numbers:,n);  putarr(n,aa);  fun(n,aa);  printf(After sorting %d numbers:,n);  putarr(n,aa); } /**********-code.c**********/

参考解析

解析:

  本题采用的是选择排序法。
  错误1:选择排序法是在外循环中从第一个元素开始,依次与比它小的元素进行交换,直到交换完第n-1个元素,最后一个元素就是最大的元素,循环次数为n-1次,如果设定循环次数为n次,则最后一次第n个元素与自己交换;内循环是找出比当前元素更小的元素,故是从当前需要交换的元素的下一个元素开始,直到第n个元素。故“for(i=j+1;i<n-1;i++)”应改为“for(i=j+1;i<n;i++)”。
  错误2:t是fun函数中用来交换两个元素的辅助变量,不是交换元素下标的变量,因此t=i;是错误的。p是用来记录当前最小元素下标的,当a[p]>a[i]时,把i赋给p。所以“t=i;”应改为“p=i;”。

相关考题:

下列给定程序中,函数fun()的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:include <conio.h>include <stdio.h>int fun( int m){ int i,k;for (i=m+1; ;i++){ for (k=2;k<i;k++)/*************found**************/if (i%k!=0)break;/*************found**************/if (k<i)return(i);}}main(){ int n;clrscr ();printf("\nPlease enter n: ");scanf ("%d", n);printf ("%d\n",fun(n));}

请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与自身)之和(规定n的值不大于1000)。例如:输入n的值为856,则输出为sum=763。注意:部分源程序已存在文件test33_2.cpp中。请勿修改主函数main和其他函数中的任何内容,仅在函数count的花括号中填写若干语句。文件test33_2.cpp清单如下:include<stdio. h>include<iostream. h>int fun(int n){}void main ( ){int n, sum;cout<<"Input n:"<<end1;cin>>n;sum=fun (n);cout<<" sum= \n"<<sum<<end1;}

下列给定程序中,函数fun()的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65 b=60请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序;include<stdio.h>include <conio.h>/*************found**************/void fun(int a,b){ int t;/*************found**************/t=b;b=a;a=t;}main(){ int a,b;clrscr();printf("Enter a, b: "); scanf("%d%d",a,b);fun(a, b);printf("a=%d b=%d\n ", a,b);}

请编写函数void fun(int x, int pp[], int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在即所指的数组中,这些除数的个数通过形参n返回。例如,若x中的值为30,则有4个数符合要求,它们是1, 3,5,15。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include <conio.h>include <stdio.h>void fun (int x, int pp[], int *n){}main(){int x,aa[1000], n, i ;clrscr();printf("\nPlease enter an integernumber : \n ") ;scanf ("%d", x) ;fun (x, aa, n) ;for (i=0 ; i<n ; i++)printf ("%d ", aa [i]);printf ("\n ") ;}

请编写函数void fun (int x,int pp[],int *n),它的功能是求出能整除x且不是奇数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。例如,若x中的值为24,则有6个数符合要求,它们是2, 4, 6, 8, 12, 24。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include<conio.h>include<stdio.h>void fun(int x,int PP[],int *n){}main (){int x,aa[1000],n,i;clrscr() ;printf("\nPlease enter an integer number:\n ") ;scanf("%d",X);fun(x,aa,n);for(i=0;i<n;i++)printf("%d",aa[i]);printf("\n");}

下列给定程序中fun()函数的功能是:将n个无序整数从小到大排序。请改正程序中的错误,使它能得出正确的结果。注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <conio.h>include <stdio.h>include <stdlib.h>fun(int n, int *a){ int i,j,p,t;for (j=0;j<n-1;j++){ P=j;/***************found*******************/for(i=j+l;i<n-1;i++)if (a[p]>a[i])/***************found*******************/t=i;if (p!=j){t=a[j];a[j]=a[p];a[p]=t;}}}putarr( iht n,int *z){int i;for (i=l;i<=n;i++,z++){ printf("%4d",*z);if (!(i%10)) printf("\n");} printf ("\n");}main (){int aa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;clrscr();printf("\n\nBefore sorting %d numbers:\n",n); putarr(n,aa);fun(n,aa);printf("\nAfter sorting %d numbers:\n",n);putarr(n,aa);}

下列给定程序中,函数fun()的功能是:计算整数n的阶乘。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <stdio.h>double fun(int n){double result=l.0;whil (n>ln<170)/**************found********************/result*=--n;/**************found********************/return;main(){int. n;clrscr();printf("Enter an integer: ");scanf("%d",n);printf("\n\n%d!=%lg\n\n ",n, fun(n));}

给定程序MODll.C中fun函数的功能是:求出以下分数序列的前n项之和。和值通过函数值返回main函数。例如,若n=5,则应输出:8.391667。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

下列给定程序中,函数fun()的功能是:判断一个整数m是否是素数,若是返回l,否则返回0。在main()函数中,若fun()返回1则输出YES,若fun()返回0则输出NO!请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:include <conio.h>include <stdio.h>int fun(int m){ int k=2;while (k<=m&&(m%k))/*************found*********************/k++/*************found*********************/if(m=k)return 1;else return O;}main ( ){ iht n;clrscr ();printf("\nPlease enter n: ");scanf ("%d", n);if (fun (n)) printf ("YES\n");else printf ("NO! \n");}

请编写一个函数fun(),它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。例如,若输入字符串“-1234”,则函数把它转换为整数值 -1234。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include <stdio.h>include <string.h>long fun(char *p){}main ( ){char s[6];long n;printf("Enter a string:\n");gets(s);n=fun(s);printf("%ld\n",n);}

程序Cmody012.c中,函数fun(intn)的功能是:根据参数n,计算大于10的最小n个能被3整除的正整数的倒数之和。请改正错程序中的错误。例如:

请编写一个函数fun(),它的功能是求出一个正整数的所有因子。例如,若输入72, 则程序应该输出:72=2*2*2*3*3。注意:部分源程序已存在文件PROC14。CPP中。请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句。文件PROC14.cpp的内容如下://PROC14. cppinclude <iostream>using namespace std;void fun(int number);int main ( ){int n;cout<<"Please enter a number \n";cin>>n;cout<<n<<"=";fun (n);return 0;}void fun(int number){//* * * * * * *}

请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。例如:主函数从键盘给输入n的值为56,则输出为 sum=1113。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include <stdio.h>long fun(int n){}main(){int n;long sum;printf("Input n:");scanf("%d",n);sum=fun(n);printf("sum=%ld\n",sum);}

给定程序MODll.C中函数fun的功能是:找出100至n(不大于1000)之间三位数字相等的所有整数,把这些整数放在s所指数组中,个数作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

下列给定程序中,函数fun的功能是按以下递归公式求函数值。例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。请改正程序中的错误,使它能得到正确结果。注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <stdio.h>/*************found****+*******/fun(int n);{int c;/*************found********+*****/if(n=1)c=15;elsec=fun(n-1)*2;return(c);}main(){int n;printf("Enter n:");scanf("%d",n);printf("The result:%d\n\n",fun(n));}

给定程序MODll.C中函数fun的功能是:求出以下分数序列的前n项之和。和值通过函数值返回到main函数。例如,若n=5,则应输出:8.391667。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

请编写函数fun,参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。注意:部分源程序存在PROGl.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun鸽花括号中填入所缩写的若干语句。给定源程序:

下列给定程序是建立一个带头结点的单向链表,并用随 机函数为各结点赋值。函数fun的功能是将单向链表结点 (不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请改正函数fun中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

阅读以下问题说明、C 程序和函数,将解答填入答题纸的对应栏内。【问题 1】分析下面的C 程序,指出错误代码(或运行异常代码)所在的行号。 【C 程序】【问题 2】函数inputArr(int a[], int n)的功能是输入一组整数(输入0或输入的整数个数达到n时结束)存入数组 a,并返回实际输入的整数个数。函数 inputArr 可以成功编译。但测试函数调用inputArr后,发现运行结果不正确。请指出错误所在的代码行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行,使之符合上述设计意图。【C 函数】

问答题请根据以下各小题的要求设计C应用程序(包括界面和代码)。  请补充main函数,该函数的功能是:先以只写方式打开文件“out52.dat”,再把字符串str中的字符保存到这个磁盘文件中。  注意:部分源程序给出如下。  请勿改动主函数main和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。  试题程序如下:#include#defineN80main(){ FILE*fp; inti=0; charch; charstr[N]=I'mastudent!; if((fp=fopen(①______))==NULL) {  printf(cannotopenout52.dat);  exit(0); } while(str[i]) {  ch=str[i];  ②______;  putchar(ch);  i++; } ③______;}

问答题请根据以下各小题的要求设计C应用程序(包括界面和代码)。  下列给定的程序中,函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中。例如,输入的数为55 12 34,输出结果应当是:a=55.0,b=34.0,c=12.0。  请改正程序中的错误,使它能得到正确结果。  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。  试题程序如下:#include #include void fun(float *p,float *q,float *s){ float *k; k = (float *)malloc(sizeof(float)); if(*p*q) {  /**********found**********/  k=*p;*p=*q;*q=k; } /**********found**********/ if(*s*p) {  /**********found**********/  k=*s; *s=*p; *p=k; } if(*q*s) {  /**********found**********/  k=*q; *q=*s; *s=k; } free(k);}main(){ float a,b,c; printf(Input a b c: ); scanf(%f%f%f,a,b,c); printf(a = %4.1f, b = %4.1f, c = %4.1f,a,b,c); fun(a,b,c); printf(a = %4.1f, b = %4.1f, c = %4.1f,a,b,c);}

问答题请根据以下各小题的要求设计C应用程序(包括界面和代码)。  给定程序中函数fun()的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。  例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。  请改正程序中的错误,使它能得到正确结果。  注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。  试题程序如下:#include #define SIZE 20int fun(double *s, double *w){ int k,i; double sum; for(k=2,i=0;i

问答题请编写函数fun(),该函数的功能是:计算并输出给定整数n的所有因子(不包括1和自身)之和。规定n的值不大于1000。例如,在主函数中从键盘给n输入的值为856,则输出为:sum=763。  注意:部分源程序给出如下。  请勿改动主函数main()和其他函数中的任何内容,仅在fun()函数的花括号中填入所编写的若干语句。  试题程序如下:/**********code.c**********/#include int fun(int n){}void main(){ int n,sum; printf(Input n: ); scanf(%d,n); sum=fun(n); printf(sum=%d,sum);}

问答题请根据以下各小题的要求设计C应用程序(包括界面和代码)。  请编写函数fun(),它的功能是:将3行4列矩阵x乘以4行3列矩阵y,结果放在3行3列矩阵xy中。矩阵相乘的基本方法是:矩阵xy中行列下标分别为i,j的元素的值,是矩阵x中第i行上4个元素与矩阵y第j列上4个元素对应相乘的和。  注意:部分源程序给出如下。  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。  试题程序如下:#include#includevoidfun(inta[3][4],intb[4][3],intab[3][3]){}main(){ intx[3][4]={{1,0,1,1},{2,1,0,1},{1,2,0,3}}; inty[4][3]={{1,1,1},{0,0,0},{2,1,1},{1,1,3}}; intxy[3][3]={0},i,j; fun(x,y,xy); printf(a×b=ab:(3,3):); for(i=0;i3;i++) {  for(j=0;j3;j++)   printf(%d,xy[i][j]);  printf(); }}

问答题请根据以下各小题的要求设计C应用程序(包括界面和代码)。  请编写函数fun(),它的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依次类推,把100岁(含100岁)以上年龄的人数放在d[10]中。结果在主函数中输出。  注意:部分源程序给出如下。  请勿改动主函数main()和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。  试题程序如下:#include #define N 50#define M 11void fun(int *a, int *b){}double rnd(){ static int t=29,c=217,m=1024,r=0; r= (r*t+c)%m; return ((double) r/m);}main (){ int age[N],i,d[M]; for(i=0; i

问答题给定程序MODI1.C中函数fun的功能是计算“n!”。  例如,n为5,则输出120.000000。  请改正程序中的错误,使程序能输出正确的结果。  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!  给定源程序:#include double fun(int n){ double result=1.0; /*********found*********/ if n==0  return 1.0; while(n1n170)  /*********found*********/  result *=n-- return result;}main(){ int n; printf(Input N:); scanf(%d,n); printf(%d!=%lf,n,fun(n));}

问答题请编写一个函数fun,它的功能是:将一个表示正整数的数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转换为整数值1234。函数fun中给出的语句仅供参考。  注意:部分源程序存在文件PROG1.C文件中。  请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/**********code.c**********/#include #include long fun(char *p){ int i,len;/* len为串长*/ long x=0; len=strlen(p); /*以下完成数字字符串转换为数字,注意字符’0’不是数字0*/   return x;}void main() { char s[6]; long n; printf(Enter a tring:); gets(s); n = fun(s); printf(%ld,n);}