c語(yǔ)言基礎(chǔ)教程課后答案-呂鳳翥編_第1頁(yè)
c語(yǔ)言基礎(chǔ)教程課后答案-呂鳳翥編_第2頁(yè)
c語(yǔ)言基礎(chǔ)教程課后答案-呂鳳翥編_第3頁(yè)
c語(yǔ)言基礎(chǔ)教程課后答案-呂鳳翥編_第4頁(yè)
c語(yǔ)言基礎(chǔ)教程課后答案-呂鳳翥編_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第一#

一、選擇填空

1.下列各種高級(jí)語(yǔ)言中,()是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。

A.BASIC;B.PASCAL;C.C++D.Ada

2.下列各種高級(jí)語(yǔ)言中,()是最早提出了對(duì)象的概念。

A.Algol60;B.Simula67;C.Smalltalk;D.C++

3.下述面向?qū)ο蟪橄蟮脑碇?,()是不?duì)的。

A.數(shù)據(jù)抽象;B.行為共享;C.進(jìn)化;D.兼容;

4.()不是面向?qū)ο笙到y(tǒng)所包含的要數(shù)。

A.重載;B.對(duì)象;C.類(lèi);D.繼承;

5.關(guān)于C++與C語(yǔ)言的關(guān)系的描述中,()是錯(cuò)誤的。

A.C語(yǔ)言是C++的一個(gè)子集;B.C語(yǔ)言與C++是兼容的;

C.C++對(duì)C語(yǔ)言進(jìn)行了一些改進(jìn);D.C++和C語(yǔ)言都是面向?qū)ο蟮模?/p>

6.下面關(guān)于對(duì)象概念的描述中,()是錯(cuò)誤的。

A.對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)變量;B.對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體;

C.對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體;D.對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的;

7.下面關(guān)于類(lèi)概念的描述中,()是錯(cuò)誤的。

A.類(lèi)是抽象數(shù)據(jù)類(lèi)型的實(shí)現(xiàn);B.類(lèi)是具有共同行為的若干對(duì)象的統(tǒng)一描述體;

C.類(lèi)是創(chuàng)建對(duì)象的樣板;D.類(lèi)就是C語(yǔ)言中的結(jié)構(gòu)類(lèi)型;

8.C++對(duì)C語(yǔ)言作了很多改進(jìn),下列描述中()使得C語(yǔ)言發(fā)生了質(zhì)變,即從面向過(guò)程變成為

面向?qū)ο蟆?/p>

A.增加了一些新的運(yùn)算符;B.允許函數(shù)重載,并允許設(shè)置缺省參數(shù);

C.規(guī)定函數(shù)說(shuō)明必須用原型;D.引進(jìn)了類(lèi)和對(duì)象的概念;

9.按照標(biāo)識(shí)符的要求,()符號(hào)不能組成標(biāo)識(shí)符。

A.連接符;B.下劃線;C.大小寫(xiě)字母;D.數(shù)字字符;

10.下列符號(hào)中,()不可作為分隔符。

A.,;B.:;C.?;D.;

二、判斷下列描述的正確性,對(duì)者劃錯(cuò)者劃X。

1.C++引進(jìn)了引用的概念,對(duì)編程帶來(lái)了很多方便。V

2.C++允許使用友元,但是友元會(huì)破壞封裝性。V

3.C++中使用了新的注釋符(〃),C語(yǔ)言中注釋符(/*…*/)不能在C++中使用。X

4.C++中為了減輕使用者的負(fù)擔(dān),與C語(yǔ)言相比較C++中減少了一些運(yùn)算符。X

5.C++程序中,每條語(yǔ)句結(jié)束時(shí)都加一個(gè)分號(hào)(;)。V

6.C++中標(biāo)識(shí)符內(nèi)的大小寫(xiě)字母是沒(méi)有區(qū)別的。X

7.C++中不允許使用宏定義的方法定義符號(hào)常量,只能用關(guān)鍵字const來(lái)定義符號(hào)常量。X

8.在編寫(xiě)C++程序時(shí),一定要注意采用人們習(xí)慣使用的書(shū)寫(xiě)格式,否則將會(huì)降低其可讀性。V

9.C++是一種以編譯方式實(shí)現(xiàn)的高級(jí)語(yǔ)言。V

10.在C++編譯過(guò)程中,包含預(yù)處理過(guò)程、編譯過(guò)程和連接過(guò)程,并且這三個(gè)過(guò)程的順序是不能改

變的。V

11.預(yù)處理過(guò)程是一般編譯過(guò)程之后連接過(guò)程之前進(jìn)行的。X

12.源程序在編譯過(guò)程中可能會(huì)出現(xiàn)一些錯(cuò)誤信息,但在連接過(guò)程中將不會(huì)出現(xiàn)錯(cuò)誤信息。X

三、分析下列程序的輸出結(jié)果

1.#include<iostream.h>

voidmain()

cout?,,BeiJing,,?,'H;

cout?',ShangHai',?,,\n”;

cout?"TianJing"?endI;

}

1.BeiJjingShangHai

TianJing

2.#include<iostream.h>

voidmain()

(

inta,b;

cout?"inputa,b:n;

cin?a?b;

cout?,,a=,,?a?n,n?,,b=,,?b?endl;

cout?na-b="?a-b?"\n";

)

假定,輸入如下兩個(gè)數(shù)據(jù):85

2.Inputa,b:85

A=8,b=5

A-b=3

3.#include<iostream.h>

voidmain()

(

charc='m';

intd=5;

cout?,"c=",?c?,,\nn;

)

D=5,c=m

四、編譯下列程序,改正所出現(xiàn)的各種錯(cuò)誤信息,并分析輸出結(jié)果:

1、main()

(

cout?,'Thisisastring!";

)

1.#include<iostream.h>

voidmain()

(

cout?,,rrhisisastring!”;

)

輸出結(jié)果:Thisisastring!

2、#include<iostream.h>

voidmain()

cin?x;

intp=x*x;

cout?np=?p?\nn;

)

