版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、第第7章章習題課習題課 1. 有關指針的說法中,有關指針的說法中, 是錯誤的。是錯誤的。 A. 賦予一個指針變量的值只能是一個在有效范圍內(nèi)的地址賦予一個指針變量的值只能是一個在有效范圍內(nèi)的地址 B. 只有先定義一個基本類型的變量,然后才能定義指向該變只有先定義一個基本類型的變量,然后才能定義指向該變量的指針量的指針 C. 一個指針變量的值可以是一個指針變量的值可以是NULL D. 對指針變量可以進行關系運算和邏輯運算對指針變量可以進行關系運算和邏輯運算 2. 對于函數(shù)對于函數(shù)void count(int w, int &x, int &y),以下敘,以下敘述正確的是述正確的是
2、。 A. 定義函數(shù)時,參數(shù)表中出現(xiàn)定義函數(shù)時,參數(shù)表中出現(xiàn)&符是非法的符是非法的 B. 帶有帶有&符的虛參在函數(shù)中被分配靜態(tài)內(nèi)存單元符的虛參在函數(shù)中被分配靜態(tài)內(nèi)存單元 C. 對于帶有對于帶有&符的虛參,其變量值在函數(shù)中不能被修改符的虛參,其變量值在函數(shù)中不能被修改 D. 使用多個帶有使用多個帶有&符的虛參,通過對應的實參可以將多個變符的虛參,通過對應的實參可以將多個變量值傳回上層調(diào)用函數(shù)量值傳回上層調(diào)用函數(shù)BD 3下列關于指針的操作中,錯誤的是下列關于指針的操作中,錯誤的是 。A. 兩個同類型的指針可以進行比較運算兩個同類型的指針可以進行比較運算B. 可以用一個
3、空指針值賦給某個指針變量可以用一個空指針值賦給某個指針變量C. 一個指針可以加上兩個整數(shù)之差一個指針可以加上兩個整數(shù)之差D. 兩個同類型的指針可以相加兩個同類型的指針可以相加 4設有如下定義:設有如下定義: int data=32767; int *pd; float *fp;則以下則以下 是正確的。是正確的。 Apd=&data ; B*pd=& data; Cfp=(fload) &data; Dfp=(*fload) &data;DA 5. 在用在用new運算符建立一個三維數(shù)組運算符建立一個三維數(shù)組15*30*10時,使用了時,使用了3個下標運算符個下標運
4、算符“”,與之對應,用與之對應,用delete運算符注銷這個三維數(shù)運算符注銷這個三維數(shù)組時使用了組時使用了 個下標運算符。個下標運算符。 A1 B2 C3 D0 6設有說明設有說明int b44,以下不能等價元素以下不能等價元素b33的是的是 。 A*&b33 B(*(*(b+3)+3) C*(B3+3) D*(*(b+3)+3)AB 7設有以下說明語句:設有以下說明語句:int a43=1,2,3,4,5,6,7,8,9,10,11,12; int (*prt)3=a,*p=a0; 能夠正確表示數(shù)組元素能夠正確表示數(shù)組元素a12的表達式是的表達式是 。 A*(*prt+1)2)B*(
5、*(p+5) C(*prt+1)+2D*(*(a+1)+2) 8有關內(nèi)存分配的說法中,有關內(nèi)存分配的說法中, 是錯誤的。是錯誤的。 A. 指針變量可以保存動態(tài)分配的存儲空間指針變量可以保存動態(tài)分配的存儲空間 B. 用用new為指針變量分配的存儲空間在堆區(qū)為指針變量分配的存儲空間在堆區(qū) C. 數(shù)據(jù)元素存儲在堆區(qū)的數(shù)組在建立時就被初始化(清零)數(shù)據(jù)元素存儲在堆區(qū)的數(shù)組在建立時就被初始化(清零) D. 指向靜態(tài)變量的指針不必用指向靜態(tài)變量的指針不必用delete釋放釋放DC 9設有如下的函數(shù)定義設有如下的函數(shù)定義 int f(char*s) if(!(*s) return 0; else retur
6、n 1+f(s+1); 若在主程序中用下面的語句調(diào)用上述函數(shù),若在主程序中用下面的語句調(diào)用上述函數(shù),則輸出為則輸出為 。 coutf(“goodbye!”)endl; A1B6C8D0C 10若有以下的說明和語句:若有以下的說明和語句: int t32,*pt3,k; for(k=0;k3;k+)ptk=tk; 則數(shù)組元素則數(shù)組元素pt2表示:表示: 。 A. t數(shù)組第數(shù)組第2行的行指針,指向第行的行指針,指向第2行行 B. t數(shù)組第數(shù)組第2行的元素地址,指向第行的元素地址,指向第2行行0列列 C. t數(shù)組的第數(shù)組的第2個元素個元素 D. t數(shù)組第數(shù)組第2行第行第0個元素個元素B 1設有定義:
7、設有定義:int a34,(*p)4;p=a;則請列則請列出出3種用指針種用指針p表示表示a23的方法。的方法。 答:答:1. p23、 (*(p+2)3、*(*(p+2)+3) 2若有函數(shù)聲明若有函數(shù)聲明int fun(*int(*f)(float a ,char b),int n);則函數(shù)調(diào)用時實參和形參之間的傳則函數(shù)調(diào)用時實參和形參之間的傳遞方式是什么?遞方式是什么? 第一個參數(shù)的屬性是什么?第一個參數(shù)的屬性是什么?按什么方式傳遞?第二個參數(shù)按什么方式傳按什么方式傳遞?第二個參數(shù)按什么方式傳遞?遞? 答:傳地址和傳值;第一個參數(shù)是指向型如答:傳地址和傳值;第一個參數(shù)是指向型如函數(shù)(函數(shù)(
8、 int * (float,char)的指針,按地)的指針,按地址傳遞的方式傳遞;第二個參數(shù)按值傳遞。址傳遞的方式傳遞;第二個參數(shù)按值傳遞。 3使用使用new運算符為變量或?qū)ο蠓峙浯鎯\算符為變量或?qū)ο蠓峙浯鎯臻g和為數(shù)組分配存儲空間,方法上有何空間和為數(shù)組分配存儲空間,方法上有何不同?而在使用不同?而在使用delete運算符釋放內(nèi)存,運算符釋放內(nèi)存,方法又有何不同?方法又有何不同? 答:用答:用new分配數(shù)組空間時,需要用分配數(shù)組空間時,需要用指明指明數(shù)組的大?。粩?shù)組的大??;delete運算符釋放內(nèi)存時,運算符釋放內(nèi)存時,如果是數(shù)組空間,需要用如果是數(shù)組空間,需要用delete 的形式。的形
9、式。 4閱讀以下程序,回答問題:閱讀以下程序,回答問題: #include void main() char*p=“BOOL”,”O(jiān)PK”,”H”,”SP”; int i; for (i=3;i=0;i-,i-) cout*pi; /A coutendl; 問題一:變量問題一:變量p是什么數(shù)據(jù)類型是什么數(shù)據(jù)類型 問題二:表達式問題二:表達式*pi等效于等效于A、B中的哪一個中的哪一個 A. *(Pi) B. (*p)i 問題三:當問題三:當i值為值為3時,如果執(zhí)行語句時,如果執(zhí)行語句cout*p+i;輸出結(jié)果是輸出結(jié)果是什么什么 問題四:程序輸出是什么問題四:程序輸出是什么 問題五:當將問題五
10、:當將A行語句改為:行語句改為:cout=0;i-,i-) 一、變量一、變量p是指針數(shù)組;是指針數(shù)組; 二、二、B 三、三、L 四、四、SO 五、五、LO 5設有以下說明,請根據(jù)說明語句的順序設有以下說明,請根據(jù)說明語句的順序回答以下問題:回答以下問題: const float a=1; float &x=a; float b3,&t=b2; int &top=*new int3; const int *p=∑ char *const s1; const float *const s2=b; 問題一:以上正確的說明語句是:問題一:以上正確的說明語句是:_
11、 問題二:含有正確表示引用類型說明的語句問題二:含有正確表示引用類型說明的語句是:是:_ 問題三:正確的常量說明語句是:問題三:正確的常量說明語句是:_ 答:答: 一、一、1、3、4、5、7 二、二、3、4 三、三、1、5、7三、閱讀程序,回答問題三、閱讀程序,回答問題1. 寫出以下程序的輸出。寫出以下程序的輸出。#include void main()int a6=10,20,30,40,50,60;int i=5,*p=&ai;cout*p:*pa0)i-;cout*p-,;coutendl;while(i5)i+;cout*(+p),;coutendl;cout*p:*(p-3)
12、endl;答:答:*p:6060,50,40,30,20,20,30,40,50,60,*p:30 2. 寫出執(zhí)行下面程序的輸出結(jié)果。寫出執(zhí)行下面程序的輸出結(jié)果。 #include int take(int *a, int *b, int n, void (*g)(int*,int) )int i=0, j=n-1;int s=0;while(in)s+=ai;i+;*b=s;g(b, 4);return i=j; void pt1(int *w,int n)coutsum=*wendl; void pt2(int *w,int n)for(int j=0;jn-1;j+) coutwj,;c
13、outwn-1endl; void main()int aa34=3,9,6,12,8,4,7,15,4,5,2,10;int tt6,int i,*p;void (*f)(int *w,int n)=pt1;p=tt;for(i=0;i9;i+) tti=0;for(i=0;i3;i+) take(*(aa+i),p+2*i,4,f);f=pt2;p=tt; f(p,3);p=tt+4; f(p,3); 答:將程序中答:將程序中for(i=0;i9;i+)改為改為 for(i=0;i6;i+),則輸出為:,則輸出為: Sum=30 Sum=34 Sum=21; 30,0,34 21,0,3
14、1主函數(shù)調(diào)用主函數(shù)調(diào)用sort()函數(shù),將一組無序數(shù)排列成降序,然函數(shù),將一組無序數(shù)排列成降序,然后輸出這組數(shù)。后輸出這組數(shù)。 提示:排序過程需要兩層循環(huán),函數(shù)利用遞歸算法來實提示:排序過程需要兩層循環(huán),函數(shù)利用遞歸算法來實現(xiàn)外層循環(huán)現(xiàn)外層循環(huán) #include void sort(int *x, (1) ) int j,t; if( (2) ) return; for(j=1;jn;j+) if(x0 xj) t=x0;x0=xj;xj=t; sort( (3) ,n-1); void main() int a12=5,3,7,4,2,9,8,32,54,21,6,43,k; sort( (
15、4) ,12); for(k=0;k12;k+) coutakt; coutendl; 答:答:int n n=1 x+1 a 2下面程序的功能是:主函數(shù)定義了一個整型數(shù)組下面程序的功能是:主函數(shù)定義了一個整型數(shù)組data,從鍵盤上輸入一個數(shù)從鍵盤上輸入一個數(shù)x,調(diào)用函數(shù),調(diào)用函數(shù)fsum()判斷該數(shù)判斷該數(shù)X是否是否在數(shù)組在數(shù)組data中。如果中。如果x在數(shù)組中,則得到在數(shù)組中,則得到x在在data中第一中第一次出現(xiàn)時的下標值次出現(xiàn)時的下標值p,同時求出下標從,同時求出下標從0到到P之間所有元素之間所有元素之和,函數(shù)返回之和,函數(shù)返回X的下標值的下標值p;否則,;否則,x不在數(shù)組中,函數(shù)不在
16、數(shù)組中,函數(shù)fsum()返回返回-1,主函數(shù)提示相應信息。主函數(shù)輸出計算結(jié),主函數(shù)提示相應信息。主函數(shù)輸出計算結(jié)果。請完善之。果。請完善之。 #iinclude int fs(int*a,int n,int x,int &sum) sum=0; for(int i=0;in;i+) sum= (9) if(x=ai) (10) return-1; void main() int data=12,31,16,28,7,29,35,18,40; int x,s,index; coutx; index=fs( (11) ); if( (12) ) coutx”不在數(shù)組中不在數(shù)組中”endl;
17、 else cout (13) ”是數(shù)組中下標為是數(shù)組中下標為”index“的的元素。元素?!?; cout“數(shù)組中前數(shù)組中前” (14) ”項之和為:項之和為:”s endl; return; 答:答: sum+ai; return i; data,sizeof(data)/4,x,s或或data,9,x,s index=-1 dataindex或或x index+11. 編寫程序,輸入編寫程序,輸入2個字符串分別存入兩個一維個字符串分別存入兩個一維字符數(shù)組,將其連接后存入第字符數(shù)組,將其連接后存入第3個一維字符數(shù)組個一維字符數(shù)組后輸出,要求用指向一維數(shù)組的指針變量來處后輸出,要求用指向一維數(shù)
18、組的指針變量來處理其中的字符,不能使用字符串函數(shù)理其中的字符,不能使用字符串函數(shù)strcat。#include #include void catlog(char *s1, char *s2,char *s3)while(*s3+=*s1+);s3-;while(*s3+=*s2+); void main() char s1=I am a student,;char s2=You are a teacher!;int n=strlen(s1)+strlen(s2)+1;char *p=new char n;catlog(s1,s2,p);coutpendl;delete p; 2. 設計一個通
19、用的插入排序函數(shù),參數(shù)為設計一個通用的插入排序函數(shù),參數(shù)為指向?qū)嵭偷闹羔槪ㄖ赶蛞粋€已經(jīng)排序的數(shù)指向?qū)嵭偷闹羔槪ㄖ赶蛞粋€已經(jīng)排序的數(shù)組)和一個實數(shù),將該實數(shù)插入到已經(jīng)排組)和一個實數(shù),將該實數(shù)插入到已經(jīng)排好序的數(shù)組中,使得插入后數(shù)組仍然有序。好序的數(shù)組中,使得插入后數(shù)組仍然有序。主函數(shù)輸入一個數(shù)組和一個實數(shù),調(diào)用插主函數(shù)輸入一個數(shù)組和一個實數(shù),調(diào)用插入排序函數(shù)插入實數(shù),并輸出插入后的數(shù)入排序函數(shù)插入實數(shù),并輸出插入后的數(shù)組。組。 #include void insert(float * &p,float x,int n) float *p1; if(n=1)p1=new floatn;p1n-1=x;p=p1;return; else p1=new floatn; for(int i=n-2;i=0;i-) if(x=pi)for(int j=0;j=i;j+)p1j=pj;p1i+1=x;for(j=i+2;jn;j+)p1j=pj-1;delete p; p=p1;return ; for(i=1;in;i+)p1i=pi-1; p10=x; delete p; p=p1; return; void main()float *p;float x;int n=0;coutx;while(x!=-1) n+; insert(p
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026上半年安徽事業(yè)單位聯(lián)考五河縣招聘20人備考題庫及答案詳解1套
- 2026云南昆明市云南技師學院信息技術工程學院編制外教師招聘22人備考題庫及答案詳解(奪冠系列)
- 如何同化子公司財務制度
- 餐廳財務制度管理方案
- 2026年度河南省省直機關公開遴選公務員159人備考題庫及參考答案詳解一套
- 星空影城財務制度
- 水管財務制度
- 管網(wǎng)工程財務制度
- 建筑工程上財務制度
- 花卉行業(yè)財務制度
- 鐵路物資管理培訓課件
- 測繪服務收費標準更新及執(zhí)行指南
- 2025年國家能源集團有限責任公司招聘筆試面試真題題庫(含答案)
- (人教A版)必修一高一數(shù)學上冊同步分層練習1.3 并集與交集第1課時(原卷版)
- 完整銀行貸款合同5篇
- 2025版地暖施工項目進度管理與結(jié)算合同
- 2025年事業(yè)單位公開招聘考試(D類)《職業(yè)能力傾向測驗》新版真題卷(附詳細解析)
- 2025年尾礦綜合利用技術突破與生態(tài)修復技術協(xié)同創(chuàng)新研究
- 評定與追溯管理制度
- 武漢科技大學c語言期末試卷及答案
- T/CAS 612-2022碳中和管理體系要求
評論
0/150
提交評論