習(xí)題課(指針)_第1頁(yè)
習(xí)題課(指針)_第2頁(yè)
習(xí)題課(指針)_第3頁(yè)
習(xí)題課(指針)_第4頁(yè)
習(xí)題課(指針)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、習(xí)題課習(xí)題課(函數(shù)指針)(函數(shù)指針)定義定義含義含義int i; i是整型變量是整型變量 int *p; p是指向整型數(shù)據(jù)的指針變量是指向整型數(shù)據(jù)的指針變量 int aN; a是整型數(shù)組,它有是整型數(shù)組,它有N個(gè)整型元素個(gè)整型元素int *pN; p是指針數(shù)組,它由是指針數(shù)組,它由N個(gè)指向整型數(shù)據(jù)的個(gè)指向整型數(shù)據(jù)的指針元素組成指針元素組成 int f( ); f是返回值是整型的函數(shù)是返回值是整型的函數(shù)int *p(); p是返回一個(gè)指針的函數(shù),該指針指向整是返回一個(gè)指針的函數(shù),該指針指向整型數(shù)據(jù)型數(shù)據(jù) int (*p)( ); p是指向函數(shù)的指針變量,該函數(shù)返回整是指向函數(shù)的指針變量,該函數(shù)返

2、回整型數(shù)據(jù)型數(shù)據(jù) int *p; p是指針的指針變量,它指向一個(gè)指向整是指針的指針變量,它指向一個(gè)指向整型數(shù)據(jù)的指針變量型數(shù)據(jù)的指針變量一、有關(guān)指針的數(shù)據(jù)類型一、有關(guān)指針的數(shù)據(jù)類型1、指針變量、指針變量a所指的字符串長(zhǎng)度為(),這個(gè)長(zhǎng)所指的字符串長(zhǎng)度為(),這個(gè)長(zhǎng)度是可以用度是可以用strlen(a)測(cè)出來(lái)的。測(cè)出來(lái)的。char *a=“nMy Name is”wang fei”.n”;(1)26 (2) 27 (3) 28 (4) 24 (5)232、下面程序的作用是,將兩個(gè)變量中的值互換,、下面程序的作用是,將兩個(gè)變量中的值互換,請(qǐng)檢查程序是否正確,如不正確的,請(qǐng)改正。請(qǐng)檢查程序是否正確,

3、如不正確的,請(qǐng)改正。#include void main ( )int a=3,b=4;int *p1 , *p2 , *p;p1=&a,p2=&b;p=p1;p1=p2;p2=p;printf(“a= %d,b= %dn”,a,b); 這里改為:這里改為:int *p1,*p2,p;這里改為:這里改為:p=*p1;*p1=*p2;*p2=p;3、已設(shè)、已設(shè)p1和和p2為指針變量,且已指向同一個(gè)整為指針變量,且已指向同一個(gè)整 型數(shù)組中的元素,型數(shù)組中的元素,a是一個(gè)整型變量,問(wèn)下面是一個(gè)整型變量,問(wèn)下面 哪一個(gè)語(yǔ)句不能正確執(zhí)行哪一個(gè)語(yǔ)句不能正確執(zhí)行? (1) a=*p1 (2) a=*p1+*

4、p2 (3) a=*p1-*p2 (4) p1=a-p24、有一個(gè)二維數(shù)組、有一個(gè)二維數(shù)組a34,2行行3列元素的正確表列元素的正確表 示方法為()。示方法為()。 (1) &a23 (2)a2+3 (3) *(a+2)+3 (4)*(a2+3)5、若有語(yǔ)句、若有語(yǔ)句:int a=4,*p=&a;下面均代表地址的下面均代表地址的一組選項(xiàng)是一組選項(xiàng)是: 1) a,p,&*a 2) *&a,&a,*p 3) &a,p,&*p 4) *&p,*p,&a6、以下程序段的輸出結(jié)果為、以下程序段的輸出結(jié)果為: char a =“Program”,*ptr; ptr =a; for ( ;ptra+7;pt

5、r+=2)putchar(*ptr); 1) Program 2) Porm 3) 有語(yǔ)法錯(cuò)誤有語(yǔ)法錯(cuò)誤; 4) Por7、下面說(shuō)明不正確的是:、下面說(shuō)明不正確的是:1) int *a4; 3) float (*p)();2) int *p; 4) char *(*a) ;8 、以下程序段的輸出結(jié)果為:、以下程序段的輸出結(jié)果為:#include void main()int s =1,2,3,4,5,6,7,8,9,*p;p=s; *(p+5)=22; p+;printf (%d,%dn,*p,*(p+4); 輸出結(jié)果是:輸出結(jié)果是:2,229、下列程序的輸出結(jié)果是:下列程序的輸出結(jié)果是: #