#include<iostreani.h>

voidmain()

(

intx;

cin?x;

intp=x*x;

coutv<''p="v<pv<”\n";

}

輸出結(jié)果:3

p=9

3、#include<iostream.h>

voidmain()

{inti,j;

i=5;

intk=i+j;

cout?"i+j="?k?"\n";

)

#include<iostream.h>

voidmain()

{intij;

i=5;

j=3;

intk=i+j;

coutvv"i+j="vvk<v"\n";

}

輸出結(jié)果:I+j=8

五、通過(guò)對(duì)第四題中三個(gè)程序的所出現(xiàn)問(wèn)題的修改,回答下列問(wèn)題:

1.從對(duì)第四題1題的修改中,總結(jié)出編程時(shí)應(yīng)注意哪三個(gè)問(wèn)題?

2.C++程序中所出現(xiàn)的變量是否都必須先說(shuō)明才能引用?

3.使用cout和運(yùn)算符<<輸出字符串時(shí)應(yīng)注意什么問(wèn)題?

4.有些變量雖然說(shuō)明了但是沒(méi)有賦值,這時(shí)能否使用?

5.一個(gè)程序編譯通過(guò)了并且運(yùn)行后得到了輸出結(jié)果,這個(gè)結(jié)果是否一定是正確的?

第二本

一、選擇填空

1、在16位機(jī)中,int型字寬為()字節(jié)。

A.2;Bo4;C?6:D8

2、類(lèi)型修飾符unsigned修飾()類(lèi)型是錯(cuò)誤的。

A.char;B.int;C.longint;Dfloat

3、下列十六進(jìn)制的整型數(shù)常數(shù)表示中,()是錯(cuò)誤的。

A.Oxaf;B.OXlb;C.2fx;D.OxAE

4、下列double型常量表示中,()是錯(cuò)誤的。

A.E15;B..35;C.3E5;D.3E-5

5、下列字符常量表示中,()是錯(cuò)誤的。

A.4\105,;B.D.

6、下列字符串常量表示中,()是錯(cuò)誤的。

A.1,\Myes\,,or\"No\'M,;BJVOKN";C.nabcd\nu;D."ABC\0”

7、下列變量名中,()是合法的。

A.CHINA;B.byte-size;C.double;D.A+a

8、在inta[5]={l,3,5};中,數(shù)組元素a⑴的值是()。

A.1;B.0;C.3;D.2

9、在一耳][3]={{1},{3,2},{4,5,6},{0}};中2[2][2]的值是().

A.0;B.5;C.6;D.2

10、下列給字符數(shù)組進(jìn)行初始化中,()是正確的。

A.charsi[]="abcd;B.chars2[3]="xyz";

