



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、習(xí)題一1.1請(qǐng)根據(jù)自己的認(rèn)識(shí),寫出C 語言的主要特點(diǎn)。1.2C 語言的主要用途是什么?它和其他高級(jí)語言有什么異同?1.3寫出一個(gè) C 程序的構(gòu)成。1.4C 語言以函數(shù)為程序的基本單位,有什么好處?1.5請(qǐng)參照本章例題,編寫一個(gè)C 程序,輸出以下信息:*Very good !*1.6編寫一個(gè)C 程序,輸入a、 b、 c 3 個(gè)值,輸出其中最大者。1.7上機(jī)運(yùn)行本章3 個(gè)例題,熟悉所用系統(tǒng)的上機(jī)方法與步驟。1.8上機(jī)運(yùn)行本章習(xí)題1.5 和 1.6。習(xí)題二2.1什么是算法?試從日常生活中找3 個(gè)例子,描述它們的算法。2.2什么叫結(jié)構(gòu)化的算法?為什么要提倡結(jié)構(gòu)化的算法?2.3試述三種基本結(jié)構(gòu)的特點(diǎn),你
2、能否自己另外設(shè)計(jì)兩種基本結(jié)構(gòu)(要符合基本結(jié)構(gòu)的特點(diǎn))。2.4用傳統(tǒng)流程圖表示求解以下問題的算法。(1)有兩個(gè)瓶子 A 和 B,分別盛放醋和醬油,要求將它們互換(即 A 瓶原來盛醋,現(xiàn)改盛醬油, B 瓶則相反 )。(2) 依次將 10 個(gè)數(shù)輸入,要求將其中最大的數(shù)打印出來。(3) 有三個(gè)數(shù) a、b、 c,要求按大小順序把它們打印出來。(4) 求 1+2+3+ +100 。(5) 判斷一個(gè)數(shù) n 能否同時(shí)被 3 和 5 整除。(6) 將 100 200 之間的素?cái)?shù)打印出來。(7) 求兩個(gè)數(shù) m 和 n 的最大公約數(shù)。(8) 求方程式 ax2 +bx+c=0 的根。分別考慮:有兩個(gè)不等的實(shí)根;有兩個(gè)
3、相等的實(shí)根。2.5用 N-S 圖表示 2.4 題中各題的算法。2.6用偽代碼表示 2.4 題中各題的算法。2.7什么叫結(jié)構(gòu)化程序設(shè)計(jì)?它的主要內(nèi)容是什么?2.8用自頂向下、逐步細(xì)化的方法進(jìn)行以下算法的設(shè)計(jì):(1)打印出 1900 2000 年中是閏年的年份,閏年的條件是:能被4 整除但不能被100 整除;或能被 100 整除且能被 400 整除。(2) 求 ax2+bx+c=0 的根。分別考慮 d=b 2-4ac 大于 0、等于 0 和小于 0 三種情況。(3) 輸入 10 個(gè)數(shù),找出最大的一個(gè)數(shù),并打印出來。習(xí)題三3.1請(qǐng)將 C 語言的數(shù)據(jù)類型和其他高級(jí)語言的數(shù)據(jù)類型做比較。C 有哪些特點(diǎn)?
4、3.2C 語言為什么要規(guī)定對(duì)所有用到的變量要“先定義,后使用 ”。這樣做有什么好處?3.3請(qǐng)將下面各數(shù)用八進(jìn)制和十六進(jìn)制數(shù)(補(bǔ)碼 )表示:(1)10(2)32(3)75(4)-617(5)-111(6)2483(7)-28654 (8)210033.4將以下三個(gè)整數(shù)分別賦給不同類型的變量,請(qǐng)畫出賦值后數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式。變量的類型25-232769int 型 (16 位 )long 型(32 位 )sort 型 (16 位 )signed char(8 位 )unsigned int 型unsigned long 型unsigned short 型unsigned char 型注:如沒有學(xué)
5、過二進(jìn)制數(shù)和補(bǔ)碼的,此題可不做。3.5字符常量與字符串常量有什么區(qū)別?3.6寫出以下程序運(yùn)行的結(jié)果。main()char c1= a,c2=b,c3=c,c4=101,c5=116;printf(“a%c b%ctc%ctabcn ”,c1,c2,c3);printf(“tb%c %c ”,c4,c5);3.7要將“ China ”譯成密碼, 密碼規(guī)律成: 用原來的字母后面第4 個(gè)字母代替原來的字母。例如,字母 “A ”后面第 4 個(gè)字母是 “ E”,用“ E”代替“ A”。因此,“ China”應(yīng)譯為 “ Glmre ”。請(qǐng)編一程序,用賦初值的方法使c1、c2、 c3、 c4、 c5 五個(gè)變
6、量的值分別為C、 h、 i 、n、 a,經(jīng)過運(yùn)算,使 c1、 c2、c3、 c4、 c5 分別變?yōu)?G、 l、 m、 r 、 e,并輸出。3.8例 3.6 能否改成如下:main()int c1,c2;(原為 char c1,c2)c1=97;c2=98;printf( “%c %cn ”,c1,c2);printf( “%d %dn ”,c1,c2);分析運(yùn)行時(shí)會(huì)顯示什么信息?為什么?3.9求下面算術(shù)表達(dá)式的值。(1) x+a%3* (int)(x+y)%2/4 設(shè) x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y設(shè) a=2,b=3,x=3.5,y
7、=2.5 3.10 寫出程序運(yùn)行結(jié)果。main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf( “%d,%d,%d,%d ”,i,j,m,n);3.11寫出下面賦值的結(jié)果。格中寫了數(shù)值的是要將它賦給其他類型變量,將所有空格填上賦值后的數(shù)值。int9942chard×unsigned int7665535float53.65long int683.12 寫出下面表達(dá)式運(yùn)算后a 的值,設(shè)原來a=12。設(shè) a 和 n 已定義為整型變量。(1)a+=a(2)a-=2(3)a*=2+3(4)a/=a+a(5)a%=(n%=2),n 的值等于 5(6)a+=a-=
8、a* =a習(xí)題四4.1C 語言中的語句有哪幾類?C 語句與其他語言中的語句有哪些異同?4.2 怎樣區(qū)分表達(dá)式和表達(dá)式語句? C 語言為什么要設(shè)表達(dá)式語句?什么時(shí)候用表達(dá)式,什么時(shí)候用表達(dá)式語句?4.3C 語言為什么要把輸入輸出的功能作為函數(shù),而不作為語言的基本部分?4.4若 a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b.想得到以下的輸出格式和結(jié)果,請(qǐng)寫出程序(包括定義變量類型和設(shè)計(jì)輸出)。要求輸出的結(jié)果如下:a= 3 b= 4 c= 5x=1.200000,y=2.400000,z=-3.600000x+y= 3.60 y+
9、z=-1.20 z+x=-2.40u= 51274 n= 128765c1=a or 97(ASCII)c2=B or 98(ASCII)4.5請(qǐng)寫出下面程序的輸出結(jié)果:main()int a=5,b=7;float x=67.8564,y=-789.124;char c=A;long n=1234567;unsigned u=65535;printf( “%d%dn,a,b);printf( “%3d%3dn ”a,b);printf( “%f,%fn ”,x,y);printf( “%-10f,%-10fn ”,x,y);printf( “%8.2f,%8.2f,%.4f,%.4f,%3f
10、,%3fn”,x,y,x,y,x,y);printf( “%e,%10.2en”,x,y);printf( “%c,%d,%o,%xn ”,c,c,c,c);printf( “%ld,%lo,%xn ”,n,n,n);printf( “%u,%o,%x,%dn ”,u,u,u,u);printf( “%s,%5.3sn”, “COMPUTER ”, “COMPUTER ”);4.6用下面的scanf 函數(shù)輸入數(shù)據(jù),使a=3,b=7, x=8.5,y=71.82 ,c1=A,C2= a。問在鍵盤上如何輸入?main()int a,b;float x,y;char c1,c2;scanf(“a=%
11、d b=%d”,&a,&b);scanf(“ %f %e”,&x,&y);scanf(“ %c %c”,&c1,&c2);4.7 用下面的 scanf 函數(shù)輸入數(shù)據(jù), 使 a=10,b=20,c1= A,c2=a,x=1.5,y= -3.75 ,z=67.8 ,請(qǐng)問在鍵盤上如何輸入數(shù)據(jù)?scanf(“%5d%5d%c%c%f%f%*f,%f”,&a,&b,&c1,&c2,&x,&y,&z);4.8設(shè)圓半徑r=1.5,圓柱高 h=3,求圓周長(zhǎng)、圓面積、圓球表面積、圓球體積、圓柱體積。用 sca
12、nf 輸入數(shù)據(jù),輸出計(jì)算結(jié)果,輸出時(shí)要求有文字說明,取小數(shù)點(diǎn)后2 位數(shù)字。請(qǐng)編程序。4.9 輸入一個(gè)華氏溫度,要求輸出攝氏溫度。公式為c=5 ( F-32)92 位小數(shù)。輸出要有文字說明,取4.10 編程序,用getchar 函數(shù)讀入兩個(gè)字符給 c1、c2,然后分別用putchar 函數(shù)和 printf 函數(shù)輸出這兩個(gè)字符。并思考以下問題:( 1)變量 c1、c2 應(yīng)定義為字符型或整型?或二者皆可?( 2)要求輸出 c1和 c2 值的 ASCII 碼,應(yīng)如何處理?用 putchar 函數(shù)還是 printf 函數(shù)?(3)整型變量與字符變量是否在任何情況下都可以互相代替?如:char c1,c2;
13、與 int c1,c2;是否無條件地等價(jià)?習(xí)題五5.1什么是算術(shù)運(yùn)算?什么是關(guān)系運(yùn)算?什么是邏輯運(yùn)算?5.2C 語言中如何表示“真”和“假”?系統(tǒng)如何判斷一個(gè)量的“真”和“假”?5.3寫出下面各邏輯表達(dá)式的值。設(shè)a=3, b=4 ,c=5。(1) a+b>c&&b= =c(2) a| |b+c&&b-c(3) ! (a>b)&&! c| |1(4) ! (x=a)&&(y=b)&&0(5) ! (a+b)+c-1&&b+c/25.4有 3 個(gè)整數(shù) a、 b、 c,由鍵盤輸入,輸出其中最大
14、的數(shù)。5.5有一函數(shù)x(x<1)y=2x-1(1 x<10)3x-11(x 10)寫一程序,輸入x,輸出 y 值。5.6給出一百分制成績(jī),要求輸出成績(jī)等級(jí)A、B 、C、D 、E。90 分以上為 A,8089 分為 B , 70 79 分為 C, 60 69 分為 D,60 分以下為 E。5.7給一個(gè)不多于5 位的正整數(shù),要求:求出它是幾位數(shù);分別打印出每一位數(shù)字;按逆序打印出各位數(shù)字,例如原數(shù)為321,應(yīng)輸出123。5.8企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)I 低于或等于10 萬元的,獎(jiǎng)金可提10%;利潤(rùn)高于 10 萬元,低于20 萬元( 100000<I 200000)時(shí),低于
15、10 萬元的部分按10%提成,高于100000 元的部分,可提成 7.5%; 200000<I 400000 時(shí),低于 20 萬元的部分仍按上述辦法提成(下同) 。高于 20 萬元的部分按 5%提成; 400000< I 600000 時(shí),高于 40 萬元的部分按 3%提成; 600000<I 1000000 時(shí),高于 60 萬元的部分按 1.5%提成。從鍵盤輸入當(dāng)月利潤(rùn) I ,求應(yīng)發(fā)獎(jiǎng)金總數(shù)。要求: (1)用 if 語句編程序; (2) 用 switch 語句編程序。5.9輸入 4 個(gè)整數(shù),要求按從小到大的順序輸出。5.10 有 4 個(gè)圓塔,圓心分別為( 2,2),(-2,
16、 2),( -2, -2),(2, -2),圓半徑為 1。 (見下圖) 。這 4 個(gè)塔的高度為 10m,塔以外無建筑物。今輸入任一點(diǎn)的坐標(biāo),求該點(diǎn)的建筑高度(塔外的高度為零) 。y2-202x-2習(xí)題六6.1輸入兩個(gè)正整數(shù) m 和 n,求其最大公約數(shù)和最小公倍數(shù)。6.2輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其他字符的個(gè)數(shù)。6.3求 Sn=a+aa+aaa+ +aa (an 個(gè) a)之值,其中 a 是一個(gè)數(shù)字。 例如:2+22+222+2222+22222(此時(shí) n=5), n 由鍵盤輸入。206.4求n! (即求 1! +2 !+3! +4!+ +20 ?。?。n 110050k 2
17、106.5 求k +k 1k 1k 11。k6.6打印出所有的“水仙花數(shù)” ,所謂“水仙花數(shù)”是指一個(gè)3 位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如, 153 是一水仙花數(shù),因?yàn)?153=13+53+33。6.7一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如, 6 的因子為 1、 2、3,而 6=1+2+3 ,因此 6 是“完數(shù)” 。編程序找出 1000 之內(nèi)的所有完數(shù),并按下面格式輸出其因子:6 ins factors are 1, 2, 36.8有一分?jǐn)?shù)序列2 , 3, 5,8,13, 21, 1235813求出這個(gè)數(shù)列的前20 項(xiàng)之和。6.9一球從 100m高度自由落下,每次落
18、地后反跳回原高度的一半,再落下。求它在第10次落地時(shí),共經(jīng)過多少米?第10 次反彈多高?6.10猴子吃桃問題。猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。 以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10 天早上想再吃時(shí),就只剩一個(gè)桃子了。求第一天共摘多少桃子。6.11用迭代法求x=a 。求平方根的迭代公式為1axn+1= (X n+)2 xn要求前后兩次求出的x 的差的絕對(duì)值小于10-5 。6.12用牛頓迭代法求下面方程在1.5 附近的根。2x3-4x 2+3x-6=06.13用二分法求下面方程在(-10, 10)之間的根
19、。322x -4x +3x-6=06.14打印出以下圖案。*6.15兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出3 人。甲隊(duì)為A 、B 、 C 3已抽簽決定比賽名單。 有人向隊(duì)員打聽比賽的名單, A 說他不和請(qǐng)編程序找出 3 對(duì)賽手的名單。人,乙隊(duì)為 X、Y、Z 3 人。 X 比,C 說他不和 X 、Z 比,習(xí)題七7.1用篩法求 100 之內(nèi)的素?cái)?shù)。7.2用選擇法對(duì) 10 個(gè)整數(shù)排序。7.3求一個(gè) 3× 3 的整形矩陣對(duì)角線元素之和。7.4已有一個(gè)已排好序的數(shù)組,今輸入一個(gè)數(shù),要求按原來排序的規(guī)律將它插入數(shù)組中。7.5將一個(gè)數(shù)組中的值按逆序重新存放。例如,原來順序?yàn)?, 6,5, 4, 1。要求改為1
20、,4, 5, 6, 8。7.6打印出以下的楊輝三角形(要求打印出10 行)。1111211331146411510 10517.7打印“魔方陣” 。所謂魔方陣是指這樣的方陣,它的每一行、每一列和對(duì)角線之和均相等。例如,三階魔方陣為816357492要求打印出由1 到 n2 的自然數(shù)構(gòu)成的魔方陣。7.8 找出一個(gè)二維數(shù)組中的鞍點(diǎn),即該位置上的元素在該行上最大,在該列上最小。也可能沒有鞍點(diǎn)。7.9有 15 個(gè)數(shù)按由大到小順序存放在一個(gè)數(shù)組中,輸入一個(gè)數(shù),要求用折半查找法找出該數(shù)是數(shù)組中第幾個(gè)元素的值。如果該數(shù)不在數(shù)組中,則打印出“無此數(shù)”。7.10 有一篇文章,共有 3 行文字,每行有 80 個(gè)字
21、符。要求分別統(tǒng)計(jì)出其中英文大寫字母、小寫字母、數(shù)字、空格以及其他字符的個(gè)數(shù)。7.11打印以下圖案:* * *7.12有一行電文,已按下面規(guī)律譯成密碼:AZazBYbyCXcx即第 1 個(gè)字母變成第26 個(gè)字母,第 i 個(gè)字母變成第( 26-i+1 )個(gè)字母。非字母字符不變。要求編程序?qū)⒚艽a譯回原文,并打印出密碼和原文。7.13編一程序,將兩個(gè)字符串連接起來,不要用strcat 函數(shù)。7.14編一個(gè)程序,將兩個(gè)字符串s1 和 s2 比較,如果 s1>s2,輸出一個(gè)正數(shù);s1=s2,輸出0;s1<s2,輸出一個(gè)負(fù)數(shù)。不要用strcpy 函數(shù)。兩個(gè)字符串用 gets 函數(shù)讀入。輸出的正數(shù)
22、或負(fù)數(shù)的絕對(duì)值應(yīng)是相比較的兩個(gè)字符串相應(yīng)字符的ASCII 碼的差值。例如, ”A”與 ”C”相比,由于 ”A ”<”C”,應(yīng)輸出負(fù)數(shù),由于A與 C的 ASCII碼差值為 2,因此應(yīng)輸出“ -2”。同理:“And ”和“ Aid ”比較,根據(jù)第2 個(gè)字符比較結(jié)果, “ n”比“ i”大 5,因此應(yīng)輸出“ 5”。7.15 編寫一個(gè)程序, 將字符數(shù)組s2 中的全部字符拷貝到字符數(shù)組s1 中。不用 strcpy 函數(shù)??截悤r(shí), 0也要拷貝過去。0后面的字符不拷貝。習(xí)題八8.1寫兩個(gè)函數(shù),分別求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),用主函數(shù)調(diào)用這兩個(gè)函數(shù),并輸出結(jié)果,兩個(gè)整數(shù)由鍵盤輸入。8.2求方程
23、ax2+bx+c=0的根。用 3 個(gè)函數(shù)分別求當(dāng) b2-4ac 大于 0、等于 0 和小于 0 時(shí)的根并輸出結(jié)果。從主函數(shù)輸入a、b、 c 的值。8.3寫一個(gè)判素?cái)?shù)的函數(shù),在主函數(shù)輸入一個(gè)整數(shù),輸出是否素?cái)?shù)的信息。8.4寫一函數(shù),使給定的一個(gè)二維整形數(shù)組(3× 3)轉(zhuǎn)置,即行列互換。8.5寫一函數(shù),使輸入的一個(gè)字符串按反序存放,在主函數(shù)中輸入和輸出字符串。8.6寫一函數(shù),將兩個(gè)字符串連接。8.7 寫一函數(shù),將一個(gè)字符串中的元音字母復(fù)制到另一字符串,然后輸出。8.8寫一函數(shù),輸入一個(gè)4 位數(shù)字,要求輸出這 4 個(gè)數(shù)字字符,但每?jī)蓚€(gè)數(shù)字間空一個(gè)空格。如輸入 1990 ,應(yīng)輸出“ 1 9
24、9 0”。8.9編寫一函數(shù),由實(shí)參傳來一個(gè)字符串,統(tǒng)計(jì)此字符串中字母、數(shù)字、空格和其他字符的個(gè)數(shù),在主函數(shù)中輸入字符串以及輸出上述的結(jié)果。8.10寫一函數(shù),輸入一行字符,將此字符串中最長(zhǎng)的單詞輸出。8.11寫一函數(shù),用“起泡法”對(duì)輸入的10個(gè)字符按由小到大順序排列。8.12用牛頓迭代法求根。方程為321、 2、 3、ax +bx +cx+d=0,系數(shù) a、 b、 c、 d 的值依次為4,由主函數(shù)輸入。求x 在 1 附近的一個(gè)實(shí)根。求出根后由主函數(shù)輸出。8.13用遞歸方法求n 階勒讓德多項(xiàng)式的值,遞歸公式為1(n=0)n( x) = x(n=1)P( 2n-1 )?x- Pn-1 (x)-(n-
25、1)?Pn-2 (x) ) /n (n 1)8.14輸入 10 個(gè)學(xué)生 5 門課的成績(jī),分別用函數(shù)求:每個(gè)學(xué)生平均分;每門課的平均12xi2分;找出最高的分?jǐn)?shù)所對(duì)應(yīng)的學(xué)生和課程;求平均分方差: = n xi- (n) ,iX 為某一學(xué)生的平均分。8.15寫幾個(gè)函數(shù):輸入10 個(gè)職工的姓名和職工號(hào);按職工號(hào)由小到大順序排序,姓名順序也隨之調(diào)整; 要求輸入一個(gè)職工號(hào),用折半查找法找出該職工的姓名,從主函數(shù)輸入要查找的職工號(hào),輸出該職工姓名。8.16寫一函數(shù),輸入一個(gè)十六進(jìn)制數(shù),輸出相應(yīng)的十進(jìn)制數(shù)。8.17用遞歸法將一個(gè)整數(shù)n 轉(zhuǎn)換成字符串。例如,輸入483,應(yīng)輸出字符串“483”。 n 的位數(shù)不確
26、定,可以是任意位數(shù)的整數(shù)。8.18給出年、月、日,計(jì)算該日是該年的第n 天。習(xí)題九9.1 定義一個(gè)帶參數(shù)的宏,使兩個(gè)參數(shù)的值互換,并寫出程序,輸入兩個(gè)數(shù)作為使用宏時(shí)的實(shí)參。輸出已交換后的兩個(gè)值。9.2輸入兩個(gè)整數(shù),求它們相除的余數(shù)。用帶參的宏來實(shí)現(xiàn),編程序。9.3三角形的面積為area=s (s a) ( s b) ( s c)1(a+b+c) , a、 b、 c 為三角形的三邊。定義兩個(gè)帶參數(shù)的宏,一個(gè)用來求s,另一其中, s=2個(gè)宏用來求area。寫程序,在程序中用帶實(shí)參的宏名來求面積area。9.4給年份 year,定義一個(gè)宏,以判別該年份是否閏年。提示:宏名可定為L(zhǎng)EAP_YEAR ,
27、形參為y,即定義宏的形式為#define LEAP_YEAR(y) (讀者設(shè)計(jì)的字符串)在程序中用以下語句輸出結(jié)果:if (LEAP_YEAR(year) printf(“%d is a leap year”,year);else printf( “%d is not a leap year”,year);9.6請(qǐng)分析以下一組宏所定義的輸出格式:#define NL putchar( n)#define PR(format,value) printf ( “value=%formatt ”,(value)#define PRINT1(f,x1)PR(f,x1);NL#define PRINT2
28、(f,x1,x2)PR(f,x1);PRINT1(f,x2)如果在程序中有以下的宏引用:PR( d,x) ;PRINT1(d,x);PRINT2(d,x1,x2);寫出宏展開后的情況,并寫出應(yīng)輸出的結(jié)果,設(shè)x=5, x1=3, x2=8 。9.7請(qǐng)?jiān)O(shè)計(jì)輸出實(shí)數(shù)的格式,包括:( 1)一行輸出 1 個(gè)實(shí)數(shù);( 2)一行內(nèi)輸出2 個(gè)實(shí)數(shù);( 3)一行內(nèi)輸出 3 個(gè)實(shí)數(shù)。實(shí)數(shù)用“ %6.2f ”格式輸出。9.8設(shè)計(jì)所需的各種各樣的輸出格式(包括整數(shù)、實(shí)數(shù)、字符串等),用一個(gè)文件名”format.h ”,把這些信息都放到此文件內(nèi),另編一個(gè)程序文件, 用 #include ”format.h ”命令以確保
29、能使用這些格式。9.7分別用函數(shù)和帶參的宏,從3 個(gè)數(shù)中找出最大數(shù)。9.9試述“文件包含”和程序文件的連接(link )的概念,二者有何不同?9.10用條件編譯方法實(shí)現(xiàn)以下功能:輸入一行電報(bào)文字, 可以任選兩種輸出:一為原文輸出; 一為將字母變成其下一字母 (如 a變成 b z變成 a。其他字符不變) 。用 #define 命令來控制是否要譯成密碼。例如:#define CHANGE1則輸出密碼。若#define CHANGE0則不譯成密碼,按原碼輸出。習(xí)題十10.1輸入 3個(gè)整數(shù),按由小到大的順序輸出。10.2輸入 3個(gè)字符串,按由小到大的順序輸出。10.3輸入 10 個(gè)整數(shù),將其中最小的數(shù)
30、與第一個(gè)數(shù)對(duì)換,把最大的數(shù)與最后一個(gè)數(shù)對(duì)換。寫 3 個(gè)函數(shù):輸入 10 個(gè)數(shù);進(jìn)行處理;輸出10 個(gè)數(shù)。10.4有 n 個(gè)整數(shù), 使前面各數(shù)順序向后移m個(gè)位置, 最后 m個(gè)數(shù)變成最前面 m個(gè)數(shù),見下圖。寫一函數(shù)實(shí)現(xiàn)以上功能,在主函數(shù)中輸入n 個(gè)整數(shù)和輸出調(diào)整后的n 個(gè)數(shù)。n-mm10.5有 n 個(gè)人圍成一圈,順序排號(hào)。從第1 個(gè)人開始報(bào)數(shù)(從1 到 3 報(bào)數(shù)),凡報(bào)到 3 的人退出圈子,問最后留下的是原來第幾號(hào)的那位。10.6寫一函數(shù),求一個(gè)字符串的長(zhǎng)度。在main 函數(shù)中輸入字符串,并輸出其長(zhǎng)度。10.7有一字符串, 包含 n 個(gè)字符。 寫一函數(shù), 將此字符串中從第m個(gè)字符開始的全部字符復(fù)制
31、成為另一個(gè)字符串。10.8輸入一行文字,找出其中大寫字母、小寫字母、空格、數(shù)字以及其他字符各有多少?10.9寫一函數(shù),將一個(gè) 3×3 的整形矩陣轉(zhuǎn)置。10.10將一個(gè) 5× 5 的矩陣中最大的元素放在中心,4 個(gè)角分別放4 個(gè)最小的元素(順序?yàn)閺淖蟮接?,從上到下順序依次從小到大存放),寫一函?shù)實(shí)現(xiàn)之。用main 函數(shù)調(diào)用。10.11在主函數(shù)中輸入 10 個(gè)等長(zhǎng)的字符串。 用另一函數(shù)對(duì)它們排序。然后在主函數(shù)輸出這10 個(gè)已排好序的字符串。10.12用指針數(shù)組處理上一題目,字符串不等長(zhǎng)。10.13寫一個(gè)用矩形法求定積分的通用函數(shù),分別求112 xdxsin xdx , cos
32、xdx ,0 e01(說明: sin 、 cos 、exp 已在系統(tǒng)的數(shù)學(xué)函數(shù)庫中,程序開頭要用#include<math.h> )。10.14將 n 個(gè)數(shù)按輸入時(shí)順序的逆序排列,用函數(shù)實(shí)現(xiàn)。10.15有一個(gè)班 4 個(gè)學(xué)生, 5 門課。 求第一門課的平均分;找出有2 門以上課程不及格的學(xué)生,輸出他們的學(xué)號(hào)和全部課程成績(jī)和平均成績(jī);找出平均成績(jī)?cè)?0 分以上或全部課程成績(jī)?cè)?5 分以上的學(xué)生。分別編3 個(gè)函數(shù)實(shí)現(xiàn)以上 3 個(gè)要求。10.16輸入一個(gè)字符串,內(nèi)有數(shù)字和非數(shù)字字符,如a123x456 17960?302tab5876將其中連續(xù)的數(shù)字作為一個(gè)整數(shù),依次存放到一數(shù)組a 中。例
33、如, 123放在 a0 ,456 放在a1 統(tǒng)計(jì)共有多少個(gè)整數(shù),并輸出這些數(shù)。10.17寫一函數(shù),實(shí)現(xiàn)兩個(gè)字符串的比較。即自己寫一個(gè)strcmp函數(shù),函數(shù)原型為int strcmp( char *p1,char *p2);設(shè) p1 指向字符串 s1, p2 指向字符串s2。要求當(dāng) s1=s2 時(shí),返回值為0,若 s1 s2,返回它們二者第一個(gè)不同字符的ASCII 碼差值(如 ”BOY”與 ”BAD”,第二個(gè)字母不同, “ O”與“ A ”之差為 79-65=14)。如果 s1>s2,則輸出正值,如s1<s2,則輸出負(fù)值。10.18編一程序,輸入月份號(hào),輸出該月的英文月名。例如,輸入
34、“3”,則輸出“ March ”,要求用指針數(shù)組處理。10.19編寫一個(gè)函數(shù) alloc( n),用來在內(nèi)存區(qū)新開辟一個(gè)連續(xù)的空間(n 個(gè)字節(jié))。此函數(shù)的返回值是一個(gè)指針,指向新開辟的連續(xù)空間的起始地址。再寫一個(gè)函數(shù)free( p),將地址p 開始的各單元釋放(不能再被程序使用,除非再度開辟)。提示:先在內(nèi)存區(qū)定出一片相當(dāng)大的連續(xù)空間(例如1000 個(gè)字節(jié))。然后開辟與釋放都在此空間內(nèi)進(jìn)行。 假設(shè)指針變量p 原已指向未用空間的開頭, 調(diào)用 alloc(n) 后,開辟了 n 個(gè)字節(jié)可供程序使用(例如,可以賦值到這些單元中)?,F(xiàn)在需要使p 的值變成 p+n ,表示空白未用區(qū)從 p+n 地址開始,同
35、時(shí)要將新開辟區(qū)的起始位置(p)作為函數(shù)值返回,以表示可以利用從此點(diǎn)開始的單元。如果要新開辟的區(qū)太大(n 大),超過了預(yù)設(shè)的空間 1000 個(gè)字符,則 alloc(n )函數(shù)返回指針NULL ,表示開辟失敗。Alloc ( n)應(yīng)返回一個(gè)指向字符型數(shù)據(jù)的指針(因?yàn)殚_辟的區(qū)間是以字節(jié)為單位被利用的)。10.20用指向指針的指針的方法對(duì)5 個(gè)字符串排序并輸出。10.21用指向指針的指針的方法對(duì)n 個(gè)整數(shù)排序并輸出。要求將排序單獨(dú)寫成一個(gè)函數(shù)。整數(shù)和 n 在主函數(shù)中輸入。最后在主函數(shù)中輸出。習(xí)題十一11.1 定義一個(gè)結(jié)構(gòu)體變量(包括年、月、日) 。計(jì)算該日在本年中是第幾天?注意閏年問題。11.2寫一個(gè)
36、函數(shù)days,實(shí)現(xiàn)上面的計(jì)算。由主函數(shù)將年、月、日傳遞給days 函數(shù),計(jì)算后將日子數(shù)傳回主函數(shù)輸出。11.3編寫一個(gè)函數(shù)print ,打印一個(gè)學(xué)生的成績(jī)數(shù)組,該數(shù)組中有5 個(gè)學(xué)生的數(shù)據(jù)記錄,每個(gè)記錄包括 num、 name、 score3 ,用主函數(shù)輸入這些記錄,用print 函數(shù)輸出這些記錄。11.4在上題的基礎(chǔ)上,編寫一個(gè)函數(shù)input,用來輸入 5個(gè)學(xué)生的數(shù)據(jù)記錄。11.5有 10 個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包括學(xué)號(hào)、姓名、3門課的成績(jī),從鍵盤輸入10 個(gè)學(xué)生數(shù)據(jù),要求打印出3 門課總平均成績(jī),以及最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號(hào)、姓名、3 門課成績(jī)、平均分?jǐn)?shù)) 。11.6編寫一個(gè)函數(shù)new,
37、對(duì) n 個(gè)字符開辟連續(xù)的存儲(chǔ)空間,此函數(shù)應(yīng)返回一個(gè)指針 (地址),指向字符串開始的空間。new( n)表示分配n 個(gè)字節(jié)的內(nèi)存空間。見下圖。Pn11.7寫一個(gè)函數(shù)free,將上題用的單元以后的內(nèi)存段釋放。new 函數(shù)占的空間釋放。free( p)表示將p(地址)指向11.8 已有 a、 b 兩個(gè)鏈表,每個(gè)鏈表中的結(jié)點(diǎn)包括學(xué)號(hào)、成績(jī)。要求把兩個(gè)鏈表合并,按學(xué)號(hào)升序排列。11.913 個(gè)人圍成一圈,從第1 個(gè)人開始順序報(bào)號(hào)1、2、3。凡報(bào)到3 者退出圈子。找出最后留在圈子中的人原來的序號(hào)。11.10有兩個(gè)鏈表a 和b,設(shè)結(jié)點(diǎn)中包含學(xué)號(hào)、姓名。從a 鏈表中刪去與b 鏈表中有相同學(xué)號(hào)的那些結(jié)點(diǎn)。11.11 建立一個(gè)鏈表,每個(gè)結(jié)點(diǎn)包括:學(xué)號(hào)、姓名、性別、年齡。輸入一個(gè)年齡,如果鏈表中的結(jié)點(diǎn)所包含的年齡等于此年齡,則將此結(jié)點(diǎn)刪去。11.12將一個(gè)鏈表按逆序排列,即將鏈頭當(dāng)鏈尾,鏈尾
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 臺(tái)風(fēng)損毀鋼構(gòu)修復(fù)工藝
- 藝術(shù)領(lǐng)域課件模板
- 智慧園區(qū)IBM智慧園區(qū)解決方案很好圖文
- 餐飲小公司管理制度(35篇)
- 部編語文七年級(jí)上冊(cè)第二單元教學(xué)設(shè)計(jì)
- “春蕾綻放·護(hù)苗成長(zhǎng)”-青春期健康與關(guān)愛教育專題活動(dòng)
- 脂肪肝的超聲診斷
- 腫瘤免疫研究培訓(xùn)
- 基于SDN的工業(yè)互聯(lián)網(wǎng)平臺(tái)邊緣計(jì)算優(yōu)化方案報(bào)告
- 2025年工業(yè)互聯(lián)網(wǎng)平臺(tái)5G通信模組適配性市場(chǎng)前景與產(chǎn)業(yè)布局研究報(bào)告
- (XX)XX縣2021年度變更調(diào)查技術(shù)設(shè)計(jì)書
- 地震的應(yīng)急逃生知識(shí)
- 藥品配送服務(wù)應(yīng)急預(yù)案
- 03 配電類“兩種人”安規(guī)綜合能力測(cè)試題庫
- 廣東省廣州市花都區(qū)2022-2023學(xué)年三年級(jí)下學(xué)期語文期末試卷
- 人工智能倫理導(dǎo)論- 課件 第3、4章 人工智能倫理、人工智能風(fēng)險(xiǎn)
- 工業(yè)管道技術(shù)交底
- ?;钒踩芾砼嘤?xùn)模板如何正確穿戴和使用防護(hù)裝備
- 基于單片機(jī)的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)(附源程序及原理圖)
- 《跨部門溝通與協(xié)調(diào)》課件
- 2023年哈密市伊吾縣社區(qū)工作者招聘考試真題
評(píng)論
0/150
提交評(píng)論