C語言程序設(shè)計(jì)課后習(xí)題1-8參考答案_第1頁
C語言程序設(shè)計(jì)課后習(xí)題1-8參考答案_第2頁
C語言程序設(shè)計(jì)課后習(xí)題1-8參考答案_第3頁
C語言程序設(shè)計(jì)課后習(xí)題1-8參考答案_第4頁
C語言程序設(shè)計(jì)課后習(xí)題1-8參考答案_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C 語言程序設(shè)計(jì)課后習(xí)題1-8參考答案習(xí)題 1 參考答案一、簡答題1、馮 諾依曼計(jì)算機(jī)模型有哪幾個(gè)基本組成部分?各部分的主要功能是什么?答:馮 諾依曼計(jì)算機(jī)模型是由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五大功能部件組成的。運(yùn)算器又稱算術(shù)邏輯部件,簡稱ALU ,是計(jì)算機(jī)用來進(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ī)中具有記憶能力的部件,用來存放程序和數(shù)據(jù)。輸入設(shè)備是用來輸入程序和數(shù)據(jù)的部件。輸出設(shè)備正好與輸入設(shè)備相反,是用來輸出結(jié)果的部件。2、簡述計(jì)算機(jī)的工作原理。答:計(jì)算機(jī)的工作原理可簡單地概

2、括為:各種各樣的信息,通過輸入設(shè)備,進(jìn)入計(jì)算機(jī)的存儲(chǔ)器,然后送到運(yùn)算器,運(yùn)算完畢把結(jié)果送到存儲(chǔ)器存儲(chǔ),最后通過輸出設(shè)備顯示出來。整個(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)用無關(guān),是在系統(tǒng)一級(jí)上提供的服務(wù)。系統(tǒng)軟件主要包括以下兩類:一類是面向計(jì)算機(jī)本身的軟件,如操作系統(tǒng)、診斷程序等。另一類是面向用戶的軟件,如各種語言處理程序(像BC、 VC 等)、實(shí)用程序、字處理程序等。應(yīng)用程序是指某特定領(lǐng)域中的某種具體應(yīng)用,供

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

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

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

6、IX 、 Linux 等絕大多數(shù)操作系統(tǒng)都支持C 語言,其他高級(jí)語言未必能得到支持,所以在某個(gè)特定操作系統(tǒng)下運(yùn)行的軟件用C 語言編制是最佳選擇。3、列舉幾種程序設(shè)計(jì)語言。答:C語言、Java語言、Pascal語言、BASIC 語言、LOGO語言等。二、填空題1、機(jī)器語言匯編語言高級(jí)語言2、機(jī)器語言3、 ALGOL 604、多個(gè)函數(shù)5、 main6、 #include7、定義使用8、聲明部分執(zhí)行部分聲明部分執(zhí)行部分三、選擇題1、 D 2、 B 3、 B 4、 C 5、 C 6、 C 7、 D 8、 C 9、 D 10、 A 11、 B 12、A 13、 B 14、 C 15、 A習(xí)題 3參考答案

7、一、填空題1、整型字符型實(shí)型2、字母數(shù)字下劃線字母 下劃線3、直接符號(hào)符號(hào)4、 0 0x5、 1 26、 4 87、 -32768327678、 -169、 x+=1;10、 2611、 (m/10)%10*100+m/100(100*10)+m%10二、選擇題1、 D2、 C 3、A4、B5、B 6、D7、B8、C9、 A 10、 A11、 C12、B13、 B14、D15、B16、D17、B18、D19、C20、 A 21、B 22、 D23、 D24、D25、D26、D27、C28、A29、C30、 B習(xí)題4參考答案一、填空題1、 scanf printf2、按指定的輸出格式將信息輸出到

8、屏幕上常規(guī)字符格式控制符3、 X、 E、 G4、getche輸入的字符回顯,而 getch輸入的字符不回顯5、 fflush6、解決某個(gè)問題的具體的方法和步驟7、自然語言描述偽代碼流程圖N-S 圖8、順序分支 循環(huán)二、選擇題1、 B 2、 C 3、 D 4、 C 5、 B 6、 C 7、 D 8、 C 9、 B 10、 B 11、 D 12、 C13、 D 14、 D 15、 A三、編程題1、編寫一程序要求任意輸入四位十六進(jìn)制整數(shù),以反序的方式輸出該十六進(jìn)制數(shù)。例如:輸入9AF0,則輸出0FA9。#include<stdio.h>void main()unsigned short

