MSE C语言第八章习题.doc
《MSE C语言第八章习题.doc》由会员分享,可在线阅读,更多相关《MSE C语言第八章习题.doc(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、下面是研究生考试网为报考GCT软件工程硕士的考生整理的MSE考研复习备考资料。希望这些资料能够给考生一定帮助。在此,预祝考生复习备考顺利! 第九章 指针一、单项选择题1. 变量的指针,其含义是指该变量的 A) 值 B) 名 C) 地址 D) 名和值2.已知指针P的指向如图所示,则表达式*+p的值是a0a1a2a3a41020304050PA 20 B 30 C 21 D 313. 下面程序应能对两个整型变量的值进行交换。以下正确的说法是 main ( ) int a=10,b=20; swap(a, b); prinif(a=%d,b=%dn,a,b); swap(int p, int q)
2、int t; t=p;p=q;q=t;A) 该程序完全正确B) 该程序有错,只要将语句swap(a, b);中的参数改为&a, &b即可C) 该程序有错,只要将swap( )函数中的形参p和q以及t均定义为指针即可D) 以上说法都不正确4. 以下对指针变量进行操作的语句,正确的选项是 A) int *p,*q; q=p; B) int a,*p,*q; q=&a; p=*q;C) int a=b=0,*p; p=&a; b=*p; D) int a=20,*p,*q=&a; p=q;5. 已有定义int k=2, *ptr1,*ptr2; 且ptrl和Ptr2均已指向变量k,下面能正确执行的赋
3、值语句是 A) k=*ptrl+*ptr2; B) ptr2=kC) *ptrl=ptr2; D) ptrl=*ptr2;6. 若已定义int a=5; 下面对(1)、(2)两个语句的正确解释是 (1) int *p=&a; (2) *p=a;A) 语句(1)和(2)中的*P含义相同,都表示给指针变量p赋值B) 语句(1)和语句(2)的执行结果,都是把变量a的地址值赋给指针变量pC) 语句(1)在对p进行说明的同时进行初始化,使p指向a,语句(2)将变量a的值赋给指针变量pD) 语句(1)在对p进行说明的同时进行初始化,使p指向a,语句(2)将变量a的值赋于*p7. 若有语句int *p, a
4、=4; 和p=&a; 下面均代表变量值的一组选项是 A) a, p, *&a B) &*a, &a,*pC) *&p, *p,&a D) *&a, *p, a8. 若有说明:int *p1,*p2, m=5, n=9; 以下均是正确赋值语句的选项是 A) p1=&m; p2=&p1; B) p1=&m; p2=&n; *p1=*p2;C) p1=&m; p2=p1 D) p1=&m; *p2=*p1;9. 下面判断正确的是 A) char *a=china; 等价于char *a; *a=chinaB) char str10=china; 等价于char str10; str =china;C
5、) char *s=china; 等价于char *s; s=china;D) char c4=abc, d4=abc; 等价于 char c4=d4=abc10. 设char *s=tabc017n; 则指针变量s指向的字符串所占的字节数是 A) 9 B) 8 C) 6 D 7 11. 下面能正确进行字符串赋值操作的是 A) char s5=(ABCDE); B) char s5=A,B,C,D,E;C) char *s; s=ABCDE; D) char *s; scanf(%s,s);12. 下面程序段的运行结果是 char *s=abcde; s+=2; printf(%c,*s);A
6、) cde B) c C)字符c的地址 D) 无确定的输出结果13. 下面程序段的运行结果是 char *format=%s,a=%d,b=%dn;int a=1, b=3;a+=b;printf(format,a+=b,a,b);A) a+=b,4,3 B) format,a+=b,4,3C) a+=b, a=4,b=3 D) “a+=b”, a=4,b=314. 以下不能正确进行字符串赋初值的语句是 A) char str5=good!; B) char str =good!;C) char *str=good!; D) char str5=g,o,o,d;15. 若有以下定义和语句:in
7、t s45, (*ps)5;ps=s;则对s数组元素的正确引用形式是 A) ps+1 B) *(ps+3) C) ps02 D) *(ps+1)+316. 在声明语句:int *f( ); 中,标识符f代表的是 A) 一个用于指向整型数据的指针变量B) 一个用于指向一维数组的行指针C) 一个用于指向函数的指针变量D) 一个返回值为指针型的函数名17. 若有以下说明和定义 fun (int *c) main ( ) int (*a)( )=fun, *b( ), w10, c; 在必要的赋值之后,对fun函数的正确调用语句是 A) a=a(w); B) (*a)(&c); C) b=*b(w);
8、 D) fun (b);18. 有如下说明 int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为9的表达式是 A) *p+9 B) *(p+8) C) *p+=9 D) p+819. 若有以下调用语句,则不正确的fun函数的首部是 main ( ) int a50,n; fun(n, &a9); A void fun (int m, int x ) B void fun (int s, int h41)C void fun (int p, int *s) D void fun (int n, int a)20 设已有定义:char *st=how are you; 下
9、列程序段中正确的是 A char a11, *p; strcpy(p=a+1,&st4);B char a11; strcpy(+a, st);C char a11; strcpy(a, st);D char a , *p; strcpy(p=&a1,st+2);21. 设有如下定义语句: int x6=2,4,6,8,5,7,*p=x, i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是 A) for(i=0; i6; i+) printf(%2d,*(p+);B) for(i=0;i6;i+) printf(%2d,*(p+i);C) for(i=0;i6;i+) printf(
10、%2d,*p+);D) for(i=0;i6;i+) printf(%2d,(*p)+); 22. 以下程序程序运行后的输出结果是 main ( ) int a =1,2,3,4,5,6,7,8,9,10,11,12, *p=a+5, *q=NULL; *q=*(p+5); printf (%d %dn,*p,*q);A) 运行后报错 B) 6 6 C) 6 11 D) 5 10 23. 有以下定义和语句:int a32=1,2,3,4,5,6,*p3;p0=a1;则*(p0+1) 所代表的数组元素是 A) a01 B) a10 C) a11 D) a1224. 已有定义:int i,a10,
11、*p;,则合法的赋值语句是 A) p=100; B) p=a5; C) p=a2+2 ; D) p=a+2;25. 程序中对fun函数有如下说明 void *fun( );此说明的含义是: A)fun函数无返回值B)fun函数的返回值可以是任意的数据类型C) fun函数的返回值是无值型的指针类型D) 指针fun指向一个函数,该函数无返回值26. 以下与库函数strcpy(char *p1, char *p2) 功能不相等的程序段是 A) strcpyl (char *p1, char *p2) while (p1+=p2+)!=0); B) strcpy2 (char *pl, char *p
12、2) while (*p1=*p2)!=0) pl+, p2+; C) strcpy3 (char *pl, char *p2) while(*p1+=*p2+);)D) strcpy4 (char *p1, char *p2) whi1e(*p2) *pl+=*p2+;27. 下面程序段的运行结果是 char s6; s=abcd; printf(%sn, s);A) abcd B) abcd C) abc D) 编译出错28. 若有以下定义,则对c数组元素地址的正确引用是C int c5, *p=c;A) p+5 B) *c+1 C) &c0 D) &c+129. 若有定义:int a34
13、; 则对a数组的第i行第j列(假设i, j已正确说明并赋值)元素值的不正确引用为 A) *(*(a+i)+j) B) *(a+i)j C) *(a+i+j) D) *(ai+j)30. 若有以下定义初语句,则对a数组元素地址的不正确引用为 int a34, (*p)3; p=a;A) *(p+2) B) p2 C) p1+1 D) (p+1)+231. 若要对a进行+运算,则a应具有下面说明 A) int a32; B) char *a =12,ab;C) char (*a)3; D) int b10, *a=b;32. 设有以下程序段:char s410=first,second,third
14、,fourth, *sp4;int i;for (i=0; i4; i+) spi=si;若k为int型变量且0=k4,则对字符串的正确引用是 A) sp B) sk C) sp+k D) s+k33. 若有以下定义,则*(p+5)表示 int a10, *p=a;A) 元素a5的地址 B) 元素a5的值C) 元素a6的地址 D) 元素a6的值34. 若有定义:int a46; 则能正确表示a数组中任一元素aij (0=i4,0=j1) printf(%sn,*+argv); B) main (int argc, char *argv ) while(argc-=1) printf(%sn,*
15、+argv); C) main(int argc, char *argv ) while(argc-1) printf(%sn,*+argv);D) main(int argc, char *argv ) while(argc1) prinif(%sn,*+argv);37. 若有说明:char *lang =F0RTRAN,BASIC,PASCAL, JAVA,C; 则lang3的值是 A) 一个地址 B) 一个字符 C) 一个字符串 D) 一个不定值38. 已有定义int (*f)( ); 指针f可以 A) 代表函数的返回值 B) 表示函数返回值的类型C) 表示函数的类型 D) 指向函数的
16、入口地址39. 已知:int *p; 则变量p是 A) 指向int型变量的指针 B) 指向指针的指针C) int型变量 D) 以上三种说法均不正确40. 设有以下程序段,则在main函数中使用语句 是无意义的 main ( ) min (int x, int y) int min( ); int a, b, c, (*p)( ); p=min; A) printf (“%dn”, min(a,b); B) c=min(a, b);C) c=(*p)(a, b); D) p+;41. 下列函数FUN的功能是 FUN( char *ps) char *p;p=ps;while(*p+) ;retu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MSE C语言第八章习题 语言 第八 习题
限制150内