C.chars3m3]={'a','x','y'};D.chars4[2[3]={"xyz","mnp"!;

11、在inta=3,*p=&a;中,*p的值是()。

A.變量a的地址值;B.無(wú)意義;C,變量p的地址值;D.3

12、對(duì)于int*pa[5];的描述,()是正確的。

A.pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素;

B.pa是一個(gè)指向某個(gè)數(shù)組中第5個(gè)元素的指針,該元素是int型變量:

C.pa[5]表示某個(gè)數(shù)組的第5個(gè)元素的值;

D.pa是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針;

13、下列關(guān)于指針的運(yùn)算中,()是非法的。

A.兩個(gè)指針在一定條件下,可以進(jìn)行相等或不等的運(yùn)算;

B.可以用一個(gè)空指針賦值給某個(gè)指針;

C.一個(gè)指針可以加上兩個(gè)整數(shù)之差;

D.兩個(gè)指針在一定條件下,可以相加。

14、指針可以用來(lái)表示數(shù)組元素,下列表示中()是錯(cuò)誤的。

已知:inta[3]⑺;

A.*(a+l)[5];B.*(*a+3);C.*(*(a+l));D.*(&a[0][0]+2)

15、下列表示引用的方法中,()是正確的。

已知:intm=10;

A.int&x=m;B.int&y=10;C.int&z;D.float&t=&m

16、下列各運(yùn)算符中,()可以作用于浮點(diǎn)數(shù)。

A.++;B.%;C.?;D.&

17、下列各運(yùn)算符中,()不能作用于浮點(diǎn)數(shù)。

A./;B.&&;C.!;D.~

18、下列各運(yùn)算符中,()優(yōu)先級(jí)最高。

A.+(雙目);B.*(單目);C.<=;D.*=

19、下列各運(yùn)算符中,()優(yōu)先級(jí)最低。

A.?:;B.I;C.II;D.!=

20、下列各運(yùn)算符中,()結(jié)合性從左到右。

A.三目;B.賦值;C.比較;D.單目

21、下列表達(dá)式中,()是非法的。

已知:inta=5;floatb=5.5;

A.a%3+b;B.b*b&&++a;C.(a>b)+(int(b)%2);D.--a+b

22、下列表達(dá)式中,()是合法的。

已知:doublem=3.2;intn=3;

A.m?2;B.(m+n)lnC.!m*=n;D.m=5,n=3.l,m+n

23、下列關(guān)于類(lèi)型轉(zhuǎn)換的描述中,()是錯(cuò)誤的。

A.在不同類(lèi)型操作數(shù)組成的表達(dá)式中,其表達(dá)式類(lèi)型一定是最高類(lèi)型double型;

B.逗號(hào)表達(dá)式的類(lèi)型是最后一個(gè)表達(dá)式的類(lèi)型;

C.賦值表達(dá)式的類(lèi)型是左值的類(lèi)型;

D.在由底向高的類(lèi)型轉(zhuǎn)換中是保值映射。

24、下列各表達(dá)式中,()有二義性。

已知:inta(5);b(6);

A.a+b?3;B.++a+b++;C.b+(a=3);D.(a=3)-a++

二、判斷下列描述是否正確,對(duì)者劃J,錯(cuò)者劃X。

1、任何字符常量與一個(gè)任意大小的整型數(shù)進(jìn)行加減都是有意義的。X

2、轉(zhuǎn)義序列表示法只能表示字符不能表示數(shù)字。V

3、在命名標(biāo)識(shí)符中,大小寫(xiě)字母是不加區(qū)別的。X

4、C++的程序中,對(duì)變量一定要先說(shuō)明再使用,說(shuō)明只要在使用之前就可以。V

5、C++中數(shù)組元素的下標(biāo)是從0開(kāi)始,數(shù)組元素是連續(xù)存儲(chǔ)在內(nèi)存單元中的。V

6、數(shù)組賦初值時(shí),初始值表中的數(shù)據(jù)項(xiàng)的數(shù)目可以大于或等于數(shù)組元素的個(gè)數(shù)。X

7、枚舉變量的取值受到該枚舉變量所對(duì)應(yīng)的枚舉表中的枚舉符的局限。V

8、指針是用來(lái)存放某種變量的地址值的變量。這種變量的地址值也可以存放在某個(gè)變量

中,存放某個(gè)指針的地址值的變量稱為指向指針的指針,即二級(jí)指針。V

9、引用是用來(lái)給某個(gè)變量以別名的變量。,對(duì)引用的操作,實(shí)質(zhì)上就是對(duì)被引用的變量的

操作。V

10、運(yùn)算符的優(yōu)先級(jí)和結(jié)合性可以確定表達(dá)式的計(jì)算順序。V

11、在說(shuō)明語(yǔ)句中,的值和的值是相等的。V

12、已知:表達(dá)式具有兩用性。X

13、移位運(yùn)算符在移位操作中,無(wú)論左移還是右移,所移出的空位一律補(bǔ)0;X

14、某個(gè)變量的類(lèi)型高是指該變量被存放在內(nèi)存中的高地址處。X

15、隱含的類(lèi)型轉(zhuǎn)換都是保值映射,顯式的類(lèi)型轉(zhuǎn)換都是非保值映射。X

16、類(lèi)型定義是用來(lái)定義一些C++中所沒(méi)有的新的類(lèi)型。X

三、計(jì)算下列各表達(dá)式的值

(下列各表達(dá)式是相互獨(dú)立的,不考慮前面對(duì)后面的影響。)

1、已知:unsignedintx=015,y=0x2b;

A.xly;B.xAy;C.x&y;D.~x+~y;E.x?=3;F.y?=4.

ABCDEF

4738942949672381042

2、已知:inti(10).j(5);

A.++i-j-;B.i=i*=j;C.i=3/2*(j=3-2);D.~iAj;E.i&jll;F.i+i&Oxff.

ABCDEF

6501-16120

3、已知:inta(5),b(3);計(jì)算下列表達(dá)式得值以及a和b的值。

A.!a&&b++;B.allb+4&&a*b;C.a=1,b=2,a>b?++a:++b;D.++b,a=10,a+5;

E.a+=b%=a+b;F.a!=b>2<=a+1.

ABcDEF

0531,5,33,1315,10,48,8,31,53

4、已知I:intd(5),*pd=&d,&rd=d;

A.d+-rd;B.*pd*rd;C.++*pd-rd;D.++rd-d.

ABCD

02500

5、已知:」'的ASCH碼的值為49。

A.3+2?l+l;B.2*9I3?1;C.5%-3*2/6-3;D.8==3<=2&5;

E.!('3'>'5')II2<6;F.6>=3+2-C0J-7).

ABCDEF

2022-3011

四、按下列要求編寫(xiě)程序

1.從鍵盤(pán)上輸入兩個(gè)int型數(shù),比較其大小,并輸出顯示其中小的。

2.從鍵盤(pán)上輸入一個(gè)int型數(shù),一個(gè)浮點(diǎn)型數(shù)比較其大小,并輸出其中大的。

3.輸入一攝氏溫度,編程輸出華氏溫度。已知:華氏溫度轉(zhuǎn)換為攝氏溫度的計(jì)算公式如下:

C=(F?32)*5/9

其中,F(xiàn)表示華氏溫度,C表示攝氏溫度。

#include<iostream.h>

voidmain()

{

floatc,f;

coutvv”華氏溫度:”;cin?f;

c=(f-32)*5/9;

coiitvv”攝氏溫度:"vvcvvendl;

}

4.編程實(shí)現(xiàn)輸入公里數(shù),輸出顯示其英里數(shù)。已知:1英里=1.60934公里(用符號(hào)常量)。

#include<iostream.h>

constfloatr=1.60934;

voidmain()

(

floatmJ;

coutv<”公里數(shù):”;

cin?m;

I=r*m;

coutvv"英里數(shù):"vvkvendl;

5.輸入一個(gè)int型數(shù),將它的低4位(右4位)都置為1。

#include<iostream.h>

voidmain()

(

intn,m;

coutv<”輸入一個(gè)整數(shù):”;

cin?n;

m=nll5;

coutvv”結(jié)果為:,5?m?endl;

第三才習(xí)殿

一、選擇填空

1.預(yù)處理命令在程序中都是以()開(kāi)頭的。

A.*;B.#;C.:;D./;

2.文件包含命令中被包含的文件的擴(kuò)轉(zhuǎn)名()。

A.必須為.h;B.不能用.h;C.必須是.c;D.不定是.h;

3.下列條件編譯命令中

#if()

〈語(yǔ)句序列1>

#else

〈語(yǔ)句序列2>

#endif

A.整常量表達(dá)式;B.任何標(biāo)識(shí)符;C.任意表達(dá)式;D.被定義的宏名;

4.帶參數(shù)的宏定義中,程序中引用宏定義的實(shí)參()。

A.只能是常量;B.只能是整型量;C.只能是整形表達(dá)式;D.可以是任意表達(dá)式;

5.下列()是語(yǔ)句

A.;;B.a=17;C.x+y;D.cout?''\n";

6.下列for循環(huán)的次數(shù)為()?

for(inti(0),x=0;!x&&i<=5;i++)

A.5;B.6;C.1;D.無(wú)限;

7.下列while循環(huán)的次數(shù)是()。

while(inti=0)i-

A.0;B.l;C.5;D.無(wú)限;

8.下列do-while循環(huán)的循環(huán)次數(shù)為()o

已知:inti(5);

do{cout?i--?endl;

}while(i!=O);

A.O;B.l;C.5;D.無(wú)限;

9.下列for循環(huán)的循環(huán)體執(zhí)行次數(shù)為()o

for(inti(0),j(10);i=j=10;i++,j--)

A.O;B.l;C.10;D.無(wú)限;

10.已知:inta,b;下列switch語(yǔ)句中,()是正確的。

A.switch(a);

{casea:a++;break;

caseb:b++;break;

)

B.switch(a+b)

{casel:a+b;break;

case2:a-b

}l

C.switch(a*a)

{casel,2:++a;

case3,4:++b;

)

D.switch(a/10+b)

{case5:a/5;break

default:a+b;

)

11.下述關(guān)于循環(huán)體的描述中,()是錯(cuò)誤的。

A.循環(huán)體中可以出現(xiàn)break語(yǔ)句和continue語(yǔ)句;

B.循環(huán)體中還可以出現(xiàn)循環(huán)語(yǔ)句;

C.循環(huán)體中不能出現(xiàn)goto語(yǔ)句;

D.循環(huán)體中可以出現(xiàn)開(kāi)關(guān)語(yǔ)句。

12.下述關(guān)于goto語(yǔ)句的描述中,()是正確的。

A.goto語(yǔ)句可在一個(gè)文件中隨意轉(zhuǎn)向;

B.goto語(yǔ)句后面要跟上一個(gè)他所轉(zhuǎn)向的語(yǔ)句;

C.goto語(yǔ)句可以同時(shí)轉(zhuǎn)向多條語(yǔ)句;

D.goto語(yǔ)句可以從?個(gè)循環(huán)體內(nèi)轉(zhuǎn)到循環(huán)體外。

13.下述關(guān)于break語(yǔ)句的描述中,()是正確的。

A.break語(yǔ)句可用于循環(huán)體內(nèi),它將退出該重循環(huán):

B.break語(yǔ)句可用于開(kāi)關(guān)語(yǔ)句中,它將退出開(kāi)關(guān)語(yǔ)句。

C.break語(yǔ)句可用于if體內(nèi),它將退出if語(yǔ)句;

D.break語(yǔ)句在一個(gè)循環(huán)體內(nèi)可以出現(xiàn)多次。

14.下述關(guān)于開(kāi)關(guān)語(yǔ)句的描述中,()是正確的。

A.開(kāi)關(guān)語(yǔ)句中default子句可以沒(méi)有,也可以有一個(gè);

B.開(kāi)關(guān)語(yǔ)句中每個(gè)語(yǔ)句序列中必須有break語(yǔ)句;

C.開(kāi)關(guān)語(yǔ)句中default子句只能放在最后;

D.開(kāi)關(guān)語(yǔ)句中case子句后面的表達(dá)式可以是整形表達(dá)式。

15.下列關(guān)于條件語(yǔ)句的描述中,()是錯(cuò)誤的。

A.if語(yǔ)句中只有一個(gè)else子句;

B.if語(yǔ)句中可以有多個(gè)elseif子句;

C.if語(yǔ)句中if體內(nèi)不能是開(kāi)關(guān)語(yǔ)句;

D.if語(yǔ)句中的if體中可以是循環(huán)語(yǔ)句。

二、判斷下列描述是否正確,對(duì)者劃J,錯(cuò)者劃X。

1.預(yù)處理命令是在進(jìn)行編譯時(shí)首先執(zhí)行的,然后再進(jìn)行正常編譯。V

2.宏定義命令是以分號(hào)結(jié)束的。X

3.帶參數(shù)的宏定義只能有1至2個(gè)參數(shù)。X

4.文件包含命令所包含的文件是不受限制的。X

5.條件編譯命令只在編譯時(shí)才有作用。V

6.預(yù)處理命令的主要作用是提高效率的。X

7.復(fù)合語(yǔ)句就是分程序。X

8.條件語(yǔ)句不能作為多路分支語(yǔ)句。X

9.開(kāi)關(guān)語(yǔ)句不可以嵌套,在開(kāi)關(guān)語(yǔ)句的語(yǔ)句序列中不能再有開(kāi)關(guān)語(yǔ)句X

10.開(kāi)關(guān)語(yǔ)句中的default關(guān)鍵字,只能放在該語(yǔ)句的末尾,不能放在開(kāi)頭或中間。X

11.Switch語(yǔ)句中必須有break語(yǔ)句否則無(wú)法退出switch語(yǔ)句。X

12.While循環(huán)語(yǔ)句的循環(huán)體至少執(zhí)行一次。X

13.Do-while循環(huán)可以寫(xiě)成while循環(huán)的格式。V

14.For循環(huán)是只有可以確定的循環(huán)次數(shù)時(shí)才可使用,否則不能用for循環(huán)。X

15.只有for循環(huán)的循環(huán)體可以是空語(yǔ)句,其他種循環(huán)的循環(huán)體不能用空語(yǔ)句。X

16.當(dāng)循環(huán)體為空語(yǔ)句時(shí),將說(shuō)明該循環(huán)不作任何工作,只起延時(shí)作用。X

17.循環(huán)是可以嵌套的,?個(gè)循環(huán)體內(nèi)可以包含另一種循環(huán)語(yǔ)句。V

18.在多重循環(huán)中,內(nèi)重循環(huán)的循環(huán)變量應(yīng)用的次數(shù)比外重的多。V

19.Break語(yǔ)句可以出現(xiàn)在各種循環(huán)體中。V

20.continue語(yǔ)句只能出現(xiàn)在循環(huán)體中。V

#include<iostream.h>

#defineM1.5

#defineA(a)M*a

voidmain()

{

intx(5),y(6);

cout?A(x+y)?endl;

)

13.5

#include<iostream.h>

#defineMAX(a,b)(a)>(b)?(a):(b)

voidmain()

intm(l),n(2),p(0),q;

q=MAX(n,n+p)*l0;

cout?q?endl;

)

20

3.

#include<iostream.h>

#include"fl.cpp”

voidmain()

(

inta(5),b;

b=fl(a);

cout?b?endl;

)

fl.cpp文件內(nèi)容如下:

#defineM(m)m*m

fl(intx)

{

inta(3);

return-M(x+a);

)

13

4.

#include<iostream.h>

voidmain()

(

inti(0);

while(++i)

(

if(i==10)break;

if(i%3!=l)continue;

cout?i?endl;

4

7

5.

#include<iostream.h>

voidmain()

(

inti(l);

do{

i++;

cout?++i?endl;

if(i==7)break;

}while(i==3);

coutvv”O(jiān)k!\n”;

Ok!

6.

#include<iostream.h>

voidmain()

(

inti(l),j(2),k(3),a(10);

if(!i)

a--;

elseif(j)

if(k)a=5;

else

a=6;

a++;

cout?a?endl;

if(i<j)

if(i!=3)

if(!k)

a=l;

elseif(k)

a=5;

a+=2;

cout?a?endl;

)

6

7

7.

#include<iostream.h>

voidmain()

{

inti,j,a[8][8];

**a=l;

for(i=l;i<8;i++)

{

**(a+i)=l;

*(*(a+i)+i)=l;

for(j=l;j<i;j++)

*(*(a+i)+j)=*(*(a+i-l)+j-l)+*(*(a+i-l)+j);

)

for(i=0;i<8;i++)

for(j=0;j<=i;j++)

cout?,,n?*(*(a4-i)+j);

cout?endl;

)

)

7.1

11

121

1331

14641

15101051

1615201561

8.

#include<iostream.h>

voidmain()

(

intx(5);

do{

switch(x%2)

(

casel:x-

break;

case0:x++;

break;

)

x--;

cout?x?endl;

}while(x>0);

)

8.3

1

1

9.

#include<iostream.h>

voidmain()

(

inta(5),b(6),i(0),j(0);

switch(a)

(

case5:switch(b)

case5:i++;break;

case6:j++;break;

default:i++;j++;

)

case6:i++;

j++;

break;

default:i++;j++;

)

cout?i?endl;

)

1,2

10.

#include<iostream.h>

charinput[]=MSSSWILTECHl\l\lIWMWALLMPr";

voidmain()

(

inti;

charc;

for(i=2;(c=input[i])!='\0';i++)

(

switch(c)

(

case'a,:cout?,i';

continue;

case'1'break;

case1:while((c=input|++i])!=M,&&c!=,\0,);

case9:cout?c;

case'E’:

case'L'icontinue;

default:cout?c;continue;

)

cout?'

)

cout?endl;

)

SWITCH?WAMP

四、按下列要求編程,并上機(jī)調(diào)試。

1.求100之內(nèi)的自然數(shù)中奇數(shù)之和。

2.求100之內(nèi)的自然數(shù)中被13整除的最大數(shù)。

3.求輸入兩個(gè)正整數(shù)的最大公約數(shù)和最小公倍數(shù)。

4.求下列分?jǐn)?shù)序列的前15項(xiàng)之和。

