2022年指针习题九及参考答案 .pdf
《2022年指针习题九及参考答案 .pdf》由会员分享,可在线阅读,更多相关《2022年指针习题九及参考答案 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、习题九一、 单选题1、 已知: int *p,a;则语句 p=&a; 中的运算符 & 的含义是() 。A)位与运算 B)逻辑与运算 C)取指针内容D)取变量地址2、已知: int a,x;则正确的赋值语句是() 。A)a=(a1+a2)/2 B)a*=*a+1; C)a=(x=1,x+,x+2); D )a=goog; 3、已知: int a,*p=&a; 则下列函数调用中错误的是() 。A)scanf(%d,&a); B)scanf(%d,p); C) printf(%d,a); D)printf(%d,p); 4、main(argc,argv)中形式参数argv 的正确说明形式应当为()
2、。A)char *argv B)char argv C)char argv D)char *argv 5、说明语句 int (*p)(); 的含义是() 。A) p 是一个指向一维数组的指针变量B) p 是一个指针变量,指向一个整型数据C) p 是一个指向函数的指针,该函数的返回值是一个整型D) 以上都不对6、设有说明int(*ptr)M;其中的标识符ptr是() 。A) M个指向整型变量的指针B) 指向 M个整型变量的函数指针C) 一个指向有M个整型元素的一维数组的指针D) 具有 M个指针元素的一维指针数组,每个元素都只能指向整型变量7、已知: double *p6; 它的含义是() 。A)
3、p 是指向 double 型变量的指针 B)p 是 double 型数组C)p 是指针数组 D)p 是数组指针8、已知函数说明语句:void *f(); 则它的含义是() 。A)函数 f 的返回值是一个通用型的指针 B)函数 f 的返回值可以是任意的数据类型C)函数 f 无返回值D)指针 f 指向一个函数,该函数无返回值9、已知: char s10,*p=s,则在下列语句中,错误的语句是() 。A)p=s+5; B)s=p+s; C) s2=p4; D)*p=s0; 10、已知: char b5,*p=b; 则正确的赋值语句是() 。A)b=abcd B)*b=abcd C)p=abcd D)
4、*p=abcd 11、下列对字符串的定义中错误的是() 。A)char str7=FORTRAN B)char str = FORTRAN C)char *str=FORTRAN D)char str =F,O,R,T,R,A,N,0 12、已知: char s20=programming, *ps=s; 则不能引用字母o 的表达式是() 。A)ps+2 B)s2 C)ps2 D)ps+=2,*ps 13、已知: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则不能表示数组a 中元素的表达式是() 。A)*p B)a10 C)*a D)ap-a 14、已知: char
5、*s; 正确的语句是() 。A)s=computer ; B)*s=computer; C)*s=computer; D)*s=A ; 15、已知: char c8=beijing,*s=c; int i; 则下面的输出语句中,错误的是() 。A)printf(%sn,s); B)printf(%sn,*s);C)for(i=0;i7;i+) D)for(i=0;i7;i+) printf(%c,ci); printf(%c,si); 16、已知: int i=0,j=1,*p=&i,*q=&j; 错误的语句是() 。A)i=*&j; B)p=&*&i; C)j=*p+; D)i=*&q;17
6、、已知: char * p,* q; 选择正确的语句() 。A)p*=3; B)p/=q; C)p+=3; D )p+=q; 18、已知: int a,*p=&a; 则为了得到变量a 的值,下列错误的表达式为() ;A)*&p B)*p C)p0 D)*&a 19、C语言主函数main() 最多允许有()个参数。A)1 B) 2 C)0 D)3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 20、已知: int a43=1,
7、2,3,4,5,6,7,8,9,10; int(*ptr)3=a,*p=a0; 则以下能够正确表示数组元素 a12的表达式是() 。A)*(ptr+1)2) B)*(*(p+5) C)(*ptr+1)=2 D)*(*(a+1)+2)二、填空题1、下面的函数是求两个整数之和,并通过行参传回结果。int add(int x, int y,_z) (int *) _=x+y; ( *z ) 2、下面程序通过指向整型的指针将数组a34的内容按3 行 4 列的格式输出,请给printf()填入适当的参数,使之通过指针p 将数组元素按要求输出。 #include stdio.h int a34=1,2,3
8、,4,5,6,7,8,9,10,11,12,*p=a; main() int i,j; for(i=0;i3;i+) for(j=0;j4;j+) printf(%4d,_); (*p+i*4+j) 3、下面程序的功能是:从键盘上输入一行字符;存入一个字符数组中,然后输出该字符串。#include stdio.h main() char str81,*sptr; int i; for(i=0;i80;i+) stri=getchar(); if(stri=n)break; stri=_; (0 ) sptr=str; while(*sptr) putchar(*sptr_); ( + ) 4、
9、下面的程序实现从10 个数中找出最大和最小值。#include stdio.h int max,min; find_max_min(int *p,int n) int *q; max=min=*p; for(q=_;_;q+) (q=p qmax) else if (_)min=*q; (*qmin) main() int i,num10; printf(input 10 numbers:n) for(i=0;i10; i+) scanf(%d,&numi); find_max_min(num,10); printf(max=%d;min=%dn,max,min); 名师资料总结 - - -精
10、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 三、编程题1、编写一函数,其功能是交换两个变量x、y 的值。编程序实现对数组a100,b100调用此函数,交换a、b 中具有相同下标的数组元素的值,且输出交换后的a、 b 数组。/*p279_1.c*/ #include stdlib.h void swap(int *pa,int *pb) int t; t=*pa;*pa=*pb;*pb=t; main() int a100,b100,i; for(i
11、=0;i100;i+) /*产生数组 a和b */ ai=random(100); bi=random(100); printf(before swap A:n); /*输出交换前数组a */ for(i=0;i100;i+) printf(%3d,ai); printf(n); printf(before swap B:n); /*输出交换前数组b */ for(i=0;i100;i+) printf(%3d,bi); printf(n); for(i=0;i100;i+) /*a、b数组元素交换 */ swap(&ai,&bi); printf(after swap A:n); /*输出交
12、换后数组a */ for(i=0;i100;i+) printf(%3d,ai); printf(n); printf(after swap B:n);/*输出交换后数组b */ for(i=0;i100;i+) printf(%3d,bi); printf(n); _ 2、用数组方案和指针方案分别编写函数insert(s1,s2,f),其功能是在字符串s1 中的指定位置f 处插入字符串 s2。解 1:/* P279_2A.c */ #include string.h insert(char *sa,char *sb,int n) char sf80,*p,*q; int i=0; for(p
13、=sa+n;*p!=0;p+) sfi+=*p; sfi=0; for(p=sa+n;*sb!=0;p+,sb+) *p=*sb; for(q=sf;*q!=0;p+,q+) *p=*q; *q=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - main() char s180=dsahfdjkahfke; char s240=sdajkhew; int n; puts(s1);puts(s2); n=strlen(s1)
14、; printf(Input n(0-%d):n,n); scanf(%d,&n); insert(s1,s2,n); puts(s1); 解 2:/* P279_2B.C */ #include string.h insert(char sa,char sb,int n) char sf80; int i=0,k=0; while(san+i!=0) sfi=san+i+; sfi=0; i=0; while(sbi!=0) san+i=sbi+; while(sfk!=0) san+i+=sfk+; san+i=0; main() char s180=dsahfdjkahfke; char
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年指针习题九及参考答案 2022 指针 习题 参考答案
限制150内