整型指針與數(shù)組_第1頁
整型指針與數(shù)組_第2頁
整型指針與數(shù)組_第3頁
整型指針與數(shù)組_第4頁
整型指針與數(shù)組_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

指針與變量2-1inta,*p;a=3;p=&a;32000ap2000printf("%d,%d",a,*p);4,44a=4;第1頁/共45頁第一頁,共46頁。指針與變量2-2inta,*p;a=3;p=&a;32000ap2000printf("%d,%d",a,*p);4,44*p=4;第2頁/共45頁第二頁,共46頁。兩個指針變量2-1inta=3,b=4;int*p,*w;p=&a;w=&b;32000ap2000printf("%d,%d,%d,%d",a,b,*p,*w);4,4,4,44*p=*w;43000bw3000第3頁/共45頁第三頁,共46頁。兩個指針變量2-2inta=3,b=4;int*p,*w;p=&a;w=&b;32000ap2000printf("%d,%d,%d,%d",a,b,*p,*w);3,4,4,4p=w;43000bw30003000第4頁/共45頁第四頁,共46頁。習題演練inta

=

1,b

=

3,c

=

5;int*p,

*w,

*s;p

=

&a,w

=

&b,s

=

&c;1ap5,9,2,9,5,93bw5cs(*p)++;2*w=*p,*p=*s,*s=*w;252s=w,w=p,p=s;*p=*w+*s+b;9第5頁/共45頁第五頁,共46頁。為指針變量賦初值inta=3,*p;p=&a;inta=3,*p;p=&a;p=3;a=p;*p=&a;32000ap2000第6頁/共45頁第六頁,共46頁。指針與賦值2-1[2004.9.30]以下程序的運行結果是inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d%d%d%d",*p,*q,a,b);8778[2006.9.30]以下程序的運行結果是

inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d",c);3第7頁/共45頁第七頁,共46頁。指針與賦值2-2[2003.4.29]若有以下定義和語句

inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;

則以下選項中錯誤的語句是

A)*q=0;B)w=p;C)*p=a;D)*p=*w;[2007.4.29]設已有定義:floatx;則以下對指針變量p進行定義且賦初值的語句中正確的是

A)float*p

=

1024;

B)int*p

=

(float)x;C)float*p

=

&x;D)floatp

=

&x;第8頁/共45頁第八頁,共46頁。scanf與指針[2004.4.20]設有定義:inta,*p=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是

A)scanf("%d",p);B)scanf("%d",a);C)scanf("%d",&p);D)scanf("%d",*p);[2006.4.24]設有定義:double*p,

a;

則以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是

A)*p=&a;scanf("%1f",

p);

B)*p=&a;scanf("%f",

p);

C)p=&a;scanf("%1f",

*p);

D)p=&a;scanf("%1f",

p);第9頁/共45頁第九頁,共46頁。scanf與指針[2010.9.25]以下程序段完全正確的是

A)int*p;scanf("%d",&p);

B)int*p;scanf("%d",p);

C)intk,*p=&k;scanf("%d",p);

D)intk,*p;*p=&k;scanf("%d",p);第10頁/共45頁第十頁,共46頁。輸出最大值[2007.4.15]利用指針指向三個整型變量,通過指針找出三個數(shù)中的最大值并輸出intx,y,z,max,*px,*py,*pz,*pmax;scanf("%d%d%d",&x,&y,&z);px=&x;py=&y;pz=&z;pmax=&max;

____________;if(*pmax<*py)*pmax=*py;if(*pmax<*pz)*pmax=*pz;printf("max=%d",max);*pmax=*px第11頁/共45頁第十一頁,共46頁。數(shù)組與地址120003520042008a[0]a[1]a[2]=

2000a數(shù)組代表類型相同、連續(xù)存放連續(xù)數(shù)組名代表地址地址數(shù)組名代表常量常量三個代表第12頁/共45頁第十二頁,共46頁。數(shù)組恒等式for(i=0;i<3;i++)1200035201a20042008printf("%d,",a[i]);*(a+i)=2000數(shù)組恒等式:a[i]

<=>

*(a+i)第13頁/共45頁第十三頁,共46頁。指針與數(shù)組for(i=0;i<3;i++)1200035201a20042008printf("%d,"=2000pint*p=a;,a[i]);,p[i]);*(p+i)第14頁/共45頁第十四頁,共46頁。指針就是數(shù)組數(shù)組名是指針指針是地址一個中心、兩個基本點第15頁/共45頁第十五頁,共46頁。指針是數(shù)組1200035201a20042008printf("%d",p[0]);=2000pp=a+1;printf("%d",*(p+0));printf("%d,%d",p[1],p[-1]);第16頁/共45頁第十六頁,共46頁。[2009.3.29]設有定義:inta[5],*p=a;

