已知指针p的指向如下图所示.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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