版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C++)(景紅版)課后全部習(xí)題及參考答案習(xí)題 第1章1.什么是軟件?2.簡(jiǎn)述軟件的開發(fā)過(guò)程。3.什么是程序設(shè)計(jì)?4.簡(jiǎn)述程序設(shè)計(jì)過(guò)程。5.數(shù)據(jù)結(jié)構(gòu)的含義是什么?6.簡(jiǎn)述算法的表示方法。7.什么是結(jié)構(gòu)化算法?8.簡(jiǎn)述結(jié)構(gòu)化程序設(shè)計(jì)思想。第2章C++的基礎(chǔ)知識(shí)一、填空題1.C++語(yǔ)言中的標(biāo)識(shí)符只能由、和三種字符組成,且打頭字符不能是。2.C++程序的目標(biāo)文件的擴(kuò)展名是。3.在C++程序中,使用輸入輸出流需要包含的頭文件是。(A)12 (B)16 (C)17 (D)1810.如有intm=31;則表達(dá)式(m++*1/2)的值是()。(A)0(B)15(C)15.5(D)1611.每個(gè)C++程序都必須有且僅有一個(gè)()。(A)預(yù)處理命令 (B)主函數(shù) (C)函數(shù) (D)語(yǔ)句12.在C++語(yǔ)言中,自定義的標(biāo)志符()。(A)能使用關(guān)鍵字并且不區(qū)分大小寫 (B)不能使用關(guān)鍵字并且不區(qū)分大小寫(C)能使用關(guān)鍵字并且區(qū)分大小寫 (D)不能使用關(guān)鍵字并且區(qū)分大小寫13.下列C++標(biāo)點(diǎn)符號(hào)中表示一條語(yǔ)句結(jié)束的是()。(A)# (B)// (C)} (D);14.下列C++標(biāo)點(diǎn)符號(hào)中表示一條預(yù)處理命令開始的是()。(A)# (B)// (C)} (D);15.定義如下變量:inti=2;intj=3;則i/j的結(jié)果為()。(A)0.7 (B)0.66667 (C)0.666666… (D)016.已知inta=2,a+=a-=a*a的值是()。(A)-4 (B)-2 (C)0 (D)417.下列關(guān)于C++關(guān)鍵字的說(shuō)法中正確的是()。(A)關(guān)鍵字是用戶為程序中各種需要命名的“元素”所起的名字。(B)關(guān)鍵字是對(duì)程序中的數(shù)據(jù)進(jìn)行操作的一類單詞。(C)關(guān)鍵字是在程序中起分割內(nèi)容和界定范圍作用的一類單詞。(D)關(guān)鍵字是C++中預(yù)先定義并實(shí)現(xiàn)一定功能的一類單詞。18.語(yǔ)句n1=2,n2=++n1,n1=n2++,執(zhí)行后變量n1、n2的值分別為()(A)3,4(B)3,3(C)2,3(D)2,419.字符型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是()。(A)補(bǔ)碼(B)ASCII碼(C)反碼(D)原碼20.下列程序段執(zhí)行后輸出結(jié)果為()chara='a';cout<<"a="<<a-32<<endl;(A)a=A(B)a=33(C)a=65(D)a=A-32四、閱讀程序,寫出運(yùn)行結(jié)果1.#include<iostream.h>voidmain(){cout<<"Thisisahelloworld";cout<<"program";}2.#include<iostream.h>voidmain(){constintR=10;constdoublePI=3.14159;doublea,b;a=2RPI;b=RRPI;cout<<"a="<<a<<","<<"b="<<b<<endl;}五、程序改錯(cuò)/*求三個(gè)整數(shù)的平均數(shù)#include<iostream>;intmian(){inta,b,c,sum,avg;cout<<"請(qǐng)輸入三個(gè)整數(shù):/n";cin>>a>>b>>c>>endl;sum=a+b+cavg=sum/3;cout>>平均數(shù)是:>>avg;}第3章基本程序設(shè)計(jì)一、判斷題()⒈if語(yǔ)句結(jié)構(gòu)中必須有else語(yǔ)句。()⒉表達(dá)式7>=3+4||6<4&&2<5的求值結(jié)果為假。()⒊算術(shù)運(yùn)算符的優(yōu)先級(jí)高于比較運(yùn)算符。()⒋表達(dá)式4>6||10>2*6&&2!=!5求值結(jié)果為真。()⒌語(yǔ)句for(i=0,x=0;i<90;i++)if(i)x++;執(zhí)行完后,x的值是89。()⒍邏輯表達(dá)式10<x<20表示“大于10而小于20的數(shù)”。()⒎表達(dá)式1<3&&5<7的值是1。()⒏表達(dá)式!(5<8)||2<6的值是1。()⒐表達(dá)式a+b<c&&d==5中運(yùn)算符優(yōu)先級(jí)由高到低的排列順序是+、<、==和&&。()⒑表達(dá)式x*y>z&&x*y<100||x*y>0中運(yùn)算符優(yōu)先級(jí)由高到低的排列順序是:*、<和>、&&、||。()11.設(shè)”inta=3,b=4,c=5;”;表達(dá)式”(a+b)>c&&b==c”的值是0。()12.x,y,z為int類型的時(shí)候,下列語(yǔ)句執(zhí)行之后,x的值為10,y的值為20,z的值為10。x=10;y=20;z=30;if(x>y)x=y;y=z;z=x;()13.break和continue語(yǔ)句的作用都是終止本層循環(huán)的執(zhí)行。()14.判斷變量x的數(shù)值是否在3到5之間可以用關(guān)系表達(dá)式3<x<5來(lái)描述。()15.判斷以下程序是否正確。#include<iostream>#include“iomanip”usingnamespacestd;voidmain(){if(a>b)cout<<setw(4)<<a;cout<<setw(4)<<b;elsecout<<setw(4)<<b;cout<<setw(4)<<a;}()16.不管是當(dāng)型循環(huán)還是直到型循環(huán),其循環(huán)體都可能在某種條件下一次也不執(zhí)行。()17.為了避免可能出現(xiàn)的歧義,C++對(duì)if…else語(yǔ)句配對(duì)規(guī)則規(guī)定為:else總是與最近的那個(gè)if配對(duì)。()18.要運(yùn)行一個(gè)C++程序需要經(jīng)過(guò)編輯、編譯、鏈接和運(yùn)行四個(gè)階段。其中編譯階段就是對(duì)源程序進(jìn)行語(yǔ)法與語(yǔ)義分析,查找和排除程序錯(cuò)誤,通常能夠找出程序中的語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤。()19.switch語(yǔ)句結(jié)構(gòu)中必須有default語(yǔ)句。()20.break語(yǔ)句只能結(jié)束包含該語(yǔ)句的一層循環(huán)結(jié)構(gòu)。二、單項(xiàng)選擇題1.for(i=0,x=0;!x&&i<=3;i++)循環(huán)的次數(shù)為()。(A)4(B)5(C)1(D)是無(wú)限循環(huán)2.若有如下程序段:{inta=2,b=-1,c=2; if(a<b) if(b<0)c=0;elsec+=1; cout<<“c="<<c<<endl;}執(zhí)行后輸出到屏幕的結(jié)果是______。(A
)2(B)1(C)3(D)03、若有如下程序段:inti=10;switch(i){case9:i++;case10:i++;case11:i++;default:i++;}執(zhí)行后變量i的正確結(jié)果是()。(A)11(B)12(C)13(D)144.以下描述中正確的說(shuō)法是()。(A)break語(yǔ)句與continue語(yǔ)句完全一樣,可以相互代替(B)用break語(yǔ)句可以提前終止整個(gè)循環(huán)(C)用continue語(yǔ)句可以提前終止整個(gè)循環(huán)(D)用break語(yǔ)句與continue語(yǔ)句都不能提前終止執(zhí)行循環(huán)5.以下for循環(huán)的執(zhí)行次數(shù)是()。for(x=0,y=0;(y=123)&&(x<2);x++)(A)執(zhí)行1次(B)執(zhí)行2次(C)執(zhí)行3次(D)是無(wú)限循環(huán)6.以下描述正確的是()。(A)goto語(yǔ)句只能用于退出多層循環(huán)(B)switch語(yǔ)句中不能出現(xiàn)break語(yǔ)句(C)只能用continue語(yǔ)句來(lái)終止本次循環(huán)(D)在循環(huán)中break語(yǔ)句不能獨(dú)立出現(xiàn)7.為了避免嵌套的if-else語(yǔ)句的二義性,C語(yǔ)言規(guī)定else總是與()組成配對(duì)關(guān)系。
(A)縮排位置相同的if(B)在其之前未配對(duì)的if(C)在其之前未配對(duì)的最近的if(D)同一行上的if8.break語(yǔ)句的作用是()。(A)立即跳出包含該break語(yǔ)句的最小的各種循環(huán)語(yǔ)句和switch語(yǔ)句(B)立即跳出包含該break語(yǔ)句的最小的各種循環(huán)語(yǔ)句(C)立即跳出包含該break語(yǔ)句的switch語(yǔ)句(D)立即跳出包含該break語(yǔ)句的各種循環(huán)語(yǔ)句和switch語(yǔ)句9.下面程序段執(zhí)行完后,x的值是()。 x=0; for(i=0;i<90;i++) if(i) x++; (A)0 (B)30 (C)89 (D)9010.continue語(yǔ)句的作用是()。(A)結(jié)束包含該continue語(yǔ)句的最小的各種循環(huán)語(yǔ)句(B)結(jié)束包含該continue語(yǔ)句的各種循環(huán)語(yǔ)句(C)結(jié)束本次循環(huán),直接進(jìn)行循環(huán)條件的判斷(D)循環(huán)執(zhí)行完后,結(jié)束循環(huán)11.下列程序段循環(huán)()次。 intx=-10; while(++x){} (A)9 (B)10 (C)11 (D)無(wú)限12.在下列運(yùn)算符中,優(yōu)先級(jí)最低的是()。(A)|| (B)!= (C)< (D)+13.下列描述正確的是()。(A)表示m>n為false或m<n為true的表達(dá)式為(m>n&&m<n)(B)switch語(yǔ)句結(jié)構(gòu)中必須有default語(yǔ)句(C)if語(yǔ)句結(jié)構(gòu)中必須有else語(yǔ)句(D)如果至少有一個(gè)操作數(shù)為true,則包含||運(yùn)算符的表達(dá)式為true14.如果switch語(yǔ)句選擇表達(dá)式中是整型變量,下面哪一項(xiàng)case子句是合法的()。 (A)case“2”15.有如下程序段:……for(inti=1;i<4;i++)
{if(i%2==0)continue;
cout<<i<<“,”;}執(zhí)行以上程序段的輸出結(jié)果是()。(A)1,(B)1,3,4,(C)1,3,(D)2,4,16.下列運(yùn)算符中優(yōu)先級(jí)最高的是()。(A)! (B)% (C)-= (D)&&17.用邏輯表達(dá)式表示“大于10而小于20的數(shù)”,正確的是()。(A)10<x<20 (B)x>10||x<20 (C)x>10&x<20 (D)?。▁<=10||x>=20)18.如果switch語(yǔ)句中的選擇表達(dá)式是字符型變量code,下面哪一項(xiàng)case子句是合法的()。 (A)case“3”; (B)case‘319.設(shè)inta=10,b=11,c=12;(a+b)<c&&b==c的值是()。 (A)2 (B)0 (C)-2 (D)120.在以下關(guān)于C++語(yǔ)言的敘述中,正確的是()。(A)if語(yǔ)句結(jié)構(gòu)中必須有else語(yǔ)句(B)switch語(yǔ)句結(jié)構(gòu)中必須有default語(yǔ)句(C)C++程序必須有return語(yǔ)句(D)C++中使用流來(lái)執(zhí)行標(biāo)準(zhǔn)的輸入輸出操作21.下列do-while循環(huán)的循環(huán)次數(shù)是()。已知:inti=5;do{cout<<i--<<endl;i--;}while(i!=0);(A)0(B)2(C)5(D)無(wú)限次22.若m是一個(gè)值為10的int型變量,n是一個(gè)bool型變量,則表達(dá)式!m||n>0的值()。(A)為true(B)為false(C)與n的值相反(D)與n的值相同第4章數(shù)組的應(yīng)用一、判斷題()1.在對(duì)全部數(shù)組元素賦初值時(shí),不可以不指定一維數(shù)組的長(zhǎng)度。()2.在對(duì)全部二維數(shù)組元素賦初值時(shí),可以不指定二維數(shù)組的行數(shù)。()3.在C++程序中,有定義:inta[10];數(shù)組a的最小下標(biāo)是1。()4.在C++程序中,有定義:inta[10];數(shù)組a的最大下標(biāo)是10。()5.可以用同一個(gè)數(shù)組表示以一組數(shù)值型數(shù)據(jù)和字符型數(shù)據(jù)。()6.有聲明:inta[3][2]={1,2,3,4,5,6};那么數(shù)組元素a[2][1]的初始值是6。()7.有聲明:charch[10]={’a’,’b’,’c’,’d’,’e’};那么賦給數(shù)組ch的是字符串“abcde”。()8.在對(duì)全部二維數(shù)組元素賦初值時(shí),必須要指定二維數(shù)組的列數(shù)。()9.字符串"hello,world"在內(nèi)存中存放時(shí),占用12個(gè)字節(jié)的空間。()10.定義一個(gè)一維字符數(shù)組有50個(gè)元素,用該一維字符數(shù)組表示一個(gè)字符串?dāng)?shù)據(jù)最多允許有50個(gè)字符。()11.C++中各種數(shù)據(jù)類型的變量在定義后會(huì)被自動(dòng)初始化為0值。()12.定義數(shù)組時(shí)可以用變量來(lái)定義數(shù)組的大小,但不能用表達(dá)式。()13.定義一個(gè)有50個(gè)元素的一維字符數(shù)組,用該數(shù)組表示一個(gè)字符串?dāng)?shù)據(jù)最多允許有50個(gè)字符。()14.定義一個(gè)數(shù)組后該數(shù)組的最小下標(biāo)取值是0。()15.靜態(tài)數(shù)組被定義時(shí),數(shù)組的所有元素自動(dòng)獲取初始值0。()16.數(shù)組是C++的基本數(shù)據(jù)類型。()17.數(shù)組不能用來(lái)存放字符串。()18.同一數(shù)組的所有數(shù)組元素在內(nèi)存中是連續(xù)存放的。()19.在C++中數(shù)組是具有一定順序關(guān)系的若干相同類型變量的集合體。()20.在給全部數(shù)組元素賦初值時(shí),可以不指定二維數(shù)組中的常量表達(dá)式,例如:inta[][]={1,2,3,4,5,6};二、單項(xiàng)選擇題1.若有以下定義語(yǔ)句:inta[10]={1,2,3,4,5,6,7,8,9,10};則下列( )是對(duì)數(shù)組元素的正確使用。(A)a[10] (B)a[a[3]-5] (C)a[a[9]] (D)a[a[4]+4]2.對(duì)語(yǔ)句:inta[3][4]={0};描述正確的是( )。(A)只有元素a[0][0]可得到初值0(B)數(shù)組a中每個(gè)元素均可得到初值0(C)此說(shuō)明語(yǔ)句不正確(D)數(shù)組a中各元素都可得到初值,但其值不一定為03.若有以下定義,則數(shù)組元素a[2][2]的值是()。inta[][3]={{1,2},{3,2,4},{4,5,6},{1,2,3}};(A)4(B)5(C)2(D)64.在下面的一維數(shù)組定義中,()有語(yǔ)法錯(cuò)誤。(A)inta[]={1,2,3};(B)inta[];(C)inta[]={0};(D)inta[5];5.在下面的一維數(shù)組的定義中,不正確的是()。(A)intx[10][10];(B)intx[][10]={{1,3},5,7};(C)intx[][];(D)intx[10][10]={0};6.對(duì)長(zhǎng)度為N的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為()。(A)N+1(B)N(C)(N+1)/2(D)N/27.將兩個(gè)字符串連接起來(lái)組成一個(gè)字符串時(shí),用()函數(shù)。(A)strcat(B)strlen(C)strcpy(D)strcmp8.希爾排序法屬于哪一種類型的排序法()。(A)交換類排序法(B)插入類排序法(C)選擇類排序法(D)建堆排序法9.若定義了一個(gè)4行3列的數(shù)組,則第8個(gè)元素是()。(A)a[1][3](B)a[2][3](C)a[3][1](D)a[2][1]10.判斷兩個(gè)字符串(分別用a、b表示)是否相等的操作為()。(A)a==b(B)if(a==b)(C)if(strcmp(a,b))(D)if(strcpy(a,b))11.定義一個(gè)一維數(shù)組,正確的語(yǔ)句是()。(A)inta(10);(B)intn=10;inta[n];(C)intn;cin>>n;inta[n];(D)constintn=10;inta[n];12.以下那種說(shuō)法錯(cuò)誤?()。(A)數(shù)組中的元素在某些方面彼此相關(guān);(B)數(shù)組中的所有元素具有相同的下標(biāo);(C)數(shù)組中的所有元素具有相同的數(shù)據(jù)類型;(D)數(shù)組中的所有元素具有相同的名字;13.語(yǔ)句inta[]={0,1,2}執(zhí)行后,數(shù)組的元素個(gè)數(shù)是()。(A)2(B)3(C)4(D)不知道14.下面數(shù)組定義錯(cuò)誤的是()。(A)#definen5(B)constintn=5;chara[n]={“good”};chara[n]={“good”};(C)intn=5;(D)constintn=5;chara[n]={“good”};chara[n+2]={“good”};15.執(zhí)行下列語(yǔ)句:intc[4]={0,1,2,3};for(inti=0;i<4;i++)c[i]=c[i]+i;則c[3]的值是()。(A)0(B)4(C)6(D)816.下列程序執(zhí)行后d[5]結(jié)果是()。intd[10];intI;for(i=0;i<=9;i++)d[i]=i;for(i=0;i<=9;i++)d[i]=d[9-i];(A)0(B)4(C)5(D)617.數(shù)組intarea[4]={1,2,3,4},執(zhí)行程序for(inti=1;i<=4;i++)area[i-1]=1;那么area[4]的值是()。(A)4(B)3(C)1(D)錯(cuò)誤18.二維數(shù)組在內(nèi)存中的存放順序是()。(A)按行存放(B)按列存放(C)由用戶自己定義(D)由編譯器決定19.下面初始化不正確的是()。(A)inta[2][3]={1,2,3,4,5,6};(B)inta[][2]={7,8,9};(C)doublea[][3]={1,2,3,4,5,6,7};(D)doublea[3][2]={{1.5,2.0},{3.5},{5,6,7}};20.若有定義:inta[3][4]={0};則以下描述中正確的是()。(A)只有a[0][0]元素得到初值(B)不正確語(yǔ)句(C)各元素均得到初值,但不一定為0(D)各元素均得到初值且為021.下列對(duì)字符數(shù)組進(jìn)行初始化的語(yǔ)句正確的是()。(A)chara[]=“abcd”;(B)chara[][]=“abcd”;(C)chara[4]=“abcd”;(D)chara[2][2]={“ab”,“cd”};22.二維字符數(shù)組[10][10]能夠存儲(chǔ)()個(gè)字符串,每個(gè)字符串的長(zhǎng)度至多為()。(A)10,10(B)10,9(C)9,10(D)9,9三、閱讀程序題1.#include<iostream.h>voidmain(){inta[4],i,j,k;for(i=0;i<4;i++)a[i]=1;k=3;for(i=0;i<k;i++)for(j=0;j<k;j++)a[j]=a[i]+2;cout<<a[1]<<"ㄩㄩ"<<a[3]<<endl;}當(dāng)執(zhí)行以上程序時(shí),輸出結(jié)果是:2.#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){ints[3][3],i,j,k;for(i=0;i<3;i++)for(j=0;j<3;j++)s[i][j]=i-j;for(i=0;i<2;i++)for(j=i+1;j<3;j++){k=s[i][j];s[i][j]=s[j][i];s[j][i]=k;}for(i=0;i<3;i++){for(j=0;j<3;j++)cout<<setw(4)<<s[i][j];cout<<endl;}}當(dāng)執(zhí)行以上程序時(shí),輸出結(jié)果是:3.#include<iostream>usingnamespacestd;voidmain(){inta[4],i,j,k;for(i=0;i<4;i++)a[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)a[j]=a[i]+3;cout<<a[1]<<"@@@"<<a[3]<<endl;}4.#include<iostream>usingnamespacestd;voidmain(){inta[2][3],j,k;for(k=0;k<3;k++)for(j=0;j<2;j++)a[j][k]=(j+1)*(k+1);for(j=0;j<2;j++){for(k=0;k<3;k++)cout<<"**"<<a[j][k];cout<<endl;}}5.#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){ints[4][4],i,j,k;for(i=0;i<4;i++)for(j=0;j<4;j++)s[i][j]=i-j;for(i=0;i<3;i++)for(j=i+1;j<4;j++){k=s[i][j];s[i][j]=s[j][i];s[j][i]=k;}for(i=0;i<4;i++){for(j=0;j<4;j++)cout<<setw(4)<<s[i][j];cout<<endl;}}6.#include<iomanip>usingnamespacestd;voidmain(){constintN=7;inta[N][N],i,j;for(i=0;i<N;i++)for(j=0;j<N;j++)a[i][j]=1;for(i=0;i<N;i++)for(j=i+2;j<N;j++)a[i][j]=a[i][j-1]+a[i][j-2];for(i=0;i<N;i++){for(j=0;j<N;j++)if(j<i)cout<<setw(4)<<"*";elsecout<<setw(4)<<a[i][j];cout<<endl;}}7.#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){constintN=5; inta[N][N]; inti,j; for(i=0;i<N;i++) {a[i][0]=1; a[i][i]=1;} for(i=2;i<N;i++) for(j=1;j<i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i<N;i++) {for(j=0;j<N-1-i;j++) cout<<""; for(j=0;j<=i;j++) cout<<setw(4)<<a[i][j]; cout<<endl; }}8.#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){inta[10]={1,1,2,3,2,7,4,2,8,9};intb=32%6;inti,j,c=0,k=9;for(i=0;i<9;i++){if(a[i]==b){c=c+1; k--; for(j=i;j<9;j++) {a[j]=a[j+1];} i--;}}for(i=0;i<=k;i++) cout<<a[i]<<"\t";cout<<endl; cout<<c<<endl;}四、程序填空題1.功能:將若干個(gè)數(shù)按從小到大順序排序。#include<iostream>usingnamespacestd;voidmain(){inti,j; doubletemp;doublea[11];cout<<"輸入需排序的10個(gè)數(shù):"<<endl;for(i=1;i<11;i++)cin>>a[i];for(i=1;i<=9;i++)for(①) if(②){temp=a[i];③;④;}cout<<"排序后的10個(gè)數(shù)為:"<<endl;for(j=1;j<=10;j++)cout<<a[j]<<"";cout<<endl;}2.功能:使用冒泡法對(duì)10個(gè)數(shù)從大到小排序。#include<iostream.h>voidmain(){constintN=10;inta[N],j,k;cout<<"Inputnumbers:"<<endl;for(j=0;j<N;j++)cin>>a[j];for(j=0;j<N-1;j++)for(k=0;①;k++) if(②){a[k]+=a[k+1];③;④; }for(j=0;⑤;j++) cout<<a[j]<<"";cout<<endl;}3.功能:把一個(gè)數(shù)列中的所有相同的數(shù)刪到只剩下一個(gè)。#include<iostream>usingnamespacestd;voidmain(){inta[10],i,j,pos=1;for(i=0;i<10;i++) cin>>a[i];for(i=1;i<10;i++){for(j=0;①;j++) if(a[i]==a[j])break;if(②){a[pos]=a[i];pos++;}}for(i=0;③;i++) cout<<a[i]<<"\t"; cout<<endl; }五、程序改錯(cuò)功能:折半查找1#include<iostream>2usingnamespacestd;3voidmain()4{inta[10],low=9,mid,high=0,x,pos;5 cout<<"請(qǐng)輸入10個(gè)數(shù)(降序):"<<endl;6for(inti=0;i<=10;i++)7cin>>a[i];8cout<<"請(qǐng)輸入欲查找的數(shù):"<<endl;9cin>>x;10while(low<=high)11 {12mid=(low+high)/2;13if(a[mid]=x)14{pos=mid;15break;}16elseif(a[mid]>x)17high=mid-1;18else19low=mid+1;20}21if(low>high)22cout<<"沒(méi)有找到"<<endl;23else24cout<<x<<"是第"<<pos<<"個(gè)數(shù)"<<endl;25}本題有七個(gè)錯(cuò)誤,寫出錯(cuò)誤行號(hào)及正確語(yǔ)句。()第5章指針的應(yīng)用一、判斷題()1.從內(nèi)存單元中存取數(shù)據(jù)的方法有直接訪問(wèn)方式和間接訪問(wèn)方式。()2.能夠直接賦值給指針變量的整數(shù)是0和1。()3.聲明了指向int類型的指針,該指針可以被賦予任何類型對(duì)象的地址。()4.變量的指針,其含義是指該變量的地址。()5.設(shè)有如下定義語(yǔ)句:int*p,a;則語(yǔ)句p=&a;中的運(yùn)算符‘&’的含義是取變量的值。()6.在使用指針變量時(shí),可以把常量或表達(dá)式的地址賦給指針變量,表示該指針指向常量或表達(dá)式的地址。()7.設(shè)有定義語(yǔ)句:inta[10];該數(shù)組的數(shù)組名a是數(shù)組首地址,是一個(gè)地址常量,是數(shù)組第一個(gè)元素的地址。()8.設(shè)有如下語(yǔ)句:int*p,a[10]={0};則可用語(yǔ)句:{for(p=a;p<a+10;p++)cin>>*p;}從鍵盤輸入數(shù)組的值。()9.在操作一個(gè)一維數(shù)組時(shí),可能會(huì)用到兩個(gè)指針變量指向該數(shù)組,這兩個(gè)指針變量之間可以進(jìn)行關(guān)系運(yùn)算,其關(guān)系運(yùn)算的結(jié)果表明了這兩個(gè)指針變量所指向的數(shù)組元素的先后關(guān)系。()10.對(duì)于已經(jīng)定義好的相同的兩個(gè)指針變量之間,可以進(jìn)行加法運(yùn)算、減法運(yùn)算和賦值運(yùn)算。()11.設(shè)有如下一段程序:int*var,ab;;ab=100;var=&ab;ab=*var+10;執(zhí)行上面的程序段后;ab的值為110。()12.有如下定義語(yǔ)句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式可以表示為*p+=9。()13.有定義語(yǔ)句:inta[5][5],*p;二維數(shù)組a首地址可表示為:p=a[0]或p=&a[0][0]。()14.有定義語(yǔ)句:inta[3][2]={6,5,4,3,2,1},*p=a[0];cout<<*(p+5)<<endl;輸出的值為2。()15.在VC++中,存儲(chǔ)的分配有兩種,即靜態(tài)存儲(chǔ)分配和動(dòng)態(tài)存儲(chǔ)分配。()16.靜態(tài)存儲(chǔ)分配:是指程序中使用的變量和數(shù)組的類型、數(shù)目和大小,是在編程時(shí)由程序員分配確定下來(lái)的,因此,在程序運(yùn)行時(shí)這些數(shù)據(jù)占據(jù)的存儲(chǔ)空間數(shù)也是一定的。()17.動(dòng)態(tài)存儲(chǔ)分配:在程序運(yùn)行過(guò)程中按照實(shí)際需要申請(qǐng)適量的內(nèi)存單元,使用結(jié)束后還可以釋放,這種存儲(chǔ)分配方法被稱為動(dòng)態(tài)存儲(chǔ)分配。()18.實(shí)現(xiàn)動(dòng)態(tài)分配內(nèi)存,需要運(yùn)用指針和使用運(yùn)算符:new和delete。()19.使用動(dòng)態(tài)存儲(chǔ)分配時(shí),用運(yùn)算符new獲取的內(nèi)存空間,不必須用delete進(jìn)行釋放。()20.對(duì)一個(gè)指針可以多次調(diào)用delete運(yùn)算符進(jìn)行釋放。在使用delete運(yùn)算符進(jìn)行釋放時(shí),不用考慮數(shù)組的維數(shù)。二、單項(xiàng)選擇題1.下列關(guān)于指針運(yùn)算的描述錯(cuò)誤的是()。(A)指針變量是用于存儲(chǔ)變量地址的變量(B)指針變量是用于存儲(chǔ)變量值的變量(C)在一定條件下,指針變量可以為空值(D)可以使用指針變量來(lái)訪問(wèn)數(shù)組2.若已經(jīng)定義了a為int型變量,則對(duì)指針變量p的定義及初始化正確語(yǔ)句是()。(A)int*p=a;(B)intp=a;(C)int*p=*a(D)int*p=&a;3.若有定義:intx=0,*p=&x;,則語(yǔ)句:cout<<*p;的輸出結(jié)果是()。(A)隨機(jī)值(B)p的地址(C)x的地址(D)04.設(shè)有定義語(yǔ)句:intn=0,*p=&n,*q;則以下選項(xiàng)中,正確的語(yǔ)句是()。(A)p=1;(B)p=q;(C)*p=*q;(D)*p=5;5.已知一運(yùn)行正常的程序中有下面的語(yǔ)句,由此可知,變量a和b的類型分別是()。int*p2=&x,*p1=a;*p2=*b;(A)int和int(B)int*和int(C)int和int*(D)int*和int*6.設(shè)有如下的程序段,程序段運(yùn)行后輸出的結(jié)果是()。{inta=1,b=3,c=5;
int*p1=&a,*p2=&b,*p=&c;
*p=*p1*(*p2);
cout<<c<<endl;}(A)1(B)3(C)5(D)157.設(shè)有如下程序段:intx=8,*p=&x;cout<<*p++<<endl;輸出的值為()。(A)8(B)9(C)8的地址(D)9的地址8.設(shè)有如下程序段:intx=8,*p=&x;cout<<++*p<<endl;輸出的值為()。(A)8(B)9(C)8的地址(D)9的地址9.設(shè)有定義語(yǔ)句:int*point,a=4;和point=&a;下面均代表地址的一組選項(xiàng)是()。
(A)a,point(B)&a,*point
(C)point,&a(D)a,*point10.設(shè)有定義語(yǔ)句:inta[10],*p=a;對(duì)數(shù)組元素正確使用的語(yǔ)句是()。(A)a[p](B)p[a](C)*(p+2)(D)p+211.設(shè)有定義語(yǔ)句:inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;則數(shù)值不為3的表達(dá)式是()。(A)a[3](B)p[3](C)p+=2,*(p++)(D)p+=2,*(++p)12.設(shè)intx[]={1,2,3,4,5,6},*p=x;則數(shù)值為3的表達(dá)式是()。(A)p+=2,*++p (B)p+=2,*p++(C)p+=3,*p (D)p+=2,++*p 13.設(shè)有定義語(yǔ)句:int
a[5],*p=a;則下列描述錯(cuò)誤的是()。(A)表達(dá)式p=p+1是合法的 (B)表達(dá)式a=a+1是合法的(C)表達(dá)式p-a是合法的 (D)表達(dá)式a+2是合法的14有下面語(yǔ)句inta[10]={10,9,8,7,6,5,4,3,2,1},*p=a;則數(shù)值為2的表達(dá)式是()。
(A)a[9]
(B)*p[8]
(C)*(a+8)
(D)p+815.設(shè)有如下的程序段,有語(yǔ)法錯(cuò)誤的語(yǔ)句是()。(A)char
*p="xinqin";cout<<p[2]<<endl;(B)char
name[7]="xinqin",*p=&name;cout<<p[2]<<endl;(C)char
name[7]="xinqin",*p=name;cout<<p[2]<<endl;(D)char
name[7]="xinqin",*p=&name[2];cout<<p[2]<<endl;16.設(shè)有如下程序段: char*s="abcde"; s+=2; cout<<*s<<endl;輸出的值為()。(A)cde(B)字符c(C)字符c的地址(D)無(wú)確定的輸出結(jié)果17.設(shè)有如下程序段:charstr[]="hello",*p=str;*(p+5)的值是()。(A)隨機(jī)值(B)字母o(C)字符串結(jié)束標(biāo)志‘\0’18.設(shè)有定義語(yǔ)句:int*p[4];則標(biāo)識(shí)符p是()。(A)一個(gè)指向整型變量的指針(B)一個(gè)指向整型的指針數(shù)組名
(C)一個(gè)指針,它指向一個(gè)含有四個(gè)整型元素的一維數(shù)組(D)一個(gè)非法的定義語(yǔ)句19.設(shè)有如下程序段:輸出的值為()。inta[3][3]={9,8,7,6,5,4,3,2,1};;int*p[3];p[1]=a[1];cout<<*(p[1]+2)<<endl;(A)4(B)5(C)6(D)720.設(shè)有如下程序段:int*point;point=newint(4);表明了()。(A)用動(dòng)態(tài)分配了存放int類型數(shù)據(jù)的內(nèi)存空間,將初值4存入該空間中,并將首地址賦給指針point(B)用動(dòng)態(tài)分配了存放int類型數(shù)據(jù)的內(nèi)存空間,分配的內(nèi)存空間的大小為4個(gè)字節(jié),并將首地址賦給指針point(C)用動(dòng)態(tài)分配了存放int類型數(shù)據(jù)的內(nèi)存空間,將首地址賦給指針point,且point指針的值為4(D)用動(dòng)態(tài)分配了存放int類型數(shù)據(jù)的內(nèi)存空間,將首地址賦給指針point,且point指針在內(nèi)存空間的地址值為4第6章函數(shù)的應(yīng)用一、判斷題()1.一個(gè)C++程序通常由有而且只能有一個(gè)的主函數(shù)、若干個(gè)子函數(shù)和庫(kù)函數(shù)構(gòu)成。()2.用語(yǔ)句cout<<sin(55*3.14159/180)可以顯示一個(gè)角度為55度的正弦值。()3.函數(shù)頭intmain()是一個(gè)自定義有返回值函數(shù)的例子。()4.在C++有返回值的函數(shù)中,函數(shù)體以return語(yǔ)句結(jié)尾。()5.要在C++程序中通過(guò)引用來(lái)傳遞變量,則應(yīng)該在函數(shù)頭的對(duì)應(yīng)形參名前面加上地址運(yùn)算符&。()6.在C++有返回值的函數(shù)中,return語(yǔ)句有而且只能有一條。()7.void函數(shù)調(diào)用后,可以作為一個(gè)值出現(xiàn)在賦值語(yǔ)句的右邊賦值給一個(gè)變量。()8.變量的生存期指明了該變量在計(jì)算機(jī)內(nèi)存中能保留多久。()9.VisualC++6.0系統(tǒng)中,使用語(yǔ)句srand(time(NULL));來(lái)初始化隨機(jī)數(shù)產(chǎn)生器。()10.VisualC++6.0系統(tǒng)中,用戶若需調(diào)用內(nèi)置系統(tǒng)函數(shù),調(diào)用前不必使用預(yù)編譯命令將該函數(shù)所在文件包括到用戶源文件中,系統(tǒng)會(huì)自動(dòng)調(diào)用。()11.VisualC++6.0系統(tǒng)中,有調(diào)用關(guān)系的所有函數(shù)必須放在同一源程序文件中。()12.在C++中,實(shí)參與形參結(jié)合方式有三種:值調(diào)用、引用調(diào)用和地址調(diào)用。()13.當(dāng)數(shù)組名作為函數(shù)調(diào)用的實(shí)參時(shí),實(shí)參與形參表示同一個(gè)數(shù)組。()14.在C++的函數(shù)調(diào)用中,主函數(shù)可以調(diào)用子函數(shù),子函數(shù)也可以調(diào)用其它的子函數(shù),但子函數(shù)不能自己調(diào)用自己。()15.void函數(shù)的函數(shù)頭以關(guān)鍵字void開始,函數(shù)體中最后一條語(yǔ)句為return。()16.只能被聲明該變量的函數(shù)使用的那些變量被稱為全局變量。()17.變量的作用域指明了程序的哪一部分可以使用該變量。()18函數(shù)的形式參數(shù)可以都有默認(rèn)值,也可以只有部分有默認(rèn)值。()19函數(shù)的遞歸調(diào)用可分為直接遞歸調(diào)用和間接遞歸調(diào)用。()20同一源文件中,若外部變量名與局部變量名相同,則在執(zhí)行該函數(shù)過(guò)程中,外部變量起作用。二、單項(xiàng)選擇題1.下面哪一個(gè)C++函數(shù)和數(shù)學(xué)表達(dá)式53是等價(jià)的()。(A)power(3,5)(B)pow(3,5)(C)pow(5,3)(D)srqt(3,5)2.下面哪一條C++語(yǔ)句顯示范圍3到9之間的隨機(jī)數(shù)()。(A)1+rand()%(9-3+1)(B)3+rand()%(9-3+1)(C)3+rand()%(9+3-1)(D)9+rand()%(9+1-3)3.VisualC++中,函數(shù)返回值的類型是由()。(A)return語(yǔ)句中的表達(dá)式類型所決定(B)調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型所決定(C)調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定(D)在定義該函數(shù)時(shí)所指定的函數(shù)類型所決定4.以下敘述中正確的是()。(A)構(gòu)成C++程序的基本單位是函數(shù)(B)可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)(C)主函數(shù)必須放在其他函數(shù)之前(D)所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義5.以下正確的函數(shù)頭定義形式是()。(A)intfun(intx;inty)(B)intfun(intx,inty)(C)intfun(intx,y)(D)intfun(intx;)6.在下面的函數(shù)原型中,存在語(yǔ)法錯(cuò)誤的是()。(A)voidBC(inta,int);(B)voidBC(int,int);(C)voidBC(int,intb=5);(D)voidBC(inta;intb);7.若有函數(shù)原型“intsum(intx,inty);”,則使用語(yǔ)句“cout<<sum(a,b);”調(diào)用該函數(shù)時(shí),實(shí)參變量a和形參變量x之間的數(shù)據(jù)傳遞方式為()。(A)指針傳遞 (B)引用傳遞 (C)值傳遞 (D)內(nèi)容傳遞8.以下哪一項(xiàng)可以作為void函數(shù)cacl()的函數(shù)原形,并且將傳遞給該函數(shù)兩個(gè)int型變量的值()。(A)voidcacl(int,int);(B)voidcacl(int);(C)voidcacl(int&,int&);(D)intcacl(void);9.以下說(shuō)法中哪一項(xiàng)是錯(cuò)誤的()。(A)在函數(shù)頭中形參的名字必須和函數(shù)調(diào)用中實(shí)參的名字一樣(B)在函數(shù)頭中列出的形參必須包含每個(gè)參數(shù)的數(shù)據(jù)類型和名字(C)在函數(shù)頭中,函數(shù)名后面的一對(duì)空括號(hào)代表函數(shù)不接受任何信息(D)函數(shù)的語(yǔ)句被括在一對(duì)花括號(hào)中10.以下哪一條C++語(yǔ)句顯示名為address字符串變量所包含的字符的個(gè)數(shù)()。(A)cout<<address.size();(B)cout<<size.address();(C)cout<<size(address);(D)cout<<address(size);11.要求函數(shù)的功能是交換x和y中的值,且通過(guò)正確調(diào)用返回交換結(jié)果。能實(shí)現(xiàn)正確交換功能的函數(shù)是()。(A)voidfuna(int&x,int&y)(B)voidfunb(intx,inty){intp;{intt;p=x;x=y;y=p;}t=x;x=y;y=t;}(C)voidfunc(int*x,int*y)(D)voidfund(intx,inty){*x=*y;*y=*x;}{x=x+y;y=x-y;x=x-y;}12.關(guān)于引用,下列說(shuō)法中正確的是()。(A)引用是一種特殊類型的變量,是另一個(gè)變量的別名(B)引用在函數(shù)調(diào)用中傳遞的是變量的值(C)在聲明引用時(shí),要給它另開辟內(nèi)存單元(D)在聲明引用時(shí),可以不進(jìn)行初始化13.下列敘述中正確的是()。(A)C++程序中,main()函數(shù)必須在其它函數(shù)之前,函數(shù)內(nèi)可以嵌套定義函數(shù)(B)C++程序中,main()函數(shù)的位置沒(méi)有限制,函數(shù)內(nèi)不可以嵌套定義函數(shù)(C)C++程序中,main()函數(shù)必須在其它函數(shù)之前,函數(shù)內(nèi)不可以嵌套定義函數(shù)(D)C++程序中,main()函數(shù)必須在其它函數(shù)之后,函數(shù)內(nèi)可以嵌套定義函數(shù)14.下面有關(guān)函數(shù)原型的說(shuō)法正確的是()。(A)函數(shù)原型與函數(shù)的定義語(yǔ)法是一樣的(B)如果程序中有自定義函數(shù),必須有和其對(duì)應(yīng)的函數(shù)原型(C)函數(shù)原型的參數(shù)和函數(shù)定義的參數(shù)列表在參數(shù)的個(gè)數(shù)、名稱、類型上必須一一對(duì)應(yīng)(D)函數(shù)原形和函數(shù)定義在函數(shù)名和返回類型上必須一致15.在C++函數(shù)頭定義中,若省略了返回值的數(shù)據(jù)類型,其默認(rèn)的返回值的數(shù)據(jù)類型為()。(A)int(B)float(C)double(D)void16.下列程序運(yùn)行后的結(jié)果是()。#include<iostream>usingnamespacestd;voidfun(int*a,intb){int*k;k=a; *a=b; b=*k;}voidmain(){inta=3,*x=&a;inty=5;fun(x,y);cout<<a<<""<<y<<endl;}(A)35(B)55(C)33(D)5317.下列程序運(yùn)行后的結(jié)果是()。#include<iostream>usingnamespacestd;voidfun(char*c,intd){*c=*c+1;d=d+1;}voidmain(){ chara='A',b='a';fun(&b,a); cout<<a<<""<<b<<endl;}(A)Ba,(B)aB(C)Ab(D)bB18.下列程序運(yùn)行后的結(jié)果是()。#include<iostream>usingnamespacestd;voidfun(char*a,char*b){a=b;(*a)++;}voidmain(){ charc1='A',c2='a',*p1,*p2;p1=&c1; p2=&c2; fun(p1,p2);cout<<c1<<c2<<endl;}(A)Ab(B)aa(C)Aa(D)Bb19.以下不正確的說(shuō)法是()。(A)在C++中,一個(gè)程序中的函數(shù)名不一定是唯一的(B)在C++中,定義函數(shù)時(shí),在返回值數(shù)據(jù)類型的前面加上關(guān)鍵字inline,這種函數(shù)稱為內(nèi)聯(lián)函數(shù)(C)在C++中,不允許有兩個(gè)及以上的函數(shù)使用同一個(gè)函數(shù)名(D)在定義函數(shù)時(shí),還可以對(duì)形式參數(shù)進(jìn)行初始化,即給該形式參數(shù)指定默認(rèn)值。20.以下正確的說(shuō)法是()。(A)全局變量如果沒(méi)有指定初值,則其初值為0(B)靜態(tài)變量如果沒(méi)有指定初值,則其初值為0(C)局部變量如果沒(méi)有指定初值,則其初值為0(D)函數(shù)中的靜態(tài)變量在函數(shù)每次調(diào)用時(shí),都會(huì)重新設(shè)置初值第7章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)一、填空題1.申明類的成員為私有類型的關(guān)鍵字是_________________________。2.對(duì)象通過(guò)成員運(yùn)算符只能調(diào)用類的_____________________成員。3.通過(guò)類定義對(duì)象時(shí),對(duì)象會(huì)自動(dòng)調(diào)用類的_____________________函數(shù)。4.對(duì)象消亡時(shí),類的___________________函數(shù)會(huì)被自動(dòng)調(diào)用。5.在類A的基礎(chǔ)上,通過(guò)增加成員可以產(chǎn)生新的類B。由類A產(chǎn)生類B的過(guò)程稱為___________________,此時(shí)通常稱類A為____________類,類B為___________類。6.繼承方式關(guān)鍵字為private時(shí),基類的公共成員在派生類中是__________________成員。一、判斷題()1.在關(guān)鍵字private后面聲明的成員,只允許本類中的函數(shù)訪問(wèn),而類外的任何函數(shù)都不能訪問(wèn)。()2.因?yàn)闃?gòu)造函數(shù)不返回值,所以可以在構(gòu)造函數(shù)名前加上void關(guān)鍵字。()3.類的對(duì)象是該類的某一特定的實(shí)體,即類類型的變量。()4.protected聲明的成員,可由該類的成員函數(shù)以及由該類派生的類的成員函數(shù)使用。()5.析構(gòu)函數(shù)不能重載。()6.程序只可以通過(guò)類的公有成員訪問(wèn)該類的私有成員。()7.對(duì)象是類的模板,類是對(duì)象的實(shí)例化。()8.類是一種既包含數(shù)據(jù)又包含函數(shù)的數(shù)據(jù)類型。()9.類的析構(gòu)函數(shù)的作用是類的初始化。()10.基類是由派生類派生而來(lái)的。()11.類的構(gòu)造函數(shù)的作用是刪除對(duì)象。()12.公有繼承時(shí)基類中的private成員在派生類中仍是private的。()13.私有繼承時(shí)基類中的public成員在派生類中是private的。()14.構(gòu)造函數(shù)不能重載。()15.一個(gè)類中可以有多個(gè)同名的成員函數(shù)。()16.一個(gè)派生類不能作為基類被別的派生類繼承。()17.析構(gòu)函數(shù)和構(gòu)造函數(shù)都是成員函數(shù)。()18在聲明一個(gè)對(duì)象時(shí),C++編譯器隱含地調(diào)用其構(gòu)造函數(shù)。當(dāng)對(duì)象退出其說(shuō)明的作用域時(shí),析構(gòu)函數(shù)被隱含地調(diào)用。()19.析構(gòu)函數(shù)和構(gòu)造函數(shù)都可以帶參數(shù)。()20當(dāng)對(duì)象退出其說(shuō)明的作用域時(shí),析構(gòu)函數(shù)被隱含地調(diào)用。二、單項(xiàng)選擇題1.下面描述中,不正確的是()。(A)在關(guān)鍵字private后面聲明的成員,只允許本類中的函數(shù)訪問(wèn),而類外的任何函數(shù)都不能訪問(wèn)(B)在類的外部只能訪問(wèn)類的公有成員(C)面向?qū)ο蟪绦蛟O(shè)計(jì)方法具有四個(gè)基本特征:抽象、封裝、繼承、多態(tài)性(D)函數(shù)的重載體現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計(jì)的繼承性2.類Time的構(gòu)造函數(shù)名是()。(A)class(B)public(C)private(D)Time3.類創(chuàng)建的對(duì)象稱為()。(A)屬性(B)類的實(shí)例(C)基類(D)派生類4.下面描述中,不正確的是()。(A)構(gòu)造函數(shù)定義了創(chuàng)建對(duì)象的方法,提供了初始化對(duì)象的一種簡(jiǎn)便手段。(B)析構(gòu)函數(shù)完成對(duì)象被刪除前的一些清理工作。(C)如果程序中未聲明構(gòu)造函數(shù),則系統(tǒng)自動(dòng)產(chǎn)生出一個(gè)缺省形式的構(gòu)造函數(shù)。(D)析構(gòu)函數(shù)允許重載,但析構(gòu)函數(shù)不得返回任何值,即使關(guān)鍵字void也不允許有。5.以下哪項(xiàng)創(chuàng)建了名為dog的Animal對(duì)象()。(A)Animal “dog”; (B)Animal dog;(C)dog “Animal”; (D)dog Animal;6.以下哪項(xiàng)表明displayBreed()函數(shù)是Animal類的成員函數(shù)()。(A)nimal::displayBreed()(B)Animal.displayBreed()(C)displayBreed()::Animal(D)displayBreed()&&Animal7.類Animal的構(gòu)造函數(shù)名是()。 (A)Animal (B)AnimalConstructor (C)ConstAnimal (D)以上任何一項(xiàng)都可作為構(gòu)造函數(shù)名8.為了使類中的某個(gè)成員不能被類的對(duì)象通過(guò)成員選擇運(yùn)算符訪問(wèn),則不能把該成員的訪問(wèn)權(quán)限定義為()。(A)public (B)protected (C)private (D)static9.類具有哪四個(gè)基本特征()。(A)抽象隱藏繼承多態(tài) (B)抽象封裝繼承多態(tài)(C)抽象隱藏繼承封裝 (D)抽象封裝封裝多態(tài)10.類的構(gòu)造函數(shù)的作用是()。(A)一般成員函數(shù) (B)類的初始化(C)對(duì)象的初始化 (D)刪除對(duì)象11.由類中創(chuàng)建的對(duì)象稱為()。(A)屬性 (B)類的實(shí)例 (C)基類 (D)派生類12.類的析構(gòu)函數(shù)的作用是()。(A)一般成員函數(shù) (B)類的初始化(C)對(duì)象的初始化 (D)刪除對(duì)象第8章文件的應(yīng)用一、判斷題()1.一般通過(guò)析構(gòu)函數(shù)負(fù)責(zé)打開文件,構(gòu)造函數(shù)負(fù)責(zé)關(guān)閉文件。()2.打開文件就是把流與文件相連接,關(guān)閉文件就是切斷這一連接。()3.文件的I/O由ifstream、ofstream、fstream3個(gè)類提供。ifstream是istream的派生類。()4.文件的打開方式分為創(chuàng)建文件流對(duì)象模式和使用open函數(shù)模式。()5.Visualc++中,可以創(chuàng)建三種不同類型的數(shù)據(jù)文件:順序文件、隨機(jī)文件、二進(jìn)制文件。()6.文件都是以順序形式存儲(chǔ)和查找的。()7.要?jiǎng)?chuàng)建文件對(duì)象,必須在程序中包含名為fstream的頭文件。()8.將現(xiàn)有輸出文件的末尾增加記錄,需要在open()函數(shù)中使用ios::out模式。()9.對(duì)文件操作必須先關(guān)閉文件,然后再操作文件。()10.當(dāng)結(jié)束一個(gè)文件的操作后,要及時(shí)將該文件關(guān)閉,以防止數(shù)據(jù)遺漏。()11.如果記錄指針不在文件的末尾,eof()函數(shù)返回值是true。()12.close()函數(shù)不需要文件名,計(jì)算機(jī)自動(dòng)地確定并關(guān)閉與文件對(duì)象相關(guān)的文件。()13.inFile.ignore(1);作用是丟去一個(gè)字符或第一次遇到輸入文件結(jié)束標(biāo)記后,停止讀取字符。()14.getline(inFile,state);作用是從文件中讀取字符串?dāng)?shù)據(jù)(遇空格符結(jié)束)存于state變量中。二、單項(xiàng)選擇題1.在對(duì)磁盤文件進(jìn)行操作時(shí),以( )方式打開的文件,可實(shí)現(xiàn)將數(shù)據(jù)添加在文件尾部。(A)ios::in (B)ios::app(C)ios::out(D)ios:binary2.下面( )以讀的模式打開文件
(A)ios:in
(B)ios:out
(C)ios:app
(D)ios:read3.已知文本文件的內(nèi)容是字符串“MadamI’mAdam”,下列語(yǔ)句序列中,( )輸出的不是
“dam”。(A)charstr[30];ifile.seekg(11,ios::beg);ifile.getline(str,30);cout<<str<<endl;(B)charstr[30];ifile.seekg(11,ios::beg);ifile.get(str,30);cout<<str<<endl;(C)charstr[30];ifile.seekg(2,ios::beg);ifile.getline(str,30);cout<<str<<endl;(D)charstr[30];ifile.seekg(11,ios::beg);ifile.get(str,30);cout<<str<<endl;4.下列關(guān)于write函數(shù)的描述中,( )是正確的。(A)可以寫入任意數(shù)據(jù)類型的數(shù)據(jù)(B)只能寫二進(jìn)制文件(C)只能寫字符串(D)可以使用“(char*)+數(shù)組名”的方式數(shù)組5.在對(duì)磁盤文件進(jìn)行操作時(shí),以( )模式打開的文件,可實(shí)現(xiàn)將數(shù)據(jù)添加在文件尾部。(A)ios::in(B)ios::app(C)ios::out(D)ios:binary6.在對(duì)磁盤文件進(jìn)行操作時(shí),以( )方式打開的文件,可實(shí)現(xiàn)創(chuàng)建一個(gè)可以寫入的、新的空文件;如果該文件已經(jīng)存在,則先刪除以前的內(nèi)容,再寫入新的數(shù)據(jù)。(A)ios::in(B)ios::app(C)ios::out(D)ios:binary7.以輸出模式打開文件時(shí),()模式是默認(rèn)輸出模式。(A)ios::in(B)ios::app(C)ios::out(D)ios:binary8.下面()是以讀的模式打開文件。
(A)ios::in(B)ios::app(C)ios::out(D)ios::read9.以下判斷文件a1.dat是否打開成功的正確語(yǔ)句是()(A)if(outFile.is_open(a1.dat))(B)if(outFile.open())(C)if(outFile.is_open())(D)if(outFile.open(a1.dat))10.以下將文件a1.dat關(guān)閉的正確語(yǔ)句是()(A)inFile.close(a1.dat);(B)a1.dat_inFile.close();(C)inFile_close(a1.dat);(D)inFile.close();11.inFile.eof()的值為真表示()(A)文件已讀完(B)文件為空(C)文件未讀完(D)文件打開成功12.已知inFile為輸入文件對(duì)象,以下格式正確的是():(A)close.inFile();(B)inFile.close();(C)inFile-close();(D)close(inFile);13.變量outfile與文件對(duì)象相關(guān)聯(lián)時(shí),以下語(yǔ)句()能將s1和s2變量的內(nèi)容寫入test.dat文件。(A)test.dat<<s1<<s2<<endl;(B)ofstream<<s1<<s2<<endl;(C)outfile<<s1<<‘#’<<s2<<endl;(D)outfile>>s1>>‘#’>>s2>>endl;14.以下()語(yǔ)句能將city變量寫入名為date1.dat的輸出文件。(A)date1.dat<<city<<endl;(B)outFile<<city<<endl;(C)oftream<<city<<endl;(D)outFile>>city>>endl;三、閱讀程序題1:#include<iostream>#include<fstream>usingnamespacestd;claseCdisp{int
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度物流運(yùn)輸公司股權(quán)轉(zhuǎn)讓書3篇
- 二零二五年度果樹病蟲害防治果園土地承包服務(wù)合同3篇
- 2025年度土地承包合同未滿征收補(bǔ)償與農(nóng)村土地權(quán)益置換政策執(zhí)行協(xié)議2篇
- 二零二五年度智慧城市運(yùn)營(yíng)管理商業(yè)合同3篇
- 內(nèi)河漁船出售轉(zhuǎn)讓合同(2025年度)附帶船舶運(yùn)營(yíng)許可及培訓(xùn)3篇
- 二零二五年度2025年企業(yè)租賃工業(yè)廠房合同3篇
- 2025年度綠色生態(tài)養(yǎng)殖合伙協(xié)議合同書3篇
- 二零二五年度新能源項(xiàng)目經(jīng)理勞務(wù)合同3篇
- 2025年度民事糾紛和解協(xié)議書與知識(shí)產(chǎn)權(quán)侵權(quán)賠償及和解協(xié)議3篇
- 2025年度人工智能領(lǐng)域出資技術(shù)合作框架協(xié)議
- 天安門地區(qū)地下空間開發(fā)利用策略-洞察分析
- 《基層管理者職業(yè)素養(yǎng)與行為規(guī)范》考核試題及答案
- 椎間孔鏡治療腰椎間盤突出
- 2024年融媒體中心事業(yè)單位考試招考142人500題大全加解析答案
- 2024-2025學(xué)年 語(yǔ)文二年級(jí)上冊(cè)統(tǒng)編版期末測(cè)試卷(含答案)
- 期末測(cè)試題二(含答案)2024-2025學(xué)年譯林版七年級(jí)英語(yǔ)上冊(cè)
- 產(chǎn)品質(zhì)量知識(shí)培訓(xùn)課件
- 乳腺旋切手術(shù)
- 醫(yī)護(hù)禮儀課件教學(xué)課件
- 2024-2030年中國(guó)商品混凝土行業(yè)產(chǎn)量預(yù)測(cè)分析投資戰(zhàn)略規(guī)劃研究報(bào)告
- 2023年中國(guó)奧特萊斯行業(yè)白皮書
評(píng)論
0/150
提交評(píng)論