有如下程序:Private Sub Command1_Click()Dim a As SingleDim b As Single a=5:b=4 Call Sub1(

题目

有如下程序: Private Sub Command1_Click() Dim a As Single Dim b As Single a=5:b=4 Call Sub1(a,b) End Sub Sub Sub1(x As Single,y As Single) t=X X=t\Y Y=t Mod y End Sub 在调用运行上述程序后,a和b的值分别为

A.0 0

B. 1 1

C.2 2

D.1 2

参考答案和解析
正确答案:B
解析:考查考生对调用通用过程的掌握情况。
  [解题要点] 调用一个过程时,必须把实际参数传送给过程,完成形式参数与实际参数的结合,然后用实际参数执行调用的过程。因为在默认的情况下,变量都是通过“引用”传送给sub1过程,在这种情况下,可以通过改变过程中相应的参数来改变变量的值。过程Sub1的形参获得a,b的地址,此时x=5,y=4,在过程Sub1中,将x,即5的值赋给t,而将t\y的值赋给x,将t除以y的余数赋给y,此时x,y的值为1,1。
  [错解分析] 调用通用过程可以返回多个参数值。
  [考点链接] 过程调用、参数传递。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序:includeincludeusing namespace std; class point{private:double

有以下程序: #include<iostream> #include<math> using namespace std; class point { private: double x; double y; public: point(double a,double B) { x=a; y=b; } friend double distance (point a,point B) ;

A.1

B.5

C.4

D.6


正确答案:C
解析:本题考核友元函数的应用。分析程序:类point中定义了两个私有成员x和y,以及一个友元函数distance。从而,函数distance可以访问类point中的任何成员。在函数distance中,返回值为sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))。由此可知,函数distance的功能是计算a、b两点之间的距离。在主函数main中,先定义两点:p1(1,2)和p2(5,2)。然后调用函数distance计算两点之间的距离为4,所以程序最后输出为4。

第2题:

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

第3题:

有如下程序:includeusing namespqce Std;class TestClass{private;Char C;public;Tes

有如下程序: #include<iostream> using namespqce Std; class TestClass { private; Char C; public; TestClass(char n):c(n){} ~TestClass() { cout<<c; }; class TestClassl:public TestClass { private: Char C; public:

A.xy

B.yx

C.x

D.y


正确答案:A
解析: 本题中TestClass为基类,TestClassl为派生类。在主函数中定义TestClassl对象obj(‘x’),“TestClassl(char n):TestClass(n+1),c(n){}”,所以选输出x,然后调用基类构造函数,’x’+1=‘y’,所以输出y,即答案为xy。

第4题:

假设由CALL指令调用的某子程序使用段内返回指令RET4,该子程序执行到RET4指令时( )实现返回操作。

A.返回到CALL指令下面一条指令继续执行主程序

B.按照(SP)和(SP+1)中存放的地址执行返回操作

C.按照(SP+4)和(SP+5)中存放的地址执行返回操作

D.返回到CALL指令下面第4条指令继续执行主程序


正确答案:B

第5题:

以下程序段有()处错误。include using namespaces std;class Sample{private: int n;p

以下程序段有( )处错误。 #include <iostream> using namespaces std; class Sample { private: int n; public: Sample (int i} { n=i; } void setvalue(int i) { n=i; } void display() { cout<<"n="<<n<<end1; } }; int main ( ) { const Sample a(lO); a. setvalue (5)'; a.display(); return 0; }

A.1

B.2

C.3

D.4


正确答案:B
解析:本题考查常对象的掌握。本程序中有两个错误:①第1处错误是“a.setvalue(5);”语句,由于对象a为常对象,所以对象a的私有数据成员n不能被更新。②第2处错误是语句“a.display();”。由于对象a为常对象,所以通过对象a只能调用它的成员函数,而成员函数display()不是常成员函数。

第6题:

在标准模块中用:Dim或Private关键字定义的变量是______变量,它们只能在程序的模块中使用。


正确答案:局部标准
局部标准

第7题:

假设由CALL指令调用的某子程序使用段内返回指令RET4,问该予程序执行到 RET4指令时( )实现返回操作?

A.返回到CALL指令下面一条指令继续执行主程序

B.按照(SP)和(SP+1)中存放的地址执行返回操作

C.按照(SP+4)和(SP+5)中存放的地址执行返回操作

D.返回到CALL指令下面第4条指令继续执行主程序


正确答案:B

第8题:

若有如下程序:includeusing namespace std;Class TestClass1{private:int a;public:T

若有如下程序: #include<iostream> using namespace std; Class TestClass1 { private: int a; public: TestClassl(int i) { a=i; } void disp() { cout<<a<<“,”; } }; Class TestClass2 { private: int b; public

A.10,10,10

B.10,12,14

C.8,10,12

D.8,12,10


正确答案:D
解析: 首先定义TestClass3的对象Obj,参数为10。其中TestClass3为TestClassl和TestClass2的派生类。然后调用disp成员函数。Disp中首先执行“TestClassl::disp();”,然后执行“TestClass2::disp();”,最后执行输出语句“coutcend1”。TestClass1(k-2),所以第一个输出8,TestClass2(k+2),第二个输出12,最后一个本类中的输出即为10。

第9题:

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

第10题:

利用BL SUB1指令调用子程序SUB1,则SUB1内对应的返回指令通常是 ,LR。


MOV PC,LR