C語(yǔ)言程序設(shè)計(jì)課后習(xí)題1 8參考答案_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)課后習(xí)題1 8參考答案_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)課后習(xí)題1 8參考答案_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)課后習(xí)題1 8參考答案_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)課后習(xí)題1 8參考答案_第5頁(yè)
已閱讀5頁(yè),還剩35頁(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、C語(yǔ)言程序設(shè)計(jì)課后習(xí)題1-8參考答案習(xí)題1參考答案、簡(jiǎn)答題1、馮 諾依曼計(jì)算機(jī)模型有哪幾個(gè)基本組成部分?各部分的主要功能是什么?答:馮 諾依曼計(jì)算機(jī)模型是由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五大功能 部件組成的。運(yùn)算器又稱算術(shù)邏輯部件,簡(jiǎn)稱ALU是計(jì)算機(jī)用來(lái)進(jìn)行數(shù)據(jù)運(yùn)算的部件。數(shù)據(jù)運(yùn)算包括算術(shù)運(yùn)算和邏輯運(yùn)算。控制器是計(jì)算機(jī)的指揮系統(tǒng),計(jì)算機(jī)就是在控制器的控制下有條不紊地協(xié)調(diào)工作的。存儲(chǔ)器是計(jì)算機(jī)中具有記憶能力的部件,用來(lái)存放程序和數(shù)據(jù)。輸入設(shè)備是用來(lái)輸入程序和數(shù)據(jù)的部件。輸出設(shè)備正好與輸入設(shè)備相反,是用來(lái)輸出結(jié)果的部件。2、簡(jiǎn)述計(jì)算機(jī)的工作原理。答:計(jì)算機(jī)的工作原理可簡(jiǎn)單地概括為:各種

2、各樣的信息,通過輸入設(shè)備,進(jìn)入計(jì)算機(jī)的存儲(chǔ)器,然后送到運(yùn)算器,運(yùn)算完畢把結(jié)果送到存儲(chǔ)器存儲(chǔ),最后通過輸出設(shè)備顯示出來(lái)。整個(gè)過程由控制器進(jìn)行控制。3、計(jì)算機(jī)軟件系統(tǒng)分為哪幾類?答:軟件內(nèi)容豐富,種類繁多,通常根據(jù)軟件用途將其分為兩大類:系統(tǒng)軟件和應(yīng)用軟件。系統(tǒng)軟件是指管理、監(jiān)控、維護(hù)計(jì)算機(jī)正常工作和供用戶操作使用計(jì)算機(jī)的軟件。這 類軟件一般與具體應(yīng)用無(wú)關(guān),是在系統(tǒng)一級(jí)上提供的服務(wù)。系統(tǒng)軟件主要包括以下兩類: 一類是面向計(jì)算機(jī)本身的軟件,如操作系統(tǒng)、診斷程序等。另一類是面向用戶的軟件,如 各種語(yǔ)言處理程序(像 BC VC等)、實(shí)用程序、字處理程序等。應(yīng)用程序是指某特定領(lǐng)域中的某種具體應(yīng)用,供最終用

3、戶使用的軟件,它必須在操作 系統(tǒng)的基礎(chǔ)上運(yùn)行。4、什么叫軟件?說(shuō)明軟件與硬件之間的相互關(guān)系。答:軟件是指計(jì)算機(jī)程序及有關(guān)程序的技術(shù)文檔資料。兩者中更為重要的是程序,它是計(jì) 算機(jī)進(jìn)行數(shù)據(jù)處理的指令集,也是計(jì)算機(jī)正常工作最重要的因素。在不太嚴(yán)格的情況下,認(rèn)為程序就是軟件。硬件與軟件是相互依存的,軟件依賴于硬件的物質(zhì)條件,而硬件則需在軟件支配下才能有效地工作。在現(xiàn)代,軟件技術(shù)變得越來(lái)越重要,有了軟件,用戶面對(duì)的將不再是物理計(jì)算機(jī),而是一臺(tái)抽象的邏輯計(jì)算機(jī),人們可以不必了解計(jì)算機(jī)本身,可以采用更加方便、更加有效地手段使用計(jì)算機(jī)。從這個(gè)意義上說(shuō),軟件是用戶與機(jī)器的接口。1、算術(shù)邏輯2、鍵盤鼠標(biāo)3、控制器

4、運(yùn)算器4、10 25、0 0x6、原碼反碼補(bǔ)碼7、 00010111 111010018、127 -128二、填空題三、選擇題1、C 2、A 3、B 4、A 5、B 6、B 7、D 8、A 9、A 10、B 11、A 12、B習(xí)題2參考答案一、簡(jiǎn)答題1、C語(yǔ)言有哪些特點(diǎn)?答:(1 )簡(jiǎn)潔緊湊、靈活方便;(2)運(yùn)算符豐富;(3)數(shù)據(jù)結(jié)構(gòu)豐富;(4) C語(yǔ)言是結(jié)構(gòu)式語(yǔ)言;(5) C語(yǔ)言的語(yǔ)法限制不太嚴(yán)格、程序設(shè)計(jì)自由度大;(6) C語(yǔ)言允許直接訪冋物理地址,可以直接對(duì)硬件進(jìn)行操作;(7) C語(yǔ)言程序生成代碼質(zhì)量高,程序執(zhí)行效率高;(8) C語(yǔ)言使用范圍大,可移至性好;(9)具有預(yù)處理功能;(10)

5、具有遞歸功能。2、C語(yǔ)言的主要應(yīng)用有哪些?答:(1)許多系統(tǒng)軟件和大型應(yīng)用軟件都是用C語(yǔ)言編寫的,如UNIX、Linux等操作系統(tǒng)。(2)在軟件需要對(duì)硬件進(jìn)行操作的場(chǎng)合,用C語(yǔ)言明顯優(yōu)于其他高級(jí)語(yǔ)言。例如,各種C語(yǔ)言編寫的。硬件設(shè)備的驅(qū)動(dòng)程序(像顯卡驅(qū)動(dòng)程序、打印機(jī)驅(qū)動(dòng)程序等)一般都是用(3)在圖形、圖像及動(dòng)畫處理方面,C語(yǔ)言具有絕對(duì)優(yōu)勢(shì),特別是游戲軟件的開發(fā)主要就是使用C語(yǔ)言。(4)隨著計(jì)算機(jī)網(wǎng)絡(luò)飛速發(fā)展,特別是In ternet的出現(xiàn),計(jì)算機(jī)通信就顯得尤其重要,而通信程序的編制首選就是C語(yǔ)言。(5) C語(yǔ)言適用于多種操作系統(tǒng),像Windows、UNIX、Linux等絕大多數(shù)操作系統(tǒng)都支持C

6、語(yǔ)言,其他高級(jí)語(yǔ)言未必能得到支持,所以在某個(gè)特定操作系統(tǒng)下運(yùn)行的軟件用C語(yǔ)言編制是最佳選擇。3、列舉幾種程序設(shè)計(jì)語(yǔ)言。答:C語(yǔ)言、Java 語(yǔ)言、Pascal 語(yǔ)言、BASIC語(yǔ)言、LOGOg言等。二、填空題1、機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言2、機(jī)器語(yǔ)言3、ALGOL 604、多個(gè)函數(shù)5、main6、#in elude7、定義使用聲明部分執(zhí)行部分聲明部分執(zhí)行部分三、選擇題1、D 2、B 3、B 4、CC 7、D 8、C 9、D 10、A 11 、B 12、 A 13 、B 14、C 15、A習(xí)題3參考答案1、整型字符型實(shí)型2、字母數(shù)字下劃線3、直接符號(hào)符號(hào)4、0 0x5、1 26、4 8一、填空題字

7、母下劃線7、-32768-327678、-169、x+=1;10、26 11、(m/10)%10*100+m/100(100*10)+m%10二、選擇題1、D 2、C 3、A 4、B5、B 6、D 7、B 8、C 9、A 10、A 11C 12、B 13、B 14、D 15、B 16、D17、B 18、D 19、C 20、A 21、B 22、23、D 24、D25、D 26、D 27、C 28、A 29、C 30、B、填空題習(xí)題4參考答案1、sea nf printf2、按指定的輸出格式將信息輸出到屏幕上常規(guī)字符格式控制符3、X、E、G4、getehe輸入的字符回顯,而geteh輸入的字符不回

8、顯5、fflush6、解決某個(gè)問題的具體的方法和步驟7、自然語(yǔ)言描述偽代碼流程圖N-S圖順序分支循環(huán)二、選擇題1、 B 2 、 C 3 、D 4、C 5、B 6、C 7、D 8、C 9、B 10、B 11D 12、C 13、D 14、D 15、A三、編程題例如:1、編寫一程序要求任意輸入四位十六進(jìn)制整數(shù),以反序的方式輸出該十六進(jìn)制數(shù)。輸入9AF0,則輸出0FA9b#in clude<stdio.h>void mai n()un sig ned short a, b;scanf(“ 4X' , &a) /輸入4位十六進(jìn)制數(shù)給變ab=(a & 0X000F)&l

9、t;<12; /取a的最低一位十六進(jìn)制數(shù)并左移12位后賦值給bb+=(a & 0X00F0)<<4; /取a的次第一位十六進(jìn)制數(shù)并左移4位后與b相加再賦值給b+=(a & 0X0F00)<<4; /取a的次高一位十六進(jìn)制數(shù)并右移4位后與b相加再賦值給b+=(a& 0XF000)<<12;/取a的最高一位十六進(jìn)制數(shù)并右移12位后與b相加再賦值給printf(“ %4xn ”,b);/ 輸出變化后的十六進(jìn)制數(shù)2、編程從鍵盤輸入兩個(gè)整數(shù)分別給變量a和b,要求在不借助于其他變量的條件下,將變量a和b的值實(shí)現(xiàn)交換。#in clude<

10、;stdio.h>void mai n()int a, b;scanf(“d%d , &a, &b);printf(“ before swa p: a=%d b=%dn” ,a,b);a=a+b;b=a-b;a=a-b;printf(“ after swa p: a=%d b=%dn”I ,a, b);3、編程從鍵盤輸入圓的半徑 r,計(jì)算出圓的周長(zhǎng)和面積。#in clude<stdio.h>#defi ne PI 3.14159void mai n()float r, c, s;scanf(“ f'' , &r);c=2*r* PI;s

11、=P l*r*r;printf(“ c=%f s=%fn ”,c, s);-FA98,輸4、編程從鍵盤輸入任意一個(gè)十六進(jìn)制負(fù)整數(shù),以輸入的形式輸出。例如:輸入出-FA98。#in clude<stdio.h>void mai n()short int a;scanf(“ x , &a);printf(“ -%hxn ”,-a);5、已知一元二次方程ax2+bx+c=0,編一程序當(dāng)從鍵盤輸入a、b、c的值后,計(jì)算x的值。#in clude<stdio.h>#in clude<math.h>void mai n()float a, b, c;float

12、d;float x1, x2;pnntf( “input a, b, c:”);scanf(“f%f%f” , &a, &b, &c);d=sqrt(b*b-4*a*c);x1=(-b+d)/(2*a);x2=(-b-d)/(2*a);printf( “ x1=%.2f x2=%.2fn ”,x1, x2);s),遍一程序計(jì)算到現(xiàn)在6、假設(shè)從鍵盤輸入某日午夜零點(diǎn)到現(xiàn)在已經(jīng)歷的時(shí)間(單位:為止已近過了多少天,現(xiàn)在的時(shí)間是多少?#in clude<stdio.h>void mai n()un sig ned long t, r;int d, h, m, s;pr

13、ints“ second= ” );scanf( “ d , &t);d=t/(24*3600);r=t%(24*3600);h=r/3600;m=(r%3600)/60;s=(r%3600)%60;” ,d, h, m,printf( “ have passed days is %d, current time is %02d:%02d:%02dn s):習(xí)題5參考答案編程題1編一程序判斷輸入整數(shù)的正負(fù)性和奇偶性。#in clude<stdio.h>void mai n()int a;scanf(“c” , &a);if (a>=0)printf(“the

