C語言習(xí)題課(指針)課件_第1頁
C語言習(xí)題課(指針)課件_第2頁
C語言習(xí)題課(指針)課件_第3頁
C語言習(xí)題課(指針)課件_第4頁
C語言習(xí)題課(指針)課件_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、習(xí)題課(函數(shù)指針)- 精品-定義含義int i; i是整型變量 int *p; p是指向整型數(shù)據(jù)的指針變量 int aN; a是整型數(shù)組,它有N個整型元素int *pN; p是指針數(shù)組,它由N個指向整型數(shù)據(jù)的指針元素組成 int f( ); f是返回值是整型的函數(shù)int *p(); p是返回一個指針的函數(shù),該指針指向整型數(shù)據(jù) int (*p)( ); p是指向函數(shù)的指針變量,該函數(shù)返回整型數(shù)據(jù) int *p; p是指針的指針變量,它指向一個指向整型數(shù)據(jù)的指針變量一、有關(guān)指針的數(shù)據(jù)類型- 精品-1、指針變量a所指的字符串長度為(),這個長度是可以用strlen(a)測出來的。char *a=“n

2、My Name is”wang fei”.n”;(1)26 (2) 27 (3) 28 (4) 24 (5)232、下面程序的作用是,將兩個變量中的值互換,請檢查程序是否正確,如不正確的,請改正。#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è)p1和p2為指針變量,且已指向同一個整 型數(shù)組中的元素,a是一個整型變量,問下面

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

4、*ptr); 1) Program 2) Porm 3) 有語法錯誤; 4) Por- 精品-7、下面說明不正確的是:1) int *a4; 3) float (*p)();2) int *p; 4) char *(*a) ;8 、以下程序段的輸出結(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é)果是:2,22- 精品-9、下列程序的輸出結(jié)果是: #include void main()int a5=2,4,6,8,10,*p,*k;p=a;k=

5、&p;printf(%d ,*(p);printf(%dn,*k);A)4 4 B)2 2 C)2 4D)結(jié)果錯誤- 精品-10、寫出下面程序的運行結(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); 運行結(jié)果:nice to you!- 精品-11、下列程序的輸出結(jié)果是多少?#include void fun(int *a,int *b) int k;k=5;*a=k;*b=*a+k;void ma

6、in() int *a,*b,x=10,y=15;a=&x;b=&y;fun(a,b);printf(%d,%dn,*a,*b);printf(%d,%dn,x,y);運行結(jié)果:5,105,10- 精品-12、以下程序段的輸出結(jié)果是()#include void main() int a10=9,8,7,6;int *p;p=a;printf(%d,%dn,*p,*(p+2);運行結(jié)果:9,7- 精品-13、已有變量定義和函數(shù)調(diào)用語句:int a=25;print_value(&a);下面函數(shù)的正確輸出結(jié)果是( )。void print_value(int *x) printf(%dn,+(*

7、x); A)23 B)24 C)25 D)26- 精品-14、閱讀下面程序,輸出結(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-);運行結(jié)果:2,5- 精品-15、閱讀下面程序,則程序的輸出結(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;prin

8、tf(%sn,*p);運行結(jié)果: JackMary- 精品-16、寫出程序的運行結(jié)果。#include #include void fun(char *s)int i;char a10=opqrst;for(i=0;ai!=0;i+)*(s+i)=ai;void main()char *p,a =abcdef;p=a;fun(p);printf(%s,p);運行結(jié)果: opqrst- 精品-17、寫出程序的運行結(jié)果。#include #include void fun(char *s)char a10;strcpy(a,opqrst);s=a;void main()char *p,a =abc

9、def;p=a;fun(p);printf(%s,p); 運行結(jié)果: abcdef- 精品-18、寫出程序的運行結(jié)果#include void fill(char *p)p=opqrst;void main()char t =abcdef;fill(t);printf(%s,t); 運行結(jié)果: abcdef- 精品-19、寫出程序的運行結(jié)果#include void fun(char *s)s=“opqrst;void main()char *p=abcdef;fun(p);printf(%s,p);運行結(jié)果: abcdef- 精品-20、寫出程序的運行結(jié)果#include void main

10、()char *p =BOOL,OPK,H,SP;int i ;for(i=3; i =0; i-,i-)printf(%c,*pi);printf(n);運行結(jié)果: SO- 精品-#include void 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); 編一個程序,輸入月份號,輸出該月份的英文

11、月名。- 精品-有n個整數(shù),使前面各數(shù)順序向后移m個位置,最后m個數(shù)變成最前面m個數(shù)。- 精品-#include void input(int *p,int n) int i;printf(請輸入%d個整數(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(請

12、輸入要把后面多少個整數(shù)移動到前面?);scanf(%d,&m); move(a,10,m); output(a,10); - 精品-有一字符串,包含n個字符,寫一函數(shù),將此字符串中從第m個字符開始的全部字符復(fù)制成為另一個字符串。- 精品-#include #define M 5 /從第個字符開始復(fù)制(可以行更改)/*定義函數(shù):把指針head處開頭的字符串從第m個字符開始復(fù)制到指針cpy開頭的字符數(shù)組*/char *stringcpy(char *head, int m, char *cpy)char *h,*c; /定義兩個工作指針int i=0; h=head; c=cpy; /工作指針分別

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

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論