國(guó)家二級(jí)C語(yǔ)言(指針)機(jī)試模擬試卷1_第1頁(yè)
國(guó)家二級(jí)C語(yǔ)言(指針)機(jī)試模擬試卷1_第2頁(yè)
國(guó)家二級(jí)C語(yǔ)言(指針)機(jī)試模擬試卷1_第3頁(yè)
國(guó)家二級(jí)C語(yǔ)言(指針)機(jī)試模擬試卷1_第4頁(yè)
國(guó)家二級(jí)C語(yǔ)言(指針)機(jī)試模擬試卷1_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

家二級(jí)C語(yǔ)言(指針)機(jī)試模擬試卷

第1套

一、選擇題(本題共26題,每題1.0分,共26分。)

1、有以下程序:#includc<stdio.h>voidf(int*p,int*q);main()

{intm=l,n=2,*r=&m;f(r,&n);prinlf("%d,%d",m,n);)

voidf(int*p,int*q)(p=p+l;*q=*q+l:)程序的運(yùn)行結(jié)果是()。

A、2,3

B、I,3

C、1,4

D、1,2

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:在f(int*p,int*q)函數(shù)中,執(zhí)行“p=p+l;”是將p所對(duì)應(yīng)的地址加1,

而“*q=*q+l;”是將q所指向n的地址所對(duì)應(yīng)的值加1,所以m的值沒(méi)有變,而n

的值則變?yōu)?。故本題答案為B選項(xiàng)。

2、若有定義語(yǔ)句“doublea,*p=&a;",下列敘述口錯(cuò)誤的是()。

A、定義語(yǔ)句中的*號(hào)是一個(gè)間址運(yùn)算符

B、定義語(yǔ)句中的*號(hào)是一個(gè)說(shuō)明符

C、定義語(yǔ)句中的p只能存放double類型變量的地址

D、定義語(yǔ)句中,樂(lè)p=&a把變量a的地址作為初值賦給指針變量p

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:變量定義語(yǔ)句氣oublea,*p=&a;"中,“*”是一個(gè)指針運(yùn)算符,而非

間址運(yùn)算符。故本題答案為A選項(xiàng)。

3、若有定義語(yǔ)句doublex,y,*px,*py;,執(zhí)行了px=&x;py=&y;之后,正確

的輸入語(yǔ)句是()。

A、scanf("%lf%le,\px,py);

B、scanf("%f%r,&x,&y);

C、scanf("%f%f,x,y);

D、scanf("%lf%lF,x,y);

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:因?yàn)閤和y都是double型數(shù)據(jù),輸入時(shí)的格式控制字符應(yīng)為%1。所

以B、C選項(xiàng)錯(cuò)誤。D選項(xiàng)中的“scanf("%lf%l/,x,y);”應(yīng)為"scanf("%lf%l『,

&x,&y);”,所以D選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。

4、若有定義語(yǔ)句“inta⑵[3],*p[3];”,則以下語(yǔ)句中正確的是()。

A^p=a;

B、p[O]=a;

C、p|0J=&a|l||2];

D、p[l]=&a;

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:A選項(xiàng)錯(cuò)誤,因?yàn)閜是指向一個(gè)指針數(shù)組,而數(shù)組名相當(dāng)于常量,不

能重新賦值。B選項(xiàng)錯(cuò)誤,因?yàn)閜[0]是一個(gè)in【指針,也就是int*,而a是一個(gè)指向

指針的指針im**。C選項(xiàng)正確,因?yàn)閜[0]是int*,是int,&a[l][2]fiint*,

類型吻合。D選項(xiàng)錯(cuò)誤,因?yàn)閍作為數(shù)組名,不能取地址,即使能取,p[l]是inl

*,&a是int***,類型不吻合。故本題答案為C選項(xiàng)。