14、nu mber %d is po sitive nu mber n? ,a);elseprintf("the nu mber %d is n egative nu mber n,a);if (a%2=0)printf(“the nu mber %d is even nu mber n”,a);elseprintf(“the number %d is odd numbern”,a);2、編程判斷輸入數(shù)據(jù)的符號(hào)屬性。#in clude<stdio.h> void mai n() int X, sig n;scanf( “ %d , &x);if (x>0)sig

15、 n=1;else if (x=0)sig n=0;elsesig n=-1;printf( “ sign= %dn ”,sign);3、輸入任意三個(gè)數(shù) num1、num2 num3,按從小到大的順序排序輸出。#in clude<stdio.h> void mai n() int nu m1, nu m2, num3;scanf( “ d%d%d , &num1, &num2, &num3);if (nu m1<=num2)if (nu m2<=num3)printf(“d %d %dn ”,nu m1, nu m2, nu m3);elseif

16、 (nu m1>=num3)printf(“d %d %dn” ,num3, num1, num2);elseprintf(“d %d %dn” ,num1, num3, num2);elseif (nu m2>=num3)printf(“d %d %dn ”,nu m3, nu m2, nu m1);elseif (nu m1>=num3)printf(“d %d %dn” ,num2, num3, num1);elseprintf(“d %d %dn” ,num2, num1, num3);4、在屏幕上顯示一張如下所示的時(shí)間表。#in clude<stdio.h&g

17、t;void mai n()char c;printf(“ *Time*n” );printf(“1 morningn ” );printf(“2 afternoonn” );printf("3 nightn ” );printf(“ P lease en ter your choice:);c=getcahr();switch (c)case'1 :printf(“ Good morning'n” );brenk;case2':printf(“ Good afternoon'n”);break;case'3':printf(“ Goo

18、d ni ghtn ”);break;default: prints“ Selecti on error!' n”);,用switch語(yǔ)句編程。5、輸入一個(gè)年份和月份,打印出該月份有多少天(考慮閏年)#in clude<stdio.h>void mai n()int year, month;”);prints“Input year, month:scanf(“%d %d' , &year, &month);switch (mon th)case 1:case 3:case 5:case 7:case 8:case 10:case 12: pnntf(

19、“31 daysn ” );break;case 4:case 6:case 9:case 11: prints"30 daysn ” );break;case 2: if (year%4=0 && year%100!=0)| (year%400=0)printf(“29 daysn ” );elseprintf(“28 daysn ” );break;default: prints“Input error!n ” );習(xí)題6參考答案編程題1、編程計(jì)算2+4+6+98+100的值。(1)利用for循環(huán)語(yǔ)句實(shí)現(xiàn),在循環(huán)體外為sum賦初值0。#in clude<st

