版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、新視野教育二級C語言“無紙化”考試填空題總結(jié),內(nèi)部資料禁止外傳- 45 -填空題一、數(shù)學(xué)公式類題目6、計(jì)算下列式前n項(xiàng)的和作為函數(shù)返回值。double fun(int n) int i; double s, t;/*found*/ s=_1_;填入:0。因?yàn)閟是求和變量。/*found*/ for(i=1; ie)/*found*/ _2_; 填入:i+。循環(huán)中必定有i+,不過 一般都是在循環(huán)體中的最后,此題比較 特殊,在前面。如果將i+放到s=s+x; 語句后面,則第一個(gè)空就只用填i=1。/*found*/ x=(2.0*i-1)/(_3_)*(2.0*i); 填入:2.0*i。此處計(jì)算通
2、s=s+x; 項(xiàng)x的值,通項(xiàng)缺少分母, 根據(jù)公式可知應(yīng)填入2.0*i。 return s;main() double e=1e-3; printf(nThe result is: %fn,fun(e);29、double fun(int n) int i, k; double s, t; s=0;/*found*/ k=_1_;填入:1。 for(i=1; i。 s=s+k*x; k=k* (-1); t=2*i;/*found*/ x=_3_/(t*t); 填入:(t+1)。 i+; return s;main() double e=1e-3; printf(nThe result is:
3、%fn,fun(e);最新熱門考題1:double fun(double x) double f, t; int n; f = 1.0 + x;/*found*/ t = _1_; 填入:1。 n = 1; do n+;/*found*/ t *= (-1.0)*x/_2_; 填入:n。 f += t; /*found*/ while (_3_ = 1e-6); 填入:fabs(t)。fabs(t)求t的 return f; 絕對值。要求計(jì)算絕 對值。main() double x, y; x=2.5; y = fun(x);最新熱門考題2:double fun(double x, int n
4、) double f, t; int i;/*found*/ f = _1_;填入:1。公式中第一項(xiàng)1很特殊, t = -1;通項(xiàng)中假設(shè)n的值為1,則第1項(xiàng) for (i=1; i= 1e-6); return f;main() double x, y; x=2.5; y = fun(x);最新熱門考題4:double fun(double x, int n) double f, t; int i; f = 1.0;/*found*/ t = _1_;填入:1。/*found*/ for (i=_2_; in; i+) 填入:1。 /*found*/ t *= x/_3_; 填入:i。 f +
5、= t; return f;main() double x, y; x=2.5; y = fun(x, 12);二、整數(shù)類型題目(題目簡單,用對比法進(jìn)行復(fù)習(xí)效果最好)該類題目的重點(diǎn)考點(diǎn):(1)如果返回的是和,則求和變量sum要賦初值為0;返回的是個(gè)數(shù),則求個(gè)數(shù)變量cnt要賦初值為0;返回積,則求積變量要賦初值為1。(2)一個(gè)整數(shù)n:n%10的結(jié)果為個(gè)位,n/10結(jié)果為去掉個(gè)位。例如:123%10結(jié)果為3,123/10結(jié)果為12。1、函數(shù)的功能:找出100999之間(含100和999)所有整數(shù)中各位數(shù)字之和為x的整數(shù),符合條件的個(gè)數(shù)作為函數(shù)值返回。fun(int x) int n, s1, s2
6、, s3, t; n=0; t=100;/*found*/ while(t=_1_)填入999。/*found*/ s1=t%10; s2=(_2_)%10; s3=t/100; 填入:t/10/*found*/ if(s1+s2+s3=_3_) 填入:x printf(%d ,t);答案分析:(1)題目要求找出100999之間的整數(shù),t被賦值為100,因此第一個(gè)空填入999。(2)題目要求各位數(shù)字之和,s1=t%10得到個(gè)位,s2=(t/10)%10;得到十位,s3=t/100得到百位。(3)各位數(shù)字之和為x的整數(shù),因此第三個(gè)空填入x。 n+; t+; return n;main() int
7、 x=-1; printf(nThe result is: %dn,fun(x);2、函數(shù)的功能:找出100至x(x=999)所有整數(shù)中各位章數(shù)字之和為15的整數(shù),符合條件的個(gè)數(shù)作為函數(shù)值返回。fun(int x) int n, s1, s2, s3, t;/*found*/ n=_1_;填入:0。 t=100;/*found*/ while(tb) ? (bc? b :(ac?c:_1_) : (ac)?_2_ : (bc)?c:_3_); 第一個(gè)空填入:b return t; 第二個(gè)空填入:a 第三個(gè)空填入:b 注意:該題理解起來比較困難,因此建立直接記憶!main() int a1=3,
8、 a2=5, a3=4, r; r = fun(a1, a2, a3);關(guān)于素?cái)?shù):(1)只能被1和它自身整除的數(shù),最小的素?cái)?shù)是2,不是1。(2)判斷變量i是否值素?cái)?shù),只要用i除以2、3、4n-1,如果有任何一個(gè)結(jié)果為0,則不是素?cái)?shù),否則是素?cái)?shù)。最新熱門考題3:函數(shù)的功能是:統(tǒng)計(jì)所有小于等于n(n2)的素?cái)?shù)的個(gè)數(shù),素?cái)?shù)的個(gè)數(shù)作為函數(shù)值返回。int fun(int n) int i,j, count=0; printf(nThe prime number between 3 to %dn, n); for (i=3; i=n; i+) /*found*/ for (_1_; j=i) 填入:j。
9、count+; printf( count%15? %5d:n%5d,i); return count;main() int n=20, r; r = fun(n);最新熱門考題4:用篩選法可得到2n(n10000)之間的所有素?cái)?shù),方法是:首先從素?cái)?shù)2開始,將所有2的倍數(shù)的數(shù)從數(shù)表中刪去(把數(shù)表中相應(yīng)位置的值置成0);接著從數(shù)表中找到一個(gè)非0數(shù),并從數(shù)表中刪去該數(shù)的所有倍數(shù);依次類推,直到所找的小一個(gè)數(shù)等于n為止。int fun(int n) int a10000, i,j, count=0; for (i=2; i=n; i+) ai = i; i = 2; while (in) /*fou
10、nd*/ for (j=ai*2; j=n; j+=_1_)填入:i。 aj = 0; i+;/*found*/ while (_2_=0) 填入:ai。 i+; printf(nThe prime number between 2 to %dn, n); for (i=2; i=n; i+)/*found*/ if (ai!=_3_)填入:0。 count+; printf( count%15?%5d:n%5d,ai); return count;main() int n=20, r; r = fun(n); 最新熱門考題5: 甲乙丙丁四人同時(shí)開始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一
11、次,丙每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次。函數(shù)的功能是:根據(jù)形參提供的值,求出總共聽到多少次鞭炮聲作為函數(shù)值返回。/*found*/#define OK(i, t, n) (_1_%t=0) & (i/tn)填入: fun(int t1, int t2, int t3, int t4, int n) int count, t , maxt=t1; if (maxt t2) maxt = t2; if (maxt t3) maxt = t3; if (maxt t4) maxt = t4; count=1; /* 給count賦初值 */*found*/ for(t=1
12、; t maxt*(n-1); _2_) 填入:i+。 if(OK(t, t1, n) | OK(t, t2, n)| OK(t, t3, n) | OK(t, t4, n) ) count+; /*found*/ return _3_; 填入:count。main() int t1=7, t2=5, t3=6, t4=4, n=10, r; r = fun(t1, t2, t3, t4, n);三、一維數(shù)組考題該類題目的重點(diǎn)考點(diǎn):(1)如果返回的是和,則求和變量sum要賦初值為0;返回的是個(gè)數(shù),則求個(gè)數(shù)變量cnt要賦初值為0;返回積,則求積變量要賦初值為1。(2)數(shù)組的下標(biāo)從0開始,到長度減
13、1結(jié)束。(3)必考點(diǎn),謹(jǐn)記兩個(gè)數(shù)組的賦值形式:aj+=ai;或者為:aj=ai;j+;(4)判斷數(shù)組中元素是否為偶數(shù):ai%2=0(4)一維數(shù)組的排序個(gè)數(shù)如下:(紅色部分??迹ゝor(i=0;in-1;i+)for(j=i+1;jn;j+)if(ai 大于或小于 aj) 其中if表達(dá)式中:大于表示從大到小排序,小于表示從小到大排序。(5)兩個(gè)數(shù)據(jù)的交換格式:t=a; a=b; b=t;(6)兩個(gè)數(shù)組元素的交換格式:t=ai; ai=aj; aj=t;(7)找最大值:if(maxai) min=ai;61、函數(shù)的功能是:把形參a所指數(shù)組中的奇數(shù)按原順序依次存放到a0、a1、a2、中,把偶數(shù)從數(shù)組
14、中刪除,奇數(shù)個(gè)數(shù)通過函數(shù)返回。#define N 9int fun(int a, int n) int i,j; j = 0; for (i=0; in; i+)/*found*/ if (ai%2=_1_) 填入:1。ai%2結(jié)果為1 表示ai是奇數(shù)。/*found*/ aj = ai; _2_;填入:j+。這個(gè)不多說。 /*found*/ return _3_;填入:j。main() int bN=9,1,4,2,3,6,5,8,7, i, n; n = fun(b, N);71、函數(shù)的功能是:把形參a所指數(shù)組中的偶數(shù)按原順序依次存放到a0、a1、a2、中,把奇數(shù)從數(shù)組中刪除,偶數(shù)個(gè)數(shù)通過
15、函數(shù)返回。#define N 9int fun(int a, int n) int i,j; j = 0; for (i=0; in; i+)/*found*/ if (_1_= 0) 填入:ai%2。/*found*/ _2_ = ai; j+; 填入:aj。 /*found*/ return _3_;填入:j。main() int bN=9,1,4,2,3,6,5,8,7, i, n; n = fun(b, N);64、函數(shù)的功能是:將形參a所指數(shù)組中的前半部分元素中的值和后半部分元素中的值對換。形參n中存放數(shù)組中數(shù)據(jù)的個(gè)數(shù),若n為奇數(shù),則中間的元素不動。例如:a所指數(shù)組中的數(shù)據(jù)依次為:1
16、、2、3、4、6、7、8、9,則調(diào)換后為:6、7、8、9、5、1、2、3、4。#define N 9void fun(int a, int n) int i, t, p;/*found*/ p = (n%2=0)?n/2:n/2+_1_; 填入:1。 for (i=0; in/2; i+) t=ai;/*found*/ ai = ap+_2_; 填入:i。/*found*/ _3_ = t; 填入:ap+i。交換,記住交換的 形式即可做出來。main() int bN=1,2,3,4,5,6,7,8,9, i; fun(b, N);99、函數(shù)的功能是:把形參a所指數(shù)組中的最小值放在元素a0中,
17、接著把形參a所指數(shù)組中的最大值放在a1元素中;再把a(bǔ)所指數(shù)組中的次小值放在a2中,把a(bǔ)所指數(shù)組中的次大值放在a3;以此類推。#define N 9void fun(int a, int n) int i,j, max, min, px, pn, t; for (i=0; in-1; i+=2) /*found*/ max = min = _1_; 填入:a0。 px = pn = i; for (j=i+1; jn; j+) /*found*/ if (max_3_) 填入:aj。 min = aj; pn = j; if (pn != i) t = ai; ai = min; apn = t
18、; if (px = i) px =pn; if (px != i+1) t = ai+1; ai+1 = max; apx = t; main() int bN=9,1,4,2,3,6,5,8,7, i; fun(b, N);68、函數(shù)的功能是:把形參a所指數(shù)組中的最大值放在元素a0中,接著把形參a所指數(shù)組中的最小值放在a1元素中;再把a(bǔ)所指數(shù)組中的次大值放在a2中,把a(bǔ)所指數(shù)組中的次小值放在a3;以此類推。#define N 9/*found*/void fun(int _1_, int n) 填入:aN。此處的 int i, j, max, min, px, pn, t; 形參必須和實(shí)參
19、b一/*found*/ 致。 for (i=0; in-1; i+=_2_)填入:2。 max = min = ai; px = pn = i;/*found*/ for (j=_3_; jn; j+)填入:i+1。有點(diǎn) if (max aj) min = aj; pn = j; if (px != i) t = ai; ai = max; apx = t; if (pn = i) pn= px; if (pn != i+1) t = ai+1; ai+1 = min; apn = t; main() int bN=1,4,2,3,9,6,5,8,7, i; fun(b, N);98、函數(shù)的功
20、能是:逆置數(shù)組元素中的值。例如:若a所指數(shù)組中的數(shù)據(jù)依次為:1、2、3、4、5、6、7、8、9,則逆置后依次為:9、8、7、6、5、4、3、2、1。形參n給出數(shù)組中數(shù)據(jù)的個(gè)數(shù)。void fun(int a, int n) int i,t;/*found*/ for (i=0; i_1_; i+) 填入:n。 t=ai;/*found*/ ai = an-1-_2_; 填入:i。/*found*/ _3_ = t;填入:an-1-i。 main() int b9=1,2,3,4,5,6,7,8,9, i; fun(b, 9);四、二維數(shù)組考題該類題目的重點(diǎn)考點(diǎn):(1)若定義了一個(gè)二維數(shù)組aNM,
21、則N表示行,M表示列。(2)aNM,數(shù)組名a當(dāng)作實(shí)參,則對應(yīng)的形參很多時(shí)候是一個(gè)行指針,其形式為:(*a)M,注意列對應(yīng)。(3)for(i = 0 ; i _2_ ; i+) temp=a0i ;此時(shí)可以發(fā)現(xiàn)i處于二維數(shù)組中列的位置,因此i必定要小于列。4、給定程序中,函數(shù)fun的功能是:將a所指43矩陣中第k行的元素與第0行元素交換。例如,有下列矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 若k為2,程序執(zhí)行結(jié)果為: 7 8 9 4 5 6 1 2 310 11 12 #define N 3#define M 4/*found*/void fun(int (*a)N, int
22、 _1_)填入:k。因?yàn)閍ki = temp ; int i,temp ;此時(shí)使用了k,定義部分無/*found*/則在形參中進(jìn)行定義。 for(i = 0 ; i _2_ ; i+) 填入:N。因?yàn)閍0i中i temp=a0i ;處于列的位置,填入N。/*found*/ a0i = _3_ ;填入:aki。交換的公式: aki = temp ; main() int xMN= 1,2,3,4,5,6,7,8,9,10,11,12 ,i,j; fun(x,2); t=a;a=b;b=t;7、給定程序中,函數(shù)fun的功能是:在34的矩陣中找出在行上最大、在列上最小的那個(gè)元素,若沒有符合條件的元素
23、則輸出相應(yīng)信息。例如,有下列矩陣: 1 2 13 4 7 8 10 6 3 5 9 7 程序執(zhí)行結(jié)果為:find: a22=9#define M 3#define N 4void fun(int (*a)N) int i=0,j,find=0,rmax,c,k; while( (iM) & (!find) rmax=ai0; c=0; for(j=1; jN; j+) if(rmaxaij) /*found*/ rmax=aij; c= _1_ ; 填入:j。 find=1; k=0; while(kM & find) /*found*/ if (k!=i & akc=rmax) find=
24、_2_ ; 填入:0。 k+; /*found*/ _3_ ;填入:i+。 if(!find) printf(not found!n);main() int xMN,i,j; fun(x);注意:這個(gè)題第一、二空比較難,注意方法!20、找出N行N列矩陣中每列元素中的最大值,并按順序依次放在形參b所指的一維數(shù)組中。#define N 4void fun(int (*a)N, int *b) int i,j; for(i=0; iN; i+) /*found*/ bi= _1_;填入:ai0。 for(j=1; jN; j+)/*found*/ if(bi _2_ aji) bi=aji;填入:。
25、求最大 值,在if中用小于,反之用大于。main() int xNN= 12,5,8,7,6,1,9,3,1,2,3,4,2,8,4,3 ,yN,i,j; /*found*/ fun(_3_); 填入:x,y。根據(jù)fun函數(shù)形參 int (*a)N可知傳入的實(shí)參必定是二維數(shù)組名,因此填入 *b可知傳入的是一維數(shù)組名,因此填入y。26、建立一個(gè)NN的矩陣。矩陣元素的構(gòu)成規(guī)律是:最外層元素的值全部為1;從外向內(nèi)第2層元素的值全部為2;第3層元素的值全部為3,依次類推。例如,若N=5,生成的矩陣為:1111112221123211222111111#define N 7/*found*/v
26、oid fun(int (*a) _1_)填入:N。函數(shù)調(diào)用中實(shí)參為x, int i,j,k,m;是一個(gè)二維數(shù)組名,因此形參使 if(N%2=0) m=N/2 ;行指針,行指針與二維數(shù)組中的 else m=N/2+1;列相同,故結(jié)果為int (*a)N。 for(i=0; im; i+) /*found*/ for(j= _2_ ; jN-i; j+)填入:i。 aij=aN-i-1j=i+1; for(k=i+1; kN-i; k+)/*found*/ aki=akN-i-1= _3_;填入:i+1。 main() int xNN=0,i,j; fun(x);注意:這個(gè)題比較難,注意方法!3
27、9、判定形參a所指的NN的矩陣(規(guī)定N為奇數(shù))的矩陣是否是“幻方”,若是,函數(shù)返回值為1;不是,函數(shù)返回值為0?!盎梅健钡呐卸l件是:矩陣每行、每列、主對角線及反對角線上元素之和都相等。例如:以下33的矩陣492357816#define N 3int fun(int (*a)N) int i,j,m1,m2,row,colum; m1=m2=0; for(i=0; iN; i+) j=N-i-1; m1+=aii; m2+=aij; if(m1!=m2) return 0; for(i=0; iN; i+) /*found*/ row=colum= _1_; 填入:0。 for(j=0; j
28、N; j+) row+=aij; colum+=aji; /*found*/ if( (row!=colum) _2_ (row!=m1) ) return 0; 填入:|。 /*found*/ return _3_;填入:1。注意:這個(gè)題比較難,注意方法!main() int xNN,i,j; if(fun(x) printf(The Array is a magic square.n); else printf(The Array isnt a magic square.n);40、給定程序中,函數(shù)fun的功能是:將a所指43矩陣中第k行的元素與第0行元素交換。 例如,有下列矩陣: 1 2
29、 3 4 5 6 7 8 9 10 11 12 若k為2,程序執(zhí)行結(jié)果為: 7 8 9 4 5 6 1 2 3 10 11 1#define N 3#define M 4/*found*/void fun(int (*a)N, int _1_) 填入:k。 int i,temp ;/*found*/ for(i = 0 ; i _2_ ; i+)填入:N。注意i所處的 temp=a0i ;位置,是行還是列。/*found*/ a0i = _3_ ; 填入:aki。典型的交換,簡單。 aki = temp ; main() int xMN= 1,2,3,4,5,6,7,8,9,10,11,12
30、,i,j; fun(x,2);54、給定程序中,函數(shù)fun的功能是:有NN矩陣,以主對角線為對稱線,對稱元素相加并將結(jié)果存放在左下三角元素中,右上三角元素置為0。例如,若N=3,有下列矩陣: 1 2 3 4 5 6 7 8 9 計(jì)算結(jié)果為 1 0 0 6 5 0 10 14 9 #define N 4/*found*/void fun(int (*t)_1_ )填入:N。注意二維數(shù)組 int i, j;數(shù)組名傳遞給形參的形式。 for(i=1; iN; i+) for(j=0; ji; j+) /*found*/ _2_ =tij+tji;填入:tij。比較難。/*found*/ _3_ =0
31、;填入:tji。 main() int tN=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10, i, j; fun(t);57、計(jì)算NN矩陣的主褫角線元素和反向?qū)蔷€元素之和,并作為函數(shù)值返回。注意:要求先累加主對角線元素中的值,然后累加反向?qū)蔷€元素中的值。例如,若N=3,有下列矩陣: 1 2 3 4 5 6 7 8 9fun函數(shù)首先累加1、5、9,然后累加3、5、7,函數(shù)的返回值為30。#define N 4fun(int tN, int n) int i, sum;/*found*/ _1_;填入:sum=0。求和必須賦初值為0。 for(
32、i=0; in; i+)/*found*/ sum+=_2_ ;填入:tii。 for(i=0; in; i+)/*found*/ sum+= tin-i-_3_ ; 填入:1。 return sum;main() int tN=21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10,i,j; printf(The result is: %d,fun(t,N);70、函數(shù)的功能是:有NN矩陣,根據(jù)給定的m(m=N)值,將每行元素中的值均右移m個(gè)位置,左邊置為0。例如,N=3,m=2,有下列矩陣程序執(zhí)行結(jié)果為123001456004789007#define
33、N 4void fun(int (*t)N, int m) int i, j;/*found*/ for(i=0; i=0; j-)/*found*/ tij+_2_ =tij; 填入:m。/*found*/ for(j=0; j_3_; j+) 填入:m。 tij=0; main() int tN=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10, i, j, m; fun(t,m);76、函數(shù)的功能是:有NN矩陣中原色的值按列右移1個(gè)位置,右邊被移出矩陣的元素繞回左邊。例如,N=3,有下列矩陣 程序執(zhí)行結(jié)果為123312456645789978
34、#define N 4void fun(int (*t)N) int i, j, x;/*found*/ for(i=0; i=1; j-) tij=tij-1;/*found*/ ti_3_=x;填入:0。 main() int tN=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10, i, j; fun(t);89、函數(shù)的功能是:有NN矩陣,將矩陣的外圍元素順時(shí)針旋轉(zhuǎn)。操作順序是:首先將第一行元素的值存放臨時(shí)數(shù)組r,然后使第一列稱為第一行,最后一行成為第一列,最后一列稱為最后一行,臨時(shí)數(shù)組中的元素稱為最后一列。例如,N=3,有下列矩陣 程序執(zhí)行
35、結(jié)果為123741456852789963#define N 4void fun(int (*t)N) int j ,rN; for(j=0; jN; j+) rj=t0j; for(j=0; jN; j+)/*found*/ t0N-j-1=tj_1_ ; 填入:0。 for(j=0; j=0;_2_ ) 填入:j-。 tN-1N-1-j=tjN-1; for(j=N-1; j=0; j-)/*found*/ tjN-1=r_3_; 填入:j。main() int tN=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10, i, j; fun(t)
36、;90、函數(shù)的功能是:將NN矩陣主對角線元素中的值與反向?qū)蔷€對應(yīng)位置上元素中的值進(jìn)行交換。例如,N=3,有下列矩陣 程序執(zhí)行結(jié)果為123321456452789987#define N 4/*found*/void fun(int _1_ , int n) 填入:tN。 int i,s;/*found*/ for(_2_; i+) 填入:i=0;i、成員名9、程序通過定義學(xué)生結(jié)構(gòu)體變量,存儲了學(xué)生的學(xué)號、姓名和3門課的成績。函數(shù)的功能是:將形參a所指結(jié)構(gòu)體變量中的數(shù)據(jù)賦值給函數(shù)中的結(jié)構(gòu)體變量b,并修改b中的學(xué)號和姓名,最后輸出修改后的數(shù)據(jù)。例如:a所指變量中的學(xué)號、姓名和三門課的成績依次是:
37、10001、”zhangsan”、95、80、88,則修改后輸出b中的數(shù)據(jù)為10002、”LiSi”、95、80、88。struct student long sno; char name10; float score3;void fun(struct student a) struct student b; int i;/*found*/ b = _1_;填入:a。題目要求將a賦值給b。 b.sno = 10002;/*found*/strcpy(_2_, LiSi);填入:。 /*found*/ for (i=0; isno = 10002; 賦值給了變量t,因此返回值 str
38、cpy(a-name, LiSi); 類型必須和t一致。/*found*/ for (i=0; iscorei。/*found*/ return _3_ ; 填入:a。題目要求返回a中 地址,就是a,不是&a,注意。main() struct student s=10001,ZhangSan, 95, 80, 88, *t; int i; t = fun(&s);33、程序通過定義學(xué)生結(jié)構(gòu)體變量,存儲了學(xué)生的學(xué)號、姓名和3門課的成績。函數(shù)的功能是:將形參a所指結(jié)構(gòu)體變量s中的數(shù)據(jù)進(jìn)行修改,并把a(bǔ)中地址作為函數(shù)值返回主函數(shù),在主函數(shù)中輸出修改后的數(shù)據(jù)。例如:a所指變量中的學(xué)號、姓名和三門課的成績
39、依次是:10001、”zhangsan”、95、80、88,則修改后輸出b中的數(shù)據(jù)為10002、”LiSi”、96、81、89。struct student long sno; char name10; float score3;/*found*/_1_ fun(struct student a) 填入: struct student 。因?yàn)?int i; t = fun(s);函數(shù)將返回結(jié)果 a.sno = 10002; 賦值給了變量t,因此返回值/*found*/ 類型必須和t一致。 strcpy(_2_, LiSi); 填入:。/*found*/ for (i=0; isno
40、。/*found*/ strcpy(b_2_, LiJie);填入:。main() struct student t=10002,ZhangQi, 93, 85, 87; int i;/*found*/ fun(_3_); 填入:&t。因?yàn)樾螀為結(jié)構(gòu)體指針, 故填入的實(shí)參為&t。97、程序通過定義學(xué)生結(jié)構(gòu)體數(shù)組,存儲了若干名學(xué)生的學(xué)號、姓名和3門課的成績。函數(shù)的功能是:將存放學(xué)生數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,按照姓名的字典順序(從小到大)排序。struct student long sno; char name10; float score3;void fun(struct student
41、a, int n)/*found*/ _1_ t;填入:struct student。因?yàn)閠 = ai; 的 int i, j;操作,說明t的類型和數(shù)組a的類型一致。/*found*/ for (i=0; i_2_; i+) 填入:n-1。參考排序的格式。 for (j=i+1; j 0) 填入:,。 t = ai; ai = aj; aj = t; main() struct student s4=10001,ZhangSan, 95, 80, 88,10002,LiSi, 85, 70, 78,10003,CaoKai, 75, 60, 88, 10004,Fa
42、ngFang, 90, 82, 87; int i, j; fun(s, 4);六、鏈表該類題目的重點(diǎn)考點(diǎn):(1)鏈表是特殊的結(jié)構(gòu)體,注意鏈表中的兩個(gè)成員:data表示值,next表示下一個(gè)指針。(2)while(p)相關(guān)于while(p!=NULL)或while(p!=0),表示判斷p有沒有到結(jié)尾,如果到結(jié)尾就是為NULL或0。(3)程序中有while(p)則,必定在循環(huán)體中有p=p-next的語句,相當(dāng)于p+。(4)帶頭結(jié)點(diǎn)的鏈表,會有語句:p=h-next。 不帶頭結(jié)點(diǎn)的鏈表,會有語句:p=h。(5)鏈表排序格式:while(p)q=p-next;while(q) if(p-data 大
43、于或小于 q-data) 大于表示從小到大排序,小于表示從大到小排序。 q=q-next;p=p-next;15、函數(shù)功能是:將帶頭結(jié)點(diǎn)的單向鏈表節(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù)從小到大排序。即若原鏈表節(jié)點(diǎn)數(shù)據(jù)域從頭至尾的數(shù)據(jù)為:10、4、2、8、6,排序后鏈表節(jié)點(diǎn)數(shù)據(jù)域從到至尾的數(shù)據(jù)為:2、4、6、8、10。#define N 6typedef struct node int data; struct node *next; NODE;void fun(NODE *h) NODE *p, *q; int t;/*found*/ p = _1_ ; 填入:h-next。因?yàn)閔是帶頭結(jié)點(diǎn)鏈表。 while (
44、p) /*found*/ q = _2_ ; 填入:p-next。參考鏈表排序格式。 while (q) /*found*/ if (p-data _3_ q-data) 填入:。從小到大排序。 t = p-data; p-data = q-data; q-data = t; q = q-next; p = p-next; main() NODE *head; int aN= 0, 10, 4, 2, 8, 6 ; fun(head);42、函數(shù)功能是:將不帶頭結(jié)點(diǎn)的單向鏈表節(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù)從小到大排序。即若原鏈表節(jié)點(diǎn)數(shù)據(jù)域從頭至尾的數(shù)據(jù)為:10、4、2、8、6,排序后鏈表節(jié)點(diǎn)數(shù)據(jù)域從到至尾
45、的數(shù)據(jù)為:2、4、6、8、10。#define N 6typedef struct node int data; struct node *next; NODE;void fun(NODE *h) NODE *p, *q; int t; p = h;注意這里,因?yàn)槭遣粠ь^結(jié)點(diǎn)的鏈表。 while (p) /*found*/ q = _1_ ;填入:p-next。/*found*/while (_2_) 填入:q。 if (p-data q-data) t = p-data; p-data = q-data; q-data = t; q = q-next; /*found*/ p = _3_ ;
46、填入:p-next。 main() NODE *head; int aN= 0, 10, 4, 2, 8, 6 ; fun(head);43、函數(shù)功能是:將帶頭結(jié)點(diǎn)的單向鏈表逆置。即若原鏈表節(jié)點(diǎn)數(shù)據(jù)域從頭至尾的數(shù)據(jù)為:2、4、6、8、10,排序后鏈表節(jié)點(diǎn)數(shù)據(jù)域從到至尾的數(shù)據(jù)為:10、8、6、4、2。#define N 5typedef struct node int data; struct node *next; NODE;void fun(NODE *h) NODE *p, *q, *r;/*found*/ p = _1_;填入:h-next。/*found*/ if (_2_) retu
47、rn; 填入:p=NULL。 q = p-next; p-next = NULL; while (q) r = q-next; q-next = p;/*found*/ p = q; q = _3_; 填入:q-next。 h-next = p;main() NODE *head; int aN=2,4,6,8,10; fun(head);50、函數(shù)功能是:將不帶頭結(jié)點(diǎn)的單向鏈表逆置。即若原鏈表節(jié)點(diǎn)數(shù)據(jù)域從頭至尾的數(shù)據(jù)為:2、4、6、8、10,排序后鏈表節(jié)點(diǎn)數(shù)據(jù)域從到至尾的數(shù)據(jù)為:10、8、6、4、2。#define N 5typedef struct node int data; struc
48、t node *next; NODE;/*found*/_1_ fun(NODE *h) 填入:NODE *。 NODE *p, *q, *r; p = h; if (p = NULL) return NULL; q = p-next; p-next = NULL;/*found*/ while (_2_) 填入:q。 r = q-next; q-next = p; p = q;/*found*/ q = _3_ ;填入:q-next。 return p;main() NODE *head; int aN=2,4,6,8,10; head=fun(head);56、給定程序中已建立一個(gè)帶頭結(jié)點(diǎn)
49、的單向鏈表,在main函數(shù)中將多次調(diào)用fun函數(shù),每調(diào)用一次fun函數(shù),輸出鏈表尾部節(jié)點(diǎn)中的數(shù)據(jù),并釋放該結(jié)點(diǎn),使鏈表縮短。#define N 8typedef struct list int data; struct list *next; SLIST;void fun( SLIST *p) SLIST *t, *s; t=p-next; s=p; while(t-next != NULL) s=t;/*found*/ t=t-_1_; 填入:next。 /*found*/ printf( %d ,_2_);填入:t-data。 s-next=NULL;/*found*/ free(_3_)
50、;填入:t。main() SLIST *head; int aN=11,12,15,18,19,22,25,29; fun(head); 75、函數(shù)的功能是:統(tǒng)計(jì)出帶頭結(jié)點(diǎn)的單向鏈表中的結(jié)點(diǎn)的個(gè)數(shù),存放在形參n所指的存儲單元中。#define N 8typedef struct list int data; struct list *next; SLIST;void fun( SLIST *h, int *n) SLIST *p;/*found*/ _1_=0; 填入:*n。 p=h-next; while(p) (*n)+;/*found*/ p=p-_2_;填入:next。 main()
51、SLIST *head; int aN=12,87,45,32,91,16,20,48, num; /*found*/ fun(_3_, &num); 填入:head。79、給定程序中已經(jīng)建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中的各結(jié)點(diǎn)按數(shù)據(jù)域遞增有序鏈接。函數(shù)功能為:刪除鏈表中數(shù)據(jù)域相同的結(jié)點(diǎn),使之只保留一個(gè)。#define N 8typedef struct list int data; struct list *next; SLIST;void fun( SLIST *h) SLIST *p, *q; p=h-next; if (p!=NULL) q=p-next; while(q!=NULL
52、) if (p-data=q-data) p-next=q-next;/*found*/ free(_1_);填入:q。/*found*/ q=p-_2_;填入:next。 else p=q;/*found*/ q=q-_3_;填入:next。 main( ) SLIST *head; int aN=1,2,2,3,4,4,4,5; fun(head);85、函數(shù)的功能是:計(jì)算出帶有頭結(jié)點(diǎn)的單向鏈表中各結(jié)點(diǎn)數(shù)據(jù)域中值之和作為函數(shù)值返回。#define N 8typedef struct list int data; struct list *next; SLIST;int fun( SLIST
53、 *h) SLIST *p; int s=0; p=h-next; while(p) /*found*/ s+= p-_1_;填入:data。/*found*/ p=p-_2_; 填入:next。 return s;main() SLIST *head; int aN=12,87,45,32,91,16,20,48; head=creatlist(a); outlist(head);/*found*/ printf(nsum=%dn, fun(_3_);填入:head。86、函數(shù)的功能是:在帶有頭結(jié)點(diǎn)的單向鏈表中,查找數(shù)據(jù)域中值為ch的結(jié)點(diǎn)。找到后通過函數(shù)值返回該結(jié)點(diǎn)在鏈表中所處的順序號;若不
54、存在值為ch的結(jié)點(diǎn),函數(shù)返回0值。#define N 8typedef struct list int data; struct list *next; SLIST;int fun( SLIST *h, char ch) SLIST *p; int n=0; p=h-next;/*found*/ while(p!=_1_) 填入:NULL。 n+;/*found*/ if (p-data=ch) return _2_;填入:n。 else p=p-next; return 0;main() SLIST *head; int k; char ch; char aN=m,p,g,a,w,x,r,d
55、;/*found*/ k=fun(_3_);填空:head,ch。87、給定程序中已經(jīng)建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中的各結(jié)點(diǎn)按數(shù)據(jù)域遞增有序鏈接。函數(shù)功能為:把形參x的值放入一個(gè)新結(jié)點(diǎn)并插入到鏈表中,插入后各結(jié)點(diǎn)數(shù)據(jù)域的值仍保持遞增有序。#define N 8typedef struct list int data; struct list *next; SLIST;void fun( SLIST *h, int x) SLIST *p, *q, *s; s=(SLIST *)malloc(sizeof(SLIST);/*found*/ s-data=_1_;填入:x。 q=h; p=h-
56、next; while(p!=NULL & xp-data) /*found*/ q=_2_;填入:p。 p=p-next; s-next=p;/*found*/ q-next=_3_;填入:s。main() SLIST *head; int x; int aN=11,12,15,18,19,22,25,29; fun(head,x);七、文件該類題目的重點(diǎn)考點(diǎn):(1)文件指針的定義:FILE *fp;FILE必須是大寫的。 填空題中若有_1_ fp; 則必填FILE*。(2)fp = fopen(file1.txt, w);fopen表示打開文件,file1.txt表示要打開的文件名稱,w表
57、示打開文件的方式,w表示以“寫的”方式打開文件。打開文件后必須要關(guān)閉,否則會出現(xiàn)錯誤。(3)fprintf(fp, %s %d %fn, s, a, f); fprintf表示輸出到文件,其小括號中的第一項(xiàng)必須是文件指針,一般是fp。 fscanf(fp,%s%s%s, str, str1, str2); fscanf表示從文件中輸入,其小括號中的第一項(xiàng)必須是文件指針,一般是fp。(4)feof(fp) feof表示測試文件是否到末尾,while()小括號中一般填入while(!feof(fp))(5)fputs(str,fw);表示輸出字符串到fw文件指向的文件中,其中str是存儲字符串的數(shù)
58、組名。fgets(str,81,fr); 表示從fr文件指針指向的文件中,最多讀入81個(gè)字符到str字符數(shù)組中。28、函數(shù)的功能是:將參數(shù)給定的字符串、整數(shù)、浮點(diǎn)數(shù)寫到文本文件中,再用字符串方式從此文本中逐個(gè)讀入,并調(diào)用庫函數(shù)atoi和atof將字符串轉(zhuǎn)換成相應(yīng)的整數(shù)、浮點(diǎn)數(shù),然后將其顯示在屏幕上。void fun(char *s, int a, double f)/*found*/ _1_ fp;填入:FILE*。 char str100, str1100, str2100; int a1; double f1; fp = fopen(file1.txt, w); fprintf(fp, %
59、s %d %fn, s, a, f);/*found*/ _2_ ;填入:fclose(fp)。 fp = fopen(file1.txt, r);/*found*/ fscanf(_3_,%s%s%s, str, str1, str2); 填入:fp。 fclose(fp); a1 = atoi(str1); f1 = atof(str2); printf(nThe result :nn%s %d %fn, str, a1, f1);main() char a10=Hello!; int b=12345; double c= 98.76; fun(a,b,c);32、函數(shù)的功能是:將參數(shù)給定
60、的字符串、整數(shù)、浮點(diǎn)數(shù)寫到文本文件中,再用字符串方式從此文本中逐個(gè)讀入并顯示在終端屏幕上。void fun(char *s, int a, double f)/*found*/ _1_ fp;填入:FILE。 char ch; fp = fopen(file1.txt, w); fprintf(fp, %s %d %fn, s, a, f); fclose(fp); fp = fopen(file1.txt, r); printf(nThe result :nn); ch = fgetc(fp);/*found*/ while (!feof(_2_) 填入:fp。/*found*/ putch
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 便攜式探照燈產(chǎn)品供應(yīng)鏈分析
- 大數(shù)據(jù)分析及應(yīng)用項(xiàng)目教程(Spark SQL)(微課版) 實(shí)訓(xùn)單 實(shí)訓(xùn)1 Hadoop集群環(huán)境搭建
- 光學(xué)閱讀機(jī)產(chǎn)品供應(yīng)鏈分析
- 外語學(xué)習(xí)書籍出版行業(yè)市場調(diào)研分析報(bào)告
- 云梯游樂設(shè)施產(chǎn)品供應(yīng)鏈分析
- 臨時(shí)性商業(yè)管理行業(yè)經(jīng)營分析報(bào)告
- 廢物化學(xué)處理行業(yè)經(jīng)營分析報(bào)告
- 電動和非電動潔面刷商業(yè)機(jī)會挖掘與戰(zhàn)略布局策略研究報(bào)告
- 主要負(fù)責(zé)人年度安全生產(chǎn)工作述職報(bào)告
- 《采集能量》學(xué)歷案
- 醫(yī)院高風(fēng)險(xiǎn)意外事件應(yīng)急措施和救護(hù)機(jī)制
- 一年工作業(yè)績總結(jié)與成長
- 2024年能源安全的新戰(zhàn)略
- 土石方應(yīng)急預(yù)案
- 市場監(jiān)管機(jī)構(gòu)的職責(zé)與作用
- 喪葬行業(yè)的盈利分析
- 年度客艙清潔總結(jié):成功經(jīng)驗(yàn)與不足反思
- 書法等級考試試題含答案一至九級
- 應(yīng)急救援基地項(xiàng)目可行性研究報(bào)告
- 2024年中國電建招聘筆試參考題庫含答案解析
- 風(fēng)險(xiǎn)偏好與投資策略選擇
評論
0/150
提交評論