2/1,3/2,5/3,8/5,13/8,21/13,...

5.求Ei!(i=l,.…10)(即求1!+2!+3!+4!+5!+6!+7!+8!+9!+10!之和)

6.求出1?1000之間的完全平方數(shù)。所謂完全平方數(shù)是指能夠表示成為另一個(gè)證書(shū)的平方的

整數(shù)。要求每行輸出8個(gè)數(shù)。

7.輸入4個(gè)int型數(shù),按其大小順序輸出。

8.有一函數(shù)如下所示:

、(X<1)

Y=<x+5

(lWx<10)

jX-5(x>10)

已知x值時(shí),輸出y值。

9.求一元二次方程ax2+bx+c=0的解。

討論下述情況:

(1)b2-4ac=0,有兩個(gè)相等實(shí)根;

(2)b'4ac>0,有兩個(gè)不等實(shí)根;

(3)b2-4ac<0,有兩個(gè)共腕復(fù)根;

(4)a=0,不是二次方程。

10.編程輸出如下圖案。

*

*****

*******

********

*****

*****

***

*

第四本融M

一、選擇填空

i.當(dāng)一個(gè)函數(shù)無(wú)返回值時(shí),定義它時(shí)函數(shù)的類(lèi)型應(yīng)是()

A.void;B.任意;C.int;D.無(wú);