20、dio.h>void mai n() int i, sum=0;for(i=2; i<=100; i+=2) sum+=i;pnntf(“ sum= %dn”,sum);(2)利用while循環(huán)語(yǔ)句實(shí)現(xiàn),在循環(huán)體外為i和sum賦初值。#in clude<stdio.h> void mai n() int i=2, sum=0;while(i<=100) sum+=i;i+=2;prints“ sum= %dn”,sum);2、編程計(jì)算 1*2*3+4*5*6+ +99*100*101 的值。#in clude<stdio.h> void mai n()

21、 int i;long term, sum=0;for(i=1; i<=99; i+=2) sum+=term;pnntf(“ sum= %dn”,sum);term=i*(i+1)*(i+2);3、編程計(jì)算1!+2!+3!+10!的值。(1)用累加和算法,累加項(xiàng)為term=term*i; i=1,2,10。Term的初始值為1,使用單重循環(huán)完成。#in clude<stdio.h> void mai n() long term=1, sum=0;int i;for(i=1; i<=10; i+) term*=i;sum+=term;printf( “1!+2!+3!+

22、 +10! = %ldn ”,sum);(2)用內(nèi)層循環(huán)求階乘,外層循環(huán)控制累加的項(xiàng)數(shù)。#in clude<stdio.h> void mai n() long term, sum=0;int i, j;for(i=1; i<=10; i+) term=1;for(j=1; j<=i; j+)term*=j;sum+=term;printf( “1!+2!+3!+ +10! = %ldn ”,sum);4、編程計(jì)算a+aa+aaa+aa.a (n個(gè)a)的值,n和a的值由鍵盤輸入。#in clude<stdio.h> void mai n() long ter

