版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
習(xí)題1及其解答
1、1選擇題
1、一個最簡單得C++程序,可以只有一個(C)。
(a)庫函數(shù)(b)自定義函數(shù)(c)main函數(shù)(d)空函數(shù)
2、用C++語言編制得源程序要變?yōu)槟繕?biāo)程序必須要經(jīng)過(d)o
(a)解釋(b)匯編(c)編輯(d)編譯
3、C++程序中得簡單語句必須以(b)結(jié)束。
(a)冒號(b)分號(c)空格(d)花括號
4、有說明inta=0;doublex=5、16;以下語句中,(c)屬于編譯錯誤。
(a)x=a/x;(b)x=x/a;(c)a=a%x;(d)x=x*a;
5、執(zhí)行C++程序時出現(xiàn)得“溢出”錯誤屬于(c)錯誤。
(a)編譯(b)連接(c)運(yùn)行(d)邏輯
6、下列選項中,全部都就是C++關(guān)鍵字得選項為(c)o
(a)whileIFStatic(b)breakchargo;
(c)sizeofcaseextern(d)switchfloatinteger
7、按C++標(biāo)識符得語法規(guī)定,合法得標(biāo)識符就是(a)0
(a)_abc(b)new(c)7i(d)age
8.C++語句中,兩個標(biāo)識符之間(a)不能作為C++得分隔符。
(a)數(shù)字(b);(c):(d)
9.下列正確得八進(jìn)制整型常量表示就是(b)o
(a)OaO(b)015(c)080(d)0x10
10.下列錯誤得十六進(jìn)制整型常量表示就是(C)0
(a)0x11(b)Oxaf(c)Oxg(d)Oxlf
11.在下列選項中,全部都合法得浮點型數(shù)據(jù)得選項為(b)o
(a)Te3、515、2e-4(b)12、34Te+50、IE-12
(c)0、2e~2-12345>e-5(d)5、0e(l+4)0、18e+2
12.下列正確得字符常量為(d)o
(a)(b)'name'(c)a(d),\ior
13.下列選項中,(d)不能交換變量a與b得值。
(a)t=b;b=a;a=t;⑹a=a+b;b=a-b;a=a-b;
(c)t=a;a=b;b=t;(d)a=b;b=a;
14.關(guān)于下列語句敘述錯誤得就是(a)o
inti=I0,*p=也i;
(a)p得值為10(b)p指向整型變量i
(c)*p表示變量i得值(d)p得值就是變量i得地址
15.有以下變量說明,下面不正確得賦值語句就是(b)o
inta=5,b=10,c;int*pl=&a,*p2=&b;
(a)*p2=b;(b)pl=a;
(c)p2=pl;(d)c=*pl*(*p2)
16.有以下變量說明,下面正確得語句就是(b)o
inta=10,b;int&pa=a,&pb=b;
(a)&pb=a;(b)pb=pa;(c)pb=&pa;(d)*pb=*pa;
17.執(zhí)行下面語句序列后,a與b得值分別為(b)o
inta=5,b=3,t;
int&ra=a;
int&rb=b;
t=ra;ra=rb;rb=t;
(a)3與3(b)3與5(c)5與3(d)5與5
18、在下列運(yùn)算符中,(d)優(yōu)先級最高。
(a)<=(b)*=(c)+(d)*
19、在下列運(yùn)算符中,(d)優(yōu)先級最低。
(a)!(b)&&(c)(d)?:
20.設(shè)inti=l,j=2;則表達(dá)式i+++j得值為(c)o
(a)1(b)2(c)3(d)4
21.設(shè)inti=l,j=2;則表達(dá)式++i+j得值為(d)o
(a)1(b)2(c)3(d)4
22.在下列表達(dá)式選項中,(c)就是正確。
(a)++(a++)(b)a++b(c)a+++b(d)a++++b
23.已知inti=0,j=l,k=2;則邏輯表達(dá)式++i||—j&&++k得值為(b).
(a)0(b)1(c)2(d)3
24、執(zhí)行下列語句后,x得值就是(d),y得值就是(c)。
intx,y;
x=y=1;++x||++y;
(a)不確定(b)0(c)1(d)2
25、設(shè)x為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系l〈xV5得C++邏輯表達(dá)式就是(a)。
(a)1<x<5(b)x==21|x==31|x—4
(c)Kx&&x<5(d)!(x〈=l)&&!(x>=5)
26、已知intx=5;執(zhí)行下列語句后,x得值為(c)。
X+=X-=X*X;
(a)25(b)40(c)-40(d)20
27、設(shè)inta=l,b=2,c=3,d=4;則以下條件表達(dá)式得值為(a)。
a<b?a:c<d?c:d
(a)1(b)2(c)3(d)4
28、以下逗號表達(dá)式得值為(d)。
(x=4*5,x*5),x+25
(a)25(b)20(c)100(d)45
1、2把下列數(shù)學(xué)表達(dá)式寫成C++算術(shù)表達(dá)式
1.2,x{x[x(ax+b)+c]+d}+e
3、ln(l+||'°)4、
5、cot6、1g(a2+ab+b2)
【解答】
1、1/(1+1/(1+l/(x+y)))
2、x*(x*(x*(a*x+b)+c)+d)+e
3、log(1+pow(fabs((a+b)/(a-b)),10)
4、sqrt(1+3、14159/2*cos(48*3、14159/180))
5、l/tan((1-x*x)/(1+x*x))
或者cos((1-x*x)/(1+x*x))/sin((1-x*x)/(1+x*x))
6、logl0(a*a+a*b+b*b)
1、3用邏輯表達(dá)式表示下列條件
1、i被j整除2、n就是小于正整數(shù)k得偶數(shù)
3、lWx<104、x,y其中有一個小于z
5、y[TOO,TO],并且y[10,100]
6、坐標(biāo)點(x,y)落在以(10,20)為圓心,以35為半徑得圓內(nèi)
7、22條邊a,b與c構(gòu)成三角形
8、年份Year能被4整除,但不能被100整除或者能被400整除
【解答】
1、i%j==02、(n<k)&&(n%2==0)
3^l<=x&&x<104、x<z|Iy<z
5、!(y>=-100&&y<=-10)&&!(y>=10&&y<=100)
6、sqrt(pow((x-10),2)+pow((y-20),2))<35
7、a+b>c&&b+c>a&&c+a>b
8、(year%4==0)&&(year%l001=0)||(year%400-0)
1、4閱讀下列程序,寫出執(zhí)行結(jié)果
1.
^include<iostream>
usingnamespacestd;
intmain()
{inta=1,b=2;
boolx,y;
cout?(a++)+(++b)<<endl;
cout?a%b<<endl;
x=!a>b;
y-a—&&b;
cout?x?endl;
cout?y?endl;
)
【解答】
4
2
0
1
2.
ttinclude<iostream>
usingnamespacestd;
intmain()
{intx,y,z,f;
x二y二z二1;
f二一x||y--&&z++;
cout?"x=,"<<x<<endl;
cout?"y=〃<<y<<endl;
cout?"z=,z<<z<<endl;
cout?"f="<<f<<endl;
)
【解答】
x=0
y二0
z=2
f=l
3.
-include<iostream>
#include<iomanip>
usingnamespacestd;
intmain()
{inta=123;
int&ra=a;
int*pa=&a;
cout<<setw(5)<<dec<<a<<setw(5)<<oct?ra<<setw(5)<<hex<<*pa<<endl;
)
【解答】
1231737b
1\5思考題
1.什么叫數(shù)據(jù)類型?變量得類型定義有什么作用?
【解答】
數(shù)據(jù)“類型”就是對數(shù)據(jù)得抽象。類型相同得數(shù)據(jù)有相同得表示形式、存儲格式以及相關(guān)得操作。定
義一個變量時,計算機(jī)根據(jù)變量得類型分配存儲空間,并以該類型解釋存放得數(shù)據(jù)。
2.普通數(shù)據(jù)類型變量與指針類型變量得定義、存儲、使用方式上有何區(qū)別?請編寫一個程序驗證之。
【解答】
變量類型定義存儲使用方式
數(shù)據(jù)類型標(biāo)識符數(shù)據(jù)值通過名訪問即直接訪問對變量內(nèi)容操作
指針類型*標(biāo)識符地址值通過指針變量得地址值間址訪問對象
驗證程序:
#include<iostream>
usingnamespacestd;
intmain()
{inta,b,c;
cout?zza,b,c=〃;
cin?a?b?c;〃對普通數(shù)據(jù)類型變量賦值
int*pa=&a,*pb=&b,*pc=&c;〃用變量地址值初始化指針變量
cout〈〈〃a,b,c=/z?c?endl;〃名訪問,輸出a,b,c得值
cout?,zpa,pb,pc="?pa?",v?pb<<,z,z,<<pc<<endl;〃輸出指針變量得地址值
〃間址訪問,輸出pa,pb,pc指向得變量得賦值
cout?z,*pa,*pb,*pc=//<<*pa?z*,〃<<*pc〈〈endl;
}
3.什么叫數(shù)據(jù)對象得引用?對象得引用與對象得指針有什么區(qū)別?請用一個驗證程序說明之。
【解答】
引用就是為數(shù)據(jù)對象定義別名。引用與指針有以下幾點區(qū)別:
(1)引用名不就是內(nèi)存變量,而指針變量要開辟內(nèi)存空間。
(2)引用名需要在變量定義與變量名綁定,并且不能重定義;指針變量可以在程序中賦給不同得地址值,
改變指向。
(3)程序中用變量名與引用名訪問對象得形式與效果?樣;指針變量通過間址訪問對象。
驗證程序:
nclude<iostream>
usingnamespacestd;
intmain()
{inta;
cout〈<“a=〃;
cin>>a;
intra=a;
int*pa=&a;
cout?/za得值:*?a<<endl;
cout?/za得地址:;
cout?/zra得值:/z?ra?endl;
cout?z,ra得地址:z,<<&ra?endl;
cout<<z,pa所指向得變量得值:"<<*pa<<endl;
cout?/zpa得地址:“<<pa?endl;
)
4.數(shù)據(jù)對象在C++中有什么不同得訪問方式?請編寫一個程序驗證之。
【解答】
數(shù)據(jù)對象在C++中得訪問方式有:名訪問,引用(別名)訪問,間址訪問。
驗證程序:
#include<iostream>
usingnamespacestd;
intmain()
{inta;
coutVa=";
cin>>a;
a=a+5;〃名訪問
cout?&a?endl;〃輸出變量地址
cout?*(&a)<<endl;〃地址訪問,輸出變量值
int*pa=&a;〃說明指針變量,指向變量a
cout?*pa?endl;〃間址訪問,輸出變量值
int&ra=a;//ra就是a得引用
cout?ra?endl;〃引用訪問,輸出變量a得值
)
5.為了約束對數(shù)據(jù)對象得值做只讀操作,C++采用什么方式?請做出簡要?dú)w納。
【解答】
約束數(shù)據(jù)對象只讀形式如下:
約束對象說明形式
標(biāo)識常量const類型常量標(biāo)識符二常量表達(dá)式;
指針常量類型*const指針;
指向常量得指針const類型*指針;或者類型const*指針;
指向常量得指針常量const類型*const指針;或者類型const*const指針;
常引用const類型&引用名=對象名;
6.什么叫表達(dá)式?表達(dá)式值得類型由什么因素決定?使用不同運(yùn)算符連接以下3個變量,請寫出5個以
上獲得值等于true得表達(dá)式。
inta=l,b=2;doublex=0、5;
【解答】
表達(dá)式就是由數(shù)據(jù)與運(yùn)算符,按求值規(guī)則,表達(dá)一個值得式子。
表達(dá)式值得類型得決定因素為操作數(shù)得類型。
(1)如果運(yùn)算符左右操作數(shù)類型相同,運(yùn)算結(jié)果也就是相同類型。
(2)如果運(yùn)算符左右操作數(shù)類型不同,首先把類型較低(存儲要求,示數(shù)能力較低)得數(shù)據(jù)轉(zhuǎn)換成類型較
高得數(shù)據(jù),然后運(yùn)算。
(3)賦值表達(dá)式得類型由被賦值變量得類型決定。當(dāng)把一個表達(dá)式得值賦給一個變量時,系統(tǒng)首先強(qiáng)制
把運(yùn)算值轉(zhuǎn)換成變量得類型,然后執(zhí)行寫操作。
6個值等于true得表達(dá)式:
(l)b>a&&a>x(2)(a+b)!=x(3)a||(b+x)
(4)a==(b*x)(5)a-b<x(6)(a/x==b)
7.閱讀以下程序,分析下面語句序列中每一個字符與得意義,寫出輸出結(jié)果。
#include<iostream>
usingnamespacestd;
intmain()
{inta=10,b=20;
int*p=&a,*q=&b;
*p=*p**q;
int&ra=a;
ra=a;
int*&rt=q;
*rt=30;
cout<<"a="<〈a〈<"\nb==”<<*p〈〈“\n*q=
<<//\nra=z,?ra?,/\n*rt=/z?*rt?end1;
}
【解答】
字符與“&”得意義見程序中添加得注釋。
^include<iostream>
usingnamespacestd
intmainO
{inta=10,b=20;
int*p=&a,*q=&b;//“*”就是指針類型說明符,“&”就是取址運(yùn)算符
*p=*p**q;〃第1、2、4個“*”就是間址訪問符,第3個“*”算術(shù)乘運(yùn)算符
int&ra=a;//“&”就是引用說明符
ra=a;
int*&rt=q;//“*”就是指針類型說明符,“&”就是引用說明符
*rt=30;//“*”就是間址訪問符
//輸出語句中得“*”就是間址訪問符
cout〈<"a=〃<<a<<"\nb=〃<<b<<”\n*p==〃<<*q
?z/\nra=z,?ra?/z\n*rt=,,?*rt?endl;
}
程序輸出結(jié)果為:
a=200
b=30
*p=200
*q=30
ra=200
*rt=30
1、6編程題
1、輸入一個三位整數(shù),將它反向輸出。
【解答】
#include<iostream>
usingnamespacestd;
intmain()
{intx,i,j,k;
cout?”pleaseinputx:";
cin?x;
i=x/100;
j=x/10%10;
k=x%10;
cout<<k<<j?i?endl;
}
2、輸入平面上某點橫坐標(biāo)x與縱坐標(biāo)y,若該點在由圖3、1表示得方塊區(qū)域內(nèi),則輸出1;否則,輸出0。
圖1、H正方形
【解答】
^include<iostream>
usingnamespacestd;
intmainO
{doublex,y,b;
cout?”pleaseinputx,y:";
cin?x?y;
b=(-2<=x)&&(x<=2)&&(-2<=y)&&(y<=2);
cout?b?endl;
)
3、輸入三個整數(shù),求出其中最小數(shù)(要求使用條件表達(dá)式)。
【解答】
#include<iostream>
usingnamespacestd;
intmain()
{inta,b,c,temp,min;
cout<<"pleaseinputa,b,c:〃;
cin?a?b?c;
temp=(a<b)?a:b;
min=(temp<c)?temp:c;
cout?"min="<<min<<endl;
)
習(xí)題2及其解答
2、1選擇題
1.已知inti=0,x=l,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=T;
if(x>=0)if(x!=0)
if(x==0)y=0;if(x>0)y=1;
elsey=-1;elsey=0;
(c)if(x<=0)(d)y=-1;
if(x<0)y=-1;if(x<=0)
elsey=0;if(x<0)y=-1;
elsey=1;elsey=1;
3.假設(shè)i=2,執(zhí)行下列語句后i得值為(b)。
switch(i)
{case1:i++;
case2:i—;
case3:++i;break;
case4:—i;
default:i++;
)
(a)1(b)2(c)3(d)4
4.已知inti=0,x=0;下面while語句執(zhí)行時循環(huán)次數(shù)為(d)。
while(!x&&i<3){x++;i++;}
(a)4(b)3(c)2(d)1
5.已知inti=3;下面dowhile語句執(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)。
inti;
for(i=0,j=5;i=j;)
{cout?i<<j?endl;
i++;j—;
(a)0(b)5(c)10(d)無限
7.以下死循環(huán)得程序段就是(b)。
(a)intx;for(intx=0;x<3;){x++;};
(b)intk=0;do{++k;}while(k>=0);
(c)inta=5;while(a){a一;};
(d)inti=3;for(;i;i-);
2、2閱讀下列程序,寫出執(zhí)行結(jié)果
1.
#include<iostream)
usingnamespacestd;
intmain()
{inta,b,c,d,x;
a=c=0;b=1;d=20;
if(a)d=d-10;
elseif(!b)
if(!c)
x=15;
elsex=25;
cout?d?endl;
)
【解答】
20
2.
#include<iostream>
usingnamespacestd;
intmain()
{inta=0,b=1;
switch(a)
{case0:switch(b)
{case0:cout<X〃a=〃<<a<〈"b=z,<<b<<endl;break;
case1:cout<<“a=〃<〈a?"b=〃<〈b〈<endl;break;
)
case1:a++;b++;cout〈〈"a="?a?"b=〃<<b<<endl;
}
)
【解答】
a=0b=1
a=1b=2
#include<iostream>
usingnamespacestd;
intmain()
{inti=1;
while(i<=10)
if(++i%31=1)
continue;
elsecout<<i?endl;
)
【解答】
4
7
10
ttinclude<iostream>
usingnamespacestd;
intmain()
{inti=0,j=5;
do
{i++;j—;
if(i>3)break;
}while(j>0);
cout<<"i="<<i'\t'<<〃j="?j?endl;
)
【解答】
i=4j=1
1.
#include<iostream>
usingnamespacestd;
intmain()
{inti,j;
for(i=l,j=5;i<j;i++)
{j—;}
cout<<i<<,\t*?j<<endl;
)
【解答】
33
6.
#include<iostream>
usingnamespacestd;
intmain()
{inti,s=0;
for(i=0;i<5;i++)
switch(i)
{case0:s+=ibreak;
case1:s+=ibreak;
case2:s+=ibreak;
default:s+=2
)
cout<<z,s=/z<<s?endl;
)
【解答】
s=7
ttinclude<iostream>
usingnamespacestd;
intmain()
{inti,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?endl;
)
【解答】
x=16
2、3思考題
1、C++中有什么形式得選擇控制語句?歸納它們語法形式、應(yīng)用場合。根據(jù)一個實際問題使用不同
得條件語句編程。
【解答】
語句使用方式使用場合
if語句if(表達(dá)式)語句1;需要對給定得條件進(jìn)行判斷,并根據(jù)判斷
else語句2:得結(jié)果選擇不同得操作。
適用于復(fù)雜得條件表達(dá)式判斷。
switch語句switch(表達(dá)式)根據(jù)整型表達(dá)式得不同值決定程序分支
{case常量表達(dá)式1:語句1;得情況。
case常量表達(dá)式2:語句2;適用于判斷表達(dá)式簡單,需要多個分支處
理得情況。
case常量表達(dá)式n;語句n;
[default:語句n+1;]
}
演示程序:
程序⑴
〃此程序用if輸出等級對應(yīng)得分?jǐn)?shù)段
//A->=90,B-(90,80],C-(80,70],D-(70,60],,E-<60
#include<iostream>
usingnamespacestd;
intmainO
{chargd;
cout?,zEnterthegrade:";
cin?gd;
〃直到輸入有效等級,否則程序不繼續(xù)運(yùn)行
while(!((gd>=,A*&&gd〈二'E')||(gd>='a'&&gd〈='e')))
{cout?zzInvalidgrade!Pleaseretry:,z;
cin>>gd;
)
if(gd==,A*Igd==,a)cout〈<"\nScored90To0!\n〃;
elseif(gd==,B*I|gd=='b')cout?/z\nScored80-89!\n”;
elseif(gd二二'C'I|gd二二'c')cout<<z,\nScored70-79!\n〃;
elseif(gd==,D*I|gd==,d')cout<</z\nScored60-69!\n”;
elseif(gd二二'E'||gd二二'e')cout?*\nScoreunder60!\n〃;
elsecout?/zUnexpecterror!\n〃;〃防止意外錯誤
}
程序⑵
〃此程序用switch輸出等級對應(yīng)得分?jǐn)?shù)段
//A->=90,B-(90,80],C-(80,70],D-(70,60],,E-<60
#include<iostream>
usingnamespacestd;
intmain()
{chargd;
cout?z,Enterthegrade:";
cin>>gd;
〃直到輸入有效等級,否則程序不繼續(xù)運(yùn)行
while(!((gd>=,A1&&gd<=*E*)I|(gd>=,a&&gd<='e')))
{cout?/*Invalidgrade!Pleaseretry:";
cin>>gd;
)
switch(gd)
{case'A':
case'a':cout?,,\nScored90T00!\n〃;break;
case'B':
case'b':cout?z/\nScored80-89!\n/,;break;
case'C':
caseJc":cout<<z,\nScored70-79!\n^;break;
case'D':
case*d*:cout<<z,\nScored60-69!\n,z;break;
case'E':
case'e':cout<<z,\nScoreunder60!\n”;break;
defau11:cout?z,Unexpecterror!\n";//防止意外錯誤
)
}
2、什么叫循環(huán)控制?歸納比較C++中各種循環(huán)控制語句得語法、循環(huán)條件與循環(huán)結(jié)束條件得表示形
式及執(zhí)行流程。
【解答】
循環(huán)控制就是在特定得條件下,程序重復(fù)執(zhí)行一些特定動作。
語句語法執(zhí)行流程使用場合
while語句while(表達(dá)式)程序中常用于根據(jù)條件執(zhí)行
循環(huán)體;操作而不需關(guān)心循環(huán)次數(shù)得情況。
循環(huán)條件:表達(dá)式值為非0(真)先判斷形式循環(huán),條件不成立
循環(huán)結(jié)束條件:表達(dá)式值為0(假)時不進(jìn)入循環(huán)體。
do-whiledo程序中常用于根據(jù)條件執(zhí)行
語句循環(huán)體操作而不需關(guān)心循環(huán)次數(shù)。
while(表達(dá)式);后判斷形式循環(huán),至少執(zhí)行1
循環(huán)條件:表達(dá)式值為非0(真)次循環(huán)體。
循環(huán)結(jié)束條件:表達(dá)式值為0(假)一般情況,while語句與do
while語句可以互換使用。
for語句for([表達(dá)式I];[表達(dá)式2];[表達(dá)式3D1for語句稱為步長循環(huán)語句,
循環(huán)體;表達(dá)式I通常用于確定循環(huán)次數(shù)得情況。
(1)表達(dá)式1稱為初始化表達(dá)式,不就是由于語句得3個表達(dá)式均可以
fals
循環(huán)體執(zhí)行部分。r缺省,也可以用于條件循環(huán),即循
(2)表達(dá)式3稱為后置表達(dá)式,作為循環(huán)1true環(huán)次數(shù)不確定得情況。
體得最后一個執(zhí)行表達(dá)式。循環(huán)體
(3)循環(huán)條件:表達(dá)式2值為非0(真)J
循環(huán)結(jié)束條件:表達(dá)式2值為0(假)表達(dá)式S
1
1
for語句的執(zhí)行流程
3、根據(jù)一個實際問題,用不同得循環(huán)語句編程,分析其優(yōu)缺點。
【解答】
略。
4、用if語句與goto語句組織循環(huán),改寫思考題得第3小題編寫得程序。分析在什么情況下可以適
當(dāng)使用goto語句。
【解答】
在不破壞程序基本流程控制得情況下,可以適當(dāng)使用goto語句實現(xiàn)從語句結(jié)構(gòu)內(nèi)部向外得必要跳轉(zhuǎn),
即按特定條件結(jié)束結(jié)構(gòu)語句塊得執(zhí)行。
程序略。
5、有以下程序
#include<iostream>
usingnamespacestd;
intmainO
{charc;
cin>>c;
if(c二二'y*I\c=-Y')
inta=1;
else
inta=0;
cout?z,a=,/?a<<endl;
)
編譯錯誤為:errorC2065:'a':undeclaredidentifier,指示變量a沒有定義。請分析原因,并做出修
改。
【解答】
變量a得定義不應(yīng)該放在if-else語句體中。說明語句與執(zhí)行語句得執(zhí)行時機(jī)不同。變量說明要求在編
譯時定義存儲空間,而if-else就是執(zhí)行語句,程序運(yùn)行后才執(zhí)行。正確得程序就是:
#include<iostream>
usingnamespacestd;
intmain()
{charc;
inta;
cin?c;
if(c==y"|c='Y')
a=l;
else
a=0;
cout<</za=,z?a<<end1;
)
6、有以下程序,希望判斷兩個輸入得整數(shù)就是否相等。程序通過編譯,但不能達(dá)到預(yù)期結(jié)果。請分
析程序能夠通過C++編譯而不能得到期望結(jié)果得原因。
#include<iostream>
usingnamespacestd;
intmainO
{inta,b;
cout〈<“a:〃;cin?a;
cout<<*b:cin?b;
if(a二b)
cout〈〈a<X〃等于;
else
cout<〈a<<〃不等于〃<<b<〈endl;
}
程序運(yùn)行后,輸入a得值為4,b得值為9,顯示結(jié)果如下:
a:4
b:9
9等于9
【解答】
在if語句得判斷表達(dá)式(a=b)中,賦值號“二”應(yīng)該就是邏輯等“二”。從語法上,C++得if語句把
a二b這個賦值表達(dá)式視為邏輯表達(dá)式,沒有編譯錯誤。a=b得值決定于b。若b得輸入值不等于0,if作為
邏輯真(true),否則作為邏輯假(false)。所以,題目中輸入b得值雖然不等于a,但表達(dá)式a=b為邏輯true,
執(zhí)行了if語句得第1個分支。
2、4編程題
1.輸入某學(xué)生成績,若成績在85分以上輸出“verygood",若成績在60分到85分之間輸出“good”,
若成績低于60分輸出"nogood”。
【解答】
#include<iostream>
usingnamespacestd;
intmain()
{doub1escore;
cout?”pleaseinputscore:";
cin>>score;
if(score>=85)cout?”Verygood!”;
elseif(score>=60)cout?〃Good!〃;
elsecout<<"Nogood!”;
)
2.輸入三個整數(shù),按從小到大得順序輸出它們得值。
【解答】
#include<iostream>
usingnamespacestd;
intmain()
{inta,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=b;b=c;c=t;}
cout?a<<'\t'<<b<<'\t'<<c<<endl;
)
3.輸入三角形得三條邊,判別它們能否形成三角形,若能,則判斷就是等邊、等腰、還就是一般三角形。
【解答】
#include<iostream>
usingnamespacestd;
intmain()
{doublea,b,c;
cout<<“a,b,c二〃;
cin?a?b?c;
if(a+b>c&&b+c>a&&c+a>b)
{if(a==b&&b=c)
cout<<”等邊三角形!"<<endl;
elseif(a==bIia==cI:b==c)
cout<<〃等腰三角形!"<<endl;
elsecout?〃一般三角形!"?endl;
}
else
cout?〃不能形成三角形!"?endl;
4.輸入百分制成績,并把它轉(zhuǎn)換成五級分制,轉(zhuǎn)換公式為:
【解答】
#include<iostream>
usingnamespacestd;
intmainO
{doublescore;chargrade;
cout<<"score=〃;
cin?score;
if(score>=0&&score<=100)
{switch(int(score)/10)
{case10:
case9:grade='a';break;
case8:grade='b';break;
case7:grade='c';break;
case6:grade='d';break;
case5:
case4:
case3:
case2:
case1:
case0:grade='e';break;
)
else
{cout?”數(shù)據(jù)輸入錯誤!〃<<endl;
gotoend;
)
cout?grade?endl;
end:;〃分號不能省
)
5.編程序模擬剪刀、石頭與紙游戲。游戲規(guī)則為:剪刀剪紙,石頭砸剪刀,紙包石頭。玩游戲者從鍵盤
上輸入s(表示剪刀)或r(表示石頭)或p(表示紙),要求兩個游戲者交替輸入,計算機(jī)給出輸扁得信息。
【解答】
nclude<iostream>
usingnamespacestd;
intmain()
{charfirst,second;
cout<<"Firstinput(s,rorp
cin?first;
cout<<"Secondinput(s,rorp):〃;
cin?second;
switch(first)
{case's':
switch(second)
{case's':cout?“Scissortiesscissor、"?endl;gotoend;
case'r,:cout?“Scissoriscrushedbyrock、〃?endl;gotoend;
case'p':cout?“Scissorcutspaper>"?endl;gotoend;
default:cout?“secondinputerror!<<endl;gotoend;
}
case'r':
switch(second)
{case's':cout?“Rockcrushesscissor、“?endl;gotoend;
case'rf:cout?“Rocktiesrock^”?endl;gotoend;
case'p':cout?“Rockiswrappedbypaper>"<<endl;gotoend;
default:cout?z,secondinputerror!”<<endl;gotoend;
}
case,p':
switch(second)
{c
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽xx工業(yè)廢鹽資源化利用項目可行性研究報告
- 電力系統(tǒng)網(wǎng)絡(luò)視頻集中監(jiān)控解決方案
- 風(fēng)力發(fā)電站運(yùn)營與管理培訓(xùn)
- 電力系統(tǒng)建模與仿真
- Naftypramide-DA-992-生命科學(xué)試劑-MCE
- MRX-2843-hydrochloride-UNC2371-hydrochloride-生命科學(xué)試劑-MCE
- minus-BO-2367-生命科學(xué)試劑-MCE
- Methyl-2-6-bromo-1H-indol-3-yl-acetate-生命科學(xué)試劑-MCE
- MDK0734-生命科學(xué)試劑-MCE
- Lipid-B37-生命科學(xué)試劑-MCE
- 手術(shù)通知單模板
- 網(wǎng)絡(luò)拓?fù)鋱D常用圖標(biāo)新版
- 《互聯(lián)網(wǎng)金融》試題A及參考答案
- artcam2008軟件及使用artcam的安裝和破解
- 企業(yè)微信的使用培訓(xùn)
- 普外科專科護(hù)理規(guī)范及標(biāo)準(zhǔn)
- UML學(xué)生成績管理系統(tǒng)
- CA6132普通車床使用說明書
- 工程交工驗收會議監(jiān)理發(fā)言
- 電力工程項目管理中的溝通與協(xié)調(diào)
- 中國農(nóng)業(yè)銀行流水單_免費(fèi)下載
評論
0/150
提交評論