1、下列給定程式中,函式fun的功能是:把形參a所指陣列中的偶數按原順序依次存放到a[0]、a[1]、a[2]…中,把奇數從陣列中洗掉,偶數的個數通過函式值回傳,
例如,若a所指陣列中的資料最初排列為:9,1,4,2,3,6,5,8,7,洗掉奇數后a所指陣列中的資料為:4,2,6,8,回傳值為4,
請在下劃線處填入正確的內容并將下劃線洗掉,使程式得出正確的結果,
注意:不得增行或刪行,也不得更改程式的結構!
#include <stdio.h> #define N 9 int fun(int a[], int n) { int i,j; j = 0; for (i=0; i<n; i++) /**********found**********/ if (___1___== 0) { /**********found**********/ ___2___ = a[i]; j++; } /**********found**********/ return ___3___; } int main() { int b[N]={9,1,4,2,3,6,5,8,7}, i, n; printf("\nThe original data :\n"); for (i=0; i<N; i++) printf("%4d ", b[i]); printf("\n"); n = fun(b, N); printf("\nThe number of even :%d\n", n); printf("\nThe even :\n"); for (i=0; i<n; i++) printf("%4d ", b[i]); printf("\n"); return 0; }
2、下列給定程式中,函式fun的功能是:在形參s所指字串中尋找與引數c相同的字符,并在其后插入一個與之相同的字符,若找不到相同的字符則不做任何處理,
例如,若s所指字串為"baacda",c中的字符為a,執行后s所指字串為"baaaacdaa",
請在下劃線處填入正確的內容并將下劃線洗掉,使程式得出正確的結果,
不得增行或刪行,也不得更改程式的結構!
#include <stdio.h> void fun(char *s, char c) { int i, j, n; /**********found**********/ for(i=0; s[i]!=___1___ ; i++) if(s[i]==c) { /**********found**********/ n=___2___ ; while(s[i+1+n]!='\0') n++; for(j=i+n+1; j>i; j--) s[j+1]=s[j]; /**********found**********/ s[j+1]=___3___ ; i=i+1; } } int main() { char s[80]="baacda", c; printf("\nThe string: %s\n",s); printf("\nInput a character: "); scanf("%c",&c); fun(s,c); printf("\nThe result is: %s\n",s); return 0; }
3、下列給定程式中,函式fun的功能是:有N×N矩陣,以主對角線為對稱線,對稱元素相加并將結果存放在左下三角元素中,右上三角元素置為0,
例如,若N=3,有下列矩陣:
1 2 3
4 5 6
7 8 9
計算后結果為
1 0 0
6 5 0
10 14 9
請在程式的下劃線處填入正確的內容并把下劃線洗掉,使程式得出正確的結果,
注意:不得增行或刪行,也不得改程式的結構!
#include <stdio.h> #define N 4 /**********found**********/ void fun(int (*t)___1___ ) { int i, j; for(i=1; i<N; i++) { for(j=0; j<i; j++) { /**********found**********/ ___2___ =t[i][j]+t[j][i]; /**********found**********/ ___3___ =0; } } } int main() { int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf("\nThe original array:\n"); for(i=0; i<N; i++) { for(j=0; j<N; j++) printf("%2d ",t[i][j]); printf("\n"); } fun(t); printf("\nThe result is:\n"); for(i=0; i<N; i++) { for(j=0; j<N; j++) printf("%2d ",t[i][j]); printf("\n"); } return 0; }
4、下列給定程式中,函式fun的功能是:把形參s所指字串中下標為奇數的字符右移到下一個奇數位置,最右邊被移出字串的字符繞回放到第一個奇數位置,下標為偶數的字符不動(注:字串的長度大于等于2),
例如,形參s所指字串為"abcdefgh",執行結果為"ahcbedgf",
請在下劃線處填入正確的內容并將下劃線洗掉,使程式得出正確的結果,
注意:不得增行或刪行,也不得更改程式的結構!
#include <stdio.h> void fun(char *s) { int i, n, k; char c; n=0; for(i=0; s[i]!='\0'; i++) n++; /**********found**********/ if(n%2==0) k=n-___1___ ; else k=n-2; /**********found**********/ c=___2___ ; for(i=k-2; i>=1; i=i-2) s[i+2]=s[i]; /**********found**********/ s[1]=___3___ ; } int main() { char s[80]="abcdefgh"; printf("\nThe original string is : %s\n",s); fun(s); printf("\nThe result is : %s\n",s); return 0; }
5、給定程式中,函式fun的功能是:把形參s所指字串中最右邊的n個字符復制到形參t所指字符陣列中,形成一個新串,若s所指字串的長度小于n,則將整個字串復制到形參t所指字符陣列中,
例如,形參s所指的字串為:abcdefgh,n的值為5,程式執行后t所指字符陣列中的字串應為:defgh,
請在程式的下劃線處填入正確的內容并把下劃線洗掉,使程式得出正確的結果,
注意:不得增行或刪行,也不得更改程式的結構!
#include <stdio.h> #include <string.h> #define N 80 void fun(char *s, int n, char *t) { int len,i,j=0; len=strlen(s); /**********found**********/ if(n>=len) strcpy(__1__); else { /**********found**********/ for(i=len-n; i<=len-1; i++) t[j++]= __2__ ; /**********found**********/ t[j]= __3__ ; } } int main() { char s[N],t[N]; int n; printf("Enter a string: ");gets(s); printf( "Enter n:"); scanf("%d",&n); fun(s,n,t); printf("The string t : "); puts(t); return 0; }
6、給定程式中,函式fun的功能是:統計形參s所指的字串中數字字符出現的次數,并存放在形參t所指的變數中,最后在主函式中輸出,例如,若形參s所指的字串為"abcdef35adgh3kjsdf7",則輸出結果為4,
請在下劃線處填入正確內容并將下劃線洗掉,使程式得出正確的結果,
注意:不得增行或刪行,也不得更改程式的結構!
#include <stdio.h> void fun(char *s, int *t) { int i, n; n=0; /**********found**********/ for(i=0; ___1___ !=0; i++) /**********found**********/ if(s[i]>='0'&&s[i]<= ___2___ ) n++; /**********found**********/ ___3___ ; } int main() { char s[80]="abcdef35adgh3kjsdf7"; int t; printf("\nThe original string is : %s\n",s); fun(s,&t); printf("\nThe result is : %d\n",t); return 0; }
7、函式fun的功能是:根據所給的年、月、日,計算出該日是這一年的第幾天,并作為函式值回傳,其中函式 isleap用來判別某一年是否為閏年,
例如,若輸入:2008
5 1,則程式輸出:2008年5月1日是該年的第122天,
請在程式的下劃線處填入正確的內容,并把下劃線洗掉,使程式得出正確的
結果,
注意:不得增行或刪行,也不得更改程式的結構!
#include <stdio.h> int isleap(int year) { int leap; leap= (year%4==0 && year%100!=0 || year%400==0); /**********found**********/ return __1__; } int fun(int year, int month, int day) { int table[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int days=0 , i; for(i=1; i<month; i++) days=days + table[i]; /**********found**********/ days=days+__2__ ; if( isleap(year) && month>2 ) /**********found**********/ days=days+__3__; return days; } int main() { int year, month, day, days ; printf("請輸入年、月、日:"); scanf("%d%d%d",&year, &month, &day); days = fun(year, month, day); printf("%d年%d月%d日是該年的第%d天\n",year, month, day, days); return 0; }
8、給定程式中,函式fun的功能是:利用指標陣列對形參ss所指字串陣列中的字串按由長到短的順序排序,并輸出排序結果,ss所指字串陣列中共有N個字串,且串長小于M,
請在程式的下劃線處填入正確的內容并把下劃線洗掉,使程式得出正確的結果,
注意:不得增行或刪行,也不得更改程式的結構!
#include <stdio.h> #include <string.h> #define N 5 #define M 8 void fun(char (*ss)[M]) { char *ps[N],*tp; int i,j,k; for(i=0; i<N; i++) ps[i]=ss[i]; for(i=0; i<N-1; i++) { /**********found**********/ k= __1__ ; for(j=i+1; j<N; j++) /**********found**********/ if(strlen(ps[k]) < strlen(__2__) ) k=j; /**********found**********/ tp=ps[i]; ps[i]=ps[k]; ps[k]= __3__ ; } printf("\nThe string after sorting by length:\n\n"); for(i=0; i<N; i++) puts(ps[i]); } int main() { char ch[N][M]={"red","green","blue","yellow","black"}; int i; printf("\nThe original string\n\n"); for(i=0;i<N;i++)puts(ch[i]); printf("\n"); fun(ch); return 0; }
9、下列給定程式中,函式fun的功能是:將N×N矩陣主對角線元素的值與反向對角線對應位置上元素的值進行交換,
例如,若N=3,有下列矩陣:
1 2 3
4 5 6
7 8 9
交換后為:
3 2 1
4 5 6
9 8 7
請在下劃線處填入正確的內容并將下劃線洗掉,使程式得出正確的結果,
注意:不得增行或刪行,也不得更改程式的結構!
#include <stdio.h> #define N 4 /**********found**********/ void fun(int ___1___ , int n) { int i,s; /**********found**********/ for(___2___; i++) { s=t[i][i]; t[i][i]=t[i][n-i-1]; /**********found**********/ t[i][n-1-i]=___3___; } } int main() { int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf("\nThe original array:\n"); for(i=0; i<N; i++) { for(j=0; j<N; j++) printf("%d ",t[i][j]); printf("\n"); } fun(t,N); printf("\nThe result is:\n"); for(i=0; i<N; i++) { for(j=0; j<N; j++) printf("%d ",t[i][j]); printf("\n"); } return 0; }
10、下列給定程式中,函式fun的功能是:在形參ss所指字串陣列中查找與形參t所指字串相同的串,找到后回傳該串在字串陣列中的位置(即下標值),若未找到則回傳-1,ss所指字串陣列中共有N個內容不同的字串,且串長小于M,
請在下劃線處填入正確的內容并將下劃線洗掉,使程式得出正確的結果,
注意:不得增行或刪行,也不得更改程式的結構!
#include <stdio.h> #include <string.h> #define N 5 #define M 8 int fun(char (*ss)[M],char *t) { int i; /**********found**********/ for(i=0; i< __1__ ; i++) /**********found**********/ if(strcmp(ss[i],t)==0 ) return __2__ ; return -1; } int main() { char ch[N][M]={"if","while","switch","int","for"},t[M]; int n,i; printf("\nThe original string\n"); for(i=0;i<N;i++)puts(ch[i]); printf("\n"); printf("\nEnter a string for search: "); gets(t); n=fun(ch,t); /**********found**********/ if(n== __3__) printf("\nDon't found!\n"); else printf("\nThe position is %d .\n",n); return 0; }
1、(1)a[i]%2 (2)a[j] (3)j 2、(1)'\0' (2)0 (3)c 3、(1)[N] (2)t[i][j] (3)t[j][i] 4、(1)1 (2)s[k] (3)c 5、(1)t,s (2)s[i] (3)'\0' 6、(1)s[i] (2)'9' (3)*t=n 7、(1)leap (2)day (3)1 8、(1) i (2)ps[j] (3)tp 9、(1)(*t)[N] (2)i=0;i<n (3)s 10、(1)M (2)i (3)-1參考答案
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/534053.html
標籤:C
上一篇:<一>函式模板
下一篇:新手易犯,有幾人和我同樣中招過