23、m=0, sum=0;int a, i, n;pnntf(“Input a, n:n ” );scanf( “ d,%d , &a, &n);for(i=1; i<=n; i+) term=term*10+a;sum+=term;prints“ sum=%ldn”,sum);5、參考答案: #in clude<stdio.h> void mai n() float term, result=1;int n;for(n=2; *=100; n+=2) term=(float)( n*n)/(n-1)*( n+1);result*=term;printf( “ r

24、esult=%fn ” , 2*result);6、參考答案: #in clude<stdio.h>#in clude<math.h> void mai n() int n=1, coun t=0;float X; double sum, term;pnntf(“Input x: ” ) scanf( “ f' , &x);sum=x;term=x;doterm=-term*x*x/( n+1)( n+2); /計(jì)算相應(yīng)項(xiàng),并改相應(yīng)符號(hào)i=n/100;/分出百位if(n=i*i*i+j*j*j+k*k*k)sum+=term;n+=2;coun t+;w

25、hile(fabs(term)>=le-5);prints“ sin(x) = %f, count= %dn ” ,sum, count);7、參考答案: #in clude<stdio.h> void mai n() int i, j, k, n;printf( “ result is:” );for(n=100; n <1000; n+)j=( n-i*100)/10 /分出十位k=n %10;/分出個(gè)位printf( “ %d ”,n);printf( “n ” );8、參考答案:#in clude<stdio.h> #in clude<math

