设有如下程序: Option Base 1 Private Sub Form. Click( ) Dim a(5)As String,i As Integer For

题目

设有如下程序: Option Base 1 Private Sub Form. Click( ) Dim a(5)As String,i As Integer For i=1 To 5 a(i)=Chr(Asc("A")+i) Call f(a,i) Next i End Sub Sub f(ta( )As String,n As.Integer) Dim i As Integer For i=1 To n Print ta(i); Next i Print End Sub 对上述程序.以下叙述中正确的是( )。

A.程序有错,因为在过程f的定义中数组参数格式不正确

B.程序可正常运行,输出内容的第一行是一个字母“A”

C.程序可正常运行,输出内容的第一行是一个字母“B”

D.程序可正常运行,输出内容的第一行是数字65

参考答案和解析
正确答案:C
C。【解析】Chr是Ascii码转成字符,Asc是讲字符转成Ascii码。i是1到5的循环,仍然是一个数。a数组就是B、C、D、E、F这5行字符。第一行是B,程序运行后,5行分别是B,BC,BCD,BCDE,BCDEF。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有如下程序:

Private Sub Form. Click( )

Dim ary(1 To 5)As Integer

Dim i As Integer

Dim sum As Integer

For i=1 To 5

ary(i)=i+l

sum=sum+ary(i)

Next i

Print sum

End Sub

程序运行后,单击窗体,则在窗体上显示的是( )。

A.15

B.16

C.20

D.25


正确答案:C
C。【解析】本题中因为i是从l~5递增,当i=1时,ary(1)=1+i=2,sum=sum+2----2,当i=2时,ary(2)=1+i=2+1=3,sum=sum+3=2+3=5,同理当i=3时,ary(3)=4,sum=9,当i=4时,ary(4)=5,sum=14,当i=5时,ary(5)=6,sum=20,所以答案选择C。

第2题:

