【文章內容簡介】
ied:)。puts(a)。} 請編寫函數fun,函數的功能是:將s所指字符串中、下標為奇數位置上的大寫字母轉換為字母序列中的下一個小寫字母;若該位置上是小寫字母,則不轉換;若該位置上是大寫字母Z,則僅轉換成小寫字母z。例如,輸入:ABCdxZZZ,則輸出為:AcCdXzZz。試題程序。include define N 80/* 該題的算法與上一題相似,注意同一個字母小寫要比大寫在ASCII值上大32。*/void fun(char *s){int i。for(i=1。iN。i=i+2)if (s[i]=39。A39。amp。amp。s[i]39。Z39。)s[i]+=32+1。else if(s[i]==39。Z39。) s[i]+=32。}main(){char s[N]。printf(\nenter a string:)。scanf(%s,s)。fun(s)。printf(\nthe result:%s\n,s)。}2 程序定義了N*N的二維數組,并在主函數中賦值。請編寫函數fun,函數的功能是:給數組周邊元素置0值。例如:a數組中的值為則返回主程序后a數組中的值應為注意:部分源程序給出如下。請勿改動主函數main和其它函數中的任何去何內容,僅在函數fun的花括號中填入你編寫的若干語句。試題程序。include include include define N 5/* 由于是賦值0,因而只要能表示出周邊元素即好辦,它與求和不同在于求和不能重復對某個元素進行運算,而賦值則可重復賦值。所以這里只用了一個for()循環(huán)來找出所有的周邊元素。*/fun(int w[][N]){ int i 。for(i=0。iN。i++){ w[i][0]=0。w[i][N1]=0。w[0][i]=0。w[N1][i]=0。}}main(){ int a[N][N],i,j。clrscr()。printf(***** The array *****\n)。for(i=0。iN。i++){ for(j=0。jN。j++){ a[i][j]=rand()%10。printf(%4d,a[i][j])。}printf(\n)。}fun(a)。printf(***** The result *****\n)。for(i=0。iN。i++){ for(j=0。jN。j++)printf(%4d,a[i][j])。printf(\n)。}}2 請編寫函數fun,它的功能是:求出ss所指字符串中、指定字符的個數,并返回此值。例如:若輸入字符串:123412132,輸入字符為:1,則輸出:3。試題程序。includeincludedefine M 81/* 注:本題用while()循環(huán)來控制字符的移動,每移動一個字符都要進行判斷(if(*ss==c))是否為指定的字母,若是則個數加1。這里要注意如何讓ss指針向下走動(ss++)。*/int fun(char *ss,char c){int num=0。while(*ss!=39。\039。){if(*ss==c) num++。ss++。}return(num)。}main(){char a[M],ch。clrscr()。printf(\nPlease enter a strint:)。gets(a)。printf(\nPlease enter a char:)。ch=getchar()。printf(\nThe number of the char is:%d\n,fun(a,ch))。}2 程序定義了N*N的二維數組,并在主函數中賦值。請編寫函數fun,函數的功能是:求出數組周邊元素的平均值并作為函數值返回給主函數中的s。例如:a數組中的值為則返回主程序后s的值應為:。試題程序。include include include define N 5/* 注意不能重復計算,它與題21不同,第一個for()循環(huán)求出第一列與最后一列的和,第二個for()循環(huán)求出第一行與最后一行(已除去兩頭元素),要注意第二個for()中起始為1,最后為N2。*/double fun (int w[][N]){ int i,t=0。double s=0。for(i=0。iN。i++){s+=w[i][0]+w[i][N1]。 t+=2。}for(i=1。iN1。i++){s+=w[0][i]+w[N1][i]。 t+=2。}s=s/t。return s。}main(){ int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1}。int i,j。double s。clrscr()。printf(***** The array *****\n)。for(i=0。iN。i++){for(j=0。jN。j++)printf(%4d,a[i][j])。printf(\n)。}s=fun(a)。printf(***** The result *****\n)。printf(The sum is %lf\n,s)。}2 編寫一個函數fun,它的功能是:實現兩個字符串的連接(不使用庫函數strcat)。例如,分別輸入下面兩個字符串:FirstSrting—SecondString程序輸出:FirstString—SecondString注意:部分源程序給出如下。請勿改動主函數main和其它函數中的任何去何內容,僅在函數fun的花括號中填入你編寫的若干語句。試題程序。includeinclude/* 注:第一個for()循環(huán)用于讓i成為第一個字符串的結束符的下標,要注意在這個for()后要有一個分號否則出錯。第二個for()的作用是將第二個字符串一個一個字符依次放到第一個字符串的未尾。此外,還要注意最后一定要有p1[i]=39。\039。;來給字符串加上結束符。*/void fun(char p1[],char p2[]){int i,j。for(i=0。p1[i]。i++)。for(j=0。p2[j]。j++)p1[i++]=p2[j]。p1[i]=39。\039。}main(){ char s1[80],s2[80]。clrscr()。printf(Enter s1 and s2:\n)。scanf(%s%s,s1,s2)。printf(s1=%s\n,s1)。printf(s2=%s\n,s2)。printf(Invoke fun(s1,s2):\n)。fun(s1,s2)。printf(After invoking:\n)。printf(%s\n,s1)。}2 程序定義了N*N的二維數組,并在主函數中自動賦值。請編寫函數fun(int a[][N]),函數的功能是:使數組第一列元素中的值與最后一列元素中的值對調、第二列元素的值與倒數第二列中的值對調、……、其他依次類推。例如:a數組中的值為則返回主程序后a數組中的值應為注意:部分源程序給出如下。請勿改動主函數main和其它函數中的任何去何內容,僅在函數fun的花括號中填入你編寫的若干語句。試題程序。include include include define N 5/* 本題的第一個for()循環(huán)用于控制行,而內嵌的for()用于在同一行中將列與列對調,當i為0時a[m][i]為第m行的第一列元素,a[m][N1i]為第m行的最后一列的元素,正好符合調換的要求。依次類推。*/int fun(int a[][N]){ int i ,m,t。for(m=0。mN。m++)for(i=0。iN/2。i++){t=a[m][i]。a[m][i]=a[m][N1i]。a[m][N1i]=t。}}main(){ int a[N][N],i,j。clrscr()。printf(***** The array *****\n)。for(i=0。iN。i++){for(j=0。jN。j++){a[i][j]=rand()%30。printf(%4d,a[i][j])。}printf(\n)。}fun(a)。printf(***** The result *****\n)。for(i=0。iN。i++){for(j=0。jN。j++)printf(%4d,a[i][j])。printf(\n)。}}2 請編寫函數fun,函數的功能是:實現B=A+A’,即把矩陣A加上A的轉置,存放在矩陣B中。計算結果在main函數中輸出。例如:輸入下面的矩陣: 其轉置矩陣為:程序輸出:注意:部分源程序給出如下。請勿改動主函數main和其它函數中的任何去何內容,僅在函數fun的花括號中填入你編寫的若干語句。試題程序。includeinclude/* 26題:本題沒有先求出A的轉置,而是直接利用轉置的性質(即第一行作為轉置后的第一列,第二行作為轉置后的第二列,的行列互換的性質)。而且最后要求出兩矩陣的相加后得出的新矩陣,由轉置性質可知原a[j][i]轉置后位置為a[i][j],在表達式:b[i][j]=a[i][j]+a[j][i]第一個a為A的元素,第二個a為A39。的元素。*/void fun(int a[3][3],int b[3][3]){int i,j。for(i=0。i3。i++)for(j=0。j3。j++)b[i][j]=a[i][j]+a[j][i]。}main(){int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3]。int i,j。clrscr()。fun(a,t)。for(i=0。i3。i++){for(j=0。j3。j++)printf(%7d,t[i][j])。printf(\n)。}}2 序定義了N*N的二維數組,并在主函數中自動賦值。請編寫函數fun(int a[][N]),函數的功能是:使數組第一行元素中的值與最后一行元素中的值對調、第二行元素的值與倒數第二行中的值對調、……、其他依次類推。例如:a數組中的值為則返回主程序后a數組中的值應為注意:部分源程序給出如下。請勿改動主函數main和其它函數中的任何去何內容,僅在函數fun的花括號中填入你編寫的若干語句。試題程序。include include include define N 5/* 27題:該題與25題相似,外層for()循環(huán)用于控制一列一列地移動,內嵌的forr()循環(huán)用于控制在同一列內對應行元素的對調。a[i][m]為第m列第i行元素,而a[N1i][m]為第m列倒數第i行的元素,正好需要對調。*/fun(int a[][N]){ int i,m,t。for(m=0。mN。m++)for(i=0。iN/2。i++){t=a[i][m]。a[i][m]=a[N1i][m]。a[N1i][m]=t。}}main(){ int a[N][N], i,j。clrscr()。printf(***** The array *****\n)。for(i=0。iN。i++){for(j=0。jN。j++){a[i][j]=rand()%30。 printf(%4d,a[i][j])。}printf(\n)。}fun(a)。printf(***** The result *****\n)。for(i=0。iN。i++){for(j=0。jN。j++)printf(%4d,a[i][j])。printf(\n)。}}2 m個人的成績存放在score數組中,請編寫函數fun,它的功能是:將低于平均分的人數作為函數值返回。例如,當score 數組中的數據為:50、60、70、80、90、時,函數返回的人數應該是4,below中的數據應為:40。注意:部分源程序給出如下。請勿改動主函數main和其它函數中的任何去何內容,僅在函數fun的花括號中填入你編寫的若干語句。試題程序。include include include /* 28題:第一個for()循環(huán)用來計算score數組中分數的總和,然后用aver/=m求出平均值,第二個循環(huán)用來找出小于平均分的元素,并放到數組below中,這里要注意j的遞增方式。*/int fun(int score[],int m, int below[]){ int i,j=0,aver=0。for(i=0。im。i++)aver+=score[i]。aver/=m。for(i=0。im。i++)if(s