C语言指针Word格式文档下载.docx

上传人:b****4 文档编号:17562053 上传时间:2022-12-07 格式:DOCX 页数:107 大小:49.67KB
下载 相关 举报
C语言指针Word格式文档下载.docx_第1页
第1页 / 共107页
C语言指针Word格式文档下载.docx_第2页
第2页 / 共107页
C语言指针Word格式文档下载.docx_第3页
第3页 / 共107页
C语言指针Word格式文档下载.docx_第4页
第4页 / 共107页
C语言指针Word格式文档下载.docx_第5页
第5页 / 共107页
点击查看更多>>
下载资源
资源描述

C语言指针Word格式文档下载.docx

《C语言指针Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言指针Word格式文档下载.docx(107页珍藏版)》请在冰豆网上搜索。

C语言指针Word格式文档下载.docx

的输出结果为________。

A、512

B、无确定值

C、a的地址

D、511

7、若有定义:

int*p[3];

则以下叙述中正确的是________。

A、定义了一个名为*p的整型数组,该数组含有三个int类型元素

B、定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针

C、定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素

D、定义了一个基类型为int的指针变量p,该变量具有三个指针

8、有以下程序

string.h>

{charstr[][20]={"

Hello"

Beijing"

},*p=str[0];

strlen(p+20));

程序运行后的输出结果是________。

B、20

C、7

D、0

9、若有说明:

intn=2,*p=&

n,*q=p;

则以下非法的赋值语句是________。

A、n=*q;

B、p=q;

C、*p=*q;

D、p=n;

10、有以下程序

main(intargc,char*argv[])

{inti,len=0;

for(i=1;

i<

argc;

i++)

len+=strlen(argv[i]);

len);

程序编译连接后生成的可执行文件是ex1.exe,

若运行时输入带参数的命令行是:

ex1abcdefg10<

回车>

则运行的结果是________。

A、12

B、22

C、17

D、9

11、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是________。

{int*p,*q,a,b;

p=&

inputa:

"

);

scanf("

%d"

*p);

……

}

A、*p表示的是指针变量p的值

B、*p表示的是变量a的值,而不是变量a的地址

C、*p只能用来说明p是一个指针变量

D、*p表示的是指针变量P的地址

12、已有定义intk=2;

int*ptr1,*ptr2;

且ptrl和ptr2均已指向变量k,下面不能正确执行的赋值语句是________。

A、ptrl=ptr2;

B、ptr2=k;

C、k=*ptr1*(*ptr2);

D、k=*ptrl+*ptr2;

13、变量的指针,其含义是指该变量的________。

A、名

B、地址

C、一个标志

D、值

14、若有语句int*point,a=4;

和point=&

下面均代表地址的一组选项是________。

A、*&

point,*point,&

a

B、a,point,*&

C、&

*a,&

a,*point

D、&

a,&

*point,point

15、下面说明不正确的是________。

A、char*a;

a="

china"

;

B、chara[]="

C、chara[10]="

D、chara[10],*p;

p=a="

16、若有说明语句

chara[]="

Itismine"

char*p="

Itismin;

则以下不正确的叙述是________。

A、p变量中存放的地址值可以改变

B、a+1表示的是字符t的地址

C、p指向另外的字符串时,字符串的长度不受限制

D、a中只能存放10个字符

17、若有以下定义,则对a数组元素的正确引用是________。

inta[5],*p=a;

A、*(p+5)

B、*&

a[5]

C、a+2

D、*(a十2)

18、若有以下定义,则对a数组元素地址的正确引用是________。

A、&

a+1

B、p+5

C、*a+1

a[0]

19、若有定义:

inta[2][3];

则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为________。

A、*(*(a+i)+j)

B、*(a+i)+j

C、(a十i)[j]

D、*(a+i+j)

20、若有定义:

则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的正确引用为________。

A、*(a+j)

B、*(a[i]+j)

C、(a+i)

D、a[i]+j

21、若有以下定义和语句,则对a数组元素地址的正确引用为________。

inta[2][3],(*p[3])

p=a;

A、p[2]

B、(p+1)+2

C、p[1]+1

D、*(p+2)

22、若有以下定义和语句,则对a数组元素的正确引用为________。

inta[3][3],(*p)[3];

p=a

A、*(p+2)+1

B、p[1]+2

C、*(p[2]+1)

D、(p+1)[0]

23、若有定义:

inta[5];

则a数组中首元素的地址可以表示为________。

A、a+1

B、&

a[1]

C、a

24、若有定义:

int(*P)[4];

则标识符p________。

A、是一个指针数组名

B、定义不合法

C、是一个指针,它指向一个含有四个整型元素的一维数组

D、是一个指向整型变量的指针

25、若有以下定义和赋值语句,则对S数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为________。

ints[2][3]={0},(*p)[3];

p=s;

A、p[i]+j

B、(*(p+i))[j]

C、*(p(i)+j)

D、(p+i)+j

26、若有以下定义和赋值语句.,则对b数组的第i行第j列(假设i,j已正确说明并赋值)元素的非法引用为________。

intb[2][3]={0},(*p)[3];

