C语言5指针练习题5

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章指针

一、选择题

1.若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、

b、c的语句是

A.scanf("%d%d%d",&a,&b,&d);

B.scanf("%d%d%d",&a,&b,d);

C.scanf("%d%d%d",a,b,d);

D.scanf("%d%d%d",a,b,*d);

2.若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是

A.p+1 B.a+1 C.a++ D.++p

3.若已定义:int a[ ]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

其中 0

A.a[p-a] B.*(&a[i]) C.p[i] D.a[10]

4.若定义:int x=3,*p=&x,*q=p;则以下非法的赋值语句是

A.p=q B.*p=*q C.p=x D.x=q

5.若有int x, *pb; 则正确的赋值表达式是

A.pb=&x B.pb=x; C.*pb=&x; D.*pb=*x

6.以下选项中,对指针变量p的正确操作是

A.int a[3], *p; p=&a; B.int a[5], *p; p=a;

C.int a[5]; int *p=a=100; D.int a[5],int *p1,*p2=a; *p1=*p2; 7.char str[]="ABCD", *p=str; printf("%d\n",*(p+4));上面程序的输出结果是A.68 B.0C.字符"D"的地址D.不确定的值

8.变量的指针,其含义是指该变量的

A.值B.一个标志C.名D.地址

9.若有语句:int *p,a=4;和p=&a;下面均代表地址的一组选项是

A.a,p,*&a B.&*a,&a,*p

C.*&p,*p,&a D.&a,&*p,p

10.12.设有程序段:char s[ ]=”china”; char *p ; p=s ;则下面叙述正确的是A.s和p完全相同

B.数组s中的内容和指针变量p中的内容相等

C.*p与s[0]相等

D.s数组长度和p所指向的字符串长度相等

二、阅读程序,写出运行结果。

*1.void expvalue(int a,int*b);

main()

{ int x,y;

printf("inpat data");

scanf("%d",&x);

expvalue(x,&y);

printf("x=%d y=%d",x,y);

}

void expvalue(int a, int *b)

{ *b=-a*a+2*a+1; }

运行时输入数据4,则输出结果为

A.x=4.0 y=-7.0 B.x=4 y=-7

C.x=4 y=7 D.x=-0.4 y=-7.0

*2.#include

#include

int strcmpl(char *s, char *t);

main()

{ int i;

char *s1,*s2;

gets(s1);

gets(s2);

i=strcmp1(s1,s2);

printf("%d\n",i);

}

int strcmp1(char *s,char *t)

{ for( ;*s==*t; s++,t++)

if(*s=='\0')

return(0);

return(*s-*t);

}

运行两次,第一次输入their<回车>their<回车>,第二次输入I am a student <回车>You are a teacher <回车>,运行结果:

A.0 B.0 C.0 D.0

15 16 -15 -16

3.int a[ ]={1,5,7,9,11,13};

main( )

{ int *p;

p=a+3;

printf(“%d,%d\n”,*p,*p++);

printf(“%d,%d\n”,*(p-2),*(a+4));

}

A.9,9B.9,11 C.7,11 D.11,7

7,11 11,7 11,9 9,11

4.#include

main()

{ char*ptr1,*ptr2;

ptr1=ptr2=”abcde";

while(*ptr2!=…\0')

putchar(*ptr2++);

while(--ptr2>ptr1)

putchar(*ptr2);

putchar(…\n');

}

A.bcde edc B.abcdeedb

C.abcde edcb D.bcde edb

5.#include

char b[ ]=“computer";

char *a=“COMPUTER";

main( )

{ int i=0;

printf(“%c,%s,",*a,b+1);

while(putchar(*(a+i))) i++;

}

A.C, omputer,COMPUTER B.C,omputer,COMPUTER

C.COMPUTER, omputer, COMPUTER D.C,omputer,COMPUTER 6.#include

main()

{ char a[]=“Th is is a computer",b[20];

int i=0;

while (a[i]!=…\0')

{ b[i]=a[i];i++;

}

b[i]=…\0';

printf(“stirng a is:%s\n",a);

printf(“string b is:");

for(i=0;*(b+i)!=…\0';i++)

printf("%c",*(b+i));

printf(“\n");

}

A.string a is :This is a computer

string b is : This is a computer

B.string a is :This is a computer string b is : This is a computer C.This is a computer

This is a computer

D.string a is : string b is :

*7.#include

main( )

{ int a[10]={11,12,13,14,15,16,17,18,19,20},n=10,i;

sub(a,&n);

for(i=0;i

printf(“\n");

}

sub(s,n)

int*s,*n;

{ int i,j=0;

相关文档
最新文档