【實驗?zāi)康呐c要求】
成都創(chuàng)新互聯(lián)是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計公司的優(yōu)秀設(shè)計人員和策劃人員組成的一個具有豐富經(jīng)驗的團隊,其中包括網(wǎng)站策劃、網(wǎng)頁美工、網(wǎng)站程序員、網(wǎng)頁設(shè)計師、平面廣告設(shè)計師、網(wǎng)絡(luò)營銷人員及形象策劃。承接:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、網(wǎng)站改版、網(wǎng)頁設(shè)計制作、網(wǎng)站建設(shè)與維護、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫開發(fā),以高性價比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺等全方位的服務(wù)。
- 學(xué)習(xí)與掌握邏輯運算與邏輯表達式。
- 熟練掌握 if、switch、while、do-while、for語句的語法結(jié)構(gòu)與執(zhí)行過程。
- 掌握選擇、循環(huán)程序的設(shè)計方法。?
【實驗內(nèi)容】?
1、輸入一個字符,如果為小寫,轉(zhuǎn)換為大寫輸出,否則,輸出其后繼字符的 ASCII 碼值。
2、輸入 x 計算表達式的值:分別輸入 0.2, 1, 5, 0,觀察輸出結(jié)果。
3、輸入三角形的三條邊,求周長,并判斷該三角形是否為等腰三角形(提示:要三邊是否可以構(gòu)成三角形)
4、 完成計算器程序,實現(xiàn)(+ - * / %)運算。考慮除數(shù)為 0 與運算符非法的情況。
5、輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字字符和其它字符的個數(shù)。
提示:從鍵盤上讀入一個字符給變量 c,判斷 c 是屬于哪種字符并計數(shù),循環(huán)讀入下個字符,直到回車換行字符'\n'為止。
6、編寫一個程序:從鍵盤上輸入兩個正整數(shù),求 a 和 b 的大公約數(shù)與最小公倍數(shù)。
7、使用循環(huán)結(jié)構(gòu)輸出下列圖形:
8、從鍵盤輸入 a,用迭代法求 a 的平方根 x= a 。
求平方根的迭代公式為
要求精確到|xn+1?- xn|
提示:迭代法是把 xn代入迭代公式右邊,
計算出 xn+1來,然后把 xn+1 作為新的 xn?,計算出新的 xn+1, 如此重復(fù),直到|xn+1 - xn|
思考:(1)如果輸入 a 為負,在運行時會出現(xiàn)什么情況? 修改程序使之能處理任何的 a 值。
(2)能否|xn+1 - xn|<10-10或更???為什么?請試一下。
9、蘋果每個 0.8 元,第一天買 2 個,第二天開始,每天買前天的 2 倍,直到購買的蘋果數(shù)不超過 100 的大值,求每天平均花多少錢。
【算法分析、程序與結(jié)果】
程序:
#include
using namespace std; int main() { char a; a=getchar(); if(a>='a'&&a<='z') putchar(a-32); else cout< 結(jié)果:
輸入
分別輸入a,b,*,觀察輸出結(jié)果
輸入a時:
輸出a的大寫字母A
輸入b時:
輸出b的大寫字母B
輸入*時:
輸出*后繼字符的ASCLL碼
2.
程序:
#include
using namespace std; int main() { ????double x,y; ????cin>>x; ????if(x>0&&x<1){ y=3-2*x;} ????if(x>=1&&x<5){ y=1/(2*x)+1;} ????if(x>=5&&x<10){ y=x*x; } cout< 結(jié)果:
輸入
分別輸入0.2,1,5,0,觀察輸出結(jié)果
輸入0.2時:
輸出2.6
輸入1時:
輸出1.5
輸入5時:
輸出25
輸入0時:
輸出錯誤,0不在范圍類
3.
程序:
#include
using namespace std; int main() { int a,b,c,s; cin>>a>>b>>c; if(a+b>c&&a+c>b&&b+c>a) { ??s=a+b+c; ??cout< 結(jié)果:
輸入
分別輸入1,1,2;2,3,4;2,2,3;三組數(shù)據(jù),觀察輸出結(jié)果
輸入1,1,2時:
輸出不是一個三角形
輸入2,3,4時:
輸出周長9,并判斷不是等腰三角形
輸入2,2,3時:
輸出周長7,并判斷是等腰三角形
4.
程序:
#include
using namespace std; int main() { ????double x,y; ????while(1) { char s; ????cin>>x>>s>>y; ????if(s=='+') cout< 結(jié)果:
輸入
分別輸入1+2;1-2;1*2;1/3;4%3;1/0;1&2;觀察輸出結(jié)果
輸入1+2時:
輸出1+2=3
輸入1-2時:
輸出1-2=-1
輸入1*2時:
輸出1*2=2
輸入1/3時:
輸出1/3=0.333333
輸入4%3時:
輸出4%3=1
輸入1/0時:
輸出error(除數(shù)不能為0)
輸入1&2時:
輸出invaild(輸入了不合法字符)
5.
程序:
#include
using namespace std; int main() { char c; int english=0,num=0,space=0,other=0; ??while((c=getchar())!='\n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z') { english++;} else if(c==' ') { space++;} else if(c>='0'&&c<='9') { num++; } ??else ?other++; } cout<<"英文字母:"< 結(jié)果:
輸入
輸入一串字符“I love CHINA?@@ 2022”觀察輸出結(jié)果
6.
程序:
#include
using namespace std; int main() { int a,b,Y,B; cin>>a>>b; for(int i=1;i<=a&&i<=b;i++) { if(a%i==0&&b%i==0) { Y=i; } } for(int i=1;;i++) { if(i%a==0&&i%b==0) { B=i; break; ?? } } cout< 結(jié)果:
輸入
分別輸入2,3;4,32;觀察輸出結(jié)果
輸入2,3時:
輸出大公約數(shù)1,最小公倍數(shù)6
輸入4,32時:
輸出大公約數(shù)4,最小公倍數(shù)32
7.
程序:
#include
using namespace std; int main() { ????char c='*'; ????for(int i=1;i<=5;i++) ????{ ???? for(int m=1;m<=5-i;m++) ???? { ???? cout<<" "; } ???? for(int j=1;j<=i;j++) ???? { ???? cout< 結(jié)果:
輸入
無
輸出
8.
程序:
#include
#include using namespace std; int main() { double a,x,x1,t; cin>>a; x=a; do { x1=(x+a/x)/2; t=x; x=x1; x1=t; }while(fabs(x-x1)>1/10000); cout< 結(jié)果:
輸入
分別輸入2,4,10,觀察輸出結(jié)果
輸入2時:
輸出1.41421
輸入4時:
輸出2
輸入10時:
輸出3.16228
- 如果輸入 a 為負,在運行時會出現(xiàn)什么情況? 修改程序使之能處理任何的 a 值。
輸入a為負數(shù)時
運行會出錯,不會輸出結(jié)果
修改后的程序:
#include
#include using namespace std; int main() { double a,x,x1,t; cin>>a; x=a; if(a<0){ cout<<"error"< 0){ do{ x1=(x+a/x)/2; t=x; x=x1; x1=t; }while(fabs(x-x1)>1/10000); cout<
- 能否|xn+1 - xn|<10-10或更?。繛槭裁??請試一下。
不能;更改范圍后并沒有繼續(xù)進行迭代
9.
程序:
#include
using namespace std; int main() { int num,sum,d; d=0; sum=0; for(int i=2;i<=100;i*=2) { num=i; sum=sum+num; ???d++; } cout<<0.8*sum/d< 結(jié)果:
輸入
無
輸出
輸出平均每天花16.8元
【遇到的問題與解決辦法】
- 在編譯程序5時最開始使用的if結(jié)構(gòu)有問題,導(dǎo)致計算機不能讀取一整串字符中的每一個,后來經(jīng)過自己的嘗試用while循環(huán)結(jié)構(gòu)使程序每次讀取一個字符后就開始判斷屬于那種類型
- 編譯程序8時開始就絕對值的表達不清楚,后經(jīng)查閱資料,引入頭文件cmath,利用函數(shù)fabs()表達絕對值。
- 編譯程序9時開始利用while循環(huán)結(jié)構(gòu)總是使循環(huán)體多執(zhí)行一次,后經(jīng)過自己的嘗試換用for(int i=2;i<=100;i*=2)結(jié)構(gòu),解決了此問題。
【總結(jié)】
實驗二的難度相對與實驗一有了提升,考察大家對所學(xué)知識的靈活運用,并鍛煉大家的創(chuàng)新和自學(xué)能力。通過老師的指導(dǎo)和自我的不斷調(diào)試運行,能夠較好的解決遇到的問題。實驗二令我收獲極大。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