[計(jì)算機(jī)軟件及應(yīng)用]二級(jí)C語(yǔ)言強(qiáng)化復(fù)習(xí)提綱0223_第1頁(yè)
[計(jì)算機(jī)軟件及應(yīng)用]二級(jí)C語(yǔ)言強(qiáng)化復(fù)習(xí)提綱0223_第2頁(yè)
[計(jì)算機(jī)軟件及應(yīng)用]二級(jí)C語(yǔ)言強(qiáng)化復(fù)習(xí)提綱0223_第3頁(yè)
[計(jì)算機(jī)軟件及應(yīng)用]二級(jí)C語(yǔ)言強(qiáng)化復(fù)習(xí)提綱0223_第4頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱第二章 數(shù)據(jù)及數(shù)據(jù)類型一、常量表示二、宏的使用例 1、2002 年秋填空第 7 題#define N 3#define Y(n)(N+1)*n)則執(zhí)行語(yǔ)句“ z=2*(N+Y(5+1); ”后,z 的值是 _。例 2、2005 年春填空第 10 題#include <stdio.h> #define ADD(x,y) x+y main()int a=15,b=10,c=20,d=5;printf(“n%d”,ADD(a,b)/ADD(c,d);上面程序輸出結(jié)果為 _。第1頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠第三章 數(shù)據(jù)

2、運(yùn)算一、 優(yōu)先級(jí)與結(jié)合性初等運(yùn)算符 -> 單目 ->算術(shù) -> 關(guān)系->邏輯(不含!)->條件 ->賦值 ->逗號(hào)1單目( 1)+和的前后置問(wèn)題( 2)自右向左的結(jié)合性2關(guān)系( 1)a>b>c3邏輯( 1) a&&b&&c( 2) a|b|c4條件第2頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠(1)自右向左的結(jié)合性5賦值( 1) 復(fù)合的賦值運(yùn)算( 2) 賦值( =)與關(guān)系( =)6逗號(hào)(1)表達(dá)式只有一個(gè)值7位運(yùn)算( 1)a<<k 等價(jià)于 a*2k( 2)a>>k 分邏輯右移和算術(shù)右移

3、8. sizeof()例 1、2002 年春選擇第 26 題設(shè)”int x=2,y=3,z=(+x<=y-)?(-y=1)?y-:-y):y- ; ”,則 x,y,z 的值為( A )A 3、0、1B 2、0、0C 3、1、第3頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠1D 2、1、1例 2、2002 年秋填空第 6 題以下程序運(yùn)行后, x,y,z 的值分別為 _1 3 2_int x=0,y=3,z=2;if(x+&&y+) z-;else if(x+1=6|y-) z+;第四章 選擇結(jié)構(gòu)一、 if 括號(hào)中表達(dá)式的真假問(wèn)題二、 if-else 的配對(duì)問(wèn)題三、switch

4、-case結(jié)構(gòu)中 case后面的值;break 的應(yīng)用第五章 循環(huán)結(jié)構(gòu)一、 循環(huán)中 break、continue 的應(yīng)用二、 for、while 循環(huán)第4頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠1.循環(huán)次數(shù)問(wèn)題2.循環(huán)條件缺省3.退出循環(huán)時(shí),循環(huán)因子的值三、小算法素?cái)?shù)、水仙花數(shù)(三位數(shù)拆分) 、完數(shù)(求整數(shù)因子之和) 、最大公約數(shù)(最小公倍數(shù))、逆序數(shù)(回文數(shù))、最值等四、算法應(yīng)用1遞推法例1、 2004 年秋填空題第15 題以下程序采用遞推法計(jì)算10i x2i1x3x 21i 0i!的值,即求的值。其中1!10!( 1)xx 為鍵盤輸入的一個(gè)任意的單精度實(shí)數(shù)。第5頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)

5、化復(fù)習(xí)提綱常子楠#include <stdio.h>main() int i,sign=1; float x,s,t; scanf( “ %f” ,&x); s=_ _;t=x;for(i=1;i<=10; i+) sign=-sign;t=t*sign* _;s+=t;printf(“ s=%6.2f ” ,s);例 2、2005 年春填空題第 15 題以下程序的功能是:計(jì)算11111s 1333444455555666666 的值。22#include <stdio.h>#include <math.h>doublef(intn) int

