練習(xí)7 指針_下發(fā)_第1頁(yè)
練習(xí)7 指針_下發(fā)_第2頁(yè)
練習(xí)7 指針_下發(fā)_第3頁(yè)
練習(xí)7 指針_下發(fā)_第4頁(yè)
練習(xí)7 指針_下發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(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、第7單元 指針一 單項(xiàng)選擇題1.若有以下定義,則對(duì)a數(shù)組元素的正確引用是_。int a5, *p=a;A)*&a5 B)a+2 C)*(p+5) D)*(a+2)2.若有以下定義,則對(duì)a數(shù)組元素地址的正確引用是_ 。int a5, *p=a;A)p+5 B)*a+1 C)&a+1 D)&a03.如下程序的執(zhí)行結(jié)果是_。#include void main()static int a =1,2,3,4,5,6;int *p;p=a;*(p+3)+=2;printf(“%d,%dn “,*p,*(p+3);A)1,3 B)3,6 C)1,6 D)1,4void main()int x8=8,7,6

2、,5,0,0,*s;s=x+3;printf(%dn,s2);執(zhí)行后輸出結(jié)果是_。A) 隨機(jī)值 B) 0 C) 5 D) 6int *p,a=10,b=1p=&a;a=*p+b;執(zhí)行該程序段后,a的值為_(kāi)。A) 12 B) 11 C) 10 D) 編譯出錯(cuò) 6 若已定義a為int型變量,則是對(duì)指針變量p的正確說(shuō)明和初始化。A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列說(shuō)明語(yǔ)句:static int a=2,4,6,8static int *p=a,a+1,a+2,a+3;int *q;q=p;則表達(dá)式*(q+2)的值是。A 6

3、B 2 C 4 D 88 下面是一個(gè)初始化指針的語(yǔ)句:int *px=&a;,其中指針變量的名字應(yīng)該。A *px B a C px D &a9 若指針px為空指針,則。A px指向不定 B px的值為零 C px的目標(biāo)為零 D px的地址為零 10 對(duì)下語(yǔ)句int *px10;,下面正確的說(shuō)法是。A px是一個(gè)指針,指向一個(gè)數(shù)組,數(shù)組的元素是整數(shù)型。B px是一個(gè)數(shù)組,其數(shù)組的每一個(gè)元素是指向整數(shù)的指針。C A和B均錯(cuò),但它是C語(yǔ)言的正確語(yǔ)句。D C語(yǔ)言不允許這樣的語(yǔ)句。11 具有相同基類型的指針變量p和數(shù)組y,下列寫(xiě)法中不合法的是。A p=y B *p=yi C p=&yi D p=&y12

4、 已知static int a=5,4,3,2,1,*p=a+3,a+2,a+1,a,*q=p; ,則表達(dá)式 *(p0+1)+*(q+2) 的值是。A 5 B 4 C 6 D 713.如下程序的執(zhí)行結(jié)果是_。#include void main( )static int a 4=1,3,5,7,9,11,13,15,17,19,21,23;int (*p)4, i=1,j=2; p=a;printf(“%d n “, *(*(p+i)+j);A)9 B)11 C)13 D)1714 設(shè)有如下程序段char s20=Beijing,*p; p=s;則執(zhí)行p=s;語(yǔ)句后,以下敘述正確的是。A 可以

5、用*p表示s0B s數(shù)組中元素個(gè)數(shù)和p所指字符串長(zhǎng)度相等C s和p都是指針變量D 數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相同15 設(shè)int型變量i、n均已定義,指針變量s1、s2各指向一個(gè)字符串。在for(i=0;in;i+)循環(huán)中,下列語(yǔ)句用以實(shí)現(xiàn)將s2所指字符串中前n個(gè)字符復(fù)制到s1所指字符串中,其中代碼正確的是。A *s1+=*s2+; B s1n-1=s2n-1;C *(s1+n-1)=*(s2+n-1); D *(+s1)=*(+s2);16 給出下列程序的運(yùn)行結(jié)果。#include void main() static char a=language,b=program;char *p

