单选题有以下程序:#includestruct S{int a;int *b;};main(){ int x1[] = {3,4},x2[] = {6,7}; struct S x[] = {1,x1,2,x2}; printf(%d,%d,*x[0].b,*x[1].b);}程序的运行结果是(  )。A 1,2B 3,6C 4,7D 变量的地址值

题目
单选题
有以下程序:#includestruct S{int a;int *b;};main(){ int x1[] = {3,4},x2[] = {6,7}; struct S x[] = {1,x1,2,x2}; printf(%d,%d,*x[0].b,*x[1].b);}程序的运行结果是(  )。
A

1,2

B

3,6

C

4,7

D

变量的地址值


相似考题
更多“单选题有以下程序:#includestruct S{int a;int *b;};main(){ int x1[] = {3,4},x2[] = {6,7}; struct S x[] = {1,x1,2,x2}; printf(%d,%d,*x[0].b,*x[1].b);}程序的运行结果是(  )。A 1,2B 3,6C 4,7D 变量的地址值”相关问题
  • 第1题:

    下程序( )。 main( ) { int x1=3, x2=0, x3=0; if (x1=x2+x3) printf("* * * *"); else printf(" "); }

    A.输出:* * * *

    B.输出:# # #

    C.#存在语法错误

    D.无输出结果


    参考答案B

  • 第2题:

    以下程序的输出结果是( )。 main {int x=0.5;char z=a; printf("%d\n",(x&1)&&(z<2));}A.0S

    以下程序的输出结果是( )。 main {int x=0.5;char z=a; printf("%d\n",(x&1)&&(z<2));}

    A.0

    B.1

    C.2

    D.3


    正确答案:B
    (x&1)&&(z<2)=(0.5&1)&&(a<z)=1&&1=1,故选择B选项。

  • 第3题:

    执行下列程序 int fun(int x1,int x2){ int x; x1>x2 ?(x=3):(x=4); return x+x1; } void main(){ cout<<fun(7,8); } 后输出结果是 ______。

    A.9

    B.10

    C.11

    D.12


    正确答案:C

  • 第4题:

    有如下程序: include class x { protected: int a; public:x(){ a=1;} }; class x

    有如下程序: #include <iostream.h> class x { protected: int a; public: x() { a=1; } }; class x1 : virtual public x { public: x1() { a+=1; cout<<a; } }; class x2 : virtual public x { public: x2() { a+=2; cout<<a; } }; class y : public xl,public x2 { public: y() { cout<<a<<end1; } }; int main() { y obj; return O; } 该程序运行后的输出结果是( )。

    A.1

    B.123

    C.242

    D.244


    正确答案:D
    解析:本题程序中引入了虚基类。在主函数main中,执行语句“yobj;”时,先执行虚基类x的构造函数,使a=1;然后执行类x1的构造函数,使a=2,并输出值2;再执行类x2的构造函数,使a=4,并输出值4;最后执行类y的构造函数,输出值4。

  • 第5题:

    有以下程序

    #inculde <stdio.h>

    int Fun()

    { ststic int x=1;

    x*=2;return x;

    }

    main ()

    { int i,s=1;

    For(i=1;I<=2,I + +) s =Fun();

    printF(“%d\n”,s);

    }

    程序运行后的输出结果是

    A.0

    B.1

    C.4

    D.8


    正确答案:C
    解析:x被声明为静态变量,第一次调用fun()后,x值为2,第二次调用时直接执行x*=2,值为4。

  • 第6题:

    有以下程序: #include<stdio.h> int fun( ) {static int x=1; X*=2;return X; main( ) int i,s=1; for(i=1;i<=2;i++)s=fun( ); printf{¨%d\n",s); } 程序运行后的输出结果是( )。

    A.0

    B.1

    C.4

    D.8


    正确答案:C
    本题考查了static的用法。当static用于局部变量中,成为静态局部变量。静态局部变量有两个用法,记忆功能和全局生存期。当static用于全局变量,主要作用是限制此全局变量被其他的文件调用。当static用于类中的成员,表示这个成员是属于这个类,但是不属于类中任意特定对象。所以本题答案为C。

  • 第7题:

    有以下程序: #include<stdio.h> int fun( ) {static int x=1; X*=2: return x; } main( ) {int i,S=1; for(i=1;i<=3;i++)S*=fun( ); printf("%d\n",s); } 程序运行后的输出结果是( )。

    A.0

    B.10

    C.30

    D.64


    正确答案:D
    函数fun是2的次方的运算,而s*=fun,所以答案为64。

  • 第8题:

    以下程序的输出结果是includestruct st{ int x;int *y;}*p;int dt[4]={10,20,30,40};s

    以下程序的输出结果是 #include<stdio.h> struct st { int x;int *y;}*p; int dt[4]={10,20,30,40}; struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],}; main() { p=aa; printf("%d\n",++(p->x));}

    A.10

    B.11

    C.51

    D.60


    正确答案:C
    解析:通过指针来引用结构体成员的方法是(指针变量)->结构体成员名。注意:结构体变量中的数据引用。

  • 第9题:

    若有以下程序:include using namespace std;class A{public:A() { }A(int i){x1=i;}v

    若有以下程序: #include <iostream> using namespace std; class A { public: A() { } A(int i) { x1=i; } void dispa0 { cout<<"x1="<<x1<<","; } private: int x1; }; class B: public A { public: B() { } B(int i):A(i+10) { x2=i; } void dispb() { dispa(); cout<<"x2="<<x2<<endl; } private: int x2; }; int main() { B b(2); b.dispb(); return 0; } 程序运行后的输出结果是( )。

    A.x1=10,x2=2

    B.x1=12,x2=10

    C.x1=12,x2=2

    D.x1=2,x2=2


    正确答案:C

  • 第10题:

    (37)有以下程序

    #include <stdio.h>

    struct ord

    { int x,y;}dt[2]={1,2,3,4};

    main()

    {

    struct ord *p=dt;

    printf("%d,",++(p->x)); printf("%d\n",++(p->y));

    }

    程序运行后的输出结果是

    A)1,2

    B)4,1

    C)3,4

    D)2,3


    正确答案:D

  • 第11题:

    单选题
    有以下程序:#include int fun(){ static int x=1; x+=1; return x;}main(){ int i,s=1; for(i=1;i<=5;i++)s+=fun(); printf(%d,s);}程序运行后的结果是(  )。
    A

    11

    B

    21

    C

    6

    D

    120


    正确答案: B
    解析:
    本题目fun函数中定义的变量x为静态局部变量,第一循环后x的值为2,s的值为3;第二次循环后x的值为3,s的值为6;第三次循环后x的值为4,s的值为10;第四次循环后x的值为5,s的值为15;第五次循环后x的值为6,s的值为21。答案选择B选项。

  • 第12题:

    单选题
    有以下程序:#include int fun(){ static int x=1; x*=2; return x;}main(){ int i,s=1; for(i=1;i<=3;i++)s*=fun(); printf(%d,s);}程序运行后的输出结果是(  )。
    A

    0

    B

    10

    C

    30

    D

    64


    正确答案: A
    解析:
    在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久性的存储单元,可以继续使用存储单元中原来的值。此题中第一次循环时,调用fun函数后x的值为2,s的值为2;第二次循环时,调用fun函数后x的值为4,s的值为2*4=8;第三次循环时,调用fun函数后x的值为8,s的值为8*8=64。答案选择D选项。

  • 第13题:

    有以下程序 include typedef struct { int num;double s; }REC; void funl(REC *x) { x

    有以下程序 include<stdio.h> typedef struct { int num;double s; }REC; void funl(REC *x) { x->num=23;x->s=88.5; } void main() { REC a={16,90.0}; fun1(&A); printf("%d\n",a.num); } 程序运行后的输出结果是( )。


    正确答案:23
    23

  • 第14题:

    以下程序的输出结果是【 】。include int fun(int x) {static int t=0; return(t+=x); }

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

    include <stdio.h>

    int fun(int x)

    { static int t=0;

    return(t+=x);

    }

    main()

    int s,i;

    for(i=1 ;i<=5;i++) s=fun(i);

    printf("%d\n",s);


    正确答案:15
    15 解析:static类型的变量是静态变量,本题中的静态变量t为静态局部变量。静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用时的值。本题在多次调用fun函数的过程中,只在第一次调用时t的初值为0,以后每次调用函数时不再重新赋初值,而只是保留上次函数调用结束时的值,所以本程序的作用相当于将1到5数字进行累加,故输出结果为15。

  • 第15题:

    有以下程序includestruct ord{ int x,y;} dt[2]={1,2,3,4};mare(){struct ord*p=dt; p

    有以下程序 #include<stdio.h> struct ord { int x,y;} dt[2]={1,2,3,4}; mare() { struct ord*p=dt; printf("%d,",++p->x); printf("%d\n",++p->y); } 程序的运行结果是______。

    A.1,2

    B.2,3

    C.3,4

    D.4,1


    正确答案:B
    解析:本题主要考查了结构体变量成员的引用,有三种形式来引用结构体变量中的成员:(1)结构体变量名.成员名:(2)指针变量名->成员名;(3)(*指针变量名).成员名。其中点号“.”称为成员运算符;箭头“->”称为结构指向运算符。由于p->x指向了结构体的的成员x,而结构体中x的值为1,因此自增后变为2,p->y指向了结构体的成员y,而结构体中y的值为2,因此自增后变为3,因此,选项B是正确的。

  • 第16题:

    有以下程序

    #include<stdio.h>

    struct ord

    {int x,y;} dt[2]={1,2,3,4};

    main()

    {

    struct ord*p=dt;

    printf(“%d,”,++(p一>x));printf(“%d\n”,++(p一>y));

    }

    程序运行后的输出结果是

    A.1,2

    B.4,1

    C.3,4

    D.2.3


    正确答案:D

  • 第17题:

    有以下程序: #include<stdio.h> struct ord {int X,y;)dt[2]={1,2,3,4}; main( ) { struct ord*p=dt; printf("%d,",++(p->x));printf("%d\n",++(p->y)); } 程序运行后的输出结果是( )。

    A.1,2

    B.4,1

    C.3,4

    D.2,3


    正确答案:D
    p一>x的值为1,++(p->x)作用是取p->x的值加1作为表达式的值即值为2,同理++(p->y)的值为3。所以选D。

  • 第18题:

    若有以下程序:include using namespaces std;class A{public: A (){} A (int i) {x1=

    若有以下程序: #include <iostream> using namespaces std; class A { public: A (){} A (int i) { x1=i; } void dispa() { cout<<"xl="<<xl<<" , "; } private: int x1; }; class B : public A { public: B (){} B (int i):A(i+10) { x2=i; } void dispb() { dispa (); cout <<"x2="<<x2<<end1; } private: int x2; }; int main () { B b(2); b.dispb (): return 0; } 程序运行后的输出结果是( )。

    A.x1=10,x2=2

    B.x1=12,x2=10

    C.x1=12,x2=2

    D.x1=2,x2=2


    正确答案:C
    解析:本题考核派生类的构造函数。在C++中,构造函数不能被继承,因此,派生类的构造函数必须通过调用基类的构造函数宋初始化基类子对象。所以,在定义派生类的构造函数时,除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数,使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对子对象初始化的构造函数。本题中,在派生类B的构造函数中,调用基类A的构造函数对基类A的数据成员x1进行了初始化。

  • 第19题:

    若有以下程序:includeusing namespaces std;class A{public: A(){} A(int i) {xl=i;

    若有以下程序: #include<iostream> using namespaces std; class A { public: A(){} A(int i) { xl=i; } void dispa() { cout<<"x1="<<x1<<","; } private: int x1; }; class B:public A { public: B(){} B(int i):A(i+10) { x2=i; } void dispb() { dispa(); cout<<"x2="<<x2<<endl; } private: int x2; }; int main{) { B b(2); b.dispb(): return 0; } 程序运行后的输出结果是

    A.x1=10,x2=2

    B.x1=12,x2=10

    C.x1=12,x2=2

    D.x1=2,x2=2


    正确答案:C
    解析:本题考核派生类的构造函数。在C++中,构造函数不能被继承,因此,派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时,除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对子对象初始化的构造函数。

  • 第20题:

    若有以下程序:includeusing namespaces std;class A{public:A(){}A(int i){x1=i; } v

    若有以下程序: #include<iOStream> using namespaces std; class A { public: A(){} A(int i) { x1=i; } void dispa() { cout<<"X1="<<x1<<",": } private; int x1; }; class B:public A { public: B(){} B(int i):A(i+10) { x2=i; } void dispb() { dispa(); cout<<"x2="<<x2<<end1; } private: int x2; }; . int main() { B b(2); b.dispb() return 0; } 程序运行后的输出结果是( )。

    A.x1=10,x2=2

    B.x1=12,x2=10

    C.x1=12,x2=2

    D.x1=2,x2=2


    正确答案:C
    解析:本题考核派生类的构造函数。在C++中,构造函数不能被继承,因此,派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时,除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对于对象初始化的构造函数。

  • 第21题:

    执行下列程序后的输出结果是( ) int fun(int x1,int x2) { int x;x1>x2?(x=3):(x=4);return(x+x1); } main() { printf("%d\n",fun( 7,8));}

    A.9

    B.10

    C.11

    D.12


    正确答案:C
    本程序的输出是函数调用“fun(7,8)”的返回值。分析函数调用“fun(7,8)”的过程如下:将实参7传给形参x1,实参8传给形参x2,然后执行函数体。由于x1>x2的条件不成立,所以执行“:”号后的赋值表达式:x=4。返回语句中的表达式是“x+x1”,返回值是:4+7=11。所以本题答案应选C.

  • 第22题:

    单选题
    有以下程序:#include int fun(){ static int x=1; x*=2; return x;}main(){ int i,s=1; for(i=1;i<=2;i++)s=fun(); printf(%d,s);}程序运行后的输出结果是(  )。
    A

    0

    B

    1

    C

    4

    D

    8


    正确答案: C
    解析:
    对局部静态变量在编译时赋初值,以后每次调用函数时一直保持不变,只是保留上次函数调用结束时的值。在主函数中调用了两次fun()函数,第一次调用时x初值为1,执行x*=2后,x=2;第二次调用时初值为2,执行x*=2后,x=4。答案选择C选项。

  • 第23题:

    单选题
    有以下程序:#include main(){ char c='A'; int x=36,b; b=(x>>2)&&(c<'a'); printf(%d,b);}程序运行后的输出结果是(  )。
    A

    1

    B

    0

    C

    2

    D

    4


    正确答案: B
    解析:
    “>>”右移运算符每次右移一位等价于除以2,x=36,执行x>>2后,x=9;“&&”逻辑与运算,先计算左表达式真假,若为假,不计算右表达式,整个逻辑表达式为假,若左表达式为真,再计算右表达式,之后做逻辑与运算;x>>2为真,A的ASCII码为65,a的ASCII码为97,c<'a'为真,整个逻辑表达式(x>>2)&&(c<'a')为真,得b=1。答案选择A选项。