6、i,j,sign=1;第6頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠double term,sum=0.0;for(i=1; i<=n; i+)term=0;for(j=0;_;j+)term+=i*pow(10,j);/* 組成分母*/sum=sum+sign*_ _;sign=-sign;return sum;void main()printf(nThe“sum=%fn” ,f(6); 2窮舉法例 1、2004 年春填空題第 14 題如果一個(gè)兩位整數(shù)是質(zhì)數(shù),將組成它的兩個(gè)數(shù)字交換位置后形成的第7頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠整數(shù)仍為質(zhì)數(shù),則稱這樣的數(shù)為絕對(duì)質(zhì)數(shù)。例如,13

7、 就是一個(gè)絕對(duì)質(zhì)數(shù)。以下程序用于找出所有兩位絕對(duì)質(zhì)數(shù)。#include <stdio.h>int a_prime(int n) int j,k,m2; m0=n; m1=_; for(j=0; j<2; j+)for(k=mj/2; k>1; k-)if(_) return 0; return 1;main() int i; for(i=10;I<100;I+)if(a_prime(i)printf(“ %d” ,i);第8頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠例2、 2004 年秋填空題第 16 題定理:對(duì)于任意一個(gè)正整數(shù)都可以找到至少一串連續(xù)奇數(shù),它們的和

8、等于該正整數(shù)的立方。例如,33=27=7+9+11,43=64=1+3+5+7+9+11+13+15。以下程序用 2,20 之間的所有正整數(shù)驗(yàn)證該定理。#include <stdio.h>main() long n,i,k,j,p,sum; for(n=2; n<=20; n+) k=n*n*n;for(i=1; i<k/2; i+=2) for(j=i,sum=0; _; j+=2) sum+=j;if(sum=k) printf( n“ %ld*%ld*%ld第9頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠= %ld=“ ,n,n,n,sum);for(p=i;p&l

9、t;_;p+=2) printf(“ %ld+” ,p);printf(“ %ld” ,p);break;if(i>=k/2)printf(n“Error!” );例3、 2005 年春填空題第 16 題以下程序的功能是:尋找并輸出11 至 999 之間所有的整數(shù)m,滿足條件 m、m2、m3 均為回文數(shù)(所謂回文數(shù),是指其各位數(shù)字左右對(duì)稱的整數(shù)。例如, 121、12321 都是回文數(shù))。第10頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠#include <stdio.h>int f(long n) int i=0,j=0,a10;while(n!=0) aj+=n%10;n=_