2.在函數(shù)說(shuō)明忖,下列()項(xiàng)是不必要的。

A.函數(shù)的類(lèi)型;B.函數(shù)參數(shù)類(lèi)型和名次;C.函數(shù)名字;D.返回值表達(dá)式;

3.在函數(shù)的返回值類(lèi)型與返回值表達(dá)式的類(lèi)型的描述中,()是錯(cuò)誤的。

A.函數(shù)的返回值的類(lèi)型是定義函數(shù)時(shí)確定的;

B.函數(shù)的返回值的類(lèi)型就是返回值表達(dá)式的類(lèi)型;

C.函數(shù)的返回值表達(dá)式的類(lèi)型與函數(shù)返回值類(lèi)型不同時(shí),表達(dá)示類(lèi)型應(yīng)轉(zhuǎn)換成函數(shù)返回

值類(lèi)型;

D.函數(shù)的返回值類(lèi)型決定了返回值表達(dá)式的類(lèi)型。

4.在一個(gè)被調(diào)用函數(shù)中,關(guān)于return語(yǔ)句使用的描述,()是錯(cuò)誤的。

A.被調(diào)用函數(shù)中可以不用return語(yǔ)句;

B.被調(diào)用函數(shù)中可以使用多個(gè)return語(yǔ)句;

C.被調(diào)用函數(shù)中,如果有返回值,就一定要有return語(yǔ)句;