則對a數(shù)組元素的正確引用是

A)*(a+3)

B)*&a[5]

C)*(p+5)

D)p+3數(shù)組恒等式[2010.3.28]設有定義:doublea[5],*p=a;以下能夠代表數(shù)組元素a[3]的是

A)*(p+3)B)(*p)[3]C)*p[3]D)*p+3[2006.4.36]以下程序運行后s的值是

inti,s

=

0,t[]

=

{1,2,3,4,5,6,7,8,9};for(i

=

0;i

<

9;i

+=

2)s

+=

*(t

+

i);25第17頁/共45頁第十七頁,共46頁。指針就是數(shù)組2-1[2003.4.32]以下程序的運行結果是

intx[8]

=

{8,7,6,5,0,0},

*p;p=

x

+

3;

printf("%d",p[2]);0[2004.4.30]以下程序執(zhí)行后,b的值是

inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b=p[5];[2006.9.26]以下程序的運行結果是

inta[5]={1,3,5,7,9};a+=2;printf("%d",a[0]);A)1B)3C)5D)程序出錯9第18頁/共45頁第十八頁,共46頁。指針就是數(shù)組2-2[2005.9.37]以下程序運行后y的值是

inta[

]={2,4,6,8,10},y=0,x,*p;p=&a[1];

for(x=1;x<3;x++)

y+=p[x];14[2005.9.31]以下程序的運行結果是

inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],*q=p+2;

printf("%d\n",*p+*q);

A)16

B)10

C)8

D)6第19頁/共45頁第十九頁,共46頁。指針與賦值[2004.9.38]設已有定義:inta[10],

*p;

則合法的賦值語句是

A)p

=

100;

B)p

=

a[5];

C)p

=

a[2]

+

2;

D)p

=

a

+

2;[2004.9.33]以下程序的運行結果是

inta[]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=a+5,*q=NULL;*q=*(p+5);printf("%d,%d\n",*p,*q);A)6,11B)5,10C)6,6D)運行有錯第20頁/共45頁第二十頁,共46頁。指針自增1200035201a20042008for(i=0;i<3;i++)=2000pp=a;{printf("%d",*p);p++;}printf("%d",*p++);ppp2012p[i]*(p+i)a[i]*(a+i)*a++數(shù)組名代表常量常量第21頁/共45頁第二十一頁,共46頁。指針與自增8-11301app=a;k=*p++;pk=1,*p=3,a[0]=1,a[1]=3<=>

k=*(p++);

右結合1k<=>k=*p,p++;第22頁/共45頁第二十二頁,共46頁。指針與自增8-21301app=a;k=*++p;pk=3,*p=3,a[0]=1,a[1]=3<=>

k=*(++p);

右結合3k<=>++p,k=*p;第23頁/共45頁第二十三頁,共46頁。指針與自增8-31301app=a;k=(*p)++;k=1,*p=2,a[0]=2,a[1]=31k<=>k=*p,(*p)++;2第24頁/共45頁第二十四頁,共46頁。指針與自增8-41301app=a;k=++(*p);k=2,*p=2,a[0]=2,a[1]=32k<=>++(*p),

k=*p;2第25頁/共45頁第二十五頁,共46頁。指針與自增8-51301app=a;k=++(*p++);k=2,*p=3,a[0]=2,a[1]=32k<=>++(*p),

k=*p,p++;2p第26頁/共45頁第二十六頁,共46頁。指針與自增8-61301app=a;k=(*++p)++;k=3,*p=4,a[0]=1,a[1]=43k<=>++p,

k=*p,(*p)++;4p第27頁/共45頁第二十七頁,共46頁。指針與自增8-71301app=a;k=(*p++)++;k=1,*p=3,a[0]=2,a[1]=31k<=>k=*p,(*p)++,p++;2p右結合第28頁/共45頁第二十八頁,共46頁。指針與自增8-81301app=a;k=++(*++p);k=4,*p=4,a[0]=1,a[1]=44k<=>++p,++(*p),k=*p;4p右結合第29頁/共45頁第二十九頁,共46頁。地址自增比較1301app=a;k=*p++;pk=1,*p=3<=>k=

