C語言指針經典練習題-及答案_第1頁
C語言指針經典練習題-及答案_第2頁
C語言指針經典練習題-及答案_第3頁
C語言指針經典練習題-及答案_第4頁
C語言指針經典練習題-及答案_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C語言指針練習題及答案、選擇題.變量的指針,其含義是指該變量的—.a)fi b)地址c)名 d)一個標志.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項是a)a,point,*&a b)&*a,&a,*pointc)*&point,*point,&a d)&a,&*point,point.若有說明;int*p,m=5,n;以下正確的程序段的是.a)p=&n; b)p=&n;scanf("%d",&p); scanf("%d",*p);c)scanf("%d",&n); d)p=&n;*p=n; *p=m;.以下程序中調用scanf函數(shù)給變量a輸入數(shù)值的方法是錯誤的,其錯誤原因是main(){int*p,*q,a,b;p=&a;printf(inputa:");scanf(%d",*p);}a)*p表示的是指針變量p的地址b)*p表示的是變量a的值,而不是變量a的地址c)*p表示的是指針變量p的值d)*p只能用來說明p是一個指針變量.已有變量定義和函數(shù)調用語句:inta=25;print_value(&a);下面函數(shù)的正確輸出結果是. 一voidprint_value(int*x){printf(%d\n”,++*x);}a)23 b)24 c)25 d)26.若有說明:long*p,a;則不能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是*p=&a;scanf("%ld",p);p=(long*)malloc(8);scanf("%ld",p);scanf("%ld",p=&a);scanf("%ld",&a);.有以下程序#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序運行后的輸出結果是

A)1,2,1,2C2,1,2,1.有以下程序main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d\n",c);}執(zhí)行后的輸出結果是A)1 B)2 C)3.有以下程序main(){inta,k=4,m=4,*p1=&k,*p2=&m;a=p1==&m;printf("%d\n",a);}程序運行后的輸出結果是()B)1,2,2,1D)2,1,1,2D)410.在16位編譯系統(tǒng)上,若有定義B)1,2,2,1D)2,1,1,2D)410.在16位編譯系統(tǒng)上,若有定義int下列說法錯誤的是()a[]={10,20,30},*p=&a;,當執(zhí)行p++;后,p向高地址移了一個字節(jié)C)p向高地址移了兩個字節(jié)p向高地址移了一個存儲單元D)p與a+1等價.有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5]; b中的值是()A)5 B)6 C)8 D)9.若有以下定義,則對a數(shù)組元素的正確引用是inta[5],*p=a;a)*&a[5] b)a+2c)*(p+5)d)*(a+2).若有以下定義,則p+5表示.inta[10],*p=a;a)元素a[5]的地址 b)元素a[5]的值c)元素a[6]的地址 d)元素a[6]的值.設已有定義:inta[10]={15,12,7,31,47,20,16,28,13,19},*p;下列語句中正確的是()for(p=a;a<(p+10);a++);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);.有以下程序段#include<stdio.h>intmain(){ intx口={10,20,30};int*px=x;printf("%d,",++*px);printf("%d,",*px);px=x;

