




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1. 目的與要求(1)(2)(3)能正確使用 關系和邏輯運算 構造各種條件 ; 能正確選擇 if 和 switch 語句進行程序設計; 能夠使用 流程圖 和 N-S 圖進行算法 描述。2. 上機練習【練習2-1】若有C源程序2-1.C,其內容如下:#inClude <stdio.h> void main(void) int a=3,b=4,i,j,k;i=(-a=b+)?-a:+b; j=a+;k=b+a+;printf("ni=%d,j=%d,k=%d,a=%d,b=%d",i,j,k,a,b); 先分析程序運行的結果, 然后上機編輯和運行程序, 若分析有誤,
2、試找出原因。并將運行的結果與分析的結果進行比較,i=6,j=2,k=9,a=4,b=7【練習 2-2】若有 C 源程序 2-2.c ,其內容如下: #include <stdio.h> void main(void)int a=3,b=4,c=5,x,y;x=!a+b<c&&(b!=c); y=c/b+(float)a/b&&(float)(a/c); printf("nx=%d,y=%d",x,y);x=a|b-;y=a-3&&c-;printf("n%d,%d,%d,%d,%d",a,
3、b,c,x,y);先分析程序運行的結果, 然后上機編輯和運行程序, 若分析有誤,試找出原因。并將運行的結果與分析的結果進行比較,x=1,y=13,4,5,1,0【練習2-3】若有C源程序2-3.C,功能是輸入x的值,計算并輸出y1和y2的值。廠 y1=5,y2=8x xx<0y1=0,y2=0y1=2x,y2=3xx=0x>0程序內容如下: #in clude <stdio.h> void mai n(void) float x,y1,y2;printfC'P lease en ter x:"); scan f("%f", &
4、;x);if(x<0)y1=2/x;y2=3/x;elseif(x=0)y1=y2=0;elsey1=2*x;y2=3*x;prin tf("nx=%.2f,y1=2f,y2=2frr,x,y1,y2);(1) 上機編輯和運行程序,驗證程序是否正確,若不正確,請找出錯誤的原因,修改后重 新運行,直到實現(xiàn)既定的功能。#i nclude <stdio.h>void mai n(void)float x,y1,y2;printfC'P lease en ter x:"); scan f("%f", &x);if(x<0)
5、y1=5/x;y2=8/x;elseif( x= 0) y1=y2=0;else y1=2*x;y2=3*x;printf("nx=%.2f,y1= % .2f,y2= % .2fn",x,y1,y2);If 語句的嵌套(2) 使用ifelse-if語句重寫上面的程序,并調試運行。#include <stdio.h>void main(void)float x,y1,y2;printf("Please enter x:"); scanf("%f",&x);if(x<0) y1=5/x;y2=8/x;else
6、if(x=0)y1=y2=0;else y1=2*x;y2=3*x;printf("nx=%.2f,y1=%.2f,y2=%.2fn",x,y1,y2); 【練習 2-4】若有 C 源程序 2-4.c ,其內容如下: #include <stdio.h>void main(void)int a,b,c,d,x; a=1,b=3,c=5,d=4;if(a<b)if(c<d) x=100; elseif(a<c)if(b<d) x=200; else x=500; else x=600; else x=700;printf("x=%
7、dn",x);(1) 上面代碼的書寫格式非常糟糕,先分析該程序的執(zhí)行結果,然后上機編輯、調試和 運行程序,認真體會良好的代碼書寫格式對讀程序的重要性。x=200規(guī)范的程序書寫格式: #include <stdio.h> void main(void)int a,b,c,d,x; a=1,b=3,c=5,d=4;if(a<b)if(c<d) x=100;elseif(a<c)if(b<d) x=200;else x=500;else x=600;else x=700;printf("x=%dn",x);N-S 圖。(2) 根據(jù)程序
8、代碼,分別畫出其流程圖和【練習 2-5】若有 C 源程序 2-5.c ,其內容如下: #include <stdio.h> void main(void)int a,b,x,y; a=b=y=0,x=1; switch(x)case 1:switch(y)case 0: a+; break;case 1: b+; break;case 2: a+;b+;break; case 3: a+;b+;break; default:a+;b+;printf("a=%d,b=%dn",a,b);(1) 先分析程序運行的結果, 然后上機編輯和運行程序, 并將運行的結果與分析
9、的結果進行 比較,若分析有誤,試找出原因。a=2,b=1(2) 若把第 18 行和第 21行的 break 語句去掉,程序執(zhí)行的結果是否會變化?這說明了什么? a=4,b=3(3) 若把第 5 行中 x=1 改為 x=4 ,程序執(zhí)行的結果是什么?若再把第 22,23 行一起移到第 8 行,執(zhí)行的結果有什么變化?a=1,b=1a=3,b=23. 上機編程【編程 2-1】 在練習 1-7 中所給出的程序沒有考慮輸入三條邊后是否能夠構成三角形的處 理。請重新設計算法對以上問題進行處理, 即輸入三角邊后先判斷是否構成三角形, 若構成 三角形則求出面積輸出, 否則輸出構不成三角形的信息。 請畫出流程圖或
10、 N-S 圖,并編寫程 序上機調試運行。#include <stdlib.h>#include <stdio.h>#include <math.h> void main(void)int a,b,c;float s,area;printf("Please enter three sides a,b and c:"); scanf("%d%d%d",&a,&b,&c);if(a+b>c&&abs(a-b)<c)s=1.0/2*(a+b+c); area=sqrt(s*(
11、s-a)*(s-b)*(s-c); printf("Three sides:a=%d,b=%d,c=%dn",a,b,c); printf("Area=%.1fn",area); elseprintf("Three sides:a=%d,b=%d,c=%dn",a,b,c);【編程printf(" 這三條邊不能組成三角形! n");2-2】若實現(xiàn)從鍵盤上輸入一個字符,判斷并輸出該字符是以下哪一種的提示信息:如輸入1 ,則顯示的信息是:輸入的是數(shù)字字符1。字母;數(shù)字;空格;其他字符。 請使用ifelse-if 語句編
12、程。#include <stdio.h> #include <math.h>void main(void)char c;printf(" 請輸入一個字符: "); c=getchar();(s 代表銷售額 ) :s<200200< s<400400<s<12001200ws<2400提成 8%提成 8%if(c>='A'&&c<='Z'|c>='a'&&c<='z')printf("輸入
13、的是字母字符%cn",c);else if(c>='0'&&c<='9')printf("輸入的是數(shù)字字符%cn",c);else if(c='40')printf("輸入的是空格字符%cn",c);elseprintf("輸入的是其他字符%cn",c); 【編程 1-3】 若某企業(yè)根據(jù)銷售人員的銷售額發(fā)放提成,計算公式如下沒有提成提成 5%提成 8%2400ws<4000 s > 4000請分別使用 if 和 switch 語句結構分別
14、編寫程序, 實現(xiàn)從鍵盤上輸入銷售額, 即輸出銷售額 和提成。要求程序具有糾錯能力,如輸入負數(shù)就輸出非法數(shù)據(jù)的提示信息并結束程序。if else-if 語句#include <stdio.h>#include <stdlib.h>void main(void)float s;float income;printf(" 請輸入銷售額 :");scanf("%f",&s);if(s<0)printf(" 這是非法數(shù)據(jù) !n");exit(1);else if(s<200)printf("
15、 沒有提成! n");exit(1);else if(s<400) income=(s-200)*0.05;else if(s<1200) income=(s-400)*0.08+200*0.05;else if(s<2400) income=(s-1200)*0.1+800*0.08+200*0.05;else if(s<4000) income=(s-2400)*0.15+1200*0.1+800*0.08+200*0.05;elseincome=(s-4000)*0.18+1600*0.15+1200*0.1+800*0.08+200*0.05;prin
16、tf(" 銷售額是: %.0f, 提成是: %.0fn",s,income);Switch case 語句#include <stdio.h> #include <stdlib.h>void main(void)float s;float income;printf(" 請輸入銷售額 :");scanf("%f",&s);if(s<0)printf(" 這是非法數(shù)據(jù) !n");exit(1);if(s<200)printf(" 沒有提成! n");exit(1);switch(int)(s/400)case 0:income=(s-200)*0.05;break;case 1:case 2:income=(s-400)*0.08+200*0.05;break;case 3:case 4:c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年藝考生奇葩面試題及答案
- 2025年山東數(shù)學初一試題及答案
- 2025年毛概上考試題及答案
- 2025年建行安徽面試試題及答案
- 2025年信息類閱讀測試題及答案
- 建筑材料復習復習測試題
- 華銀運郵應知應會復習測試題
- 化學檢驗工職業(yè)技能鑒定復習試題有答案
- 2025年下夜班培訓考試題及答案
- 2025年物業(yè)管理財務試題及答案
- 現(xiàn)代家政導論-課件 2.2家庭制度認知
- 題型專訓:平方差公式和完全平方公式
- 內容審核機制
- 公司解散清算的法律意見書、債權處理法律意見書
- 《網(wǎng)絡營銷》試題及答案2
- 譯林版-小學五年級下冊-繪本閱讀-Home-Is-Best-課件
- 甲狀腺術后病人護理查房
- 倉儲物流中心總體規(guī)劃設計方案
- 2024年山東新華書店集團限公司臨沂市縣分公司招聘錄取人員(高頻重點提升專題訓練)共500題附帶答案詳解
- 生活垃圾焚燒電廠鋼結構施工方案
- 企業(yè)解散清算公告模板
評論
0/150
提交評論