10、;j-;while(_) if(ai=aj)i+,j-;elsereturn 0;return 1; main() long m;for(m=11;m<1000;m+)if(f(m)&&f(m*m)&&f(m*m*m)printf( “ m=%ld,m*m=%ld, n” ,m,m*m,m*m*m); 3方程求根例 1、2004 年秋填空題 14 題當(dāng) f(x) 的絕對(duì)值小于0.000001第11頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠時(shí),就求得了近似實(shí)根。 (二分法)#include <math.h>#include <stdio.h

11、>double f(double x) return x*x-x-2; double root(double a,double b) double m=(a+b)/2, fo=f(a), x=0;if(fabs(f(m)<1e-6)x=_ _;else if(fo*f(m)>0)a=m;elseb=m;x=root(_);return x;main() printf( n “One root is %lf n” ,root(1,4); 例 2、2005 年春填空題 14 題當(dāng) f(x k+1)的絕對(duì)值小于 0.000001時(shí),第12頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠就

12、求得了近似實(shí)根。(牛頓迭代法)#include <math.h>#include <stdio.h>double f(double x) return x*x-x-2; double f1(doube x) return 2*x-1; double root(double x) double y;if(fabs(f(x)<1e-6)y=_ _;elsey=root(_);return y;main() printf( n “One root is %lf n” ,root(1.0); 4定積分第六章 數(shù)組與字符串第13頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠一、

13、一維數(shù)組1邊界問(wèn)題2相應(yīng)算法( 1)逆置(三種方法)( 2)查找順序查找二分查找(3)插入位置插入按序插入(4)刪除位置刪除按值刪除( 5)排序選擇排序第14頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠冒泡排序插入排序(6)歸并二、二維數(shù)組1矩陣轉(zhuǎn)置上三角下三角2矩陣乘法3最值例1 、2004 年秋填空第 12 題以下程序運(yùn)行時(shí)輸出結(jié)果的第一行是 _,第二行是 _,第三行是 _。#define N3第15頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠main() int i,j,k=1,aNN=0;for(i=0;i<N/2+1; i+)for(j=0;j<=i;j+)aji-j=k+;

14、for(; i<2*N; i+)for(j=i+1-N;j<=N-1;j+)aji-j=k+;for(i=0;i<N; i+)for(j=0;j<N;j+)printf(“ %4d” ,aij);printf(n“” );例 2、2005 年春填空第 12 題以下程序運(yùn)行時(shí)輸出結(jié)果的第二行為 _,第四行為 _,第六行 _。#include <stdio.h>void change(int s33, int d)第16頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠 int i,j,k; if(d=0) for(i=0; i<3; i+)for(j=i+1;j

15、<3;j+) k=sij; sij=sji; sji=k; elsefor(i=0; i<3; i+)for(j=0;j<3-i;j+) k=sij; sij=s2-j2-i; s2-j2-i=k; main() int s33=1,2,3,4,5,6,7,8,9,i,j,k,n;change(s,0);for(i=0; i<3; i+)for(j=0;j<3;j+)printf(“ %4d” ,sij);printf(n“” );change(s,1);for(i=0; i<3; i+)第17頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠for(j=0;j&l

16、t;3;j+)printf(“ %4d” ,sij);printf(n“” );三、字符串處理1字符串處理函數(shù)2字符串匹配定位3字符串的插入、刪除4算法應(yīng)用加密、解密統(tǒng)計(jì)單詞個(gè)數(shù)(統(tǒng)計(jì)數(shù)的個(gè)數(shù))第七章 指針一、指針概念& *例 1、2003 年春選擇第 27 題第18頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠若 有聲 明 語(yǔ) 句”charch=a,*pc=&ch; ”,以下語(yǔ)句有語(yǔ)法錯(cuò)誤的是()A (*pc )+; B ch+=-a+A; C toupper(ch)=ch; D ch+;二、指針對(duì)數(shù)組的訪問(wèn)1一維數(shù)組int aN,*p; p=a;對(duì) ai 元素的引用:下標(biāo)法ai

17、pi地 址 法*(a+i)*(p+i)對(duì)數(shù)組元素的遍歷( 1) for(i-0;i<N;i+)aipi(2)for(i-0;i<N;i+)*(a+i)第19頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠*(p+i)( 3)for(p=a;p<a+N;p+) *p2二維數(shù)組int aMN,*p,*pp;行指針:aa+1列指針: *a*(a+1)*a+1*(a+1)+1a0a1a0+1a1+1元素:a12*(a1+2)*(*(a+1)+2)p=*a;p=a0;pp=a;3int (*p)N;與int *pN;例 1、2003 年秋選擇第 27 題若 有聲明 “ inta5, *b=a

18、,(*c)3,*d3; ”,則在以下表達(dá)式中有語(yǔ)法錯(cuò)第20頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠誤的是()A a0=0 B b0=0 C c0=0 D d0=0三、指針處理字符串例 1.、2003 年春填空第 10 題以下程序運(yùn)行時(shí)輸出第一行是_,第二行是 _。#include <string.h>int convert(char s1,char s2) int i=0,j,s;chartab84=“ 000 ” ,” 001” ,” 010” ,100” , ” 101” , ” 110”, ”111” ;for(i=0,j=0;s1i!=0 ;i+,j=j+3)strcpy

19、(&s2j,tabs1i- 0 );for(i=0,s=0;i<strlen(s2);i+)s=s*2+s2i- 0;第21頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠returns;main() char ss1=” 15” ,ss280; int y; y=convert(ss1,ss2);printf(“n%ds” ,y,ss2);例 2、2003 年春填空第 12 題函數(shù) loop(s,m,n,str)的功能是:對(duì)字符串 str 中,從下標(biāo)為 s 的字符開(kāi)始的所有間隔為m 的字符進(jìn)行循環(huán)左移,即: strs ss+m, strs+m ss+3m,strs+2mss+3m,

20、,strs+(k-1)m ss+km, strs+km ss(k 為整數(shù),下標(biāo) s+km 不越界) , 共做 n 次。第22頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠例如,調(diào)用 loop(1,2,1,str)前后 str中數(shù)據(jù)的變化情況如下:str 中初始數(shù)據(jù):A B C D E F G HI J K移位后 str 數(shù)據(jù):A D C F E H G J I B K#include <stdio.h>#include <string.h>void loop(int s,int m,int n, char*str);main()char buf81;strcpy(buf,

21、” ABCDEFGHIJK” ); puts(buf);loop(1,2,2,buf); puts(buf);void loop(int s,int m,int n, char*str)char c; int k,i,len;len=strlen(str);第23頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠for(i=0; i<n; i+)k=_;c=strk;while(k+m<_) strk=strk+m; k=_; _=c;例 3 2004 年秋填空第 16 題以下程序中函數(shù) strmerge的功能是:合并 a 和 b 兩個(gè)有序的字母字符串(字典序)而產(chǎn)生一個(gè)新的字符串,在合并

22、的過(guò)程中刪除重復(fù)出現(xiàn)的字符,合并后的字符串仍然保持原序并保存到 c 指向的數(shù)組中,函數(shù)返回在合并過(guò)程中刪除的字符個(gè)數(shù)。 main 函數(shù)中輸出合并后的字符串“copy”以第24頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠及在合并過(guò)程中刪除的字符個(gè)數(shù)3。#include <stdio.h>int strmerge(char *a, char *b, char*c)int i=0,j=0,k=0;char t;while(ai!=0&&_)if(ai=bj)t=ai;i+;_; elseif(ai<aj)t=ai+;elset=bj+;if(t!=ck-1)_=t;w

23、hile(ai)if(ai!=ck-1ck+=ai+;elsei+;while(bj)if(bj!=ck-1ck+=bj+;elsej+;ck= 0;第25頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠return_;main()static char s110= ” ccp ” ,s210= ” oppy ” ,s320;int n;n=strmerge(s1,s2,s3);puts(s3);printf(“ %d” ,n);例 4 2004 年秋填空第 6 題以下程序運(yùn)行時(shí)輸出結(jié)果是_。#include <stdio.h>main() char *s, *s1= ” Here ”;

24、 s=s1;while(*s1)s1+;printf(“n%d”,s1-s);第26頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠例 5 2004 年秋填空第 11 題以下程序運(yùn)行時(shí)輸出結(jié)果的第一行是 _,第二行是 _。#include <stdio.h>#include <string.h>void process(char *s1, char *s2, char *s3, int d) int i=0,j=0,len1=strlen(s1), len2=strlen(2),len3=0;while(i<len1&&j<len2)if(d=1&

25、amp;&s1i<s2j|d=2&&s1i> s2j)s3len3+=s1i+;elses3len3+=s2j+;s3len3=0;第27頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠if(i<len1) strcat(s3,&s1i); else strcat(s3,&s2j); void main()chars1= ” bl ” ,s2= ” el ” ,s3= ” lb ” , ,s20;process(s1,s2,s,1); puts(s); process(s3,s4,s,2); puts(s);例 6 2005 年秋填空第 11

26、 題以下程序運(yùn)行時(shí)輸出結(jié)果的第一行為 _,第二行為 _。#include <stdio.h>#include <string.h>int process(char *s1,char *s2, char*s3)inti=0,j=0,len1=strlen(s1),第28頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠len2=strlen(s2), len3=0; for(i=0; i<len1; i+) for(j=0; j<len2; j+)if(s1i=s2j)break;if(j>=len2)s3len3+=s1i;s3len3= 0;returnle

27、n1-len3;void main() char s1= ” bilker ” , s2= ” lr ” ,s320;int n;n=process(s1,s2,s3); puts(s3); printf( n%d“” ,n);例 7 2005 年春填空第 17 題以下程序中函數(shù) str_count的功能是:統(tǒng)計(jì)字符串s2 在字符串 s1 中出第29頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠現(xiàn)的次數(shù)并得到第一次出現(xiàn)的位置。子串出現(xiàn)的次數(shù)通過(guò)指針型形參變量返回給調(diào)用函數(shù),函數(shù)返回值為子串第一次出現(xiàn)的位置下標(biāo)。 Main 函數(shù)中輸出這些信息。#include <stdio.h>#inc

28、lude <string.h>int str_count(char s1, char s2, int *count) int i=0,j=0, flag=0, len1, len2, pos=0, ct=0;char tmp100; len1=strlen(s1);len2=strlen(s2); while(i<=len1-len2)for(j=0;j<len2; j+)/* 依次從 s1 中取與 s2 長(zhǎng)度相同的字符串 */ tmpj=s1i+j;第30頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠tmpj=0;if(_) if(flag=0) pos=i;flag=1

29、; ct+;i=i+j;else_;*count=ct;return pos;void main()chars1= ” habcdefabcdghij” ,s2=” abcint count=0, first=0;first=str_count(s1,s2, _);if(count)printf(“ %sappears %dtimesin%s.nfirstposn” ,s2,count,s1,first);else printf( “not%s be found n” ,s2,s1);第31頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠第八章 函數(shù)一、庫(kù)函數(shù)二、函數(shù)參數(shù)實(shí)參到形參單向傳遞值傳遞地址

30、傳遞例 1 2004 年秋填空第 8 題void swap(int *x, int *y) int t; t=*x; *x=*y; *y=temp; void SWAP( int x, int y) swap(&x,&y); main() int a=10,b=20;SWAP(a,b);printf( “%d,%dn”, a,b);三、返回值第32頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠return 只能帶回一個(gè)值四、變量作用域和生命期作用域:局部變量、全局變量生命期:動(dòng)態(tài)存儲(chǔ)變量、靜態(tài)存儲(chǔ)變量例 12004 年春填空題第 9 題以下程序運(yùn)行時(shí)輸出結(jié)果的第一行是 _,第二行是

31、 _。int c;void f1(int x, int *sum) static int y;x+; y+; c=c+y;*sum=(x+y)/c;main() int a,b=100; for(a=0;a<2;a+)第33頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠 f1(a,&b); printf( “ %d%d%d n” ,a,b,c); 例 2 2004 年秋填空題第 9 題以下程序運(yùn)行時(shí)輸出結(jié)果為:_。#include <stdio.h>void num() extern int x,y;int a=15,b=10;x=a-b;y=a+b;int x,y;ma

32、in()int a=7,b=5;x=a+b; y=a-b;num();printf(“ %d,%dn” ,x,y);第34頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠例 3 2005 年春填寫(xiě)題第 7 題以下程序運(yùn)行時(shí)輸出結(jié)果為:_。#include <stdio.h>int func(int a) static int c=1;c*=a;returnc;void main() int b=1,i;for(i=2; i<4; i+)b=b+func(i);printf(n“%d” ,b);五、遞歸算法:階乘例 12000 年秋填空第 5 題第35頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)

33、提綱常子楠main() int s, p9=1,2,3,4,5,6,7,8,9; printf( n%d“” , add(p,5);add(int *p, int n) if(n=1)return *p;else return *p+add(p+1,n-1);程序輸出結(jié)果是 _。例 2 2000 年秋填空第 8 題fun(int n, int *s) int f1,f2; if(n=1|n=2) *s=1; elsefun(n-1,&f1); fun(n-2, &f2); *s=2*f1+f2+1;printf(n%d,%d“” ,f1,f2);main()第36頁(yè)共53頁(yè)二級(jí)

34、 C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠 int x;fun(4,&x);printf( “n x=%d” ,x);程序運(yùn)行時(shí)輸出的第一行是_,第二行是 _,最后一行是 _。例 3 2001 年春填空第 12 題以下程序?qū)崿F(xiàn)將 a 數(shù)組中后 8 個(gè)元素從大到小排序的功能void sort(int *x, int n)main() int a12=5,3,7,4,2,9,8,32,54,21,6,43, k;sort(_, 8);for(k=0;k<12;k+)printf(“ %d” ,ak);void sort(int *x, int n)第37頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠i

35、nt j,t;if(n=1) return;for(j=1; j<n; j+)if(_) t=x0; x0=xj; xj=t; sort(x+1, _);例 4 2001 年春填空第 8 題以下程序運(yùn)行時(shí)第一行輸出_,第二行輸出 _。void rev(int *p, int n) int t;if(n>1)t=p0; 0=pn-1; pn-1=t; rev(p+1,n-2); main() int j,a5=1,2,3,4,5; rev(a+1,4);for(j=0;j<5;j+)第38頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠printf(“ %d” ,aj);printf

36、(n“”;rev(a,3);for(j=0;j<5;j+)printf(“ %d” ,aj);例 5 2002 年秋填空題第 11 題main() int a33,i,j; numlist(&a00,9); for(i=0; i<3; i+) for(j=0; j<3; j+) printf( “ %d,” , aij);printf(n“” );numlist(int *p, int n) int i;for(i=0; i<n; i+) pi=num(i);第39頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠num(int n) if(n=0) return 1;

37、 return num(n-1)*2+1;程序運(yùn)行時(shí)輸出的第一行是_。六 函數(shù)指針int *p();與 int (*p)();第九章 構(gòu)造數(shù)據(jù)類型一、結(jié)構(gòu)體例 1 2004 年秋填空題第 18 題以下程序統(tǒng)計(jì)結(jié)構(gòu)數(shù)組pu 中g(shù)rade的每一個(gè)分值檔次的人數(shù), 若程序正確,輸出結(jié)果應(yīng)為:gradenumbers of person第40頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠221231#include <stdio.h>typedef struct int id;int grade;STUD;void main()_pu5=18,2,19,2,17,1,21,1, 22,3,*p

38、;int i, gd5, ct5=0, tmp, count;count=1;gd0=pu0.grade;ct0=1;for(p=pu+1; p<pu+5; p+) tmp=_; for(i=0; i<count; i+)if(gdi=tmp) break; if(i>=count)第41頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠 gdcount=tmp; ctcount=1; count+;else_;printf( “ grade numbers of person ” );for(i=0; i<count; i+) printf( n “%2d%10d” , gd

39、i, cti);printf(n”“ );例 205 年春填空第 18 題按 grade 的值從大到小用選擇法排序。#include<stdio.h>_structintid;intgrade;第42頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠STUD;void main()STUDpu10=1,4,2,9,3,1,4,5,5,3,6,2,7,8,8,6,9,5,10,2,temp; int I,j,k;for(I=0;I<9;I+) k=_ _;for(j=I+1;j<10;j+)if(_)k=j;if(k!=I)temp=puI; puI=puk; puk=temp;

40、 for(I=0;I<10;I+)printf( “n %2d: %d”,puI.id,puI.grad e);printf( “n”);第43頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠二、單鏈表1建表頭插法尾插法2插入p 結(jié)點(diǎn)之后插入p 結(jié)點(diǎn)之前插入3刪除例 1 2003 年秋填空第 17 題設(shè)有一個(gè)線性單鏈表的結(jié)點(diǎn)定義如下:struct node int d;struct node *next; ;函 數(shù)intcopy_dellist(struct node第44頁(yè)共53頁(yè)二級(jí) C 語(yǔ)言強(qiáng)化復(fù)習(xí)提綱常子楠*head, int x)的功能是:將 head指向的單鏈表中存儲(chǔ)的所有整數(shù)從小到大依次復(fù)制到x 指向的整形數(shù)組中并撤消該鏈表;函數(shù)返回復(fù)制到 x 數(shù)組中的整數(shù)個(gè)數(shù)。算法:找出鏈表中數(shù)值最小的結(jié)點(diǎn),將其值存儲(chǔ)到 x 數(shù)組中,再將該結(jié)點(diǎn)從鏈表中刪除,重復(fù)以上操作直到鏈表為空為止。int copy_dellist(struct node *head, int x)struct node *pk, *pj, *pm, *pn;int data, k=0;while(head!=0)pk=head; data=pk->d; pn=pk; while(_!=0) pj=pk->

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論