printf("%d,",(*px)++);px=x;printf("%d,",*px++);px=x;printf("%d,",*++px);return0;printf("%d,",(*px)++);px=x;printf("%d,",*px++);px=x;printf("%d,",*++px);return0;}程序運行后的輸出結果是printf("%d,",*px);printf("%d,",*px);printf("%d\n",*px);A)11,11,11,12,12,20,20,20C)11,11,11,12,12,13,20,20)B)20,10,11,10,11,10,11,10D)20,10,11,20,11,12,20,20.設有如下定義則程序段的輸出結果為intarr□={6,7,8,9,10};int*ptr;ptr=arr;*(ptr+2)+=2;printf("%d,%d\n",*ptr,*(ptr+2));A)8,10B)6,8C)7,9D)6,10A)8,10B)6,8C)7,9D)6,10.若有定義:inta□={2,4,6,8,10,12},*p=a;則*(p+1)的值是_4一*(a+5)的值是__12__.A)p+1B)*(p+3).若有以下說明和語句,intc[4][5],(*p)[5];p=c;能正確引用c數(shù)組元素的是A)p+1B)*(p+3)C)*(p+1)+3D)*(p[0]+2)).若有定義:inta[2][3],則對a數(shù)組的第i行j列元素地址的正確引用為 .a)*(a[i]+j) b)(a+i) c)*(a+j)d)a[i]+j.若有以下定義:inta[2][3]={2,4,6,8,10,12};貝Ua[1][0]的值是_8_.*(*(a+1)+0)的a輸入字符串的語句是()D)gets(b);a輸入字符串的語句是()D)gets(b);C)gets(&a[0]);日..有以下定義 C)gets(&a[0]);日.A)gets(a)B)gets(a[0]).下面程序段的運行結果char*s="abcde";s+=2;printf("%d",s);a)cdeb)字符a)cdeb)字符'c' c)字符'c'的地址d)無確定的輸出結果.以下程序段中,不能正確賦字符串(編譯時系統(tǒng)會提示錯誤)的是(A)chars[10]="abcdefg"; B)chart[]="abcdefg",*s=t;C)chars[10];s="abcdefg"; D)chars[10];strcpy(s,"abcdefg");.設已有定義:char*st="howareyou";下列程序段中正確的是( )A)charB)charC)charD)chara[11],*p;a[11];A)charB)charC)charD)chara[11],*p;a[11];a[11];a[],*p;strcpy(p=&a[1],st+2);.有以下程序輸出結果是()main(){chara[]="programming",b[]="language";char*p1,*p2;inti;p1=a;p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));}A)gmB)rg C)or D)ga.設pl和p2是指向同一個字符串的指針變量,c為字符變量,則以下不能正確執(zhí)行的賦值語句是.a)c=*p1+*p2;b)p2=cc)p1=p2 d)c=*p1*(*p2);.以下正確的程序段是.a)charstr[20]; b)char*p;scanf("%s”,&str); scanf("%s",p);c)charstr[20]; d)charstr[20],*p=str;scanf("%s”,&str[2]); scanf("%s",p[2]);.若有說明語句則以下不正確的敘述是.chara[]="Itismine";char*p="Itismine";a)a+1表示的是字符t的地址b)p指向另外的字符用時,字符串的長度不受限制c)p變量中存放的地址值可以改變d)a中只能存放10個字符.下面程序的運行結果是—.#include<stdio.h>#include<string.h>main(){char*s1="AbDeG";char*s2="AbdEg";s1+=2;s2+=2;printf("%d\n",strcmp(s1,s2));}a)正數(shù) b)負數(shù)c)零d)不確定的值.有以下程序運行后的輸出結果是。voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;}main(){inta[8]={123,4,5,6,7,8},i=0,*p,*q;p=a;q=&a[7];while(*p!=*q&&i<8){f(p,q);p++;q--;i++;}for(i=0;i<8;i++)printf("%d,",a[i]);}A)8,2,3,4,5,6,7,1, B)5,6,7,8,1,2,3,4,C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,1,.已定義以下函數(shù)fun(int*p){return*p;}該函數(shù)的返回值是A)不確定的值 B)形參p中存放的值C)形參p所指存儲單元中的值 D)形參p的地址值.有以下程序intf(intb口[4]){inti,j,s=0;for(j=0;j<4;j++){i=j;if(i>2)i=3-j;s+=b[i][j];}returns;}main(){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í)行后的輸出結果是A)12B)11C)18D)1633.若有以下函數(shù)首部則下面針對此函數(shù)的函數(shù)聲明語句中正確的是intfun(doublex[10],int*n)A) int fun(doublex,int*n); B) int fun(double, int);C) int fun(double*x,intn); D) int fun(double*,int*);.有以下程序執(zhí)行后的輸出結果是( )voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}A)4 B)3 C)2 D)1.下段代碼的運行結果是:intmain(){chara;char*str=&a;strcpy(str,"hello");puts(str);return0;}A)helloB)nullC)h D)發(fā)生異常.下段程序的運行結果是voidmain(){char*p,*q;charstr[]="Hello,World'n";q=p=str;P++;print(q);print(p);}voidprint(char*s){printf(%s”,s);}A)HeB)Hello,Worldello,WorldC)Hello,World Hello,WorldD)ello,Worldell,World.有以下程序voidfun(char*c,intd){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}voidmain(){chara='A',b='a';fun(&b,a);printf("%c,%c\n",a,b);}程序運行后的輸出結果是—。A)B,a,B,aB)a,B,a,BC)A,b,A,bD)b,B,A,b38、下面選項屬于函數(shù)指針的是: A、(int*)p(int,int)B、int*p(int,int)C、兩者都是D、兩者都不是39、若有函數(shù)max(a,b),并且已使函數(shù)指針變量p指向函數(shù)max,當調用該函數(shù)時,正確的調用方法是 ^A)(*p)max(a,b); B)*pmax(a,b);C)(*p)(a,b); D)*p(a,b);40、下面幾個選項中的代碼能通過編譯的是 :A)int*fun(){ints[3]={1,3,4};;returns;}intmain(){int*result;result=fun();for(inti=0;i<3;i++)printf("%d\n",result[i]);return0;}B)int&fun(){ints[3]={1,3,4};;returns;}intmain(){int*result;result=fun();for(inti=0;i<3;i++)printf("%d\n",result[i]);return0;}C)int*fun(){ints[3]={1,3,4};;return&s;}intmain(){int*result;result=fun();for(inti=0;i<3;i++)printf("%d\n",result[i]);return0;}D)int&fun(){ints[3]={1,3,4};;return&s;}intmain()int*result;result=fun();for(inti=0;i<3;i++)printf("%d\n",result[i]);return0;}41、下列選項中聲明了一個指針數(shù)組的是:A)int*p[2]; B)int(*p)[2];C)typedefint*intPtr;intPtrp[2];D)A和BE)A和CF)B和C42、下面代碼能通過編譯的是:A)intmain(){inta[3]={1,2,3};int*b[3]={&a[1],&a[2],&a[3]};int**p=b;return0;}B)intmain(){inta[3]={1,2,3};int*b[3]={a[1],a[2],a[3]};int**p=b;return0;}C)intmain(){inta[3]={1,2,3};int*b[3]={&a[1],&a[2],&a[3]};int*p=b;return0;}D)intmain(){inta[3]={1,2,3};int*b[3]={&a[1],&a[2],&a[3]};int*p=&b;return0;}43、對于語句int*pa[5];下列描述中正確的是pa是一個指向數(shù)組的指針,所指向的數(shù)組是 5個int型元素int(*p)[5]pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量pa[5]表示某個元素的第5個元素的值pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針44、若有以下定義,且0&i<4,則不正確的賦值語句是^intb[4][6],*p,*q[4];A)q[i]=b[i]; B)p=b;C)p=b[i] D)q[i]=&b[0][0];45、若要對a進行++運算,則a應具有下面說明.A)inta[3][2]; B)char*a[]={l2",“ab”};C)char(*a)[3]; D)intb[10],*a=b;46、若有以下說明語句:charlanguage口={FORTRAN","BASIC",'PASCAL",'JAVA",“C"};char**q;q=language+2;則語句printf(%o\n”,*q)輸出的是 .A)language[2]元素的地址;B)字符串PASCALC)language[2優(yōu)素的值,它是字符串PASCAL的首地址D)格式說明不正確,無法得到確定的輸出47、若有以下程序:voidmain(){char*a[3]={"I","love","China"};char**ptr=a;printf("%c%s",*(*(a+1)+1),*(ptr+1));}這段程序的輸出是()IlooC)oloveD)Ilove二、程序題1、計算字符串中子用出現(xiàn)的次數(shù)。要求:用一個子函數(shù)subString()實現(xiàn),參數(shù)為指向字符串和要查找的子用的指針,返回次數(shù)。加密程序:由鍵盤輸入明文,通過加密程序轉換成密文并輸出到屏幕上。 算法:明文中的字母轉換成其后的第4個字母,例如,A變成E(a變成e),Z變成D,非字母字符不變;同時將密文每兩個字符之間插入一個空格。例如,China轉換成密文為Glmre。要求:在函數(shù)change中完成字母轉換,在函數(shù)insert中完成增加空格,用指針傳遞參數(shù)。字符替換。要求用函數(shù)replace將用戶輸入的字符串中的字符t(T)都替換為e(E),并返回替換字符的個數(shù)。編寫一個程序,輸入星期,輸出該星期的英文名。用指針數(shù)組處理。

5、有5個字符串,首先將它們按照字符串中的字符個數(shù)由小到大排列,再分別取出每個字符串的第三個字母合并成一個新的字符串輸出(若少于三個字符的輸出空格)。要求:利用字符串指針和指針數(shù)組實現(xiàn)。定義一個動態(tài)數(shù)組,長度為變量n,用隨機數(shù)給數(shù)組各元素賦值,然后對數(shù)組各單元排序,定義swap函數(shù)交換數(shù)據(jù)單元,要求參數(shù)使用指針傳遞。實現(xiàn)模擬彩票的程序設計:隨機產生6個數(shù)字,與用戶輸入的數(shù)字進行比較,輸它們相同的數(shù)字個數(shù)(使用動態(tài)內存分配)。題號答案1B2D3D4B5D6A7B8C9C10A11D12D13A [14B15A16D174,1218D19D [208,821B22c :23C24A25D26B27C28D29B30C31C32D33D

34A135D36B37D[38D:39C40A41E142A43D44B[45D:46C47C個人懂你,就是時時關心你;就是刻刻在乎你;就

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論