C語言綜合訓(xùn)練5指針_第1頁
C語言綜合訓(xùn)練5指針_第2頁
C語言綜合訓(xùn)練5指針_第3頁
C語言綜合訓(xùn)練5指針_第4頁
C語言綜合訓(xùn)練5指針_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言綜合練習(xí)五一、選擇題1.以下敘述中錯誤的是()A.當(dāng)在程序的開頭包含頭文件stdio. h時,可以給指針變量賦NULLB.函數(shù)可以返回地址值C.改變函數(shù)形參的值,不會改變對應(yīng)實參的值D.可以給指針變量賦一個整數(shù)作為地址值2.以下關(guān)于指針的敘述正確是()A.所有類型的指針變量所占內(nèi)存的大小是一樣的B.指針變量所占內(nèi)存的大小與其類型有關(guān),char型指針變量只占1個字節(jié), double型指針變量占8個字節(jié)C.指針變量可直接指向任何類型的變量,而不會出現(xiàn)編譯或運行錯誤D.指針變量既可以直接指向結(jié)構(gòu)體,也可以直接指向結(jié)構(gòu)體中某個成員, 而不會出現(xiàn)編譯或運行錯誤3關(guān)于地址和指針,以下說法正確的是()

2、A.通過強制類型轉(zhuǎn)換可以將一種類型的指針變量賦值給另一種類型的指針變量B.可以取一個常數(shù)的地址賦值給同類型的指針變量C.可以取一個表達式的地址賦值給同類型的指針變量D.可以取一個指針變量的地址賦值給基類型相同的指針變量4.以下關(guān)于指針的敘述,錯誤的是()。A.兩個基類型相同的指針變量不能指向同一個對象B.可以通過對指針變量自增、自減來移動指針C.只有兩個類型相同的指針才能進行減運算D.一個指針變量可以通過不同的方式獲得一個確定的地址值5.以下敘述中錯誤的是()A.基類型不同的指針可以直接相互賦值B.函數(shù)可以通過指針行參向所指單元傳回數(shù)據(jù)C.字符型指針可以指向一個字符串D.一般情況下,指針的運用

