指针习题及答案
一.选择题
1.变量的指针,其含义是指该变量的
B
。
A )值
B)地址
C)名
D)一个标志
2.已有定义 int k=2;int
*ptr1,*ptr2;
且 ptr1 和 ptr2 均已指向变量
k,下面不能正确执行的赋值
语句是
B
。
A ) k=*ptr1+*ptr2
B ) ptr2=k
C) ptr1=ptr2
D) k=*ptr1*(*ptr2)
3.若有说明: int *p,m=5,n; 以下程序段正确的是
D
。
A ) p=&n ;
B ) p = &n ;
scanf( “ %d” ,&p);
scanf( “ %d” ,*p);
C) scanf( “ %d” ,&n);
D) p = &n ;
*p=n ;
*p = m ;
4.已有变量定义和函数调用语句:
int a=25;print_value(&a); 下面函数的输出结果是
D
。
void print_value(int *x)
{ printf( “n%d” ,++*x); }
A ) 23
B )) 25
D) 26
5.若有说明: int *p1, *p2,m=5,n;
以下均是正确赋值语句的选项是
C
。
A ) p1=&m; p2=&p1 ;
B ) p1=&m; p2=&n; *p1=*p2 ;
C) p1=&m; p2=p1 ;
D) p1=&m; *p1=*p2 ;
6.若有语句: int *p,a=4; 和 p=&a ;下面均代表地址的一组选项是
D
。
A ) a,p,*&a
B )&*a,&a,*p
C) *&p,*p,&a
D ) &a,&*p,p
7.下面判断正确的是
C
。
A ) char *a=
” china等”价;于 char *a; *a=
” china ” ;
B) char str[10]={
“ china等价”于}; char str[10]; str[ ]={
“ china
” ;}
C) char *s=
” china等”价于; char *s; s=
” china ” ;
D) char c[4]=
” abc ” ,d[4]=
等”价abc于 ”;char c[4]=d[4]=
” abc ” ;
8.下面程序段中, for 循环的执行次数是
C
。
char *s=
”018bc ” ;
for ( ; *s!=
\ ;’s++)
printf(
“ * ” ) ;
A ) 9
B )) 6
D) 5
9.下面能正确进行字符串赋值操作的是C
A ) char s[5]={“ ABCDE” };
C) char *s ; s=” ABCDE” ;
10.下面程序段的运行结果是C
char *s=” abcde ” ;
s+=2 ; printf(“ %d” ,s);
A ) cdeB)字符 ’ c’
11.设 p1 和 p2 是指向同一个字符串的指针变量,
语句是B。
。
B) char s[5]={ ‘ A’ , ’ B’ , ’ C’ , ’ D’ , ’ E’ };
D ) char *s; scanf(“ %s” ,s) ;
。
C)字符 ’ c的’地址D )不确定
c 为字符变量, 则以下不能正确执行的赋值
A ) c=*p1+*p2B) p2=cC)p1=p2D )c=*p1*(*p2)
12.设有程序段 :char s[ ]=” china ” ; char *p则;下p=s面叙;述正确的是D。
A ) s 和 p 完全相同
B)数组 s 中的内容和指针变量p 中的内容相等
C) s 数组长度和p 所指向的字符串长度相等
D) *p 与 s[0] 相等
13.以下与库函数strcpy(char *p1,char *p2) 功能不相等的程序段是
A ) strcpy1(char *p1,char *p2)
{ while ((*p1++=*p2++)!=\) ; } ’
B) strcpy2(char *p1,char *p2)
{ while ((*p1=*p2)!=\) { p1++;’ p2++ } }
C) strcpy3(char *p1,char *p2)
{ while (*p1++=*p2++) ; }
D) strcpy4(char *p1,char *p2)
{ while (*p2) *p1++=*p2++ ; }
D
。
14.下面程序段的运行结果是
char a[ ]=” language
C
” , *p ;
。
p=a ;
while (*p!=’ u’ ) { printf(-32);“p++%c”;},*p
这是一份关于C语言指针的选择题练习,涵盖了指针的基础概念、操作和使用,包括变量的指针地址、指针的赋值、数组与指针的关系以及字符串处理等内容。

786

被折叠的 条评论
为什么被折叠?



