版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本章考點(diǎn):(1)指針與指針變量的概念(2)指針的定義、類型、賦值(3)指針運(yùn)算符(4)指針與數(shù)組關(guān)系(5)用指針作函數(shù)參數(shù)(6)指針數(shù)組、數(shù)組指針、指針函數(shù)、指向指針的指針(7)main()函數(shù)的命令行參數(shù)第8章指針7.1指針的概念簡單地說,指針就是地址。如:inta=3,b=5,s;編譯時(shí)就會(huì)隨機(jī)分別給變量分配地址。變量地址內(nèi)容
a2003
b2025執(zhí)行printf(“%d”,a);先找到a的地址200201從中輸出3。執(zhí)行s=a+b;
s204先從200201中取出3,再從202203中取出5相加后把8送入204205中這種按地址存取值的方式叫“直接訪問”。C語言除了“直接訪問”還有一種“間接訪問”。定義一種特殊的變量如p用來存放變量地址,通過p=&a來把a(bǔ)的地址200201存放到p中,把p叫指針變量。用來存放把變量地址的變量叫指針變量。一、指針變量的定義:
基本類型*指針變量名int*p1,*p2;inti,j;
float*a,*b;(1)&(取地址運(yùn)算符)
如:inta=5,b=6;int*p,*q;p=&a;q=&b;(2)*(取指針?biāo)傅刂分袃?nèi)容)二、指針運(yùn)算符把a(bǔ)的地址給p把b的地址給q如以上*p=?*q=?1.指針變量只能存放地址,不能將非地址數(shù)據(jù)賦給指針變量如:p=103.指針變量的賦值必須在同類型之間,進(jìn)行比較、賦值、減等運(yùn)算。2.p=NULL或’\0’或0,表示空地址,NULL是在stdio.h頭文件中預(yù)定義符。其值為0。
=a=5=b=6
&*p=,*&a=&a*pfloata[4]={5,6,1,2};float*p,;p=&a[0];或p=a把數(shù)組元素的首地址給指針變p4.&只能操作在變量和數(shù)組元素上,不能用在表達(dá)式、常量或被說明為register的變量。例1通過指針變量訪問整型變量main(){inta=100,b=200;int*p1,*p2;p1=&a;p2=&b;printf(“%d,%d”,a,b);printf(“%d,%d”,*p1,*p2);}100200100200例4設(shè)有定義:intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價(jià)的是
A)*p=*q;B)p=q;C)*p=&n1;D)p=*q;例3對(duì)于基類型相同的兩個(gè)指針變量之間,不能進(jìn)行的運(yùn)算是A)<B)=C)+D)-(2)以下敘述中錯(cuò)誤的是A)改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值B)函數(shù)可以返回地址值C)可以給指針變量賦一個(gè)整數(shù)作為地址值D)當(dāng)在程序的開頭包含頭文件stdio.h時(shí),可以給指針變量賦NULL(1)設(shè)有定義:intn,*k=&n;以下語句利用指針變量k讀寫變量n中的內(nèi)容,請(qǐng)將語句補(bǔ)充完整。scanf(“%d,”[1]);printf(“%d\n”,[2]。);k*k利用指針變量來給數(shù)組變量賦值或訪問數(shù)組的值:進(jìn)一步簡化:for(p=a,k=0;k<10;k++)scanf(“%d”,p++);再進(jìn)一步簡化:for(p=a,p-a<10;p++)scanf(“%d”,p);以上三種寫法是等價(jià)的,要掌握,能看懂。例.有以下程序運(yùn)行后的輸出結(jié)果是
main()
{
int
a[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)
printf(“%d,”,*p);}
A)1,2,3,4,5,6,7,8,9,0,
B)2,3,4,5,6,7,8,9,10,1,
C)0,1,2,3,4,5,6,7,8,9,
D)1,1,1,1,1,1,1,1,1,,1,for(p=a,k=0;k<10;k++){scanf(“%d”,p);p++;}如有:inta[10],*p;6、以下程序的輸出結(jié)果是:#include<stdio.h>main(){printf(“%d\n”,NULL);}A)因變量無定義輸出不定值B)0C)-1D)17、若程序中已包含頭文件stdio.h,以下選項(xiàng)中,正確運(yùn)用指針變量的程序段是A)int*i=NULL;scanf(“%d”,i);B)float*f=NULL;*f=10.5;C)chart=‘m’,*c=&t;D)long*L;L=‘\0’;8若有定義語句:double
x,y,*px,*py,執(zhí)行了px=&x,
py=&y;之后,正確的輸入語句是
A)scanf(“%f%f”,x,y);
B)
scanf(“%f%f”,&x,&y);
C)scanf(“%lf%le”,px,py);
D)
scanf(“%lf%lf”,x,y);
(9)有以下程序
#include<stdio.h>
main()
{char
*s=“ABC”;
do
{printf(“%d”,*s%10);s++;
}while(*s);}
A).5670
B).656667
C.)567
D)ABC指針有四個(gè)算術(shù)運(yùn)算符“++--+-”三、指針的算術(shù)運(yùn)算符(1)++或--表示指針往前或往后移動(dòng)一個(gè)位置。
如:int*p;inta[10]={1,2,3,4,5,6,7,8,9};p=&a[2]*p++;*++p;*--p;(*p)++;*p;*p++*++p*--p*p--
(*p)++++(*p)(*p)----(*p)指針都會(huì)向前或向后移動(dòng)指針不動(dòng),內(nèi)容加一*p++*(p++)結(jié)合方向從右往左(2)p1+n或p1-nn是一個(gè)整數(shù)p1+n表示從當(dāng)前指針開始第n個(gè)元素的地址。但是指針不會(huì)移動(dòng)。
int*p;inta[10]={1,2,3,4,5,6,7,8,9};p=a;則p+3表示是元素a[3]的地址&a[3]。*(p+3)=p+5表示元素a[5]的地址&a[5]。*(p+5)=main(){inta[10]={9,7,6,5,4,3,2,1,0},*p;p=a;p++;printf(“%d”,*p++);printf(“%d”,*(p+5));printf(“%d”,(*p++,*++p));printf(“%d”,(*p)++);printf(“%d”,*p);}a[3]=4a[5]=671445(1)若有inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為6的表達(dá)式是A)*p+6B)*(p+5)C)*p+=6D)p+5(2)以下程序輸出的結(jié)果是main(){intarr[]={6,7,8,9},*ptr=arr;*(ptr+2)+=2;printf(“%d,%d\n”,*ptr,*(ptr+2));}
A)3,7B)4,8C)5,9D)6,10(3)有以下程序運(yùn)行后的輸出結(jié)果是
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;
printf("%d\n",*p+*q);}
A)16B)10C)8D)6
(4)有以下程序運(yùn)行后的輸出結(jié)果是main(){chars[]="159",*p;p=s;pintf("%c",*p++);printf("%c",*p++);}A)15B)16C)12D)59五、指針變量作為函數(shù)參數(shù)對(duì)以下程序:int*f(int*x,int*y)
{if(*x<*y)
returnx;
else
returny;}main()
{inta=7,b=8,*p,*q,*r;
p=&a;q=&b;
r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}執(zhí)行后輸出結(jié)果是
傳遞地址7,8,71、下列程序的輸出結(jié)果是【】。voidfun(int*n){while((*n)--);printf(“%d”,++(*n));}main(){inta=100;fun(&a);}答案:02、有以下程序voidfun(char*c,intd){*c=*c+1;d=d+1;printf(“%c,%c,”,*c,d);}main(){chara=’A’,b=’a’;fun(&b,a);printf(“%c,%c\n”,a,b);}程序運(yùn)行后的輸出結(jié)果是A)B,a,B,a B)a,B,a,B C)A,b,A,b D)b,B,A,b答案D例3有以下程序輸出結(jié)果是:
swap(int*p1,int*p2)
{int*t;
t=p1;p1=p2;p2=t;}
main()
{inta=5,b=7,*b1,*b2;
b1=&a;b2=&b;
printf(“%d,%d”,a,b);swap(b1,b2);
printf("%d,%d,%d\n",*b1,*b2);}例4有以下程序輸出結(jié)果是:
swap(int*p1,int*p2)
{intt;
t=*p1;*p1=*p2;*p2=t;}
main()
{inta=5,b=7,*b1,*b2;
b1=&a;b2=&b;
printf(“%d,%d”,a,b);swap(b1,b2);
printf("%d,%d,%d\n",*b1,*b2);}答案:5,7答案:5,7答案:5,7答案:7,5例5有以下程序運(yùn)行后的輸出結(jié)果是
#include
<stdio.h>
void
fun(
int
*a,int
*b)
{int
*c;
c=a;a=b;b=c;}
main()
{int
x=3,y=5,*p=&x,*q=&y;
fun(p,q);printf(“%d,%d,”,*p,*q);
fun(&x,&y);printf(“%d,%d\n”,*p,*q);}A).3,5,5,3
B.)3,5,3,5
C).5,3,3,5
D).5,3,5,36、有以下程序voidfun(char*a,char*b){a=b;(*a)++;}main(){charc1=‘A’,c2=‘a(chǎn)’,*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf(“%c%c\n”,c1,c2);}程序運(yùn)行后的輸出結(jié)果是:A)AaB)aaC)AbD)Bb7、以下函數(shù)用來求出兩個(gè)整數(shù)之和,并通過形參將結(jié)果返回,請(qǐng)?zhí)羁誺oidfunc(intx,inty,[]z){*z=x+y;}答案:CInt*8有以下程序輸出結(jié)果是:voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;}
main()
{char*s1=”abc”,*s2=”123”;
swap(s1,s2);
printf(“%s,%s”,s1,s2);}A)123,abcB)abc,123C)1bc,a23D)321,cba答案:C8.2指針與一維數(shù)組:指向一維數(shù)組的指針變量:inta[10],*p=a;
(1)c規(guī)定數(shù)組名是代表數(shù)組的首地址,是常量,不可以重新給數(shù)組名賦值。如:inta[10],x;則:a=&x或a++都是非法的。
(2)c規(guī)定可以用數(shù)組名加一個(gè)整數(shù)的辦法,來依次表達(dá)數(shù)組不同元素地址,如a=a+0等價(jià)&a[0]a+1等價(jià)&a[1]等價(jià)a+2&a[2](3)對(duì)有inta[10],*p=a則p=p+0等價(jià)&a[0],p+1等價(jià)&a[1],因此:p+1與a+1p+2與a+2p+i與a+i等價(jià)
(4)表達(dá)一個(gè)數(shù)組元素a[i]的地址有三種方法:&a[i],a+i,p+i(5)如有:inta[10],*p=a;則引用數(shù)組元素a[i]有四種方法:a[i]*(a+i)*(p+i)p[i]指向一維數(shù)組的指針變量:inta[10],*p=a;(6)這里p與a有明顯的區(qū)別,p是指針變量,p++可以移動(dòng)指針,使p的值改變,a是指針常量,值不變。a++,a=&a[i]是非法的運(yùn)算,而p++,p=&a[i]是合法的如有charc[20],*p;c=“howareyou”是非法的p=“howareyou”是合法的p指針變量,代表h的地址C是數(shù)組名,是常量,不能賦值charc[20]=“howareyou”這是合法的,定義與賦值(1)以下語句或語句組中,能正確進(jìn)行字符串賦值的是A)char*sp;*sp="right!";B)chars[10];s="right!";C)chars[10];*s="right!";D)char*sp="right!";
(2)設(shè)已有定義:char*st="howareyou";下列程序段中正確的是
A)chara[11],*p;strcpy(p=a+1,&st[4]);
B)chara[11];strcpy(++a,st);
C)chara[11];strcpy(a,st);
D)chara[],*p;strcpy(p=&a[1],st+2)(7)用一維數(shù)名作實(shí)參時(shí)aa(s)(假設(shè)aa(int*)為定義好的函數(shù),s為一維數(shù)組),對(duì)應(yīng)的形參可以為:aa(int*s),aa(ints[]),aa(ints[M]),實(shí)質(zhì)上C都是把其按第一種指針形式理。
(3)下面判斷正確的是A)char*a="china";等價(jià)于char*a;*a="china";B)charstr[5]={"china"};等價(jià)于charstr[]={"china"};C)char*s="china";等價(jià)于char*s;s="china";D)charc[4]="abc",d[4]="abc";等價(jià)于charc[4]=d[4]="abc";(1)有以下程序
#include<stdio.h>
void
fun(char
*s)
{while(*s)
{
if(*s%2==0)
printf(“%c”,*s);
s++;}
}
main()
{
char
a[]={“good”};
fun(a);printf(“\n”);}
A.)d
B).go
C).god
D).good
(3)有以下程序執(zhí)行后輸出結(jié)果是main(){intx[8]={8,7,6,5,0,0},*s;s=x+3;printf("%d\n",s[2]);}A)隨機(jī)值 B)0 C)5 D)6(2)下列程序是給數(shù)組所有元素輸入數(shù)據(jù),則下劃線處應(yīng)填入main(){inta[10],i=0;while(i<10)scanf(“%d”,
);
A)a+(i++)B)&a[i+1]C)a+iD)&a[++i](1)下列程序的輸出結(jié)果是main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf(“%d”,*--p);}A)非法B)a[4]的地址 C)5D)3(4)有以下程序運(yùn)行后的輸出結(jié)果是
main()
{inta[]={2,4,6,8,10},y=0,x,*p;
p=&a[1];
for(x=1;x<3;x++)y+=p[x];
printf("%d\n",y);}
A)10B)11C)14D)15C若有定義:int*p,a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};913511a[0]a[1]a[2]a1371517192123說明:a是一個(gè)數(shù)組名,它包含三個(gè)(行)元素:a[0]、a[1]、a[2]。而每個(gè)元素又是一個(gè)一維數(shù)組。8.3指針與二維數(shù)組每行包含4個(gè)元素。用a[0][0]、a[0][1]、a[0][2]等來引用a[0]中元素。a[0]、a[1]、a[2]是二維數(shù)組中的三個(gè)一維數(shù)組名。二維數(shù)的地址(1)二維數(shù)組名a也是指針,代表數(shù)組的首地址&a[0][0],是常量。(2)對(duì)二維數(shù)組a[3][4]來說,它是由三個(gè)一維a[0],a[1],a[2]組成a[0],a[1],a[2]為一維數(shù)組名,分別代表二維數(shù)a[3][4]每行的首地址&a[0][0],&a[1][0],&a[2][0]是常量。a[0]++非法。
(3)C規(guī)定可用二維數(shù)名加一個(gè)整數(shù)表示代表每行的首地址:a+i
a+0與a[0]、a相同,表示是地址&a[0][0]a+1與a[1]相同,表示是地址&a[1][0]a+2與a[2]相同,表示是地址&a[2][0]a+1移動(dòng)了一行,移動(dòng)了4元素假設(shè)&a[0][0]為2000,則a+1的地址為2008。若有:inta[3][4],*pp+1移動(dòng)幾個(gè)元素?p=a?p與a的基類型不一樣,表達(dá)式a+1中的數(shù)值1的單位應(yīng)是4x2個(gè)字節(jié),表示跨越一行有4個(gè)元素,而不是2個(gè)字節(jié),指針p只能存放2個(gè)字節(jié)的地址,p+1中的1是1x2個(gè)字節(jié)表示下1個(gè)元素。p=a[1],或p=&a[1][0]是合法的。在二維數(shù)組中a[3][4],*(a+1)是表示地址還元素內(nèi)容?在一維數(shù)組中,a[0]等價(jià)與*(a+0),a[1]等價(jià)與*(a+1)(4)在二維數(shù)組中,*(a+i)是指一個(gè)地址,就是一維數(shù)組名a[i]。所以二維數(shù)組元素a[i][j]的地址可以通過以下方式表示:&a[i][j]a[i]+j*(a+i)+j所以二維數(shù)組元素a[i][j]的內(nèi)容可以通過以下方式表示:&a[i][j]*(a[i]+j)*(*(a+i)+j)用二維數(shù)名作實(shí)參時(shí)aa(s)(假設(shè)aa(int*)為定義好的函數(shù),s為一維數(shù)組),對(duì)應(yīng)的形參可以為:aa(int(*s)[N]),aa(ints[][M]),aa(ints[N][M]),實(shí)質(zhì)上C都是把其按第一種指針形式理。例3.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序運(yùn)行后的輸出結(jié)果是______。A)012B)123C)234D)345例1.若有以下的定義:intt[3][2];能正確表示t數(shù)組元素地址的表達(dá)式是A)&t[3][2]B)t[3]C)&t[1][1]D)&t[2]例2.若有以下的定義:inta[3][2],*p;能正確賦值的是:A)p=aB)p=&(a[0]+1)C)p=&a[2][1]D)p=&a[2]8.4數(shù)組指針可以通過建立一個(gè)數(shù)組指針來引用二維數(shù)組的元素。如有定義inta[3][4],(*p)[4];p是一個(gè)指針變量,其基類型是一個(gè)包含4個(gè)整型元素的數(shù)組,它的基類型與二維數(shù)組a相同,因此p=a合法,a+0與p+0、a[0]等價(jià),a+1與p+1、a[1]等價(jià),表示跨越一行4個(gè)元素地址,且數(shù)組元素a[i][j]與p[i][j]等價(jià)。例1若有定義:int(*a)[4];則標(biāo)識(shí)符A)是一個(gè)指向整型變量的指針B)是一個(gè)指針數(shù)組名C)是一個(gè)指針,它指向一個(gè)含有四個(gè)整型元素的一維數(shù)組D)說明不合法例2若有以下定義,且0<=i<6,則正確賦值的語句是ints[4][6],t[6][4],(*p)[6];A)p=t;B)p=s;C)p=s[i];D)p=t[i];例3若有以下定義和語句:
ints[4][5],(*ps)[5];
ps=s;
則對(duì)s數(shù)組元素正確引用形式是
A).ps+1B).*(ps+3)C.)ps[0][2]D).*(ps+1)+38.5指針數(shù)組
若有定義:int*p[3],a[3][2];
在*p[3]中,根據(jù)運(yùn)算符的優(yōu)先級(jí),p首先與[]結(jié)合,構(gòu)成p[3],說明了p是一個(gè)數(shù)組名,相當(dāng)于有3個(gè)一維數(shù)組,在它前面的*則說明了數(shù)組p是指針類型,它的每個(gè)元素都是基類型為int的指針。指針數(shù)組的最大好處是不必要指定列的寬度。則*p[3]為指針數(shù)組
charcc[][12]={“fow”,“basic”,“great”,“comp”}char*p[4]={“folrme”,“basic”,“greatwall”,“comp”}a數(shù)組元素a[i][j]的引用形式*(a[i]+j)和*(p[i]+j)是等價(jià)的區(qū)別是:p[i]的值可以改變,而a[i]的值不可以改變for(i=0;i<3;i++)p[i]=a[i];//p[i]和a[i]的基類型相同的條件下,才可以賦值p[0]、p[1]、p[2]分別指向a數(shù)組每行的開頭例1若有語句:char*a[5];,以下敘述中正確的是
A)a是一個(gè)數(shù)組,每個(gè)元素是一個(gè)基類型為char的指針變量
B)a是一個(gè)指針變量
C)a是一個(gè)指針數(shù)組,語句中的*號(hào)稱為間址運(yùn)算符
D)a是一個(gè)指向字符型函數(shù)的指針例3有以下程序執(zhí)行后輸出結(jié)果是
main()
{char*s[]={"one","two","three"},*p;
p=s[1];
printf("%c,%s\n",*(p+1),s[0]);}
A.)n,twoB.)t,oneC).w,oneD.)o,tw例4有以下定義和語句()inta[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];則*p[0]+1)所代表的數(shù)組元素是A.)a[0][1]B.)a[1][0]C).a[1][1]D.)a[1][2]main()可以帶兩個(gè)形參8.6指針數(shù)組的重要應(yīng)用格式為:main(intargcchar*argv[])其中argc,*argv[]是兩個(gè)參數(shù)名,名稱可由自已取,但類型是固定的,第一個(gè)整型,第二個(gè)是指針數(shù)組。通過命令行執(zhí)行程序來獲得參數(shù)。程序file.c經(jīng)過編譯生成file.obj文件,再通過連接生成file.exe的可執(zhí)行文件。在DOS提示符下:輸入file就可執(zhí)行程序如在命令提示下輸入fileokgood這時(shí)argc的值為3argv[0]為字符串“file”argv[1]為字符串“ok”argv[2]為字符串“good”為了執(zhí)行程序:字符串a(chǎn)rgv[0]不可少,argc值為1如在命令提示下輸入file這時(shí)argc的值為1,
argv[0]為字符串“file”(1)下面程序的文件名為t.exe,在DOS下輸入的命令行參數(shù)為:ttomeetme<回車>則程序輸出的結(jié)果是#include"stdio.h"main(argc,argv)intargc;char*argv[];{inti;printf("%d\n",argc);}A)3B)4C)2D)以上答案都不正確2有以下程序,假設(shè)程序編譯,連接后生成可執(zhí)行文件my.exemain(intargc,char*argv[]){inti;printf(“argc=%d\n”,argc);for(i=0;i<argc;i+=2)printf(“%s”,argv[i]);printf(“\n”);}如在命令行中打入:thisisabigtable輸出結(jié)果為:
A)thisatableB)bigtalbeC)abigtableD)thisisabigtable3有以下程序序編譯連接后生成可執(zhí)行文件exam.exe,若鍵入以下命令exam123(回車),則運(yùn)行結(jié)果為main(intargc,char*argv[]){inti=0,n;while(argv[1][i]!='\0'){n=fun();i++;}printf("%d\n",n*argc)}intfun(){staticints=0;s+=1;returns;}A.)6B)8C)3D)4
8.7指向指針的指針(多級(jí)指針)如有int**p;則p是可以指向指針的指針變量5
100
200
300a
pq變量地址變量內(nèi)容變量名例inta=5,*p,**qp=&a;q=&p;100200例1若有定義和語句,則輸出結(jié)果是:int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d%d\n",*p,**pp);A)10,20B)10,10C)20,10D)20,20例2設(shè)有如下程序的輸出結(jié)果是:main(){intx[5]={2,4,6,8,10},*p1,**p2;p1=x;p2=&p1;printf(“%d”,*(p1++));printf(“%d”,**p2);A)44B)24C)22D)468.8
指向函數(shù)的指針變量在c語言中函數(shù)名代表該函數(shù)的入口地址,因址可以定義一種指向函數(shù)的指針來存放這種地址。定義格式:返回類型(*fp)()doublefun(inta,int*p){……………..}main(){intn;double(*fp)(int,int*),y;fp=fun;y=(*fp)(56,&n);……}{……………..}main(){intn;doubley;y=fun(56,&n);……}在這里:y=(*fp)(56,&n)與y=fun(56,&n)等價(jià)。(*fp)的括號(hào)不能省,*fp(intint*)則fp不是指針變量,而說明fp是一個(gè)函數(shù),該函數(shù)的返回值是基類型為double的指針類型。例1.說明語句int*f();中標(biāo)識(shí)符f代表的是A)一個(gè)用于指向整型數(shù)據(jù)的指針變量B)一個(gè)用于指向一維組的行指針變量C)一個(gè)用于指向函數(shù)的針指變量D)一個(gè)返回值為指針型的函數(shù)名例2.設(shè)有如下定義:int(*ptr)();則以下敘述中正確的是
A)ptr是指向一維組數(shù)的指針變量
B)ptr是指向int型數(shù)據(jù)的指針變量
C)ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)
D)ptr是一個(gè)函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針例3程序中若有如下說明和定義語句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;......}以下選項(xiàng)中對(duì)函數(shù)fun的正確調(diào)用語句是______。A)(*f1)(a);B)*f1(*s);C)fun(&a);D)ch=*f1(s);1、有以下程序程序運(yùn)行后的輸出結(jié)果是prt(int
*m,int
n)
{inti;
for(i=0;i<n;i++)
m[i]++;}
main()
{
inta[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)
printf(“%d,”,a[i]);}
A).1,2,3,4,5,B.)2,3,4,5,6,C).3,4,5,6,7,D).2,3,4,5,1,B綜合練習(xí)2、有以下程序執(zhí)行后的輸出結(jié)果是voidfun(int*a,inti,intj){intt;if(i<j){
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南省信陽市羅山縣2024-2025學(xué)年七年級(jí)上學(xué)期期中生物學(xué)試題(解析版)
- 2024年生態(tài)園林建設(shè)施工合同2篇
- 2024年度國際貿(mào)易代理委托借款反擔(dān)保服務(wù)合同3篇
- 2025電視節(jié)目制作播出合同
- 2025林木委托管護(hù)合同
- 2024年某科技公司關(guān)于研發(fā)人工智能技術(shù)的合作協(xié)議
- 2025承攬合同(簡3)承攬合同
- 2024年拖拉機(jī)買賣簡易協(xié)議范例版B版
- 2024年人民醫(yī)院新院區(qū)醫(yī)療廢物處置中心建設(shè)施工合同2篇
- 珠寶首飾庫存優(yōu)化方案
- 華南理工大學(xué)《自然語言處理》2023-2024學(xué)年期末試卷
- 新能源行業(yè)光伏發(fā)電與儲(chǔ)能技術(shù)方案
- 中國高血壓防治指南(2024年修訂版)要點(diǎn)解讀
- 24秋國開《西方行政學(xué)說》形考任務(wù)1答案(第2套)
- 2024巡察整改方案和整改措施
- 醫(yī)院冬季防雪防凍工作應(yīng)急預(yù)案
- 2024年公共管理學(xué)考試題庫及答案
- 借用資質(zhì)簽合同模板
- 退休員工返聘審批表
- Unit 7 Careers Writing Workshop 申請(qǐng)信講解 教學(xué)設(shè)計(jì)-2023-2024學(xué)年高中英語北師大版2019 選擇性必修第三冊(cè)
- 風(fēng)電場全過程咨詢項(xiàng)目管理規(guī)劃方案
評(píng)論
0/150
提交評(píng)論