版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、學(xué)習(xí)必備歡迎下載六、指針183. 下程序的運行結(jié)果是(A )。void ast (int x,int y,int *cp,int *dp) *cp=x+y; *dp=x-y;main() int a=4,b=3,c,d; ast(a,b,&c,&d);printf("%d,%dn",c,d);A. 7,1B. 1,7C. 7,-1D. c、 d 未賦值,編譯出錯執(zhí)行ast(a,b,&c,&d); 調(diào)用 ast 函數(shù),把 a 傳遞給 x,b 傳遞給 y,c的地址傳遞給 cp,d 的地址傳遞給 dp.因為 cp=&c(cp 的值為 c 變
2、量的地址 ),所以 *cp 等價于 c,執(zhí)行 *cp=x+y ;后 c=4+3=7同理,因為 dp=&d, 所以 *dp 等價于 d,執(zhí)行 *dp=x-y ;后 d=4-3=1執(zhí)行printf("%d,%dn",c,d); 后輸出 7,1184. 有以下語句:int a5=0,1,2,3,4,5,i;int *p=a;設(shè) 0 i 5,對 a 數(shù)組元素不正確的引用是(C )。A. *(&ai)B. ap-aC. *(*(a+i)D. pi1.指針運算符取地址運算符 &: 其功能是取變量的地址。學(xué)習(xí)必備歡迎下載2.取內(nèi)容運算符 *: 用來表示指針變量所指
3、的變量。在* 運算符之后跟的變量必須是指針變量。A .*(&ai)等價于 aiB. ap-a等價于 a0C.因為 *(a+i)等價于 ai所以*(*(a+i) 等價于 *(ai) ,又因為在 * 運算符之后跟的變量必須是指針變量,我們斷定 *ai 是錯的,所以 * (*(a+i) )也是錯。D.因為 P=a,所以 Pi等價于 ai185.若有定義int *p1,*p2;則錯誤的表達(dá)式是(A )。A. p1+p2B. p1-p2C. p1<p2D. p1=p2兩個指針變量可以相減(結(jié)果表示介于二者之間元素的個數(shù)),可以比較大小, 但不能相加。186. 以下敘述錯誤的是( D )。A
4、. 存放地址的變量稱為指針變量B. NULL 可以賦值給任何類型的指針變量C. 一個指針變量只能指向類型相同的變量D. 兩個相同類型的指針變量可以作加減運算D 兩個相同類型的指針變量相加沒有意義,所以不可以作加運算,所以187.以下程序段運行后,表達(dá)式*(p+4) 的值為(B )。D 錯。char a="china"char *p;p=a;A.'n'B.'a'C.存放 'n' 的地址D.存放 'a' 的地址a 是一維數(shù)組名,表示數(shù)組首地址,即等價于&a0因為 p=a; 即 p=&a0 ,所以 *
5、p 等價于 a0因為 p=a; 所以 p+i 等價于 a+i, 而 a+i 是 ai的地址, * ( a+i)等價于 ai 所以 * ( p+i )等價于 ai*(p+4)=a4=學(xué)習(xí)必備歡迎下載188.以下程序段運行后,表達(dá)式*(p+) 的值為(A )。char a5="work"char *p=a;A. 'w'B. 存放 'w' 的地址C. 'o'D. 存放 'o' 的地址printf( "%3dn", (*p)+ );printf( "%3dn", *p+ );pr
6、intf( "%3dn", *+p );printf( "%3dn", +*p );*(p+)的值等于 *p , 然后 p+因為 p 等于 a 所以 *p 等于 a0/* 先輸出 *p ,再進行 (*p)+ */* 先輸出 *p ,再進行p+ */* 先進行 +p,再輸出 *p */* 先進行 +(*p) ,再輸出 *p */189.若有定義:int *p,k=4; p=&k;以下均代表地址的是(C )。A.k, pB.&k, &pC.&k, pD.k, *pA k 不是地址B k,p 都是變量所以&k, &
7、;p 都代表地址 (&p 是指針變量p 的地址C &k 和 p 都是代表變量k 的地址,所以C 正確D K,*p 都等于 4,都不是地址190. 若有定義: double *q,p; 則能給輸入項讀入數(shù)據(jù)的正確程序段是(),所以 B 也是正確的B )。A. q=&p;scanf("%lf",*q);B. q=&p;scanf("%lf",q);C. *q=&p;scanf("%lf",q);D. *q=&p;scanf("%lf",*q);根據(jù)課本P37,調(diào)用 sca
8、nf 函數(shù)的語法格式為:scanf(格式控制字符串,地址列表);所以A. *q 不是地址,所以A 錯B.因為 q=&p ,即 q 等于 p 的地址,所以C.D. *q=&p錯誤B 正確191.若已定義 : int q=5;對int *p=&q; 和p=&q;這兩條語句理解錯誤的是(C )。A. 是對 p 定義時初始化 ,使 p 指向 q;而是將 q 的地址賦給 pB. 和中的 &q 含義相同 ,都表示給指針變量賦值C. 是對 p 定義時初始化 ,使 p 指向 q;而是將 q 的值賦給 p 所指向的變量D.和的執(zhí)行結(jié)果都是把q 的地址賦給pint *p=&
9、amp;q;是對 p 定義時初始化,使 p 的值等于q 的地址 p=&q; 是將 q 的地址賦值給 p.C 中理解錯誤。應(yīng)該是將q 的地址賦值給p.192. 下面語句錯誤的是( A )。A. int *p; *p=20;學(xué)習(xí)必備歡迎下載B. char *s="abcdef" printf("%sn",s);C. char *str="abcdef" str+;D. char *str;str="abcdef"見課本 P153,未經(jīng)賦值的指針變量其值是隨機的,可能指向系統(tǒng)或其他已使用的數(shù)據(jù)區(qū),對它進行寫入操作
10、將可能出現(xiàn)不可預(yù)知的情況,嚴(yán)重時將造成系統(tǒng)混亂,甚至死機。A 沒有對 P 賦值,就執(zhí)行 *p=20; 對 p 所指向的單位進行寫操作,可能會造成不可預(yù)知的錯誤,所以 A 錯。193.若有定義int a23,*p=a; ,則能表示數(shù)組元素a12 地址的是(D )。A. *(a1+2)B. a12C. p5D. p+5A.a1 是第 1 行的首地址(行號從0 開始計算),也是第 1 行的首個元素(第0 個元素)的地址,即 &a10a1+2是表示從 a10 開始往移動2 個位置,即 a12 的地址,所以 * ( a1+2 )等價于 *(&a12)等價于 a12, 所以不能選 A 。B
11、.顯然是錯的D. 因為 p=a,&aij 等價于 p+i*3+j 其中 3 是數(shù)組 a 的列數(shù)所以 &a12 等價于 p+1*3+2, 即 p+5 。所以答案選D因為 p=a,即 p 等于 a00 的地址(指向 a00 ),所以 p+5 是從 a00 開始往后偏移5 個位置元素的地址,即p+5 是 a5 的地址a00a01a02a10a11a12a20 .pp+1p+2p+3p+4p+5p+6.194.若已定義 : int a=5,*p; 且 p=&a;則以下表示中不正確的是(B )。A. &a=&(*p)B. *(&p)=aC. &(*
12、p)=pD. *(&a)=a因為p=&a; 所以 *p=a,所以B 錯195.若有以下程序段,則敘述正確的是(C )。char s="computer"char *p;p=s;A.s 和 p 完全相同B.數(shù)組 s 的長度和 p 所指向的字符串長度相等C.*p 與 s0相等D.數(shù)組 s 中的內(nèi)容和指針變量p 中的內(nèi)容相等A.s 是數(shù)組名,代表一個固定的地址(指針常量), s 的值是不能改變的。可以對 p 的進行賦值(p 的值可程序運行過程中可以修改),所以 A 錯。P 的是指針變量,B 數(shù)組長度和字符串長度是兩個不同的概念。數(shù)組長度是所有元素個數(shù),char s
13、="computer" 數(shù)組長度為字符串商都是指字符串中字符的個數(shù)(不包括字符串結(jié)束標(biāo)志是 "computer", 有 8 個字符,所以字符串長度為8所以 B錯9( a8= /0)/0) , p 所指向的字符串學(xué)習(xí)必備歡迎下載C.s 等價于 &s0 , 所以 *p 等價于 s0,所以答案選CD. 數(shù)組 s 中的內(nèi)容 :s0=c,s1=o,.,s7=r,s8=0指針變量 p 中的內(nèi)容是s,即數(shù)組 s 的首地址( &s0 ) ,所以 D 是錯的。196. 以下程序段的運行結(jié)果是(B )。enum weekday aa,bb=2,cc,dd,e
14、e week=ee;printf("%dn",week);A. eeB. 5C. 2D. 4課本 P277week 是枚舉類型變量,它的取值為因為 bb=2,所以 cc=3,dd=4,ee=5以%d 格式輸出 ee,結(jié)果為 5ee,197.若有以下程序段,則不能正確訪問數(shù)組元素a12 的是(A )。int (*p)3;int a3=1,2,3,4,5,6,7,8,9;p = a;A.p1+2B.p12C.(*(p+1)2D.*(*(a+1)+2)P 是指向一維數(shù)組(有因為 p=a; 所以 p1+2所以 A錯3 個元素)的指針變量,詳細(xì)見課本P164 3。等價于 a1+2 ,
15、而 a1+2 等價于 &a12, 所以 p1+2等價于&a12198. 以下程序段的運行結(jié)果是(A )。int a=1,2,3,4,5,6,7,*p=a;int n,sum=0;for(n=1;n<6;n+) sum+=pn+;printf("%d",sum);A. 12B. 15C. 16D. 27因為 p=a,所以pn 等價于 an執(zhí)行 for(n=1;n<6;n+) sum+=pn+;當(dāng) n=1 時 滿足 n<6 所以執(zhí)行循環(huán)體sum=sum+p1=0+2=2, 然后 n 自增 1 兩次 ,n 的值變?yōu)?當(dāng) n=3 時滿足 n<
16、6 所以執(zhí)行循環(huán)體sum=sum+p3=2+4=6, 然后 n 自增 1 兩次 ,n 的值變?yōu)?當(dāng) n=5 時滿足 n<6 所以執(zhí)行循環(huán)體學(xué)習(xí)必備歡迎下載sum=sum+p5=6+6=12, 然后 n 自增 1 兩次 ,n 的值變?yōu)?當(dāng) n=7 時不滿足 n<6 所以結(jié)束循環(huán)。最后 sum 的值為 12。所以答案選 A199. 下面程序的運行結(jié)果是(A )。main( ) int a,b;int *p1=&a,*p2=&b,*t;a=10; b=20;t=p1; p1=p2; p2=t;printf("%d,%dn",a,b);A.10,20B.
17、20,10C.10,10D.20,20因為int *p1=&a,*p2=&b,*t;a=10; b=20;所以 p1 指向變量 a, p2 指向變量 b,這時候 a 等于 10, b 等于 20, *p1等于 10, *p2等于 20執(zhí)行 t=p1; p1=p2; p2=t; 后P1 指向變量 b, p2 指向變量 a,這時候 a 等于 10, b 等于 20, *p1等于 20, *p2等于 10所以答案選 A200. 以下程序段運行后變量 s 的值為( C )。int a=1,2,3,4,5,6,7;int i,s=1,*p;p=&a3;for(i=0;i<3
18、;i+)s*=*(p+i);A. 6B. 60C. 120D. 210p=&a3;p 指向 a3當(dāng) i=0 時s=s*(*(p+0)=s*a3=1*4=4;當(dāng) i=1 時s=s*(*(p+1)=s*a4=4*5=20;當(dāng) i=2 時s=s*(*(p+2)=s*a5=20*6=120;所以最后s=120,答案選C學(xué)習(xí)必備歡迎下載201. 以下程序段運行后變量 ans 的值為( B )。int a=1,2,3,b=3,2,1;int *p=a,*q=b;int k,ans=0;for(k=0;k<3;k+)if(*(p+k)=*(q+k)ans=ans+*(p+k)*2;A. 2B.
19、 4C. 6D. 12int a=1,2,3,b=3,2,1;int *p=a,*q=b;p 指向 a0q 指向 b0執(zhí)行for(k=0;k<3;k+)if(*(p+k)=*(q+k)ans=ans+*(p+k)*2;當(dāng) k=0 時*(p+k)=ak=a0=1*(q+k)=bk=a0=3所以 *(p+k)=*(q+k)不成立,k+, 滿足 k<3,所以進入下一次循環(huán)當(dāng) k=1 時*(p+k)=ak=a1=3*(q+k)=bk=a1=1所以 *(p+k)=*(q+k)成立,執(zhí)行ans=ans+*(p+k)*2;ans=ans+*(p+k)*2=0+ak*2=0+a1*2=0+2*2=
20、4然后 k+, 滿足 k<3,所以進入下一次循環(huán)當(dāng) k=2 時*(p+k)=ak=a2=1*(q+k)=bk=a2=3所以 *(p+k)=*(q+k)不成立,k+, 不滿足 k<3,所以結(jié)束循環(huán)最后 ans=4,答案選B202. 以下程序運行結(jié)果是(A )。main( ) char a="abc",*p; for(p=a;p<a+3;p+)printf("%s",p);A. abcbccB. abcC. cbabaa學(xué)習(xí)必備歡迎下載D. cbaprintf("%s",p);是輸出 p 所指向的字符串a(chǎn)+i 等價于 &
21、amp;aifor(p=a;p<a+3;p+)printf("%s",p);當(dāng) p=a 時p 指向 a0,所以 printf("%s",p); 輸出以地址 &a0 開始的字符串,即輸出”abc”當(dāng) p=a+1 時p 指向 a1,所以 printf("%s",p); 輸出以地址 &a1 開始的字符串,即輸出”bc”當(dāng) p=a+2 時p 指向 a2,所以 printf("%s",p); 輸出以地址 &a2 開始的字符串,即輸出 ”c” 所以最后輸出結(jié)果為: abcbcc,答案選 A203.
22、 以下程序的輸出結(jié)果是(B )。#include<stdio.h>void main()int i;char *s="ABCD"for(i=0;i<3;i+)printf("%sn",s+i);A. CD BCD ABCDB. ABCD BCD CDC. AB ABC ABCDD. ABCD ABC ABs+i 第 i 個字符的地址執(zhí)行for(i=0;i<3;i+)printf("%sn",s+i);當(dāng) i=0 時printf("%sn",s+i);輸出 ”ABCD ”,然后回車換行當(dāng) i=
23、1 時printf("%sn",s+i);輸出 ”BCD ”,然后回車換行當(dāng) i=2 時printf("%sn",s+i);輸出 ”CD ”,然后回車換行所以答案選B學(xué)習(xí)必備歡迎下載204. 以下程序的輸出結(jié)果是(B )。#include <stdio.h>void main()char *p="ABCDE",*q=p+3;printf("%cn",q-2);A. AB. BC. CD. Dqi 等價于 * (q+i )所以 q-2等價于 *(q-2)因為 q=p+3 ,所以 *(q-2) 等于 *(p
24、+3-2) 即 * (p+1 ) 即 B答案選 B205. 下面程序執(zhí)行時,若輸入 5 4 3 2 1<回車 >,則輸出為: B #include <stdio.h>#define N 5 void main() int aN;int *p=a; while(p<a+N)scanf("%d",p+);while(p>a)printf("%d ",*(-p);A. 54321B. 12345C. 34512D. 32154int *p=a;p 指向 a0, while(p<a+N)scanf("%d&qu
25、ot;,p+);第一次循環(huán):scanf("%d",p+); 把 5賦值給 a0,然后 p+, (p 值變?yōu)?a+1),p 指向 a1第二次循環(huán):scanf("%d",p+); 把 4賦值給 a1,然后 p+, (p 值變?yōu)?a+2),p 指向 a2第三次循環(huán):scanf("%d",p+); 把 3賦值給 a2,然后 p+, (p 值變?yōu)?a+3),p 指向 a3第四次循環(huán):scanf("%d",p+); 把 2賦值給 a3,然后 p+, (p 值變?yōu)?a+3),p 指向 a4第五次循環(huán):scanf("%d
26、",p+); 把 1 賦值給 a4,然后 p+, (p 值變?yōu)?a+5),不滿足 p<a+N 結(jié)束循環(huán)。while(p>a)學(xué)習(xí)必備歡迎下載printf("%d ",*(-p);p 的值為 a+5,滿足 p>a ,執(zhí)行循環(huán)體第一次循環(huán):printf("%d ",*(-p);p 自減 1(值變?yōu)?a+4),然后輸出 *p( 輸出 a4) p 的值為 a+4,滿足 p>a ,執(zhí)行循環(huán)體第二次循環(huán):printf("%d ",*(-p);p自減 1(值變?yōu)?a+3),然后輸出 *p( 輸出 a3)p 的值為
27、a+3,滿足 p>a ,執(zhí)行循環(huán)體第三次循環(huán):printf("%d ",*(-p);p自減 1(值變?yōu)?a+2),然后輸出 *p( 輸出 a2)p 的值為 a+2,滿足 p>a ,執(zhí)行循環(huán)體第四次循環(huán):printf("%d ",*(-p);p自減 1(值變?yōu)?a+1),然后輸出 *p( 輸出 a1)p 的值為 a+1,滿足 p>a ,執(zhí)行循環(huán)體第五次循環(huán):printf("%d ",*(-p);p自減 1(值變?yōu)?a),然后輸出 *p( 輸出 a0)p 的值為 a,不滿足 p>a ,結(jié)束循環(huán)。最后輸出12345所
28、以答案選B206. 下面程序段的運行結(jié)果是( C )。 int a=1,2,3,4,5,6,*p=a;int i,sum=0;for(i=1;i<6;i+) sum+=*(p+);printf("%d",sum);A. 10B. 12C. 15D. 20*(p+); /* 先輸出 *p ,再進行p+*/p=a;p 指向 a0for(i=1;i<6;i+) sum+=*(p+);當(dāng) i=1 時sum=sum+*p=sum+a0=0+1=1; 然后 p+,p 的值變?yōu)閍+1,即 p 指向 a1當(dāng) i=2 時sum=sum+*p=sum+a1=1+2=3; 然后 p+
29、,p 的值變?yōu)閍+2,即 p 指向 a2當(dāng) i=3 時sum=sum+*p=sum+a2=3+3=6; 然后 p+,p 的值變?yōu)閍+3,即 p 指向 a3當(dāng) i=4 時sum=sum+*p=sum+a3=6+4=10; 然后 p+,p 的值變?yōu)閍+4,即 p 指向 a4當(dāng) i=5 時sum=sum+*p=sum+a4=10+5=15; 然后 p+,p 的值變?yōu)?a+5,即 p 指向 a5 最后 printf("%d",sum); 輸出 15,答案選 C207. 下面程序運行結(jié)果是( D )。 main( )學(xué)習(xí)必備歡迎下載 int a=1,2,3,4,5,*p,*q,i;
30、p=a; q=p+4; for(i=1;i<5;i+)printf("%d%d",*(q-i),*(p+i);A. 24334251B. 51423324C. 15243342D. 42332415p=a; p 指向 a0 q=p+4;q 指向 a4 for(i=1;i<5;i+)printf("%d%d",*(q-i),*(p+i);當(dāng)i=1時printf("%d%d",*(q-i),*(p+i);輸出a3和a1,即輸出42當(dāng)i=2時printf("%d%d",*(q-i),*(p+i);輸出a2和a2,即輸出33當(dāng)i=3時printf("%d%d"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度物業(yè)服務(wù)質(zhì)量提升合作協(xié)議書3篇
- 學(xué)校數(shù)據(jù)保護與隱私權(quán)管理策略
- 河北機電職業(yè)技術(shù)學(xué)院《綠色施工技術(shù)實訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度消防系統(tǒng)設(shè)備更新改造固定總價合同范本3篇
- 2024年特制:新能源汽車充電樁建設(shè)合同
- 小學(xué)美術(shù)課程創(chuàng)意性教學(xué)方法探討
- 二零二五年度汽車維修零部件配送服務(wù)合同2篇
- 學(xué)生自我管理能力在數(shù)學(xué)課堂中的培養(yǎng)
- 二零二五年度校園宿舍優(yōu)化:宿舍改造協(xié)議3篇
- 2024版?zhèn)鶆?wù)人離婚協(xié)議書范本
- 8.臺球助教速成培訓(xùn)手冊0.9萬字
- 無縫鋼管焊接作業(yè)指導(dǎo)書(1)
- 零缺陷與質(zhì)量成本
- 網(wǎng)吧企業(yè)章程范本
- 安徽省書法家協(xié)會會員登記表
- 阿特拉斯基本擰緊技術(shù)ppt課件
- 五格數(shù)理解釋及吉兇對照
- 婚姻狀況聲明書
- 新課程理念下的班主任工作藝術(shù)
- 領(lǐng)導(dǎo)激勵藝術(shù)教材
- 水泥罐抗傾覆驗算7頁
評論
0/150
提交評論