已有定义int k=2;int*ptr1,*ptr2

题目

已有定义int k=2;int*ptr1,*ptr2;且ptr1、ptr2均已指向变量k,下面不能正确执行的赋值语句是()

  • A、k=*ptr1+*ptr2
  • B、prt2=k;
  • C、ptr1=ptr2
  • D、k=*ptr1*(*ptr2)
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有定义:int k=1,m=2;float f=7;则下列选项中错误的表达式是( )。

A.k=k>=k

B.-k++

C.k%int(f)

D.k>=f>=m


正确答案:C
解析:在C语言中,求余运算符“%”两边的运算对象都应为整型数据,所以需要对变量f进行强制类型转换,正确的写法为k%(int)f。在C语言中,逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是:!(逻辑“非”)、算术运算符、关系运算符、&&(逻辑“与”)、‖(逻辑“或”)、赋值运算符。根据运算符的优先级与结合性,对于选项A),先计算k>=k的值(为真,即1),再用1对k进行赋值。对于选取项 B,先计算k++的值,再对其取负数。对于选项D),先计算k>=f的值(为假,即0),再用0与m进行比较,故最终结果为0。

第2题:

若已有定义int x=2; int *p=&x;则*p的值为( )

A. 2

B. &x

C. *x

D. &p


正确答案:A

第3题:

( 20 )语句 int *p=&k; 定义了指针 p ,与这个语句等效的语句序列是

A ) int *p;p=&k;

B ) int *p;p=k;

C ) int *p;*p=&k;

D ) int *p;*p=k


正确答案:A

第4题:

下面程序的输出结果是______。

main()

{ static char a[]="language",b[]="program";

char *ptrl=a,*ptr2=b;

int k

for(k=0;k<7;k++)

if(*(ptrl+k)==*(ptr2+k))

printf("%c",*(ptr1+k));}


正确答案:

第5题:

语句int*p=&k;定义了指针p,与这个语句等效的语句序列是A.int*p;p=&k;B.int*p;k=k;C.int*p;*p=&am

语句int*p=&k;定义了指针p,与这个语句等效的语句序列是

A.int*p;p=&k;

B.int*p;k=k;

C.int*p;*p=&k;

D.int*p;*p=k;


正确答案:A

第6题:

语句int*p=&k;定义了指针p,与这个语句等效的语句序列是

A.int*p;p=&k;

B.int*p;p=k;

C.int*p;*p=&k;

D.int*p;*p=k;


正确答案:A
解析:本题考查的知识点是:指针的赋值。题目中的语句int*p=&k;有两个作用:首先,定义了一个int型指针p;然后,将变量k的地址&k赋给刚定义的指针p。所以等效的语句序列为:int*p;p=&k;,应该选择A。

第7题:

语句int*p=&Ak;定义了指针p,与这个语句等效的语句序列是( )。

A.int*p;p=&k;

B.int*p;p=k;

C.int*p;*p=&k;

D.int*p;*p=k;


正确答案:A

第8题:

若类A和类B的定义如下:includeclass A{int i,j;public:int geti(){return i;}};class

若类A和类B的定义如下: #include<malloc.h> class A { int i,j; public: int geti() { return i; } }; class B:public A { int k; public: void make() { k=i*j; } }; 则上述定义中非法的表达式是( )。

A.k=i*j

B.int k;

C.return i;

D.void make();


正确答案:A
解析:因为派生类不能是基类的私有成员i和j(默认情况下,成员的属性为私有),所以表达式k=i*j是非法的。其余的访问权限都是许可的。

第9题:

已有定义“int k=2;int*ptr1, *ptr2;”,且ptr1和ptr2均已指向变量k,下面不能正确执行的语句是______。

A.k=*ptr1+*ptr2;

B.ptr2=k;

C.ptr1=ptr2;

D.K=*ptr1*(*ptr2);


正确答案:B

第10题:

下面函数的功能是______。 exchange(int*ptr1,*ptr2) { int*ptr; ptr=-ptr1; ptr1=ptr2; ptr2=ptr; }

A.交换*ptr1和*ptr2的值

B.无法改变*ptr1和*ptr2的值

C.可能造成系统故障,因为使用了空指针

D.交换*ptr1和*pb2的地址


正确答案:B
解析:函数中将指针变量ptr1和ptr2中的值交换,而不是交换指针ptr1和ptr2所指变量中的值。

更多相关问题