《C++指針》習(xí)題參考答案_第1頁
《C++指針》習(xí)題參考答案_第2頁
《C++指針》習(xí)題參考答案_第3頁
《C++指針》習(xí)題參考答案_第4頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.C+指針習(xí)題學(xué)號(hào)姓名一、 選擇題1、有定義如下: int a5, *p;則下列描述錯(cuò)誤的是BA表達(dá)式 p=p+1是合法的B表達(dá)式 a=a+1 是合法的C表達(dá)式 p-a 是合法的D表達(dá)式 a+2 是合法的2、函數(shù)定義為 Fun(int &i), 變量定義 n=100, 則下面調(diào)用該函數(shù)正確的是 CA Fun(20)B Fun(20+n)CFun(n)DFun(&n)3、若有說明 int I,j=2,*p=&i;則能完成 i=j賦值功能的語句是BA i=*p;B*p=*&j;C i=&j;Di=*p;4、設(shè)已有定義 char *st = "how

2、 are you"下列程序中正確的是AA char a11,*p;strcpy(p=a+1,&st4);B char a11;strcpy(+a,st);C. char a11;strcpy(a,st);D. char a,*p;strcpy(p=a1,st+2);5、設(shè)有數(shù)組 int array34,下列引用數(shù)組元素的方法中錯(cuò)誤的是DA arrayijB*(*(array+i)+j)C. *(arrayi+j)D. *(array+i*4+j)6、有定義 int s45,(*ps)5;ps=s;則對(duì)數(shù)組 s 中元素引用的正確的是 CA ps+1B*(ps+3)C. ps02

