版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
章節(jié)編號知識點(diǎn)重要性出題類型及數(shù)量
111指針基本概念、指針變重要選擇題(5道,必做);
量的定義與引用
112通過指管引用數(shù)組元重要選擇題(5道,必做);
素,重點(diǎn)指針的運(yùn)算
113通過指針引用多維數(shù)組了解選擇題(1道,必做);
114通過指針引用字符串重要選擇題(5道,必做)
115指針變量作為函數(shù)參數(shù)?般選擇題(2道,必做);
程序題(1道,必做)
116數(shù)組名作為函數(shù)參數(shù)重要選擇題(3道,必做)
程序題(3道,2道必做,1道選做)
117字符指針作為函數(shù)參數(shù)重要選擇題(3道,必做)
程序題(5道,3道必做,2道選做)
118指向函數(shù)的指針了解選擇題(1道,必做);
119返回指針值的函數(shù)了解選擇題(1道,必做);
1110指針數(shù)組一般選擇題(2道,必做);
程序題(1道,必做)
1111多重指針一般選擇題(2道,必做);
1112動態(tài)內(nèi)存分配,包括重要程序題(2道,1道必做,1道選做)
void指針類型
一、選擇題
指向變量的指針
L變量的指針,其含義是指該變量的.知識點(diǎn)8.1
a)值b)地址
c)名d)一個標(biāo)志
2.若有語句int"point,a=4;和point=&a;下面均代表地址的一組選項(xiàng)是_
知識點(diǎn)8.1
a)a,point,h)&*a,&a,*point
c)*&point,*point,&ad)&a,&*point,point
3.若有說明intm=5,n,*p;以下正確的程序段的是______?知識點(diǎn)8.1
a)p=&n;b)p=&n;
scanf("%d'\&p);scanf(”%d”,*p);
c)scanf(H%dH,&n);d)p=&n;
P=n;*p=m;
4.以下程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯誤的,其錯誤原因是
.知識點(diǎn)8.1
main()
(
int*p,*q,a,b;
p=&a;
printfflnputa:");
scanf("%d",*p);
a)*p表示的是指針變量p的地址
b)*p表示的是變量a的值,而不是變量a的地址
c)*p表示的是指針變量p的值
d)*p只能用來說明p是一個指針變量
5.己有變量定義和函數(shù)調(diào)用語句:inta=25;print_value(&a);下面函數(shù)的正確輸
出結(jié)果是_______.知識點(diǎn)8.1
voidprint_value(int*x)
{printf("%d\n”,++*x);}
a)23b)24c)25d)26
6.若有說明:long*p,a;則不能通過scanf語句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是
知識點(diǎn)8.1
A)*p=&a;scanf(w%ld",p);
B)p=(long*)malloc(8);scanf("%ld",p);
C)scanf(M%ldn,p=&a);
D)scanf(',%ldH,&a);
7.有以下程序知識點(diǎn)8.1
#include<stdio.h>
main()
{intm=l,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf(u%d,%d,%d,%d\n",m,n,*p,*q);
)
程序運(yùn)行后的輸出結(jié)果是
A)1,2,1,2B)1,2,2,1
C)2,1,2,1D)2,1,1,2
8.有以下程序知識點(diǎn)8.1
main()
{inta=l,b=3,c=5;
int*pl=&a,*p2=&b,*p=&c;
*p=*pl*(*p2);
printf("%d\nn,c);
)
執(zhí)行后的輸出結(jié)果是
A)1B)2C)3D)4
9.有以下程序知識點(diǎn)8.1
inta,k=4,m=4,*pl=&k,*p2=&m;
a=pl==&m;
printf(M%d\n",a);
程序運(yùn)行后的輸出結(jié)果是()
A)4B)1C)0D)運(yùn)行時出錯,無定值
intk=4,m=4,*pl=&k,*p2=&m,*p=NULL;
p=pl!=p2;
指向數(shù)組的指針
10.在16位編譯系統(tǒng)上,若有定義inta[]={10,20,30),*p=&a;,當(dāng)執(zhí)行p++;后,
下列說法錯誤的是()知識點(diǎn)8.2
A)p向高地址移了一個字節(jié)B)p向高地址移了一個存儲單元
C)p向高地址移了兩個字節(jié)D)p與a+1等價
1L有以下程序段知識點(diǎn)8.2
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是()
A)5B)6C)8D)9
12.若有以下定義,則對a數(shù)組元素的正確引用是_________.知識點(diǎn)8.2
inta[5],*p=a;
a)*&a[5]b)a+2c)*(p+5)d)*(a+2)
13.若有以下定義,則p+5表示.知識點(diǎn)8.2
inta[10],*p=a;
a)元素a[5]的地址b)元素a[5]的值
c)元素a[6]的地址d)元素a[6]的值
14.設(shè)已有定義:inta[10]={15,12,7,31,47,20,16,28,13,19},"p;下列語句中正確的
是()知識點(diǎn)8?2
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.有以下程序段知識點(diǎn)8.2
#include<stdio.h>
intmain()
{intx[]={10,20,30);
int*px=x;
printf(M%dJ,++*px);printf(n%dJ,*px);
px=x;
printf(M%d,M,(*px)++);printf(,,%d,H,*px);
px=x;
printf(M%dJ,*px++);printf(n%d,M,*px);
px=x;
printf(M%d,M,*++px);printf(n%d\nM,*px);
return0;
)
程序運(yùn)行后的輸出結(jié)果是()
A)11,11,11,12,12,20,20,20B)20,10,11,10,11,10,11,10
C)11,11,11,12,12,13,20,20D)20,10,11,20,11,12,20,20
16.設(shè)有如下定義:知識點(diǎn)8.2
intarr[]={6,7,8,9,10};
int*ptr;
ptr=arr;
*(ptr+2)+=2;
printf(M%d,%<i\n,,,*ptr,*(ptr+2));
則程序段的輸出結(jié)果為
A)8,10B)6,8C)7,9D)6,10
17.若有定義:inta[曰2,4,6,8,10,12}日=用則*玲+1)的值是.*(a+5)的值是
.知識點(diǎn)8.2
18.若有以下說明和語句,intc⑷⑸,(*p)[5];p=c;能正確引用c數(shù)組元素的是
.知識點(diǎn)8.3
A)p+1B)*(p+3)C)*(p+1)+3D)*(p[01+2))
19.若有定義:int分⑵[3],則對分?jǐn)?shù)組的i行j列元素地址的正確引用為.
知識點(diǎn)8.3
a)*(a[i]+j)b)(a+i)c)*(a+j)d)a[i]+je)*(a+i)+j
20.若有以下定義:inta⑵[3]={2,4,6,8,10,12};則的值是.*(*(a+l)+0)
的值是.知識點(diǎn)8.3
/〃〃〃/〃/〃/〃〃〃/〃//〃//〃/〃/〃〃/〃/〃〃〃/////〃/〃〃〃〃/〃〃//////,7/〃〃//〃〃〃//〃///〃〃/〃〃〃//〃//〃〃〃/〃
指向字符串的指針
21.有以下定義
chara[10],*b=a;
不能給數(shù)組a輸入字符串的語句是()知識點(diǎn)&4
A)gets(a)B)gets(a[0])C)gets(&a[0]);D)gets(b);
22,下面程序段的運(yùn)行結(jié)果是.知識點(diǎn)8.4
char*s="abcdeu;
s4-=2;printf(,'%d,',s);
a)cdeb)字符七,c)字符e的地址d)無確定的輸出結(jié)果
23.以下程序段中,不能正確賦字符串(編譯時系統(tǒng)會提示錯誤)的是()知識
點(diǎn)8.4
A)chars[l0]="abcdefg';B)chart[]="abcdefg",*s=t;
C)chars[10];s="abcdefg";D)chars[10];strcpy(s,"abcdefg");
24.設(shè)已有定義:char*skhowareyou";下列程序段中正確的是()知識點(diǎn)8.4
A)chara[1,*p;strcpy(p=a+1,&st[4]);
B)chara[l1];strcpy(++a,st);
C)chara[l1];strcpy(a,st);
D)chara[],*p;strcpy(p=^raf1],st+2);
25.有以下程序知識點(diǎn)8.4
main()
(
charaU="programming",bU="languagc";
char*pl,*p2;
inti;
pl=a;p2=b;
for(i=0;i<7;i++)
if(*(p1+i)==*(p2+i))
printf(,'%c",*(pl+i));
I
輸出結(jié)果是()
A)gmB)rgC)orD)ga
26.設(shè)pl和p2是指向同一個字符串的指針變量,c為字符變量,則以下不能正
確執(zhí)行的賦值語句是_______.知火點(diǎn)8.4
a)c=*pl+*p2;b)p2=cc)pl=p2d)c=*pl*(*p2);
27.以下正確的程序段是________.知識點(diǎn)8.4
a)charstr[20];b)char*p;
scanf("%s”,&sir);scanf(H%s",p);
c)charstr[2()];d)charstr[2O],*p=str;
scanf(u%s",&str[2]);scanf(M%sn,p[21);
28.若有說明語句知混點(diǎn)8.4
chara[]="Itismine";
char*p="Itismine";
則以下不正確的敘述是_______.
a)a+l表示的是字符t的地址
b)p指向另外的字符串時,字符串的長度不受限制
c)p變量中存放的地址值可以改變
d)a中只能存放1()個字符
29.下面程序的運(yùn)行結(jié)果是______.知識點(diǎn)8.4
#include<stdio.h>
#include<string.h>
main()
{char*sl="AbDeG";
char*s2="AbdEgo:
sl+=2;s2+=2;
printf(',%d\n,,,strcmp(sl,s2));
)
a)正數(shù)b)負(fù)數(shù)c)零d)不確定的值
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiir.iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiu
函數(shù)與指針
30.有以下程序知識點(diǎn)8.5
#defineN8
voidf(int*x,int*y)
(
intt;
t=*x;*x=*y;*y=t;
)…
intmain()
(
inta[N]={lA3A5,6,7,8),l,*p,*q;
P=a;
q=&a[N-l];
while(*p!=*q)
(
f(p,q);
P++;q-;
}
for(i=0;i<N;i++)
printf(M%d,H,a[i]);
return0;
)
程序運(yùn)行后的輸出結(jié)果是O
A)82,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,43,2,1,
31.已定義以下函數(shù)知識點(diǎn)8.5
fun(int*p)
{return*p;}
該函數(shù)的返回值是
A)不確定的值B)形參p中存放的值
C)形參p所指存儲單元中的值D)形參p的地址值
32.有以下程序知識點(diǎn)8.6
intf(intb[][4])
{inti,j,s=O;
for(j=0;j<4;j++)
1=j;
if(i>2)i=3-j;
s+=b[i][j];
)
returns;
)
main()
{inta⑷⑷={{1,2,3,4},{0,245},{3,6,9,12},{321,0}};
printf("%d\n”,f(a));
)
執(zhí)行后的輸出結(jié)果是
A)12B)11C)18D)16
33.若有以下函數(shù)首部
intfun(doublex[10],int*n)
則下面針對此函數(shù)的函數(shù)聲明語句中正確的是知一只點(diǎn)8.6
A)intfun(doublex,int*n);B)intfun(double,int);
C)intfun(double*x,intn);D)intfun(double*,int[]);
34,有以下程序知識點(diǎn)8.6
voidsum(int*a)
{a[0]=a[l];}
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\nu,aa[0]);
)
執(zhí)行后的輸出結(jié)果是。
A)4B)3C)2D)1
35.下段代碼的運(yùn)行結(jié)具是:知識點(diǎn)8.7
intmain()
(
chara;
char*str=&a;
strcpy(str,"hello");
printf(str);
return0;
)
A)helloB)nullC)hD)發(fā)生異常
36.下段程序的運(yùn)行結(jié)縣是:知識點(diǎn)8.7
voidmain()
char*p,*q;
charstr[]="Hello,World\nu;
q=p=str;
P++;
print(q);
print(p);
)
voidprint(char*s)
(
printf(“%s”,s);
)
A)He
B)Hello,Worldello,World
QHcllo,WorldHello,World
D)ello,Worldell-World
37.有以下程序知識點(diǎn)8.7
voidfun(char*c,intd)
(
*C=*c+1;
d=d+l;
printf("%c,%c,",*c,d);
)
voidmain()
{
chara='A\b='a,;
fun(&b,a);
printf("%c,%c\n",a,b);
}
程序運(yùn)行后的輸出結(jié)果是______O
A)B,a,B,aB)a,B,a,BC)A,b,A,bD)b,B,A,b
llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllilllllllllllllllllllllllllllllllllllllllllllllll
38、下面選項(xiàng)屬于函數(shù)指針的是:知識點(diǎn)8.8
A^(int*)p(int,int)int*p(int,int)C、兩者都是D、兩者都不是
39、若有函數(shù)max(a,b),并且已使函數(shù)指針變量p指向函數(shù)max,當(dāng)調(diào)用該函數(shù)
時,正確的調(diào)用方法是.知識點(diǎn)8.8
A)(*p)max(a,b);B)*pmax(a,b);
C)(*p)(a,b);D)*p(a,b);
40、下面兒個選項(xiàng)中的代碼能通過編譯的是:知識點(diǎn)8.9
A)int*fun()
ints[3]={1,3,4};
returns;
)
intmain()
(
int*result;
result=fun();
for(inti=0;i<3;i++)
printf(H%d\nM,result[i]);
return0;
)
B)int&fun()
(
ints[3]={1,3,4);
returns;
)
intmain()
{
int*result;
result=fun();
for(inti=0;i<3;i++)
return0;
)
C)int*fun()
(
ints[3]={1,3,4);;
return&s;
)
intmain()
(
int*result;
result=fun();
for(inti=0;i<3;i++)
printf(H%d\nH,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(n%d\n",result[i]);
return0;
}
41、下列選項(xiàng)中聲明了一個指針數(shù)組的是:知識點(diǎn)8.10
A)int*p[2];B)int(*p)[2];
C)typedcfint*intPtr;intPtrp[2];
D)A和B
E)A和C
F)B和C
42、下面代碼能通過編譯的是:知識點(diǎn)8.10
A)intmain()
(
inta[3]={1,2,3);
int*b[3]={&a[l],&a[2],&a[3]};
int**p=b;
return0;
)
B)intmain()
(
inta[3]={1,2,3);
int*b[3]={a[l],a[2],a[3]};
int**p=b;
return0;
)
C)intmain()
(
inta[3]={1,2,3);
int*b[3]={&a[l],&a[2],&a[3]};
int*p=b;
return0;
D)intmain。
(
inta[3]={1,2,3);
int*b[3]={&a[l],&a[2],&a[3]);
int*p=&b;
return0;
43,對于語句int*pa⑸;下列描述中正確的是______.知識點(diǎn)8.10
A)pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素
B)pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量
C)pa⑸表示某個元素的第5個元素的值
D)pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針
44、若有以下定義,且0/iV4,則不正確的賦值語句是______?知識點(diǎn)8.10
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進(jìn)行++運(yùn)算,則a應(yīng)具有下面說明.知識點(diǎn)8.10
A)inta[3][2J;B)char*a[]={“12",“ab"};
C)floata[3];D)intb[10],*a=b;
46、若有以下說明語句:知識點(diǎn)8.11
char*language[]={“FORTRAN”JBASICVPASCAL”JJAVA"JC"};
char**q;
q=language+2;
則語句printf("%o\n”,*q)輸出的是______.
A)language⑵元素的地址;
B)字符備PASCAL
C)language⑵元素的值,它是字符串PASCAL的首地址
D)格式說明不正確,無法得到確定的輸出
47、若有以下程序:知識點(diǎn)8.11
voidmain()
(
char*a[3]={T',"love”,“China”};
char**ptr=a;
printf("%c%s",*(*(a+1)+1),*(ptr+1));
I
這段程序的輸出是()
A)I1
B)oo
C)olove
D)Ilove
參考答案
l.B2.D3.D4.B5.D6.A7.B8.C9.C10.A
II.DI2.D13.AI4.BI5.AI6.D17.(4,I2)18.D19.D20.(8,8)
21.B22.C23.C24.A/C?25D26.B27.C28.D29.B30.D
31.C32.D33.D34.A35.D36.B37.D38.D39.C40.A
41.E42.A43.D44.B45.C/D46.C47.C
二、程序題
題目要求:設(shè)計(jì)函數(shù)實(shí)現(xiàn)功能,利用指針傳遞參數(shù),主函數(shù)測試子函數(shù)功能。
1、用指針方法實(shí)現(xiàn)數(shù)組的轉(zhuǎn)置,完成如下函數(shù)的設(shè)計(jì)
voidinvertl(int*a,intlen);〃一維數(shù)組的翻轉(zhuǎn)
voidinvert!(int(*a)[N]);〃將N*N的矩陣以對角線為軸翻轉(zhuǎn)
2、尋找n個元素的整型數(shù)組中最大元素的位置
int*max(int*a,intn);〃返回最大元素的地址
3、用指針方法查找數(shù)組中是否存在值為key的元素,并刪除數(shù)組中的指定元素,
設(shè)計(jì)如下函數(shù)實(shí)現(xiàn)其功能:
/*函數(shù)功能:查找數(shù)組a中是否存在值為key的元素
參數(shù)說明:數(shù)組首地址a,數(shù)組長度n,待查找元素key
返回值:若查找成功則返回值為第一個key值元素下標(biāo),否則返回一1
*/
intfind(int*a,intn,intkey);
/*函數(shù)功能:刪除數(shù)組a中下標(biāo)為k的元素
參數(shù)說明:數(shù)組首地址a,數(shù)組長度n,待刪除元素下標(biāo)k
返回值:若成功刪除a[k]則返回1,若k>=n不能刪除則返回0
*/
intdclctc(int*a,intn,intk);//長度為n
思考:若數(shù)組中存在重復(fù)的元素,即要查找的key值有多個,如何設(shè)計(jì)函數(shù)?
4、n個學(xué)生參加期末考試,
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年及未來5年市場數(shù)據(jù)中國重型自卸車市場全面調(diào)研及行業(yè)投資潛力預(yù)測報告
- 奢華童夢還是消費(fèi)陷阱?奢侈品童裝廣告的深度剖析
- 麻醉護(hù)理新技術(shù)與新進(jìn)展
- 護(hù)理領(lǐng)導(dǎo)力與決策能力提升
- 手術(shù)患者引流管護(hù)理
- 員工考勤管理辦法(3篇)
- 精神病患者培訓(xùn)班課件
- 2026年安徽省銅陵市單招職業(yè)適應(yīng)性考試題庫附答案詳解
- 2026年炎黃職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫及答案詳解一套
- 2026年重慶三峽醫(yī)藥高等專科學(xué)校單招職業(yè)技能考試題庫及答案詳解1套
- 陜西省咸陽市2024-2025學(xué)年高一上學(xué)期期末教學(xué)質(zhì)量檢測數(shù)學(xué)試卷(含解析)
- 鹽城市2025年濱??h事業(yè)單位公開招聘人員66人筆試歷年參考題庫典型考點(diǎn)附帶答案詳解(3卷合一)
- 2025江蘇鹽城東臺市消防救援綜合保障中心招聘16人筆試考試參考題庫及答案解析
- 2025年廣東省第一次普通高中學(xué)業(yè)水平合格性考試(春季高考)數(shù)學(xué)試題(含答案詳解)
- 2026年企業(yè)內(nèi)容運(yùn)營方案設(shè)計(jì)與品牌價值傳播指南
- 廣州市南沙區(qū)南沙街道社區(qū)專職招聘考試真題2024
- 孤獨(dú)癥譜系障礙的神經(jīng)發(fā)育軌跡研究
- GB 46768-2025有限空間作業(yè)安全技術(shù)規(guī)范
- T/CECS 10214-2022鋼面鎂質(zhì)復(fù)合風(fēng)管
- DL∕T 5776-2018 水平定向鉆敷設(shè)電力管線技術(shù)規(guī)定
- 核對稿600單元概述校核
評論
0/150
提交評論