實(shí)驗(yàn)4 選擇結(jié)構(gòu)程序設(shè)計(jì)_第1頁
實(shí)驗(yàn)4 選擇結(jié)構(gòu)程序設(shè)計(jì)_第2頁
實(shí)驗(yàn)4 選擇結(jié)構(gòu)程序設(shè)計(jì)_第3頁
實(shí)驗(yàn)4 選擇結(jié)構(gòu)程序設(shè)計(jì)_第4頁
實(shí)驗(yàn)4 選擇結(jié)構(gòu)程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實(shí)驗(yàn)4分枝結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)4選擇結(jié)構(gòu)程序設(shè)計(jì)1.實(shí)驗(yàn)?zāi)康模?)熟練掌握if語句的三種形式,在實(shí)際中能根據(jù)具體情況靈活選擇某種形式的if語句(2)進(jìn)一步熟悉關(guān)系表達(dá)式和邏輯表達(dá)式(3)熟練掌握switch語句的功能、格式和執(zhí)行過程(4)能用switch語句實(shí)現(xiàn)簡單的選擇功能2.實(shí)驗(yàn)內(nèi)容2.1基礎(chǔ)知識(1)在橫線上填上適當(dāng)?shù)臉?biāo)點(diǎn)符號。 該程序的功能是輸出a、b中的最大值。#include“stdio.h”voidmain()實(shí)驗(yàn)4分枝結(jié)構(gòu)程序設(shè)計(jì){inta,b,t;scanf("%d%d",&a,&b);if___b>a_______t=a;a=b;b=t;____ptintf("\nmax=%d",a);}(2)在橫線上填上適當(dāng)?shù)臉?biāo)點(diǎn)符號。將題(1)改寫成if—else的形式:#include“stdio.h”voidmain(){inta,b,t;scanf("%d%d",&a,&b);if___a>b_______ptintf("\nmax=%d",a);____/*思考:此處的符號是否可以省略?什么情況下不能省略?*/else ____ptintf("\nmax=%d",b);____}(3)在橫線上填上適當(dāng)?shù)臉?biāo)點(diǎn)符號。switch(表達(dá)式){case_____常量表達(dá)式1____語句1____ case_____常量表達(dá)式2____語句2____ ……default____語句n____}(4)對于if—else語句,如果分支較多,有時(shí)用swtich語句更加合適,swtich語句是多分支選擇結(jié)構(gòu),其執(zhí)行過程:首先比較___________與___________是否相等,如果相等,則執(zhí)行case后面的語句,如果都不相等,則執(zhí)行__________。2.2閱讀程序(1)#include“stdio.h”voidmain(){intnumber;printf(“number=“);scanf(“%d”,&number);if(number%10==0)printf(“%d是10的倍數(shù)?!?number);}回答:當(dāng)輸入300時(shí),程序的運(yùn)行結(jié)果是什么?當(dāng)輸入27時(shí),程序的運(yùn)行結(jié)果是什么?(2)#include“stdio.h”voidmain(){intnumber;printf(“number=“);scanf(“%d”,&number);if(number%10==0)printf(“%d是10的倍數(shù)?!?number);elseprintf(“%d不是10的倍數(shù)?!?number);}回答:當(dāng)輸入300時(shí),程序的運(yùn)行結(jié)果是什么?當(dāng)輸入27時(shí),程序的運(yùn)行結(jié)果是什么?(3)#include“stdio.h”voidmain(){intnumber;printf(“number=“);scanf(“%d”,&number);if(number>0)printf(“%d為正數(shù)?!?number);elseif(number==0)printf(“%d為零?!?number);elseprintf(“%d為負(fù)數(shù)?!?number);}回答:當(dāng)分別輸入-10、0、10時(shí),程序的運(yùn)行結(jié)果是什么?(4)#include“stdio.h”voidmain() {intn;scanf(“%d”,&n);swtich(n) {case1:puts(“*”); case2:puts(“**”);case3:puts(“***”);default:puts(“?”);}}回答:當(dāng)分別輸入1、2、3、4、10時(shí),程序的運(yùn)行結(jié)果是什么?如果希望程序出現(xiàn)這樣的結(jié)果:當(dāng)輸入1時(shí),輸出:*當(dāng)輸入2時(shí),輸出:**當(dāng)輸入3時(shí),輸出:***當(dāng)輸入其他數(shù)時(shí),輸出:?則程序應(yīng)該如何修改?(5)#include“stdio.h”voidmain(){inta,b,c,t;printf(“輸入a、b、c的值:”);scanf(“%d%d%d”,&a,&b,&c);if(a>b){t=a;a=b;b=t;}//如果a>b,則交換a、b的值if(a>c){t=a;a=c;c=t;}//如果a>c,則交換a、c的值if(b>c){t=b;b=c;c=t;}//如果b>c,則交換b、c的值printf(“\n%d,%d,%d\n”,a,b,c);}回答:該程序的功能是什么?還有什么其他的寫法可以完成此功能?并比較這些寫法,那些具有通用性?(6)#include“stdio.h”voidmain(){inta=100,x=10,y=20,k1=5,k2=0;if(x<y)if(y!=10)if(!k1)a=1;elseif(k2)a=10;elsea=-1;printf(“a=%d”,a);}回答:該程序的輸出結(jié)果是什么?如果k1=0,輸出結(jié)果是什么?如果k2=1,輸出結(jié)果是什么?2.3程序填空(1)下面程序的功能是:輸入一個(gè)百分制成績,輸出用A、B、C、D、E表示的成績等級。已知90分以上為A等;80到89分為B等;70到79分為C等;60到69分為D等;60分以下為E等。在橫線處填寫正確的語句或表達(dá)式,使程序完整,并調(diào)試程序,使程序的運(yùn)行結(jié)果與給出的結(jié)果一致。#include“stdio.h”voidmain(){intgrade;//該變量表示學(xué)生的成績printf(“輸入成績:”);scanf(“%d”,&grade);grade=grade/10;/*grade/10的目的是減少case語句的個(gè)數(shù),使程序具有可行switch(__________)性,也是該題目的關(guān)鍵。*/{case10:case9:printf(___________);break;case8:printf(“等績?yōu)锽”);________;case7:________________;________;case6:________________;________;default:________________;}}運(yùn)行結(jié)果一:輸入成績:98↙等級為A運(yùn)行結(jié)果二:輸入成績:100↙等級為A運(yùn)行結(jié)果三:輸入成績:80↙等級為B運(yùn)行結(jié)果四:輸入成績:65↙等級為D運(yùn)行結(jié)果五:輸入成績:51↙等級為E(2)將上一題2.3(1)改寫成if—else語句,要求運(yùn)行結(jié)果相同。#include“stdio.h”voidmain(){intgrade;//該變量表示學(xué)生的成績printf(“輸入成績:”);scanf(“%d”,&grade);if(_______________)printf(“等級為A”); elseif(_______________)printf(“等級為B”); elseif(_______________)printf(“等級為C”); elseif(_______________)printf(“等級為D”); elseprintf(“等級為E”);}(3)將上一題2.3(1)改寫成if語句,要求運(yùn)行結(jié)果相同。#include“stdio.h”voidmain(){intgrade;//該變量表示學(xué)生的成績printf(“輸入成績:”);scanf(“%d”,&grade);if(____________________________)printf(“等級為A”); if(____________________________)printf(“等級為B”); if(____________________________)printf(“等級為C”); if(____________________________)printf(“等級為D”); if(____________________________)printf(“等級為E”);}注意:對比(2)(3)題中if語句的條件寫法有何不同,仔細(xì)體會if—else語句中else的含義?;卮穑耗芊駥ⅲ?)中的最后一行if語句改成:elseprintf(“等級為E”);為什么?(4)下面程序的功能是:輸入年、月,輸出該月有多少天。請?jiān)跈M線處填寫正確的表達(dá)式或語句,使程序完整。上機(jī)調(diào)試程序,使程序的運(yùn)行結(jié)果與書中的結(jié)果一致。#include“stdio.h”voidmain(){inty,m,days;printf(“輸入年份、月份:”);scanf(“%d%d”,&y,&m);//每年的1、3、5、7、8、10、12月都有31天。if(__________________________________)days=31;//每年的4、6、9、11月都有30天。elseif(m==4||m==6||m==9||m==11)____________;//2月份要考慮平年閏年才能確定天數(shù)。else{if(__________________________)days=29;elsedays=28;}printf(“________________________”,y,m,days);}運(yùn)行結(jié)果一:輸入年份、月份:19815↙1981年5月份有31天。運(yùn)行結(jié)果二:輸入年份、月份:199911↙1999年11月份有30天。運(yùn)行結(jié)果三:輸入年份、月份:20002↙2000年2月份有29天。運(yùn)行結(jié)果四:輸入年份、月份:20092↙2009年2月份有28天。(5)該程序的功能是模擬簡單計(jì)算機(jī)器,進(jìn)行兩個(gè)數(shù)的加、減、乘、除四則運(yùn)算。如:輸入2+3,則輸出2+3=5;輸入2*3,則輸出2*3=6。將程序補(bǔ)充完整,時(shí)運(yùn)行結(jié)果與書中的運(yùn)行結(jié)果一致。#include“stdio.h”voidmain(){floatx,y;//x、y為參與計(jì)算的兩個(gè)數(shù) charop;//op為運(yùn)算符printf(“輸入運(yùn)算表達(dá)式:”);scanf(“%f%c%f”,&x,&op,&y);//如輸入:2+3switch(op)//用switch語句,通過判斷運(yùn)算符,進(jìn)行相應(yīng)的計(jì)算//匹配加法運(yùn)算:如果op為“+”則輸出2+3=5{case_____:printf(__________________________________________);break;//匹配減法運(yùn)算:如果op為“-”則輸出2-3=-1case_____:printf(__________________________________________);break;//匹配乘法運(yùn)算:如果op為“*”則輸出2*3=6case_____:printf(__________________________________________);break;//匹配除法運(yùn)算:如果op為“/”則輸出2/3=0.67case_____://在除法中要考慮到除數(shù)不能為0if(y!=0){printf(______________________________________);break;}else{printf(“除數(shù)為0!”);break;}default:printf(“輸入表達(dá)式有誤!\n”);}}運(yùn)行結(jié)果一:輸入運(yùn)算表達(dá)式:2+3↙2+3=5運(yùn)行結(jié)果二:輸入運(yùn)算表達(dá)式:2-3↙2-3=-1運(yùn)行結(jié)果三:輸入運(yùn)算表達(dá)式:2*3↙2*3=6運(yùn)行結(jié)果四:輸入運(yùn)算表達(dá)式:2/3↙2/3=0.67運(yùn)行結(jié)果四:輸入運(yùn)算表達(dá)式:2/3↙2/3=0.67運(yùn)行結(jié)果五:輸入運(yùn)算表達(dá)式:2/0↙除數(shù)為0!運(yùn)行結(jié)果六:輸入運(yùn)算表達(dá)式:2#3↙輸入表達(dá)式有誤!2.4編寫程序(1)有一函數(shù)x(x<1)y=2x-1(1<=x<10)3x-11(x>=10)寫一程序,輸入x,輸出y的值。(2)編一程序,要求實(shí)現(xiàn)下面的功能:輸入一個(gè)實(shí)數(shù)后,屏幕上顯示如下菜單:1

.輸出相反數(shù)2.輸出平方數(shù)3.輸出平方根若按1鍵,則輸出該數(shù)的相反數(shù);按2鍵,則輸出該數(shù)的平方數(shù);按3鍵,則輸出該數(shù)的平方根。按1~3之外的其他鍵時(shí),顯示“輸入出錯(cuò)”。要求:應(yīng)盡可能使程序的輸入輸出界面美觀。(3)編寫一個(gè)自動(dòng)售貨機(jī)的程序。該程序應(yīng)具有如下功能:有二級菜單,一級菜單是商品類的選擇,二級是具體商品的選擇。顧客首先選擇商品類,然后再選擇具體的商品,輸入購買數(shù)量,自動(dòng)售貨機(jī)根據(jù)選擇的商品及數(shù)量,計(jì)算并顯示顧客應(yīng)付的總金額。運(yùn)行結(jié)果:請選擇:1.日用品2.文具3.食品1↙請選擇:1.牙刷(3.5元/支)2.牙膏(4.5元/支)3.肥皂(2元/塊)4.毛巾(7元/條)3↙數(shù)量?5↙總計(jì):10.00元提

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論