若有以下程序段: void x(int n); void main() { void x(int n); x(5); } void x(int n){ cout<<n: } 则以下叙述不正确的是 ______。A.若只在子函数中对函数x进行声明,则只能在主数中正确调用函数xB.若只在子函数前面对函数x进行声明,则其后的所有函数中都可以正确调用函数xC.对于以上程序,编译时系统会提示出错信息:提示对x函数重复声明D.函数x无返回值,所以可用void定义x的函数类型

题目

若有以下程序段: void x(int n); void main() { void x(int n); x(5); } void x(int n){ cout<<n: } 则以下叙述不正确的是 ______。

A.若只在子函数中对函数x进行声明,则只能在主数中正确调用函数x

B.若只在子函数前面对函数x进行声明,则其后的所有函数中都可以正确调用函数x

C.对于以上程序,编译时系统会提示出错信息:提示对x函数重复声明

D.函数x无返回值,所以可用void定义x的函数类型


相似考题
更多“若有以下程序段:void x(int n);void main() {void x(int n);x(5);}void x(int n){cout<<n:}则以 ”相关问题
  • 第1题:

    下面程序的执行结果是【】。include void main(){int n=0,x=0;do{n++;if(n%3==2&&

    下面程序的执行结果是【 】。

    include <iostream. h>

    void main()

    {

    int n=0,x=0;

    do

    {

    n++;

    if(n%3==2&&n%5==3&&n%7==2)

    x=1;

    }while(x!=1);

    cout<<"n=" <<n<<end1;

    }


    正确答案:n=23
    n=23

  • 第2题:

    若有以下调用语句,则不正确的fun函数的首部是______。 main() { …… int a[50],n; fun(n,&a[9]); …… }

    A.void fun(int m, int x[])

    B.void fun(kit s, kit h[41])

    C.void fun(kit p, kit *s)

    D.void fun(int n, int a)


    正确答案:D

  • 第3题:

    以下程序的执行结果是______。 include class A{ int a: public: void seta(int x) {

    以下程序的执行结果是______。

    include<iostream.h>

    class A

    {

    int a:

    public:

    void seta(int x) {a=x;}

    void showa() {cout<<a<<end1;}

    };

    class B

    {

    int b;

    public:

    void setb(int x) {b=x;}

    void showb(){cout<<b<<end1;}

    };


    正确答案:1 3
    1 3

  • 第4题:

    给出以下程序的执行结果【】。 include using namespace std; int n=1; void Fun(); int

    给出以下程序的执行结果【 】。

    include <iostream>

    using namespace std;

    int n=1;

    void Fun();

    int main ()

    {

    n++;

    Fun ( );

    if (n>0)

    {

    int n=5;

    cout<<"Block: n="<<n<< ", ";

    }

    cout<< "Main: n="<<end1;

    return 0;

    }

    void Fun ( )

    {

    int n=10;

    cout<<"Fun: n="<<n<<",";

    }


    正确答案:Fun:n=10Block:n=5Main:n=2
    Fun:n=10,Block:n=5,Main:n=2 解析:变量的作用域是程序中变量有效的区域,它是变量的一个重要特征。在题中,变量n有3种身份,其一是作为全局变量的n,其二是作为if语句块内局部变量的n,其三是函数内部局部变量的n。程序最后要求输出各个作用域内n的值。

  • 第5题:

    有以下程序:includedefine N 8void fun(int*x,int i){*x=*(x+i)+1;}main(){int a[N]=

    有以下程序: #include<stdio.h> #define N 8 void fun(int*x,int i) {*x=*(x+i)+1;} main() {int a[N]={1,2,3,4,5,6,7,8},i; fun(a,2); for(i=0;i<N/2;i++) {printf("%d",a[i]);} printf("\n"); } 程序运行后的输出结果是( )。

    A.1 3 1 3

    B.3 2 3 4

    C.4 2 3 4

    D.1 2 3 4


    正确答案:C
    解析:函数fun(int*x,int i)的功能是把数组元素x[i]的值加1赋给x[0]。所以在主函数中执行fun(a,2)后,数组元数a[0]的值等于4。然后在for循环语句中,输出数组a中的前4个元素的值,分别是4,2,3,4。

  • 第6题:

    若有以下程序:includeusing namespace std;class A{private:int a; public:void seta

    若有以下程序: #include<iostream> using namespace std; class A { private: int a; public: void seta(int x) { a=x; } void showa() { cout<<a<<","; } }; class B { private: int b; public: void setb(int x) { b=x; } void showb() { cout<<b<<",”; } }; class C:pUblic A,private B { private: int c; public: void setc(int x,int y,int z) { c=z; seta(x); setb(y); } void showc() { showa(); showb(); cout<<c<<end1; } }; int main() { Cc; c.setc(1,2,3); c.showc(); retrun 0; } 程序执行后的输出结果是

    A.1,2,3

    B.1,1,1

    C.2,2,2

    D.3,3,3


    正确答案:A
    解析:本题考核派生类的应用。本题中类A和类B都是基类。而类C从类A公有派生,从类B处私有派生。所以类C中的函数成员可以访问类A和类B中的公有成员。在类C的函数成员setc中,调用基类A的函数成员seta对A的数据成员a赋值,还调用了基类B的函数成员setb对类B的数据成员b赋值,然后对类C自己的数据成员c赋值。在类C的函数成员showc中,调用基类A的函数成员showa显示数据成员a的值,还调用基类B的函数成员showb显示数据成员b的值,然后输出类C自己的数据成员c的值。在主函数main中,先定义派生类的对象c,然后调用setc对c中的数据成员赋值,然后输出赋值结果。所以程序最后输出应该为:1,2,3。

  • 第7题:

    若有以下程序:includeusing namespace std;class A{private:inta;public:voidseta(in

    若有以下程序: #include <iostream> using namespace std; class A { private: int a; public: void seta(int x) { a=x; } void showa() { cout<<a<<","; } }; class B { private: int b; public: void setb (int x) { b=x; } void showb() { cout<<b<<","; } }; class C :public A,private B { private: int c; public: void setc(int x, inc y, int z) { c=z; seta (x); setb (y); } void showc() { showa (); showb (); cout<<c<<end1; } }; int main () { C c; c. setc(1,2,3); c.showc(); return 0; } 程序执行后的输出结果是

    A.1,2,3

    B.1,1,1

    C.2,2,2

    D.3,3,3


    正确答案:A
    解析:本题考核派生类的应用。本题中类A和类B都是基类。而类C从类A公有派生,从类B处私有派生.所以类C中的函数成员可以访问类A和类B中的公有成员。在类C的函数成员setc中,调用基类A的函数成员seta对A的数据成员a赋值,还调用了基类B的函数成员setb对类B的数据成员b赋值,然后对类C自己的数据成员c赋值。在类C的函数成员showc中,调用基类A的函数成员showa显示数据成员a的值,还调用基类B的函数成员showb显示数据成员b的值,然后输出类C自己的数据成员c的值.在主函数main中,先定义派生类的对象c,然后调用setc对c中的数据成员赋值,然后输出赋值结果。所以程序最后输出应该为:1,2,3。

  • 第8题:

    若有以下程序:include using namespace std;class A{private:int a;public:void seta

    若有以下程序:#include <iostream>using namespace std;class A{private: int a;public: void seta(int x) { a=x; } void showa() { cout<<a<<","; }};class B{private: int b;public: void setb(int x) { b=x; } void showb() { cout<<b<<","; }};class C: public A, private B{private: int c;public: void setc(int x, int y, int z) { c=z; seta(x); setb(y); } void showc() { showa(); showb(); cout<<c<<end1; }};int main(){ C c; c.setc(1,2,3); c.showc(); return 0;}程序执行后的输出结果是( )。

    A.1,2,3

    B.1,1,1

    C.2,2,2

    D.3,3,3


    正确答案:A

  • 第9题:

    在下面程序运行后,输出结果为 ______。includevoid count(int x[],int n,int &y

    在下面程序运行后,输出结果为 ______。 #include<iostream.h> void count(int x[],int n,int &y){ int k; y=0; for(k=0:k<n;k++) if(x[k]<0) y++; } void main(){ int b[]={2,1,-8,-3,7,2,4,6,0,-13}; int x; count(b,10,x); cout<<“x”<<x<<end1; }

    A.x=3

    B.x=5

    C.出错

    D.x=0


    正确答案:A

  • 第10题:

    若有以下调用语句,则不正确的 fun 函数的首部是( )。 void main() { int a[50],n; fun(n,&a[9]); }

    A.void fun(int m,int x[])

    B.void fun(int s,int h[])

    C.void fun(intp,int * s)

    D.void fun(int n,int a)


    正确答案:D
    解析:&a[9]表示对变量a[9]的引用,与它对应的形参必须是表示地址的变量,而D的第2个形参是一个普通变量。

  • 第11题:

    执行下列程序段,结果是 #include(iostream.h> void main() { int x=40; char y=‘C’;int n; n=(x&0xff)&&(y>‘B’); cout<<n;}

    A.0

    B.1

    C.2

    D.3


    正确答案:B
    解析:按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。逻辑与运算符“&&”需要两边的结果都为1时,其结果才为1。

  • 第12题:

    下列程序的输出结果是______。 include using namespace std; class base { public: in

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

    include<iostream>

    using namespace std;

    class base

    {

    public:

    int n;

    base(int x){n=x;}

    virtual void set(int m){n=m;cout<<n<<'';}

    };

    class deriveA:public base

    {

    public:

    deriveA(int x):base(x){}

    void set(int m){n+=m;cout<<n<<'';}

    };

    class deriveB:public base

    {

    public:

    deriveB(int x):base(x){}

    void set(int m){n+=m;cout<<n<<'';}

    };

    int main( )

    {

    deriveA d1(1);

    deriveB.d2(3);

    base*pbase;

    pbase=&d1;

    pbase->set(1);

    pbase=&d2;

    pbase->set(2);

    return 0;

    }


    正确答案:25
    25 解析:本题考核虚函数的定义和调用。在C++中,一个基类指针(或引用)可以用来指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。题中基类成员函数set( )被定义成虚函数,而且其派生类 deriveA和deriveB都有函数set( )的重定义版本,所以通过指针pbase的两次调用分别调用的是派生类deriveA和deriveB中定义的版本,即输出25。

  • 第13题:

    以下程序的执行结果是【】。 include include void pnnt(int n) { if (n!=0

    以下程序的执行结果是【 】。

    include<iostream.h>

    include<iomanip.h>

    void pnnt(int n)

    {

    if (n!=0)

    {

    Print(n-1);

    for (int i=1;i<=n;i++)

    cout<<setw(3)<<i;

    cout<<endl;

    }

    }

    void main()

    {

    print(4);

    }


    正确答案:1 12 123 1234
    1 12 123 1234

  • 第14题:

    下面程序的运行结果为_____。 include void fun(int x=0,int y=0) { cout < < x < <

    下面程序的运行结果为_____。

    include<iostream.h>

    void fun(int x=0,int y=0)

    {

    cout < < x < < y;

    }

    void main( )

    {

    fun(5) ;

    }


    正确答案:50
    50 解析:本题考查的是函数的默认参数,如果一个函数中有多个参数,则默认参数应从右至左逐个定义,所以题目中x使用参数5,y使用默认参数0。

  • 第15题:

    写出下列程序的运行结果【】。 include void func(double x, int &part1, double

    写出下列程序的运行结果【 】。

    include<iostream. h>

    void func(double x, int &part1, double &part2){

    part1=int(x)+500:

    part2=(x+500-part1)*100;

    }

    void main( ){

    int n;

    double x, f;

    x=1001. 0103;

    func (x, n, f):

    cout<<"Part 1="<<n<<" , part2="<<f<<end1

    }


    正确答案:part1=1501 part2=1.03
    part1=1501, part2=1.03

  • 第16题:

    若有以下调用语句,则不正确的fun函数的首部是( )。 main() { … int a[50],n; … fun(n,&a[9]); … }

    A.void fun(int m,int x[])

    B.void fun(int s,int h[41])

    C.voidfun(int p,int*s)

    D.void fun(int n,iht a)


    正确答案:C
    解析:根据主函树中的函数调用可知,第一个实参为整型数据,第二个实参为整型数组中一个元素的地址值。因此函数fun()的第二个形参应该为一个指针,故应该选择C。实参不是将整个数组传递给形参,故选项A和B不正确;选项D的第二个形参的数据类型与实参的数据类型不符。

  • 第17题:

    以下程序的执行结果是 ______。 include int &max(int &x,int &y) { ret

    以下程序的执行结果是 ______。

    include<iostream.h>

    int &max(int &x,int &y)

    {

    return(x>y? x:y);

    }

    void main()

    {

    int n=2,m=10;

    max(n,m)--;

    cout<<"n="<<n<<",m="<<m<<endl;

    }


    正确答案:n=2m=9
    n=2,m=9

  • 第18题:

    下列程序的输出结果为【 】。ineludeint &max(int &x, int &y){return (x

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

    inelude<iostream. h>

    int &max(int &x, int &y)

    {return (x>y? x: y); }

    void main() {

    int n=3, m=12;

    max(m, n)++

    cout<<"m="<<m<<", n= "<<n<<end1;

    }


    正确答案:m=13n=3
    m=13,n=3 解析:本题考察引用作为形参进行参数传递的知识。max函数的功能是返回较大的那个数,而max(m,n)++的作用是将较大值再进行增一运算。

  • 第19题:

    以下程序的输出的结果是()。include int x=3;void main(){void incre();int i;for (

    以下程序的输出的结果是( )。#include <iostream.h>int x=3;void main(){ void incre(); int i; for (i=1;i<x;i++) incre();}Void incre(){ static int x=1; x*=x+1; cout<<x<<"";}

    A.3 3

    B.2 2

    C.2 6

    D.2 5


    正确答案:C

  • 第20题:

    以下程序的输出的结果是()。includeint x=3:void main(){void fun();int i;for(i=1;

    以下程序的输出的结果是( )。 #include<iostream.h> int x=3: void main() { void fun(); int i; for(i=1;i<x;i++) fun(); } void fun() { static int x=1; x*=x+1; cout<<x<<" "; }

    A.3,3

    B.2,2

    C.2,6

    D.2,5


    正确答案:C

  • 第21题:

    有以下程序: #include #define N 4 void fun(int a[ ][N],int b[ ]) { int i; for(i=0;i main( ) { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2==0)continue;x++;} x++; } printf("x=%d\n",x); } 程序的运行结果是( )。

    A.x=4

    B.x=6

    C.x=8

    D.x=12


    答案:C 
    解析:第一次循环:i=0,执行x++后x=1,执行内层循环j=0,由于j%2!=0时才执行x++,即只有j取1和3时,执行x++,此时x=1+1+1=3,跳出内层循环,执行下一条x++,x=4,第二次循环:x=1时,重复上述循环,共执行两次循环,故x最终结果是4*2=8。 

  • 第22题:

    若有以下调用语句,则不正确的fun函数的首部是( )。 main() { int a[50],n; fun(n,&a[9]); ┆ }

    A.void fun(int m,int x[])

    B.void fun(int s,int h[41])

    C.void fun(int p,int *s)

    D.void fun(int n,int a)


    正确答案:D
    解析:根据main函数中的fun函数调用语句可知,fun函数的第二个参数是一个地址值,对应的形参可以是指针变量或一维数组,所以D)不正确。

  • 第23题:

    下列程序段的执行结果为()。includeusing namespace std;class example{int n;public:

    下列程序段的执行结果为( )。 #include<iostream> using namespace std; class example{ int n; public: example(int i){n=i;} void add(){s+=n;} static int s; void pr(){ cout<<s<<endl; } }; int example::s=0; int fuc(char *x); int main(){ example x(2),y(3),z(4); x. add(); y. add(); z.pr(); return 0; }

    A.2

    B.3

    C.5

    D.6


    正确答案:C
    解析:s为静态数据成员,其初始值为0。a,b,c为定义的3个对象,其各自的私有成员n为2,3,4。执行x.add();语句后,s=2;再执行y.add();后,s=5;最后执行输出语句z.pr(),即输出s的值5。