已知指针p的指向如下图所示.

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

一、选择题

1、下面说明不正确的是_______

A、 char a[10]="china";

B、 char a[10],*p=a;p="china";

C、 char *a;a="china";

D、 char a[10],*p;p=a="china";

2、已知指针p的指向如下图所示,则执行语句 *--p;后*p的值是_______

a[0] a[1] a[2] a[3] a[4]

10 20 30 40 50

p

A、 30

B、 20

C、 19

D、 29

3、下面程序段的运行结果是_______

char *s="abcde";

s+=2;printf("%d",s);

A、 cde

B、字符'c'

C、字符'c'的地址

D、无确定的输出结果

4、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是_______

A、c=*p1+*p2;

B、 p2=c;

C、 p1=p2;

D、 c=*p1*(*p2);

5、若有下面的程序段_______

char s[]="china";char *p; p=s;

则下列叙述正确的是

A、 s和p完全相同

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

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

D、 *p与s[0]相等

6、下面程序段的运行结果是_______

char *format="%s,a=%d,b=%d\n";

int a=11,b=10;

a+=b;

printf(format,"a+=b",a,b);

A、 for,"a+=b",ab

B、 format,"a+=b"

C、 a+=b,a=11,b=10

D、以上结果都不对

7、下面程序段的运行结果是_______

char str[]="ABC",*p=str;

printf("%d\n",*(p+3));

A、67

B、 0

C、字符'C'的地址

D、字符'C'

8、下面程序段的运行结果是_______

char *p="abcdefgh";

p+=3;

printf("%d\n",strlen(strcpy(p,"ABCD")));

A、 8

B、 12

C、 4

D、 7

9、下面程序段中,for循环的执行次数是_______

char *s="\ta\018bc";

for(;*s!='\0';s++) printf("*");

A、 9

B、5

C、 6

D、 7

10、若有说明语句

char a[]="It is mine";

char *p="It is mine";

则以下不正确的叙述是_______

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

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

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

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

11、在说明语句:int *f();中,标识符f代表的是_______

A、一个用于指向整型数据的指针变量

B、一个用于指向一维数组的行指针

C、一个用于指向函数的指针变量

D、一个返回值为指针型的函数名

12、已定义以下函数_______

fun(char *p2, char *p1)

{ while((*p2=*p1)!='\0') {p1++;p2++;}}

函数的功能是

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

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

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

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

13、有以下程序

#include

main()

{ char str[][20]={"Hello","Beijing"},*p=str;

printf("%d\n",strlen(p+20));

}

程序运行后的输出结果是_______

A、 0

B、 5

C、 7

D、 20

14、有以下程序段

main()

{ int a=5,*b,**c;

c=&b; b=&a;

……

}

程序在执行了c=&b;b=&a;语句后,表达式:**c的值是 _______

A、变量a的地址

B、变量b中的值

C、变量a中的值

D、变量b的地址

15、有以下程序

void ss(char *s,char t)

{ while(*s)

{ if(*s==t) *s=t-‘a’+’A’;

s++;

}

}

main()

{ char str1[100]=“abcddfefdbd”,c=’d’;

ss(str1,c); printf(“%s\n”,str1);

}

程序运行后的输出结果是_______

A、 ABCDDEFEDBD

B、 abcDDfefDbD

C、 abcAAfefAbA

D、Abcddfefdbd

二、填空题

1、以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。

void fun(int *x,int *y)

{ …… }

main()

{ int a=10,b=20;

________ ; /* 定义变量p */

p=fun; p(&a,&b);

……

}

2、以下程序中给指针p分配三个double型动态内存单元,请填空。

# include

相关文档
最新文档