单选题已知数组arr的定义如下:int arr[5]=1,2,3,4,5;下列语句中输出结果不是2的是(  )。A cout*arr+1endl;B cout*(arr+1)endl;C coutarr[1]endl;D cout*arrendl;

题目
单选题
已知数组arr的定义如下:int arr[5]=1,2,3,4,5;下列语句中输出结果不是2的是(  )。
A

cout<<*arr+1<<endl;

B

cout<<*(arr+1)<<endl;

C

cout<<arr[1]<<endl;

D

cout<<*arr<<endl;

参考答案和解析
正确答案: A
解析:
一维数组arr[5]的首地址是数组第一个元素的地址,所以*arr = 1。A项,*arr+1=2;B项,*(arr+1)=arr[1]=2;C项,arr[1] = 2;D项*arr=1。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

使用VC6打开考生文件夹下的工程test7_1,此工程包含一个源程序文件test7_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:

Constructor1

Constructor1

Constructor1

Destructor

Constructor2

Destructor

x=0

x=5

Destructor

Destructor

源程序文件test1_1.cpp清单如下:

include<iostream.h>

class B

{

int X;

public:

B(){X=0;cout<<"Constructorl"<<endl;}

B(int i){x=i;cout<<"Constructor2"<<endl;}

~B(){cout<<"Destructor"<<endl;}

/**********found*********/

~B(int i){cout<<i<<"be Destructor"<<endl;}

void print(){cout<<"x="<<x<<endl;}

};

void main()

{

B *ptr;

ptr=new B[2];

/**********found*********/

ptr[0]=B(0);

ptr[1]=B(5);

/**********found********/

for(int i=0; i<2;)

ptr[i].print();

delete []ptr;

}


正确答案:(1)错误:~B(int i){cout"be Destructor"endl;} 正确:应将其删除 (2)错误:ptr[0]=B(0); 正确:ptr[0]=B(); (3)错误:for(int=0;i2;) 正确:for(int i=0;i2;i++)
(1)错误:~B(int i){cout"be Destructor"endl;} 正确:应将其删除 (2)错误:ptr[0]=B(0); 正确:ptr[0]=B(); (3)错误:for(int=0;i2;) 正确:for(int i=0;i2;i++) 解析:(1)主要考查考生对析构函数特性的掌握,析构函数不能带参数也不能重载,一个类中只能定义一个析构函数,因为析构函数在删除对象的时候被默认调用,如果含有多个析构函数则可能引起多次删除产生的意外错误;
(2)主要考查考生对构造函数与函数重载的掌握,由输出结果可知其应该调用不带参数的构造函数B();
(3)主要考查考生对for循环语句的使用,如果在for循环中不写第三个表达式就意味着该循环一直会进行下去,因为 i的值总是小于2(在for循环体中对i进行操作也可以)。

第2题:

有如下程序:includeusing namespace std;class test{private: int a;public: test(

有如下程序:#include<iostream>using namespace std;class test{private: int a;public: test(){cout<<"constructor"<<endl;} test(int a){cout<<a<<endl;} test(const test&_test) { a=_test.a; cout<<"copy constructor"<<en+dl; } ~test(){cout<<"destructor"<<endl;}};int main(){ test A(3); rerun 0;}运行时输出的结果是

A.3

B.constructor destructor

C.copy constructor destructor

D.3 destructor


正确答案:D
解析:本题考查的知识点是:构造函数和析构函数。一个类可以有多个构造函数,但只能有一个析构函数。每一个对象在被创建的时候,都会隐含调用众多构造函数中的一个,而在被销毁的时候,又会隐含调用唯一的那个析构函数。因此,解此类题目只要找准创建时调用的是哪个构造函数,和对象何时被销毁即可。本题只有主函数中创建了一个对象A,并使用了构造参数3,因此会隐含调用test(int a)这个构造函数,输出一个3。接下来主函数结束,对象A被销毁,所以又隐含调用~test()析构函数,输出一个destructor。故本题应该选择D。

第3题:

( 27 )有如下程序:

#include

using namespace std;

class test {

private:

int a;

public:

test () {cout<< ” constructor ” <<ENDL;}

test ( int a ) {cout<<A<<ENDL;}

test ( const test & _test )

{

a=_testa;

cout<< ” copy constructor ” <<ENDL;

}

test () {cout<< ” destructor ” <<ENDL;}

};

int main ()

}

test A ( 3 )

return0;

运行时输出的结果是

A ) 3

B ) constructor

destruclor

C ) copy constructor

dstructor

D ) 3

destruclor


正确答案:D

第4题:

