当前位置:首页 > 第十章 指针练习题
第10章 指针
同步练习一
一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。) 10.1 若有下面的程序段:
char s[]=\则下列叙述正确的是
A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等 C)s数组长度和p所指向的字符串长度相等 D)*p与s[0]相等 正确答案: D
10.2 若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是 A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point,point 正确答案: D
10.3 下列程序执行后的输出结果是 void func(int *a,int b[]) { b[0]=*a+6; } main()
{ int a,b[5]; a=0; b[0]=3;
func(&a,b); printf(\\n\[0]); }
A)6 B)7 C)8 D)9 正确答案: A
10.4 已定义以下函数 fun(char *p2, char *p1)
{ while((*p2=*p1)!='\0'){p1++;p2++;} }
函数的功能是
A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2 C)对p1和p2两个指针所指字符串进行比较
D)检查p1和p2两个指针所指字符串中是否有'\0' 正确答案: A
10.6 下面说明不正确的是
A)char a[10]=\)char a[10],*p=a;p=\C)char *a;a=\)char a[10],*p;p=a=\正确答案: D
10.8 执行以下程序后,a,b的值分别为 main()
{ int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m;
b=(*p1)/(*p2)+7; printf(\\n\); printf(\\n\); }
A)-1,5 B)1,6 C)0,7 D)4,10 正确答案: C
10.10 以下程序有错,错误原因是 main()
{ int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q; ...... }
A)p和q的类型不一致,不能执行*p=*q;语句 B)*p中存放的是地址值,因此不能执行*p=40;语句 C)q没有指向具体的存储单元,所以*q没有实际意义
D)q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果 正确答案: D
10.11 下面程序段的运行结果是 char a[]=\p=a;
while(*p!=′u′){printf(\);p++;}
A)LANGUAGE B)language C)LAN D)langUAGE 正确答案: C
10.12 有以下语句,则对a数组元素的引用不正确的是(0≤i≤9) int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A)a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i)) 正确答案: D
10.13 函数fun的返回值是 fun(char *a,char *b) { int num=0,n=0;
while(*(a+num)!=′\0′) num++;
while(b[n]) { *(a+num)=b[n]; num++;n++; } return num; }
A)字符串a的长度 B)字符串b的长度
C)字符串a和b的长度之差 D)字符串a 和b的长度之和 正确答案: D
10.15 下面判断正确的是
A)char *a=\等价于 char *a;*a=\
B)char str[5]={\等价于char str[]={\C)char *s=\等价于 char *s;s=\
D)char c[4]=\[4]=\等价于char c[4]=d[4]=\正确答案: C 10.17 有如下说明
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是
A)*p+9 B)*(p+8) C)*p+=9 D)p+8 正确答案: B
10.19 下列程序的运行结果是 void fun(int *a, int *b) { int *k; k=a; a=b; b=k; }
main()
{ int a=3, b=6, *x=&a, *y=&b; fun(x,y);
printf(\); }
A)6 3 B)3 6 C)编译出错 D)0 0 正确答案: B
10.20 若有说明语句 char a[]=\char *p=\则以下不正确的叙述是 A)a+1表示的是字符t的地址
B)p指向另外的字符串时,字符串的长度不受限制 C)p变量中存放的地址值可以改变 D)a中只能存放10个字符 正确答案: D
10.21 以下程序的运行结果是 sub(int x,int y,int *z) { *z=y-x; } main() { int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);
printf(\\n\); }
A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7 正确答案: B
10.23 下面程序的输出结果是 #include
{ char *p1=\[50]= \
共分享92篇相关文档