第10章 指针
同步练习一
一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)10.1 若有下面的程序段:
char s[]="china";char *p; p=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("%d\n",b[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.5 有以下程序
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
考生答案: 正确答案: B
10.6 下面说明不正确的是
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"
考生答案: 正确答案: D
10.7 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是
A)p=1;
B)*q=2;
C)q=p;
D)*p=5;
考生答案: 正确答案: 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("a=%d\n",a);
printf("b=%d\n",b);
}
A)-1,5
B)1,6
C)0,7
D)4,10
考生答案: 正确答案: C
10.9 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:
PROG ABCDEFGH IJKL,则输出结果为
main( int argc, char *argv[])
{ while(--argc>0)
printf("%s",argv[argc]);
printf("\n");
}
A)ABCDEFG
B)IJHL
C)ABCDEFGHIJKL
D)IJKLABCDEFGH
考生答案: 正确答案: D
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
以上是上海育路网为上海计算机考试收集整理的上海计算机资料,更多资料请点击上海计算机网
本文结束
特别声明:①凡本网注明稿件来源为"原创"的,转载必须注明"稿件来源:上海育路网",违者将依法追究责任;
②部分稿件来源于网络,旨在与用户分享信息,如有侵权,请联系我们沟通解决。
有用
25人觉的有用