第9章 指针.docx
- 文档编号:17190363
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:23
- 大小:22.93KB
第9章 指针.docx
《第9章 指针.docx》由会员分享,可在线阅读,更多相关《第9章 指针.docx(23页珍藏版)》请在冰豆网上搜索。
第9章指针
单项选择题
0901.对于基类型相同的两个指针变量之间,不能进行的运算是( )。
A.+
B.<
C.=
D.–
0902.有以下函数
char*fun(char*p)
{returnp;}
该函数的返回值是( )。
A.形参p中存放的地址值
B.无确切的值
C.一个临时存储单元的值
D.形参p自身的地址值
0903.有如下说明
inta[10]=[1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是( )。
A.*(p+8)
B.*(p+9)
C.*p+=9
D.p+8
0904.下列程序的输出结果是( )。
main()
{chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf("%d",*--p);
}
A.5
B.a[4]的地址
C.3
D.非法
0905.下面程序的输出结果是( )。
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%d\n",*p+9);
}
A.10
B.0
C.1
D.9
0906.设有定义语句"inta=3,b,*p=&a;",则下列语句中使b不为3的语句是( )。
A.b=*a;
B.b=*&a;
C.b=*p;
D.b=a;
0907.设指针x指向的整型变量值为25,则printf("%d\n",++*x);的输出是( )。
A.26
B.23
C.24
D.25
0908.若有说明语句"intI,j=7,*p=&I,",则与i=j等价的语句是( )。
A.*p=*&j;
B.i=*p;
C.i=&j;
D.i=**p;
0909.若有说明语句"inta[10],*p=a;",对数组元素的正确引用是( )。
A.*(p+2)
B.a[p]
C.p[a]
D.p+2
0910.下列各语句行中,能正确进行赋字符串操作的语句是( )。
A.char*s;s="ABCDE";
B.chars[5]={"ABCDE"};
C.chars[5]={'A','B','C','D','E'};
D.char*s;scanf("%s",&s);
0911.若有以下定义语句,则不能表示a数组元素的表达式是( )。
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
A.a[10]
B.*p
C.*a
D.a[p-a]
0912.若有以下定义语句,则值为3的表达式是( )。
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
A.p+=2,*(p++)
B.p+=2,*++p
C.p+=3,*p++
D.p+=2,++*p
0913.执行语句"chara[10]={"abcd"},*p=a;"后,*(p+4)的值是( )。
A.'\0'
B."abcd"
C.'d'
D.不能确定
0914.设有定义语句"int(*ptr)[10];",其中的ptr是( )。
A.一个指向具有10个元素的一维数组的指针
B.10个指向整型变量的指针
C.指向10个整型变量的函数指针
D.具有10个指针元素的一维数组
0915.若有如下定义和语句,则输出结果是( )。
char*a="ABCD";printf("%s",a);
A.ABCD
B.A
C.AB
D.ABC
0916.设有两条语句"inta,*p=&a;"和"*P=a;",则下列说法中正确的是( )。
A.第1条语句中的"*P=&a"是定义指针变量P并对其初始化
B.两条语句中的"*P"含义完全相同
C.两条语句中的"*P=&a"和"*p=a"功能完全相同
D.第2条语句中的"*P=a"是将a的值赋予变量P
0917.设有定义语句"intx,*p=&x;",则下列表达式中错误的是( )。
A.&*x
B.*&x
C.*&P
D.&*P
0918.设有定义语句"floats[10],*p1=s,*p2=s+5;",下列表达式中错误的是( )。
A.p1=0xffff
B.p2--
C.p1-p2
D.p1<=p2
0919.设有下列定义语句"chars[]={"12345"},*p=s;",下列表达式中错误的是( )。
A.s="ABC"
B.*(p+2)
C.*(s+2)
D.p="ABCD"
0920.下面的变量定义中,不正确的是( )。
A.float*q=&b,b;
B.char*p="string";
C.inta[]={'A','B','C'};
D.doublea,*r=&a;
0921.设有变量定义语句"intk=2,*p=&k,*q=&k;"则下列表达式中错误的是( )。
A.k=p+q
B.k=*P+*q
C.p=q
D.*P=*P*(*q)
0922.设有变量定义语句"inta[2][3];",能正确表示数组a中元素地址的表达式是( )。
A.*(a+1)
B.*(a+2)
C.*(a[1]+2)
D.a[1]+3
0923.设有变量定义语句"intb[5];",能正确引用数组b中元素的表达式是( )。
A.*(b+2)
B.*&b[5]
C.b+2
D.*(*(b+3))
0924.执行下列程序段后,变量w和*p的值是( )。
intb[]={2,3,5,9,11,13},*p=b;
w=++(*++p);
A.4和4
B.3和3
C.4和3
D.3和4
0925.设有变量定义语句"doubleb[5],*pb=b;",能正确表示b数组中的元素的地址表达式是( )。
A.b
B.pb+5
C.&b[5]
D.&b
0926.设有变量定义
char*lang[]={"FOR","BAS","JAVA","C"};
表达式*lang[1]>*lang[3]的值是( )。
A.0
B.1
C.非零
D.负数
0927.若有说明语句
"inta[5]={2,3,5,7,11},*p=a+4;",
下列不能正确引用数组a的元素的表达式是( )。
A.*(++p)
B.*(--p)
C.*(p--)
D.*(p++)
0928.若有变量定义语句( )。
"inta[]={1,3,5,7,9,11,13},x,*p=a+2;",
在以下表达式中,使变量x的值为5的表达式是
A.x=*(p--)
B.x=*(p+++1)
C.x=*(--p)
D.x=*(++p)
0929.下列程序的输出结果是( )。
main()
{chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf("%d",*--p);
}
A.5
B.非法
C.a[4]的地址
D.3
0930.有如下程序段( )。
int*p,a=10,b=1;
p=&a;a=*p+b;
执行该程序段后,a的值为
A.11
B.12
C.10
D.编译出错
0931.有如下说明( )。
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是:
A.*(p+8)
B.*p+9
C.*p+=9
D.p+8
0932.若已定义:
inta[9],*p=a;并在以后的语句中未改变P的值,不能表示a[1]地址的表达式是( )。
A.a++
B.p+1
C.a+1
D.++P
0933.以下程序的输出结果是( )。
main()
{chara[10]={'1','2','3','4','5','6','7','8','9',0},*P;
inti;i=8;p=a+i;
printf("%s\n",p-3);
}
A.6789
B.6
C.'6'
D.789
0934.以下程序运行后,输出的结果是( )。
main()
{char*s="abcde";s+=2;printf("%ld\n",s);}
A.字符C的地址
B.cde
C.字符C的ASCII码值
D.出错
0935.现已定义:
charb[5],*p=b;下列正确的赋值语句是( )。
A.p="abcd";
B.b="abcd";
C.*b="abcd";
D.*p="abcd";
0936.现已定义:
chars[10],*p=s;下列不正确的赋值语句是( )。
A.s=[p+5];
B.p=s+5;
C.s[2]=p[4];
D.*p=s[0];
0937.现有定义语句:
char*p,*q;下列正确的赋值语句是( )。
A.p+=3;
B.p*=3;
C.p/=q;
D.p+=q;
0938.说明语句"int(*p)();"的含义是( )。
A.P是一个指向函数的指针,该函数的返回值为整型
B.P是一个指向一维数组的指针变量
C.P是指针变量,它指向一个整型数据的指针
D.以上答案都不对
0939.已知定义"inta[]={1,2,3,4},y,*p=&a[1];"
执行y=(*--p)++后,y的值是( )。
A.1
B.0
C.4
D.2
0940.已知定义"intb[]={1,2,3,4},y,*p=b;"
执行y=*p++后,y的值是( )。
A.1
B.2
C.3
D.4
0941.若有以下说明,则数值为6的表达式是( )。
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
A.*p+=5
B.*p+6
C.*(p+6)
D.p-5
0942.若有以下定义( )。
chars[20]="programming",*ps=s;
则不能代表字符o的表达式是
A.ps+2
B.s[2]
C.ps[2]
D.ps+=2,*ps
0943.若有以下定义和语句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2));
则输出结果是( )。
A.4
B.5
C.9
D.10
0944.若有说明:
"inti,j=7,*p=&i;",则与i=j;等价的语句是( )。
A.*p=*&j;
B.i=*p;
C.i=&j;
D.i=**p;
0945.设p1和p2是指向同一个int型一维数组的指针变量,
k为int型变量,则不能正确执行的语句是( )。
A.p2=k;
B.k=*p1+*p2;
C.p1=p2;
D.k=*p1*(*p2);
0946.假设已有定义语句"chara[10],*p=a;",则下面的赋值
语句中,正确的是( )。
A.p="Turboc";
B.a[10]="Turboc";
C.a="Turboc";
D.*p="Turboc";
0947.执行下列程序后的输出结果是( )。
chars1[4]="12";
char*ptr;
ptr=s1;
printf("%c\n",*(ptr+1));
A.字符'2'
B.字符'1'
C.字符'2'的地址
D.不确定
0948.下面程序的输出结果是( )。
voidprtv(int*x)
{printf("%d\n",++*x);}
main()
{inta=25;
prtv(&a);
}
A.26
B.23
C.24
D.25
0949.设已有定义:
floatx;则下列对指针变量p进行定义且赋初值的语句中正确的是( )。
A.float*p=&x;
B.float*p=1024;
C.int*p=(float)x;
D.floatp=&x;
0950.设有定义:
intn=0,*p=&n,*q=&n;则以下选项中,正确的赋值语句是( )。
A.*p=5;
B.p=1;
C.q=2;
D.q=0xffff;
读程序题
0951.#include
main()
{
char*p1,*p2,str[50]="xyz";
p1="abcd";p2="ABCD";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
}
输出结果:
xyabcBCD
0952.#include
main()
{
inta[]={2,4,6,8,10};
inty=1,x,*p;
p=&a[1];
for(x=0;x<3;x++)
y+=*(p+x);
printf("%d\n",y);
}
输出结果:
19
0953.#include
intfun(intx,inty,int*cp,int*dp)
{*cp=x+y;*dp=x-y;}
main()
{
inta,b,c,d;
a=30;b=50;
fun(a,b,&c,&d);
printf("%d,%d\n",c,d);
}
输出结果:
80,-20
0954.#include
voidfunc(int*a,intb[])
{b[0]=*a+6;}
main()
{
inta,b[5];
a=0;b[0]=3;
func(&a,b);
printf("%d\n,b[0]);
}
输出结果:
6
0955.#include
intb=2;
intfunc(*a)
{b+=*a;return(b);}
main()
{
inta=2,res=2;
res+=func(&a);
printf("%d\n",res);
}
输出结果:
6
0956.#include
main()
{
char*p[4]={"abcd","efgh","ijkl","mnop"};
inti;
for(i=0;i<2;i++)
printf("%s",p[i]);
printf("\n");
}
输出结果:
abcdefgh
0957.#include
main()
{
inta[]={2,4,6,8},*p=a,i;
for(i=0;i<4;i++)
a[i]=*p++;
printf("%d\n",a[2]);
}
输出结果:
6
0958.#include
main()
{
inta[]={2,4,6,8,10};
inty=1,x,*p;
p=&a[1];
for(x=0;x<3;x++)
y+=*(p+x);
printf("%d\n",y);
}
输出结果:
19
0959.#include
staticchara[]="language";
char*ptr;
ptr=a;
while(*ptr)
{
printf("%c",*ptr-32);
ptr++;
}
输出结果:
LANGUAGE
0960.#include
staticinta[]={1,3,4,5,7,9};
intx,y,*ptr;
y=1;
ptr=&a[1];
for(x=0;x<3;x++)
y*=*(ptr+x);
输出结果:
60
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 指针