版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
習(xí)題1及其解答
1、1選擇題
1、一個(gè)最簡(jiǎn)單得C++程序,可以只有一個(gè)(C)。
(a)庫(kù)函數(shù)(b)自定義函數(shù)(c)main函數(shù)(d)空函數(shù)
2、用C++語(yǔ)言編制得源程序要變?yōu)槟繕?biāo)程序必須要經(jīng)過(guò)(d)o
(a)解釋(b)匯編(c)編輯(d)編譯
3、C++程序中得簡(jiǎn)單語(yǔ)句必須以(b)結(jié)束。
(a)冒號(hào)(b)分號(hào)(c)空格(d)花括號(hào)
4、有說(shuō)明inta=0;doublex=5、16;以下語(yǔ)句中,(c)屬于編譯錯(cuò)誤。
(a)x=a/x;(b)x=x/a;(c)a=a%x;(d)x=x*a;
5、執(zhí)行C++程序時(shí)出現(xiàn)得“溢出”錯(cuò)誤屬于(c)錯(cuò)誤。
(a)編譯(b)連接(c)運(yùn)行(d)邏輯
6、下列選項(xiàng)中,全部都就是C++關(guān)鍵字得選項(xiàng)為(c)o
(a)whileIFStatic(b)breakchargo;
(c)sizeofcaseextern(d)switchfloatinteger
7、按C++標(biāo)識(shí)符得語(yǔ)法規(guī)定,合法得標(biāo)識(shí)符就是(a)0
(a)_abc(b)new(c)7i(d)age
8.C++語(yǔ)句中,兩個(gè)標(biāo)識(shí)符之間(a)不能作為C++得分隔符。
(a)數(shù)字(b);(c):(d)
9.下列正確得八進(jìn)制整型常量表示就是(b)o
(a)OaO(b)015(c)080(d)0x10
10.下列錯(cuò)誤得十六進(jìn)制整型常量表示就是(C)0
(a)0x11(b)Oxaf(c)Oxg(d)Oxlf
11.在下列選項(xiàng)中,全部都合法得浮點(diǎn)型數(shù)據(jù)得選項(xiàng)為(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.下列選項(xiàng)中,(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)于下列語(yǔ)句敘述錯(cuò)誤得就是(a)o
inti=I0,*p=也i;
(a)p得值為10(b)p指向整型變量i
(c)*p表示變量i得值(d)p得值就是變量i得地址
15.有以下變量說(shuō)明,下面不正確得賦值語(yǔ)句就是(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.有以下變量說(shuō)明,下面正確得語(yǔ)句就是(b)o
inta=10,b;int&pa=a,&pb=b;
(a)&pb=a;(b)pb=pa;(c)pb=&pa;(d)*pb=*pa;
17.執(zhí)行下面語(yǔ)句序列后,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)先級(jí)最高。
(a)<=(b)*=(c)+(d)*
19、在下列運(yùn)算符中,(d)優(yōu)先級(jí)最低。
(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á)式選項(xiàng)中,(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í)行下列語(yǔ)句后,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í)行下列語(yǔ)句后,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、以下逗號(hào)表達(dá)式得值為(d)。
(x=4*5,x*5),x+25
(a)25(b)20(c)100(d)45
1、2把下列數(shù)學(xué)表達(dá)式寫(xiě)成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其中有一個(gè)小于z
5、y[TOO,TO],并且y[10,100]
6、坐標(biāo)點(diǎn)(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閱讀下列程序,寫(xiě)出執(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ù)類(lèi)型?變量得類(lèi)型定義有什么作用?
【解答】
數(shù)據(jù)“類(lèi)型”就是對(duì)數(shù)據(jù)得抽象。類(lèi)型相同得數(shù)據(jù)有相同得表示形式、存儲(chǔ)格式以及相關(guān)得操作。定
義一個(gè)變量時(shí),計(jì)算機(jī)根據(jù)變量得類(lèi)型分配存儲(chǔ)空間,并以該類(lèi)型解釋存放得數(shù)據(jù)。
2.普通數(shù)據(jù)類(lèi)型變量與指針類(lèi)型變量得定義、存儲(chǔ)、使用方式上有何區(qū)別?請(qǐng)編寫(xiě)一個(gè)程序驗(yàn)證之。
【解答】
變量類(lèi)型定義存儲(chǔ)使用方式
數(shù)據(jù)類(lèi)型標(biāo)識(shí)符數(shù)據(jù)值通過(guò)名訪問(wèn)即直接訪問(wèn)對(duì)變量?jī)?nèi)容操作
指針類(lèi)型*標(biāo)識(shí)符地址值通過(guò)指針變量得地址值間址訪問(wèn)對(duì)象
驗(yàn)證程序:
#include<iostream>
usingnamespacestd;
intmain()
{inta,b,c;
cout?zza,b,c=〃;
cin?a?b?c;〃對(duì)普通數(shù)據(jù)類(lèi)型變量賦值
int*pa=&a,*pb=&b,*pc=&c;〃用變量地址值初始化指針變量
cout〈〈〃a,b,c=/z?c?endl;〃名訪問(wèn),輸出a,b,c得值
cout?,zpa,pb,pc="?pa?",v?pb<<,z,z,<<pc<<endl;〃輸出指針變量得地址值
〃間址訪問(wèn),輸出pa,pb,pc指向得變量得賦值
cout?z,*pa,*pb,*pc=//<<*pa?z*,〃<<*pc〈〈endl;
}
3.什么叫數(shù)據(jù)對(duì)象得引用?對(duì)象得引用與對(duì)象得指針有什么區(qū)別?請(qǐng)用一個(gè)驗(yàn)證程序說(shuō)明之。
【解答】
引用就是為數(shù)據(jù)對(duì)象定義別名。引用與指針有以下幾點(diǎn)區(qū)別:
(1)引用名不就是內(nèi)存變量,而指針變量要開(kāi)辟內(nèi)存空間。
(2)引用名需要在變量定義與變量名綁定,并且不能重定義;指針變量可以在程序中賦給不同得地址值,
改變指向。
(3)程序中用變量名與引用名訪問(wèn)對(duì)象得形式與效果?樣;指針變量通過(guò)間址訪問(wèn)對(duì)象。
驗(yàn)證程序:
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ù)對(duì)象在C++中有什么不同得訪問(wèn)方式?請(qǐng)編寫(xiě)一個(gè)程序驗(yàn)證之。
【解答】
數(shù)據(jù)對(duì)象在C++中得訪問(wèn)方式有:名訪問(wèn),引用(別名)訪問(wèn),間址訪問(wèn)。
驗(yàn)證程序:
#include<iostream>
usingnamespacestd;
intmain()
{inta;
coutVa=";
cin>>a;
a=a+5;〃名訪問(wèn)
cout?&a?endl;〃輸出變量地址
cout?*(&a)<<endl;〃地址訪問(wèn),輸出變量值
int*pa=&a;〃說(shuō)明指針變量,指向變量a
cout?*pa?endl;〃間址訪問(wèn),輸出變量值
int&ra=a;//ra就是a得引用
cout?ra?endl;〃引用訪問(wèn),輸出變量a得值
)
5.為了約束對(duì)數(shù)據(jù)對(duì)象得值做只讀操作,C++采用什么方式?請(qǐng)做出簡(jiǎn)要?dú)w納。
【解答】
約束數(shù)據(jù)對(duì)象只讀形式如下:
約束對(duì)象說(shuō)明形式
標(biāo)識(shí)常量const類(lèi)型常量標(biāo)識(shí)符二常量表達(dá)式;
指針常量類(lèi)型*const指針;
指向常量得指針const類(lèi)型*指針;或者類(lèi)型const*指針;
指向常量得指針常量const類(lèi)型*const指針;或者類(lèi)型const*const指針;
常引用const類(lèi)型&引用名=對(duì)象名;
6.什么叫表達(dá)式?表達(dá)式值得類(lèi)型由什么因素決定?使用不同運(yùn)算符連接以下3個(gè)變量,請(qǐng)寫(xiě)出5個(gè)以
上獲得值等于true得表達(dá)式。
inta=l,b=2;doublex=0、5;
【解答】
表達(dá)式就是由數(shù)據(jù)與運(yùn)算符,按求值規(guī)則,表達(dá)一個(gè)值得式子。
表達(dá)式值得類(lèi)型得決定因素為操作數(shù)得類(lèi)型。
(1)如果運(yùn)算符左右操作數(shù)類(lèi)型相同,運(yùn)算結(jié)果也就是相同類(lèi)型。
(2)如果運(yùn)算符左右操作數(shù)類(lèi)型不同,首先把類(lèi)型較低(存儲(chǔ)要求,示數(shù)能力較低)得數(shù)據(jù)轉(zhuǎn)換成類(lèi)型較
高得數(shù)據(jù),然后運(yùn)算。
(3)賦值表達(dá)式得類(lèi)型由被賦值變量得類(lèi)型決定。當(dāng)把一個(gè)表達(dá)式得值賦給一個(gè)變量時(shí),系統(tǒng)首先強(qiáng)制
把運(yùn)算值轉(zhuǎn)換成變量得類(lèi)型,然后執(zhí)行寫(xiě)操作。
6個(gè)值等于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.閱讀以下程序,分析下面語(yǔ)句序列中每一個(gè)字符與得意義,寫(xiě)出輸出結(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;
}
【解答】
字符與“&”得意義見(jiàn)程序中添加得注釋。
^include<iostream>
usingnamespacestd
intmainO
{inta=10,b=20;
int*p=&a,*q=&b;//“*”就是指針類(lèi)型說(shuō)明符,“&”就是取址運(yùn)算符
*p=*p**q;〃第1、2、4個(gè)“*”就是間址訪問(wèn)符,第3個(gè)“*”算術(shù)乘運(yùn)算符
int&ra=a;//“&”就是引用說(shuō)明符
ra=a;
int*&rt=q;//“*”就是指針類(lèi)型說(shuō)明符,“&”就是引用說(shuō)明符
*rt=30;//“*”就是間址訪問(wèn)符
//輸出語(yǔ)句中得“*”就是間址訪問(wèn)符
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、輸入一個(gè)三位整數(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、輸入平面上某點(diǎn)橫坐標(biāo)x與縱坐標(biāo)y,若該點(diǎn)在由圖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、輸入三個(gè)整數(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;在下列選項(xiàng)使i得值變成1得語(yǔ)句就是(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二,下面選項(xiàng)中能正確表示上述關(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í)行下列語(yǔ)句后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語(yǔ)句執(zhí)行時(shí)循環(huán)次數(shù)為(d)。
while(!x&&i<3){x++;i++;}
(a)4(b)3(c)2(d)1
5.已知inti=3;下面dowhile語(yǔ)句執(zhí)行時(shí)循環(huán)次數(shù)為(b)。
do(i-;cout<<i<<endl;}while(i!=1);
(a)1(b)2(c)3(d)無(wú)限
6.下面for語(yǔ)句執(zhí)行時(shí)循環(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)無(wú)限
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閱讀下列程序,寫(xiě)出執(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ǔ)句?歸納它們語(yǔ)法形式、應(yīng)用場(chǎng)合。根據(jù)一個(gè)實(shí)際問(wèn)題使用不同
得條件語(yǔ)句編程。
【解答】
語(yǔ)句使用方式使用場(chǎng)合
if語(yǔ)句if(表達(dá)式)語(yǔ)句1;需要對(duì)給定得條件進(jìn)行判斷,并根據(jù)判斷
else語(yǔ)句2:得結(jié)果選擇不同得操作。
適用于復(fù)雜得條件表達(dá)式判斷。
switch語(yǔ)句switch(表達(dá)式)根據(jù)整型表達(dá)式得不同值決定程序分支
{case常量表達(dá)式1:語(yǔ)句1;得情況。
case常量表達(dá)式2:語(yǔ)句2;適用于判斷表達(dá)式簡(jiǎn)單,需要多個(gè)分支處
理得情況。
case常量表達(dá)式n;語(yǔ)句n;
[default:語(yǔ)句n+1;]
}
演示程序:
程序⑴
〃此程序用if輸出等級(jí)對(duì)應(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;
〃直到輸入有效等級(jí),否則程序不繼續(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〃;〃防止意外錯(cuò)誤
}
程序⑵
〃此程序用switch輸出等級(jí)對(duì)應(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;
〃直到輸入有效等級(jí),否則程序不繼續(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";//防止意外錯(cuò)誤
)
}
2、什么叫循環(huán)控制?歸納比較C++中各種循環(huán)控制語(yǔ)句得語(yǔ)法、循環(huán)條件與循環(huán)結(jié)束條件得表示形
式及執(zhí)行流程。
【解答】
循環(huán)控制就是在特定得條件下,程序重復(fù)執(zhí)行一些特定動(dòng)作。
語(yǔ)句語(yǔ)法執(zhí)行流程使用場(chǎng)合
while語(yǔ)句while(表達(dá)式)程序中常用于根據(jù)條件執(zhí)行
循環(huán)體;操作而不需關(guān)心循環(huán)次數(shù)得情況。
循環(huán)條件:表達(dá)式值為非0(真)先判斷形式循環(huán),條件不成立
循環(huán)結(jié)束條件:表達(dá)式值為0(假)時(shí)不進(jìn)入循環(huán)體。
do-whiledo程序中常用于根據(jù)條件執(zhí)行
語(yǔ)句循環(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語(yǔ)句與do
while語(yǔ)句可以互換使用。
for語(yǔ)句for([表達(dá)式I];[表達(dá)式2];[表達(dá)式3D1for語(yǔ)句稱(chēng)為步長(zhǎng)循環(huán)語(yǔ)句,
循環(huán)體;表達(dá)式I通常用于確定循環(huán)次數(shù)得情況。
(1)表達(dá)式1稱(chēng)為初始化表達(dá)式,不就是由于語(yǔ)句得3個(gè)表達(dá)式均可以
fals
循環(huán)體執(zhí)行部分。r缺省,也可以用于條件循環(huán),即循
(2)表達(dá)式3稱(chēng)為后置表達(dá)式,作為循環(huán)1true環(huán)次數(shù)不確定得情況。
體得最后一個(gè)執(zhí)行表達(dá)式。循環(huán)體
(3)循環(huán)條件:表達(dá)式2值為非0(真)J
循環(huán)結(jié)束條件:表達(dá)式2值為0(假)表達(dá)式S
1
1
for語(yǔ)句的執(zhí)行流程
3、根據(jù)一個(gè)實(shí)際問(wèn)題,用不同得循環(huán)語(yǔ)句編程,分析其優(yōu)缺點(diǎn)。
【解答】
略。
4、用if語(yǔ)句與goto語(yǔ)句組織循環(huán),改寫(xiě)思考題得第3小題編寫(xiě)得程序。分析在什么情況下可以適
當(dāng)使用goto語(yǔ)句。
【解答】
在不破壞程序基本流程控制得情況下,可以適當(dāng)使用goto語(yǔ)句實(shí)現(xiàn)從語(yǔ)句結(jié)構(gòu)內(nèi)部向外得必要跳轉(zhuǎn),
即按特定條件結(jié)束結(jié)構(gòu)語(yǔ)句塊得執(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;
)
編譯錯(cuò)誤為:errorC2065:'a':undeclaredidentifier,指示變量a沒(méi)有定義。請(qǐng)分析原因,并做出修
改。
【解答】
變量a得定義不應(yīng)該放在if-else語(yǔ)句體中。說(shuō)明語(yǔ)句與執(zhí)行語(yǔ)句得執(zhí)行時(shí)機(jī)不同。變量說(shuō)明要求在編
譯時(shí)定義存儲(chǔ)空間,而if-else就是執(zhí)行語(yǔ)句,程序運(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、有以下程序,希望判斷兩個(gè)輸入得整數(shù)就是否相等。程序通過(guò)編譯,但不能達(dá)到預(yù)期結(jié)果。請(qǐng)分
析程序能夠通過(guò)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語(yǔ)句得判斷表達(dá)式(a=b)中,賦值號(hào)“二”應(yīng)該就是邏輯等“二”。從語(yǔ)法上,C++得if語(yǔ)句把
a二b這個(gè)賦值表達(dá)式視為邏輯表達(dá)式,沒(méi)有編譯錯(cuò)誤。a=b得值決定于b。若b得輸入值不等于0,if作為
邏輯真(true),否則作為邏輯假(false)。所以,題目中輸入b得值雖然不等于a,但表達(dá)式a=b為邏輯true,
執(zhí)行了if語(yǔ)句得第1個(gè)分支。
2、4編程題
1.輸入某學(xué)生成績(jī),若成績(jī)?cè)?5分以上輸出“verygood",若成績(jī)?cè)?0分到85分之間輸出“good”,
若成績(jī)低于60分輸出"nogood”。
【解答】
#include<iostream>
usingnamespacestd;
intmain()
{doub1escore;
cout?”pleaseinputscore:";
cin>>score;
if(score>=85)cout?”Verygood!”;
elseif(score>=60)cout?〃Good!〃;
elsecout<<"Nogood!”;
)
2.輸入三個(gè)整數(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.輸入百分制成績(jī),并把它轉(zhuǎn)換成五級(jí)分制,轉(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ù)輸入錯(cuò)誤!〃<<endl;
gotoend;
)
cout?grade?endl;
end:;〃分號(hào)不能省
)
5.編程序模擬剪刀、石頭與紙游戲。游戲規(guī)則為:剪刀剪紙,石頭砸剪刀,紙包石頭。玩游戲者從鍵盤(pán)
上輸入s(表示剪刀)或r(表示石頭)或p(表示紙),要求兩個(gè)游戲者交替輸入,計(jì)算機(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2 落花生(說(shuō)課稿)2024-2025學(xué)年部編版五年級(jí)語(yǔ)文上冊(cè)
- 2024年食品添加劑生產(chǎn)企業(yè)食品原料采購(gòu)合同3篇
- 外匯資產(chǎn)管理合同(2篇)
- 2024年進(jìn)口食品批量買(mǎi)賣(mài)協(xié)議格式
- 專(zhuān)業(yè)科技協(xié)作協(xié)議模板2024版
- 房屋場(chǎng)地租賃合同標(biāo)準(zhǔn)
- 27《故事二則》說(shuō)課稿-2024-2025學(xué)年語(yǔ)文四年級(jí)上冊(cè)統(tǒng)編版
- 稅務(wù)顧問(wèn)服務(wù)稅務(wù)咨詢合同模板
- 建筑土建施工合同
- 優(yōu)2024年度醫(yī)療設(shè)備采購(gòu)與技術(shù)支持合同
- 顧客忠誠(chéng)度論文
- 血?dú)夥治黾芭R床應(yīng)用
- 實(shí)驗(yàn)室安全檢查自查表
- 證券公司績(jī)效考核管理辦法
- 中國(guó)建設(shè)銀行網(wǎng)上銀行企業(yè)網(wǎng)銀客戶服務(wù)系統(tǒng)--用戶操作手冊(cè)(簡(jiǎn)易版)
- 大班幼兒任務(wù)意識(shí)培養(yǎng)的策略研究論文
- 浙江省市政工程安全臺(tái)賬完整
- 歐洲城市廣場(chǎng)歷史演變
- 國(guó)外招商引資模式與經(jīng)驗(yàn)借鑒(上海環(huán)盟)
- 個(gè)人信用報(bào)告異議申請(qǐng)表
- 蒸汽管道專(zhuān)項(xiàng)施工方案
評(píng)論
0/150
提交評(píng)論