下面程序的打印结果是【】。 include using namespace std; class Base { public:Base(i

下面程序的打印结果是【 】。

include <iostream>

using namespace std;

class Base

{

public:

Base(int x)

{

a=x;

}

void show()

{

cout<<a;

}

private:

int a;

};

class Derived : public Base

{

public:

Derived(int i) :Base(i+1) ,b(i) { }

void show()

{

cout<<b;

}

private:

int b;

};

int main ( )

{

Base b(5) , *pb;

Derived d(1);

pb=&d;

pb->show();

return 0;

}


正确答案:2
2 解析:基类Base派生出派生类Derived,在主函数中,定义了基类对象b,基类指针pb,以及派生类对象d,并让基类指针pb指向派生类对象乙在C++中,当派生类的对象赋值给基类对象时,只能使用派生类对象中从基类继承的成员。所以最后执行语句“pb->show();”是调用基类的成员函数show(),输出a的值2。

第3题:

设有如下程序:

Private Sub Form_Click()

Dim ary(1 To 5)As Integer

Dim i As Integer

Dim sum As Integer

For i=1 To 5

ary(j)=i+1

sum=sum+ary(i)

Next 1

Print sum

Eud Sub

程序运行后,单击窗体,则在窗体上显示的是

A.15

B.16

C.20

D.25


正确答案:C
解析:i=1时,ary(1)=1+1=2,sum=O+2=2,i=2时,ary(2)=2+1=3,sum=2+3=5,i=3时,ary(3)=3+1=4,sum=5+4=9,i=4时,ary(4)=4+1=5,sum=9+5=14,i=5时,ary(5)=5+1=6,sum=14+6=20。因此本题答案为C)。

第4题:

有如下程序:include using namespace std;class Base{private:char c;public:Base(ch

有如下程序:#include <iostream>using namespace std;class Base{private: char c;public: Base(char n):c(n){} ~Base() { cout<<c; }};class Derived: public Base{private: char c;public: Derived(char n):Base(n+1),c(n){} ~Derived() { cout<<c; }};int main(){ Derived obj('x'); return 0; }执行上面的程序将输出( )。

A.xy

B.yx

C.x

D.y


正确答案:A

第5题:

有以下程序:include include using namespace std;class base{private: cha

有以下程序: #include <iostream> #include <string> using namespace std; class base { private: char baseName[10]; public: base ( ) { strcpy (baseName, "Base"); } virtual char *myName() {

A.DerivedBase

B.BaseBase

C.DerivedDerived

D.BaseDerived


正确答案:A
解析:本题考核虚函数的应用。类Derived是从基类Base公有派生而来的。因此,Derived是基类Base的子类型。主函数中定义了一个基类对象bb和一个派生类对象dd。从程序中可看出,派生类Derived的对象dd交给了处理基类Base的对象的函数showPtr进行处理。由于在基类中函数myName被定义成虚函数,所以在函数showPtr中调用的myName函数为派生类的成员函数mySame,从而输出Derived。然后输出className,即基类名称Base。

第6题:

有如下程序;include using namespace std;class Base{public;Base(inti){x=i;}void d

有如下程序; #include <iostream> using namespace std; class Base { public; Base(inti){x=i;} void dispa0{cout<<x<<',';} private; int x; }; class Derived;public Base { public; Derived(int i);Base(i+10) {x=i;) void dispb(){dispa();cout<<x<<end1;} private; int x; }; int main() { Derived b(2) ; b.dispb(); return 0; } 运行的结果是( )。

A.2,2

B.12,2

C.12,10

D.10,2


正确答案:B
解析:"Derived b(2) ;¨以整数2实例化变量b,在执行Derived的构造函数时,以i+10即12去调用类Derived的父类的构造函数,将Base::x初始化为12,然后将Derived::x赋值为2。在执行b.dispb()时,先调用父类中的dispa,输出Base::x,即12,再输出Derived::x,即2,所以运行结果为“12,2”。

第7题:

在窗体上面一个名称为Commandl的命令按钮,然后编写如下程序: Option.Base 1 Private Sub Command1_Click() Dim a As Variant a=Array(1,2,3,4,5) Sum = 0 For i = 1 To 5 Sum=Sum+a(i) Next i x=Sum/5 For i=1 To 5 If a(i) >x Then Print a(i); Next i End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是

A.1 2

B.1 2 3

C.3 4 5

D.4 5


正确答案:D
解析:本题主要考查考生对程序代码的阅读理解能力。用Array函数为数组a(5)赋值,其元素分别为1、2、3、4、5。第一个For i循环把a(i)数组中的元素逐个加到变量Sum上,然后求出Sum浮点除5的结果(为3),赋值给变量x。第二个Fori循环表示当a(i)大于3时,则用Print语句输出该元素。据此,正确答案为D。

第8题:

有如下程序:includeusing namespace std;class Base{private:char c;piblic:Base(cha

有如下程序: #include<iostream> using namespace std; class Base { private: char c; piblic: Base(char n):c(n){} ~Base() { cout<<C; } }; class DeriVed:public Base { private: char c; public: Derived(char n):Base(n+1),c(n){} ~Derived() { cout<<c; } }; int main() { Derived obj('x'); return 0; } 执行上面的程序将输出

A.xy

B.yx

C.x

D.y


正确答案:A
解析:在C++中,由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。在此题的程序中,在主函数main结束时,派生类Derived对象。obj将被删除,所以就会调用对象的析构函数。先调用派生类的析构函数,输出x,然后调用基类的析构函数,输出y。

第9题:

有如下程序:include using namespace std;class Base{private:charc;public:Base(cha

有如下程序:#include <iostream>using namespace std;class Base{private: char c;public: Base(char n) :c(n){} ~Base() { cout<<c; } };class Derived: public Base{private: char c; public: Derived(char n):Base(n+1),c(n) {} ~Derived() { cout<<c; }};int main (){ Derived obj ('x'); return 0;}执行上面的程序净输出

A.xy

B.yx

C.x

D.y


正确答案:A
解析:在C++中,由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。在此题的程序中,在主函数main结束时,派生类Derived对象obj将被删除,所以就会调用对象的析构函数。先调用派生类的析构函数,输出x,然后调用基类的析构函数,输出y。

第10题:

有以下程序:inClUdeusingnamespacestd;ClassBase{public: Base(intx) {a=x; } voidsh

有以下程序: #inClUde <iostream> using namespace std; Class Base { public: Base(int x) { a=x; } void show() { cout<<a; } private: int a; }; class Derived : public Base { public: Derived(int i) :Base(i+1),b(i){} void Show() { cout<<b; } private: int b; }; int main() { Base b(5),*pb; Derived d(1); pb=&d; pb->show(); return 0; } 运行后的输出结果是( )。

A.1

B.5

C.2

D.0


正确答案:C
解析:基类Base派生出派生类Derived,在主函数中,定义了基类对象b,基类指针pb,以及派生类对象d,并让基类指针pb指向派生类对象d。在C++中,当派生类的对象赋值给基类对象时,只能使用派生类对象中从基类继承的成员。所以最后执行语句“pb->show();”是调用基类的成员函数show(),输出a的值2。