6、include void main()int a5=2,4,6,8,10,*p,*k;p=a;k=&p;printf(%d ,*(p);printf(%dn,*k);A)4 4 B)2 2 C)2 4D)結(jié)果錯(cuò)誤結(jié)果錯(cuò)誤10、寫出下面程序的運(yùn)行結(jié)果。、寫出下面程序的運(yùn)行結(jié)果。#include stdio.h#include string.hvoid main()char a30=nice to meet you!;int b;b=strlen(a)-9;strcpy(a+b,you);printf(%sn,a); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:nice to you!11、下列程序的輸出結(jié)果是多少?、下

7、列程序的輸出結(jié)果是多少?#include void fun(int *a,int *b) int k;k=5;*a=k;*b=*a+k;void main() int *a,*b,x=10,y=15;a=&x;b=&y;fun(a,b);printf(%d,%dn,*a,*b);printf(%d,%dn,x,y);運(yùn)行結(jié)果:運(yùn)行結(jié)果:5,105,1012、以下程序段的輸出結(jié)果是、以下程序段的輸出結(jié)果是()#include void main() int a10=9,8,7,6;int *p;p=a;printf(%d,%dn,*p,*(p+2);運(yùn)行結(jié)果:運(yùn)行結(jié)果:9,713、已有變量定義和

8、函數(shù)調(diào)用語(yǔ)、已有變量定義和函數(shù)調(diào)用語(yǔ)句:句:int a=25;print_value(&a);下面函數(shù)的正確輸出結(jié)果是下面函數(shù)的正確輸出結(jié)果是( )。void print_value(int *x) printf(%dn,+(*x); A)23 B)24 C)25 D)2614、閱讀下面程序,輸出結(jié)果是多少?、閱讀下面程序,輸出結(jié)果是多少?#include stdio.hvoid main()int c6=1,2,3,4,5,6;int *p;p=c;printf(%d,*+p);p=p+3;printf(%dn“,*p-);運(yùn)行結(jié)果:運(yùn)行結(jié)果:2,515、閱讀下面程序,則程序的輸出結(jié)果是多少

9、?、閱讀下面程序,則程序的輸出結(jié)果是多少?#include void main()int i;char *p;char *name =Ann,Hare,Jack,Mary;printf(n Studentss names are:n);for(i=2;i4;i+)p=name+i;printf(%sn,*p);運(yùn)行結(jié)果:運(yùn)行結(jié)果: JackMary16、寫出程序的運(yùn)行結(jié)果。、寫出程序的運(yùn)行結(jié)果。#include #include void fun(char *s)int i;char a10=opqrst;for(i=0;ai!=0;i+)*(s+i)=ai;void main()char *

10、p,a =abcdef;p=a;fun(p);printf(%s,p);運(yùn)行結(jié)果:運(yùn)行結(jié)果: opqrst17、寫出程序的運(yùn)行結(jié)果。、寫出程序的運(yùn)行結(jié)果。#include #include void fun(char *s)char a10;strcpy(a,opqrst);s=a;void main()char *p,a =abcdef;p=a;fun(p);printf(%s,p); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: abcdef18、寫出程序的運(yùn)行結(jié)果、寫出程序的運(yùn)行結(jié)果#include void fill(char *p)p=opqrst;void main()char t =abcdef;fil

