资源描述:
《C语言指针选择题》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是A)a[p-a]B)*(&a[i])C)p[i]D)a[10]D2.已知指针p的指向如下图所示,则执行语句*--p;后*p的值是a[0]a[1]a[2]a[3]a[4]┌──┬──┬──┬──┬──┐│10
2、20
3、30│40
4、50
5、└──┴──┴──┴──┴──┘p↑A)30B)20C)19D)29B3.下面程序运行时,如果从键盘上输入3,5<回车>,程序输出的结果是
6、________。main(){inta,b,*pa,*pb;pa=&a;pb=&b;scanf("%d,%d",pa,pb);*pa=a+b;*pb=a+b;printf("a=%d,b=%d",a,b);}A)a=13,b=13B)a=8,b=8C)a=8,b=13D)出错C4.下面程序段的输出结果是________。main(){charstring1[20],string2[20]={"ABCDEF"};strcpy(string1,string2);printf("%s",st
7、ring1+3);}A)EFB)DEFC)CDEFD)ABCDEFB5.下列程序执行后的输出结果是________。main()1{inta[3][3],i,*pmul;pmul=&a[0][0];for(i=0;i<9;i++)pmul[i]=i+1;printf("%d",a[1][2]);}A)3B)6C)9D)随机数B6.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为________。A)12B)11C)10D)编译出错B7.对于基类型相同
8、的两个指针变量之间,不能进行的运算是A)
9、的值B)形参p中存放的地址值C)一个临时存储单元的值D)形参p自身的地址值B210.有如下说明inta[10]=[1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是________。A)*(p+9)B)*(p+8)C)*p+=9D)p+8B11.有如下程序main(){chars[]="ABCD",*p;for(p=s+1;p
10、DDD12.下列程序的输出结果是main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}A)非法B)a[4]的地址C)5D)3C13.下面程序的输出结果是main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%d",*p+9);}A)0B)1C)10D)93C14.当调用函数时,实参是一个数组名,则向函数传送的是________。A)数组的长度B)数组的首地址C)数组每一
11、个元素的地址D)数组每个元素中的值B15.设有定义语句"inta=3,b,*p=&a;",则下列语句中使b不为3的语句是A)b=*&a;B)b=*p;C)b=a;D)b=*a;D16.设指针x指向的整型变量值为25,则printf("%d",++*x);的输出是:A)23B)24C)25D)26D17.若有说明语句"inti,j=7,*p=&i;",则与i=j等价的语句是A)i=*p;B)*p=*&j;C)i=&j;D)i=**p;B18.若有说明语句"inta[10],*p=a;",对数组
12、元素的正确引用是A)a[p]B)p[a]C)*(p+2)D)p+2C19.下列各语句行中,能正确进行赋字符串操作的语句是A)chars[5]={"ABCDE"};B)chars[5]={'A','B','C','D','E'};C)char*s;s="ABCDE";D)char*s;scanf("%s",&s);C20.若有以下定义语句,则不能表示a数组元素的表达式是inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;A)*pB)a[10]C)*aD)a[p-a]B21.若