*(p++);1kp=a;k=1,*p=2k=(*p)++;21301ap1k第30頁/共45頁第三十頁,共46頁。地址與自增小結k=*p++;<=>k=*p,p++;k=*++p;<=>++p,k=*p;k=(*p)++;<=>k=*p,(*p)++;k=++(*p);<=>++(*p),k=*p;k=(*++p)++;<=>++p,k=*p,(*p)++;k=++(*p++);<=>++(*p),k=*p,p++;k=(*p++)++;<=>k=*p,(*p)++,p++;k=++(*++p);<=>++p,++(*p),k=*p;第31頁/共45頁第三十一頁,共46頁。[2005.4.34]以下程序的運行結果是

inta[]={1,2,3,4,5},*p;for(p=a;p<a+5;p++)printf("%d",*p);指針與自增4-112345[2008.4.11]以下程序的運行結果是

inta[5]={2,4,6,8,10},*p=a;

p++;printf("%d",*p);4[例]以下程序的運行結果是

inta[5]={1,3,0,7,9},*p=a;while(*p)printf("%d",*p++);13第32頁/共45頁第三十二頁,共46頁。[2004.9.32]intx[4]

=

{2,4,6,8},*p

=

x,i;以下不能依次輸出x數(shù)組中4個元素值的是

A)for(i=0;i<4;i++)printf("%2d",*(p++));B)for(i=0;i<4;i++)printf("%2d",*(p+i));C)for(i=0;i<4;i++)printf("%2d",*p++);D)for(i=0;i<4;i++)printf("%2d",(*p)++);指針與自增4-2第33頁/共45頁第三十三頁,共46頁。[2008.9.9]以下程序的運行結果是

inta[]={1,3,5,7,9,11,13,15},j;int*p=a+5;for(j=3;j;j--){switch(j){case1:

case2:printf("%d",

*p++);break;case3:printf("%d",

*(--p));}}指針與自增4-39911第34頁/共45頁第三十四頁,共46頁。[2010.9.14]以下程序的功能是:借助指針變量找出數(shù)組元素中最大值所在的位置并輸出該最大值。請在輸出語句中填寫代表最大值的輸出項。inta[10],*p,*s;for(p=a;p-a<10;p++)scanf("%d",p);for(p=a,s=a;p-a<10;p++)if(*p>*s)s=p;printf("max=%d",

);指針與自增4-4*s第35頁/共45頁第三十五頁,共46頁。[2003.9.49]以下程序的運行結果是

inta[3][3],*p=&a[0][0],i;for(i=0;i<9;i++)p[i]=i+1;printf("%d",a[1][2]);指針與二維數(shù)組[2005.4.29]以下程序的運行結果是

inta[3][3],*p=&a[0][0],i;for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);3456第36頁/共45頁第三十六頁,共46頁。邏輯恒等式邏輯恒等式:e!=0

<=>

eif(e!=0)while(e!=0)for(;e!=0;)e!=0?~:~1!=0<=>10!=0<=>03!=0<=>3第37頁/共45頁第三十七頁,共46頁。[2007.9.21]與(E)?(i++):(j--)中E等價的是A)E==0B)E!=0C)E==1D)E!=1邏輯恒等式[2006.9.16]與條件表達式(x-y)?(x++):(y++)中的表達式(x-y)等價的是

A)(x-y>0)B)(x-y<0)C)(x-y<0||x-y>0)D)(x-y==0)[2008.9.17]與(w)?(-x):(++y)中w等價的是A)w==1B)w==0C)w!=1D)w!=0第38頁/共45頁第三十八頁,共46頁。一維數(shù)組地址與值a[0]a[1]a[2]a&a[0],a,a+0&a[2],a+2地址a[0],*a,*(a+0)a[2],*(a+2)數(shù)值200020042008第39頁/共45頁第三十九頁,共46頁。四項基本原則二維數(shù)組兩次取值是數(shù)值,其余情況是地址。二維數(shù)組在一次取值之前加行,一次取值之后加列。"*"與數(shù)組名緊密相連,表示第0行。"*"等價于"[]",都表示取值。第40頁/共45頁第四十頁,共46頁。二維數(shù)組的地址&a[2][3],*(a+2)+3,a[2]+3

地址&a[2][0],

a+2,*(a+2),*(a+2)+0,a[2],a[2]+0地址&a[0][3],*a+3,*(a+0)+3,a[0]+3

地址&a[0][0],a,a+0,*a,*(a+0),*a+0,*(a+0)+0,a[

溫馨提示

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

評論

0/150

提交評論