以下程序的输出结果是_____。 include class object {private:int val; public:objec

以下程序的输出结果是_____。

include<iostream.h>

class object

{ private:

int val;

public:

object( ) ;

object(int i) ;

~object( ) ;};

object: :object( )

{ val=0;

cout < < "Default constructor for object" < < endl;}

object: :object(int i)

{ val=i;

cout < < "Constructor for object" < < val < < endl;}

object: :~object( )

{ cout < < "Destructor for object" < < val < < endl;}

class container{ private:

object one;

object two;

int data;

public:

container( ) ;

container(int i,int j,int k) ;

~container( ) ;};

container: :container( )

{ data=0;

cout < < "Default constructor for container" < < endl;}

container: :container(int i,int j,int k) :two(i) ,one(j)

{ data=k;

cout < < "Constructor for container" < < endl;}

container: :~container( )

{ cout < < "Destructor for container" < < endl;}

void main( )

{ container anObj(5,6,10) ;}


正确答案:Constructor for object6 Constructor for object5 Constructor for container Destructor for container Destructor for object5 Destructor for object6
Constructor for object6 Constructor for object5 Constructor for container Destructor for container Destructor for object5 Destructor for object6 解析:C++语言中的构造函数和析构函数分别是在声明对象时和对象调用完毕后调用,本题中的调用就是这样成对出现的。

第5题:

已知数组arr的定义如下: intarr[5]={1,2,3,4,5};下列语句中输出结果不是2的是( )。

A.cout<<*arr+1<<endl;

B.COUt<<*(art+1)<<endl;

C.cout<<arr[1]<<endl;

D.COUt<<*arr<<endl:


正确答案:D
D。【解析】本题主要考查指针的特殊含义。例*px+1指取px所指对象内容加1,*(px+1)指px指针加1,并取结果指针内容而*px则指px的首元素。

第6题:

下列程序执行后的输出结果是 included main( ) { char arr[2][4]; strcpy(arr,"you")

下列程序执行后的输出结果是

#included<string.h>

main( )

{ char arr[2][4];

strcpy(arr,"you");strepy(arr[1],"me");

arr[0][3]='&';

cout<<arr<<endl;

}

A.you&me

B.you

C.me

D.err


正确答案:A
解析:本题考察二维数组的标识方式。arr作为数组名单独使用时表示一个指向数组首部的指针,故you放在数组第一行的前三列art[0][0]、arr[0][1]、arr[0][2]中。art[1]表示指向第二行的指针,因此me放在数组第二行的前两列arr[1][0]、arr[1][1]中。而&则直接按照两维下标放到第一行的第四列中。那么输出的时候默认按照从左到右,先上后下的顺序。因此本题的正确答案为A。

第7题:

c++,运行下面代码出错

#include <iostream>using namespace std;struct student_info{ string name; int chinese; int math; int english;};student_info student[5];void inputinfo(){ int i = 0; char a[20]; for(i = 0;i < 5;i++) { cout<<"enter the "<<i+1<<" student's information "<<endl; cout<<"enter the name"<<endl; cin>>a; student[i].name = a; cout<<"enter chinese performance :"<<endl; cin>>student[i].chinese; cout<<"enter math performance :"<<endl; cin>>student[i].math; cout<<"enter english performance :"<<endl; cin>>student[i].english; }}void outputinfo(){ int i = 0; while(i < 5) { cout<<i+1<<" student's information"<<endl; cout<<student[i].name.c_str()<<endl; cout<<"chinese "<<endl; cout<<student[i].chinese<<endl; cout<<"math "<<endl; cout<<student[i].math<<endl; cout<<"english "<<endl; cout<<student[i].english<<endl; i++; }}int avgfunction(int arr[],int n){ int i = 0; int total = 0; for(i = 0;i < n;i++) { total += arr[i]; } return total / n;}void computavg() //这里是否正确?{ int theavg = 0; theavg = avgfunction(student[i].chinese,5); }int main(){ inputinfo(); outputinfo(); computavg(); cin.get(); return 0;} 帮我找出错误 然后改过来 择优为满意答案 不分先后


float avgfunction(float total,int n) { return total / n; } void computavg() //这里是否正确? { int theavg = 0; float total = 0; for (int i = 0; i < 5; i++) { total += student[i].chinese; } theavg = avgfunction(total, 5); } 这个地方重写了一下,平均数最好是用浮点数,最后主函数里面再加一个输出就可以了。

第8题:

( 20 )已知数组 arr 的定义如下:

int arr[5] = {1,2,3,4,5};

下列语句中输出结果不是 2 的是

A ) cout << *arr+1 <<endl;

B ) cout << *(arr+1)<<endl;

C ) cout << arr[1] <<endl;

D ) cout << *arr <<endl;


正确答案:D

第9题:

有如下程序: include using namespace std; int main() { cout.f

有如下程序: #include<iostream> using namespace std; int main() { cout.fill('*') cout.width(6); cout.fill('#') cout<<123<<endl; return 0; } 执行后的输出结果是

A.###123

B.123###

C.***123

D.123***


正确答案:A
解析:cout函数的fill()方法用来填充不足宽度:width()用来指定输出宽度。

第10题:

下列程序的输出结果是()。ificludeusing namespace std;int main(){cout.fill('*');co

下列程序的输出结果是( )。 #ificlude<iostream> using namespace std; int main() { cout.fill('*'); cout.width(5); cout<<oct<<100<<endl; return 0; }

A.**100

B.**144

C.100**

D.144**


正确答案:B
解析:cout.fill()用于设置或返回输出的填充字符,默认是空格,fill()函数的设置一直有效,直到下一个fiN()函数改变该值为止。cout.width()用于设置或返回(不带参数)输出数据的字段宽度,此函数的设置只对下一个输出有效。注意:默认为输出数据在指定宽度内右对齐,oct格式控制是整数按八进制输出。

更多相关问题