26、.h> void mai n()int i1, i2, i3, i4, k, n;prints“Input data is:);scanf( “ %d , &n);k=abs (n);i仁k/1000;/分離出千位i2=(k-i1*1000)/100/分離出百位i3=(k-i1*1000-i2*100)/10 /分離出十位i4=k%10;/分離出個(gè)位”,i1+i2+i3+i4);pnntf(“ The sum of the total bit is %dn9、參考答案: #in clude<stdio.h> void mai n()int n, m=0, s, r;p

27、rints“Input data is:”);scanf( “ %d , &n);s=n;While(s!=0)r=s%10;/從低位到高位逐一分離m=10*m+r;/重新組合一正數(shù)s=s/10;/求其商if(m=n)printf(“ yesn”);elseprintf(“non ”);10、參考答案: #in clude<stdio.h>分別表示5分、2分和1分硬幣的數(shù)量void mai n() int X, y, z, coun t=0; /x,y,zfor(x=1; x<=28; X+) /5分硬幣最多不超過28枚for(y=1; y<=73; y+) /

28、2分硬幣最多不超過73枚z=100-x-y; / 共有100枚硬幣,減去5分和2分硬幣后為1分硬幣數(shù)量if(5*x+2*y+z=150)cou nt+ / 增加一種方案輸出每一種方案printf( “ %02d, %02d, %02d” , x, y, z); /if (cou nt%6=0)printf( “n ”); / 沒輸出6種方案后,換行prints“ count=%dn ”,count);11、設(shè)計(jì)思想:將A B、C、D4個(gè)人的回答用一條件表達(dá)式來(lái)表示,對(duì)于A的回答:thisman!='A'對(duì)于B的回答:thisman= 'C;對(duì)于C的回答:thisman=

