C语言习题 指针1.doc
文本预览下载声明
C语言(指针)单元练习五#include stdio.h
#include string.h
main()
{ char *p1,*p2,s[10]=12345;
p1=abcde;
p2=ABCDE;
strcpy(s+2,p1+3);
strcat(s,p2+2);
printf(%s,s);
return;}
A. 12deCDE B.12abcAB C. cdABC45 D. abcBDE
2. 以下程序运行之后的输出结果是______。 B
#include stdio.h
void main()
{ int *p,*p1,*p2,a=3,b=7;
p1=a; p2=b;
if(ab) { p=p1;p1=p2;p2=p; }
printf(%d,%d ,*p1,*p2);
printf(%d,%d,a,b);
}
A. 3,7 7,3 B. 7,3 3,7
C. 7,3 7,3 D. 3,7 3,7
3. 以下函数的功能是______。 B
fun(int *p1,*p2)
{int *p;
*p=*p1;
*p1=*p2;
*p2=*p;}
A. 正确,但没有交换*p1和*p2的值。
B. 使用了空指针,可能造成系统故障。
C. 能成功交换*p1和*p2的值。
D. 能成功交换*p1和*p2的地址。
4. 有以下程序: B
#include stdio.h
void main()
{ int x[8]={8,7,6,5,0,0},*s;
s=x+3;
printf(%d\n,s[2]); }
执行后输出结果是______。
A.随机值 B.0 C.5 D.6
5. 以下程序的输出结果是______。 D
#include stdio.h
#include string.h
void main()
{ char b1[8]=abcdefg,b2[8],*pb=b1+3;
while (--pb=b1) strcpy(b2,pb);
printf(%d\n,strlen(b2)); }
A. 8 B. 3 C. 1 D. 7
6. 若有以下说明: D
int w[3][4]={{0,1},{2,4},{5,8}};
int (*p)[4]=w;
则数值为4的表达式是______。
A. *w[1]+1 B. p++,*(p+1) C. w[2][2] D. p[1][1]
7. 以下程序的输出结果是______。 A
#include stdio.h
int i;
fun(int a, int *b);
main()
{ int i=1, j=2;
fun(fun(i, j), j); return; }
fun(int a, int *b)
{ static int m=2;
i+=m+a;
m=++(*b);
printf(%d,%d\n, i, m);
return (m); }
A. 3,3 B. 3,3 C. 3,3 D. 3,3
9,4 6,3 9,3 6,4
6.4
8. 若有语句:int a=4, *p=a;,下面均代表地址的一组选项是______。 C
A. a,p,*a B. *a,a,*p C. a,p,*p D. *p,*p,a
9. 以下程序的输出结果为______。 C
#include stdio.h
void main()
{ char s[]=123,*p;
p=s;
printf(%c%c%c\n,*p++,*p++,*p++); }
A. 123 B. 231 C. 321 D. 312
10. 以下程序的输出结果是______。 A
#incl
显示全部