3、可使程序代碼效率更高.有以卜程序:ttincludemain()char* pl=O;int* p2=0;floal* p3=0;printf ( %d, %d, %dn,sizeof (pl), sizeof (p2), sizeof(p3);程序運行后的輸出結(jié)果是()。A. 1, 4, 8B. 4, 4, 4C. 1, 2, 4D. 1, 1, 4.若有定義語句:double a, *p=&a;以下敘述中錯誤的是O定義語句中的p只能存放double類型變量的地址定義語句中的*是一個說明符定義語句中的*是一個間址運算符定義語句中的*p二&a把變量a的地址作為初值賦給指針變量p.設(shè)有定義:in

4、t a, b10, *C=NULL, *p;,則以下語句錯誤的是()A. p=a: B. p=b: C. p=c: D. p=&0;.已定義以下函數(shù)int fun (int*p)return *p:fun函數(shù)的返回值是()A. 一個整數(shù)B,不確定的值C. 形參p中存放的值D.形參p的地址值10.設(shè)有定義:int x=0, *p;緊接著的賦值語句正確的是()A, *p=x;B. *p=NULL; C. p=x; D. p=NULL;11、設(shè)已有定義:float x;則以下對指針變量p進行定義且賦初值的語句中正確的是()A.float*p=&x;B.int*p=(float) x;C.float

5、p=&x;D.float*p=1024;12、設(shè)變量P是指針變量,語句p=NULL;是給指針變量賦NULL值,它等價于()。A、P= B、P= O; C、P=0; D、P= ;13、以下程序中關(guān)于指針輸入格式正確的是()A int*p; scanf(%d,&p);B、int*p; scanf(%d”,p);C、int k/p=&k; scanf(%cT1p);D、int k,*p; *p=&k; scanf(cT/&p)14、若有定義語句:double x, y, *px, *py;執(zhí)行Px=&x; py=&y;正確的輸入語句是()A、scanf(if %if,px,py);B、scanf(f

6、%f&x,&y);C、scanf(%f%f,x,y);D、scanf(%if %if,x,y);15、有以下程序#includemain()int n,*p=NULL;*p=&n;print(/zlnpul n;z,); scanf(d,&p);printffoutpul n;); printf(dn”,p);該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句 正確的是()A、 int n, *p=NULL;B *P=&n;C、scanf(%d,&p) D、printf(dn,p);.有以下程序:#include main()int *p,x=100;p=&x; x=*p+

7、10;printf(dn,x);程序運行后的輸出結(jié)果是()。A. 110B.120C.100D.90.有以下程序#includemain()int a=l,b=3,c=5;int *pl=&az*p2=&b,*p=&c;*p=*pl*(*p2);3printf(dn,c);執(zhí)行后的輸出結(jié)果是()。A. 4B.2C.lD.3.以下敘述中正確的是()。A.在對指針進行加、減算術(shù)運算時,數(shù)字1表示1個存儲單位的長度B.如果p是指針變量,則*p表示變量p的地址值C.如果p是指針變量,則&p是不合法的表達式D.如果p是指針變量,則*p+1和* (p+1)的效果是一樣的19.以下敘述中正確的是()。A.函

8、數(shù)的形參類型不能是指針類型B.函數(shù)的類型不能是指針類型C.設(shè)有指針變量為doubie*p,則p+1將指針p移動8個字節(jié)D.基類型不同的指針變量可以相互混用.若有定義語句int year=2009, *p=&year;,以下不能使用變量year中的值 增至2010的語句是。A. *p+=lB.(*p)+C.+(*p)D.*P+.有以下程序:#include main() int a10 = 135,7,11,13,17, *p=a;printf(d, *( p+ );printf(z/%d;: *( +p );程序運行后的輸出結(jié)果是().A. 3, 7B. 3, 5C. 1, 5D.1, 3.有

9、以卜程序:#include main() int a=0, *ptr;ptr = &a;*ptr =3;a = (*ptr) +;printf(%d,%dn”,a,*ptr);程序運行后的輸出結(jié)果是().A. 4 ,4B. 0, IC. 1, 4D.0, 423有以下程序:#include main() int m=l,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(%d,%d,d,%dn,m,n,*p,*q);程序運行后的輸出結(jié)果是()A. 1,2,1,26. 1,2,2,1c. 2,1,2,10.2,14,224有以下程序:#include main() int

10、 c6=10,20,30,40,50/60,*p,*s;p=c;s=&c5;printf(zz%dn,*(s-p);程序運行后的輸出結(jié)果是()A. 5B. 50C. 60D.60.有以下程序:#include main() inta5=2A6,8,10/p/*k;p=a;k=&p;printf(/%d,7(p+);printf(/%dn,7*k);程序運行后的輸出結(jié)果是()A. 24B. 44C. 22D.46.以下程序的功能是:通過調(diào)用cad函數(shù),把所求得的兩數(shù)之和值放入變量add 中,并在主函數(shù)中輸出。#includevoidcalc(floatx/floaty,float*sum)=x+

11、y;main()floatx,y,add;scanf(%f%f,&x,&y);calc(x,y,&add);prinif(x+y=%fn/add);calc函數(shù)中下劃線處應(yīng)填入的是()A.*sumB.sumC.&sumD.add.有以卜程序:#include voidfun(intx,inty,int*z)*z = y-x;main()inta,b,c;fun(10,5,&a);fun(7,a,&b);fun(a,b,&c);priMf(”%d,%d,%dn”,a,b,c);程序運行后的輸出結(jié)果是()A.5,2,3B. -5, -12, -7C. -5, -12, -17D. 5, -2, -

12、7.有如卜程序:#include int change (int *data)return(*data)+;main()int data=123;change(&data);printf(,l%d,H/data);data=change(&data);primf(ddata);printf(“n”);程序運行后的輸出結(jié)果是()A.124,124,B.123,124,0.124,123,0,123,123,.有如下程序:#include int convert (int *data)return (*data)+;main()intdata=56;convert(&data);printf(”d

13、,data) ;data=convert(&data);ptintf(%d,n,data);程序運行后的輸出結(jié)果是()A. 56,57,B.57,58,C.57,57,D.55,57,.有以下程序:#lncludeint k=5;void f(int *S)s=&k;*s=7;main()intm=3;f(&m);prinif(%d/%dn/m,k);程序運行后的輸出結(jié)果是()A.3,5B.7,7C.5,7D.3,7.有以卜程序:#include int k=5;void f(int *s) s=&k; main () int m=3, *p=&m;f (p); printf (d, %dn,

14、m,*p) ;程序運行結(jié)果是()A. 3, 3B. 5, 5c.3, 5D. 5, 3.以下選項中,不能對主函數(shù)中變量i和j的值進行交換的程序是() (A )#include void swap( int *p, int *q ) int *t; *t=*p; *p=*q; *q=*t; main()int i=10, j=20, *a=&i, *b=&j; swap(a, b); printf(i=%dj=%dn”, i, j); (B )#include void swap( int *p, int *q ) int t;t=*p; *p=*q;*q=t; main() int i=10,

