計算機程序設(shè)計基礎(chǔ)(C++)(景紅版)課后全部習題及參考答案.doc_第1頁
計算機程序設(shè)計基礎(chǔ)(C++)(景紅版)課后全部習題及參考答案.doc_第2頁
計算機程序設(shè)計基礎(chǔ)(C++)(景紅版)課后全部習題及參考答案.doc_第3頁
計算機程序設(shè)計基礎(chǔ)(C++)(景紅版)課后全部習題及參考答案.doc_第4頁
計算機程序設(shè)計基礎(chǔ)(C++)(景紅版)課后全部習題及參考答案.doc_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

習 題第1章1. 什么是軟件?2. 簡述軟件的開發(fā)過程。3. 什么是程序設(shè)計?4. 簡述程序設(shè)計過程。5. 數(shù)據(jù)結(jié)構(gòu)的含義是什么?6. 簡述算法的表示方法。7. 什么是結(jié)構(gòu)化算法?8. 簡述結(jié)構(gòu)化程序設(shè)計思想。第2章 C+的基礎(chǔ)知識一、填空題1. C+語言中的標識符只能由 、 和 三種字符組成,且打頭字符不能是 。2. C+程序的目標文件的擴展名是 。3. 在C+程序中,使用輸入輸出流需要包含的頭文件是 。4. 當執(zhí)行cin時,從鍵盤上一次輸入多個數(shù)據(jù)時,每個數(shù)據(jù)后必須輸入一個 ,然后才可以接著輸入下一個數(shù)據(jù)。5. 轉(zhuǎn)義字符序列中的首字符是 字符。6. 空字符串在內(nèi)存中的存儲空間是 個字節(jié) 。7. 以/*開始,*/結(jié)束,在/*和*/之間的部分即為 。8. 賦值表達式y(tǒng)=x+的含義是 ,y=+x的含義是 。9. cout輸出轉(zhuǎn)義字符 是使光標移到屏幕上的下一行。10. C+語言的基本數(shù)據(jù)類型有 、 、 、 、 五種。二、判斷題( )1.“C”是字符常量。( )2. 在命名標識符時,大小寫字母是不加區(qū)分的。( )3. C+程序中,對變量一定要先說明再使用,說明只要在使用之前就可以。( )4. C+程序必須有return語句。( )5. 執(zhí)行語句const int x=10;后,可以重新對x賦值。( )6. 語句a_char = n 表示將小寫字母n賦值給字符變量a_char。( )7. short,int都是C+語言的關(guān)鍵字。( )8. C+編譯系統(tǒng)對源程序編譯時,可以檢查出注釋語句中的語法錯誤。( )9. 將一個字符常量放到一個字符變量中,并不是把該字符本身放到內(nèi)存變量中去,而是將該字符相應的ASCII代碼放到存儲單元中。( )10. 語句int answer=3+2*9/(10-6);執(zhí)行完畢后,變量answer的值是7.5。三、單項選擇題1. C+源程序文件的擴展名為( )。(A).CPP (B).OBJ (C).C (D).EXE2. 下列變量名中,( )是合法的。(A)double(B)A+a(C)CHINA(D)5s3. 下列符號能用作C+標識符的是( )(A)xyz/2 (B) 2xsale (C)x-sale (D) x_sale4. 下列各運算符中,( )只能用于整型數(shù)據(jù)的運算。(A)+(B)/(C)*(D)%5.( )不是C+的基本數(shù)據(jù)類型。(A)字符類型(B)數(shù)組類型(C)整數(shù)類型(D)布爾類型6. 下列運算符中,優(yōu)先級最高的是( )。(A)% (B) ! (C)= (D)/7. 字符串常量“ME”的字符個數(shù)是( )。(A)4(B)3(C)2(D)18. 在C+語言中,080是( )。(A)八進制數(shù)(B)十進制數(shù)(C)十六進制數(shù)(D)非法數(shù)9. 整型變量i定義后賦初值的結(jié)果是( )。int i=2.8*6;(A)12(B)16(C)17(D)1810.如有int m=31;則表達式(m+*1/2)的值是( )。(A)0 (B)15 (C)15.5 (D)1611.每個C+程序都必須有且僅有一個( )。(A)預處理命令(B)主函數(shù)(C)函數(shù)(D)語句12.在C+語言中,自定義的標志符( )。(A)能使用關(guān)鍵字并且不區(qū)分大小寫(B)不能使用關(guān)鍵字并且不區(qū)分大小寫(C)能使用關(guān)鍵字并且區(qū)分大小寫(D)不能使用關(guān)鍵字并且區(qū)分大小寫 13.下列C+標點符號中表示一條語句結(jié)束的是( )。(A)# (B)/ (C) (D);14.下列C+標點符號中表示一條預處理命令開始的是( )。(A)# (B)/ (C) (D);15. 定義如下變量:int i=2;int j=3;則i/j的結(jié)果為( )。(A)0.7 (B)0.66667 (C)0.666666 (D)016. 已知int a=2,a+=a-=a*a的值是( )。(A)4 (B)2 (C)0 (D)417. 下列關(guān)于C+關(guān)鍵字的說法中正確的是( )。(A)關(guān)鍵字是用戶為程序中各種需要命名的“元素”所起的名字。(B)關(guān)鍵字是對程序中的數(shù)據(jù)進行操作的一類單詞。(C)關(guān)鍵字是在程序中起分割內(nèi)容和界定范圍作用的一類單詞。(D)關(guān)鍵字是C+中預先定義并實現(xiàn)一定功能的一類單詞。18.語句n1=2,n2=+n1,n1=n2+,執(zhí)行后變量n1、n2的值分別為()(A), (B),(C), (D),19.字符型數(shù)據(jù)在內(nèi)存中的存儲形式是( )。 (A)補碼 (B)ASCII碼 (C) 反碼 (D)原碼20.下列程序段執(zhí)行后輸出結(jié)果為()char a= a ; couta=a-32endl;(A) a=A (B) a=33(C) a=65 (D)a=A-32四、閱讀程序,寫出運行結(jié)果1. #include void main( ) coutThis is a hello world; cout program;2. #include void main( ) const int R=10; const double PI=3.14159; double a,b; a=2*R*PI; b=R*R*PI; couta=a,b=bendl;五、程序改錯/*求三個整數(shù)的平均數(shù)#include ;int mian( )int a,b,c,sum,avg; coutabcendl; sum=a+b+c avg=sum/3; cout平均數(shù)是:avg;第3章 基本程序設(shè)計一、判斷題( ) if 語句結(jié)構(gòu)中必須有else語句。( ) 表達式7=3+4 | 64 & 26|102*6&2!=! 5求值結(jié)果為真。( ) 語句for(i=0,x=0;i90;i+) if(i) x+;執(zhí)行完后,x的值是89。( ) 邏輯表達式10x20表示“大于10而小于20的數(shù)”。( ) 表達式13&57的值是1。( ) 表達式!(58)|26的值是1。( ) 表達式a+bc&d=5中運算符優(yōu)先級由高到低的排列順序是+、z&x*y0中運算符優(yōu)先級由高到低的排列順序是:*、&、|。( )11. 設(shè)”int a=3,b=4,c=5;”;表達式”(a+b)c&b= =c”的值是0。( )12. x,y,z為int類型的時候,下列語句執(zhí)行之后,x的值為10,y的值為20,z的值為10。x=10;y=20;z=30;if(xy) x=y;y=z;z=x; ( )13. break和continue語句的作用都是終止本層循環(huán)的執(zhí)行。( )14. 判斷變量x的數(shù)值是否在3到5之間可以用關(guān)系表達式3x5來描述。( )15. 判斷以下程序是否正確。#include #include “iomanip”using namespace std;void main() if(ab) coutsetw(4)a;cout setw(4)b; else cout setw(4)b; cout setw(4)a;( )16. 不管是當型循環(huán)還是直到型循環(huán),其循環(huán)體都可能在某種條件下一次也不執(zhí)行。( )17. 為了避免可能出現(xiàn)的歧義,C+對ifelse語句配對規(guī)則規(guī)定為:else總是與最近的那個if配對。( )18. 要運行一個C+程序需要經(jīng)過編輯、編譯、鏈接和運行四個階段。其中編譯階段就是對源程序進行語法與語義分析,查找和排除程序錯誤,通常能夠找出程序中的語法錯誤和邏輯錯誤。( )19. switch語句結(jié)構(gòu)中必須有default語句。( )20. break語句只能結(jié)束包含該語句的一層循環(huán)結(jié)構(gòu)。二、單項選擇題1. for(i=0, x=0; !x&i=3;i+)循環(huán)的次數(shù)為( )。(A) 4 (B) 5 (C) 1 (D)是無限循環(huán)2. 若有如下程序段: int a=2,b=-1,c=2; if(ab) if(b0)c=0; else c+=1; cout“c=cendl; 執(zhí)行后輸出到屏幕的結(jié)果是_。(A) 2 (B) 1 (C) 3 (D) 03、若有如下程序段:int i=10;switch(i) case 9:i+;case 10:i+; case 11:i+; default:i+; 執(zhí)行后變量i的正確結(jié)果是( )。(A) 11 (B) 12 (C) 13 (D) 144. 以下描述中正確的說法是( )。(A) break語句與continue 語句完全一樣,可以相互代替(B) 用break 語句可以提前終止整個循環(huán)(C) 用continue 語句可以提前終止整個循環(huán)(D) 用break語句與continue 語句都不能提前終止執(zhí)行循環(huán)5. 以下for循環(huán)的執(zhí)行次數(shù)是( )。 for(x=0,y=0;(y=123)&(x2);x+)(A) 執(zhí)行1次 (B) 執(zhí)行2次 (C) 執(zhí)行3次 (D) 是無限循環(huán)6. 以下描述正確的是( )。(A) goto語句只能用于退出多層循環(huán)(B) switch語句中不能出現(xiàn)break語句(C) 只能用continue語句來終止本次循環(huán)(D) 在循環(huán)中break語句不能獨立出現(xiàn)7. 為了避免嵌套的if-else語句的二義性,C語言規(guī)定else總是與( )組成配對關(guān)系。 (A) 縮排位置相同的if (B) 在其之前未配對的if (C) 在其之前未配對的最近的if (D) 同一行上的if8. break語句的作用是( )。(A) 立即跳出包含該break語句的最小的各種循環(huán)語句和switch語句(B) 立即跳出包含該break語句的最小的各種循環(huán)語句(C) 立即跳出包含該break語句的switch語句(D) 立即跳出包含該break語句的各種循環(huán)語句和switch語句9. 下面程序段執(zhí)行完后,x的值是( )。x=0;for(i=0;i90;i+)if (i)x+;(A) 0 (B) 30 (C) 89 (D) 9010. continue語句的作用是( )。(A) 結(jié)束包含該continue語句的最小的各種循環(huán)語句(B) 結(jié)束包含該continue語句的各種循環(huán)語句(C) 結(jié)束本次循環(huán),直接進行循環(huán)條件的判斷(D) 循環(huán)執(zhí)行完后,結(jié)束循環(huán)11. 下列程序段循環(huán)( )次。int x=-10;while (+x) (A) 9 (B) 10 (C) 11 (D) 無限12. 在下列運算符中,優(yōu)先級最低的是( )。(A) | (B)!=(C) n為false或mn&mn)(B) switch語句結(jié)構(gòu)中必須有default語句(C) if語句結(jié)構(gòu)中必須有else語句(D) 如果至少有一個操作數(shù)為true,則包含|運算符的表達式為true14. 如果switch語句選擇表達式中是整型變量,下面哪一項case子句是合法的( )。(A) case “2”: (B) case 2: (C) case 2;(D) case =215. 有如下程序段: for(int i = 1;i4;i+) if(i%2 = 0) continue; couti“,”; 執(zhí)行以上程序段的輸出結(jié)果是( )。(A) 1, (B) 1,3,4, (C) 1,3, (D) 2,4,16. 下列運算符中優(yōu)先級最高的是( )。(A)! (B) % (C) -= (D) &17. 用邏輯表達式表示“大于10而小于20的數(shù)”,正確的是( )。(A) 10x10|x10&x20 (D)?。▁=20)18. 如果switch語句中的選擇表達式是字符型變量code,下面哪一項case子句是合法的( )。(A) case “3”; (B) case 3; (C) case 3; (D) case =319. 設(shè)int a=10,b=11,c=12;(a+b)c&b=c的值是( )。(A) 2 (B) 0 (C) -2 (D) 120. 在以下關(guān)于C+語言的敘述中,正確的是( )。(A)if 語句結(jié)構(gòu)中必須有else語句 (B)switch語句結(jié)構(gòu)中必須有default語句 (C)C+程序必須有return語句 (D)C+中使用流來執(zhí)行標準的輸入輸出操作21. 下列do-while循環(huán)的循環(huán)次數(shù)是( )。已知:int i=5; do couti-0的值( )。() 為true () 為false () 與n的值相反() 與n的值相同第4章 數(shù)組的應用一、判斷題( )1. 在對全部數(shù)組元素賦初值時,不可以不指定一維數(shù)組的長度。( )2. 在對全部二維數(shù)組元素賦初值時,可以不指定二維數(shù)組的行數(shù)。( )3. 在C+程序中,有定義:int a10;數(shù)組a的最小下標是1。( )4. 在C+程序中,有定義:int a10;數(shù)組a的最大下標是10。( )5. 可以用同一個數(shù)組表示以一組數(shù)值型數(shù)據(jù)和字符型數(shù)據(jù)。( )6. 有聲明: int a32=1,2,3,4,5,6;那么數(shù)組元素a21的初始值是6。( )7. 有聲明: char ch10=a,b,c,d,e;那么賦給數(shù)組ch的是字符串“abcde”。( )8. 在對全部二維數(shù)組元素賦初值時,必須要指定二維數(shù)組的列數(shù)。( )9. 字符串hello,world在內(nèi)存中存放時,占用12個字節(jié)的空間。( )10.定義一個一維字符數(shù)組有50個元素,用該一維字符數(shù)組表示一個字符串數(shù)據(jù)最多允許有50個字符。( )11. C+中各種數(shù)據(jù)類型的變量在定義后會被自動初始化為0值。( )12. 定義數(shù)組時可以用變量來定義數(shù)組的大小,但不能用表達式。( )13. 定義一個有50個元素的一維字符數(shù)組,用該數(shù)組表示一個字符串數(shù)據(jù)最多允許有50個字符。( )14. 定義一個數(shù)組后該數(shù)組的最小下標取值是0。( )15. 靜態(tài)數(shù)組被定義時,數(shù)組的所有元素自動獲取初始值0。( )16. 數(shù)組是C+的基本數(shù)據(jù)類型。( )17. 數(shù)組不能用來存放字符串。( )18. 同一數(shù)組的所有數(shù)組元素在內(nèi)存中是連續(xù)存放的。( )19. 在C+中數(shù)組是具有一定順序關(guān)系的若干相同類型變量的集合體。( )20. 在給全部數(shù)組元素賦初值時,可以不指定二維數(shù)組中的常量表達式,例如:int a=1,2,3,4,5,6; 二、單項選擇題1. 若有以下定義語句:int a10=1,2,3,4,5,6,7,8,9,10;則下列()是對數(shù)組元素的正確使用。(A) a10 (B) aa3-5 (C) aa9(D) aa4+42. 對語句:int a34=0; 描述正確的是() 。 (A) 只有元素 a00 可得到初值 0 (B) 數(shù)組 a 中每個元素均可得到初值 0 (C) 此說明語句不正確 (D) 數(shù)組 a 中各元素都可得到初值,但其值不一定為 0 3. 若有以下定義,則數(shù)組元素a22的值是( )。 int a3=1,2,3,2,4,4,5,6,1,2,3;(A) 4 (B) 5 (C) 2 (D) 64. 在下面的一維數(shù)組定義中,( )有語法錯誤。(A) int a =1,2,3; (B) int a ; (C) int a =0; (D) int a5;5. 在下面的一維數(shù)組的定義中,不正確的是( )。(A) int x1010; (B) int x 10=1,3,5,7;(C) int x ; (D) int x1010=0;6. 對長度為N的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為( )。(A) N+1 (B) N (C) (N+1)/2 (D) N/27. 將兩個字符串連接起來組成一個字符串時,用( )函數(shù)。(A) strcat (B) strlen (C) strcpy (D) strcmp8. 希爾排序法屬于哪一種類型的排序法( )。(A) 交換類排序法 (B) 插入類排序法 (C) 選擇類排序法 (D) 建堆排序法9. 若定義了一個4行3列的數(shù)組,則第8個元素是( )。(A) a13 (B) a23 (C) a31 (D) a2110.判斷兩個字符串(分別用a、b表示)是否相等的操作為( )。(A) a= =b (B) if(a= =b) (C) if(strcmp(a,b) (D) if(strcpy(a,b)11. 定義一個一維數(shù)組,正確的語句是()。(A)int a(10); (B)int n=10;int an; (C)int n;cinn;int an; (D)const int n=10;int an;12. 以下那種說法錯誤?( )。(A)數(shù)組中的元素在某些方面彼此相關(guān); (B)數(shù)組中的所有元素具有相同的下標; (C)數(shù)組中的所有元素具有相同的數(shù)據(jù)類型; (D)數(shù)組中的所有元素具有相同的名字;13. 語句 int a=0,1,2執(zhí)行后,數(shù)組的元素個數(shù)是( )。 (A)2 (B)3 (C)4 (D)不知道14. 下面數(shù)組定義錯誤的是()。(A)define n 5 (B)const int n=5; char an=“good”; char an= “good”;(C)int n=5; (D)const int n=5; char an=“good”; char an+2=“good”;15. 執(zhí)行下列語句:int c4=0,1,2,3; for(int i=0; i4;i+) ci=ci+i; 則c3的值是( )。(A)0 (B)4 (C)6 (D)816. 下列程序執(zhí)行后 d5結(jié)果是( )。int d10; int I; for (i=0;i=9;i+) di=i; for( i=0;i=9;i+) di=d9-i;(A)0 (B)4 (C)5 (D)617. 數(shù)組 int area4=1,2,3,4, 執(zhí)行程序for (int i=1;i=4;i+)areai-1=1;那么 area4的值是( )。 (A)4 (B)3 (C)1 (D)錯誤18. 二維數(shù)組在內(nèi)存中的存放順序是( )。(A)按行存放 (B)按列存放 (C)由用戶自己定義 (D)由編譯器決定19. 下面初始化不正確的是()。(A)int a23=1,2,3,4,5,6; (B)int a2=7,8,9; (C)double a3=1,2,3,4,5,6,7; (D)double a32=1.5,2.0,3.5,5,6,7;20. 若有定義:int a34=0; 則以下描述中正確的是( )。(A)只有a00元素得到初值 (B)不正確語句 (C)各元素均得到初值,但不一定為0 (D)各元素均得到初值且為021. 下列對字符數(shù)組進行初始化的語句正確的是()。(A)char a= “abcd”; (B)char a= “abcd”; (C)char a4= “abcd”; (D)char a22= “ab”, “cd”;22. 二維字符數(shù)組1010能夠存儲( )個字符串,每個字符串的長度至多為( )。(A)10,10 (B)10,9 (C)9,10 (D)9,9三、閱讀程序題1#include void main( ) int a4,i,j,k;for(i=0;i4;i+) ai=1;k=3;for(i=0;ik;i+) for(j=0;jk;j+) aj=ai+2;couta1a3endl;當執(zhí)行以上程序時,輸出結(jié)果是:2#include#includeusing namespace std;void main() int s33,i,j,k;for(i=0;i3;i+)for(j=0;j3;j+)sij=i-j;for(i=0;i2;i+)for(j=i+1;j3;j+)k=sij;sij=sji;sji=k;for(i=0;i3;i+) for(j=0;j3;j+)coutsetw(4)sij;coutendl; 當執(zhí)行以上程序時,輸出結(jié)果是:3. #includeusing namespace std;void main( ) int a4,i,j,k;for(i=0;i4;i+)ai=0;k=2;for(i=0;ik;i+)for(j=0;jk;j+)aj=ai+3;couta1a3endl;4. #includeusing namespace std;void main( ) int a23,j,k;for(k=0;k3;k+)for(j=0;j2;j+)ajk=(j+1)*(k+1);for(j=0;j2;j+) for(k=0;k3;k+)cout*ajk;coutendl;5. #include#includeusing namespace std;void main( ) int s44,i,j,k;for(i=0;i4;i+)for(j=0;j4;j+)sij=i-j;for(i=0;i3;i+)for(j=i+1;j4;j+)k=sij;sij=sji;sji=k;for(i=0;i4;i+) for(j=0;j4;j+)coutsetw(4)sij;coutendl;6. #includeusing namespace std;void main( ) const int N=7;int aNN,i,j;for(i=0;iN;i+)for(j=0;jN;j+)aij=1;for(i=0;iN;i+)for(j=i+2;jN;j+)aij=aij-1+aij-2;for(i=0;iN;i+) for(j=0;jN;j+) if (ji) coutsetw(4)*; else coutsetw(4)aij;coutendl;7#include#includeusing namespace std;void main( ) const int N=5;int aNN;int i,j;for(i=0;iN;i+) ai0=1; aii=1; for(i=2;iN;i+) for(j=1;ji;j+) aij=ai-1j-1+ai-1j; for(i=0;iN;i+) for(j=0;jN-1-i;j+) cout ; for(j=0;j=i;j+) coutsetw(4)aij; coutendl; 8. #include#includeusing namespace std;void main( ) int a10=1,1,2,3,2,7,4,2,8,9; int b=32%6; int i,j,c=0,k=9; for(i=0;i9;i+) if(ai=b) c=c+1; k-; for(j=i;j9;j+) aj=aj+1; i-; for(i=0;i=k;i+) coutait;coutendl; coutcendl;四、程序填空題1功能:將若干個數(shù)按從小到大順序排序。#includeusing namespace std;void main( ) int i,j;double temp; double a11; cout輸入需排序的10個數(shù):endl; for(i=1;iai; for(i=1;i9;i+) for( ) if( ) temp=ai; ; ;cout排序后的10個數(shù)為:endl; for(j=1;j=10;j+) coutaj ; coutendl;2功能:使用冒泡法對10個數(shù)從大到小排序。#include void main( ) const int N=10; int aN, j,k; coutInput numbers:endl; for(j=0;jaj; for(j=0;jN-1;j+)for(k=0; ; k+) if( ) ak+=ak+1; ; ; for(j=0; ;j+) coutaj ; coutendl;3功能:把一個數(shù)列中的所有相同的數(shù)刪到只剩下一個。#includeusing namespace std;void main( ) int a10,i,j,pos=1; for(i=0;iai; for(i=1;i10;i+) for(j=0; ;j+) if (ai=aj) break; if( ) apos=ai; pos+; for(i=0; ;i+) coutait; coutendl; 五、程序改錯功能:折半查找1 #include 2 using namespace std; 3 void main( )4 int a10,low=9,mid,high=0,x,pos;5 cout請輸入10個數(shù)(降序):endl;6 for(int i=0;iai;8 cout請輸入欲查找的數(shù):x; 10 while(lowx) 17 high=mid-1;18 else 19 low=mid+1; 20 21 if(lowhigh) 22 cout沒有找到endl;23 else 24 coutx 是第pos個數(shù)endl;25 本題有七個錯誤,寫出錯誤行號及正確語句。 ( )第5章 指針的應用一、判斷題( )1. 從內(nèi)存單元中存取數(shù)據(jù)的方法有直接訪問方式和間接訪問方式。( )2. 能夠直接賦值給指針變量的整數(shù)是0和1。( )3. 聲明了指向int類型的指針,該指針可以被賦予任何類型對象的地址。( )4. 變量的指針,其含義是指該變量的地址。( )5. 設(shè)有如下定義語句:int *p,a;則語句 p=&a;中的運算符&的含義是取變量的值。( )6. 在使用指針變量時,可以把常量或表達式的地址賦給指針變量,表示該指針指向常量或表達式的地址。( )7. 設(shè)有定義語句:int a10;該數(shù)組的數(shù)組名a是數(shù)組首地址,是一個地址常量,是數(shù)組第一個元素的地址。( )8. 設(shè)有如下語句:int *p,a10=0;則可用語句: for(p=a;p*p; 從鍵盤輸入數(shù)組的值。( )9. 在操作一個一維數(shù)組時,可能會用到兩個指針變量指向該數(shù)組,這兩個指針變量之間可以進行關(guān)系運算,其關(guān)系運算的結(jié)果表明了這兩個指針變量所指向的數(shù)組元素的先后關(guān)系。( )10. 對于已經(jīng)定義好的相同的兩個指針變量之間,可以進行加法運算、減法運算和賦值運算。( )11. 設(shè)有如下一段程序: int *var,ab;;ab=100;var=&ab;ab=*var+10;執(zhí)行上面的程序段后;ab的值為 110。( )12. 有如下定義語句:int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 則數(shù)值為9的表達式可以表示為 *p+=9。( )13. 有定義語句:int a55,*p;二維數(shù)組a首地址可表示為:p=a0或p=&a00。( )14. 有定義語句:int a32=6,5,4,3,2,1,*p=a0;cout*(p+5)endl;輸出的值為2。( )15. 在VC+中,存儲的分配有兩種,即靜態(tài)存儲分配和動態(tài)存儲分配。( )16. 靜態(tài)存儲分配:是指程序中使用的變量和數(shù)組的類型、數(shù)目和大小,是在編程時由程序員分配確定下來的,因此,在程序運行時這些數(shù)據(jù)占據(jù)的存儲空間數(shù)也是一定的。( )17. 動態(tài)存儲分配:在程序運行過程中按照實際需要申請適量的內(nèi)存單元,使用結(jié)束后還可以釋放,這種存儲分配方法被稱為動態(tài)存儲分配。( )18. 實現(xiàn)動態(tài)分配內(nèi)存,需要運用指針和使用運算符:new和delete。( )19. 使用動態(tài)存儲分配時,用運算符new獲取的內(nèi)存空間,不必須用delete進行釋放。( )20. 對一個指針可以多次調(diào)用delete運算符進行釋放。在使用delete運算符進行釋放時,不用考慮數(shù)組的維數(shù)。二、單項選擇題1. 下列關(guān)于指針運算的描述錯誤的是( )。(A) 指針變量是用于存儲變量地址的變量(B) 指針變量是用于存儲變量值的變量(C) 在一定條件下,指針變量可以為空值(D) 可以使用指針變量來訪問數(shù)組2. 若已經(jīng)定義了a為int型變量,則對指針變量p的定義及初始化正確語句是( )。(A) int *p=a; (B) int p=a; (C) int *p=*a (D) int *p=&a;3. 若有定義:int x=0, *p=&x;,則語句:cout*p;的輸出結(jié)果是( )。 (A) 隨機值 (B) p的地址 (C) x的地址 (D) 04. 設(shè)有定義語句:int n=0,*p=&n,*q;則以下選項中,正確的語句是( )。 (A) p=1; (B) p=q; (C) *p=*q; (D) *p=5;5. 已知一運行正常的程序中有下面的語句,由此可知,變量a和b的類型分別是( )。int *p2=&x,*p1=a;*p2=*b;(A) int和int (B) int *和int (C) int和int * (D) int *和int *6. 設(shè)有如下的程序段,程序段運行后輸出的結(jié)果是( )。 int a=1,b=3,c=5; int *p1=&a,*p2=&b,*p=&c; *p=*p1*(*p2); coutcendl;(A) 1 (B) 3 (C) 5 (D) 157. 設(shè)有如下程序段:int x=8,*p=&x;cout*p+endl; 輸出的值為( )。(A) 8 (B) 9 (C) 8的地址 (D) 9的地址8. 設(shè)有如下程序段:int x=8,*p=&x;cout+*pendl; 輸出的值為( )。(A) 8 (B) 9 (C) 8的地址 (D) 9的地址9. 設(shè)有定義語句:int *point, a=4;和 point=&a;下面均代表地址的一組選項是( )。 (A) a, point (B) &a,*point (C) point, &a (D) a, *po

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論