D.被調(diào)用函數(shù)中,?個(gè)return語(yǔ)句可返回多個(gè)值給調(diào)用函數(shù)。

5.下列()是引用調(diào)用

A.形參是指針,實(shí)參是地址值;

B.形參和實(shí)參都是變量;

C.形參是數(shù)組名,實(shí)參是數(shù)組名;

D.形參是引用,實(shí)參是變量。

6.在傳值調(diào)用中,要求()。

A.形參和實(shí)參類(lèi)型任意,個(gè)數(shù)相等;

B.形參和實(shí)參類(lèi)型都完全一致,個(gè)數(shù)相等;

C.形參和實(shí)參對(duì)應(yīng)的類(lèi)型一致,個(gè)數(shù)相等;

D.形參和實(shí)參對(duì)應(yīng)的類(lèi)型一致,個(gè)數(shù)任意。

7.在C++中,關(guān)于下列設(shè)置參數(shù)默認(rèn)的描述中,()是正確的。

A.不允許設(shè)置參數(shù)的默認(rèn)值;

B.設(shè)置參數(shù)默認(rèn)值只能在定義函數(shù)時(shí)設(shè)置;

C.設(shè)置參數(shù)默認(rèn)值時(shí),應(yīng)該是先設(shè)置右邊的再設(shè)置左邊的;

D.設(shè)置參數(shù)默認(rèn)值時(shí),應(yīng)該全部參數(shù)都設(shè)置;

8.重載函數(shù)在調(diào)用時(shí)選擇的依據(jù)中,()是錯(cuò)誤的。

A.參數(shù)個(gè)數(shù);B.參數(shù)的類(lèi)型;C.函數(shù)名字;D.函數(shù)的類(lèi)型;

9.下列的標(biāo)識(shí)符中,()是文件級(jí)作用域的。

A.函數(shù)形參;B.語(yǔ)句標(biāo)號(hào);C.外部靜態(tài)類(lèi)標(biāo)識(shí)符;D.自動(dòng)類(lèi)標(biāo)識(shí)符.

10.有一個(gè)int型變量,在程序中使用頻度很高,最好定義為()。

A.register;B.auto;C.extern;D.static;

11.下列標(biāo)識(shí)符中,()不是局部變量。

A.register類(lèi);B.外部static類(lèi);C.auto類(lèi);D.函數(shù)形參;

12.下列存儲(chǔ)類(lèi)標(biāo)識(shí)符中,()的可見(jiàn)性與存在性不一值。

A.外部類(lèi);B.自動(dòng)類(lèi);C.內(nèi)部靜態(tài)類(lèi);D.寄存器類(lèi)。

13.下列存儲(chǔ)類(lèi)標(biāo)識(shí)符中,要求通過(guò)函數(shù)來(lái)實(shí)現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行速度,

選用()合適。

A.內(nèi)聯(lián)函數(shù);B.重載函數(shù);C.遞歸調(diào)用;D.嵌套調(diào)用。

14.采用函數(shù)重載的目的在于()。

A.實(shí)現(xiàn)共享;B.減少空間;C.提高速度;D.使用方便,提高可讀性。

15.在將兩個(gè)字符串連接起來(lái)組成一個(gè)字符串時(shí),選用()函數(shù)。

B.A.strlen();B.strcpy();C,strcat();D.strcmp.

二、判斷下列描述的正確性,對(duì)者劃錯(cuò)者劃X。

1.在C++中,定義函數(shù)時(shí)必須給出函數(shù)的類(lèi)型J

2.在C++中,說(shuō)明函數(shù)時(shí)要用函數(shù)原型,即定義函數(shù)時(shí)的函數(shù)頭部分。V

3.在C++中,所有函數(shù)在調(diào)用前都要說(shuō)明。X

4.如果一個(gè)函數(shù)沒(méi)有返回值,定義時(shí)需用void說(shuō)明。V

5.在C++中,傳址調(diào)用將被引用調(diào)用所代替。X

6.使用內(nèi)聯(lián)函數(shù)是以犧牲增大空間開(kāi)銷(xiāo)為代價(jià)的。V

7.返回值類(lèi)型、參數(shù)個(gè)數(shù)和類(lèi)型都相同的函數(shù)也可以重載。X

8.在設(shè)置了參數(shù)默認(rèn)值后,調(diào)用函數(shù)的對(duì)應(yīng)實(shí)參就必須省略。X

9.計(jì)算函數(shù)參數(shù)順序引起的二義性完全是由不同的編譯系統(tǒng)決定的。J

10.For循環(huán)中,循環(huán)變量的作用域是該循環(huán)的循環(huán)體內(nèi)。J

11.語(yǔ)句標(biāo)號(hào)的作用域是定義該語(yǔ)句標(biāo)號(hào)的文件內(nèi)。X

12.函數(shù)形參的作用域是該函數(shù)的函數(shù)體。V

13.定義外部變量時(shí),不用存儲(chǔ)類(lèi)說(shuō)明符extern,而說(shuō)明外部變量時(shí)用它。V

14.內(nèi)部靜態(tài)類(lèi)變量與自動(dòng)類(lèi)變量作用域相同,但是生存期不同。。

15.靜態(tài)生存期的標(biāo)識(shí)符的壽命是短的,而動(dòng)態(tài)生存期的標(biāo)識(shí)符的壽命是長(zhǎng)的。X

16.重新定義的標(biāo)識(shí)符在定義它的區(qū)域內(nèi)是可見(jiàn)的,而與其同名的原標(biāo)識(shí)符在此區(qū)域內(nèi)是不

可見(jiàn)的。但是,它是存在的。V

17.靜態(tài)類(lèi)標(biāo)識(shí)符在它的作用域之外是不存在的。X

18.所有的函數(shù)在定義它的程序中都是可見(jiàn)的。X

19.編譯系統(tǒng)所提供的系統(tǒng)函數(shù)都被定義在他所對(duì)應(yīng)的頭文件中。J