9、a, b;scanf(" %4x" , &a)輸入4位十六進(jìn)制數(shù)給變 ab=(a & 0X000F)<<12; 取a的最低一位十六進(jìn)制數(shù)并左移12位后賦值給bb+=(a & 0X00F0)<<4;/取 a 的次第一位十六進(jìn)制數(shù)并左移4位后與b 相加再賦值給bb+=(a & 0X0F00)<<4;/取 a 的次高一位十六進(jìn)制數(shù)并右移4位后與b 相加再賦值給bb+=(a & 0XF000)<<12; 取a的最高一位十六進(jìn)制數(shù)并右移12位后與b相加再賦值給 bprintf( “ %n4” ,

10、b);/輸出變化后的十六進(jìn)制數(shù)2、編程從鍵盤輸入兩個(gè)整數(shù)分別給變量a和b,要求在不借助于其他變量的條件下,將變量a和b的值實(shí)現(xiàn)交換。#include<stdio.h>void main()int a, b;scanf( “ %d%d” , &a, &b);printf( “ before swap: a=%bd=%d n” , a,b);a=a+b;b=a-b;a=a-b;printf( “ after swap: a=%d n” , a, b); 3、編程從鍵盤輸入圓的半徑 r,計(jì)算出圓的周長和面積。#include<stdio.h>#define P

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

12、<stdio.h>#include<math.h>void main()float a, b, c;float d;float x1, x2;printf(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=%.2xf2=%.2f n” , x1, x2);6、假設(shè)從鍵盤輸入某日午夜零點(diǎn)到現(xiàn)在已經(jīng)歷的時(shí)間(單位:s),遍一程序計(jì)算到現(xiàn)在為止已近過了多少天,現(xiàn)在的時(shí)間是多少?#inc

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

14、nt a;scanf( “ %d” , &a);if (a>=0)printf( “ the number %d is positive numbne” r , a);elseprintf( “ the number %d is negative numnb”er , a);if (a%2=0)printf( “ the number %dn” , a);elseprintf( “ the number %d is odd numnbe” r , a);2、編程判斷輸入數(shù)據(jù)的符號(hào)屬性。#include<stdio.h>void main()int x, sign;sc

15、anf( “ %d” , &x);if (x>0)sign=1;else if (x=0)sign=0;elsesign=-1;printf( “ sign%=d n”, sign);3、輸入任意三個(gè)數(shù) numl、num2、num3,按從小到大的順序排序輸出。#include<stdio.h>void main()int num1, num2, num3;scanf( “ %d%d%” d , &num1, &num2, &num3);if (num1<=num2)if (num2<=num3)printf( “ %dd %d n”

16、 , num1, num2, num3);elseif (num1>=num3)printf( “ %dd %d n” , num3, num1, num2);elseprintf( “ %dd %d n” , num1, num3, num2);elseif (num2>=num3)printf( “ %dd %d n” , num3, num2, num1);elseif (num1>=num3)printf( “ %dd %d n” , num2, num3, num1);elseprintf( “ %dd %d n” , num2, num1, num3);4、在屏幕

17、上顯示一張如下所示的時(shí)間表。#include<stdio.h>void main()char c;printf(*Time* n”);printf( “ 1 mornnin” g );printf(“ 2 afternono” n);printf(“ 3 ning” ht);printf( “ Please enter your choice:” );c=getcahr();switch (c)case1 :printf(case2 :printf(case3 :printf(default: printf(“ Goond” m)o;rbnrinegnk;“ Goodna” fte

18、);rnboreoank“ Gno” od); nbirgehatk;Selection ” err)o; r!5、輸入一個(gè)年份和月份,打印出該月份有多少天(考慮閏年),用switch 語句編程。#include<stdio.h>void main()int year, month;printf( “ Input year, month:” );scanf( “ %d %d” , &year, &month);switch (month)case 1:case 3:case 5:case 7:case 8:case 10:case 12: printf( “ 3n1

