c語言指針經(jīng)典練習(xí)題-及答案_第1頁
c語言指針經(jīng)典練習(xí)題-及答案_第2頁
c語言指針經(jīng)典練習(xí)題-及答案_第3頁
c語言指針經(jīng)典練習(xí)題-及答案_第4頁
c語言指針經(jīng)典練習(xí)題-及答案_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言指針練習(xí)題及答案一、選擇題1.變量的指針,其含義是指該變量的.c)名d)一個(gè)標(biāo)志2.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項(xiàng)是.a)a,point,*&ab)&*a,&ac)*&point,*point,&ad)&3.若有說明;int*p,m=5,n;以下正確的程序段的是scanf("%d",&p);scanf("%d",*p);c)scanf("%d",&n);d)p=&n;*p=n;*p=m;4.以下程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯(cuò)誤的,其錯(cuò)誤原因{scanf(“%d”,*p);}a)*p表示的是指針變量p的地址b)*p表示的是變量a的值,而不是變量a的地址c)*p表示的是指針變量p的值d)*p只能用來說明p是一個(gè)指針變量5.已有變量定義和函數(shù)調(diào)用語句:inta=25;print_value(&a);下面函數(shù)的正確輸出結(jié)果是-總結(jié)資料-voidprint_value(int*x)6.若有說明:long*p,a;則不能通過scanf語句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是A)*p=Ga;scanf("%ld",p);B)p=(long*)malloc(8);scanf("%ld",p);C)scanf("%ld",p=&a);D)scanf("%ld",&a);7.有以下程序#include<stdio.h>r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);A)1,2,1,2{inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;printf("%d\n",c);9.有以下程序}程序運(yùn)行后的輸出結(jié)果是()-總結(jié)資料-A)4B)1C)0D)運(yùn)行時(shí)出錯(cuò),無定值10.在16位編譯系統(tǒng)上,若有定義inta[]={10,20,30},*p=&a;,當(dāng)執(zhí)行p++;后,下列說法錯(cuò)誤的是()A)p向高地址移了一個(gè)字節(jié)B)p向高地址移了一個(gè)存儲單元C)p向高地址移了兩個(gè)字節(jié)D)p與a+1等價(jià)11.有以下程序段12.若有以下定義,則對a數(shù)組元素的正確引用是inta[5],*p=a;a)*&a[5]b)a+2c)*(p+5)d)*(a+2)13.若有以下定義,則p+5表示inta[10],*p=a;a)元素a[5]的地址b)元素a[5]的值14.設(shè)已有定義:inta[10]={15,12,7,31,47,20,16,28,13,19},*p;下列語句中正A)for(p=a;a<(p+10);a++);B)for(p=a;p<(a+10);p++);C)for(p=a,a=a+10;p<a;p++);D)for(p=a;a<p+10;++a);15.有以下程序段#include<stdio.h>printf("%d,",++*px);printf("%d,",*px);printf("%d,",(*px)++);printf("%d,",*px);)A)11,11,11,12,12,20,20,20B)20,10,11,10,11,10,11,10C)11,11,11,12,12,13,20,20D)20,10,11,20,11,12,20,20A)8,10B)6,8C)7,9D)6,10 19.若有定義:inta[2][3],則對a數(shù)組的第i行j列元素地址的正確引用為的值是8.21.有以下定義chara[10],*b=a;不能給數(shù)組a輸入字符串的語句是()A)gets(a)B)gets(a[0])C)gets(&a[0]);D)gets(b);char*s="abcde";a)cdeb)字符'c'c)字符c的地址d)無確定的輸出結(jié)果23.以下程序段中,不能正確賦字符串(編譯時(shí)系統(tǒng)會提示錯(cuò)誤)的是()A)chars[10]="abcdefg";B)chart[]="abcdefg",*s=t;-總結(jié)資料-C)chars[10];s="abcdefg";D)chars下列程序段中正確的是()A)chara[11],*p;strcpy(p=a+1,&st[4]);B)chara[11];strcpy(++a,C)chara[11];strcpy(a,st);D)chara[],*p;strcpy(p=&a[1],st+2);25.有以下程序輸出結(jié)果是(){chara[]="programming",b[]="language";p1=a;p2=b; 26.設(shè)p1和p2是指向同一個(gè)字符串的指針變量,C 確執(zhí)行的賦值語句是27.以下正確的程序段是.scanf("%s",&str);d)charstr[20],*p=str;scanf("%s",&str[2]);scanf("%s",p[2]);28.若有說明語句則以下不正確的敘述是a)a+1表示的是字符t的地址b)p指向另外的字符串時(shí),字符串的長度不受限制c)p變量中存放的地址值可以改變d)a中只能存放10個(gè)字符29,下面程序的運(yùn)行結(jié)果是-總結(jié)資料-#include<string.h>char*s2="AbdEg";s1+=2;s2+=2;(a)正數(shù)b)負(fù)數(shù)c)零d)不確定的值30.有以下程序運(yùn)行后的輸出結(jié)果是。voidf(int*x,int*y){t=*x;*x=*y;*y=t;{inta[8]={1,2,3,4,5,6,7,8},i=0,*p,*q;p=a;q=&a[7];}C)1,2,3,4,5,6,7,8,D)8,7,6,5,4,3,2,1,31.已定義以下函數(shù)fun(int*p){return*p;}該函數(shù)的返回值是A)不確定的值B)形參p中存放的值C)形參p所指存儲單元中的值D)形參p的地址值32.有以下程序for(j=0;j<4;·++)-總結(jié)資料-s+=b[i][j];}{inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};printf("%d\n",f(a));}執(zhí)行后的輸出結(jié)果是33.若有以下函數(shù)首部則下面針對此函數(shù)的函數(shù)聲明語句中正確的是intfun(doublex[10],int*n)A)intfun(doublex,int*n);BC)intfun(double*x,intn);D)intfun(double*,int*);34.有以下程序執(zhí)行后的輸出結(jié)果是()voidsum(int*a){a[0]=a[1];}{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);35.下段代碼的運(yùn)行結(jié)果是:{char*str=Ga;strcpy(str,"hello");}36.下段程序的運(yùn)行結(jié)果是-總結(jié)資料-char*p,*q;}}B)Hello,Worldello,WoC)Hello,WorldHello,WorldD)ello,Worldell,World37.有以下程序voidfun(char*c,intd){*c=*c+1;d=d+1;}σchara='A',b='a';fun(&b,a);}程序運(yùn)行后的輸出結(jié)果是。A)B,a,B,aB)a,B38、下面選項(xiàng)屬于函數(shù)指針的是:A、(int*)p(int,int)B、int*p(int,int)C、兩者都是D、兩者都不是39、若有函數(shù)max(a,b),并且已使函數(shù)指針變量p指向函數(shù)max,當(dāng)調(diào)用該函數(shù)時(shí),正確的調(diào)用方法是-總結(jié)資料A)(*p)max(a,b);B)*pmax(a,b);40、下面幾個(gè)選項(xiàng)中的代碼能通過編譯的是:{ints[3]={1,3,4};;}{for(inti=0;i<3;i++)printf("%d\n",result[i]);{}Sfor(inti=0;i<3;i++)}{}{printf("%d\n",result[i]);}-總結(jié)資料-{}{int*result;result=fun();}41、下列選項(xiàng)中聲明了一個(gè)指針數(shù)組的是42、下面代碼能通過編譯的是:{{}C)intmain(){-總結(jié)資料-}{inta[3]={1,2,3};int*b[3]={&a[1],&a[2],&a[3]};}43、對于語句int*pa[5];下列描述中正確的是A)pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素int(*p)[5]B)pa是一個(gè)指向某數(shù)組中第5個(gè)元素的指針,該元素是int型變量C)pa[5]表示某個(gè)元素的第5個(gè)元素的值D)pa是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針44、若有以下定義,且O≤i<4,則不正確的賦值語句是.45、若要對a進(jìn)行++運(yùn)算,則a應(yīng)具有下面說明A)inta[3][2];B)char*a[]={“12”,”ab”};46、若有以下說明語句:char*language[]={“FORTRAN”,”BASIC”,"PASCAL”,”JAVA","C"};則語句printf(“%o\n”,*q)輸出的是.A)language[2]元素的地址;C)language[2]元素的值,它是字符串PASCAL的首地址D)格式說明不正確,無法得到確定的輸出-總結(jié)資料-voidmain(){char*a[3]={"I","love","China"};char**ptr=a;}這段程序的輸出是()l0二、程序題指向字符串和要查找的子串的指針,返回次數(shù)。加密程序:由鍵盤輸入明文,通過加密程序轉(zhuǎn)換成密文并輸出到屏幕上。算法:明文中的字母轉(zhuǎn)換成其后的第4個(gè)字母,例如,A變成E(a變成e),Z變成D,非字母字符不變;同時(shí)將密文每兩個(gè)字符之間插入一個(gè)空格。例如,China轉(zhuǎn)換成密文為Glmre。要求:在函數(shù)change中完成字母轉(zhuǎn)換,在函數(shù)insert中完成增加空格,用指針傳遞參數(shù)。字符替換。要求用函數(shù)replace將用戶輸入的字符串中的字符t(T)都替換為e(E)并返回替換字符的個(gè)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論