20.調(diào)用系統(tǒng)函數(shù)時(shí),要先將該系統(tǒng)函數(shù)的原型說(shuō)明所在的頭文件包含進(jìn)去。V

三、分析下列程序的輸出結(jié)果。

1,#include<iostream.h>

#defineN5

voidfun();

voidmain()

(

for(inti(l);i<N;i++)

fun();

)

voidfun()

(

staticinta;

intb(2);

cout?(a+=3,a+b)?endl;

)

1.5

8

11

14

2.#include<iostream.h>

intadd(inta,intb);

voidmain()

(

externintx,y;

cout?add(x,y)?endl;

)

intx(20),y(5);

intadd(inta,intb)

(

ints=a+b;

returns;

)

25

3.#include<iostream.h>

voidf(intj);

voidmain()

(

for(inti(l);i<=4;i++)

f(i);

)

voidf(intj)

(

staticinta(10);

intb(l);

b++;

cout?a?,,4-,,?b?,,+,,<<j?,,=,?a+b-ij?endl;

a+=10;

)

2.10+2+1=13

20+2+2=24

30+2+3=35

40+2+4=46

4.#include<iostream.h>

voidf(intn)

(

intx(5);

staticinty(10);

if(n>0)

(

++x;

++y;

cout?x?,,,,,?y?endl;

)

)

voidmain()

(

intm(l);

f(m);

)

6,11

5.#include<iostream.h>

intfac(inta);

voidmain()

{

ints(0);

for(inti⑴;i<=5;i++)

s+=fac(i);

coutv<”5!+4!+3!+2!+1!=,,?s?endl;

intfac(inta)

(

staticintb=l;

b*=a;

returnb;

)

5!+4!+3!+2!+l!=153

6.#include<iostream.h>

voidfun(int,int,int*);

voidmain()

(

intx,y,z;

fun(5,6,&x);

fun(7,x,&y);

fun(x,y,&z);

cout<<x?,\,,?y?,,,,,?z?endl;

)

voidfun(inta,intbjnt*c)

(

b+=a;

*c=b-a;

)

6,6,6

7.#include<iostream.h>

intadd(intx,inty=8);

voidmain()

(

inta(5);

couK^^uml=,,?add(a)?endl;

cout?,,sum2=,,?add(a,add(a))?endl;

cout?,,sum3=,,?add(a,add(a,add(a)))<<endl;

}

intadd(intx,inty)

{

returnx+y;

)

suml=13

sum2=18

sum3=23

8.#include<iostream.h>

#defineN6

intfl(inta);

voidmain()

inta(N);

cout?f1(a)?endl;

)

intfl(inta)

(

return(a==0)?l:a*fl(a-l);

)

720

9.#include<iostream.h>

voidswap(int&jnt&);

voidmain()

(

inta(5),b(8);

cout?,,a=,,?a?,,,tt?,,b=,,?b<<endl;

swap(a,b);

cout?,,a=,?a?,,,tt?,,b=,,?b<<endl;

)

voidswap(int&x,int&y)

(

inttemp;

temp=x;

x=y;

y=temp;

)

a=5,b=8

a=8,b=5

10.#include<iostream.h>

int&fl(intn,ints[])

(

int&m=s[n];

returnm;

}

voidmain()

{

ints[]={5,4,3,2,l,0);

fl(3,s)=10;

cout?fl(3,s)?endl;

)

10

11.#include<iostream.h>

voidprint(int),print(char),print(char*);

voidmain()

intu(1998);

print(U);

print(u);

print("abcd”);

)

voidprint(charx)

(

cout?x?endl;

)

voidprint(char*x)

(

cout?x?endl;

)

voidprint(intx)

{

cout?x?endl;

)

u

1998

abed

12.#include<iostream.h>

voidff(int),ff(double);

voidmain()

(

floata(88.18);

ff(a);

charb('a');

ff(b);

)

voidff(intx)

(

cout?,,ff(int):,,?x?endl;

}

voidff(doublex)

(

cout?,,ff(double):,,?x?endl;

}

ff(double):88.18

ff(int):97

四、按下列要求編程,并上機(jī)驗(yàn)證。

1.從鍵盤(pán)上輸入15浮點(diǎn)數(shù),求出其和幾平均值。要求寫(xiě)出求和平均值的函數(shù)。

2.從鍵盤(pán)上輸入10個(gè)int型數(shù),去掉重復(fù)的。降其剩余的由大到小排序輸出。

3.給定某個(gè)年、月、日的值,例如,1998年4月7日。計(jì)算出這一天是該年的第幾天。要求寫(xiě)

出計(jì)算潤(rùn)年的函數(shù)和計(jì)算日期的函數(shù)。

4.寫(xiě)出一個(gè)函數(shù),使從鍵盤(pán)上輸入的一個(gè)字符串反序存放,并在主函數(shù)中輸入和輸出該字符串。

5.寫(xiě)出一個(gè)函數(shù),要求將輸入的十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)。要求函數(shù)調(diào)用時(shí),使用指針作函

數(shù)形參。

6.編寫(xiě)兩個(gè)函數(shù):一個(gè)是將一個(gè)5位int型數(shù)轉(zhuǎn)換成為每?jī)蓚€(gè)數(shù)字間加一個(gè)空格的空字符串;

另一個(gè)是求出轉(zhuǎn)換后的字符串的長(zhǎng)度。由主函數(shù)輸入int型數(shù),并輸出轉(zhuǎn)換后的字符串和長(zhǎng)

度。

7.輸入5個(gè)學(xué)生4門(mén)功課的成績(jī),然后求出:

A.每個(gè)學(xué)生的總分;B.每門(mén)課程的平均分;C.輸出總分最高的學(xué)生的姓名和總分?jǐn)?shù)。

8.使用遞歸調(diào)用方法將一個(gè)n位整數(shù)轉(zhuǎn)換成字符串。

9.使用函數(shù)重載的方法定義兩個(gè)重名函數(shù),分別求出int型數(shù)的兩個(gè)點(diǎn)間距離和浮點(diǎn)數(shù)的兩點(diǎn)間