19、” da);ysbreak;case 4:case 6:case 9:case 11: printf( “ 3n0” da);ysbreak;case 2: if (year%4=0 && year%100!=0)| (year%400=0)printf(“ 29 dna”ys);elseprintf(“ 28 dna”ys);break;default: printf( “ Inpunt ”err)o;r!習(xí)題6參考答案編程題1、編程計(jì)算 2+4+6+98+100的值。( 1 )利用 for 循環(huán)語句實(shí)現(xiàn),在循環(huán)體外為sum 賦初值 0。#include<stdio.h

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

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

22、 +10! =n%ld sum);( 2)用內(nèi)層循環(huán)求階乘,外層循環(huán)控制累加的項(xiàng)數(shù)。#include<stdio.h>void main()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! =n%ld sum);4、編程計(jì)算a+aa+aaa+aa.a n個(gè)a)的值,n和a的值由鍵盤輸入。#include<stdio.h>void main()long term=0, sum=

23、0;int a, i, n;printf( “ Inpn” );scanf( “ %d,%d” , &a, &n);for(i=1; i<=n; i+)term=term*10+a;sum+=term;printf( “ sum=%n” ld , sum);5、參考答案:#include<stdio.h>void main()float term, result=1;int n;for(n=2; n<=100; n+=2) term=(float)(n*n)/(n-1)*(n+1);result*=term;printf( “ result=n%” f

24、, 2*result);6、參考答案:#include<stdio.h>#include<math.h>void main()int n=1, count=0;float x;double sum, term;printf( “ 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)sum+=term;n+=2;count+;while(fabs(term)>=le-5);printf( “ sin(x) = %f, count= %nd”

25、 , sum, count);7、參考答案:#include<stdio.h>void main()int i, j, k, n;printf( “ result is:” );for(n=100; n<1000; n+)i=n/100;/分出百位j=(n-i*100)/10/分出十位k=n%10;/分出個(gè)位if(n=i*i*i+j*j*j+k*k*k)printf( “ %”d , n);printf( n“” );8、參考答案:#include<stdio.h>#include<math.h>void main()int i1, i2, i3, i

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

27、( “ %d” , &n);s=n;While(s!=0)r=s%10;/從低位到高位逐一分離m=10*m+r;/重新組合一正數(shù)s=s/10;/求其商if(m=n)printf( “ ny”es);elseprintf(“ n”no);10、參考答案: #include<stdio.h>void main()int x, y, z, count=0; /x,y,z 分別表示5分、2分和1 分硬幣的數(shù)量for(x=1; x<=28; x+)/5分硬幣最多不超過28枚for(y=1; y<=73; y+)/2分硬幣最多不超過73枚z=100-x-y;/共有100枚硬

28、幣,減去5分和2分硬幣后為1 分硬幣數(shù)量if(5*x+2*y+z=150)count+ /增加一種方案printf( “ %02d%, 02d, %02d ” , x, y, z); /輸出每一種方案if (count%6=0)printf( n“” ); /沒輸出6種方案后,換行printf( “ con” , count);11、設(shè)計(jì)思想:將 A、B、C、D4個(gè)人的回答用一條件表達(dá)式來表示,對(duì)于 A的回答: thisman!= ;對(duì)于 AB 的回答:thisman= ;對(duì)于 CC 的回答:thisman= ;對(duì)于 DD 的回答:thisman!= ' D'然后,采用枚舉的方

29、法,一個(gè)人一個(gè)人的去試,如果這4個(gè)條件表達(dá)式中有 3個(gè)為真,即4個(gè)條件表達(dá)式的值相加為3,則可判定是其中某人做的好事。參考答案:#include<stdio.h>void main()char thisman=循環(huán)控制變量為k,循環(huán)共進(jìn)行4次for (k=0; k<=3; k+) thisman= ' A +k;初始認(rèn)為A做好事,依次為 B、C、Dsum=(thisman!= A )+(thisman= C )+(thisman= D )+(thisman!= D ); if (sum=3)printf( “ This man is n%”c , thisman);g

30、=1;if (g!=1)printf( “ Can t fno”u );12、參考答案(1):#include<stdio.h>void main()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+)/輸出每行的*號(hào)printf(“ * ” );printf( n“” );for (i=1; i<=2; i+)/接著顯示后兩行 for (j=1; j<=2-i; j+)printf(“ ”