p=b;

A、*(p[i]+j)

B、(*(p+1))[j]

C、*(p+i)+j

D、*(*(p+i)+j)

27、以下与int*q[5];

等价的定义语句是________。

A、int(*q)[5];

B、intq[5];

C、int*q;

D、int(*q[5]);

28、若有以下定义,则*(p+5)表示________。

inta[10],*p=a;

A、元素a[6]的地址

B、元素a[5]的值

C、元素a[6]的值

D、元素a[5]的地址

29、若有定义:

int*p[4];

A、是一个指针,它指向一个含有四个整型元素的一维数组

B、是一个指针数组名

C、说明不合法

30、一以下正确的说明语句是________。

A、inta[]={1,3,5,7,9};

int*num[5]={a[0],a[2],a[3],a[4]};

B、inta[5],*num[5]={&

a[0],&

a[1],&

a[2],&

a[3],&

a[4]};

Cinta[3][4],(*num)[4];

num[1]=&

a[1][3];

D、int*b[]={1,3,5,7,9};

31、若有以下定义,且0<

=i<

4,则不正确的赋值语句是________。

intb[4][6],*p,*q[4];

A、p=b[i];

B、p=b;

C、q[i]=&

b[0][0];

D、q[i]=b[i];

32、以下正确的定义语句和赋值语句是________。

A、doubleb[3][5],s[5][3]},*q;

q=b;

s=q;

B、floatb[3][5],*P[3];

P[0]=b[0];

p[2]=*b+4;

C、intb[10],*q;

char*s;

s=b;

D、intb[3][5],(*P)[3],(*q)[5];

P=b;

33、若有以下定义,则P十5表示________。

A、元素a[5]的地址

B、元素a[6]的值

C、元素a[5]的值

D、元素a[6]的地址

34、若有以下定义,且0<

6,则正确的赋值语句是________。

ints[4][6],t[6][4],(*p)[6];

A、p=s[i];

B、p=s;

C、p=t[i];

D、p=t;

35、若有定义:

inta[4][6];

则能正确表示a数组中任一元素a[i][j](此0<

4,o<

=j<

6)地址的表达式是________。

a[0][0]+6*i+j

a[0][0]+6*j+1

a[0][0]+4*j+i

a[0][0]+4*i+j

36、以下选项中,对指针变量P的正确操作是________。

A、inta[5];

int*p=a=1000;

B、inta[5],*p;

p=a;

C、inta[5];

int*p1,*p2=a;

*p1=*p2;

D、inta[5],*p;

37、若有以下定义和语句,则能正确表示a数组元素地址的表达式是________。

doublea[5],*p1;

p1=a;

A、a

a[5]

C、p1+5

D、*p1

38、若有以下定义,且0<

5,则对a数组元素的非法引用是________。

A、*(p+i)

B、a[i]

C、*(a+i)

D、*(&

a+i)

39、若有以下定义,则数值不为3的表达式是________。

intx[10]={0,1,2,3,4,5,6,7,8,9},*p1;

A、p1=x+3,*p1++

B、p1=x+2,*++p1

C、p1=x+2,*(p1++)

D、x[3]

40、若有以下定义,则能正确的程序段是________。

int*p,*s,i,j;

char*q,ch;

A、main()

{p=&

i;

ch;

p=q;

....}

B、main()

{*p=1.00;

C、main()

s=p;

.....}

D、main()

*p=40;

*q=*p;

41、设有以下定义:

char*cc[22]={"

1234"

5678"

};

则正确的叙述是________。

A、cc数组的两个元素中各自存放字符串"

和"

的首地址

B、cc数组元素的值分别是"

C、cc数组的两个元素中分别存放的是含4个字符的一维字符数组的首地址

D、cc是指针变量,它是指向两个数组元素的字符型一维数组

42、以下正确的叙述是________。

A、C语言允许main函数带形参,形参名只熊是argc和argv

B、若有说明:

main(intargc,char*argv),则形参arc的值必须大于i

C、当main函数带有形参时,传给形参的值只能从命令行中得到

D、C语言允许main函数带形参,且形参个数和形参名均可由用户指定

43、main函数的正确说明形式是________。

A、main(intargc,charargv)

B、main(intabc,char**abv)

C、main(intc,charv[])

D、main(intargc,char*argv)

44、若有说明:

char

