




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言指針習題及答案C語言指針習題及答案C語言指針習題及答案C語言指針習題及答案編制僅供參考審核批準生效日期地址:電話:傳真:郵編:指針主要內容的習題及答案一.選擇題1.變量的指針,其含義是指該變量的B。A)值B)地址C)名D)一個標志2.已有定義intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向變量k,下面不能正確執行的賦值語句是B。A)k=*ptr1+*ptr2B)ptr2=kC)ptr1=ptr2D)k=*ptr1*(*ptr2)3.若有說明:int*p,m=5,n;以下程序段正確的是D。A)p=&n;B)p=&n;scanf(“%d”,&p);scanf(“%d”,*p);C)scanf(“%d”,&n);D)p=&n;*p=n;*p=m;4.已有變量定義和函數調用語句:inta=25;print_value(&a);下面函數的輸出結果是D。voidprint_value(int*x){printf(“%d\n”,++*x);}A)23B)24C)25D)265.若有說明:int*p1,*p2,m=5,n;以下均是正確賦值語句的選項是C。A)p1=&m;p2=&p1;B)p1=&m;p2=&n;*p1=*p2;C)p1=&m;p2=p1;D)p1=&m;*p1=*p2;6.若有語句:int*p,a=4;和p=&a;下面均代表地址的一組選項是D。A)a,p,*&aB)&*a,&a,*pC)*&p,*p,&aD)&a,&*p,p7.下面判斷正確的是C。A)char*a=”china”;等價于char*a;*a=”china”;B)charstr[10]={“china”};等價于charstr[10];str[]={“china”;}C)char*s=”china”;等價于char*s;s=”china”;D)charc[4]=”abc”,d[4]=”abc”;等價于charc[4]=d[4]=”abc”;8.下面程序段中,for循環的執行次數是C。char*s=”\ta\018bc”;for(;*s!=’\0’;s++)printf(“*”);A)9B)7C)6D)59.下面能正確進行字符串賦值操作的是C。A)chars[5]={“ABCDE”};B)chars[5]={‘A’,’B’,’C’,’D’,’E’};C)char*s;s=”ABCDE”;D)char*s;scanf(“%s”,s);10.下面程序段的運行結果是C。char*s=”abcde”;s+=2;printf(“%d”,s);A)cdeB)字符’c’C)字符’c’的地址D)不確定11.設p1和p2是指向同一個字符串的指針變量,c為字符變量,則以下不能正確執行的賦值語句是B。A)c=*p1+*p2B)p2=cC)p1=p2D)c=*p1*(*p2)12.設有程序段:chars[]=”china”;char*p;p=s;則下面敘述正確的是D。A)s和p完全相同B)數組s中的內容和指針變量p中的內容相等C)s數組長度和p所指向的字符串長度相等D)*p與s[0]相等13.以下與庫函數strcpy(char*p1,char*p2)功能不相等的程序段是D。A)strcpy1(char*p1,char*p2){while((*p1++=*p2++)!=’\0’);}B)strcpy2(char*p1,char*p2){while((*p1=*p2)!=’\0’){p1++;p2++}}C)strcpy3(char*p1,char*p2){while(*p1++=*p2++);}D)strcpy4(char*p1,char*p2){while(*p2)*p1++=*p2++;}14.下面程序段的運行結果是C。chara[]=”language”,*p;p=a;while(*p!=’u’){printf(“%c”,*p-32);p++;}A)LANGUAGEB)languageC)LANGD)langUAGE16.以下與庫函數strcmp(char*s,char*t)功能相等的程序段是C。A)strcmp1(char*s,char*t){for(;*s++=*t++;)if(*s==’\0’)return0;return(*s-*t);}B)strcmp2(char*s,char*t){for(;*s++=*t++;)if(!*s)return0;return(*s-*t);}C)strcmp3(char*s,char*t){for(;*t==*s;){if(!*t)return0;t++;s++;}return(*s-*t);}D)strcmp4(char*s,char*t){for(;*s==*t;s++,t++)if(!*s)return0;return(*t-*s);}17.以下說明不正確的是D。A)chara[10]=”china”;B)chara[10],*p=a;p=”china”;C)char*a;a=”china”;D)chara[10],*p;p=a=”china”;18.設有說明語句:chara[]=”Itismine”;char*p=”Itismine”;則以下不正確的敘述是D。A)a+1表示的是字符t的地址B)p指向另外的字符串時,字符串的長度不受限制C)p變量中存放的地址值可以改變D)a中只能存放10個字符19.若已定義chars[10];則在下面表達式中不表示s[1]的地址是B。A)s+1B)s++C)&s[0]+1D)&s[1]20.若有定義:inta[5],*p=a;則對a數組元素的正確引用是D。A)*&a[5]B)a+2C)*(p+5)D)*(a+2)21.若有定義:inta[5],*p=a;則對a數組元素地址的正確引用是D。A)p+5B)*a+1C)&a+1D)&a[0]22.若有定義:inta[2][3];則對a數組的第i行第j列元素值的正確引用是A。A)*(*(a+i)+j)B)(a+i)[j]C)*(a+i+j)D)*(a+i)+j23.若有定義:inta[2][3];則對a數組的第i行第j列元素地址的正確引用是D。A)*(a[i]+j)B)(a+i)C)*(a+j)D)a[i]+j24.若有程序段:inta[2][3],(*p)[3];p=a;則對a數組元素地址的正確引用是。A)*(p+2)B)p[2]C)p[1]+1D)(p+1)+225.若有程序段:inta[2][3],(*p)[3];p=a;則對a數組元素的正確引用是C。A)(p+1)[0]B)*(*(p+2)+1)C)*(p[1]+1)D)p[1]+226.若有定義:inta[5];則a數組中首元素的地址可以表示為C。A)&aB)a+1C)aD)&a[1]27.若有定義:int(*p)[4];則標識符pC。A)是一個指向整型變量的指針B)是一個指針數組名C)是一個指針,它指向一個含有四個整型元素的一維數組D)定義不合法28.以下與int*q[5];等價的定義語句是C。A)intq[5]B)int*qC)int*(q[5])D)int(*q)[5]29.以下正確的說明語句是B。A)int*b[]={1,3,5,7,9};B)inta[5],*num[5]={&a[0],&a[1],&a[2],&a[3],&a[4]};C)inta[]={1,3,5,7,9};int*num[5]={a[0],a[1],a[2],a[3],a[4]};D)inta[3][4],(*num)[4];num[1]=&a[1][3];30.若有定義:intb[4][6],*p,*q[4];且0≤i<4,則不正確的賦值語句是D。A)q[i]=b[i];B)p=b;C)p=b[i];D)q[i]=&b[0][0]32.若要對a進行自減運算,則a應有下面說明D。A)intp[3];B)intk;C)char*a[3]D)intb[10];int*a=p;int*a=&k;int*a=b+1;33.以下選項中,對指針變量p的正確操作是B。A)inta[3],*p;B)inta[5],*p;C)inta[5];D)inta[5]p=&a;p=a;int*p=a=100;int*p1,*p2=a;*p1=*p2;34.若有定義:intx[10]={0,1,2,3,4,5,6,7,8,9},*p1;則數值不為3的表達式是C。A)x[3]B)p1=x+3,*p1++C)p1=x+2,*(p1++)D)p1=x+2,*++p135.下面程序段的輸出是C。inta[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k;for(k=01;k<4;k++)q[k]=&a[k*3];printf(“%d\n”,q[3][0]);A)8B)16C)20D)輸出不合法36.若要對a進行自增運算,則a應具有下面說明D。A)inta[3][2];B)char*a[]={“12”,”ab”};C)char(*a)[3]D)intb[10],*a=b;37.若有定義inta[4][6];則能正確表示a數組中任一元素a[i][j](i,j均在有效范圍內)地址的表達式A。A)&a[0][0]+6*i+jB)&a[0][0]+4*j+iC)&a[0][0]+4*i+jD)&a[0][0]+6*j+I38.下面程序的運行結果是B。main(){intx[5]={2,4,6,8,10},*p,**pp;p=x,pp=&p;printf(“%d”,*(p++));printf(“%3d”,**pp);}A)44B)24C)22D)4639.若有定義intx[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*p)[3]=x;則能夠正確表示數組元素x[1][2]的表達式是D。A)*((*p+1)[2])B)(*p+1)+2C)*(*(p+5))D)*(*(p+1)+2)40.若有說明:char*language[]={“FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};則language[2]的值是B。A)一個字符B)一個地址C)一個字符串D)一個不定值41.設有定義:char*cc[2]={“1234”,”5678”};則正確的敘述是A。A)cc數組的兩個元素中各自存放了字符串”1234”和”5678”的首地址B)cc數組的兩個元素分別存放的是含有4個字符的一維字符數組的首地址C)cc是指針變量,它指向含有兩個數組元素的字符型一維數組D)cc元素的值分別維”1234”和”5678”42.已有定義int(*p)();指針p可以B。A)代表函數的返回值B)指向函數的入口地址C)表示函數的類型D)表示函數返回值的類型43.已有函數max(a,b),為了讓函數指針變量p指向函數max,正確的賦值方法是A。A)p=max;B)p=max(a,b);C)*p=max;D)*p=max(a,b);44.若有函數max(a,b),并且已使函數指針變量p指向函數max,當調用該函數時,正確的調用方法是C或p(a,b)。A)(*p)max(a,b)B)*pmax(a,b);C)(*p)(a,b);D)*p(a,b);45.以下正確的敘述是C。A)C語言允許main函數帶形參,且形參個數和形參名均可由用戶指定B)C語言允許main函數帶形參,形參名只能是argc和argvC)當main函數帶有形參時,傳給形參的值只能從命令行中得到D)若有說明:intmain(intargc,char**argv),則argc的值必須大于1三.程序閱讀題1.寫出下面程序的運行結果。5func(char*s,chara,intn){intj;*s=a;j=n;while(*s<s[j])j--;returnj;}main(){charc[6];inti;for(i=1;i<=5;i++)*(c+1)=’A’+i+1;printf(“%d\n”,func(c,’E’,5));}2.寫出下面程序的運行結果。6fun(char*s){char*p=s;while(*p)p++;return(p-s);}main(){char*a=”abcdef”;printf(“%d\n”,fun(a));}3.寫出下面程序的運行結果。abcdefglkjihsub(char*a,intt1,intt2){charch;while(t1<t2){ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--;}}main(){chars[12];inti;for(i=0;i<12;i++)s[i]=’A’+i+32;sub(s,7,11);for(i=0;i<12;i++)printf(“%c”,s[i]);printf(“\n”);}4.當運行以下程序時,寫出輸入6↙的程序運行結果。976531sub(char*a,charb){while(*(a++)!=’\0’);while(*(a-1)<b)*(a--)=*(a-1);*(a--)=b;}main(){chars[]=”97531”,c;c=getchar();sub(s,c);puts(s);}5.寫出下面程序的運行結果。JavadBaseCLanguagePascalmain(){char*a[]={“Pascal”,”CLanguage”,”dBase”,”Java”};char(**p)[];intj;p=a+3;for(j=3;j>=0;j--)printf(“%s\n”,*(p--));}四.程序填空題1.下面函數的功能是從輸入的十個字符串中找出最長的那個串,請填(2)空使程序完整。voidfun(charstr[10][81],char**sp){inti;*sp=【1str[0]】;for(i=1;i<10;i++)if(strlen(*sp)<strlen(str[i]))【2*sp=str[i]】;}2.下面函數的功能是將一個整數字符串轉換為一個整數,例如:”-1234”轉換為1234,請填(3)空使程序完整。intchnum(char*p){intnum=0,k,len,j;len=strlen(p);for(;【1*p!=’\0’
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機電工程臨床技能的提升方法試題及答案
- 網絡工程師在工作中的情緒管理試題及答案
- 項目經理的角色與責任分析試題及答案
- 西方公共政策分析試題及答案
- 精密儀器與機電試題及答案
- 探索信息系統項目管理師考試中的變化與應對策略試題及答案
- 計算機科技如何影響公共政策試題及答案
- 社會政策的實施效果與課程設計考點及答案
- 西方政治制度新視角試題及答案2025
- 模擬復習提高應試能力性試題及答案
- 《人工智能發展史》課件
- T-CMES 04001-2020 機床裝備制造成熟度評價規范
- 電力工程委托維護合同樣本
- 合成生物學行業未來三年發展洞察及預測分析報告
- JJF 2168-2024 鹽霧試驗箱校準規范
- 新概念英語第二冊-lesson-77-A-Successful-Operation
- 取髂骨植骨術后護理
- 中醫推拿治療兒童近視
- 社區服務中心突發事件應急預案
- 5.5 跨學科實踐:制作望遠鏡教學設計八年級物理上冊(人教版2024)
- 國家職業技術技能標準 6-30-05-05 挖掘鏟運和樁工機械司機 人社廳發20235號
評論
0/150
提交評論