31、 );for (j=1; j<=2*i+1; j+)printf(“ *” );printf(n“” );參考答案(2):#include<stdio.h>void main()int i, j, k;for (i=1; i<=5; i+)/i 控制行數(shù)for (j=1; j<=5-i; j+)/隨行數(shù)的增加,輸出遞減數(shù)目的空格printf()“;”for (k=1; k<=5; k+)/每行輸出5個(gè) *字符printf( “ * ” );printf( n“” ); /將光標(biāo)移到下一行起始位置處參考答案(3):#include<stdio.h>

32、void main()int i, j;for (i=1; i<=5; i+)for (j=1; j<=2*(i-1)+1; j+)printf( “ * ” );printf( n“” );習(xí)題7參考答案編程題1、參考答案:#include<stdio.h>void main()int i, sum=0; a20;for (i=0; i<20; i+)Scanf( “ %d” , &ai); /輸入20個(gè)整數(shù)for (i=0; i<20; i+)/對(duì)非負(fù)數(shù)進(jìn)行統(tǒng)計(jì)if (ai<0)continue;/為負(fù)數(shù),進(jìn)入下一輪循環(huán)sum+=ai;/非

33、負(fù)數(shù)累計(jì)printf( “ sum=n%” d , sum);2、參考答案 #include<stdio.h>void main()int i, j, odd, even, 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ù)組的左邊elseaeven-=n;/將偶數(shù)放置在數(shù)組的喲邊f(xié)or (i=0; i<odd-1; i+)/通過選擇排序?qū)ζ鏀?shù)進(jìn)行升序排列n=j;for (j=i+1; j<odd; j+)

34、if (aj<an)n=j;if (n!=i)t=ai;ai=an;an=t;for (i=odd; i<9; i+)/通過選擇排序?qū)ε紨?shù)進(jìn)行升序排列n=i;for (j=i+1; j<10; j+)if (aj<an)n=j;If (n!=i)t=ai;ai=an;an=t;for (i=0; i<10; i+)printf("%d',ai);出排序結(jié)果printf( n“” );3、參考答案:#include<stdio.h>void main()int i, max, min, a10;printf( “ Input 10 in

35、teger number: 輸入 10個(gè)整數(shù)” ); /for(i=0; i<10; i+)scanf( “ %d” , &ai);max=0;min=0;for(i=1; i<10; i+)if (ai>amax)max=i;if (ai<amin)min=i;i=amax;amax=amin;amin=i;for(i=0; i<10; i+)printf( “ %”d , ai);printf( n“” );4、參考答案:#include<stdio.h>void main()int i, j, t, a6;printf( “ Input

36、6 integer number”: );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、參考答案:#include<stdio.h>void main()int i, j, sum=0, mul=1, a55;printf( “ Input 5*5 arrany”: );for(i

37、=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)continue;mul*=aii;if(i!=2)mul*=ai4-i;printf( “ sum = %d n” , sum, mul);6、參考答案:#include<stdio.h>#define N 6void main()int i, j, aNN;for(i=0; i<N; i+)ai0=1;aii=1

38、;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(“ %2”d , aij);printf(n“” );7、參考答案:#include<stdio.h>#include<string.h>#define N 80void main()char strN;int i;printf( “ Input a string:” );gets(str);printf( “ After r

39、everse:” );for(i=strlen(str)-1; i>=0; i-)printf( “ %c” , stri);printf(n“” );8、參考答案:#include<stdio.h>#include<string.h>#define N 80void main()char strN, strtempN;unsigned int i, j;printf( “ Input a string”: );gets(str);for(i=0, j=0; i<strlen(str); i+)if(stri!=c)strtempj+=stri;strtem

40、pj= 0; strcpy(str, strtemp);printf( “ After delete characcter : ” );printf( “ n%” s, str);9、參考答案:#include<stdio.h>#define N 80void main()char s1N, s2N=” ab0chdijekfg”;unsigned int i;i=0;while(1)s1i=s2i;if(s2i=0 ) break;i+;printf( “ After string copy: %n”s , s1);10、參考答案:#include<stdio.h>

