单选题已知数组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;

题目
单选题
已知数组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;


相似考题
更多“单选题已知数组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;”相关问题
  • 第1题:

    有如下程序: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。

  • 第2题:

    已知数组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的首元素。

  • 第3题:

    以下程序的输出结果是_____。 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++语言中的构造函数和析构函数分别是在声明对象时和对象调用完毕后调用,本题中的调用就是这样成对出现的。

  • 第4题:

    已知数组arr的定义如下:

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

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

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

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

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

    D.cout<<*arr<<endl;


    正确答案:D
    解析:选项A)中,arr指向数组a丌[0],*arrtl也就是arr[O]+1=1+1=2;选项B)中,指针arr向后移动一位,即指向arr[1],输出结果为2;选项c)中,arr[1]即为数组的第2个元素2;选项D)中,arr指向数组第1个元素,因此*arr的值为1。

  • 第5题:

    以下程序的输出结果是_____。 include void fun( ) {static int a=0; a+=2;cout < <

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

    include<iostream.h>

    void fun( )

    { static int a=0;

    a+=2;

    cout < < a < < " ";}

    void main( )

    { int cc;

    for(cc=1;cc<4;cc++)

    fun( ) ;

    cout < < endl;}


    正确答案:2 4 6
    2 4 6 解析:本题考查静态局部变量的使用。用关键字 static声明的局部变量为“静态局部变量”,其值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次调用该函数时,该变量已有值,就是上一次函数调用结束时的值。

  • 第6题:

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

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

    B.tout<<*(arr+1)<<endl;

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

    D.eout<<%arr<<endl;


    正确答案:D
    解析:D打印的是指针的地址。

  • 第7题:

    分析一下这段程序的输出(Autodesk)

    class B

    {

    public:

    B()

    {

    cout<<"default constructor"<<endl;

    }

    ~B()

    {

    cout<<"destructed"<<endl;

    }

    B(int i):data(i) //B(int) works as a converter ( int ->

    instance of B)

    {

    cout<<"constructed by parameter " << data <<endl;

    }

    private:

    int data;

    };

    B Play( B b)

    {

    return b ;

    }


    正确答案:

     

    (1) results:
    int main(int argc, char* argv[]) constructed by
    parameter 5
    { destructed B(5)形参析构
    B t1 = Play(5); B t2 = Play(t1); destructed t1形
    参析构
    return 0;
    destructed t2 注意顺序!
    } destructed t1
    (2) results:
    int main(int argc, char* argv[]) constructed by
    parameter 5
    { destructed B(5)形参析构
    B t1 = Play(5); B t2 = Play(10); constructed by
    parameter 10
    return 0;
    destructed B(10)形参析构
    } destructed t2 注意顺序!
    destructed t1

  • 第8题:

    有以下程序

    main( )

    { int a=5,b=4,c=3,d=2;

    if(a>b>c)

    cout<<d<<endl;

    else if((c-1>=d)==1)

    cout<<d+1<<endl;

    else

    cout<<d+2<<endl;

    }

    执行后输出结果是

    A.2

    B.3

    C.4

    D.编译时有错,无结果


    正确答案:B
    解析:本题考查逻辑表达式的结合特性,即左结合性。对于表达式a>b>c,首先判断a>b为真,结果为l,然后判断1>c,为假,故转去判断c-1>=d是否成立,成立,结果为1,再判断1= =1,结果为真,因此,执行d+1,答案为B。

  • 第9题:

    有如下类定义和变量定义: class Parents{ public: int publicData: private: int privateData; }; class ChildA:public Parents{/类体略*/}; class ChildB:private Parents{/类体略*/}; ChildA a; ChildB b; 下列语句中正确的是

    A.cout<<a.publicData<<endl;

    B.cout<<a.privateData<<endl;

    C.cout<<b.publieData<<endl;

    D.eout<<b.privateData<<endl;


    正确答案:A
    解析:派生类公有继承基类时,可以访问基类中的公有成员和保护成员;派生类私有继承基类时,不能访问基类中的任何成员。

  • 第10题:

    有如下程序: #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”<<endl: } test( ){Cout<<”destruCtor”<<endl;} }; int main( ){ test A(3); return 0; } 执行这个程序的输出结果是( )。

    A.3

    B.ConstruCtor destruCtor

    C.Copy ConstruCtor destruCtor

    D.3 destruCtor


    正确答案:D
    本题考查默认构造函数和带参数的构造函数以及析构函数,本题中定义了一个对象A(3),对象带着参数,所以执行带参数的构造函数.输出3,然后执行析构溺数,输出destructor。所以本题答案为D。

  • 第11题:

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

    下列程序执行后的输出结果是 #include<string.h> main() { char arr[2][4]; strcpy(arr, "you"); strcpy(arr[1], "me"); arr[0][3]='&'; cout<<arr<<endl; }

    A.you&me

    B.you

    C.me

    D.err


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

  • 第12题:

    以下语句中,输出结果与众不同的一个是()

    • A、cout<<"1. "<<setfill(’ ’)<< "Hello! "<<endl;
    • B、cout<<"1."<<’ ’ <<"Hello! /n";
    • C、cout<<"1. Hello! "<<endl;
    • D、cout<<"1. "<<setw(7)<< "Hello! ";

    正确答案:B

  • 第13题:

    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); } 这个地方重写了一下,平均数最好是用浮点数,最后主函数里面再加一个输出就可以了。

  • 第14题:

    有如下程序: 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()用来指定输出宽度。

  • 第15题:

    下列程序的输出结果是()。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格式控制是整数按八进制输出。

  • 第16题:

    有如下程序:includeusing namespace std;int fun(int a, int b){return(++a*b++);}vo

    有如下程序: #include<iostream> using namespace std; int fun(int a, int b) {return(++a*b++);} void main() { int x=3,y=4,z=5,r; r=fun (fun (x,y),z); cout<<r>>endl; cout<<x<<endl; cout<<y<<endl; } 该程序的输出的结果是( )。

    A.85 3 4

    B.60 3 4

    C.126 4 5

    D.85 4 5


    正确答案:A
    解析:注意运算符“++”在变量前与后的区别;fun()函数采用值传递的方式,所以调用前后x和y的值不会发生变化。

  • 第17题:

    下列程序中需要清理动态分配的数组,划线处应有的语句是_______。 include class pers

    下列程序中需要清理动态分配的数组,划线处应有的语句是_______。

    include<iostream.h>

    class person

    {

    int age,tall;

    public:

    person( ){age=0;tall=40;cout<<"A baby is born."<<endl;}

    person(int i){age=i;tall=40;cout<<"A old person."<<endl;}

    person(int i,int j){age=i;tall=j;cout<<"a old person with tall."<<endl;)

    ~person( ){cout<<"person dead."<<endl;}

    void show( )

    {

    cout<<"age="<<age<<",tall="<<tall<<endl;

    }

    };

    void main( )

    {

    person*ptr;

    ptr=new person[3];

    ptr[0]=person( );

    ptr[1]=person(18);

    ptr[2]=person(20,120);

    for(int i=0;i<3;i++)

    ptr[i].show( );

    ______

    }


    正确答案:delete[]ptr;
    delete[]ptr; 解析:本题考察对象数组的销毁方法,注意删除对象数组时,[]内不要指定大小。

  • 第18题:

    下列程序段的输出结果是includevoid fun(int * x,int * y){cout<<* X<<* y; *X=3;

    下列程序段的输出结果是 #include<iostream.h> void fun(int * x,int * y) { cout << * X << * y; *X=3; *y=4; } void main() { int x=1,y=2; fun(&y,&x); cout << X << y<<endl; {

    A.2143

    B.1212

    C.1234

    D.2112


    正确答案:A
    解析:在fun函数中,x接收的是main函数中y的地址,所以*x值为2,同样,*y值为1,所以第1次输出的是21,第2次改变*x的值等同于改变y的值,改变*y的值也即改变x的值,所以第2次输出的是43。注意:C++语言中函数的传参方式中关于指针的应用。

  • 第19题:

    下列程序的输出结果是【】。 include void main() { int i(1),j(2),k(3),a(10); if(!i

    下列程序的输出结果是【 】。

    include<iostream.h>

    void main()

    {

    int i(1),j(2),k(3),a(10);

    if(!i)

    a--;

    else if(j)

    if(k)a=5;

    else

    a=6;

    a++;

    cout<<a<<endl;

    if(i<j)

    if(i!=3)

    if(!k)

    a=1;

    else if(k)

    a=5;

    6+=2;

    cout<<a<<endl;


    正确答案:6 7
    6 7

  • 第20题:

    有如下程序:includeusing namespace std;int main(){ cout.fill('*'); cout.width(5)

    有如下程序: #include<iostream> using namespace std; int main() { cout.fill('*'); cout.width(5); cout<<scientific<<315926535<<endl; retrun 0; } 程序运行后,输出的结果是( )。

    A.3.14E+02

    B.3.14E+02

    C.**3.14e+002

    D.314.16


    正确答案:A

  • 第21题:

    下列语句中,输出与众不同的是

    A.cout<<"1."<<setfill('')<<"Hello!"<<endl;

    B.cout<<"1."<<''<<"Hello! \n";

    C.cout<<"1. Hello!"<<endl;

    D.cofit<<"1."<<setw(7)<<"Hello!";


    正确答案:A
    解析:本题主要考察setfill的用法。只用在设置了宽度的情况下,字符填充操作setfill才有意义。另外要注意的是设置宽度setw是所有格式中唯一一个一次有效的设置。

  • 第22题:

    有如下程序:includeusing namespace std;int main(){cout.fill('*');cout.width(5);c

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

    A.3.141593e+002

    B.3.1416e+002

    C.**3.14e+002

    D.314.16


    正确答案:A
    解析:cout.fill()用于设置或返回输出的填充字符,默认是空格,fill()函数的设置一直有效,直到下一个fill()函数改变该值为止。cout.width()用于设置或返回(不带参数)输出数据的字段宽度,此函数的设置只对下一个输出有效。

  • 第23题:

    有如下程序:includeusing namespace std;long fib(int n){ if(n>2) return(fib(n-1)+

    有如下程序: #include<iostream> using namespace std; long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(n); } void main() { int i; cout<<"请输入一个整数:"; cin>>i;cout<<endl; cout<<fib(i)<<endl; { 当输入4、2时,该程序的输出结果是( )。

    A.5

    B.4

    C.5

    D.6 1 2 2 2


    正确答案:C
    解析:注意递归调用的过程,当输入2作为函数参数时,调用肋()函数直接返回参数值2;当输入参数大于2时有一个递归调用的过程。