3、D. *(ps+1)+37、設(shè)有說明 int b44,以下不能等價(jià)表示元素b33的是 :BA *&b33B(*(*(b+3)+3)C*(b3+3)D*(*(b+3)+3)8、若有說明 "char *s="234","5678","9012","3456","7890"",則表達(dá)式 *s1> *s3比較的是BA "1234" 和 "9012" B '5' 和'3'C'l'和&#

4、39;9'D"5678" 和"3456"9、設(shè)語句 "char *s="Student","Teacher","Father","Mother",*ps=s2;",執(zhí)行語句 "cout<<*s1<<','<<ps<<','<<*ps<<'n'",則輸出結(jié)果是AA T,Father,FB Teacher,F,Fa

5、therC Teacher,Father,FatherD語法錯(cuò)無輸出10、設(shè)有以下說明語句:char sl20="hello",s220="china"const char *ptr=s1; 以下語句中不符合 C+語法規(guī)則的語句是 DA strcpy(s2,ptr);B ptr=s2;Cptr=ptr+4;D*ptr=*s2;11、設(shè)s 和 t分別為指向兩個(gè)長(zhǎng)度相同的字符數(shù)組的指針,則循環(huán)語句while( C);可以正確實(shí)現(xiàn)字符串t 到 s 的完整復(fù)制功能。A *s=*t&&*t!=OB s+=t+&&*t!=0.C *s

6、+=*t+D*(+s)=*(+t)12、設(shè)有說明: char s110,*s2=s1;則以下正確的語句是CAs1= ”computer ”Bs110= ”computer ”Cs2=”computer ”D*s2=”computer ”13、設(shè)有說明: int a4=1,2,3,4,5,6,7,8,9,10,*p=*(a+1);以下可得數(shù)值為9 的表達(dá)式是BA p+=3,*p+Bp+=4,*(p+)C p+=4,*+pDp+=4,+*p14、設(shè)有說明: int a44=1,2,3,4,5,6,7,8,9,10,*p=a1,(*q)4=a;則以下不能訪問數(shù)值為7 的數(shù)組元素的表達(dá)式是AA *(a

7、+1)+2B p2C *(a1+2)D q12二、填空題1、在如下定義中float a =100,200,300; float *p =&a0, &a1,&a2;語句 cout<<*p2的輸出是3002 、 若有 說明 語句char*name="newspaper"則cout<<name+2 的輸 出是wspaper ,cout<<*(name+3)的輸出是s。3、int a5=100, 200,300, 400, 500, *p1=&a0;則表達(dá)式 (*p1)+ 的值是100。4、有如下定義中 char

8、*str =“ Follow me ” , “BASIC” , “Great Wall ”,“ Department ” 中輸出” BASIC”字符串的語句是: cout<< str15、執(zhí)行以下語句: int a5=25, 14,27,18 ,*p=a;(*p)+;則 *p 的值為26,再執(zhí)行語句: *p+; 則 * p的值為146、設(shè)有說明語句char s="123t45600089", *p=s; 執(zhí)行以下兩個(gè)語句:cout<<*(p+5)<<'n'cout<<(p+5)<<'n

9、9;則輸出為5和56。7、設(shè)有如下函數(shù)定義。如果在主函數(shù)中有語句cout<<f( “goodbye! ”);則輸出9int f(char *s)char *p=s;while(*p+);return(ps);8、執(zhí)行以下程序后, y 的值是10int main()int a4=2,4,6; int y=0,*p=a;for(;*p+;)if(*p)y+=*p;cout<<y<<endl;9、三、程序閱讀題1、 寫出如下程序的運(yùn)行結(jié)果。char s = "abcdefgh" ,*p = s;p += 3;cout<<strlen

10、(strcpy(p,"ABCD")<<endl;/4cout<<s<<endl;/abcABCD.2、 寫出如下程序的運(yùn)行結(jié)果。char *p = "abcdefgh",*r;long *q = (long *)p;q+;r = (char *)q;cout<<r<<endl;/efgh3、 寫出如下程序的運(yùn)行結(jié)果。void sub(int x,int y,int *z)*z = y - x;int main()int a,b,c;sub(10,5,&a);sub(7,a,&b)

11、;sub(a,b,&c);cout<<a<<'t'<<b<<'t'<<c<<endl;/-5 -12 -7return 0;4、 寫出如下程序的運(yùn)行結(jié)果。void ss(char *s,char t)while(*s)if(*s=t)*s = t - 'a' + 'A's+;int main()char str1100="abcddfefdbd",c='d'ss(str1,c);cout<<str1<

12、;<endl; /abcDDfefDbDreturn 0;5、void swap(int *p1, int *p2) int *p;p=p1; p1=p2; p2=p; cout<<*p1<<'t'<<*p2<<endl;int main(void) int a=5, b=9;.swap(&a, &b);cout<<a<<'t'<<b<<endl;return 0;程序第一行輸出9 5,第二行輸出5 96、void exchange(int *x

13、, int *y)int temp;temp=*x;*x=*y;*y=temp;void main(void)int data8=15,12,20,0,8,-5,17,1;for(int i=0;i<=7;i+)for (int j=i;j<=7;j+)if(datai>dataj)exchange(&datai, &dataj);cout<<datai<<endl;函數(shù) exchange 的作用是: 交換指針變量指向的數(shù),&datai表示的是:datai的地址,程序的輸出結(jié)果是:-5 0 1 8 12 15 17 207、寫出

14、如下程序的輸出結(jié)果void invert(char*a,int x,int y)char t,*p,*q;p=a+x;q=a+y;while(p<q)t=*p;*p=*q;*q=t;p+;q-;int main()char dt13="GoodBookNice"int i=0,n=1;while(i<8) invert(dt,i,i+5);.cout<<" 第"<<n+<<"次計(jì)算: "<<endl;for(int j=i;j<=i+5;j+)cout<<d

15、tj<<','cout<<endl;i+=6;cout<<" 共執(zhí)行了 "<<i<<" 次計(jì)算。 "<<endl;return 0;第 1 次計(jì)算: o,B,d,o,o,G,第 2 次計(jì)算: e,c,i,N,k,o,共執(zhí)行了 12 次計(jì)算8、寫出如下程序的運(yùn)行結(jié)果。char ch25="6934","8254"char *p2;int i,j,s=0;for(i=0;i<2;i+)pi=chi;for(i=0;i<2

16、;i+)for(j=0; pij>'0'&&pij<='9'j+=2)s+=10*(pij-'0');cout<<s;/2209、寫出如下程序的運(yùn)行結(jié)果。int sum(int p,int *w,int n)int i;int s=0,m=0;for(i=0;i<n;i+) s+=pi; if(pi>m)m=pi;*w=i;return s;int main()int aa33=2,4,8,7,5,3,2,6,9;int row3,col3=0,0,0;.for(int i=0;i<3;i

17、+)rowi=sum(aai,col+i,3);cout<<"row("<<i<<")="<<rowi<<endl;for(i=1;i<3;i+)cout<<" 第"<<i<<" 行位置: "<<coli<<endl;return 0;row(0)=14row(1)=15row(2)=17第1行位置:0第2行位置:210、寫出如下程序的運(yùn)行結(jié)果。double fl(double x)retu

18、rn x+x;double f2(double(*f)(double x),int a)int x;double sum=0;for(x=a;x<=a+1;x+)sum+=f(x) * f(x);return sum;int main()double sum;for(int i=1;i<5;i+)sum=f2(fl, i);cout<<sum<<endl;205210016411、以下程序運(yùn)行后,輸出是 3 3 2 , 如果去掉 A行的 continue 語句,則輸出 3 4 3.char *s="121"int k=0,a=0,b=0;

19、do k+;if(k%2=0) a+=sk-'0'continue; /Aif(sk) b+=sk-'0'a+=sk-'0'while(sk);cout<<k<<'t'<<a<<'t'<<b<<'n'四、程序填空題1、下面程序的功能是:主函數(shù)定義了一個(gè)整型數(shù)組 data ,從鍵盤上輸入一個(gè)數(shù)x,調(diào)用函數(shù) fsum() 斷該數(shù) x 是否在數(shù)組 data 中。如果 x 在數(shù)組中,則得到 x在 data 中第一次出現(xiàn)時(shí)的下標(biāo)值 p,同

20、時(shí)求出下標(biāo)從 0 到 P 之間所有元素之和,函數(shù)返回 x 的下標(biāo)值 p;否則, x 不在數(shù)組中,函數(shù) fsum() 返回 -1 ,主函數(shù)提示相應(yīng)信息。主函數(shù)輸出計(jì)算結(jié)果。請(qǐng)完善程序。#include <iostream>using namespace std;int fs(int *a,int n,int x,int &sum)sum=0;for(int i=0;i<n;i+)sum =sum + ai;if(x=ai)return i;return -1;int main()int data=12,31,16,28,7,29,35,18,40;int x,s,ind

21、ex;cout<<" 請(qǐng)輸入要找的數(shù): "cin>>x;index=fs( data, 9,x,s);if( index=-1)cout<<x<<" 不在數(shù)組中 "<<endl;elsecout<<x<<" 是數(shù)組中下標(biāo)為 "<<index<<" 的元素。 "cout<<" 數(shù)組中前 "<<index<<"項(xiàng)之和為: "<<s<<endl;return 0;.2、下面程序的功能是:從輸入的一行字符串中求出最長(zhǎng)英文單詞長(zhǎng)度及最長(zhǎng)單詞個(gè)數(shù),并輸出長(zhǎng)度和個(gè)數(shù), 單詞之間只能用一個(gè)或多個(gè)空格隔開。 如輸入字符串” I ama student ”時(shí),最長(zhǎng)單詞的長(zhǎng)度為 7,個(gè)數(shù)為 1。而輸入字符串” word body book try ”時(shí),最長(zhǎng)單詞的長(zhǎng)度為 4,個(gè)數(shù)為 3,即有三個(gè)單詞均為最長(zhǎng)單詞。#include<iostream.h>int lenofLongest(char *s,int &num)int maxlen=0,curlen=0;n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論