距離。

10.已知二維字符數(shù)組s[][5]={“abcd”,“efgh","ijkT,"mnop”};使用字符串處理函數(shù),將該數(shù)組的4

個(gè)字符串連接起來(lái),組成一個(gè)字符串:abcdefghijklmnopo

11.編程求下式的值:n1+n2+n3+n4+...+n10,其中n=l,2,3。編寫(xiě)函數(shù)時(shí),設(shè)置參數(shù)n的默認(rèn)值

為2。

12.編一個(gè)程序驗(yàn)證哥德巴赫猜想:任何一個(gè)充分大的偶數(shù)(大于等于6)總可以表示成兩個(gè)

素?cái)?shù)之和。要求編一個(gè)求素?cái)?shù)prime。函數(shù),它有一個(gè)int型參數(shù),當(dāng)參數(shù)值為素?cái)?shù)時(shí)返回

1,否則返回0。

第3木

一、選擇填空

1.在下列關(guān)鍵字中,用以說(shuō)明類(lèi)中公有成員的是()

A.public;B.private;C.protected;D.friend;

2.下列的各類(lèi)函數(shù)中,()不是類(lèi)的成員函數(shù)。

A.構(gòu)造函數(shù);B.析構(gòu)函數(shù);C.友元函數(shù);D.拷貝初始化構(gòu)造函數(shù);

3,作用域運(yùn)算符的功能是()。

A.標(biāo)識(shí)作用域的級(jí)別的;B.指出作用域的范圍的;

C.給定作用域的大小的;D.標(biāo)識(shí)某個(gè)成員是屬于哪個(gè)類(lèi)的。

4.()是不可能作為該類(lèi)的成員的。

A.自身類(lèi)對(duì)象的指針;B.自身類(lèi)的對(duì)象;

C.自身類(lèi)對(duì)象的引用;D.另一個(gè)類(lèi)的對(duì)象。

5.()不是構(gòu)造函數(shù)的特征

A.構(gòu)造函數(shù)的函數(shù)名與類(lèi)名相同;

B.構(gòu)造函數(shù)可以重載;

C.構(gòu)造函數(shù)可以設(shè)置缺省參數(shù);

D.構(gòu)造函數(shù)必須指定類(lèi)型說(shuō)明。

6.()是析構(gòu)函數(shù)的特征。

A.一個(gè)類(lèi)中只能定義一個(gè)析構(gòu)函數(shù);

B.析構(gòu)函數(shù)與類(lèi)名不同;

C.析構(gòu)函數(shù)的定義只能在類(lèi)體內(nèi);

D.析構(gòu)函數(shù)可以有各個(gè)或多個(gè)參數(shù)。

7.通常的拷貝初始化函數(shù)的參數(shù)是()。

E.某個(gè)對(duì)象名;

A.某個(gè)對(duì)象的成員名;

B.某個(gè)對(duì)象的引用名;

C.某個(gè)對(duì)象的指針名;

8.關(guān)于成員函數(shù)特征的下述描述中,()是錯(cuò)誤的。

D.成員函數(shù)一般是內(nèi)聯(lián)函數(shù);

A.成員函數(shù)可以重載;

B.成員函數(shù)可以設(shè)置參數(shù)的缺省值;

C.成員函數(shù)可以是靜態(tài)的。

9.下述靜態(tài)數(shù)據(jù)成員的特征中,()是錯(cuò)誤的。

D.說(shuō)明靜態(tài)數(shù)據(jù)成員時(shí)前邊要加修飾符static;

A.靜態(tài)數(shù)據(jù)成員要在類(lèi)體外進(jìn)行初始化;

B.引用靜態(tài)數(shù)據(jù)成員時(shí),要在靜態(tài)數(shù)據(jù)成員名前加〈類(lèi)名〉和作用域運(yùn)算符;

C.靜態(tài)數(shù)據(jù)成員不是所有對(duì)象所共用的。

10.友元的作用()。

A.提高程序的運(yùn)用效率;

B.加強(qiáng)類(lèi)的封裝性;

C.實(shí)現(xiàn)數(shù)據(jù)的隱藏性;

D.增加成員函數(shù)的種類(lèi)。

二、判斷下列描述的正確性,對(duì)者劃錯(cuò)者劃X。

1.使用關(guān)鍵字class定義的類(lèi)中缺省的訪問(wèn)權(quán)限是私有(private)的。J

2.作用域運(yùn)算符(::)只能用來(lái)限定成員函數(shù)所屬的類(lèi)。V

3.析構(gòu)函數(shù)是一種函數(shù)體為空的成員函數(shù)。X

4.構(gòu)造函數(shù)和析構(gòu)函數(shù)都不能重載。X

5.說(shuō)明或定義對(duì)象時(shí)?,類(lèi)名前面不需要加class關(guān)鍵字。V

6.對(duì)象成員的表示與結(jié)構(gòu)變量成員表示相同,使用運(yùn)算符.或V

7.所謂私有成員是指只有類(lèi)中所提供的成員函數(shù)才能直接使用它們,任何類(lèi)外的函數(shù)對(duì)它們的訪

間都是非法的。X

8.某類(lèi)中的友元類(lèi)的所有成員函數(shù)可以存取或修改該類(lèi)中的私有成員。V

9.可以在類(lèi)的構(gòu)造函數(shù)中對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化。X

10.如果一個(gè)成員函數(shù)只存取一個(gè)類(lèi)的靜態(tài)數(shù)據(jù)成員,則可將該成員函數(shù)說(shuō)明為靜態(tài)成員函數(shù)。

三、分析下列程序的輸出結(jié)果。

1.

#include<iostream.h>

classA{

public:

A();

A(inti,intj);

voidprint();

private:

inta,b;

);

A::A()

a=b=O;

coutvv''Defaultconstructorcalled.\n^^;

)

A::A(inti,intj)

{

a=i;

b=j;

溫馨提示

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

評(píng)論

0/150

提交評(píng)論