C语言习题指针.doc
《C语言习题指针.doc》由会员分享,可在线阅读,更多相关《C语言习题指针.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言(指针一)单元练习五一选择题1下列程序的输出结果是_。 A#include #include main() char *p1,*p2,s10=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. abcBDE2. 以下程序运行之后的输出结果是_。 B #include void main() int *p,*p1,*p2,a=3,b=7; p1=&a; p2=&b; if(ab) p=p1;p1=p2;p2=p
2、; printf(%d,%d ,*p1,*p2); printf(%d,%d,a,b); A. 3,7 7,3B. 7,3 3,7C. 7,3 7,3D. 3,7 3,73. 以下函数的功能是_。 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 void main() int x8=8,7,6,5,0,0,*s;s=x+3;printf(%dn,s2
3、); 执行后输出结果是_。A.随机值 B.0 C.5 D.65. 以下程序的输出结果是_。 D#include #include void main() char b18=abcdefg,b28,*pb=b1+3;while (-pb=b1) strcpy(b2,pb);printf(%dn,strlen(b2); A. 8 B. 3 C. 1 D. 76. 若有以下说明: Dint w34=0,1,2,4,5,8;int (*p)4=w;则数值为4的表达式是_。A. *w1+1 B. p+,*(p+1) C. w22 D. p117. 以下程序的输出结果是_。 A#include int i
4、;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,%dn, 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.48. 若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是_。 CA. a,p,&*a B. *&a,&a,*p C. &a,p,&*p D. *&p,*p,&a9. 以下程序的
5、输出结果为_。 C#include void main() char s=123,*p; p=s; printf(%c%c%cn,*p+,*p+,*p+); A. 123 B. 231 C. 321 D. 31210. 以下程序的输出结果是_。 A#include void main() static char s1=programe,s2=language; char *p1,*p2; int i; p1=s1; p2=s2; for(i=0;i8;i+) if(*(p1+i)=*(p2+i) printf(%c,*(p1+i); A. gae B.ga C. pro D. lang11.
6、以下定义中与int *p4等价的是_。 CA. int p4 B. int *p C. int *(p4) D. int (*p)412. 以下程序的运行结果是_。 A#include void main() char *s=xcbc3abcd; int a, b, c, d; a=b=c=d=0; for(; *s; s+) switch(*s) case c: c+; case b: b+; default : d+; break; case a: a+; printf(a=%d,b=%d,c=%d,d=%dn, a, b, c, d); A. a=1,b=5,c=3,d=8 B. a=1
7、,b=2,c=3,d=3C. a=9,b=5,c=3,d=8 D. a=0,b=2,c=3,d=313. 设char *aa2=abcd,ABCD; 则以下说法中正确的是_。 CA. aa数组元素的值分别是abcd和ABCD。B. aa是指针变量,它指向含有两个数组元素的字符型一维数组。C. aa数组的两个元素分别存放的是含有4个字符的一维字符数组首地址。D. aa数组的两个元素中各自存放了字符a和A的地址。14. 已知函数定义如下: B fun (char *p1) char *p2=p1; while(*p2!= 0) p2+; return (p2-p1); 在主函数中用语句printf
8、(%d,fun(hello world!);调用上述函数,则输出结果为_。A. 13 B.12 C. 11 D. 1015. 若有以下定义:int a=1,2,3,4,5,6,7,8,9,10, *p=a; 表达式的值为3的是_。AA. p+=2,*(p+) B. p+=2,*+p C. p+=3,*p+ D. p+=2,+*p16. 以下程序段执行完后,a的值为_。A static int s24=0,1,2,3,4,5,6,7; int a,*p; p=&s01; a=(*p)*(*p+3)*(*p+5);A. 24 B. 15 C. 28 D. 不确定17设x为一数字字符,则其所对应的十
9、进制数值为_。BA.x B.x-0 C.*x D.&x18以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址,若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为_。B#include #include char *scmp(char *s1, char *s2) if(strcmp(s1,s2)0) return(s1);else return(s2); main() int i; char string20, str320;for(i=0;i3;i+) gets(stri);strcpy(string,scmp(str0,str1); str
10、cpy(string,scmp(string,str2);printf(%sn,string); return;A.abcd B.abba C.abc D.abca19. 以下程序的输出结果是_。A #include void main() int *p1,*p2,*p,a=7,b=9; p1=&a;p2=&b; if(ab) p=p1;p1=p2;p2=p; printf(%d,%d ,*p1,*p2); printf(%d,%d ,a,b); A. 9,7 7,9 B. 7,9 7,9 C. 7,9 9,7 D. 9,7 9,720. 有以下程序: B#include int *f(int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题 指针
限制150内