5、下列函數(shù)的功能是voidfun(char*a,char*b){while((*b=*a)!=’\O')

{a++;b++;}}

A、將a所指字符串賦給b所指空間

B、使指針b指向a所指字符串

C、將a所指字符串和b所指字符串進(jìn)行比較

D、檢查a和b所指字符串中是否有

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:題目的fun函數(shù)內(nèi),while循環(huán)條件為“(*b=*a)!=”\O?執(zhí)行時(shí)先把

指針a所指向的字符賦給指針b所在的內(nèi)存單元。如果該字符不是結(jié)束標(biāo)識(shí)

0”,執(zhí)行循環(huán)體“a++;b++;”,指針a、b分別指向下一個(gè)字符單元。再判斷循環(huán)

條件,如果成立,繼續(xù)也指針a所指向的字符賦給指針b所在的內(nèi)存單元,直到遇

到結(jié)束標(biāo)識(shí)為止。故本題答案為A選項(xiàng)。

6、若有定義intw⑶[5];,則以下不能正確表示該數(shù)組元素的表達(dá)式是()。

A、*(&w[O][O]+l)

R、*(*w+3)

C、*(*(w+l))

D、*(w+l)[4]

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:A選項(xiàng)中,“*(&w[O][O]+l)”表示B選項(xiàng)中,“*(*w+3)”表

示“w[0][3「;C選項(xiàng)中,“*(*(w+l))”表示D選項(xiàng)中,“*(w+l)[4「的正確

寫(xiě)法是“(*(w+l))[4「,表示。故本題答案為D選項(xiàng)。

7、有以下程序(注:字符a的ASCH碼值為97):#include<stdio.h>main()

{char*s={"abe"};do{printf(H%d",*s%10);++s:)while(*s);}

程序的運(yùn)行結(jié)果是()。

A、789

B、abe

C、7890

D、979899

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:因?yàn)樾?xiě)字符a、b、c的ASCII值分別為97、98、99。在dOwhile

循環(huán)語(yǔ)句中,每次對(duì)字符的ASCII值取余數(shù)并輸出,所以分別輸出7、8、9<,故本

題答案為A選項(xiàng)。

8、有以下函數(shù):intfun(char*x,char*y){intn=0;

while((*x==*y)&&*x!=>\O'){x++;y++;n++;}returnn;}

函數(shù)的功能是()。

A、將y所指字符串賦給x所指存儲(chǔ)空間

B、查找x和y所指字符串中是否有、(T

C、統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)

D、統(tǒng)計(jì)x和y所指字符串中相同的字符個(gè)數(shù)

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:本題中由循環(huán)條件可知,遇到“\0”或X與y所指的字符不相等時(shí)循

環(huán)結(jié)束。所以函數(shù)的功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)。

故本題答案為C選項(xiàng)。

9、設(shè)有定義語(yǔ)句",則下列敘述中正確的是()。

A、f是基類型為int的指針變量

B、f是指向函數(shù)的指針變量,該函數(shù)具有一個(gè)int類型的形參

C、f是指向int類型一維數(shù)組的指針變量

D、f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:此定義語(yǔ)句”為指向函數(shù)的指針變量的定義方法,其中f

為指向函數(shù)的指針變量,第1個(gè)int為函數(shù)返回值類型,第2個(gè)int為函數(shù)的形參類

型。故本題答案為B選項(xiàng)。

10、函數(shù)fun的功能是在a所指的具有n個(gè)元素的數(shù)組中查找最大值并返回給調(diào)用

函數(shù),函數(shù)不完整。intfun(int*a,intn){int*s:for(p=a,s=a:p-a<

n;p++)if()s=p;return*s;)在if語(yǔ)句下劃線處應(yīng)填入

的選項(xiàng)是()。

p>s

B、*p>*s

C、a[p]>a[s]

D^p-a>p-s

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:函數(shù)fun的功能是在a所指的具有n個(gè)元素的數(shù)組中查找最大值并返

回。通過(guò)for循環(huán)比較,s始終指向最大值的那個(gè)元素。取指針的值,使用*p,因

此比較使用*p和*s,又因?yàn)檎易畲笾担?dāng)*s〈*p時(shí),修改指針s的指向。故本題

答案為B選項(xiàng)。

11、設(shè)有定義:imx[10],*P=x,i;,若要為數(shù)組x讀入數(shù)據(jù),以下選項(xiàng)正確的是

()。

A、for(i=0;i<10;i++)scanf("%dn,p+i);

B、for(i=0;i<JO;i++)scanf('r%d",*p+i);

C、for(i=0;i<10;i++)scanf("%d",*(p+i));

D、for(i=0;i<10;i++)scanf("%d",x[i]):

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:C語(yǔ)言中scanf函數(shù)的聲明為“scanf("<格式控制字符串>",〈地址

表>);”,可知scanf的第2個(gè)參數(shù)是地址。因此,從4個(gè)選項(xiàng)中可以判斷,只有

選項(xiàng)A是p[i]的地址,其他的均是變量本身。故本題答案為A選項(xiàng)。

12>有以下程序#include<stdio.h>voidfl(char*a,charb){charc:c=*a:

*a=b;b=c;}void⑵chara,charb){charc;c=a;a=b;b=c;}voidf3(char

*a,char*b){charc;c=*a;*a=*b;*b=c;}main(){chat11,t2;

t2='B';f3(&tl,&t2);putchar(tl);putchar(t2);t2='B';f2(t1,t2);

putchar(tl);putehar(t2);tl='A';t2='B';fl(&tl,t2);putchar(tl);

n

putchar(t2);printf(\n");)程序運(yùn)行后的輸出結(jié)果是()。

A、ABBABB

B、BAABBB

C、BABABA

D、BABAAB

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:函數(shù)fl(*a,b),*a為地址傳遞,b為值傳遞,將b值傳給*a,則

t2)調(diào)用后輸出11、t2為BB。f2(a,b)為值傳遞,傳入的只是a、b的值,

不實(shí)現(xiàn)交換,則f2⑴,t2)調(diào)用后輸出2、t2為AB。不*a,*b)為地址傳遞,可以

實(shí)現(xiàn)a、b值的交換,貝!&⑵調(diào)用后輸出11、12為BA。因此結(jié)果為

BAABBBo故本題答案為B選項(xiàng)。

13、有以下程序#include<stdio.h>main(){inta[3][3]={{1,3,5,},

{7,9,11,},{13,15,17});int(*p)[3]=a,i,j,n=0:for(i=0;i<

3:i++)for(j=0:j<2;j++)n+=*(*(p+i)+j):printf("%d\n",n);|

程序運(yùn)行后的輸出結(jié)果是()。

A、54

B、60

C、36

D、48

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:題目中,for循環(huán)的作用是求數(shù)組各行前兩列的數(shù)字之和。已知

*(*(p+i)+j)=p[i][j],則變量n=1+3+7+9+13+15=48。故本題答案為D選項(xiàng)。

14、有以卜.程序#include<stdio.h>int*f(int*s){s[1]+=6;*s=7;

s+=2:returns;)main(){inta[5]={1,2.3,4,5},*p=a;p=f(p);

printf("%d,%d,%d\n",a[0],a[l],*p);}程序運(yùn)行后的輸出結(jié)果是()°

A、9,8,9

B、7,8,7

C、7,8,3

D、1,2,1

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:在main函數(shù)中調(diào)用了f函數(shù)使形參s指向數(shù)組a。執(zhí)行“s[l]+=6;”語(yǔ)

句,則a[l]=8;執(zhí)行"*s=7;”語(yǔ)句,則a|0]=7;執(zhí)行“s+=2;”語(yǔ)句,則s指向數(shù)組

的第3個(gè)元素并返回s。調(diào)用后,函數(shù)返回值賦給指針p,則*p=3,因此輸出的結(jié)

果為7,8,3。故本題答案為C選項(xiàng)。

15、有以下程序#include<stdio.h>voidswap(int*a,int*b){intt,*tp;

t=*a;*a=*b;*b=t;tp=a;a=b;b=tp:printf("%d,%d,"?*a,*b);)