*language[]={"

FORTRAN"

BASIC"

PASCAL"

JAVA"

C"

则表达式*language[1]>

*language[3]比较的是________。

A、字符串BASIC和字符串JAVA

B、字符串FORTRAN和字符串PASCAL

C、字符B和字符J

D、字符F和字符P

45、若有说明:

char*language[]={"

则language[2]的值是________。

A、一个字符串

B、一个地址

C、一个不定值

D、一个字符

46、若有说明:

'

A、language是一个字符型指针数组,它包含5个元素,每个元素都是一个指向字符串变量的指针

B、language+2表示字符串"

C、*language[2]的值是字母P

D、language是一个字符型指针数组,它包含5个元素,其初值分别是"

47、语句int(*ptr)();

的含义是________。

A、ptr是指向int型数据的指针变量

B、ptr是一个函数名,该函数的返回值是指向int型数据的指针

C、ptr是指向函数的指针,该函数返回一个int型数据

D、ptr是指向一维数组的指针变量

48、若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是________。

A、*pmax(a,b);

B、*p(a,b);

C、(*p)(a,b);

D、(*p)max(a,b);

49、已有函数max(a,b),为了让函数指针变量P指向函数max,正确的赋值方法是________。

A、p=max;

B、*p=max(a,b);

C、*P=max;

D、p=max(a,b);

50、已有定义int(*p)();

指针p可以________。

A、表示函数的类型

B、指向函数的入口地址

C、表示函数返回值的类型

D、代表函数的返回值

51、以下定义语句中正确的是________。

A、float*a,b=&

B、inta=10,*b=&

C、chara='

A'

b='

B'

D、floata=b=10.0;

52、若有以下说明和语句,intc[4][5],(*p)[5];

p=c;

能正确引用c数组元素的是________。

A、*(p[0]+2)

B、*(p+1)+3

C、p+1

D、*(p+3)

53、有以下程序

{inta=7,b=8,*p,*q,*r;

q=&

r=p;

p=q;

q=r;

%d,%d,%d,%d\n"

*p,*q,a,b);

A、7,8,8,7

B、8,7,7,8

C、8,7,8,7

D、7,8,7,8

54、有以下程序

{inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;

*q=*(p+5);

%d%d\n"

*p,*1);

A、510

B、611

C、报错

D、66

55、已有定义:

inti,a[10],*p;

则合法的赋值语句是________。

A、p=a+2;

B、p=a[2]+2;

C、p=100;

D、p=a[5];

56、若有说明语句:

inta,b,c,*d=&

c;

则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是________。

A、scanf("

%d%d%d"

&

b,d);

B、scanf("

a,b,*d);

C、scanf("

b,&

d);

D、scanf("

a,b,d);

57、有以下程序

int*f(int*x,int*y)

{if(*x<

*y)

returnx;

else

returny;

{inta=7,b=8,*p,*q,*r;

r=f(p,q);

%d,%d,%d\n"

*p,*q,*r);

A、8,7,7

B、7,8,7

C、8,7,8

D、7,8,8

58、有以下程序,输出结果为________。

voidfun(char*a,char*b)

{a=b;

(*a)++;

}

{charc1='

c2='

a'

*p1,*p2;

p1=&

c1;

p2=&

c2;

fun(p1,p2);

%c%c\n"

c1,c2);

A、Ab

B、Bb

C、aa

D、Aa

59、若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是________。

A、long*L;

*L='

\0'

B、chart='

m'

*c=&

t;

C、float*f=NULL;

*f=10.5;

D、int*i=NULL;

scanf("

i);

60、有以下程序段

{inta=5,*b,**c;

c=&

b=&

程序在执行了c=&

b=&

语句后,表达式:

**c的值是________。

A、变量b中的值

B、变量b的地址

C、变量a中的值

D、变量a的地址

61、已定义以下函数

fun(char*p2,char*p1)

{while((*p2=*p1)!

='

){p1++;

p2++;

}}

函数的功能是________。

A、将p1所指字符串复制到p2所指内存空间

B、检查p1和p2两个指针所指字符串中是否有'

C、将p1所指字符串的地址赋给指针p2

D、对p1和p2两个指针所指字符串进行比较

62、有以下程序

{char*p="

abcde\0fghjik\0"

strlen(p));

A、6

B、12

C、15

D、5

63、有以下程序

stdlib.h>

{char*p,*q;

p=(char*)malloc(sizeof(char)*20);

q=p;

%s%s"

p,q);

%s%s\n"

若从键盘输入:

abcdef<

则输出结果是________。

A、defdef

B、dd

C、abcdef

D、abcd

64、以下程序的运行结果是________。

sub(intx,inty,int*z)

{*z=y-x;

{inta,b,c;

sub(10,5,&

a);

sub(7,a,&

b);

sub(a,b,&

c);

%4d,%4d,%4d\n"

a,b,C);

A、-5,-12,-17

B、-5,-12,-7

C、5,-2,-7

D、5,2,3

65、执行以下程序后,a的值为0,b的值为________。

{inta,b,k=4,m=6,*p1=&

k,*p2=&

m;

a=p1==&

b=(-*p1)/(*p2)+7;

a=%d\n"

a);

b=%d\n"

b);

B、10

66、下面程序应能对两个整型变量的值进行交换。

以下正确的说法是________。

{inta=10,b=20;

(1)a=%d,b=%d\n"

a,b);

swap(&

(2)a=%d,b=%d\n"

swap(intp,intq)

{intt;

t=p;

q=t;

A、该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可

B、该程序完全正确

C、该程序有错,只要将语句swap(&

中的参数改为a,b即可

D、以上说法都不正确

67、以下程序有错,错误原因是________。

{int*p,i;

*p=*q;

A、q没有指向具体的存储单元,所以*q没有实际意义

B、p和q的类型不一致,不能执行*p=*q;

语句

C、*p中存放的是地址值,因此不能执行

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1