



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.姓名學號班級1.練習題一編寫程序,計算練習一分段函數的值。( 1)用 scanf 函數輸入 x 的值。( 2)運行程序時,分別按 x 的值小于0、 x 的值在 0-15 之間、 x 的值大于15 三種情況輸入數據,檢查輸出的 y 值是否正確。# include <stdio.h>int k=1;void test();/ 程序是否繼續void main ()while (k=1)int x,y,c;printf("Input x:");scanf("%d",&x);while (c=getchar()!='n'&am
2、p;&c!=EOF);if (x<0)y=x+10;printf("x=%d,y=x+10=%dn",x,y);else if(x<15)y=3*x+5;printf("x=%d,y=3*x+5=%dn",x,y);elsey=2*x-10;printf("x=%d,y=2*x-10=%dn",x,y);test();void test()char c;printf("Test again?y/nn");if (c=getchar()='n'|c='N')/ 只有
3、當輸入 N 或 n 時才終止程序 k=0;.運行結果截圖:思考題及問題:判斷 x 的值在 0-15 之間可否使用表達式“ 0<=x<15”?為什么?正確的表示方法是什么?答案:不可。因為一個條件判斷表達式中最多只能有一個運算符。正確的表示方法是x>=0&&x<15.2.練習題二輸入 3 個數字,判斷他們是否能構成三角形,如果不能,輸出提示信息;否則判斷它是直角、等邊、等腰還是普通三角形。# include <stdio.h> int k=1;void test(); void main()while(k=1)int a,b,c,d;print
4、f("Input a,b,c:");scanf("%d,%d,%d",&a,&b,&c);while (d=getchar()!='n'&&c!=EOF);/ 清空輸入緩存區 if(!(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a)printf(" 三條邊無法構成三角形。n");.elseif (a*a+b*b=c*c|a*a=b*b+c*c
5、|b*b=a*a+c*c)printf(" 這是一個直角三角形 n");else if (a=b&&b=c)printf(" 這是一個等邊三角形 n");else if (a=b|b=c|a=c)printf(" 這是一個等腰三角形 n");elseprintf(" 這是一個普通三角形 n");test();void test()char c;printf("Test again?y/n: ");if (c=getchar()='n'|c='N')
6、/ 只有當輸入 N 或 n 時才終止程序 k=0;運行結果截圖:思考題及問題:判斷三角形的類型時需要用到各種判斷條件,入等邊三角形的判斷條件是 3 條邊相等,該判斷條件可否描述為“ a=b=c”?為什么?答案:.不能,“=”在 C 語言中是賦值符號,在條件判斷式中是一個永真式,會引起語義錯誤。1. 練習題三編寫一個程序,輸出給定的某年某月的天數。要求:采用 switch 語句實現。程序代碼:# include <stdio.h>void main()int year,mon,days,leap;printf(" 年.月 :");scanf("%4d.%
7、2d",&year,&mon);switch(mon)case 1:case 3:case 5:case 7:case 8:case 10:case 12:days=31;break;case 4:case 6:case 9:case 11:days=30;break;case 2: if (year%4=0&&year%100!=0|year%400=0)leap =1;elseleap=0;if (leap)days=29;elsedays=28;printf("%d 年%d 月的天數為 %d 天n",year,mon,days
8、);.運行結果截圖:思考題及問題: 本程序所給代碼中的switch 語句沒有 default 語句可以嗎? default 語句應該在 switch 語句的什么位置?可以。 Default 語句可以在 之間的任意位置。 本程序所給代碼中的最后一個case語句中,沒有 break 正確嗎?請解釋。正確。在 switch 語句中,當找到符合條件的 case時,執行該 case語句及之后的其他情況的語句,故 C 語言會在 case語句和 default 語句后加 break;防止執行下面的語句。而最后一個 case 語句后無其他語句,故沒有 break 語句也正確。1. 自測練習一編寫程序,計算邏輯
9、表達式的值。.假設 int a=0,b=1,c=1,d=3;(1) 表達式 a*b&&c-d 、 c-d&&a*b是多少?為什么?程序代碼:# include <stdio.h> void main()int a=0,b=1,c=1,d=3;printf("%d,%d",a*b&&c-d,c-d&&a*b);運行結果截圖及原因:a*b=0,邏輯假,由于與運算的短路性, && 右邊的表達式不進行,直接為 0;c-d=-2,邏輯真,為 1,故第二個運算式為 1&&0=0.
10、(2) 表達式 a|+b&&-c的值是多少?變量a、 b、 c 的值分別是多少?為什么?程序代碼:# include <stdio.h> void main()int a=0,b=1,c=1,d=3;printf("%dn",-a|+b&&-c);printf("a=%d,b=%d,c=%d",a,b,c);運行結果截圖及原因:+b 即 b 的值為 2,是真值 1,-c 值即 c 的值為 0,假值 0。-a 即 a 的值為 0,假值 0. 故結果為 0|1&&0=1&&0=0 ,
11、(3) 表達式 +b&&-c|-a的值是多少?變量a、b、 c 的值分別是多少?為什么?程序代碼:.# include <stdio.h> void main()int a=0,b=1,c=1,d=3;printf("+b&&-c|-a=%dn",+b&&-c|-a); printf("a=%d,b=%d,c=%d",a,b,c);運行結果截圖及原因:+b 即 b 的值為 2,是真值 1,-c 值即 c 的值為 0,假值 0。-a 即 a 的值為 -1,真值 1. 故結果為 1&&
12、;0|1=1 ,2. 自測練習二設整型變量 a、 b、c 分別存放從鍵盤輸入的 3 個整數。編寫 C 程序,按從大到小排列這 3 個數,使 a 成為最大值, c 成為最小值,并且按序輸出這 3 個數。源程序代碼:# include <stdio.h> void main()int a3=0,t,j,i,k; for (i=0;i<=2;i+)printf("Input %c:",i+97);scanf("%d",&ai);for (j=0;j<=2;j+)/ 冒泡法for (i=0;i<=2-j;i+)if (ai&
13、lt;ai+1)t=ai,ai=ai+1,ai+1=t;printf("a=%d,b=%d,c=%dn",a0,a1,a2);運行結果截圖:.3. 自測練習三從鍵盤輸入一個小于六位的正整數,判斷它是幾位數,并按照相反的順序輸出各位上的數字,例如輸入1234,輸出為 4321。源程序代碼:# include <stdio.h># include <math.h> void main()int i=4,a6=0,k=0;printf( 請“輸入一個小于六位的正整數 :"); scanf("%d",&a5);while
14、 (a5<(int)pow(10,i)/ 判斷輸入數據的位數i-;k=i+1;printf(" 它是 %d 位數 ",k);ai+1=a5;for (;i>=1;i-)ai=ai+1%(int)pow(10,i);ai+1=ai+1/(int)pow(10,i);for (i=1;i<=k;i+)/ 倒序輸出printf("%d",ai);printf("n");運行結果截圖:.4. 自測練習四假設今天是星期日,編寫一個程序,求n( n 由鍵盤輸入)天后是星期幾。源程序代碼:# include <stdio.h
15、>void main()int n,t;printf(" 假設今天是星期日,求n 天后是星期幾 n 輸入 n=");scanf("%d",&n);t=n%7;switch(t)case 0:printf("n 天后還是星期日 n");break;case 1:printf("n 天后是星期一 n");break;case 2:printf("n 天后是星期二 n");break;case 3:printf("n 天后是星期三 n");break;case 4:p
16、rintf("n 天后是星期四 n");break;case 5:printf("n 天后是星期五 n");break;case 6:printf("n 天后是星期六 n");運行結果截圖:.5. 自測練習五假定向香港郵寄包裹的收費規則如下:首先,包裹重量向上取整到最近的15g 的倍數,然后按書上表格收費,編寫一個程序根據用戶輸入的包裹的重量和里程計算郵費。包裹郵費計算表重量( g)收費(元)15530945126014(每足 1000km 加 1 元)75 及以上15(每足 1000km 加 2 元)源程序代碼:# include
17、<stdio.h>int k=1,c=0;/ 全局變量void test()printf("Test again?y/n: ");if (c=getchar()='n'|c='N')/ 只有當輸入 N 或 n 時才終止程序 k=0;void main()while(k=1)int m,s;printf(" 請輸入包裹重量 (g)");scanf("%d",&m);printf(" 請輸入里程數 (km)");scanf("%d",&s);while(c=getchar()!='n'&&c!=EOF);/ 清空輸入緩存區if(m%15!=0)m=(m/15+1)*15;/ 取 m 為 15 的倍數s/=1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年四川省德陽市中考歷史真題
- 校園流浪動物救助活動策劃與志愿者團隊建設研究論文
- 小學課間活動對課堂紀律影響的調查研究論文
- 英語社日常管理制度
- 萊蕪鋼城區中考二模語文試題(含答案)
- 設備維修合同 (一)
- 自動控制原理復習題
- 表格式課時教案二年級數學上冊人教版
- 自動控制理論實驗教學大綱
- 河北省廊坊市永清縣2024-2025學年八年級下學期6月期末英語試題(含答案無聽力原文及音頻)
- 華萊士加盟合同范本
- 內蒙古呼和浩特市2024-2025學年九年級上學期期末歷史試題(含答案)
- 《銷售技巧及話術》課件
- 2025年新高考全國Ⅰ卷英語模擬試卷(含答案)
- 遼寧省沈陽市皇姑區2023年小升初語文試卷(學生版+解析)
- 鐵路技術規章:018鐵路軍事運輸管理辦法
- 廣東開放大學Java程序設計基礎(專)單元測試1-7答案
- 大部分分校:地域文化形考任務三-國開(CQ)-國開期末復習資料
- 2022-2023學年天津市濱海新區高二(下)期末地理試卷
- 《中國近現代史綱要》題庫及參考答案
- 五年級滬教版數學下學期應用題專項針對練習
評論
0/150
提交評論