




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 第六章指針練習(xí)題及答案一、填空題1、定義int a=1,2,3,4,5,6,*p=a;語(yǔ)句printf("%d",(*+p)+);的輸出結(jié)果是( )。2、以下程序的執(zhí)行結(jié)果是( )。main() char s="abcdefg" char *p; p=s; printf("ch=%cn",*(p+5); 3、以下程序的執(zhí)行結(jié)果是( )。main() int a=1,2,3,4,5,6; for(p=&a5;p>=a;p-) printf("%d",*P); printf("n")
2、; 4、以下程序的執(zhí)行結(jié)果是( )。main() int a12=1,2,3,4,5,6,7,8,9,10,11,12,*p4,i;for(i=0;i<4;i+) pi=&ai*3;printf("%dn",p32);5、設(shè)包含如下程序的文件名為myprog.c,編譯后鍵入命令:myprog one two three,則執(zhí)行結(jié)果是( )。main(int argc,char *argv) int i; for(i=1;i<argc;i+) printf("%s%c",argvi,(i<argc-1)?":')
3、;6、下面程序的運(yùn)行結(jié)果是( )char s80,*sp="HELLO!"sp=strcpy(s,sp); s0='h' puts(s);7、下面程序段的運(yùn)行結(jié)果是( )char *s1="AbcdEf",*s2="aB"s1+; t=(strcmp(s1,s2)>0); printf("%dn",t);8、下面程序段的運(yùn)行結(jié)果是( )char str="abc0def0ghi" char *p=str; printf("%s",p+5)9、若有以下定義
4、和語(yǔ)句: int a4=0,1,2,3,*p; p=&a1; 則+(*p)的值是( )。10、若有定義:int a23=2,4,6,8,10,12;則*(&a00+2*2+1)的值是( ),*(a1+2)的值( )。11、若有定義:int a=2,4,6,8,10,12,*p=a;則*(p+1)的值是( ),*(a+5)的值是( )。12、若有以下定義和語(yǔ)句: int a4=0,1,2,3,*p; p=&a2; 則*-p的值是()。13、若有以下定義和語(yǔ)句: int s23=0,(*p)3; p=s; 則(*(p+1)+2)的值是()。14、若有定義:int a23=2
5、,4,6,8,10,12; 則a10的值是( ),*(*(a+1)+0)的值是( )。15、若有定義:int a=2,4,6,8,10,12,14,16,18,20,22,24,*q3,k;則下面程序段的輸出是()。for(k=0;k<3;k+) qk=&ak*4; printf("%dn",q23);16、若有以下輸入:1,2<CR>(<CR>代表回車(chē)),則下面程序的運(yùn)行結(jié)果是()。main()int a23=2,4,6,8,10,12 , (*p)3,i,j;p=a; scanf("%d,%d",&i,&
6、amp;j); printf("%dn",*(*(p+i)+j); )17、下面程序的運(yùn)行結(jié)果是()。main() char *a="P","C","B","L", (* *p) ; int j;p=a+3;for(j=3;j>=0;j-) printf("%s",*(p-);18、以下程序的執(zhí)行結(jié)果是()。main() char *p1,*p2,str20="xyz" p1="abcd" p2="ABCD"s
7、trcpy(str+1,strcat(p1+1,P2+1); printf("%s",str); 19、若輸入的值分別是1 3 5,下面程序的運(yùn)行結(jié)果是()main()int a=0,i,*p,sum; p=&a; for(i=0;i<=2;i+) scanf("%d",p); sum=s(p); printf("sum=%d,",sum); s(int *p)int sum=10; sum=sum+*p; return(sum); 20、下面程序段的運(yùn)行結(jié)果是()char s20="abcd" ch
8、ar *sp=s; sp+; puts(strcat(sp,"ABCD");21、下面程序段的運(yùn)行結(jié)果是()char a="12345",*p; int s=0;for(p=a;*p!='0'p+) s=10*s+*p-'0' printf("%dn",s);22、下面程序段的運(yùn)行結(jié)果是()char a="123456789",*p; int i=0; p=a;while(*p) if(i%2=0) *p='*' p+;i+; puts(a);23、下面程序的運(yùn)行結(jié)果
9、是()。main() char *str="Pascal","C language","Dbase","Cobol" char *p; int k;p=str;for(k=0;k<4;k+) printf("%s,",*(p+); 二、選擇題1、以下程序的運(yùn)行結(jié)果是()void sub (int x,int y,int *z) *z=y-x;main() int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); print
10、f("%4d,%4d,%4dn",a,b,c);A) 5, 2, 3 B) -5, -12, -7C) -5, -12, -17 D) 5, -2, -72、執(zhí)行以下程序后,b的值為()main()int b,k=4,m=6,*p1=&k,*p2=&m; b=(-*p1)/(*p2)+7; printf("%dn",b); A)5 B)6 C)7 D)103、下面程序應(yīng)能對(duì)兩個(gè)整型變量的值進(jìn)行交換。以下正確的說(shuō)法是()main()int a=10,b=20; printf("%d,%d",a,b); swap(&
11、;a,&b); printf("%d,%d",a,b); swap(int p,int q) int t; t=p;p=q;q=t;A)該程序完全正確B)該程序有錯(cuò),只要將語(yǔ)句swap(&a,&b);中的參數(shù)改為a,b即可C)該程序有錯(cuò),只要將swap()函數(shù)中的形參p和q以及t均定義為指針(執(zhí)行語(yǔ)句為變)即可D)以上說(shuō)法都不正確4、設(shè)*p,i;以下正確的語(yǔ)句是()。A)*p=&i; B)i=p; C)i=*p; D)p=2*p+1;5、設(shè)char s10;int i=1;以下正確的表達(dá)式是()。A)i+2 B)*(s+i) C)*(&
12、;s+i) D)*(s+)+i)6、設(shè)有語(yǔ)句:int a10=0,1,2,3,4,5,6,7,8,9,*p=a;以下對(duì)a數(shù)組的元素值不正確的引用是()。A)ap-a B)*(&ai) C)pi D)*(a0+1)7、設(shè)有說(shuō)明int(*ptr)M;其中ptr是()。A)M個(gè)指向整型變量的指針 B)指向M個(gè)整型變量的函數(shù)指針C)一個(gè)指向具有M個(gè)整型元素的一維數(shù)組的指針D)具有M個(gè)指針元素的一維指針數(shù)組,每一元素只能指向整型量8、如下程序的執(zhí)行結(jié)果是()。main() int i; char *s="an" for(i=0;si!='n'i+) print
13、f("%c",*(s+i); )a )a )a )a9、有四組對(duì)指針變量進(jìn)行操作的語(yǔ)句,以下判斷正確的選項(xiàng)是()(1)int *p,*q;q=p; int a,*p,*q;*p=*q=&a;(2)int a,*p,*q;q=&a;p=*q; int a=20,*p;*p=a;(3)int a=b=0,*p;p=&a;b=*p; int a=20,*p,*q=&a;*p=*q;(4)int a=20,*p,*q=&a;p=q; int p,q;q=&p;A)(1)正確,其余錯(cuò) B)(1),(4)正確,其余錯(cuò)C)(3)正確,其余錯(cuò)
14、 D)以下結(jié)論都不正確10、以下程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯(cuò)誤的,其錯(cuò)誤原因是()main() int *p,*q,a,b; p=&a; scanf("%d",*p);. A)*p表示的是指針變量p的地址B)*p表示的是變量a的值,而不是變量a的地址C)*p表示的是指針變量p的值D)*p只能用來(lái)說(shuō)明p是一個(gè)指針變量11、若有以下定義,則*(p+5)表示()。int a10,*p=a;A)元素a5的地址 B)元素a5的值 C)元素a6的地址 D)元素a6的值12、若有定義:int *p4;則標(biāo)識(shí)符p()。A)是一個(gè)指向整型變量的指針 B)是一個(gè)指
15、針數(shù)組C)是一個(gè)指針,它指向一個(gè)含有四個(gè)整型元素的一維數(shù)組。D)說(shuō)明不合法13、若有以下定義,且0<=i<6,則正確的賦值語(yǔ)句是()。int s46,t64,(*p)6;A)p=t; B)p=s; C)p=si; D)p=ti;14、若有定義:int a46;則能正確表示a數(shù)組中任一元素aij(此處0<=i<4,0<=j<6)地址的表達(dá)式是()A)&a00+6*i+j B)&a00+4*j+I C)&a00+4*i+j D)&a00+6*j+i15、以下選項(xiàng)中,對(duì)指針變量p的正確操作是()A)int a5,*p;p=&
16、a; B)int a5,*p;p=a;C)int a5;int *p=a=1000 D)int a5;int *p1,*p2=a;*p1=*p2;16、若有以下定義,且0<=i<5,則對(duì)數(shù)組a元素的非法引用是()int a5,*p=a;A)ai B)*(a+i) C)*(p+i) D)*(&a+i)17、設(shè)有以下定義:char *cc2="1234","5678" 則正確的敘述是()A)cc數(shù)組的兩個(gè)元素中各自存放了字符串"1234"和"5678"的首地址B)cc數(shù)組的兩個(gè)元素分別存放的是含有4
17、個(gè)字符的一維字符數(shù)組的首地址C)cc是指針變量,它指向含有兩個(gè)數(shù)組元素的字符型一維數(shù)組D)cc數(shù)組元素的值分別是"1234"和"5678"18、若有以下定義:int x43=1,2,3,4,5,6,7,8,9,10,11,12; int (*p)3=x;則能夠正確表示數(shù)組元素x12的表達(dá)式是()A)*(*p+1)2) B)(*p+1)+2 C)*(*(p+5) D)*(*(p+1)+2)19、以下正確的敘述是()A)C語(yǔ)言允許main函數(shù)帶形參,且形參個(gè)數(shù)和形參名均可由用戶(hù)指定。B)C語(yǔ)言允許main函數(shù)帶形參,形參名只能是argc和argv。C)當(dāng)ma
18、in函數(shù)帶有形參時(shí),傳給形參的值只能從命令行中得到。D)若有說(shuō)明,main(int argc,char *argv),則形參argc的值必須大于1。20、main函數(shù)的正確說(shuō)明形式是()A)main(int argc,char *argv)B)main(int abc,char *abv)C)main(int argc,char argv)D)main(int c,char *v)21、以下程序能找出數(shù)組x中的最大值和該值所在的元素下標(biāo),數(shù)組元素值從鍵盤(pán)輸入。main()int x10,*p1,*p2,k;for(k=0;k<10;k+) scanf("%d",x+k
19、);for(p1=x,p2=x;p1-x<10;p1+) if(*p1>*p2) p2=p1;printf("MAX=%d,INDEX=%dn", *p2,);A)p1-x B)p1C)p2-x D)x-p222、若有說(shuō)明:char *language="FORTRAN","BASIC","PASCAL","JAVA","C"則表達(dá)式*language1>*language3比較的是()A)字符F和字符P B)字符串BASIC和字符串JAVAC)字符B和字符
20、J D)字符串FORTRAN和字符串PASCAL23、若有說(shuō)明:char *language="FORTRAN","BASIC","PASCAL","JAVA","C"則language2的值是()A)一個(gè)字符 B)一個(gè)地址 C)一個(gè)字符串 D)一個(gè)不定值24、語(yǔ)句int(*ptr)();的含義是()A)ptr是指向一維數(shù)組的指針變量 B)ptr是指向int型數(shù)據(jù)的指針變量C)ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)D)ptr是一個(gè)函數(shù)名,該函數(shù)的返回值的指向int型數(shù)據(jù)的指針25、若
21、有函數(shù)max(a,b),并且已使函數(shù)指針變量p指向函數(shù)max,當(dāng)調(diào)用該函數(shù)時(shí),正確的調(diào)用方法是()A)(*p)max(a,b); B)*pmax(a,b); C)(*p)(a,b); D)*p(a,b);26、已有函數(shù)max(a,b),為了讓函數(shù)指針變量p指向函數(shù)max,正確的賦值方法是()A)p=max B)*p=max; C)p=max(a,b) D)*p=max(a,b)27、已有定義int(*p)();指針p可以()。A)代表函數(shù)的返回值 B)指向函數(shù)的入口地址C)表示函數(shù)的類(lèi)型 D)表示函數(shù)返回值的類(lèi)型28、若要對(duì)a進(jìn)行+運(yùn)算,則a應(yīng)具有下面說(shuō)明()A)int a32; B)char
22、 *a="12","ab" C)char (*a)3; D)int b10,*a=b;29、下面正確的程序段是()A)char str20; scanf("%s",&str); B)char *p; scanf("%s",p);C)char str20; scanf("%s",&str2); D)char str20,*p=str; scanf("%s",p2);30、下面程序段的運(yùn)行結(jié)果是()char str="ABC",*p=str;
23、printf("%dn",*(p+3);A)67 B)0 C)字符'C'的地址 D)字符'C'31、下面程序段的運(yùn)行結(jié)果是()char *p="abcdefgh" p+=3; printf("%dn",strlen(strcpy(p,"ABC");A)8 B)12 C)4 D)732、下面說(shuō)明不正確的是()A)char a10="china" B)char 10,*p=a; p="china"C)char *a; a="china&q
24、uot; D)char a10,*p; p=a="china"33、若有說(shuō)明語(yǔ)句char a="It is mine"char *p="It is mine"則以下不正確的敘述是()A)a+1表示的是字符t的地址B)p指向另外的字符串時(shí),字符串的長(zhǎng)度不受限制C)p變量中存放的地址值可以改變D)a中只能存放10個(gè)字符34、若已定義char s10;則在下面表達(dá)式中不表示s1的地址是()A)s+1 B)s+ C)&s0+1 D)&s135、下面程序段的運(yùn)行結(jié)果是()char s6; strcpy(s,"abcd&
25、quot;); printf(""%s"n",s);A)"abcd" B)"abcd " C)"abcd" D)編譯出錯(cuò)36、若有說(shuō)明:char *language="FORTRAN","BASIC","PASCAL","JAVA","C"則以下不正確的敘述是()A)language2表示字符串"pascal"的首地址B)*language2的值是字母PC)language是一
26、個(gè)字符型指針數(shù)組,它包含5個(gè)元素,每個(gè)元素都是一個(gè)指向字符串變量的指針D)language是一個(gè)字符型指針數(shù)組,它包含5個(gè)元素,其初值分別是:"FORTRAN","BASIC","PASCAL","JAVA","C"37、設(shè)char s10,*p=s;以下不正確的表達(dá)是()A)p=s+5; B)s=p+s; C)s2=p4; D)*p=s0;38、設(shè)char *s;以下正確的表達(dá)式是()。A)s="computer" B)*s="computer" C)*
27、s="computer" D)*s='c'39、選擇i的正確結(jié)果()。int i; char *s="a045+045'b" for(i=0;*s+;i+);A)7 B)8 C)11 D)1240、如下程序的執(zhí)行結(jié)果是()。main() int i; char *s="ann35b" for(i=0;*s+;i+); printf("i=%dn",i);A)i=5 B)i=6 C)i=7 D)i=841、如下程序的執(zhí)行結(jié)果是()。main() int i; char *s="&qu
28、ot;" for(i=0;si!='0'i+); printf("%c",*(s+i);)" )" )""" )不正確42、如下程序的執(zhí)行結(jié)果是()。main() int i; char *s=""" for(i=0;si!='0'i+) printf("%c",*(s+i);)" )a" )"" )不正確43、如下執(zhí)行的程序結(jié)果是()。main()static int a =1,2,3,4,5
29、,6;int *p;p=a;*(p+3)+=2;printf("%d,%dn",*p,*(p+3);)1,3 )1,6 )3,6 )1,444、以下正確的說(shuō)明語(yǔ)句是()A)int *b=1,3,5,7,9; B)int a2; int *num2=&a0,&a1;C)int a=1,2; int *num2=a0,a1;D)int a34,(*num)4; num1=&a13;45、若有以下定義,且0<=i<4,則不正確的賦值語(yǔ)句是()int b46,*p,*q4;A)qi=bi; B)p=b; C)p=bi; D)qi=&b00
30、;46、若有定義:int a=2,4,6,8,10,12,14,16,18,20,22,24,*q4,k;則下面程序段的輸出是()for(k=0;k<4;k+) qk=&ak*3; printf("%dn",q30);A) 8 B)16 C) 20 D)結(jié)果不確定47、若有以下定義,則數(shù)值不為3的表達(dá)式是()int x10=0,1,2,3,4,5,6,7,8,9,*p1;A)x3 B)p1=x+3,*p1+ C)p1=x+2,*(p1+)D)p1=x+2,*+p148、下面程序的運(yùn)行結(jié)果是()main()int x5=2,4,6,8,10,*p,*pp;p=x
31、;pp=&p;printf("%d",*(p+);printf("%3dn",*pp);A)4 4 B)2 4 C)2 2 D)4 649、若有以下說(shuō)明和語(yǔ)句:char *language="FORTRAN","BASIC","PASCAL","JAVA","C"char *q;q=language+2;則語(yǔ)句printf("%on",*q);A)輸出的是language2元素地址 B)輸出的是字符串PASCALC)輸出的是la
32、nguage2元素的值,它是字符串PASCAL的首地址D)格式說(shuō)明不正確,無(wú)法得到確定的輸出50、下面程序段的運(yùn)行結(jié)果是()char *format="%s,a=%d,b=%dn" int a=1,b=10; a+=b;printf(format,"a+=b",a,b);A)for,"a+=b",ab B)format,"a+=b" C)a+=b,a=11,b=10 D)以下結(jié)果都不對(duì)三、編程題1、有3個(gè)學(xué)生,每人考5門(mén)課,求每個(gè)學(xué)生的平均分和每門(mén)課的平均分?jǐn)?shù)2、輸入一個(gè)字符串,內(nèi)有數(shù)字和非數(shù)字字符,如:a123x
33、456 1760?302ab567,將其中連續(xù)的數(shù)字作為一個(gè)整數(shù)依次存放到一數(shù)組a中,如123存放到a0中,456存放到a1中。3、求定積分:計(jì)算0,1之間函數(shù)1+x2、0,2之間函數(shù)1+x+x2+x3、0,3.5之間函數(shù)x/(1+x2)的定積分。附錄:答案一、 填空題1、2 2、f 3、654321 4、12 5、one:two:three 6、HELLO! 7、1 8、of 9、2 10、12 12 11、4 12 12、113、0 14、8 8 15、24 16、12 17、LBCP 18、xbcdBCD 23、Pascal,C language,Dbase,Cobol二、 選擇題15 BCCCB 610 DBCCB 1115 BCBCB 1620 DADCD 2125
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金融行業(yè)反洗錢(qián)技術(shù)發(fā)展監(jiān)管機(jī)制創(chuàng)新與合規(guī)管理研究報(bào)告
- 2025年餐飲業(yè)環(huán)保設(shè)施建設(shè)與能源消耗優(yōu)化報(bào)告
- 2025年單晶生產(chǎn)爐項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2025年機(jī)械密封項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 2025年永磁式步進(jìn)電機(jī)項(xiàng)目申請(qǐng)報(bào)告
- 綠色物流2025年即時(shí)配送行業(yè)配送路徑優(yōu)化與成本控制研究報(bào)告
- 2025年體外診斷器械項(xiàng)目申請(qǐng)報(bào)告
- 探秘未來(lái)工廠:2025年3D打印大規(guī)模生產(chǎn)應(yīng)用在高端裝備制造領(lǐng)域的實(shí)踐報(bào)告
- 2025年文化旅游演藝項(xiàng)目文化旅游融合與創(chuàng)新模式報(bào)告
- 【正版授權(quán)】 ISO/IEC 27553-2:2025 EN Information security,cybersecurity and privacy protection - Security and privacy requirements for authentication using biometrics on mobile devices
- 機(jī)加工工藝培訓(xùn)
- CT增強(qiáng)掃描造影劑外滲的預(yù)防與處理
- 深靜脈置管的維護(hù)與護(hù)理
- 孤獨(dú)癥業(yè)務(wù)管理制度
- 質(zhì)量管理手冊(cè)(隧道)(中交路橋建設(shè)有限公司)
- 黃大年式教學(xué)團(tuán)隊(duì)申報(bào)材料
- 出香港貨物發(fā)票樣板樣本空白
- 醫(yī)院免疫室標(biāo)準(zhǔn)化操作程序免疫室內(nèi)質(zhì)量控制操作指南(ELISA)人民醫(yī)院檢驗(yàn)科免疫SOP人民醫(yī)院質(zhì)量管理體系課件
- 柳州市柳東新區(qū)南慶安置區(qū)項(xiàng)目工程基坑支護(hù)方案
- 卵巢腫瘤ppt課件
- 發(fā)電可靠性考試真題及答案
評(píng)論
0/150
提交評(píng)論