main(){inti=3,j=7,*p=&i,*q=&j;swap(p,q);printf("%d,%d,%

d,%d”,i,j,*P,*q);)程序執(zhí)行后的輸出結(jié)果是()。

A、3,7,3,7,3,7

B、7,3,7,3,7,3

C、3,7,3,7,7,3

D、3,7,7,3,7,3

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:main函數(shù)中,首先定義兩個(gè)整型變量i和j,初值為3和7,并將i的

地址賦給p,j的地址賦給q,傳給swap函數(shù)。sw叩函數(shù)接收兩個(gè)整型指針變量

a、b,然后使用整型變量t交換a、b所指向的值并輸出。通過(guò)指針變量的交換改

變了實(shí)參i、j的值,使得i=7,j=3。指針變量中交換a和b的值,由于a、b的值

是p、q值的復(fù)制,因此這次交換只改變了形參a、b的值,對(duì)實(shí)參p、q的值沒(méi)有

改變,此時(shí)指針變量a指向i,指針變量b指向i。swap函數(shù)最后輸出女a(chǎn)和*b,所

以輸出3,7o由于swap函數(shù)改變了p和q指向的值,因此main函數(shù)輸出i的值為

7,i的值為3,*p的值為i,*q的值為j。最終程序輸出:3,7,7,3,7,3。故

本題答案為D選項(xiàng)。

16、有下列程序#include<stdio.h>#include<string.h>main(){char

v[4][10]={,,efg","abcdM,mnopq","hijkl"),*p[4],*t;inti,j;for(i=0;i

<4;i++)p|i]=v|i|;for(i=0;i<3;i++)for(j=i+l;j<4;j++)

if(stremp(p[i],p[j])>0){t=p[i];p[i]=p[j]:p[j]=t;}for(i=0;i<4;i++)

printf("%s”,p[il);}程序執(zhí)行后的輸出結(jié)果是()。

A、efgabedhijklmnopq

B、abedefghijklmnopq

C、mnopqhijklefgabed

D、efgabedmnopqhijkl

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:main函數(shù)中定義了一個(gè)二維數(shù)組v,另外還定義了一個(gè)指針數(shù)組p。

通過(guò)for循環(huán),將v的冬個(gè)行(字符串的首地址)賦給p的對(duì)應(yīng)下標(biāo)的元素。然后通

過(guò)嵌套的for循環(huán),為該二維數(shù)組中存放的各個(gè)字符串進(jìn)行排序。strcmp函數(shù)返回

值大于0時(shí)交換兩個(gè)字符串,所以每一輪內(nèi)嵌的for循環(huán),都將下標(biāo)為i

的字符串放在最終的排序位置上,即排序規(guī)則是按字符串升序排列。字符串排序

時(shí),是將兩個(gè)字符串自左向右逐個(gè)字符比較(按字符的ASCH值大小),直到出現(xiàn)不

同的字符或遇到“\0”為止。排序后,再將v中各個(gè)排序后的字符串輸出。所以程

序輸出結(jié)果為abedefghijklmnopq。故本題答案為B選項(xiàng)。

17、設(shè)有函數(shù)說(shuō)明語(yǔ)句“intfun(】nt,int);”以及函數(shù)指針定義語(yǔ)句

int);”若要使函數(shù)指針指向函數(shù)fun的入口地址,以下選項(xiàng)中正確的是()。

A、f=fun();

B、*f=fun;

C、f=fun;

D、*f=fun();

標(biāo)準(zhǔn)答案:c

知識(shí)點(diǎn)》析:c語(yǔ)言中,函數(shù)名也是一個(gè)指針,是函數(shù)的入口地址。使函數(shù)指針f

指向函數(shù)fun的入口地址,直接將函數(shù)名fun賦給指針f即可。故本題答案為C選

項(xiàng)。

18、有以下程序#include<stdio.h>intfun(int*a,int*b,intn){inti=0,

j=0,sum=0:for(;i<n:i++)(sum+=a[i];if((i+l)%2==0)

{b[j++]=sum;sum=0;))returnj;}main(){intal8]={1,0,

2,3,5,4,2,1},b[8],k,i;k=fun(a,b,8);for(i=0;i<k;i++)

printfC^d",b[i]);)程序的運(yùn)行結(jié)果是()。

A、0242

B、1593

C、1351

D、286

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:程序中,fun函數(shù)的功能是接收兩個(gè)數(shù)組a、b,以及數(shù)組a的元素個(gè)

數(shù)n,然后通過(guò)for循環(huán)將數(shù)組a中下標(biāo)為偶數(shù)的元素與后面相鄰的下標(biāo)為奇數(shù)的

元素兩兩相加,賦給數(shù)組b中下標(biāo)為j的元素,最后返回?cái)?shù)組b的個(gè)數(shù)。所以main

函數(shù)中,通過(guò)調(diào)用fun函數(shù),將數(shù)組a的元素兩兩相加,得到數(shù)組b的各個(gè)元素,

再通過(guò)for循環(huán)輸出,結(jié)果為1593。故本題答案為B選項(xiàng)。

19、有以下程序#include<stdio.h>main(){inta[3][3]3={0,1,2,3,4,

5,6,7,8),(*p)[3],i;p=a;for(i=0;i<3;i++){pnntf(,,%d,r,

(*p)|i|);p++;}}程序的運(yùn)行結(jié)果是()。

A、036

B>012

C、048

D、147

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:main函數(shù)定義3行3列的整型二維數(shù)組a;定義數(shù)組指針p,p指向

包含3個(gè)元素的數(shù)組。程序首先將a賦給p。for循環(huán)中,i=0時(shí),p指向a的第1

個(gè)元素{0,1,2),輸出p[0]即0;i=l時(shí),p指向a的第2個(gè)元素{3,4,5),輸出

p[l]W4;i:2時(shí),p指向a的第3個(gè)元素{6,7,8),輸出p⑵即8。所以程序輸

出048。故本題答案為C選項(xiàng)。

20、有下列程序#include<stdio.h>main(){charv[4][10];inti;