15、 j=20, *a=&i, *b=&j; swap(a,b); printf(z/i=%dj=%dn,z, i, j); (C ) #include #include void swap( int *p, int *q ) int *t; t=(int *)malloc(sizeof(int);*t=*p; *p=*q;*q=*t; free(t); main() int i=10, j=20; swap(&i, &j); printf (i=%dj=%dn, i, j); (D )#include void swap( int *p, int *q ) int t; t=*p; *p=*q;

16、*q=t; main() int i=10, j=20, *x=&i, *y=&j; swap(x,y); printf(/zi=%dj=%dn, i, j);.有以卜程序:#include void fun(int *a, int *b) int *c;c=a, a=b, b=c;main() intx=3, y=5, *p=&x, *q=&y;fun (p, q); printf(d, %d,*p, *q);fun (&x, &y) ;printf(%d, %dn,*P, *q); ) 程序運行后的輸出結(jié)果是。A.3, 5, 5, 3B.3, 5, 3, 5c.5, 3, 3, 5D.5,

17、 3, 5, 3.有以卜程序:#include int *f(int *s, int *t) if(*s*t)*s=*t; return s; main() int i=3, j=5, *p=&i, *q=&j, *r;r=f(p, q); printf(zz%d, %d, %d, %d, %dn,i, j, *p, *q, *r); ) 程序的運行結(jié)果是OA.5, 5, 5, 5, 5B.3, 5, 5, 5, 5C.5, 3, 3, 3, 5D.3, 5, 3, 5, 5.有一下程序:#include void fun (int *p, int *q) main() int m=l, n=

18、2, *r=&m; f(r, &n); printf(%d, %d, m, n);void f(int *p int *q) p=p+l; *q=*q+l;程序運行后的輸出結(jié)果是。A.l, 3B.2, 3C.1, 4D.1, 2.若有以下程序ftinclude stdio. hvoid sp (int *a)int b=2; a=&b; *a=*a*2 ; printf ( u%d, , *a) ; ) main ()int k=3, *p=&k;sp (p); printf ( d, %dn” , k, *p); )則程序的輸出結(jié)果是()A. 4, 3, 4B. 4, 3, 3C. 6, 3

19、, 6D. 6, 6, 6.有以卜程序include void fun (int x, int y, int*c, int*d)*c=x+y; *d=x-y; main () int a=4, b=3, c=0, d=0; fun (a, b, &c, &d); printf ( %d %dn”,c, d); )程序的輸出結(jié)果是()A. 7 1 B. 4 3C. 3 4D. 0 0.有以卜程序#includestdio. hvoid fun (int*p, int*q)int t; t=*p; *p=*q; *q=t; *q=*p; main ()int a=0, b=9; fun(&a, &

20、b); printf ( d%dn”,a, b); 程序的輸出結(jié)果是()A. 0 9B. 0 OC. 9 OD. 9 9.有以下程序ftincludevoid fun 1 (char *p)char *q; q二p;while (*q!=0) (*q)+;q+; main () char a 口 = program , *p; p=& a 3 ;fun 1 (p); printf ( %sn,a);執(zhí)行程序后的結(jié)果是()A. prohsbnB. prphsbnC. progsbnD. program.有以卜程序include void fun (char *a , char*b) while (*a= * ) a+; while (*b=*a) b+; a+;) main () char *s=” * * * *a*b* * * *,t80; fun (s, t); puts (t); )程序的運行結(jié)果是()A. *a*bB. a*bC. a*b*D. ab.有以卜程序:#include void fun (char*cjnt d)*c=*c+l;d=d+l; printf(%c,%c,*c,d); main() char b = a,a=A ;fun(&b,a);printf(%c,%cn,b,a);程序運行后的輸出結(jié)果是()A. b,B,b,A B. b,B

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論