c语言指针选择题47Word下载.docx
- 文档编号:16423129
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:15
- 大小:19.62KB
c语言指针选择题47Word下载.docx
《c语言指针选择题47Word下载.docx》由会员分享,可在线阅读,更多相关《c语言指针选择题47Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
a)23
b)24
c)25
d)26
6.若有说明:
long*p,a;
则不能通过scanf语句正确给输入项读入数据的程序段是
A)*p=&
a;
%ld"
,p);
B)p=(long*)malloc(8);
C)scanf("
,p=&
a);
D)scanf("
,&
7.有以下程序
#include<
stdio.h>
intm=1,n=2,*p=&
m,*q=&
n,*r;
r=p;
p=q;
q=r;
printf("
%d,%d,%d,%d\n"
m,n,*p,*q);
程序运行后的输出结果是
A)1,2,1,2
B)1,2,2,1
C)2,1,2,1
D)2,1,1,2
8.
有以下程序
{int
a=1,b=3,c=5;
int
*p1=&
a,*p2=&
b,*p=&
c;
*p=*p1*(*p2);
%d\n"
c);
执行后的输出结果是
A)1B)2C)3D)4
9.
inta,k=4,m=4,*p1=&
k,*p2=&
m;
a=p1==&
a);
程序运行后的输出结果是()
A)4B)1
C)0
D)运行时出错,无定值
10.
在16位编译系统上,若有定义int
a[]={10,20,30},*p=&
,当执行p++;
后,下列说法错误的是()
A)p向高地址移了一个字节B)p向高地址移了一个存储单元
C)p向高地址移了两个字节D)p与a+1等价
11.有以下程序段
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&
a[3],b;
b=p[5];
b中的值是()
A)5
B)6
C)8
D)9
12.若有以下定义,则对a数组元素的正确引用是_________.
inta[5],*p=a;
a)*&
a[5]
b)a+2
c)*(p+5)
d)*(a+2)
13.若有以下定义,则p+5表示_______.
a[10],*p=a;
a)元素a[5]的地址
b)元素a[5]的值
c)元素a[6]的地址
d)元素a[6]的值
14.设已有定义:
inta[10]={15,12,7,31,47,20,16,28,13,19},*p;
下列语句中正确的是()
A)for(p=a;
a<
(p+10);
a++);
B)for(p=a;
p<
(a+10);
p++);
C)for(p=a,a=a+10;
D)for(p=a;
p+10;
++a);
15.有以下程序段
#include<
intmain()
intx[]={10,20,30};
int*px=x;
%d,"
++*px);
*px);
px=x;
(*px)++);
*px++);
*++px);
return0;
程序运行后的输出结果是()
A)11,11,11,12,12,20,20,20B)20,10,11,10,11,10,11,10
C)11,11,11,12,12,13,20,20
D)20,10,11,20,11,12,20,20
16.设有如下定义:
intarr[]={6,7,8,9,10};
int*ptr;
ptr=arr;
*(ptr+2)+=2;
printf("
%d,%d\n"
*ptr,*(ptr+2));
则程序段的输出结果为
A)8,10
B)6,8
C)7,9
D)6,10
17.若有定义:
inta[]={2,4,6,8,10,12},*p=a;
则*(p+1)的值是______.*(a+5)的值是_________.
18.若有以下说明和语句,int
c[4][5],(*p)[5];
p=c;
能正确引用c数组元素的是______.
A)
p+1
B)
*(p+3)
C)
*(p+1)+3
D)
*(p[0]+2))
19.若有定义:
inta[2][3],则对a数组的第i行j列元素地址的正确引用为______.
a)*(a[i]+j)
b)(a+i)
c)*(a+j)
d)a[i]+j
20.若有以下定义:
inta[2][3]={2,4,6,8,10,12};
则a[1][0]的值是_____.*(*(a+1)+0)的值是________.
21.有以下定义
chara[10],*b=a;
不能给数组a输入字符串的语句是()
A)gets(a)
B)gets(a[0])
C)gets(&
a[0]);
D)gets(b);
22.下面程序段的运行结果是_________.
char*s="
abcde"
;
s+=2;
s);
a)cde
b)字符'
c'
c)字符'
的地址
d)无确定的输出结果
23.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()
A)chars[10]="
abcdefg"
B)chart[]="
*s=t;
C)chars[10];
s="
D)chars[10];
strcpy(s,"
);
24.设已有定义:
char*st="
howareyou"
下列程序段中正确的是()
A)char
a[11],*p;
strcpy(p=a+1,&
st[4]);
B)char
a[11];
strcpy(++a,st);
C)char
strcpy(a,st);
D)char
a[],*p;
strcpy(p=&
a[1],st+2);
25.有以下程序
chara[]="
programming"
b[]="
language"
char*p1,*p2;
inti;
p1=a;
p2=b;
for(i=0;
i<
7;
i++)
if(*(p1+i)==*(p2+i))
%c"
*(p1+i));
输出结果是()
A)gm
B)rg
C)or
D)ga
26.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是________.
a)c=*p1+*p2;
b)p2=c
c)p1=p2
d)c=*p1*(*p2);
27.以下正确的程序段是_________.
a)charstr[20];
b)char*p;
%s"
str);
p);
c)charstr[20];
d)charstr[20],*p=str;
str[2]);
p[2]);
28.若有说明语句
Itismine"
char*p="
则以下不正确的叙述是________.
a)a+1表示的是字符t的地址
b)p指向另外的字符串时,字符串的长度不受限制
c)p变量中存放的地址值可以改变
d)a中只能存放10个字符
29.下面程序的运行结果是_______.
#include
<
string.h>
{
char*s1="
AbDeG"
char*s2="
AbdEg"
s1+=2;
s2+=2;
strcmp(s1,s2));
a)正数
b)负数
c)零
d)不确定的值
30.有以下程序
voidf(int*x,int*y)
{
intt;
t=*x;
*x=*y;
*y=t;
}
main()
inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;
q=&
a[7];
while(*p!
=*q){f(p,q);
p++;
q--;
8;
i++)printf("
a[i]);
程序运行后的输出结果是______。
A)8,2,3,4,5,6,7,1,
B)5,6,7,8,1,2,3,4,
C)1,2,3,4,5,6,7,8,
D)8,7,6,5,4,3,2,1,
31.已定义以下函数
fun(int
*p)
return
*p;
该函数的返回值是
不确定的值
形参p中存放的值
C)
形参p所指存储单元中的值
形参p的地址值
32.
有以下程序
intf(intb[][4])
{inti,j,s=0;
for(j=0;
j<
4;
j++)
i=j;
if(i>
2)
i=3-j;
s+=b[i][j];
returns;
main()
{inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
f(a));
12
B)
11
18
D)
16
33.若有以下函数首部
fun(double
x[10],int
*n)
则下面针对此函数的函数声明语句中正确的是
A)int
fun(doublex,int*n);
B)int
int);
C)int
fun(double*x,intn);
D)int
fun(double*,
int*);
34.有以下程序
voidsum(int*a)
{a[0]=a[1];
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
for(i=2;
i>
=0;
i--)sum(&
aa[i]);
aa[0]);
执行后的输出结果是()
A)4
B)3
C)2
D)1
35.下段代码的运行结果是:
chara;
char*str=&
strcpy(str,"
hello"
printf(str);
A)hello
B)null
C)h
D)发生异常
36.下段程序的运行结果是
:
voidmain()
char*p,*q;
charstr[]="
Hello,World\n"
q=p=str;
print(q);
print(p);
voidprint(char*s)
printf(“%s”,s);
A)H
e
B)Hello,World
ello,World
C)Hello,World
Hello,World
D)ello,World
ell,World
37.有以下程序
voidfun(char*c,intd)
*c=*c+1;
d=d+1;
%c,%c,"
*c,d);
void
chara='
A'
b='
a'
fun(&
b,a);
%c,%c\n"
a,b);
A)B,a,B,a B)a,B,a,B C)A,b,A,b D)b,B,A,b
38、下面选项属于函数指针的是:
A、(int*)p(int,int)
B、int*p(int,int)
C、两者都是
D、两者都不是
39、若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是_______.
A)(*p)max(a,b);
B)*pmax(a,b);
C)(*p)(a,b);
D)*p(a,b);
40、下面几个选项中的代码能通过编译的是
A)int*fun()
ints[3]={1,3,4};
int*result;
result=fun();
for(inti=0;
3;
result[i]);
return
0;
B)int&
fun()
C)int*fun()
return&
s;
D)int&
41、下列选项中声明了一个指针数组的是:
A)int*p[2];
B)int(*p)[2];
C)typedefint*intPtr;
intPtrp[2];
D)A和B
E)A和C
F)B和C
42、下面代码能通过编译的是:
A)intmain()
inta[3]={1,2,3};
int*b[3]={&
a[1],&
a[2],&
a[3]};
int**p=b;
B)intmain()
int*b[3]={a[1],a[2],a[3]};
C)intmain()
int*p=b;
D)intmain()
int*p=&
b;
43、对于语句int*pa[5];
下列描述中正确的是_______.
A)pa是一个指向数组的指针,所指向的数组是5个int型元素
B)pa是一个指向某数组中第5个元素的指针,该元素是int型变量
C)pa[5]表示某个元素的第5个元素的值
D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针
44、若有以下定义,且0≤i<4,则不正确的赋值语句是_______.
intb[4][6],*p,*q[4];
A)q[i]=b[i];
B)p=b;
C)p=b[i]
D)q[i]=&
b[0][0];
45、若要对a进行++运算,则a应具有下面说明_______.
A)inta[3][2];
B)char*a[]={“12”,”ab”};
C)char(*a)[3];
D)intb[10],*a=b;
46、若有以下说明语句:
char*language[]={“FORTRAN”,”BASIC”,’’PASCAL”,’’JAVA”,”C”};
char**q;
q=language+2;
则语句printf(“%o\n”,*q)输出的是_______.
A)language[2]元素的地址;
B)字符串PASCAL
C)language[2]元素的值,它是字符串PASCAL的首地址
D)格式说明不正确,无法得到确定的输出
47、若有以下程序:
char*a[3]={"
I"
"
love"
China"
};
char**ptr=a;
%c
*(*(a+1)+1),*(ptr+1));
这段程序的输出是()
I
l
o
o
C)o
love
I
love
题号
答案
1.
B
2.
D
3.
4.
5.
6.
A
7.
8.
C
9.
10.
11.
12.
13.
14.
15.
16.
17.
4,12
18.
19.
D
20.
8,8
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
E
42.
43.
44.
B
45.
46.
47.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 指针 选择题 47
![提示](https://static.bdocx.com/images/bang_tan.gif)