tor(i=0;i<4;i++)scanf("%s”,v[ij);printt("%c,%s,%s,%c",

*(v+l),v[3]+3?*(v[2]-l));)程序執(zhí)行時(shí)若輸入:welcomeyoutobeijing<

回車〉,則輸出結(jié)果是()。

A、w,you,jing,o

B、welcome,you,jing,to

C>w,you,eeijing,u

D、w,xelcome,eeijing,u

標(biāo)準(zhǔn)答案:A'

知識(shí)點(diǎn)解析?:題干中,定義一個(gè)二維字符數(shù)組v。然后通過(guò)for循環(huán),輸入4個(gè)字

符串welcome、you、【o、beijing,將其分別存放在v的4個(gè)元素中。數(shù)組v是存放

4個(gè)字符串的二維數(shù)組?!?*v”表示第1個(gè)字符串的第一個(gè)字符“w”;“*(v+l)”指向

第2個(gè)字符串“you”;"v[3]+3”指向第4個(gè)字符串的第3個(gè)字符開(kāi)始后的整個(gè)字符串

“jing”;“*(v[2]+l)”表示第3個(gè)字符串的第2個(gè)字符“0”。故本題答案為A選項(xiàng),

21、有以下程序#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=>\

O'):while(*(a-1)<B)*(a—)=*(a-1);*(a—)=b;)main(){chars[8]="pmfc'\c;

e=getchar();fun(s,c);puts(s);}程序運(yùn)行時(shí)輸入k并按VEnter>,則輸出結(jié)果

為()。

A、pmtlcc

B、pmfck

C、kpmfc

D、pmkfc

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:main函數(shù)定義一個(gè)字符數(shù)組s,使用字符串“pmfc”初始化;然后通過(guò)

getchar讀取一個(gè)字符k并賦給字符變量c;再將字符串s和字符c傳入fun函數(shù)。

函數(shù)fun首先通過(guò)while循環(huán)遍歷字符串s,直到指針a指向字符串結(jié)束標(biāo)識(shí)“、\0”

o26

\0

后的一個(gè)字符,如下圖所示。接著通過(guò)

while循環(huán)逆序遍歷字符串s,首先a-1的字符位是“\0",它的ASCII值為0,小于

b(字符k)的ASCII值107,那么將賦給下標(biāo)為5的元素位置。接著繼續(xù)向前

遍歷,同理,將c(ASCH值為99)賦給下標(biāo)為4的元素位置,將RASCI【值為102)

賦給下標(biāo)為3的元素位置。由于m(ASCII值為1091大于1),因此循環(huán)結(jié)束,將b

賦給下標(biāo)為2的元素位置。此時(shí)str字符串如下圖所示。

01234s67

LLmi」[?]故本題答案為口選項(xiàng)。

22、設(shè)有定義:intx[2][3];,則以下選項(xiàng)中不能表示數(shù)組元素x[0]⑴的是()。

A、*(*x+l)

B、*(*(x+l)

C、(*x)[l]

D、*(&x[0][0]+l)

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:選項(xiàng)A中,*x等價(jià)于x[0],*x+l等價(jià)于x[0]+l,*(x[0]+l)等價(jià)于

x[0][l],所以選項(xiàng)A正確;選項(xiàng)B中,*(x+l)等價(jià)于x[l],*(*(x+l))等價(jià)于

x[l]f0],所以選項(xiàng)B錯(cuò)誤;選項(xiàng)C中,*x等價(jià)于x[0],等價(jià)于x⑼⑴,所

以選項(xiàng)C正確;選項(xiàng)D中,&x[0][0]等價(jià)于x[0],&[0][0]+1等價(jià)于x[0]+l,

*(x[0]+l)等價(jià)于x[0兒1],所以選項(xiàng)D正確。故本題答案為B選項(xiàng)。

23、使用數(shù)組名作為函I數(shù)的實(shí)參時(shí),傳遞給形參的是()。

A、數(shù)組第一個(gè)元素的值

B、數(shù)組的首地址

C、數(shù)組中全部元素的值

D、數(shù)組元素的個(gè)數(shù)

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:用數(shù)組名作為函數(shù)參數(shù)時(shí),數(shù)組名退化為指針,傳遞給形參的是數(shù)組

的首地址。故本題答案為B選項(xiàng)。

24,有以下程序#include<stdio.h>main()(chara[5][10]={"China",

"beijing","very","welcome",^you"};char*p[5];inti;for(i=3;i<5:

i++){p[i]=*(a+i);printfC^s",p[i]);printfC%c",*p[i]);)}程

序執(zhí)行后的輸出結(jié)果是()。

A、wwyy

ChinaCbeijingb

C、veryvwelcomew

D、welcomewyouy

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:main函數(shù)定義一個(gè)二維字符數(shù)組a,它包含5個(gè)字符串,每個(gè)字符串

存放在一個(gè)長(zhǎng)度為10的一維數(shù)組中。指針數(shù)組p包含5個(gè)字符指針元素。for循環(huán)

中,每次將*(a+i)賦給p[i],再輸出p[i]和*p[i]:由于*(a+i)等價(jià)于a[i],因此每次都

是將下標(biāo)為i的字符串首地址賦給p[i],再輸出該字符串和該字符串的首字符。i=3

時(shí),輸出字符串“welcome”和首字符“w";i=4時(shí),輸出字符串“you”和首字符“廣。

綜上,輸出結(jié)果為welcomewyouy。故本題答案為D選項(xiàng)。

25>有以下程序#include<stdio.h>main(){char*s="01234";

while(*(++s)!=,\0v){switch(*s-,0,){case0:case1:putchar(*s+l);

break;case2:putchar(*s+l);break;case3:putchar(*s+l)l;default:

putchar(*s+l);break:}}}程序執(zhí)行后的輸出結(jié)果是()。

A、22345

B、2345

C、12345

D、23445

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:程序首先定義一個(gè)字符指針s,指向一個(gè)常量字符串“01234”;接著