11、l(t);printf(%s,t); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: abcdef19、寫出程序的運(yùn)行結(jié)果、寫出程序的運(yùn)行結(jié)果#include void fun(char *s)s=“opqrst;void main()char *p=abcdef;fun(p);printf(%s,p);運(yùn)行結(jié)果:運(yùn)行結(jié)果: abcdef20、寫出程序的運(yùn)行結(jié)果、寫出程序的運(yùn)行結(jié)果#include void main()char *p =BOOL,OPK,H,SP;int i ;for(i=3; i =0; i-,i-)printf(%c,*pi);printf(n);運(yùn)行結(jié)果:運(yùn)行結(jié)果: SO#include voi

12、d main()char *month13=january,february,march,april,may,june,july,august,september,october,november,decenber; int n; printf(input month:); scanf(%d,&n); printf(%sn,*(month+n-1); 編一個(gè)程序,輸入月份號(hào),輸出該月份編一個(gè)程序,輸入月份號(hào),輸出該月份的英文月名。的英文月名。有有n個(gè)整數(shù),使前面各數(shù)個(gè)整數(shù),使前面各數(shù)順序向后移順序向后移m個(gè)位置,最后個(gè)位置,最后m個(gè)數(shù)變成最前面?zhèn)€數(shù)變成最前面m個(gè)數(shù)。個(gè)數(shù)。#include vo

13、id input(int *p,int n) int i;printf(請(qǐng)輸入%d個(gè)整數(shù):,n); for(i=0;in;i+) scanf(%d,p+i);void output(int *p, int n) int i; for(i=0;i=p;h-) for(i=0;im;i+) t=*(h+i); *(h+i)=*(h+i+1); *(h+i+1)=t; void main() int m,a10; input(a,10); output(a,10); printf(請(qǐng)輸入要把后面多少個(gè)整數(shù)移動(dòng)到前面?);scanf(%d,&m); move(a,10,m); output(a,10)

14、; 有一字符串,包含有一字符串,包含n個(gè)字符,個(gè)字符,寫一函數(shù),將此字符串中從第寫一函數(shù),將此字符串中從第m個(gè)個(gè)字符開(kāi)始的全部字符復(fù)制成為另一字符開(kāi)始的全部字符復(fù)制成為另一個(gè)字符串。個(gè)字符串。#include #define M 5 /從第個(gè)字符開(kāi)始復(fù)制(可以行更改)/*定義函數(shù):把指針head處開(kāi)頭的字符串從第m個(gè)字符開(kāi)始復(fù)制到指針cpy開(kāi)頭的字符數(shù)組*/char *stringcpy(char *head, int m, char *cpy)char *h,*c; /定義兩個(gè)工作指針int i=0; h=head; c=cpy; /工作指針?lè)謩e指向源字符串和目標(biāo)字符串while(i=m-1

15、)h=head+i;if(*h=0)break;i+; /這個(gè)循環(huán)是為了把指針h指向第m個(gè)字符while(*h!=0)*c=*h;c+;h+; /這個(gè)循環(huán)是從第個(gè)字符開(kāi)始逐個(gè)字符進(jìn)行復(fù)制*c=*h; /復(fù)制源字符串末尾的字符0return cpy; /給函數(shù)返回目標(biāo)字符串首地址void main()char c181,c281; /c1是源字符串,c2是目標(biāo)字符串printf(請(qǐng)輸入源字符串:n);gets(c1); /輸入源字符串printf(目標(biāo)字符串是:n);puts(stringcpy(c1,M,c2);/輸出目標(biāo)字符串有有N個(gè)人圍成一圈,順序排號(hào),從第一個(gè)人圍成一圈,順序排號(hào),從第一個(gè)人開(kāi)始報(bào)數(shù)(從一到三報(bào)數(shù)),凡報(bào)到三個(gè)人開(kāi)始報(bào)數(shù)(從一到三報(bào)數(shù)),凡報(bào)到三的人退出圈子,問(wèn)最后留下的是原來(lái)第幾號(hào)的人退出圈子,問(wèn)最后留下的是原來(lái)第幾號(hào)的那位?的那位?#include void main()int i,k,m,n,num50

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論