6、tr1=a,*ptr2=b;int k;for(k=0;k7;k+)if(*(ptr1+k)=*(ptr2+k) printf(%c,*(ptr1+k);A gae B ga C language D 有語(yǔ)法錯(cuò)誤 17 以下程序執(zhí)行后的輸出結(jié)果是。void fun1(char *p) char *q;q=p;while(*q!=0) (*q)+; q+; main() char a=Program,*p;p=&a3; fun1(p); printf(%sn,a);A Prohsbn B Prphsbn C Progsbn D Program 18 以下程序執(zhí)行后的輸出結(jié)果是。void swap

7、(char *x,char *y) char t;t=*x; *x=*y; *y=t;main() char *s1=abc,*s2=123;swap(s1,s2); printf(%s,%sn,s1,s2);A 123,abc B abc,123 C 1bc,a23 D 321,cba 19 以下程序執(zhí)行后的輸出結(jié)果是。main() char *p=3697,2584;int i,j; long num=0;for(i=0;i2;i+) j=0;while(pij!=0) if(pij-0)%2) num=10*num+pij-0;j+=2;printf(%dn,num);A 35 B 37

8、 C 39 D 3975 20 下列程序運(yùn)行后的輸出結(jié)果是。void main() char str=The_Microsoft; int n=4;sub(str,0,n-1);sub(str,0,strlen(str)-1);printf(%sn,str);sub(str,n1,n2)char *str;int n1,n2; char c,*p;p=str+n2;str=str+n1;while(strp) c=*str; *str=*p; *p=c;str+; p-;A tfosorciMThe_ B. ehT_Microsoft C tfosorciM_ehT D. Microsoft_

9、The二 填空題1 以下程序的定義語(yǔ)句中,x1的初值是 ,程序運(yùn)行后輸出的內(nèi)容是 。main() int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p4,i;for(i=0; i4; i+) pi=&x2*i+1; printf(%d, pi0); printf(n);2 以下程序的輸出結(jié)果是 。void swap(int *a, int *b) int *t;t=a; a=b; b=t;main() int i=2,j=5,*p=&i,*q=&j;swap(p,q); printf(%d %dn,*p,*q)3 以下程序的輸出結(jié)果是 。main()

10、int a5=2,4,6,8,10, *p;p=a; p+;printf(%d, *p);4 以下程序的輸出結(jié)果是_。#define M 5#define N M+Mmain() int k;k=N*N*5; printf(%dn,k);5 若有定義語(yǔ)句:int a4=0,1,2,3,*p;p=&a1;則+(*p)的值是 。 6 若有定義:int a23=2,4,6,8,10,12;則*(&a00+2*2+1)的值是 ,*(a1+2)的值是 。7 若有程序段:int *p3,a6,i;for(i=0;i3;i+) pi=&a2*i ;則*p0引用的是a數(shù)組元素 ,*(p1+1)引用的是a數(shù)組元

11、素 。三 程序填空題1 下面函數(shù)的功能是從輸入的十個(gè)字符串中找出最長(zhǎng)的那個(gè)串,請(qǐng)?zhí)羁帐钩绦蛲暾?。void fun(char str1081,char *sp) int i;*sp = 【1】 ;for(i=1;i10; i+)if(strlen(*sp)strlen(stri) 【2】 ;2 下面函數(shù)的功能是將一個(gè)整數(shù)字符串轉(zhuǎn)換為一個(gè)整數(shù),例如:1234轉(zhuǎn)換為1234,請(qǐng)?zhí)羁帐钩绦蛲暾nt chnum(char *p) int num=0,k,len,j;len=strlen(p);for( ; 【3】 ; p+) k= 【4】 ; j=(-len);while( 【5】 ) k=k*10

12、;num=num+k;return (num);3 下面函數(shù)的功能使統(tǒng)計(jì)子串substr在母串str中出現(xiàn)的次數(shù),請(qǐng)?zhí)羁帐钩绦蛲暾?。int count(char *str, char *substr) int i,j,k,num=0;for(i=0; 【6】 ;i+)for( 【7】 ,k=0;substrk=strj;k+,j+)if(substr 【8】 =0) num+ ; break ; return (num);4 下面函數(shù)的功能是用遞歸法將一個(gè)整數(shù)存放到一個(gè)字符數(shù)組中,存放時(shí)按逆序存放,如483存放成“384”,請(qǐng)?zhí)羁帐钩绦蛲暾?。void convert(char *a, int n) int i;if(i=n/10)!=0) convert( 【9】 ,i);else *(a+1)=0;*a= 【10】 ;四 程序編寫(xiě)1. 編一程序,將字符串computer賦給一個(gè)字符數(shù)組,然后從第一個(gè)字母開(kāi)始間隔地輸出該串。請(qǐng)用指針完成。2. 編寫(xiě)一函數(shù)

溫馨提示

  • 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)論