while循環(huán)的循環(huán)條件每次將s指向下一個(gè)字符,然后判斷s指向的字符是否為空

字符“\0”,若不是,貝!執(zhí)行循環(huán)體,將當(dāng)前字符與“0”的ASCH差值作為switch語(yǔ)

句的常量表達(dá)式,執(zhí)行對(duì)應(yīng)的case語(yǔ)句。指針s指向空字符“\0”時(shí),則終止循

環(huán),程序結(jié)束。從常量字符串“01234”可知,循環(huán)過(guò)程中s指向的各個(gè)字符分別是

1、2、3、4。當(dāng)*s是字符力”時(shí),*s」0'的值為1,執(zhí)行easel語(yǔ)句,輸出*s+l,即

字符“2、當(dāng)代是字符“2”時(shí),*s?'0'的值為2,執(zhí)行case2語(yǔ)句,輸出,十1,即字符

“3”;當(dāng)*s是字符“3”時(shí),*s-'0'的值為3,執(zhí)行case3和default語(yǔ)句,兩次輸出

*s+l,即字符“4";當(dāng)*$是字符“4"時(shí),*s,(r的值為4,執(zhí)行default語(yǔ)句,輸出

*s+l,即字符“5”。綜上,程序輸出結(jié)果為23445。故本題答案為D選項(xiàng)。

26、有如下程序#include<stdio.h>voidfun(int*a,int*b){for(;(*a<

*B)II(getchar()!=,@,);)[(*a)++;(*b)—;})main(){inti=O,j=5;

fun(&i,&j);printf("%d,%d\n",i,j);)程序運(yùn)行時(shí)在第一列開(kāi)始輸

入ab@并按<Enter>鍵,則運(yùn)行結(jié)果是()。

A、7.1

B、3,2

C、0,5

D、5,0

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:fun函數(shù)接收兩個(gè)整型指針變量a、bcfor循環(huán)判斷a、b指向的值大

小和getchar讀入的字符是否為“@”來(lái)決定循環(huán)是否執(zhí)行。循環(huán)體內(nèi)對(duì)a、b指向的

值各自自增1、自減1。main函數(shù)定義并初始化實(shí)參i的值為0,實(shí)參j的值為5,

調(diào)用函數(shù)fun,傳入i、j的地址。所以形參a指向i,形參b指向j,*a的值為0,

*b的值為5,*aV*b為真,執(zhí)行循環(huán)體;*a的值為1,*b的值為4,*aV*b為

真,執(zhí)行循環(huán)體;*a的值為2,*b的值為3,*a〈*b為真,執(zhí)行循環(huán)體;*a的值

為3,%b的值為2,*aV*b為假,getchar讀入字符“a”,執(zhí)行循環(huán)體;*a的值為

4,*b的值為1,*aV*b為假,getehar讀入字符“b”,執(zhí)行循環(huán)體;$*的值為5,*b

的值為0,*a〈*b為假,getchar讀入字符“",fun函數(shù)執(zhí)行完畢,main函數(shù)輸出

5,0o故本題答案為D選項(xiàng)。

國(guó)家二級(jí)C語(yǔ)言(指針)機(jī)試模擬試卷

第2套

一、選擇題(本題共26題,每題1.0分,共26分。)

1、設(shè)已有定義“iloatx;",則下列對(duì)指針變量p進(jìn)行定義且賦初值的語(yǔ)句中正確的

是()。

A、int*p=(float)x:

B、float*p=&x;

C、floatp=&x;

D^float*p=1024;

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:指針是用來(lái)存放地址的變量,定義指針變量的形式:類型名*指針變

量名。賦值時(shí)應(yīng)將某個(gè)變量地址賦給指針變量,如選項(xiàng)B中將變量x的地址&x賦

給指針變量。故本題答案為B選項(xiàng)。

2、有以下程序:#include<stdio.h>main(){inta=l,b=3,c=5;

