9指针.docx
《9指针.docx》由会员分享,可在线阅读,更多相关《9指针.docx(14页珍藏版)》请在冰豆网上搜索。
9指针
试卷编号:
10107
所属语言:
TurboC
试卷方案:
c9
试卷总分:
520分
共有题型:
2种
一、填空共9题(共计90分)
第1题(10.0分)题号:
367
执行下列语句后,*(p+1)的值是【1】.
chars[3]="ab",*p;
p=s;
答案:
1).b
第2题(10.0分)题号:
368
将数组a的首地址赋给指针变量p的语句是【1】.
答案:
1).p=a;
第3题(10.0分)题号:
504
在c程序中,可以通过三种运算方式为指针变量赋地址值,它们是【1】,=,malloc.
答案:
1).&
第4题(10.0分)题号:
503
在c程序中,只能给指针赋NULL值和【1】值.
答案:
1).地址
第5题(10.0分)题号:
539
若有定义:
inta[3][2]={2,4,6,8,10,12};,则*(a[1]+1)的值是【1】.
答案:
1).8
第6题(10.0分)题号:
540
若有以下定义和语句:
inta[5]={1,3,5,7,9},*p;
p=&a[2];
则++(*p)的值是【1】.
答案:
1).6
第7题(10.0分)题号:
534
若有以下定义和语句:
inta[4]={0,1,2,3},*p;
p=&a[2];
则*--p的值是【1】.
答案:
1).1
第8题(10.0分)题号:
414
设有以下定义的语句:
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
则*(*(p+2)+1)值为【1】.
答案:
1).60
第9题(10.0分)题号:
369
将函数funl的入口地址赋给指针变量p的语句是【1】.
答案:
1).p=funl;
二、单项选择共43题(共计430分)
第1题(10.0分)题号:
200
若有定义:
char*p1,*p2,*p3,*p4,ch;
则不能正确赋值的程序语句为()。
A:
p1=&ch;scanf("%c",p1);
B:
p2=(char*)malloc
(1);scanf("%c",p2);
C:
*p3=getchar();
D:
p4=&ch;*p4=getchar();
答案:
C
第2题(10.0分)题号:
702
对于基本类型相同的两个指针变量之间,不能进行的运算是()。
A:
<
B:
=
C:
+
D:
-
答案:
C
第3题(10.0分)题号:
189
若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()。
A:
intp=&x;
B:
int*p=x;
C:
int*p=&x;
D:
*p=*x;
答案:
C
第4题(10.0分)题号:
207
执行下列语句后的结果为()。
intx=3,y;
int*px=&x;
y=*px++;
A:
x=3,y=4
B:
x=3,y=3
C:
x=4,y=4
D:
x=3,y不知
答案:
B
第5题(10.0分)题号:
682
sizeof(float)是()。
A:
一种函数调用
B:
一个不合法的表达式
C:
一个整型表达式
D:
一个浮点表达式
答案:
C
第6题(10.0分)题号:
706
若有说明:
int*p,m=5,n;以下正确的程序段是()。
A:
p=&n;scanf("%d",&p);
B:
p=&n;scanf("%d",*p)
C:
scanf("%d",&n);*p=n;
D:
p=&n;*p=m;
答案:
D
第7题(10.0分)题号:
188
两个指针变量不可以()。
A:
相加
B:
比较
C:
相减
D:
指向同一地址
答案:
A
第8题(10.0分)题号:
542
若有int*p=(int*)malloc(sizeof(int));则向内存申请到内存
空间存入整数123的语句为()。
A:
scanf("%d",p);
B:
scanf("%d",&p);
C:
scanf("%d",*p);
D:
scanf("%d",**p);
答案:
A
第9题(10.0分)题号:
205
变量p为指针变量,若p=&a,下列说法不正确的是()。
A:
&*p==&a
B:
*&a==a
C:
(*p)++==a++
D:
*(p++)==a++
答案:
D
第10题(10.0分)题号:
712
若有说明:
intn=2,*p=&n,*q=p;,则以下非法的赋值语句是()。
A:
p=q;
B:
*p=*q;
C:
n=*q;
D:
p=n;
答案:
D
第11题(10.0分)题号:
546
若有chara[80],*s=a;不正确的输入语句是()。
A:
scanf("%s",s);
B:
gets(s);
C:
fscanf(stdin,"%c",s);
D:
fgets(s,80,stdin);
答案:
C
第12题(10.0分)题号:
709
若定义:
inta=511,*b=&a;,则printf("%d\n",*b);的输出结果为()。
A:
无确定值
B:
a的地址
C:
512
D:
511
答案:
D
第13题(10.0分)题号:
708
下面判断正确的是()。
A:
char*a="china";等价于char*a;*a="china";
B:
charstr[10]={"china"};等价于charstr[10];str[]={"china"};
C:
char*s="china";等价于char*s;s="china";
D:
charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc";
答案:
C
第14题(10.0分)题号:
541
若有inti=3,*p;p=&i;下列语句中输出结果为3的是()。
A:
printf("%d",&p);
B:
printf("%d",*i);
C:
printf("%d",*p);
D:
printf("%d",p);
答案:
C
第15题(10.0分)题号:
715
若有说明:
inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是()。
A:
i=*p;
B:
*p=*&j;
C:
i=&j;
D:
i=**p;
答案:
B
第16题(10.0分)题号:
540
指针变量p进行自加运算(即执行p++;)后,地址偏移值为2,则其
数据类型为()。
A:
int
B:
float
C:
double
D:
char
答案:
A
第17题(10.0分)题号:
716
设有定义:
intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()。
A:
p=1;
B:
*q=2;
C:
q=p;
D:
*p=5;
答案:
D
第18题(10.0分)题号:
206
以下程序的输出结果是()。
main()
{chars[]="123",*p;
p=s;
printf("%c%c%c\n",*p++,*p++,*p++);
}
A:
123
B:
321
C:
213
D:
312
答案:
B
第19题(10.0分)题号:
705
若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是()。
A:
a,point,*&a
B:
&*a,&a,*point
C:
*&point,*point,&a
D:
&a,&*point,point
答案:
D
第20题(10.0分)题号:
704
变量的指针,其含义是指该变量的()。
A:
值
B:
地址
C:
名
D:
一个标志
答案:
B
第21题(10.0分)题号:
707
若有说明:
int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是()。
A:
p1=&m;p2=&p1
B:
p1=&m;p2=&n;*p1=*p2;
C:
p1=&m;p2=p1;
D:
p1=&m;*p2=*p1;
答案:
C
第22题(10.0分)题号:
192
下面选择中正确的赋值语句是(设chara[5],*p=a;)()。
A:
p="abcd";
B:
a="abcd";
C:
*p="abcd";
D:
*a="abcd";
答案:
A
第23题(10.0分)题号:
199
若有inta[][]={{1,2},{3,4}};则*(a+1),*(*a+1)的含义分别为()。
A:
非法,2
B:
&a[1][0],2
C:
&a[0][1],3
D:
a[0][0],4
答案:
B
第24题(10.0分)题号:
197
以下程序段的输出结果是()。
char*alp[]={"ABC","DEF","GHI"};intj;puts(alp[1]);
A:
A
B:
B
C:
D
D:
DEF
答案:
D
第25题(10.0分)题号:
710
若有定义:
int*p[3];,则以下叙述中正确的是()。
A:
定义了一个基类型为int的指针变量p,该变量具有三个指针
B:
定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C:
定义了一个名为*p的整型数组,该数组含有三个int类型元素
D:
定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
答案:
B
第26题(10.0分)题号:
195
若有下列定义和语句,则对a数组元素的非法引用是()。
inta[2][3],(*pt)[3];pt=a;
A:
pt[0][0]
B:
*(pt+1)[2]
C:
*(pt[1]+2)
D:
*(a[0]+2
答案:
B
第27题(10.0分)题号:
549
若有double*p,x[10];inti=5;使指针变量p指向元素x[5]的语句为()。
A:
p=&x[i];
B:
p=x;
C:
p=x[i];
D:
p=&(x+i)
答案:
A
第28题(10.0分)题号:
543
若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5
的语句为()。
A:
printf("%d",*(a+5));
B:
printf("%d",p[5]);
C:
printf("%d",*(p+5));
D:
printf("%d",*p[5]);
答案:
D
第29题(10.0分)题号:
196
若有下列定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;
A:
*(p+5)
B:
*p+2
C:
*(a+2)
D:
*&a[5]
答案:
C
第30题(10.0分)题号:
703
若有以下的定义:
intt[3][2];能正确表示t数组元素地址的表达式是()。
A:
&t[3][2]
B:
t[3]
C:
&t[1]
D:
t[2]
答案:
D
第31题(10.0分)题号:
186
已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中
不正确的是()。
A:
p=&j,p=p1;
B:
p=a;
C:
p=&a[j];
D:
p=10;
答案:
D
第32题(10.0分)题号:
194
若有下列定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;
A:
&a[5]
B:
p+2
C:
a++
D:
&a
答案:
B
第33题(10.0分)题号:
714
若有定义:
intaa[8];则以下表达式中不能代表数组元aa[1]的
地址的是()。
A:
&aa[0]+1
B:
&aa[1]
C:
&aa[0]++
D:
aa+1
答案:
C
第34题(10.0分)题号:
547
int(*p)[6];它的含义为()。
A:
具有6个元素的一维数组
B:
定义了一个指向具有6个元素的一维数组的指针变量
C:
指向整型指针变量
D:
指向6个整数中的一个的地址
答案:
B
第35题(10.0分)题号:
191
设有说明int(*ptr)[M];其中标识符ptr是()。
A:
M个指向整型变量的指针
B:
指向M个整型变量的函数指针
C:
一个指向具有M个整型元素的一维数组的指针
D:
具有M个指针元素的一维指针数组,每个元素都只能指向整型量
答案:
C
第36题(10.0分)题号:
471
以下程序段char*alp[]={"ABC","DEF","GHI"};intj;puts(alp[1]);
的输出结果是()。
A:
A
B:
B
C:
D
D:
DEF
答案:
D
第37题(10.0分)题号:
198
设有以下语句,若0charstr[4][2]={"aaa","bbb","ccc","ddd"},*strp[4];
intj;
for(j=0;j<4;j++)
strp[j]=str[j];
A:
strp
B:
str[k]
C:
strp[k]
D:
*strp
答案:
A
第38题(10.0分)题号:
701
设char*s="\ta\017bc";则指针变量s指向的字符串所占的字节数
是()。
A:
9
B:
5
C:
6
D:
7
答案:
C
第39题(10.0分)题号:
699
下面说明不正确的是()。
A:
chara[10]="china";
B:
chara[10],*p=a;p="china"
C:
char*a;a="china";
D:
chara[10],*p;p=a="china"
答案:
D
第40题(10.0分)题号:
700
设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下
不能正确执行的赋值语句是()。
A:
c=*p1+*p2;
B:
p2=c;
C:
p1=p2;
D:
c=*p1*(*p2);
答案:
B
第41题(10.0分)题号:
711
下列选项中正确的语句组是()。
A:
chars[8];s={"Beijing"};
B:
char*s;s={"Beijing"};
C:
chars[8];s="Beijing";
D:
char*s;s="Beijing";
答案:
D
第42题(10.0分)题号:
544
char*s1="hello",*s2;s2=s1;则()。
A:
s2指向不确定的内存单元
B:
不能访问"hello"
C:
puts(s1);与puts(s2);结果相同
D:
s1不能再指向其它单元
答案:
C
第43题(10.0分)题号:
548
char*match(charc)是()。
A:
函数定义的头部
B:
函数预说明
C:
函数调用
D:
指针变量说明
答案:
A