29、 D'對(duì)于D的回答:thisman!= 4個(gè)條件表達(dá)式中有3個(gè)為真,D'然后,采用枚舉的方法,一個(gè)人一個(gè)人的去試,如果這即4個(gè)條件表達(dá)式的值相加為 3,則可判定是其中某人做的好事。參考答案:#in clude<stdio.h> void mai n() int k=0; sum=0; g=0;char thisma n=for (k=0; k<=3; k+) /循環(huán)控制變量為k,循環(huán)共進(jìn)行4次thisman= ' A' +k; /初始認(rèn)為A做好事,依次為 B C Dsum=(thisman!= A)+(thisman= ' C )+(t

30、hisman= ' D, )+(thisman!=' D');if (sum=3)printf( “ This man is %cn” ,thisman);g=1;if (g!=1)pnntf(“ Can t found'n”);12、參考答案(1): #in clude<stdio.h> void mai n() int i, j;for (i=1; i<=3; i+) /先顯示前三行for (j=1; j<=i-1; j+) /輸出每行前的空格printf();for (j=1; j<=5-2*(i-1); j+)/輸出每行的*

31、號(hào)#in clude<stdio.h>);for (i=1; i<=2; i+) /接著顯示后兩行printf(printf( “ n ” );for (j=1; j<=2-i; j+)printf(););printf(a 1”、n );參考答案:for (j=1; j<=2*i+1; j+)printf(#in clude<stdio.h> void mai n()int i, j, k;for (i=1; i<=5; i+) /i控制行數(shù)for (j=1; j<=5-i; j+) /隨行數(shù)的增加,輸出遞減數(shù)目的空格printf();f

32、or (k=1; k<=5; k+) /每行輸出5個(gè)*字符printf();printf(“n ”); /將光標(biāo)移到下一行起始位置處參考答案:void mai n() int i, j;);printf(a 1”n );for (i=1; i<=5; i+)for (j=1; j<=2*(i-1)+1; j+)printf(習(xí)題7參考答案編程題1、參考答案: #in clude<stdio.h> void mai n() int i, sum=0; a20;for (i=0; i<20; i+)Scanf(“%cr , &ai); /輸入20個(gè)整數(shù)f

33、or (i=0; i<20; i+)/對(duì)非負(fù)數(shù)進(jìn)行統(tǒng)計(jì)if (ai<0)con ti nue;/為負(fù)數(shù),進(jìn)入下一輪循環(huán)sum+=ai;/非負(fù)數(shù)累計(jì)prints“ sum=%dn” , sum);2、參考答案 void mai n() int i, j, odd, eve n, n, t, a10;odd=0;even=9;for(i=0; i<10; i+) /將鍵盤輸入的數(shù)據(jù)存入數(shù)組中scanf( “ %d , &n);if (n %2!=0)aodd+=n; /將奇數(shù)放置在數(shù)組的左邊elseaeve n-=n; /將偶數(shù)放置在數(shù)組的喲邊f(xié)or (i=0; i<

34、;odd-1; i+)/通過選擇排序?qū)ζ鏀?shù)進(jìn)行升序排列n=j;for (j=i+1; j<odd; j+)if (aj<a n)n=j;if (n !=i) t=ai;ai=a n;an =t;for (i=odd; i<9; i+) /通過選擇排序?qū)ε紨?shù)進(jìn)行升序排列n=i;for (j=i+1; j<10; j+)if (aj<a n)n=j;If (n !=i)t=ai;ai=a n;an =t;for (i=0; i<10; i+)printf( “ d , ai);輸出排序結(jié)果printf( “n ” );3、參考答案: #in clude<s

