else if( min>max ) min=max; }
return min; }
8、以下程序功能:输入数组,最大的与最后一个元素交换,最小的与第一个元素交换,输
出数组。请填空。 #include
int i;
/***********SPACE***********/ for(i=0; i<9或9>i ;i++) scanf(\ scanf(\}
max_min(int array[10]) {
int *max,*min,k,l; int *p,*arr_end; arr_end=array+10; max=min=array;
for(p=array+1;p
/***********SPACE***********/ min=p ; k=*max; l=*min; *p=array[0]; array[0]=l;
/***********SPACE***********/ l=*p ; *p=array[9];
/***********SPACE***********/ array[9]=k ; k=*p; }
output(int array[10]) {
int *p;
for(p=array;p - 21 - main() { int number[10]; input(number); max_min(number); output(number); } 9、下面的函数strcat(str1, str2) 实现将字符串str2拼接到字符串str1后面的功能。请在程序 的空白处填入一条语句或一个表达式。 char *strcat(char *str1,char *str2) { char *t=str1; /***********SPACE***********/ while( *str1!= '\\0' 或 *str1 ) str1++; /***********SPACE***********/ while( *str1++=*str2++ ); return (t); } 10、函数fun的功能是使一个字符串按逆序存放,请填空。 void fun(char str[]) { char m; int i,j; /***********SPACE***********/ for(i=0,j=strlen(str)-1;i< j ;i++,j--) { m=str[i]; /***********SPACE***********/ str[i]= str[j] ; str[j]=m; } printf(\} 四、程序改错题 1、功能:下面程序将输入的大写字母改写成小写字母输出,其他字符不变。请判断下面程 序的正误,如果错误请改正过来。 main( ) { char c; c = getchar ( ) ; /**********FOUND**********/ c = (c>='A'||c<='Z') ? c-32:c+32 ; // c = (c>='A'&&c<='Z') ? c+32:c ; printf(\} - 22 - 2、功能:编写函数求2!+4!+6!+8!+10+12!+14!。 #include /**********FOUND**********/ int i,j // int i,j; long t,s=0; /**********FOUND**********/ for(i=2;i<=n;i++) //for(i=2;i<=n;i=i+2)或for(i=2;i<=n;i+=2)或//for(i=2;i<=n;i++,i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t; } /**********FOUND**********/ return(t); // return(s); } main() { printf(\} 3、功能:编写函数fun计算下列分段函数的值: x*x+x x<0且x≠-3 f(x)= x*x+5x 0≤x<10且x≠2及x≠3 x*x+x-1 其它 #include /**********FOUND**********/ double y // float y; /**********FOUND**********/ if (x<0 ||x!=-3.0) // if (x<0 && x!=-3.0) y=x*x+x; else if(x>=0 && x<10.0 && x!=2.0 && x!=3.0) y=x*x+5*x; else y=x*x+x-1; /**********FOUND**********/ return x; // return y; } main() { - 23 - double f; float x; printf(\ scanf(\ f=fun(x); printf(\} 4、功能:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 #include char c; int letters=0,space=0,digit=0,others=0; printf(\ /**********FOUND**********/ while((c=getchar())=='\\n') // while((c=getchar())!='\\n') { /**********FOUND**********/ if(c>='a'&&c<='z'&&c>='A'&&c<='Z') //if( c>='a'&&c<='z' || c>='A'&&c<='Z' ) //或if( c<='z'&&c>='a' || c>='A'&&c<='Z' ) //或 if( c <= 'z' && c >= 'a' || c >= 'A' && c<='Z' ) letters++; /**********FOUND**********/ else if(c=!' ') // else if(c==' ') space++; else if(c>='0'&&c<='9') digit++; else others++; } printf(\} 5、功能:以下程序能求出1*1+2*2+......+n*n<=1000中满足条件的最大的n。 #include int n,s; /**********FOUND**********/ s==n=0; //s=n=0; /**********FOUND**********/ while(s>1000) // while(s<=1000) - 24 -