C語(yǔ)言程序設(shè)計(jì)教程課后習(xí)題答案_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程課后習(xí)題答案_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程課后習(xí)題答案_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程課后習(xí)題答案_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程課后習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論