




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、習(xí)題 2及其解答選擇題1已知 int i=0, x=1, y=0 ; 在下列選項使i的值變成1的語句是( c )。(a) if( x&&y ) i+ ;(b) if( x=y ) i+ ;(c) if( x|y ) i+ ;(d) if( !x ) i+ ;2設(shè)有函數(shù)關(guān)系為y= ,下面選項中能正確表示上述關(guān)系為( c )。(a) y = 1 ; (b) y = -1 ;if( x >= 0 ) if( x != 0 )if( x = 0 ) y = 0 ; if( x > 0 ) y = 1 ;else y = -1; else y = 0;(c) if( x &l
2、t;= 0 ) (d) y = -1 ; if( x < 0 ) y = -1 ; if( x <= 0 ) else y = 0 ; if( x < 0 ) y = -1 ; else y = 1 ; else y = 1 ;3假設(shè)i=2,執(zhí)行下列語句后i的值為( b )。switch( i ) case 1 : i + ; case 2 : i - ; case 3 : + i ; break ; case 4 : - i ; default : i + ;(a) 1(b) 2(c) 3(d) 44已知int i=0,x=0; 下面while語句執(zhí)行時循環(huán)次數(shù)為( d )
3、。while( !x && i< 3 ) x+ ; i+ ; (a) 4(b) 3(c) 2(d) 15已知int i=3;下面do_while 語句執(zhí)行時循環(huán)次數(shù)為( b )。do i-; cout<<i<<endl;while( i!= 1 );(a) 1(b) 2(c) 3(d) 無限6下面for語句執(zhí)行時循環(huán)次數(shù)為( b )。 int i;for ( i=0,j=5;i=j; ) cout << i << j << endl;i+; j-;(a) 0(b) 5(c) 10(d) 無限7以下死循環(huán)的程序段是
4、( b )。(a) int x; for( int x=0 ; x<3 ; ) x+ ; ;(b) int k = 0; do +k ; while( k>=0 ) ;(c) int a=5 ; while( a ) a- ; ;(d) int i=3 ; for( ; i ; i - ) ;閱讀下列程序,寫出執(zhí)行結(jié)果1#include<iostream>using namespace std;int main() int a,b,c,d,x; a = c = 0; b = 1; d = 20; if( a ) d = d-10; else if( !b ) if( !
5、c ) x = 15; else x = 25; cout << d << endl;【解答】 202#include<iostream>using namespace std;int main() int a = 0, b = 1; switch( a ) case 0: switch( b ) case 0 : cout<<"a="<<a<<" b="<<b<<endl; break; case 1 : cout<<"a="
6、<<a<<" b="<<b<<endl; break; case 1: a+; b+; cout<<"a="<<a<<" b="<<b<<endl; 【解答】a= 0 b= 1a= 1 b= 23#include<iostream>using namespace std;int main() int i = 1; while( i<=10 ) if( +i % 3 != 1 ) continue; else c
7、out << i << endl;【解答】 4 7 104#include <iostream> using namespace std; int main() int i = 0 , j = 5; do i+; j-; if ( i>3 ) break; while ( j>0 ); cout << "i=" << i << 't'<< "j=" << j << endl;【解答】 i= 4 j= 15#include
8、<iostream>using namespace std;int main() int i,j; for( i=1, j=5; i<j; i+ ) j-; cout<<i<<'t'<<j<<endl;【解答】 3 36#include<iostream>using namespace std;int main() int i, s = 0; for( i=0; i<5; i+ ) switch( i ) case 0: s += i; break; case 1: s += i; break;
9、 case 2: s += i; break; default: s += 2; cout<<"s="<<s<<endl;【解答】 s= 77#include<iostream>using namespace std;int main() int i, j, x = 0; for( i=0; i<=3; i+ ) x+; for( j=0; j<=3; j+ ) if( j % 2 ) continue; x+; x+; cout << "x=" << x <<
10、; endl;【解答】 x= 16 思考題1. C+中有什么形式的選擇控制語句歸納它們語法形式、應(yīng)用場合。根據(jù)一個實際問題使用不同的條件語句編程。【解答】語句使用方式使用場合if語句if(表達式)語句1;else 語句2;需要對給定的條件進行判斷,并根據(jù)判斷的結(jié)果選擇不同的操作。適用于復(fù)雜的條件表達式判斷。switch 語句switch(表達式) case 常量表達式1: 語句1;case 常量表達式2: 語句2;case 常量表達式n; 語句n;default : 語句n+1;根據(jù)整型表達式的不同值決定程序分支的情況。適用于判斷表達式簡單,需要多個分支處理的情況。演示程序:程序(1)什么叫循
11、環(huán)控制歸納比較C+中各種循環(huán)控制語句的語法、循環(huán)條件和循環(huán)結(jié)束條件的表示形式及執(zhí)行流程。【解答】循環(huán)控制是在特定的條件下,程序重復(fù)執(zhí)行一些特定動作。語句語法執(zhí)行流程使用場合while語句while(表達式)循環(huán)體;循環(huán)條件:表達式值為非0(真)循環(huán)結(jié)束條件:表達式值為0(假)程序中常用于根據(jù)條件執(zhí)行操作而不需關(guān)心循環(huán)次數(shù)的情況。先判斷形式循環(huán),條件不成立時不進入循環(huán)體。do-while語句do循環(huán)體while(表達式);循環(huán)條件:表達式值為非0(真)循環(huán)結(jié)束條件:表達式值為0(假)程序中常用于根據(jù)條件執(zhí)行操作而不需關(guān)心循環(huán)次數(shù)。后判斷形式循環(huán),至少執(zhí)行1次循環(huán)體。一般情況,while語句和do
12、 while語句可以互換使用。for 語句for(表達式1;表達式2;表達式3)循環(huán)體;(1)表達式1稱為初始化表達式,不是循環(huán)體執(zhí)行部分。(2)表達式3稱為后置表達式,作為循環(huán)體的最后一個執(zhí)行表達式。(3)循環(huán)條件:表達式2值為非0(真)循環(huán)結(jié)束條件:表達式2值為0(假)for語句稱為步長循環(huán)語句,通常用于確定循環(huán)次數(shù)的情況。由于語句的3個表達式均可以缺省,也可以用于條件循環(huán),即循環(huán)次數(shù)不確定的情況。3. 根據(jù)一個實際問題,用不同的循環(huán)語句編程,分析其優(yōu)缺點。【解答】略。4. 用if語句和goto語句組織循環(huán),改寫思考題的第3小題編寫的程序。分析在什么情況下可以適當(dāng)使用goto語句。【解答】
13、在不破壞程序基本流程控制的情況下,可以適當(dāng)使用goto語句實現(xiàn)從語句結(jié)構(gòu)內(nèi)部向外的必要跳轉(zhuǎn),即按特定條件結(jié)束結(jié)構(gòu)語句塊的執(zhí)行。程序略。5.有以下程序#include<iostream>using namespace std;int main() char c; cin>>c; if(c='y'|c='Y') int a=1; else int a=0; cout<<"a="<<a<<endl;編譯錯誤為:error C2065: 'a' : undeclared id
14、entifier,指示語句行cout<<"a="<<a<<endl;變量a沒有定義。請分析原因,并做出修改。【解答】程序在if和else分支中分別聲明了各自的局部變量a,而執(zhí)行輸出語句時,聲明的變量a作用域已經(jīng)結(jié)束,所以編譯器認為輸出語句的a沒有定義。正確的程序是:#include<iostream>using namespace std;int main() char c; int a; cin>>c; if(c='y'|c='Y') a=1; else a=0; cout<
15、<"a="<<a<<endl;6. 有以下程序,希望判斷兩個輸入的整數(shù)是否相等。程序通過編譯,但不能達到預(yù)期結(jié)果。請分析程序能夠通過C+編譯而不能得到期望結(jié)果的原因。#include<iostream>using namespace std;int main() int a,b; cout<<"a: " cin>>a; cout<<"b: " cin>>b; if( a=b ) cout<<a<<"等于"
16、;<<b<<endl; else cout<<a<<"不等于"<<b<<endl;程序運行后,輸入a的值為4,b的值為9,顯示結(jié)果如下:a: 4b: 99等于9【解答】在if語句的判斷表達式(a=b)中,賦值號“=”應(yīng)該是邏輯等“=”。從語法上,C+的if語句把a=b這個賦值表達式視為邏輯表達式,沒有編譯錯誤。a=b的值決定于b。若b的輸入值不等于0,if作為邏輯真(true),否則作為邏輯假(false)。所以,題目中輸入b的值雖然不等于a,但表達式a=b為邏輯true,執(zhí)行了if語句的第1個分支。編
17、程題1輸入某學(xué)生成績,若成績在85分以上輸出“very good”,若成績在60分到85分之間輸出“good”,若成績低于60分輸出“no good”。【解答】#include<iostream>using namespace std;int main() double score;cout << "please input score:"cin >> score;if ( score>=85 ) cout << "Very good!" ; else if ( score>=60 ) cout
18、 << "Good!" else cout << "No good!"2輸入三個整數(shù),按從小到大的順序輸出它們的值。【解答】#include<iostream>using namespace std;int main() int a, b, c, t;cout << "a, b, c="cin >> a >> b >> c;if(a>b) t=a; a=b; b=t; if(a>c) t=a; a=c; c=t; if(b>c) t=
19、b; b=c; c=t; cout<< a << 't'<< b << 't' << c << endl;3輸入三角形的三條邊,判別它們能否形成三角形,若能,則判斷是等邊、等腰、還是一般三角形。【解答】#include<iostream>using namespace std;int main() double a, b, c ; cout << "a, b, c = " ; cin >> a >> b >> c
20、 ; if ( a+b > c && b+c > a && c+a > b ) if ( a = b && b = c ) cout << "等邊三角形!" << endl; else if ( a = b | a = c | b = c ) cout << "等腰三角形!" << endl; else cout << "一般三角形!" << endl; else cout << &qu
21、ot;不能形成三角形!" << endl ;4輸入百分制成績,并把它轉(zhuǎn)換成五級分制,轉(zhuǎn)換公式為: 【解答】#include<iostream>using namespace std;int main() double score; char grade; cout << "score=" cin >> score; if ( score >= 0 && score <= 100 ) switch ( int( score ) /10 ) case 10: case 9: grade = &
22、#39;a' break; case 8: grade = 'b' break; case 7: grade = 'c' break; case 6: grade = 'd' break; case 5: case 4: case 3: case 2: case 1: case 0: grade = 'e' break; else cout <<"數(shù)據(jù)輸入錯誤!"<< endl; goto end; cout << grade << endl;end: ;
23、 << endl; goto end; case 'r': cout << "Scissor is crushed by rock." << endl; goto end;case 'p': cout << "Scissor cuts paper." << endl; goto end; default : cout << "second input error!" << endl ; goto end; case
24、39;r':switch ( second ) case 's': cout << "Rock crushes scissor." << endl; goto end; case 'r': cout << "Rock ties rock." << endl; goto end; case 'p': cout << "Rock is wrapped by paper." << endl; goto end; d
25、efault : cout << "second input error!" << endl; goto end; case 'p': switch ( second ) case 's': cout << "Paper is cut by scissor." << endl; goto end; case 'r': cout << "Paper wraps the rock." << endl; goto end;
26、 case 'p': cout << "Paper ties paper." << endl; goto end; default : cout << "second input error!" << endl; goto end; default : cout << "First input error!" << endl; goto end; end: ;6.輸入一個整數(shù),輸出該整數(shù)的所有素數(shù)因子。例如,輸入120,輸出為2、2、2、3和5。【
27、解答】#include<iostream>using namespace std;int main() int m,i = 2; cout << "please input m:" cin >> m; while( i<=m ) if( m % i = 0 ) cout << i << "," m = m / i; else i+;7.使用迭代公式編程序求某一正整數(shù)a的平方根。【解答】#include<iostream>#include<cmath>using na
28、mespace std;int main() const double eps = 1e-8;double a,x0,x;cout << "please input a:"cin >> a;x0 = a / 2;x = ( x0 + a/x0 )/2;while( fabs( x-x0 )>eps ) x0 = x; x =( x0 + a/x0 )/2; cout << x << endl;8.已知X=0,10,20,180,求sinx,cosx和tanx的值。【解答】#include<iostream>#
29、include<cmath>#include<iomanip>using namespace std;int main() const double pi = 3.;int i;double x,y1,y2,y3;cout << setw(2) << "x" << setw(15) << "sin(x)" << setw(15) << "cos(x)" << setw(15) << "tg(x)"
30、 << endl;for( i=0; i<=18; i+ ) x = i*10*pi/180; y1 = sin( x ); y2 = cos(x); y3 = y1/y2; cout << setw(2) << i << setw(15) << y1 << setw(15) << y2 << setw(15) << y3 << endl; 9.在100到200中找出同時滿足用3除余2,用5除余3和用7除余2的所有整數(shù)。【解答】#include<iostream&
31、gt;using namespace std;int main() int i; for( i=100; i<=200; i+ ) if ( ( i % 3 = 2) && ( i % 5 = 3 ) && ( i % 7 = 2 ) ) cout << i << endl; 10.求100到999中的水仙花數(shù)。所謂水仙花數(shù)是指一個三位數(shù),它的每位數(shù)字的立方之和等于該數(shù)。例如,因為153=1+5+3,所以153為水仙花數(shù)。【解答】#include<iostream>using namespace std;int main() int i,a,b,c; for( i=100; i<=999; i+ ) a = i/100; b = ( i-a*100 ) / 10; c = i - a*100 - b*10; if ( i = a*a*a + b*b*b + c*c*c ) cout << i <<endl; 11.求1000之內(nèi)的所有完數(shù)。所謂完數(shù)是指一個數(shù)恰好等于它的所有因子之和。例如,因為6=1+2+3,所以6為完數(shù)。【解
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年食品飲料電商運營困境突破與數(shù)字化營銷策略研究報告
- 車工工藝與技能課件:滾花、車成形面和車偏心工件
- 2025年文化娛樂產(chǎn)業(yè)區(qū)域合作與發(fā)展研究報告
- 新能源汽車充電樁建設(shè)對城市能源消費模式穩(wěn)定性的影響評估報告
- DB37/T 3658-2019地質(zhì)災(zāi)害治理工程施工技術(shù)規(guī)范
- 藥事管理法律法規(guī)
- 人文護理教學(xué)課件
- 透析鈣磷失衡的治療與護理
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院實地調(diào)研與運營優(yōu)化建議
- DB32/T 4659.1-2024醫(yī)院公共衛(wèi)生工作規(guī)范第1部分:醫(yī)院公共衛(wèi)生工作總則
- 直流系統(tǒng)培訓(xùn)課件
- 【高考真題(含答案)】安徽省新高考2024年化學(xué)試卷(含答案)
- 頂層鋼結(jié)構(gòu)合同
- 中國硬筆書法等級考試試卷(三級)
- 2025年江蘇省啟東市文化廣電和旅游局招聘編外1人歷年高頻重點提升(共500題)附帶答案詳解
- 《普通生物學(xué)》課程期末考試復(fù)習(xí)題庫及答案
- dlt-5161-2018電氣裝置安裝工程質(zhì)量檢驗及評定規(guī)程
- 用戶生命周期管理策略-洞察分析
- 第三屆中國長三角地區(qū)融資擔(dān)保職業(yè)技能競賽選拔賽試題庫500題(含答案)
- 2025屆安徽省A10聯(lián)盟高三第二次調(diào)研數(shù)學(xué)試卷含解析
- 項目管理與工程經(jīng)濟決策知到智慧樹章節(jié)測試課后答案2024年秋哈爾濱工程大學(xué)
評論
0/150
提交評論