int*pl=&a,*p2=&b,*p=&c:*p=*pl*(*p2);printf(n%d\n",c);!

程序的運(yùn)行結(jié)果是()。

A、I

B、2

C、3

D、4

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析;該程序中“int*pl=&a,*p2=&b,*p=&c;”定義了3個(gè)指針變量才賦

值。指針變量pl指向a,p2指向b,p指向c?;倚?*p=*pl*(*p2);”語(yǔ)句,給p

所指的存儲(chǔ)單元c賦值,pl所指的存儲(chǔ)單元的值與p2所指的存儲(chǔ)單元的值相乘,

也就是c=a*b,等價(jià)于c=l*3=3。故本題答案為C選項(xiàng)。

3、下列程序段中完全正確的是()。

A、int*p;scanf("%d”,&p);

B、int*p;scanf("%d",p);

C、intk,*p=&k;scanf(H%d",p);

D、intk,*p;*p=&k:scanf(n%d",p);

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)漏析:A選項(xiàng)中,沒(méi)有對(duì)指針進(jìn)行初始化,屬于無(wú)效指針,并且在

“scanf("%d,&p):”中無(wú)須再進(jìn)行取地址操作;B選項(xiàng)中,沒(méi)有對(duì)指針進(jìn)行初始

化,屬于無(wú)效指針;D選項(xiàng)中,語(yǔ)句“*p=&k;"書(shū)寫(xiě)錯(cuò)誤,應(yīng)為“p=&k;"。故本

題答案為C選項(xiàng)。

4、設(shè)有以下函數(shù):voidfun(intn,char*s){...),則下列對(duì)函數(shù)指針的定義和賦值

均正確的是()。

A、void(*pf)(int?char);pf=&fun;

B、void*pf();pf=fun;

C>void*pf();*pf=fun;

D^void(*pf)(int,char*);pf=fun;

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:函數(shù)的參數(shù)可以是指針類型,它的作用是將一個(gè)變量的地址傳送到另

一個(gè)函數(shù)中。函數(shù)名代表函數(shù)的入口地址,指向函數(shù)的指針應(yīng)該定義為

“void(*pf)0;如果定義為“void*pf();”,則表示函數(shù)pf的返回值是一個(gè)基類型

為void的指針。故本題答案為D選項(xiàng)。

5、有以下程序:#include<stdio.h>#defineN4voidfun(inta[]|N],intbl])

{inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-l-i];}main(){int

X[N][N]={{1,2,3,4),{5,6,7,8},{9,10,11,12),{13,14,15,

16}),y[N],i;fun(x,y);for(i=0;i<N;i++)printf("%d,",y[i]);

printf("\n");)程序的運(yùn)行結(jié)果是()。

A、-3,-1,1,3,

B、-12,-3,0,0,

C、0,1,2,3,

D、-3,-3,-3,-3,

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:本題由fun函數(shù)可知,執(zhí)行for循環(huán),當(dāng)i=0時(shí),b[0]=a[0][0]-

a[0][3]=l-4=-3;當(dāng)i=l時(shí),b[l]=a[l][l]-a[l][2]=6-7=-1;當(dāng)i=2時(shí),b[2]=a[2][2]-

a[2][l]=l1-10=1;當(dāng)i=3時(shí),b[3]=a[3][3]-a[3][0]=16-13=3o主函數(shù)中輸出y數(shù)組元

素的值為:-3,-1,1,3o故本題答案為A選項(xiàng)。

6、下列語(yǔ)句組中iF確的是(人

A、char*s;s=,'OlympicH;

B、chars[7];s="Olympic";

C^char*s;s={"Olympic"};

D、chars|7J;s={"Olympic"};

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:字符型指卦變量可以用A選項(xiàng)的賦值方法“char*s;s="Olympic";

C選項(xiàng)的寫(xiě)法“chads;s={Olympic};”是錯(cuò)誤的。字符數(shù)組可以在定義的時(shí)候初始

化,如“chars[]={"Olympic”};"或者"chars口:“Olympic";",但是不可以在定義字

符數(shù)組后對(duì)數(shù)組名賦值(數(shù)組名是常量,代表數(shù)組首地址),所以B選項(xiàng)和D選項(xiàng)都

是錯(cuò)誤的。對(duì)于本例,B、D選項(xiàng)中字符數(shù)組s的大小至少為8,才能存放下字符

串(字符串的末尾都有結(jié)束標(biāo)識(shí)“\0”),同時(shí),此時(shí)s為字符數(shù)組的地址,是常量,

不能為其賦值。故本題答案為A選項(xiàng)。

7、設(shè)有定義“char*c;”,以下選項(xiàng)中能夠使c正碓指向一個(gè)字符串的是()。

A、charsir[|="string";c=str;

B、scanf("%s",c);

C、c=getchar();

D、*c=ustring";

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:A選項(xiàng)為正確用法,先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給

字符指針(數(shù)組名代表數(shù)組首地址,定義數(shù)組時(shí)為其分配確定的地址)。C選項(xiàng)錯(cuò)

誤,getchar函數(shù)輸入一個(gè)字符給字符變量,而不是字符指針。B選項(xiàng)和D選項(xiàng)有

類似的錯(cuò)誤,兩個(gè)選項(xiàng)并無(wú)語(yǔ)法錯(cuò)誤,但運(yùn)行時(shí)可能會(huì)出現(xiàn)問(wèn)題。因?yàn)樵贐選項(xiàng)

和D選項(xiàng)中,字符指針沒(méi)有被賦值,是一個(gè)不確定的值,指向一個(gè)不確定的內(nèi)存

區(qū)域,這個(gè)區(qū)域可能存放有用的指令或數(shù)據(jù)。在這個(gè)不確定的區(qū)域重新存放字符

串,可能會(huì)發(fā)生無(wú)法預(yù)知的錯(cuò)誤。故本題答案為A選項(xiàng)。

8、下列語(yǔ)句組中正確的是()。

A、char*s;s=("BOOK!n};

B、char*s;s=HBOOK!";

C、chats[10];s=,,BOOK!n;

D、chars[];s="BOOK!";

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:A選項(xiàng)去掉花括號(hào)后,賦值正確;C選項(xiàng)和D選項(xiàng)應(yīng)在定義時(shí)賦初

值,因?yàn)閿?shù)組名相當(dāng)于常量,不能重新賦值。故本題答案為B選項(xiàng)。

9、下列語(yǔ)句中存在語(yǔ)法錯(cuò)誤的是()。

A、charss[6][20];ss[l]="right?H;

B、charss[][20]={"right?11};

C、char*ss[6];ss[l]=nright?n;

D、char*ss={"right?");

標(biāo)準(zhǔn)答案:A-

知識(shí)點(diǎn)解析:數(shù)組定義后,不可以對(duì)數(shù)組整體賦值。ss是二維數(shù)組,因ss[l]是一

維字符數(shù)組,相當(dāng)于一維數(shù)組的數(shù)組名,是常量,不能重新賦值,所以A選項(xiàng)錯(cuò)

誤。B選項(xiàng)和D選項(xiàng)是定義時(shí)對(duì)數(shù)組初始化。在C選項(xiàng)中,將字符串在內(nèi)存中的

首地址賦給指針數(shù)組的一個(gè)元素。故本題答案為A選項(xiàng)。

10、關(guān)于地址和指針,以下敘述正確的是()。

A、可以通過(guò)強(qiáng)制類型轉(zhuǎn)換讓char型指針指向double型變量

B、函數(shù)指針p指向一個(gè)同類型的函數(shù)f時(shí),必須寫(xiě)成:p=&f;

C、指針p指向一個(gè)數(shù)組f時(shí),必須寫(xiě)成:p=&f;

D、一個(gè)指針變量p可以指向自身

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:函數(shù)名代表函數(shù)的入口地址,函數(shù)指針p指向一個(gè)同類型的函數(shù)f

時(shí),可以寫(xiě)成“p=f;",而不能寫(xiě)成“p=&F;",所以選項(xiàng)B錯(cuò)誤。指針p指向一個(gè)

數(shù)組f時(shí),可以寫(xiě)成"p=f;”,數(shù)組名f代表數(shù)組的首地址,所以選項(xiàng)C錯(cuò)誤。指針

變量指向的是變量的地址,所以選項(xiàng)D錯(cuò)誤。char型根據(jù)轉(zhuǎn)化原則可以轉(zhuǎn)化為

double型。故本題答案為A選項(xiàng)。

11、有以下程序段charstr[4][12]={"aaa","bbb","ccc11,"ddd"),*p[4];int

i:for(i=0;i<4;i++)p|i]=str[i];以下選項(xiàng)中不能正確引用字符串而是()。

A、*p[3]

B、p[3]

C、str[2]

D、*p

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:“*p[3『是一個(gè)字符,也就是str[3][O],不是字符串,所以選項(xiàng)A錯(cuò)

誤?!皃[3「"str[2]“*p”分別代表ddd、ccc、aaao故本題答案為A選項(xiàng)。

12、以下敘述正確的是()。

As-charcl,*c2,*c3[10];”是合法的變量定義語(yǔ)句

B、數(shù)組說(shuō)明符的方括號(hào)中不能使用表達(dá)式

C、數(shù)組元素下標(biāo)可以是非整數(shù)

D、若有定義chararray⑷;則語(yǔ)句printf(”%c”,array["3"]);是合法的

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定定義數(shù)組時(shí),數(shù)組的長(zhǎng)度必須是整型常量,數(shù)組說(shuō)明符的

方括號(hào)中表達(dá)式只要是常量即合法,因此選項(xiàng)B錯(cuò)誤。C語(yǔ)言規(guī)定,數(shù)組元素下標(biāo)

必須是非負(fù)整數(shù),因此選項(xiàng)C錯(cuò)誤。選項(xiàng)D中,“chararray[4『數(shù)組的長(zhǎng)度為4,

“array「37中“3”是常量字符串,與C語(yǔ)言規(guī)定數(shù)組的下標(biāo)必須是非負(fù)整數(shù)不符。

故本題答案為A選項(xiàng)。

13、有以下程序#include<stdio.h>intshow(char*str)(while(*str)

{putchar(*str+l);str++:)return*str+l;}main(){printf({M%d

\nn,show("ABCD"));}程序運(yùn)行后的輸出結(jié)果是()。

A、ABCDO

B、BCDEO

C、BCDE1

D、ABCD1

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:函數(shù)putchar每次輸出一個(gè)字符。表達(dá)式“*strH”將對(duì)字符加1,因此

字符串“ABCD”的每個(gè)字符都加1,字符串結(jié)束標(biāo)識(shí)也會(huì)加1,輸出1,結(jié)果

為BCDE1。故本題答案為C選項(xiàng)。

14、以下敘述中正確的是()。

A、無(wú)論指針變量p具有何種基類型,表達(dá)式p=p+l都代表指針p移動(dòng)一個(gè)字節(jié)

B、指針變量具有基類型,基類型不同的指針變量不能直接相互賦值

C、指針變量的賦值操作:p=0;是非法的

D、通過(guò)指針變量存取某個(gè)變量值的方式稱為“直接存取”方式

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:指針自增或自減1,移動(dòng)的字節(jié)數(shù)與指針變量的基類型有關(guān),假設(shè)指

針變量p的基類型為int類型,那么"p=p+l”表示指針p移動(dòng)4個(gè)字節(jié)(通常int類型

占4個(gè)字節(jié)),所以選項(xiàng)A錯(cuò)誤;指針變量具有基類型,基類型不同的指針變量不

能直接相互賦值,所以選項(xiàng)B正確;將0賦給指針變量,表示指針變量的值為

空,這是合法的,所以選項(xiàng)C錯(cuò)誤;通過(guò)指針變量存儲(chǔ)指向變量的地址并通過(guò)指

針存取變量的值,稱為“間接存取”方式,所以選項(xiàng)D錯(cuò)誤。故本題答案為B選

項(xiàng)。

15、若有定義,inta=3,舉p=&a,=&p;,則以下敘述中錯(cuò)誤的是()。

A、q是指針變量,*4就是變量a

B、p是指針變量,p指句變量a

C、q指向變量p,所以*4指向變量a

D、*p與**q都代表變量a

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:由題意可知:指針變量p指向變量a,p的值是a的地址;指針變量q

指向變量p,q的值是p的地址。q是指針變量,q指向p,*q是變量p,所以選項(xiàng)

A錯(cuò)誤;p是相針變量,p指向變量a,所以選項(xiàng)B正確;由于q指向p,因此*q

指向a,所以選項(xiàng)C正確;午和小七都代表變量a,所以選項(xiàng)D正確。故本題答案

為A選項(xiàng)。

16、關(guān)于數(shù)組和指針,以下說(shuō)法錯(cuò)誤的是()。

A、數(shù)組名本身就是一個(gè)指針,指向數(shù)組內(nèi)存的起始位置

B、既可以讀入數(shù)據(jù)到數(shù)組中,也可以讀入數(shù)據(jù)到未賦初值的指針中

C、可以讓一個(gè)指針指向一個(gè)同類型的數(shù)組

D、指針可以指向同類型的數(shù)組中的任意一個(gè)元素

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:「語(yǔ)言中,數(shù)組名本身就是一個(gè)指針.指向數(shù)組內(nèi)存的起始位置.所

以選項(xiàng)A正確;已經(jīng)定義的數(shù)組被分配了內(nèi)存空間,所以可以讀入數(shù)據(jù)到數(shù)組

中,未賦初值的指針沒(méi)有分配內(nèi)存空間,不可以讀入數(shù)據(jù),所以選項(xiàng)B錯(cuò)誤;可

以將指針指向一個(gè)同類型的數(shù)組,所以選項(xiàng)C正確;指針指向一個(gè)數(shù)組后,可以

通過(guò)移動(dòng)指針,指向該數(shù)組中的任意一個(gè)元素,所以選項(xiàng)D正確。故本題答案為

B選項(xiàng)。

17、有如下程序#include<stdio.h>intchange(int*da⑶[*data=*data%

2;return(*datA)+l;}main(){intdata=12;change(&data);

printf(H%d,",data);data=change(&data);printf("%d,",data);)程

序運(yùn)行后的輸出結(jié)果是()。

A、0,0,

B、1,2,

C、12,13,

D、0,1,

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:change函數(shù)接收一個(gè)整型指針data,然后將data指向的數(shù)對(duì)2求

余,求余后的值重新賦給data指向的變量,最后將data指向的變量值加1并返

回。注意,此處data指向的數(shù)對(duì)2求余會(huì)改變實(shí)參指針指向的值,但返回值并不

影響daia指向的值。程序第1次調(diào)用change函數(shù),傳入實(shí)參data的地址,將data

的值修改為0(12%2=0),此時(shí)輸出data的值是O;再次調(diào)用change函數(shù),傳入

daia的地址,將dala的值修改為0(0%2=0),然后將返回值1重新賦給主函數(shù)變量

data,所以此時(shí)輸出data的值是1。綜上,程序輸出“0,1,故本題答案為D選

項(xiàng)。

18、以下針對(duì)相應(yīng)語(yǔ)句的注釋中,說(shuō)法錯(cuò)誤的是(),

A、int*pt[2]:/*pt是一個(gè)指針數(shù)組名*/

B>int(*pt)[2];/*pt是一維數(shù)組名*/

C、int(*pl)();/*pt是指向函數(shù)的指針*/

D、int*pt();/*pt是一個(gè)函數(shù)名*/

標(biāo)準(zhǔn)答案:B

知識(shí)點(diǎn)解析:選項(xiàng)A中定義了一個(gè)數(shù)組pl,它包含兩個(gè)整型指針元素,因而p【是

一個(gè)指針數(shù)組名,所以選項(xiàng)A正確;選項(xiàng)B中定義了一個(gè)數(shù)組指針pt,pt指向一

個(gè)數(shù)組,該數(shù)組包含兩個(gè)整型元素,所以選項(xiàng)B錯(cuò)誤;選項(xiàng)C中定義了一個(gè)函

數(shù),pi是函數(shù)指針,指向的函數(shù)沒(méi)有參數(shù),返回類型為整型,所以選項(xiàng)C正確;

選項(xiàng)D中定義了一個(gè)函數(shù),函數(shù)名為pt,函數(shù)返回整型指針類型,所以選項(xiàng)D正

確。故本題答案為B選項(xiàng)。

19、有以下程序#include<stdio.h>voidsub(doublea,double*pb);int

main(){doublex,y;scanf("%lf%lf,,&x,&y);sub(x,&y);

printf("x=%fy=%f\n'\x,y);}voidsub(doublea,double*pb){a=a-

*pb;*pb=*pb-a;}程序運(yùn)行時(shí)輸入:10.23.5<Enter>,則輸出結(jié)果

.名()■

A、x=10.200000y=-3.200000

B、x=6.700000y=-13.700000

C、x=7.000000y=-3.500000

D、x=13.400000y=-7.000000

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:sub函數(shù)接收兩個(gè)參數(shù):double類型變量a,double指針變量pb。首

先將a與pb指向的變量值相減,結(jié)果存放在a中;然后將pb指向的變量值與a的

新值相減,結(jié)果存放在pb指向的內(nèi)存空間中。sub函數(shù)不會(huì)修改實(shí)參x的值,但會(huì)

修改實(shí)參y的值。當(dāng)輸入10.23.5時(shí),實(shí)參x的值為10.2,y的值為3.5,執(zhí)

行sub函數(shù)后,x的值不變,y的值變成?3.2。故本題答案為A選項(xiàng)。

20、有下列程序#include<stdio.h>main(){char*P="6938";inti?

s=0;for(i=3:i>=0:i-)s=10*s+p[i]-,0,;printf(u%d\n",s);)程

序運(yùn)行后的輸出結(jié)果是()。

A、8396

B、6938

C、3869

D、3689

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:程序首先定義一個(gè)字符指針p,使其指向一個(gè)字符串“6938”。然后通

過(guò)for循環(huán)使用逆序的方式遍歷字符串的各個(gè)字符,并將各個(gè)字符當(dāng)作整數(shù)參與算

術(shù)運(yùn)算。其中,的含義是將字符串中的數(shù)字字符轉(zhuǎn)換成對(duì)應(yīng)的整數(shù);

“10*s+p[i]=(T”是將上一次運(yùn)算結(jié)果乘10后與轉(zhuǎn)換后的整數(shù)相加,再累加到s中。

所以for循環(huán)執(zhí)行完后,字符串“6938”按照逆序的順序?qū)⒚總€(gè)字符轉(zhuǎn)換成對(duì)應(yīng)的整

數(shù)輸出。故本題答案為A選項(xiàng)。

21、以下敘述中錯(cuò)誤的是()。

A、通過(guò)指針變量存取某個(gè)變量值的方式稱為“直接存取”方式

B、在程序的開(kāi)頭包含頭文件stdio.h后,可以給指針變量賦NULL值

C、將一個(gè)指針變量中的值賦給另一個(gè)指針變量,則這兩個(gè)指針指向同一地址

D、C語(yǔ)言中函數(shù)返回值的類型可以是簡(jiǎn)單的數(shù)據(jù)類型,也可以是指針類型

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:通過(guò)指針變量存取某個(gè)變顯值的方式稱為“間接存取''方式,所以選項(xiàng)

A錯(cuò)誤;頭文件s【dio.h中定義了NULL,在程序的開(kāi)頭包含sidio.h后,可以給

指針變量賦NULL值,表示一個(gè)空指針,所以選項(xiàng)B正確;將一個(gè)指針變量中的

值賦給另一個(gè)指針變量,這兩個(gè)指針變量指向同一地址,所以選項(xiàng)C正確;C語(yǔ)言

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論