版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C++語(yǔ)言程序設(shè)計(jì)教程課后習(xí)題答案(2011-03-0917:24:22)
標(biāo)簽:雜談分類(lèi):學(xué)習(xí)
第1章C++語(yǔ)言概述
練習(xí)題1
1.1判斷題
XI.C++語(yǔ)言和C語(yǔ)言都是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。
V2.面向?qū)ο蠓椒ň哂蟹庋b性、繼承性和多態(tài)性。
J3.C語(yǔ)言是C++語(yǔ)言的一個(gè)子集。C++語(yǔ)言繼承了C語(yǔ)言。
X4.C++語(yǔ)言程序與C語(yǔ)言程序一樣都是函數(shù)串。
X5.C++語(yǔ)言支持封裝性和繼承性,不支持多態(tài)性。
V6.C++語(yǔ)言比C語(yǔ)言對(duì)數(shù)據(jù)類(lèi)型要求更加嚴(yán)格了。
V7.C++語(yǔ)言對(duì)C語(yǔ)言進(jìn)行了一次改進(jìn),使得編程更加方便了。
X8.C++源程序在編譯時(shí)可能出現(xiàn)錯(cuò)誤信息,而在連接時(shí)不會(huì)出現(xiàn)錯(cuò)誤信息。
V9.編譯C++源程序時(shí);出現(xiàn)了警告錯(cuò)(Warning)也可以生成可執(zhí)行文件。
V10.C++語(yǔ)言程序的實(shí)現(xiàn)也要經(jīng)過(guò)編輯、編譯連接和運(yùn)行3個(gè)步驟。
1.2單選題
1.下列關(guān)于面向?qū)ο蟾拍畹拿枋鲋?,錯(cuò)誤的是(C)。
A.面向?qū)ο蠓椒ū让嫦蜻^(guò)程方法更加先進(jìn)
B.面向?qū)ο蠓椒ㄖ惺褂昧艘恍┟嫦蜻^(guò)程方法中沒(méi)有的概念
C.面向?qū)ο蠓椒ㄌ娲私Y(jié)構(gòu)化程序設(shè)計(jì)方法
D.面向?qū)ο蟪绦蛟O(shè)計(jì)方法要使用面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言
2.下列各種高級(jí)語(yǔ)言中,不是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言是(D)o
A.C++B.Java
C.VBD.C
3.下列關(guān)于類(lèi)的描述中,錯(cuò)誤的是(A)o
A.類(lèi)就是C語(yǔ)言中的結(jié)構(gòu)類(lèi)型
B.類(lèi)是創(chuàng)建對(duì)象的模板
C.類(lèi)是抽象數(shù)據(jù)類(lèi)型的實(shí)現(xiàn)
D.類(lèi)是具有共同行為的若干對(duì)象的統(tǒng)一描述體
4.下列關(guān)于對(duì)象的描述中,錯(cuò)誤的是(C)。
A.對(duì)象是類(lèi)的一個(gè)實(shí)例
B.對(duì)象是屬性和行為的封裝體
C.對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)變量
D.對(duì)象是現(xiàn)實(shí)世界中客觀存在的某種實(shí)體
5.下列關(guān)于C++程序中使用提取符和插入符的輸入/輸出語(yǔ)句的描述中,錯(cuò)誤的是(C)。
A.提取符是對(duì)右移運(yùn)算符(?)重載得到的
B.插入符是對(duì)左移運(yùn)算符(?)重載得到的
C.提取符和插入符都是雙目運(yùn)算符,它們要求有兩個(gè)操作數(shù)
D.提取符和插入符在輸入/輸出語(yǔ)句中不可以連用
1.3填空題
1.C++語(yǔ)言具有面向?qū)ο蠓椒ㄖ幸蟮娜筇匦裕悍庋b性、繼承性和多態(tài)性
2.C++程序中,有且僅有一個(gè)主函數(shù)。
3.C++程序是由類(lèi)和函數(shù)組成的。
4.C++源程序的擴(kuò)展名是cpp。
5.使用插入符進(jìn)行標(biāo)準(zhǔn)輸出文件輸出時(shí),使用的輸出流對(duì)象名是cout
1.4上機(jī)調(diào)試下列程序,并分析輸出結(jié)果
1.
#include<iostream.h>
voidmain()
(
inti,j;
cout?nEnterij:
cin?i?j;
cout?',i=n?i?';?',j=,,?j?endl;
cout?',i+j=n?i+j?V?,,i*j=',?i*j?endl;
)
假定,輸入數(shù)據(jù)如下:
Enterxy:5V91
答:i=5,j=9
i+j=14,i*j=45
2.
#include<iostream.h>
intmax(intjnt);
voidmain()
inta,b,c;
a=5;
b=8;
c=max(a,b);
cout?',max(',?a?7?b?',)=,,?c?endl;
)
intmax(intx,inty)
{
returnx>y?x:y;
)
答:max(5,8)=8
3.文件e1.4.3.cpp內(nèi)容如下:
#include<iostream.h>
voidfl(),f2();
voidmain()
(
cout<<”在北京.\n”;
fl();
f2();
cout<<”再見(jiàn).\n";
文件1.4.3-1.cpp內(nèi)容如下:
#include<iostream.h>
voidfl()
(
coutcc"在上海.\n”;
)
文件L4.3-2.cpp內(nèi)容如下:
#include<iostream.h>
voidf2()
(
coutvv"在廣州.\n”;
)
答:在北京。
在上海。
在廣卅。
再見(jiàn)。
1.5編譯下列程序,修改所出現(xiàn)的錯(cuò)誤,獲得正確結(jié)果
1.
main()
cout?'Inmain().\nH
答:修改后如下:
#include<iostream.h>
voidmain()
(
cout?nInmainOAn1';
#include<iostream.h>
voidMAIN()
{
cin?a;
intb=a+a;
cout?',b=?b?\n";
)
答:修改后如下:
#include<iostream.h>
voidmain()
(
inta;
cin?a;
intb=a+a;
cout<v"b="vvbvv“\n";
)
3.
#include<iostream.h>
voidmain()
(
inti,j;
i=5;
intk=itj;
COUT?ni+j=n?k?endl;
}
答:
#include<iostream.h>
voidmain()
(
inti,j;
j=10;
i=5;
intk=i+j;
cout?"i+j="?k?endl;
1.6通過(guò)對(duì)1.5題中3個(gè)程序的修改,回答下列問(wèn)題
1.從1.5題中第1題程序的修改中,總結(jié)出編程應(yīng)該注意哪些問(wèn)題。
答:C++程序要包含iostraem.h,main。函數(shù)前應(yīng)加類(lèi)型說(shuō)明符void。
2.C++程序中所出現(xiàn)的變量是否必須先說(shuō)明后使用?在函數(shù)體內(nèi)說(shuō)明變量時(shí)是否都要放
在函數(shù)體的開(kāi)頭?
答:C++程序中所出現(xiàn)的變量必須先說(shuō)明后使用。在函數(shù)體內(nèi)說(shuō)明變量時(shí)不一定要放在函數(shù)
體的開(kāi)頭。
3.使用cout和插入符(<<)輸出字符串常量時(shí)應(yīng)注意什么?
答:可輸出一個(gè)字符串常量,也可輸出多個(gè)字符串常量。每輸出一個(gè)字符串常量要使用一次
插入符(《)。
4.程序中定義過(guò)的變量,但沒(méi)有賦值,也沒(méi)有默認(rèn)值,這時(shí)能否使用?
答:不能使用。因?yàn)樗闹挡淮_定。
5.一個(gè)程序編譯通過(guò)并已生成執(zhí)行文件,運(yùn)行后并獲得輸出結(jié)果,這一結(jié)果是否一定正確?
答:不一定正確??赡苓€有算法錯(cuò)。
第2章變量和表達(dá)式及數(shù)組
練習(xí)題2
2.1判斷題
V1.C++語(yǔ)言的合法字符集與C語(yǔ)言的完全相同。
X2.標(biāo)識(shí)符規(guī)定大小寫(xiě)字母沒(méi)有區(qū)別。
X3.C++程序中,不得使用沒(méi)有定義或說(shuō)明的變量。
V4.變量的存儲(chǔ)類(lèi)指出了變量的作用域和壽命。
V5.變量的數(shù)據(jù)類(lèi)型指出了變量在內(nèi)存中存放的字節(jié)數(shù)。
X6.定義變量時(shí),變量的存儲(chǔ)類(lèi)說(shuō)明符不得省略。
X7.自動(dòng)類(lèi)變量與內(nèi)部靜態(tài)類(lèi)變量的作用域和壽命都是相同的。
X8.自動(dòng)類(lèi)變量可以定義在函數(shù)體外,這時(shí)應(yīng)加說(shuō)明符auto。
X9.外部類(lèi)變量與外部靜態(tài)類(lèi)變量的作用域是相同的。
X10.變量被定義后是否有默認(rèn)值與存儲(chǔ)類(lèi)無(wú)關(guān),與數(shù)據(jù)類(lèi)型有關(guān)。
V11.C++程序中,通常使用const來(lái)定義符號(hào)常量,定義時(shí)必須指出類(lèi)型。
X12.變量被定義或說(shuō)明后,它一定具有有意義的值。
X13.字符串常量與字符常量的區(qū)別僅表現(xiàn)在定義形式上的不同,一個(gè)用雙撇號(hào),另一個(gè)
用單撇號(hào)。
X14.所有變量的可見(jiàn)性和存在性都是一致的。
J15.變量在它的作用域內(nèi)一定是可見(jiàn)的,又是存在的。
V16.C++語(yǔ)言中除了包含C語(yǔ)言的所有運(yùn)算符外,還規(guī)定自身的若干個(gè)運(yùn)算符。
V17.增1和減1運(yùn)算符以及賦值運(yùn)算符都具有副作用。
X18.增1和減1運(yùn)算符不僅可以作用在變量上,也可以作用在表達(dá)式上。
X19.關(guān)系運(yùn)算符可以用來(lái)比較兩個(gè)字符的大小,也可以比較兩個(gè)字符串的大小。
X20.移位運(yùn)算符在移位操作中,無(wú)論左移還是右移,對(duì)移出的空位一律補(bǔ)0。
X21.變量的類(lèi)型高低是指它被存放在內(nèi)存的地址值大小。
x22.使用sizeof運(yùn)算符可以求得某種類(lèi)型和某個(gè)變量在內(nèi)存中占的字節(jié)數(shù),不能求得某
個(gè)表達(dá)式的類(lèi)型在內(nèi)存中所占的字節(jié)數(shù)。
V23.在C++語(yǔ)言中,非保值轉(zhuǎn)換應(yīng)用強(qiáng)制類(lèi)型轉(zhuǎn)換。
V24.表達(dá)式中各操作數(shù)計(jì)算順序取決于運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。
V25.在C++程序中,變量值是可以改變的,變量的地址值是不能改變的。
V26.數(shù)組中所有元素的類(lèi)型都是相同的。
X27.定義數(shù)組時(shí)必須對(duì)數(shù)組進(jìn)行初始化。
V28.數(shù)組某維的大小可以用常量表達(dá)式,不可用變量名。
X29.定義一個(gè)數(shù)組沒(méi)有對(duì)它進(jìn)行初始化,則該數(shù)組的元素值都是無(wú)意義的。
V30.用來(lái)給數(shù)組進(jìn)行初始化的初始值表內(nèi)的數(shù)據(jù)項(xiàng)的個(gè)數(shù)必須小于等于數(shù)組元素個(gè)數(shù)。
X31.在定義一個(gè)數(shù)組時(shí),對(duì)其部分元素進(jìn)行了初始化,沒(méi)有初始化的元素的值都是無(wú)意
義的。
V32.數(shù)組被初始化時(shí)是判越界的。
X33.字符數(shù)組就是字符串。
V34.使用printf()函數(shù)輸出顯示字符串時(shí)使用格式符%s,輸出顯示字符時(shí)使用%c或%d。
X35.給數(shù)組元素賦值時(shí)只可用常量表達(dá)式.
2.2單選題
I.下列變量名中,非法的是(C
A.A25B.My_car
C.My-strD.abc
2.下列常量中,十六進(jìn)制int型常量是(A
A.0x5fB.x2a
C.046D.7a
3.下列常量中,不是字符常量的是(B)。
A.'\n'B."y"
C.'x'D.\T
4.在函數(shù)體內(nèi)定義了下述變量a,a的存儲(chǔ)類(lèi)為(D)。
inta;
A.寄存器類(lèi)B.外部類(lèi)
C.靜態(tài)類(lèi)D.自動(dòng)類(lèi)
5.下列關(guān)于變量存儲(chǔ)類(lèi)的描述中,錯(cuò)誤的是(C)。
A.任何變量定義后都具有一個(gè)確定的存儲(chǔ)類(lèi)
B.變量的存儲(chǔ)類(lèi)確定了變量的作用域和壽命
C.定義變量時(shí)沒(méi)有存儲(chǔ)類(lèi)說(shuō)明符者一律為自動(dòng)類(lèi)
D.內(nèi)部靜態(tài)類(lèi)變量和外部靜態(tài)類(lèi)變量的存儲(chǔ)類(lèi)說(shuō)明符都是static
6.下列關(guān)于變量數(shù)據(jù)類(lèi)型的描述中,錯(cuò)誤的是(A)。
A.定義變量時(shí)int型數(shù)據(jù)類(lèi)型可以省略
B.變量的數(shù)據(jù)類(lèi)型可以決定該變量占內(nèi)存的字節(jié)數(shù)
C.變量的數(shù)據(jù)類(lèi)型是可以被強(qiáng)制的
D.變量的數(shù)據(jù)類(lèi)型是有高低之分的
7.長(zhǎng)雙精度浮點(diǎn)型常量的后綴是(C)。
A.UB.F
C.LD.無(wú)
8.下列運(yùn)算符中,不能用于浮點(diǎn)數(shù)操作的是(D)o
A.++B.+
c.*=D.&(雙目)
9.下列運(yùn)算符中,優(yōu)先級(jí)最高的是(A)。
A.*(雙目)B.II
C.?D.%=
10.下列運(yùn)算符中,優(yōu)先級(jí)最低的是(B)。
A.==B.?:
C.ID.&&
11.己知:inta(3);下列表達(dá)式中,錯(cuò)誤的是()o
A.a%2==0B.a—F2
C.(a-2)++D.a?=2
12.已知:intb(5),下列表達(dá)式中,正確的是()o
A.b=nanB.++(b-l)
C.b%2.5D.b=3,b+1,b+2
13.下列關(guān)于類(lèi)型轉(zhuǎn)換的描述中,錯(cuò)誤的是(C
A.類(lèi)型轉(zhuǎn)換運(yùn)算符是(〈類(lèi)型〉)
B.類(lèi)型轉(zhuǎn)換運(yùn)算符是單目運(yùn)算符
C.類(lèi)型轉(zhuǎn)換運(yùn)算符通常用于保值轉(zhuǎn)換中
D.類(lèi)型轉(zhuǎn)換運(yùn)算符作用于表達(dá)式左邊
14.下列表達(dá)式中,其值為0的是(A)o
A.5/10B.!0
C.2>4?0:1D.2&&2II0
15.下列表達(dá)式中,其值不為邏輯值的是(A)。
A.算術(shù)表達(dá)式B.關(guān)系表達(dá)式
C.逗號(hào)表達(dá)式D.邏輯表達(dá)式
16.下列關(guān)于數(shù)組概念的描述中,錯(cuò)誤的是(B)?
A.數(shù)組中所有元素類(lèi)型是相同的
B.數(shù)組定義后,它的元素個(gè)數(shù)是可以改變的
C.數(shù)組在定義時(shí)可以被初始化,也可以不被初始化
D.數(shù)組元素的個(gè)數(shù)與定義時(shí)的每維大小有關(guān)
17.下列關(guān)于數(shù)組維數(shù)的描述中,錯(cuò)誤的是(C
A.定義數(shù)組時(shí)必須將每維的大小都明確指出
B.二維數(shù)組是指該數(shù)組的維數(shù)為2
C.數(shù)組的維數(shù)可以使用常量表達(dá)式
D.數(shù)組元素個(gè)數(shù)等于該數(shù)組的各維大小的乘積
18.下列關(guān)于數(shù)組下標(biāo)的描述中,錯(cuò)誤的是(B
A.C++語(yǔ)言中數(shù)組元素的下標(biāo)是從0開(kāi)始的
B.數(shù)組元素下標(biāo)是一個(gè)整常型表達(dá)式
C.數(shù)組元素可以用下標(biāo)來(lái)表示
D.數(shù)組元素的某維下標(biāo)值應(yīng)小于該維的大小值
19.下列關(guān)于初始值表的描述中,錯(cuò)誤的是(C
A.數(shù)組可以使用初始值表進(jìn)行初始化
B.初始值表是用一對(duì)花括號(hào)括起的若干個(gè)數(shù)據(jù)項(xiàng)組成的
C.初始值表中數(shù)據(jù)項(xiàng)的個(gè)數(shù)必須與該數(shù)組的元素個(gè)數(shù)相等
D.使用初始值表給數(shù)組初始化時(shí),沒(méi)有被初始化的元素都具有默認(rèn)值
20.下列關(guān)于字符數(shù)組的描述中,錯(cuò)誤的是(D)。
A.字符數(shù)組中的每一個(gè)元素都是字符
B.字符數(shù)組可以使用初始值表進(jìn)行初始化
C.字符數(shù)組可以存放字符串
D.字符數(shù)組就是字符串
21.下列關(guān)于字符串的描述中,錯(cuò)誤的是(C)。
A.一維字符數(shù)組可以存放一個(gè)字符串
B.二維字符數(shù)組可以存放多個(gè)字符串
C.可以使用一個(gè)字符串給二維字符數(shù)組賦值
D.可以用一個(gè)字符串給二維字符數(shù)組初始化
22.已知:inta[5]={l,2,3,4};下列數(shù)組元素值為2的數(shù)組元素是(B
A.a[0]B.a[l]
C.a[2]D.a[3]
23.已知:intab口[3]={{1,5,6},{3},{0,2}};數(shù)組元素的值為(A).
A.0B.1
C.2D.3
24.已知:chars[]="abcd";輸出顯示字符的表達(dá)式是(C)。
A.sB.s+2
C.s[2]D.s[3]
25.已知:charss[][6]={"while",“for”,“else”,“break”};輸出顯示“reak”字符串的表達(dá)式是
(B)o
A.ss[3]B.ss[3]+l
C.ss+3D.ss[3][l]
2.3填空題
I.C++語(yǔ)言中,基本數(shù)據(jù)類(lèi)型包含有整型、浮點(diǎn)型、字符型、空值型和布爾型。
2.變量的存儲(chǔ)類(lèi)可分為自動(dòng)類(lèi)、寄存器類(lèi)、外鄒類(lèi)和靜態(tài)存儲(chǔ)類(lèi)。
3.浮點(diǎn)型常量可分為單精度、雙精度和長(zhǎng)雙精度浮點(diǎn)型常量。
4.結(jié)合性從右至左的運(yùn)算符有單目運(yùn)算符、雙目運(yùn)算符和賦值運(yùn)算符。
5.條件表達(dá)式是由三目運(yùn)算符組成的,該表達(dá)式的類(lèi)型是由冒號(hào)左邊和右邊兩個(gè)操作
數(shù)中類(lèi)型高的操作數(shù)類(lèi)型決定的。
6.已知:doubledd[][3]={{1.2,2.4,3.6},{4.8,5.2},{6.4}};這里dd是一個(gè)二維數(shù)組的數(shù)
組名,該數(shù)組共有9個(gè)元素,每個(gè)元素的類(lèi)型是double。數(shù)組元素dd⑼⑼的
值是1.2,的值是5.2,數(shù)組元素dd⑵⑵的值是0。
7.已知:charss[]|6]={"while","break","for","else"};字符數(shù)組ss是二維數(shù)組,它的
第1維大小應(yīng)該是4。硼cout和《輸出字符串“for”時(shí),對(duì)應(yīng)的表達(dá)式是ss+2。懶cout
和號(hào)輸出字符串"break"的子串"reak”時(shí),對(duì)應(yīng)的表達(dá)式是ss[l]+lo使用cout和《輸出字
符串else中的字符,時(shí),對(duì)應(yīng)的表達(dá)式是ss[3][2]。
2.4分析下列程序
1.
#include<iostream.h>
voidmain()
(
inta,b;
cout?"Enterab:
cin?b?a;
intd=a-b;
cout?"d="?d?endl;
假定輸入為5和8o
答:d=3
2.
#include<iostream.h>
voidmain()
{
constintA=8;
constcharCH='k';
constdoubleD=8.5;
cout?nA=M?A?endl;
cout?"CH+2="?char(CH+2)?endl;
cout?nD-5.8="?D-5.8?endl;
1
答:A=8
CH=2=m
D-5.8=2.7
3.
#include<iostream.h>
inta=9;
voidmain()
intb=5;
cout?,,a4-b=n?a+b?endl;
staticintc;
cout?',c+a="?c+a?endl;
constlongintd=8;
cout?na4-d-b=n?a-i-d-b?endl;
)
答:a+b=14
c+a=9
a+d-b=12
4.
#include<iostream.h>
voidmain()
(
inta=3;
charb='m';
cout?,,a=',?a?','?,'b=n?b?endl;
(
inta=5;
b=,n,;
cout?"a=,,?a?,,'?,'b=,'?b?endl;
cout?"a="?a?,/?,'b="?b?endl;
!
答:a=5,b=m
a=3,b=n
a=3,b=n
5.
#include<iostream.h>
voidmain()
(
cout?6%4*5/3+3?endl;
cout?(10&3l8)?endl;
cout?(5?2)+(5?2)?endl;
cout?-4?endl;
)
答:6
10
21
6.
#include<iostream.h>
voidmain()
{
inta=5;
cout?long(&a)?\'?sizeof(a)?',,?sizeof(int)?endl;
doubleb=1.5;
cout?sizeof(1.5f)?','?sizeof(b)?\'?sizeof(1.5L)?endl;
}
答:〈地址值>,4,4
4,8,8
7.
#include<iostream.h>
voidmain()
(
inta=3,b=5;
cout?(a>b+a==b-2)?',,?(a!=b+a<=b)?endl;
charc='k';
cout?(c<='k')<<\,?(—c!=,h,+2)?endl;
floatf=2.3f;
cout?(—f<=f)?endl;
答:0』
1
8.
#include<iostream.h>
voidmain()
inti,j,k;
i=j=k=5;
!i&&++j&&-k;
cout?i?',,?j?,,,?k?endl;
illj-ll++k;
cout?i?V?j?\'?k?endl;
i-5llj-5&&++k;
cout?i?\'?j?\'?k?endl;
答:5,5,5
5,5,5
5,5,5
9.
#include<iostream.h>
voidmain()
{
inti(5),j(8);
cout?(i=i*=j)?endl;
i=5,j=8;
i=5*j/(j---5);
cout<<i?','?j?endl;
i=5,j=8;
cout?(j+=i*=j-5)?endl;
)
答:40
13,7
23
10.
#include<iostream.h>
inta=8;
voidmain()
intb=6;
doubled=1.5;
d+=a+b;
cout?d?endl;
cout?(a=l,b=2,d=2.5,a+b+d)?endl;
cout?(a<0?a:b<0?a++:b++)?endl;
)
答:15.5
5.5
2
11.
#include<iostream.h>
voidmain()
(
intm0[3]={9,8,7,6,5,4,3,2,1},s=0;
fbr(inti=0;i<3;i++)
s+=m[i][i];
cout?s?endl;
)
答:15
12.
#include<iostream.h>
voidmain()
(
chars[]="bhy543kpm345”;
for(inti=O;s[i]!=\O';i++)
(
if(s[i]>=,a,&&s[i]<=,z,)
continue;
cout?s[i];
)
cout?endl;
)
答:543345
13.
#include<iostream.h>
voidmain()
(
intb[]={5,-3,4,l,-8,9,0,10);
inti=0,j;
for(j=i;i<8;i++)
if(b[i]>b[j])
j=i;
cout<<j'vvb[j]?endl;
)
答:7,10
14.
#include<iostream.h>
voidmain()
(
inta[][3]={1,2,3,4,5,6,7,8,91;
intsl(0),s2(0);
for(inti=0;i<3;i++)
for(intj=0;j<3;j++)
(
if(i!=j)
sl+=a[i]|jj;
if(i+j==l)
s2+=a[i][j];
}
cout?"sl="?sl?','?"s2="?s2?endl;
答:sl=30,s2=6
15.
#include<iostream.h>
voidmain()
{
chars[]="#%#n;
for(inti=0;i<3;i++)
(
fbr(intj=O;j<i;j++)
cout?**;
for(intk=O;k<3;k++)
cout?s[k];
cout?endl;
)
for(i=2;i>0;i-)
(
for(intj=O;j<i-l;j++)
cout?'
for(intk=O;k<3;k++)
cout?s[k];
cout?endl;
答:#%#
#%#
#%#
#%#
#%#
2.5編程題
1.已知:inta=3,b=5;編程計(jì)算下列兩個(gè)代數(shù)式的值,并比較它們是否相等。
(a+b)2
和
a2+2ab+b2
答:編程如下:
#include<iostream.h>
voidmain()
(
inta=3,b=5;
intdl=(a+b)*(a+b);
intd2=a*a+2*a*b+b*b;
cout?"d1=n?dl?endl?nd2="<<d2?endl;
從結(jié)果中可以看出dl和d2值是相等的。
2.已知:intx=5;編程求下列代數(shù)式的值。
f(x)=3x3+2x2+5x+2
答:編程如下:
#include<iostream.h>
voidmain()
(
intx=5;
intf=3*x*x*x+2*x*x+5*x+2;
cout?f?endl;
)
3.從鍵盤(pán)上輸入兩個(gè)double型數(shù),編程輸出其中最小者。
答:編程如下:
#include<iostream.h>
voidmain()
(
doublea,b;
coutvv”請(qǐng)輸入兩個(gè)double型數(shù):”;
cin?a?b;
cout<<”輸入的兩個(gè)數(shù)中較小的是”;
if(a<=b)
cout?a?endl;
else
cout?b?endl;
)
4.華氏溫度轉(zhuǎn)換成攝氏溫度的計(jì)算公式如下:
C=(F-32)*5/9
其中,C表示攝氏溫度,F(xiàn)表示華氏溫度。從鍵盤(pán)上輸入一攝氏溫度,編程輸出對(duì)應(yīng)的華氏
溫度。
答:編程如下:
#include<iostream.h>
voidmain()
(
doublec,f;
cout<<”請(qǐng)輸入一個(gè)攝氏溫度值:”;
cin?c;
f=9.0/5.0*c+32.0;
coutv<"攝氏溫度為“vvcv<"華氏溫度為""fvvendl;
)
5.從鍵盤(pán)上輸入5個(gè)浮點(diǎn)數(shù),輸出它們的和以及平均值。
答:編程如下:
#include<iostream.h>
voidmain()
(
doublea,b,c,d,e;
cout<<”請(qǐng)輸入5個(gè)double型數(shù):”;
cin?a?b?c?d?e;
doublef=a+b+c+d+e;
cout?”輸入的5個(gè)數(shù)的和是"《f<v”平均值是"號(hào)f/5.0?endl;
)
6.將字符串”12345”,逆向輸出為”54326。
答:編程如下:
#include<iostream.h>
voidmain()
(
chara[]=1,12345n;
cout?a[4]?a[3]?a[2]?a[1]?a[0J?endl;
)
2.6簡(jiǎn)單回答下述問(wèn)題
1.C++語(yǔ)言中注釋符的格式如何?注釋信息的功能是什么?
答:注釋符格式有2種:
格式':
格式二:〃〈注釋信息〉
注釋信息是用來(lái)對(duì)程序進(jìn)行提示和說(shuō)明的。
2.使用const定義符號(hào)常量比使用#define定義符號(hào)常量有何優(yōu)點(diǎn)?
答:使用const定義符號(hào)常量時(shí)要指出數(shù)據(jù)類(lèi)型,而用#define定義符號(hào)常量時(shí)不需提出類(lèi)型,
因此前者比后者對(duì)類(lèi)型要求更嚴(yán)格,這樣會(huì)更安全。
3.內(nèi)部靜態(tài)存儲(chǔ)類(lèi)變量有何特點(diǎn)?
答:內(nèi)部靜態(tài)存儲(chǔ)類(lèi)變貫的特點(diǎn)是作用域較小,但壽命很長(zhǎng),這種變量作用域與壽命不一致,
因此會(huì)出現(xiàn)不可見(jiàn)但又存在的情況。
4.在使用插入符(?)輸出若干個(gè)表達(dá)式值時(shí),有的表達(dá)式中使用的運(yùn)算符的優(yōu)先級(jí)低
于插入符優(yōu)先級(jí)時(shí)應(yīng)該如何處理?
答:這時(shí)需將表達(dá)式用括號(hào)括起來(lái),己改變其優(yōu)先級(jí)。
5.由多種不同運(yùn)算符組成的表達(dá)式,其類(lèi)型如何確定?例如,
inta,b,c;
a=b>c?b:c;
這是?個(gè)條件表達(dá)式還是賦值表達(dá)式?
答:表達(dá)式類(lèi)型由優(yōu)先級(jí)低的運(yùn)算符組成的表達(dá)式來(lái)確定。
這是一個(gè)賦值表達(dá)式,因?yàn)橘x值運(yùn)算符優(yōu)先級(jí)低于三目運(yùn)算符。
6.數(shù)組元素個(gè)數(shù)是由什么決定的?
答:數(shù)組元素個(gè)數(shù)是由維數(shù)及其大小來(lái)決定的。一維數(shù)組元素個(gè)數(shù)是該維的大小,二維數(shù)組
的元素個(gè)數(shù)是兩維大小之積等。
7.數(shù)組元素下標(biāo)有何規(guī)定?
答:C++語(yǔ)言中,數(shù)組元素下標(biāo)從0開(kāi)始。
8,初始值表中數(shù)據(jù)項(xiàng)的類(lèi)型和個(gè)數(shù)有何規(guī)定?
答:初始值表中數(shù)據(jù)項(xiàng)的類(lèi)型應(yīng)與該變是類(lèi)型相同,個(gè)數(shù)應(yīng)小于或等于被初始化的數(shù)組元素
的個(gè)數(shù)。
9.字符數(shù)組和字符串有什么關(guān)系?
答:字符數(shù)組中可存放字符串,而字符數(shù)組不都是存放字符串的。如果字符數(shù)組中有字符串
結(jié)束符,則說(shuō)明該字符數(shù)存放的是字符串。
10.一個(gè)數(shù)組中的元素類(lèi)型是否一定相同?何時(shí)定義的數(shù)組元素具有默認(rèn)值?
答:數(shù)組中元素類(lèi)型必須相同。存儲(chǔ)類(lèi)為外部和靜態(tài)的數(shù)組其元素具有默認(rèn)值。
第3章語(yǔ)句和預(yù)處理
練習(xí)題3
3.1判斷題
V1.表達(dá)式和表達(dá)式語(yǔ)句是不同的。
X2.空語(yǔ)句是一種沒(méi)有用處的語(yǔ)句。
X3.復(fù)合語(yǔ)句就是分程序。
X4.條件語(yǔ)句中if子句和else子句都是必須有并且僅有一個(gè)。
45.條件語(yǔ)句中elseif子句可以沒(méi)有,也可以有多個(gè)。
V6.開(kāi)關(guān)語(yǔ)句可實(shí)現(xiàn)多路分支。
X7.開(kāi)關(guān)語(yǔ)句的〈語(yǔ)句序列》中必須有一個(gè)break語(yǔ)句,否則該開(kāi)關(guān)語(yǔ)句便無(wú)法退出。
X8.任何循環(huán)語(yǔ)句都是至少執(zhí)行一次循環(huán)體。
X9.退出for循環(huán)語(yǔ)句必須是for后面括號(hào)內(nèi)的中間一個(gè)表達(dá)式的值為0。
V10.do-while循環(huán)語(yǔ)句至少要執(zhí)行一次循環(huán)體。
X11.循環(huán)語(yǔ)句的循環(huán)體中可以出現(xiàn)if語(yǔ)句,if語(yǔ)句的if體內(nèi)不能出現(xiàn)循環(huán)語(yǔ)句。
x12.goto語(yǔ)句中所使用的語(yǔ)句標(biāo)號(hào)是一種標(biāo)識(shí)符,它的作用域是文件級(jí)的。
V13.break語(yǔ)句和continue語(yǔ)句都可以出現(xiàn)在循環(huán)體中,但是它們的作用是不同的。
X14.文件包含命令所能包含的文件類(lèi)型是不受限制的。
3.2單選題
1.下列關(guān)于語(yǔ)句的描述中,錯(cuò)誤的是(A)。
A.C++程序中的函數(shù)是由若干條語(yǔ)句組成的
B.每條語(yǔ)句都要實(shí)現(xiàn)某種操作
C.條件語(yǔ)句是用來(lái)實(shí)現(xiàn)分支操作的
D.循環(huán)語(yǔ)句是用來(lái)在一定條件下重復(fù)執(zhí)行某段程序的
2.下列關(guān)于條件語(yǔ)句的描述中,錯(cuò)誤的是(C)?
A.if語(yǔ)句中最多只能有一個(gè)else子句
B.if語(yǔ)句的if體內(nèi)可以出現(xiàn)開(kāi)關(guān)語(yǔ)句
C.if語(yǔ)句中elseif子句和else子句的順序是沒(méi)有限制的
D.if語(yǔ)句中else子句是與它最近的if子句配對(duì)的
3.下列關(guān)于開(kāi)關(guān)語(yǔ)句的描述中,錯(cuò)誤的是(B)。
A.開(kāi)關(guān)語(yǔ)句中,case子句的個(gè)數(shù)是不受限制的
B.開(kāi)關(guān)語(yǔ)句中,case子句的語(yǔ)句序列中一定要有break語(yǔ)句
C.開(kāi)關(guān)語(yǔ)句中,default子句可以省略
D.開(kāi)關(guān)語(yǔ)句中,右花括號(hào)具有退出開(kāi)關(guān)語(yǔ)句的功能
4.下列關(guān)于循環(huán)語(yǔ)句的描述中,錯(cuò)誤的是(A
A.while循環(huán)語(yǔ)句中<條件>給定的表達(dá)式不能為非0的常量,否則便是死循環(huán)
B.for循環(huán)語(yǔ)句的循環(huán)體內(nèi)可以出現(xiàn)while循環(huán)語(yǔ)句、do-while循環(huán)語(yǔ)句和for循環(huán)語(yǔ)句
C.循環(huán)語(yǔ)句的循環(huán)體可以是空語(yǔ)句
D.循環(huán)語(yǔ)句的循環(huán)體內(nèi)可.以出現(xiàn)break語(yǔ)句,也可以出現(xiàn)continue語(yǔ)句
5.已知:inti(3);下列do-while循環(huán)語(yǔ)句的循環(huán)次數(shù)是(D)。
do{
cout?i-?endl;
i-;
}while(i!=0);
A.0B.3
C.1D.無(wú)限
6.下列for循環(huán)語(yǔ)句的循環(huán)次數(shù)是(B)o
for(inti(0),j(5);i=3;i++,j-);
A.3B.無(wú)限
C.5D.0
7.下列while循環(huán)語(yǔ)句的循環(huán)次數(shù)是(A)o
while(inti(0))i-;
A.0B.1
C.2D.無(wú)限
8,下列程序段執(zhí)行后,j值是(B)o
for(inti(0),j(0);i<10;i++)
if(i)j++;
A.0B.9
C.10D.無(wú)限
9.已知:typedefcharCH;下列描述中,正確的是(A)?
A.使用CH定義的變量是char型變量
B.使用CH定義的是一個(gè)字符常量
C.使用CH定義的變量其類(lèi)型不確定
D.使用CH定義的是一個(gè)字符串
10.下列關(guān)于預(yù)處理命令的描述中,錯(cuò)誤的是(D)。
A.預(yù)處理命令最左邊的標(biāo)識(shí)符是#
B.預(yù)處理命令是在編譯前處理的
C.宏定義命令可以定義符號(hào)常量
D.文件包含命令只能包含.h文件
3.3填空題
1.表達(dá)式語(yǔ)句是一個(gè)表達(dá)式后邊加上分號(hào)(;)組成的??照Z(yǔ)句是只有一個(gè)分號(hào)的語(yǔ)
句。
2.復(fù)合語(yǔ)句是由兩條條或兩條條以上的語(yǔ)句加上花括號(hào)({})組成的。
3.分程序是一種帶有說(shuō)明語(yǔ)句的復(fù)合語(yǔ)句。
4.循環(huán)語(yǔ)句的共同特點(diǎn)是都應(yīng)具有循環(huán)體和退出循環(huán)的條件。
5.下列程序是求100之內(nèi)的能被7整除的自然數(shù)之和。
#inelude<iostream.h>
voidmain()
(
intsum;
_sum=0_;
for(inti(l);—i<=10()_;i++)
if(_i%7==0_)
sum+=i;
cout?sum?endl;
!
3.4上機(jī)調(diào)試下列程序,并分析其輸出結(jié)果
1.
#include<iostream.h>
voidmain()
(
inta(8),b(5);
if(!a)
b-;
elseif(b)
if(a)
a++;
else
a-;
else
b++;
cout?a?7?b?endl;
答:9,5
2.
#include<iostream.h>
voidmain()
{
inta(10);
while(—a)
(
if(a==5)break;
if(a%2==0&&a%3==0)continue;
cout?a?endl;
)
)
答:9
8
7
3.
#include<iostream.h>
voidmain()
intb(10);
do{
++b;
cout?++b?endl;
if(b==15)break;
}while(b<15);
cout?nok!n?endl;
)
答:12
14
16
ok!
4.
#include<iostream.h>
voidmain()
(
intw(5);
do{
switch(w%2)
(
case1:w—;break;
case0:w++;break;
w—;
cout?w?endl;
}while(w>0);
)
答:3
1
-1
5.
#include<iostream.h>
voidmain()
(
inta(4),b(5),i(0),j(0);
switch(a)
{
case4:switch(b)
(
case4:i++;break;
case5:j++;break;
default:i++;j++;
case5:i++;j++;
break;
default:i++;j++;
)
cout?i?\'?j?endl;
)
答:1,2
6.
#include<iostream.h>
voidmain()
(
intb(10);
for(inti=9;i>=0;i")
(
switch(i)
{
case1:case4:case7:b++;break;
case2:case5:case8:break;
case3:case6:case9:b+=2;
}
cout?b?endl;
答:19
7.
#include<iostream.h>
voidmain()
|
inta(6);
for(inti(l);i<=a;i++)
(
for(intj=l;j<=a-i;j++)
cout?*
for(j=I;j<=2*i-1;j++)
cout?'A,;
cout?endl;
)
}
答:A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
AAAAAAAAAAA
8.
#include<iostream.h>
#defineMAX(x,y)(x)>(y)?(x):(y)
voidmain()
|
typedefintIN;
INa(3),b(4),c;
c=MAX(a,b)*2;
cout?c?endl;
)
答:8
3.5編程題
1.求100之內(nèi)的自然數(shù)中奇數(shù)之和。
答:編程如下:
#include<iostream.h>
voidmain()
ints=0;
for(inti=l;i<100;i+=2)
s+=i;
cout?s?endl;
!
2.求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù)。
答:編程如下:
假定兩個(gè)整數(shù)分別為15和25,求它們的最大公約數(shù)和最小公倍數(shù)。
#include<iostream.h>
voidmain()
(
intm,n,t;
m=15;
n=25;
if(m<n)
(
t=m;
m=n;
n=t;
)
intmO=m,nO=n;
while(n!=0)
t=m%n;
m=n;
n=t;
)
coutv<”最大公約數(shù)為"?m?endl;
coutcv”最小公倍數(shù)為"<vmO*nO/m?endl;
)
3.求下列分?jǐn)?shù)序列前15項(xiàng)之和。
2/1,3/2,5/3,8/5,13/8,…
答:編程如下:
#include<iostream.h>
voidmain()
{
inta;
doublei=2,j=l,sum=0,t;
fbr(a=l;a<15;a++)
(
sum+=i/j;
t=i;
i+=j;
j=t;
)
cout?',SUM=',?sum?endl;
!
4.按下列公式,求e的近似值。
e=l+1/l!+1/2!+1/3!+—+l/n!
答:編程如下:
#include<iostream.h>
#include<math.h>
voidmain()
(
doublex(l),s(0);
for(inti=1;fabs(x)>1e-8;i++)
{
x*=(-1.0)*(2*i-3)/(2*i-l);
s+=x;
)
s*=4;
cout?',pi=,,?s?endl;
5.求下列式子之和,假定n=10。
S=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)
答:編程如下:
#include<iostream.h>
voidmain()
(
ints(0),sI(0);
for(inti=l;i<=10;i++)
(
sl+=i;
s+=sl;
)
cout?s?endl;
3.6簡(jiǎn)單回答下列問(wèn)題
1.分程序是復(fù)合語(yǔ)句嗎?復(fù)合語(yǔ)句與分程序的區(qū)別是什么?
答:分程序是復(fù)合語(yǔ)句。復(fù)合語(yǔ)句與分程序的區(qū)別在于含有說(shuō)明語(yǔ)句的復(fù)合語(yǔ)句稱(chēng)為分程序。
2.if語(yǔ)句中,else子句的功能是什么?
答:該子句的功能是當(dāng)if子句和所有elseif子句的條件都為0時(shí),則執(zhí)行else子句。
3.在開(kāi)關(guān)語(yǔ)句中,是否每個(gè)case子句后面的〈語(yǔ)句序列》中都應(yīng)該有break語(yǔ)句?
答:通常case子句后面的〈語(yǔ)句序列〉中都有break語(yǔ)句,根據(jù)需要也可以沒(méi)有break語(yǔ)句。
4.循環(huán)語(yǔ)句的循環(huán)體中出現(xiàn)的continue語(yǔ)句的作用是什么?
答:結(jié)束本次循環(huán),轉(zhuǎn)到循環(huán)頭判斷是否繼續(xù)循環(huán)。
5.文件包含命令的功能嗎?該命令一定要放在程序首部嗎?
答:該預(yù)處理命令是將指定的包含文件內(nèi)容放在該命令出現(xiàn)的地方。通常放在程序開(kāi)頭,便
于后邊語(yǔ)句的使用。
第4章指針和引用
練習(xí)題4
4.1判斷題
X1.指針是變量,它具有的值是某個(gè)變量或?qū)ο蟮牡刂分?,它還具有一?個(gè)地址值,這兩個(gè)
地址值是相等的。
V2.指針的類(lèi)型是它所指向的變量或?qū)ο蟮念?lèi)型。
X3.定義指針時(shí)不可以賦初值。
J4.指針可以賦值,給指針賦值時(shí)一定要類(lèi)型相同,級(jí)別一致。
X5.指針可以加上或減去一個(gè)int型數(shù),也可以加上一個(gè)指針。
V6.兩個(gè)指針在任何情況下相減都是有意義的。
V7.數(shù)組元素可以用下標(biāo)表示,也可以用指針表示。
X8.指向數(shù)組元素的指針只可指向數(shù)組的首元素。
V9.指向一維數(shù)組的指針是?個(gè)二級(jí)指
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石船經(jīng)濟(jì)課程設(shè)計(jì)
- 藥品生產(chǎn)大學(xué)課程設(shè)計(jì)
- 幼兒手勢(shì)舞教學(xué)課程設(shè)計(jì)
- 電子鐘表課程設(shè)計(jì)
- 新冉的課程設(shè)計(jì)
- 穿鞋帶的課程設(shè)計(jì)
- 資產(chǎn)負(fù)債表優(yōu)化策略計(jì)劃
- 酒店餐飲行業(yè)安全生產(chǎn)工作總結(jié)
- 青少年培訓(xùn)機(jī)構(gòu)前臺(tái)接待總結(jié)
- 家具制造工藝改良
- 2023年鞍山市海城市教育局畢業(yè)生招聘筆試真題
- 北京2025年首都醫(yī)科大學(xué)附屬北京友誼醫(yī)院招聘140人歷年參考題庫(kù)(頻考版)含答案解析
- 遼寧省撫順縣2024-2025學(xué)年九年級(jí)上學(xué)期期末物理試卷(含答案)
- 2024-2025學(xué)年安徽省合肥市巢湖市三年級(jí)數(shù)學(xué)第一學(xué)期期末達(dá)標(biāo)測(cè)試試題含解析
- 浙江省寧波市九校2023-2024學(xué)年高一上期末聯(lián)考生物試題
- 《工商管理專(zhuān)業(yè)畢業(yè)實(shí)習(xí)》課程教學(xué)大綱
- 乳腺中心建設(shè)方案
- 國(guó)開(kāi)電大本科《西方經(jīng)濟(jì)學(xué)(本)》網(wǎng)上形考(作業(yè)一至六)試題及答案
- 提高有風(fēng)險(xiǎn)患者預(yù)防跌倒墜床護(hù)理措施落實(shí)率品管圈PDCA案例匯報(bào)
- 安環(huán)部2025年度工作計(jì)劃
- 2023-2024人教版上學(xué)期小學(xué)英語(yǔ)三年級(jí)上冊(cè)期末試卷
評(píng)論
0/150
提交評(píng)論