35、tdio.h> void mai n() int i, max, min, a10;”);/輸入10個(gè)整數(shù)pnntf(“Input 10 in teger nu mber: for(i=0; i<10; i+)scanf( “%d , &ai);max=0;mi n=0;for(i=1; i<10; i+) if (ai>amax)max=i;if (ai<ami n) mi n=i;i=amax;amax=ami n;ami n=i;for(i=0; i<10; i+)printf( “ %d ” , ai);printf( “n ” );4、參考

36、答案: #in clude<stdio.h> void mai n() int i, j, t, a6;”);pnntf(“Input 6 in teger nu mber: for(i=0; i<6; i+)scanf( “d , &ai);printf( “n ” );for(i=0; i<6; i+)for (j=0; j<6; j+)printf(“d ” , aj);printf(“n ” );t=a5;for (j=5; j>0; j-) aj=aj-1;a0=t;5、參考答案: #in clude<stdio.h> void

37、 mai n() int i, j, sum=0, mul=1, a55;printf( “Input 5*5 array:n ” );for(i=0; i<5; i+)for(j=0; j<5; j+)scanf(“ d' , &aij);printf( “n ” );for(i=0; i<5; i+) sum+=aij;if(i!=2)sum+=ai4-i;if(i%2!=0)con ti nue;mul*=aii;if(i!=2)mul*=ai4-i;prints“ sum = %d mul = %dn ” , sum, mul);6、參考答案: #in

38、 clude<stdio.h> #defi ne N 6 void mai n() int i, j, aNN;for(i=0; i<N; i+) ai0=1;aii=1;for(j=1; j<i; j+)aij=ai-1j-1+ai-1j;for(i=0; i<N; i+)for(j=0; j<N-i-1; j+)printf( “ ”);for(j=0; j<=i; j+)printf( “ %2d ” , aij);printf( “n ” );7、參考答案: #in clude<stdio.h> #in clude<stri

39、ng.h> #defi ne N 80 void mai n() char strN;int i;”);printf( “Input a stri ng: gets(str);char strN, strtem pN;printf( “ After reverse:”);for(i=strle n( str)-1; i>=0; i-)printf( “ c , stri);printf( “n ” );8、參考答案: #in clude<stdio.h> #in clude<stri ng.h> #defi ne N 80 void mai n()un si

40、g ned int i, j;”);printf( “Input a stri ng: gets(str);for(i=0, j=0; ivstrle n(str); i+)if(stri!=strte mp j+=stri;strtempj=' 0 strc py (str, strte mp);”);printf( “printf( “ %sn”,str);9、參考答案: #in clude<stdio.h> #defi ne N 80 void mai n()char s1N, s2N=” abcdefg0hijk ”un sig ned int i;i=0;whil

41、e(1) s1i=s2i;if(s2i=0 ')break;i+;” ,s1);printf(“ After stri ng copy: %sn10、參考答案:#in clude<stdio.h> void mai n() char dstStr20= ' 12345' , srcStr20= ' 67890'un sig ned int i, j;” ,dstStr, srcStr);printf( “ Before strcat: dstStr=%s srcStr=%snfor(i=0; dstStri!=0 ' ; i+)for

42、(j=0; srcStrj!=0 ' ; j+)dstStri+j=srcStrj;dstStri+j=0printf( “ After strcat: dstStr=%sn” ,dstStr);11、參考答案:#in clude<stdio.h>void mai n()int a10=1,3,5,7,9, nu m=5, i, n;printf( “ Before in sert:”);for(i=0; i<num; i+)printf(“d ” , ai);printf(a 1?n );printf(“Input a nu mber:”)sca nf(“d , &

43、amp;n);for( i=nu m-1; i>=0; i-)if(ai> n)ai+1=ai;elsebreak;ai+1=n;prints“ After in sert:”);for(i=0; i<nu m+1; i+)printf( “ d , ai);printf( “n ” );s習(xí)題8參考答案編程題1、設(shè)計(jì)一個(gè)函數(shù),用來(lái)判斷一個(gè)整數(shù)是否為素?cái)?shù)。參考答案:#in clude<stdio.h>#in clude<math.h>int IsP rimeNumber (int nu mber );void mai n()int a;printf(

