![c語言程序的設計第五版習題答案解析_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/1fb96549-5943-4624-a305-c3375196cbe2/1fb96549-5943-4624-a305-c3375196cbe21.gif)
![c語言程序的設計第五版習題答案解析_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/1fb96549-5943-4624-a305-c3375196cbe2/1fb96549-5943-4624-a305-c3375196cbe22.gif)
![c語言程序的設計第五版習題答案解析_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/1fb96549-5943-4624-a305-c3375196cbe2/1fb96549-5943-4624-a305-c3375196cbe23.gif)
![c語言程序的設計第五版習題答案解析_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/1fb96549-5943-4624-a305-c3375196cbe2/1fb96549-5943-4624-a305-c3375196cbe24.gif)
![c語言程序的設計第五版習題答案解析_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/1fb96549-5943-4624-a305-c3375196cbe2/1fb96549-5943-4624-a305-c3375196cbe25.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 .習題解析與答案第1章C語言概述一 簡答題1概述C語言的主要特點?!窘獯稹浚?)語言簡潔、緊湊,使用方便、靈活。(2)數據類型豐富,表達能力強。(3)運算符多樣。C語言中的運算符包含的范圍非常廣泛。(4)具有結構化的控制語句。如ifelse語句、while語句、do while語句、switch語句、for語句。(5)允許直接訪問物理地址。C語言中含有的位和指針運算,能夠直接對內存地址進行訪問操作。(6)所生成的目標代碼質量高,可移植性好。2構成C語言程序的基本單位是什么?它由哪幾部分組成?【解答】函數是構成C語言程序的基本單位。一個完整的C程序一般由文件包含、宏定義、函數說明、變量和一個或
2、若干個函數組成。3語言程序的運行一般要經過哪幾個步驟?【解答】(1)編輯;(2)編譯;(3)連接,生成EXE文件;(4)執(zhí)行。二運行程序寫結果1輸入下面程序并運行。main()int a1,a2,x; a1=100;a2=50;x=a1-a2; printf(x=%dn,x);【解答】運行結果為:x=502輸入下面程序并運行。main() int a1,a2,x; a1=10;a2=20;x=a1*a2; printf(a1=%d,a2=%dn,a1,a2);printf(x=%dn,x); 【解答】運行結果為:a1=10,a2=20 x=2003輸入下面程序并運行。#include main
3、()printf(*n);printf( *n);printf( *n);printf( *n);printf( *n);printf( *n);【解答】運行結果為:* * * * * *思考:可以修改程序,使之輸出平行四邊形,等腰三角形等圖形。三編程題1參照本章例題,編寫一個程序,用于顯示如下信息:*I love C programs!*【分析與提示】要有文件包含語句#include 。C語言中沒有數據的輸入、輸出等功能,數據的輸入、輸出都是通過調用系統(tǒng)提供的庫函數scanf和printf等來實現的。這些函數的說明都包括在stdio.h文件中。main是主函數的名稱。用括起來的內容是函數體,
4、函數體由若干條語句組成,這是計算機要執(zhí)行的部分,每條語句以分號“;”結束。 注意顯示的信息有三行,所以要用到換行符“n”。參考代碼:#include main()printf(*n);printf( I love C programs! n);printf(*n);第2章 數據類型及其運算一簡答題1C語言中的數據類型主要有哪幾類?【解答】 短整型(short int ) 整型 整 型 (int) 長整型(long int ) 基本類型 字符型 (char) 單精度(float) 實型(浮點型) 雙精度(double) 枚舉類型(enum) 數組類型 構造類型 結構體類型 (struct) 共用
5、體類型(union) 指針類型空類型(void)2 字符常量與字符串常量有什么區(qū)別?【解答】字符常量用單括號括起,字符串常量用雙括號括起;字符常量存儲時占1個字節(jié),字符串常量存儲時除了n個字符外,還有系統(tǒng)加上的字符串終止符0,所以字符串常量存儲時占n+1個字節(jié)。3 C語言中的常量包括哪幾類?各自是如何構成的?【解答】C語言中的常量是一些其值預先定的量,并且在程序執(zhí)行過程中其值不再發(fā)生變化。常量的分類遵循基本數據類型分類原則,C語言編譯系統(tǒng)自動將其存放在于類型相應的內存單元中。其類別包含整形常量、浮點常量、字符常量、字符串常量和枚舉常量。整形常量又分為十進制整形常量、八進制整形常量、十六進制整形
6、常量。浮點常量分成十進制形式和指數形式。C語言中的,字符常量是用單括號括起來的一個字符或是字符序列,而字符串常量是用一對雙括號括起來的零個或者多個字符組成的序列。4 簡述指針、變量的指針、變量的值、指針變量與指針變量的值的含義是什么?【解答】C語言中將地址又稱為“指針”。一個變量所分配的內存空間首字節(jié)地址,稱為該變量的指針(地址),變量的值就被放入所分配的地址單元中。地址一旦被分配,就不會再改變,所以,指針是一個常量。既然是常量就可以把它賦給一個變量。用來存放指針的變量,被稱為指針變量。一個指針變量的值是變量的地址,一個指針變量可以被賦予不同的指針值。5 下面哪些是不合法的常量?說明不合法的理
7、由。123,3.1415926,0892,M,n,0xabc,0.618E-6,”Morning”,3.8e-3.14【解答】非法常量有:0892含有非八進制數字8和93.8e-3.14非法指數形式浮點常量:規(guī)定e后面的指數必須為整數。6下面對變量定義的語句哪些不正確?為什么?請改正。(1) char c1,int a2; (2) INT a,b; FLOAT x,y;(3) a,b:char;(4) char if; (5) int a,b (6) Int a:b:c; (7) int a,x; float x,y;【解答】(1) char c1,int a2;錯誤。定義不同類型的變量時,應
8、用分號彼此分開。改正為:char c1; int a2;(2) INT a,b; FLOAT x,y;錯誤。C語言中表示類型名的關鍵字必須小寫。改正為:int a,b; float x,y;(3) a,b:char;錯誤。C語言中變量定義格式為:類型名 變量名;改正為: char a,b;(4) char if;錯誤。變量名不能與C語言的關鍵字重名。改正為:char f1;(5) int a,b 錯誤。變量定義以語句形式出現,應以分號結尾。改正為:int a,b;(6) Int a:b:c; 錯誤。類型名不能有大寫字母,相同類型名之間用逗號分隔。改正為:int a,b,c;(7) int a,
9、x; float x,y;錯誤。在同一程序位置上,同一變量名不能重復定義充當兩個不同的變量。改正為:int a,x; float x1,y;7 下述字符串常量的長度是多少?在內存中存儲時各自占用的單元數又是多少?(1) “Hello!” (2) “ABCnTH064?” (3) “xAB*765+123=?”【解答】(1)“Hello!” 字符串長度為6,占用內存字節(jié)數為7。(2)“ABCnTH064?” 字符串長度為9,占用內存字節(jié)數為10。因為其中n 064?各自只占一個字符的位置。(3) “xAB*765+123=?” 該字符串不是合法的,因為765表示的值太大,超出合法的ASCII字符
10、集的范圍。二運行程序寫結果1以下程序的執(zhí)行結果是。 main() int i,j;i=15;printf(“%d,%d”, i+,i-);【解答】14,152以下程序的執(zhí)行結果是 。main() int a=20,b=10,c,*p1,*p2; p1=&a;p2=&b; c=(-*p1)/(*p2)+6; printf(a=%d,b=%dn,a,b);printf(*p1=%d,*p2=%dn,*p1,*p2); printf(c=%dn,c);【分析與提示】 p1 a a20b10 P2 b 【解答】a=20,b=10 *p1=20,*p2=10 c=43以下程序的執(zhí)行結果是 。#inclu
11、de main()char a=G,b=o,c=o,d=d;a=a+32; b=b-6;c=c+3;d=d+8;printf(%c%c%c%cn,a,b,c,d);【分析與提示】從ASCII代碼表可以看出,字符“G”、“o”、“o”、“d”的ASCII代碼值為71、111、101,因此,G+32、o-6、o+3、d+8的值分別是103、105、114、108,它們所對應的字符分別是“g”、“i”、“r”、“l(fā)”。常用結論:(1)在C語言中,字符數據可以按其ASCII代碼值參加整數運算。由于英文字母在ASCII代碼表中是按順序排列的,所以在計算o+3代表的字母時,可從字符o其順序向后取3個字母,
12、該字母是“r”。(2)從ASCII代碼表可以看出“小寫字母”-“對應大寫字母”的結果是32,因此可推算出如下等式:大寫字母的ASCII值+32=對應小寫字母的ASCII值;小寫字母的ASCII值-32=對應大寫字母的ASCII值。【解答】girl4以下程序的執(zhí)行結果是 。#include main()int x;x=-3+4*5-6;printf(x1=%dn,x);x=3+4%5-6;printf(x2=%dn,x);x=-3*4%-6;printf(x3=%dn,x);【分析與提示】x1=11(4*5是20,-3+20是17,17-6等于11) x2=1(4%5等于4,3+4等于7,7-6
13、等于1) x3=0(-3*4等于-12,-12%-6等于0)【解答】x1=11 x2=1 x3=05以下程序的執(zhí)行結果是 。#include main() printf(%dn,NULL);printf(%d,%cn,49,49);printf(%d,%c,%on,48+10,48+10,48+10);【分析與提示】0(NULL的ASCII碼值是0)49,1(數字1的ASCII碼值是49)58,:,72(48+10等于58,正好是“:”的ASCII碼值,八進制表示是72)【解答】0 49,1 58,:,72三、改錯題1 請修改下列程序,使其能夠通過編譯。#include Void Main()
14、 int a=6;b=8;int c;c=a*b;printf(%d,c);【答案】錯誤的地方有3處:(1)第2行關鍵字應該小寫;(2)定義b時前面應該用逗號;(3)打印語句的格式應該用雙引號括起來。正確的程序如下:#include void main() int a=6,b=8;int c;c=a*b;printf(%d,c);2 請修改下列程序,使其能夠正確運行。#include void main(); float f=7.12;char c=”c”;printf(“%dn”,int(f%3);printf(“%c”,c);【答案】錯誤的地方有3處:(1)第2行main();不應該有分號
15、;(2)定義char c=”c”;時,字符常量應該用單引號;(3)打印語句printf(“%dn”,int(f%3);的格式有錯,應該在f前的int用括號括起來,因為實型數據不能執(zhí)行取余運算。正確的程序如下:#include void main() float f=7.12;char c=c;printf(%dn,(int)f %3);printf(%c,c);第3章 順序結構程序設計一 簡答題1程序有哪三種基本結構?【解答】程序的三種基本結構為:順序結構、選擇結構和循環(huán)結構。2C語言的語句有哪幾類?表達式語句與表達式有什么不同?【解答】C語句可分為以下五類:表達式語句、函數調用語句、控制語句
16、、復合語句和空語句。其中表達式語句與表達式的區(qū)別在于表達式語句是表達式加上“;”組成。二、填空題 1符號& 是運算符,&a是指。2C語言中的空語句就是。3Scanf函數中的“格式字符”后面應該是,而不應該是。4若想輸出字符%,則應該在“格式字符”的字符串中用表示。5int x=7;執(zhí)行x+=x- =x+x;后x的值是。6int a=10,b=20;a+=b;b=a-b;a- =b; 的功能是。答案:1地址、變量a的內存地址。 2一個分號。3變量地址,變量名。4 連續(xù)2個%號。 5 -14 6交換 變量a,b的值,打印出a=20,b=10。三運行程序寫結果1.以下程序的執(zhí)行結果是 。#inclu
17、de main()double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf(%dn,d*y);【解答】02以下程序的執(zhí)行結果是 。main()double d;float f;long l;int i;i=f=l=d=20/3;printf(%d %ld %f %fn,i,l,f,d); 【解答】6 6 6.000000 6.0000003以下程序的執(zhí)行結果是 。main()int k=17;printf(%d,%o,%xn,k,k,k); 【解答】17,21,114以下程序的執(zhí)行結果是 。#include main()char a,b,c,d;a=A,b
18、=B,c=C,d=D;printf(%1cn,a); printf(%2cn,b); printf(%3cn,c); printf(%4cn,d);【分析與提示】可以用%c格式輸出的,也可以用%d格式輸出,所以與md近似,m指出了要輸出數據的寬度。若數據位數小于m,則左端補空格,若數據位數大于m,則按實際位數輸出?!窘獯稹緼 B C D5以下程序的執(zhí)行結果是 。#include main()char c1,c2;scanf(%c%c,&c1,&c2);printf(c1=%c,c2=%c,c3=%d,c4=%d,c1+,-c2,c1,c2);【解答】運行輸入:AB運行結果為:c1=A,c2=A
19、,c3=65,c4=666以下程序的執(zhí)行結果是 。#include main()char c1,c2;scanf(%c,%c,&c1,&c2); +c1;-c2;printf(c1=%c,c2=%cn,c1,c2);【分析與提示】例如當輸入B,C,B,C的ASCII碼值為66,67,執(zhí)行+c1; -c2;后,c1為66+1變成67即C,c2為67-1變成66即B。【解答】運行輸入:B,C,運行結果為:c1=C,c2=B7以下程序的執(zhí)行結果是 。main()char ch=a;int a=98;unsigned b=1000;long c=123456789;float x=3.14;doubl
20、e y=1.2345678;printf(1)a=%d,a=%c,ch=%d,ch=%cn,a,a,ch,ch);printf(2)b=%un,b);printf(3)c=%ldn,c);printf(4)x=%f,y=%fn,x,y);printf(5)x=%e,y=%en,x,y);printf(6)y=%-10.2fn,y);【解答】(1)a=98,a=b,ch=97,ch=a(2)b=1000(3)c=123456789(4)x=3.140000, y=1.234568(5)x=3.14000e+00,y=1.23457e+00(6)y=1.238以下程序的執(zhí)行結果是 。#includ
21、emain()int a,b;float x;scanf(%d,%d,&a,&b);x=a/b;printf(nx=%fn,x);【解答】運行輸入:2,2,運行結果為:1.0000009當輸入12345,a時,給出程序的運行結果,執(zhí)行結果是 。#includemain()int a;char c;scanf(%3d,%c,&a,&c);printf(n%d,%dn,a,c);【分析與提示】md,m指出了要輸出數據的寬度。若數據位數小于m,則左端補空格,若數據位數大于m,則按實際位數輸出。a的ASCII碼值是97?!窘獯稹?2345,9710分析下面程序,在鍵盤上輸入數據 才能使得變量a=10,
22、b=20,c1=A,c2=a,x=1.5,y=-3.75,z=67.8。程序如下:#includemain()int a,b;float x,y,z;char c1,c2;scanf(%5d%5d%c%c%f%f%*f,%f,&a,&b,&c1,&c2,&x,&y,&z);printf(a=%d,b=%d,c1=%c,c2=%c,x=%f,y=%f,z=%f,a,b,c1,c2,x,y,z);【分析與提示】按%5 d格式輸入a與b的值時,要先鍵入三個空格,然后再鍵入10與20。%*f是用來禁止賦值的。在輸入時,對應%*f位置可以隨意輸入一個數(我們輸入1.5,該數不會賦值給任何變量的)?!窘獯?/p>
23、】運行輸入:1020Aa1.5-3.751.5,67.8 11一個程序中,使用了多個scanf函數輸入數據,用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=%d,b=%d,&a,&b); scanf( x= %f,y=%e,&x,&y); scanf( c1= %cc2=%c,&c1,&c2); printf(a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn,a,b, x,y,c1,c2); 【分析與提示】在使用多個scanf函數輸
24、入數據時,第一個輸入行末尾輸入的回車被第二個scanf函數吸收,因此在第二、三個scanf函數的雙引號后放置一個空格以抵消上行輸入的回車鍵。若沒有一個空格,則按上面輸入的數據會出錯?!窘獯稹窟\行輸入:a=3, b=4 X=8, y=71.82C1=AC2=a運行結果:a=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a四編程題1由鍵盤輸入1個字母,輸出其ASCII碼值?!痉治雠c提示】將一個字符常數賦給一個字符變量,并不是把該字符本身放到內存單元中去,而是將該字符的ASCII代碼放到內存單元中,因此,字符型數據也可以像整型數據那樣使用,可以用來表示一些特定范圍內的整數
25、。所以int型與char型變量的值可以互換,分別用%c和%d不同格式輸出就行了。但是注意這種轉換是有條件的。因為,char變量在內存占一個字節(jié),而int整型變量占2個字節(jié)。當int型高位字節(jié)是0時,char與 int可以互換;若不是0,則不可以互換。例如,用%c格式輸出時,取低位字節(jié),高位字節(jié)被舍棄。參考代碼:#include stdio.hmain()char ch;ch=getchar();printf(%c,%d,ch,ch);【解答】運行輸入:B 運行結果:B,662從鍵盤上輸入一個大寫字母,把它轉換成小寫字母,然后顯示出來?!痉治雠c提示】大寫字母轉換小寫時ASCII碼值+32,相反的
26、,小寫字母轉換成大寫字母時ASCII碼值-32。參考代碼: #include main() char x1,x2;printf(x1=?n); scanf(%c,&x1);x2=x1+32;printf(%c,%cn,x1,x2);【解答】運行輸入:A 運行結果:A,a3從鍵盤上輸入兩個實型數,求兩數的和、差、積,輸出結果時要求小數部分占兩位。【提示】結果要求保留2位小數,所以輸出的結果格式為%.2f。main()float x,y,a,b,c; printf(please input x,y:); scanf(%f,%f,&x,&y); a=x+y; b=x-y; c=x*y; printf
27、(x=%f,y=%fn,x,y); printf(x+y=%.2fnx-y=%.2fnx*y=%.2fn,a,b,c);【解答】運行輸入:please input x,y:10,20運行結果:x=10.000000,y=20.000000 x+y=30.00 x-y=-10.00 x*y=200.004編寫一個程序,求出給定半徑r的圓以及內正n邊形的面積,并且輸出計算結果。r和n的值由用戶輸入?!痉治雠c提示】由數學知識得到: 半徑為r圓的面積,半徑為r圓的內接正n邊形的面積,其中 處理步驟:提示信息,接收參數值;計算圓的面積; 計算正n邊形的面積;輸出結果。參考代碼:#include #inc
28、lude #define PI 3.14main()int n;float r,s,area;printf(Please input the radius and the N.:n);scanf(%f%d,&r,&n);s=PI*r*r;area=(n*r*r*sin(2*PI/n)/2.0;printf(S=%.2ftA=%.2fn,s,area);return(0);運行結果如下:Please inout the radius and the N.;1 5S=3.14 A=2.38 5已知華氏溫度與攝氏溫度之間的轉換公式是:, 編寫一個程序,將用戶輸入的華氏溫度轉換成攝氏溫度,并予以輸出。
29、【分析與提示】首先要定義輸入輸出溫度為浮點型,且5/9兩數相除結果為整數,5/9的值為0,故不能寫成5/9,而應寫成(5.0/9.0)*(f-32)。結果要求保留2位小數,所以輸出的結果格式為%5.2f。參考代碼: #include main() int f; float c; printf(nplease input the F:); scanf(%d,&f); c=5.0/9*(f-32); /*不能寫成5/9,兩數相除結果為整數,5/9的值為0*/ printf(the C.temperature is: %.2f,c); return(0); 【解答】運行結果如下: please in
30、put the F: 75 the C.te,erature is: 23.896由鍵盤輸入5個學生的計算機成績,計算他們的平均分并保留2位小數?!痉治雠c提示】方法與上題類似,同樣是保留兩位有效數字%6.2f。參考代碼:main()int a,b,c,d,e;float total,aver;printf(Plese input 5 students scores:n);scanf(%d,%d,%d,%d,%d,&a,&b,&c,&d,&e);total=a+b+c+d+e;aver=total/5.0;printf(Average:%6.2fn,aver);【解答】運行輸入:80,93,75
31、,68,87 運行結果:Average:80.607編寫將輸入的英里轉換為公里,每英里等于5380英尺,每英尺等于12英寸,每英寸等于2. 54厘米,每公里等于100 000厘米。main()double mile,k;printf(“enter mile:”);scanf(“%lf”,&mile);k=mile*5380*12*2.54/100000;printf(“ %lf mile is %lf kilometern”,mile,k);【解答】運行:enter mile:22.000000 mile is 3.279648 kilometer第4章 選擇結構程序設計4.1 習題一填空題1
32、.已知a=3,b=4,c=5。則邏輯表達式a+bc&b= =c的值為 ,!(ab)&c|1的值為 ,!(a+b)+c-1&b+c/2的值為 ?!痉治雠c提示】本題考查運算符的優(yōu)先級別。【解答】0 ; 1 ; 1二、運行程序寫結果1.下列程序運行的運行結果為 。 #includemain() int a=3,b=8,c=9,d=2,e=4; int min; min=(ab)? a:b;min=(minc)? min:c; min=(mind)? min:d;min=(mine)? min:e; printf(Min is%dn,min); 【分析與提示】本題程序的功能為:找出a,b,c,d,e中
33、最小的值并輸出?!窘獯稹縈in is 2 2若輸入3,4,下列程序運行的運行結果為 ;若輸入4,3,下列程序運行的運行結果為 。#includemain() int a,b,c; printf(Input a,b: ); scanf(%d,%d,&a,&b); if(a=b) c=a*b; printf(%d*%d=%dn,a,b,c); else c=a/b; printf(%d/%d=%dn,a,b,c); 【分析與提示】本題程序的功能為:從鍵盤輸入變量a,b,計算c的值(若a=b,則c=a*b,若ab則c=a/b),并輸出a,b,c的值?!窘獯稹?/4=0 ; 4*3=123下列程序運行
34、的運行結果為 。#include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2:a+; b+; break; printf(a=%d,b=%dn,a,b); 【分析與提示】本題中case 1:后面是一個switch語句,執(zhí)行完該語句后,直接執(zhí)行case 2:后面的語句。【解答】a=2,b=1三編程題 1輸入一個字母,若為小寫,則把它變成大寫輸出。 【分析與提示】小寫字母的ASCII碼值與其對應的大寫字母的ASCII碼值相差32。參考代碼:m
35、ain( )char c;printf(請輸入一個字母n) ;scanf(%c, &c);if(c=a&c=z)c=c-32;printf(%cn,c) ;2 企業(yè)發(fā)放的獎金根據利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可可提成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成5%;40萬到60萬之間時高于40萬元的部分,可提成3%;60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發(fā)放獎金總數?【分
36、析與提示】請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。 參考代碼:main()long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf(%ld,&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15;if(i=100000)bonus=i*0.1;else if(i=200000)bonus=bonus1+(i-
37、100000)*0.075;else if(i=400000)bonus=bonus2+(i-200000)*0.05;else if(i=600000)bonus=bonus4+(i-400000)*0.03;else if(ib?a:b ;max=maxc?max:c;min=ab?a:b;min=minc?min:c;printf(最大值為:%d,最小值為:%dn,max,min) ;4有一函數: x (x1) y= 2x-1 (1x10) 3x-11 (x10)編一程序,輸入一個x值,輸出y值。 【分析與提示】本題考查if語句的嵌套,應當注意if與else的配對關系。從最內層開始,el
38、se總是與它上面最近的(未曾配對的)if 配對。參考代碼: main( )float x,y;printf(請輸入x的值 n) ;scanf(%f, &x);if(x=10) y=3*x-11;else y=2*x-1;printf(x=%6.2f,y=%6.2f,x,y) ;5從鍵盤上輸入星期號,并顯示該日期的英文名字?!痉治雠c提示】本實例知識點:switch語句。switch語句的控制流程是:首先計算表達式的值,然后依次與每一個case中的常量值進行比較,一旦發(fā)現了某個能夠匹配的值,就執(zhí)行該case后面的語句組,直到遇到break語句為止。如果表達式的值與所有case中的常量都不匹配,則執(zhí)
39、行default后面的語句組。參考代碼:main( )int xqh;char ywm; printf(請輸入星期號(17):n);scanf(%d,&xqh);switch(xqh) case 1: printf(Monday); break; case 2: printf(Tuesday); break; case 3: printf(Wednesday); break; case 4: printf(Thursday); break; case 5: printf(Friday); break; case 6: printf(Saturday); break;case 7: printf
40、(Sunday); break; default:printf(error); 6某市不同車牌的出租車3公里的起步價和計費分別為:夏利7元/公里,3公里以外2.1元/公里;富康8元/公里,3公里以外2.4元/公里;桑塔納9元,3公里以外2.7元/公里。編程:從鍵盤輸入乘車的車型及行車公里數,輸出應付車資。【分析與提示】可設三個變量,分別表示乘車的車型、行車公里數和應付車資,根據乘車的車型和行車公里數,計算出應付的車資。參考代碼:main( )int cx; /*定義乘車的車型變量cx */ float gl, cf; /*定義行車公里數變量gl、應付車資變量cf */printf(t1-夏利n
41、 t2-富康n t3-桑塔納n);printf(t請輸入車型(1-3): );scanf(%d,&cx);printf(nt請輸入行車公里數: );scanf(%f,&gl);switch(cx) case 1: if(gl=3) cf=7.0;else cf=7+(gl-3)*2.1 ;break; case 2: if(gl=3) cf=8.0;else cf=8+(gl-3)*2.4 ;break; case 3: if(gl=3) cf=9.0;else cf=9+(gl-3)*2.7 ; printf(應付車資為%.1fn,cf); 7給一個不多于5位的正整數,要求:求出它是幾位數;
42、分別打印出每一位數字;按逆序打印出各位數字。如原數為12345,則逆序為54321?!痉治雠c提示】本題的思路是:設5個變量,分別代表個位、十位、百位、千位和萬位。從個位起,依次將各個位取出來,按取出的順序組合成新的數據,并記錄當前取出的數字的個數。參考代碼:#include stdio.hmain( )unsigned x,m,n=0,w=0;unsigned ge=0,shi=0,bai=0,qian=0,wan=0;printf(請輸入一個正整數);scanf(%u,&x);m=x;ge=m%10; m=m/10; w=1; n=ge;if(m) shi=m%10; m=m/10; w=2
43、; n=n*10+shi; if(m) bai=m%10; m=m/10; w=3; n=n*10+bai; if(m) qian=m%10; m=m/10; w=4; n=n*10+qian; if(m) wan=m; w=5; n=n*10+wan; printf(n%u為%u位數,n,w);printf(n正整數的原序為:%u,x);printf(n正整數的逆序為:%u,n);注:當該程序輸入一個較大的5位數時,輸出結果就不正確了,思考為什么?動手試一下怎樣修改該程序。第5章 循環(huán)結構程序設計一、填空題1下面程序的功能是用“輾轉相除法”求兩個正整數的最大公約數。請?zhí)羁铡?#include main() int r,m,n; scanf(%d%d,&m,&n); if(mn) (1) ; r=m%n; while(r)m=n;n=r; (2) ; printf(%dn,n); 【分析與提示】輾轉相除法:兩數相除,若不能整除,則以除數作為被除數,余數作為除數,繼續(xù)相除,直到余數為0時,當前除數就是最大公約數。 【解答】(1)r=m;m=n;n=r; (2)r=m%n;二運行程序寫結果1下列程序運行的運行結果為 。#include ma
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年事業(yè)單位合同簽訂風險防范與應對措施
- 2025年廣州房地產交易合同居間操作流程
- 2025年數字視頻切換臺項目規(guī)劃申請報告模稿
- 2025年合作經營居間投資協(xié)議書
- 2025年專業(yè)知識產權顧問合同范本
- 2025年債權轉讓合同協(xié)議示范
- 2025年信息技術咨詢顧問服務年合同
- 2025年農村耕地流轉合同樣本
- 2025年住宿生權益協(xié)議
- 2025年傳統(tǒng)村落保護搬遷安置協(xié)議
- 耳鼻喉培訓學習課件
- 中醫(yī)護理中藥封包課件
- 《項脊軒志》公開課課件【一等獎】
- 小兒急乳蛾(小兒急性扁桃體炎)中醫(yī)臨床路徑(2018年版)
- 《制作饅頭》課件
- 美發(fā)學徒助理職業(yè)規(guī)劃書
- 中建抗浮錨桿專項施工方案范例
- 高一化學第二學期教學進度計劃
- 職代會提案征集表
- 市場營銷-OPPO手機市場營銷策略優(yōu)化研究
- 煤礦安全生產管理能力管理機制與創(chuàng)新管理課件
評論
0/150
提交評論