41、void main()char dstStr20= 12345 , srcStr20= 67890 ;unsigned int i, j;printf( “ Before strcat: dstStr=%s srcStr=n%” s , dstStr, srcStr);for(i=0; dstSt ri!=0 ; i+);for(j=0; srcStrj!= 0 ; j+ +)dstStri+j=srcStrj;dstStri+j= 0 ; printf( “ After strcat: dstStr=%n”s , dstStr);11、參考答案:#include<stdio.h>

42、void main()int a10=1,3,5,7,9, num=5, i, n;printf( “ Before inser” t: );for(i=0; i<num; i+)printf( “ %”d , ai);printf( n“” );printf( “ Input a numbe”) r:scanf( “ %d” , &n);for(i=num-1; i>=0; i-)if(ai>n)ai+1=ai;elsebreak;ai+1=n;printf( “ After inser”t: );for(i=0; i<num+1; i+)printf( “

43、%d” , ai);printf( “ n” );s習(xí)題8參考答案編程題1、設(shè)計(jì)一個(gè)函數(shù),用來判斷一個(gè)整數(shù)是否為素?cái)?shù)。參考答案:#include<stdio.h>#include<math.h>int IsPrimeNumber (int number );void main()int a;printf( “ Input a integer number”: );scanf( “ %d” , &a);if(IsPrimeNumber(a)printf( “ %d is prime numbne” r. , a);elseprintf( “ %d isn t pr

44、ime nunm” be, ra.);int IsPrimeNumber(int number)int I;if(number<=-1)return(0);for(i=2; i<sqrt(number); i+)if(number%i=0)return(0);return(i);2、設(shè)計(jì)函數(shù)MaxCommonFactor() ,計(jì)算兩個(gè)正整數(shù)的最大公約數(shù)。參考答案:#include<stdio.h>int MaxCommonFactor(int a, int b);void main()int a,b,c;printf( “ Input two integer numb

45、er”: );scanf( “ %d%d” , &a,&b);c=MaxCommonFactor(a,b);if(c!=-1)printf( “ The biggest common factor o%f d and %d is %d n” , a,b,c); elseprintf( “ The biggest common factor o%f d and %d isn t exins” t , a,b); int MaxCommonFactor(int a, int b)if(a<=0|b<=0)return(-1);while(a!=b) if(a>b)

46、a=a-b;elseif(b>a)b=b-a;ruturn(a);3、定義函數(shù) GetData()用于接收鍵盤輸入的一組整型數(shù)據(jù),并放入一數(shù)組中;另外再定義一個(gè)函數(shù)Sort()用于對(duì)輸入的這一組數(shù)據(jù)按照降序排列。主函數(shù)向后調(diào)用 GetData和Sort函數(shù),輸出最后的排序結(jié)果。參考答案:#include<stdio.h>#define N 10void GetData(int a,int n);void Sort(int a,int n);void main()int i,aN;GetData(a,N);Sort(a,N);printf( “ After sort”: );f

47、or(i=0;i<n;i+)printf( “ %d” ,ai);printf( n“” );void GetData(int a,int n)int i;printf( “ Input numbe”r: );for(i=0;i<n;i+)scanf( “ %d” ,&ai);void Sort(int a,int n)int i,j,k,t;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(aj>ak)k=j;if(k!=i)t=ai;ai=ak;ak=t;4、參考答案: #include<stdio.h>#i

48、nclude<string.h>void JsSort(char str);void main()char str80;printf( “ Input a string”) :gets(str);JsSort(str);printf( “ After sort: n%”s , str);void JsSort(char str)int i,j,k,len;char ch;len=strlen(str);for(i=1;i<len-1;i+=2)k=i;for(j=i+2;j<len;j+=2)if(strj>strk)k=j;if(k!=j)ch=stri;stri=strk;strk=ch;5.參考答案:#include<stdio.h>#include<string.h>#define N 30void Josegh(int p,int n, int s,int m);void main()int i,pN;Josegh(p,N,1,10);for(i=N-1;i>=0;i-)printf(“%4d” ,pi);if(i%10=0)printf( n“” );void Josegh(int p,int n,int s,int m)int i,j,s1,w;s1=s;for(i=1;i<=n;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論