44、“Input a in teger nu mber:”);scanf( “ %d , &a);if(Is PrimeNumber(a)printf("%d is prime number.n,a);elseprintf(“ %d isn t prime number.n” ,a);int IsP rimeNumber( int nu mber) int I;if(nu mber<=-1)return(0);if(nu mber%i=0)return(0);return(i);for(i=2; i<sqrt (nu mber); i+)2、設(shè)計(jì)函數(shù) MaxmonFa

45、ctor(),計(jì)算兩個(gè)正整數(shù)的最大公約數(shù)。參考答案:#in clude<stdio.h> int Maxm onF actor(i nt a, int b);void mai n() int a,b,c;”);pnntf(“Input two in teger nu mber: scanf( “ d%”,&a,&b);c=Maxm onF actor(a,b);if(c!=-1)printf(“ The biggest mon factor of%d and %d is %dn” ,a,b,c);elseprintf(“ The biggest mon factor

46、 of%d and %d isn't existn ”,a,b);int Maxm onF actor(i nt a, int b)if(a<=O|b<=O)return(-1);while(a!=b)if(a>b)a=a-b;elseif(b>a)b=b-a;ruturn(a);3、定義函數(shù)GetData()用于接收鍵盤輸入的一組整型數(shù)據(jù),并放入一數(shù)組中;另外再定義一個(gè)函數(shù)Sorto用于對(duì)輸入的這一組數(shù)據(jù)按照降序排列。主函數(shù)向后調(diào)用 GetData和Sortfor(i=0;i< n-1;i+)for(j=i+1;j< n;j+)函數(shù),輸出最后的排序

47、結(jié)果。參考答案:#in clude<stdio.h> #defi ne N 10 void GetData( int a,i nt n);void Sort(i nt a,i nt n);void mai n()GetData(a,N);Sort(a,N);printf( “ After sort:”);for(i=0;i< n;i+)printf(“ (” ,ai);printf( “n ” );void GetData( int a,i nt n) int i;printf( “Input number:” );for(i=0;i< n;i+)scanf(“c”,&

48、amp;ai);void Sort(i nt a,i nt n) int i,j,k,t;k=i;if(aj>ak)k=j;if(k!=i)t=ai;ai=ak;ak=t;4、參考答案:#in clude<stdio.h>#in clude<stri ng.h>void JsSort(char str);void mai n()char str80;printf( “Input a stri ng:”)gets(str);JsSort(str);printf( “ After sort: %sn” ,str);void JsSort(char str)char c

49、h;len=strle n( str);k=i;for(i=1;i<le n-1;i+=2)for(j=i+2;j<le n;j+=2)if(strj>strk)k=j; if(k!=j) ch=stri;stri=strk;strk=ch;5. 參考答案: #in clude<stdio.h> #in clude<stri ng.h> #defi ne N 30 void Josegh(i nt p ,i nt n, int s,i nt m);void mai n() int i,p N;Josegh( p,N,1,10);for(i=N-1;i>=0;i-) printf( “ %4d ”,pi);if(i%10=0)pnntf( “ n ” );void Josegh(i nt p ,i nt n ,i nt s,i nt m) int i,j,s1,w;s1=s;for(i=1;i<=n ;i+)pi-1=i;for(i=

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論