有如下的程序。Private Sub Commandl_Click( )Dim k As Integer, m As IntegerDim P As Integerk=

题目

有如下的程序。 Private Sub Commandl_Click( ) Dim k As Integer, m As Integer Dim P As Integer k=4: m=1 P=Fun(k, m) : Print P; P = Fun ( k, m) : Print P End Sub Private Function Fun( a As Integer, b As Integer) Static m As Integer, i As Integer m=5:i=2 i=i+m+1 m=i + a + b Fun=m\2 End Function 单击命令按钮后,输出结果为

A.2 2

B.4 4

C.5 5

D.6

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

现有如下程序段

#include "stdio.h"

int fun(int k,int *m)

{if(k%3)*m=k*k;

else *m=k/3;}

main()

{ int (*p)(int,int *),m;

p=fun;

(*p)(78, &m);

printf( "%d\n",m);}

则程序段的输出结果为

A.24

B.25

C.26

D.27


正确答案:C

第2题:

设有以下程序: include using namespace std; int main() {inta,b,k:4,m=6,*p1=&k

设有以下程序:

include<iostream>

using namespace std;

int main()

{

int a,b,k:4,m=6,*p1=&k,*p2=&m;

a=p1==&m;

b=(*p1)/(*p2)+7;

cout<<a<<b<<end1;

return 0;

}

执行该程序后,a的值为【 】,b的值为【 】。


正确答案:0 7
0 7 解析:本题考核的知识点是有关指针的运算。程序中定义了两个指针变量p1和p2,并通过赋初值让它们分别指向了变量k和m。语句“a=p1==&m;”中先执行关系运算符“p1==&m”,显然是0(假),然后把0赋值给a。接着执行语句“b=(*p1)/(*p2)+7”,此处*p1的值就是k的值4,*p2的值就是m的值6,即把“4/6+7”的结果赋给b,b的值为7。

第3题:

有如下程序:

Private Sub Command1_Click()

Dim k As Integer, m As Integer

Dim p As Integer

k=4: m=1

p=PC(k, m) : Print p;

p=PC(k, m) : Print p

End Sub

Private Function PC(a As Integer, b As Integer)

Static m As Integer, i As Integer

m=0: i=2

i=i + m + 1

m=i + a + b

PC=m

End Function

程序运行后,输出的结果为( )。

A.4 6

B.6 6

C.8 8

D.10 12


正确答案:C

第4题:

有以下程序: include<stdio.h> main( ) { int a,b,k,m,*pl,*p2; k=1,m=8; p1=&

有以下程序: #include<stdio.h> main( ) { int a,b,k,m,*pl,*p2; k=1,m=8; p1=&k,p2=&m; a=/*pl-m;b=*p1+*p2+6; printf("%d",a);printf("%d\n",b); } 编译时编译器提示错误信息,你认为出错的语句是( )。

A.a=/*pl-m;

B.b=*p1+*p2+6;

C.k=1,m=8;

D.pl=&k,p2-&m;


正确答案:A
本题考查指针,pl=&k表示P指向k的地址,则*p=k,依次类推,在对指针进行赋值时没有错误。a=/*p+m赋值,在c语言中"/*"表示的注释,所以答案选择A。

第5题:

有以下程序include <stcli0.h>main( ){ int a,b,k,m,*p1,*p2; k=1,m=8; p1=&k,p2=&am

有以下程序

#include <stcli0.h>

main( )

{ int a,b,k,m,*p1,*p2;

k=1,m=8;

p1=&k,p2=&m;

a=/*p1 -m; b=*p1+*p2+6;

printf(”%d ”,a); printf(”%d\n”b);

}

编译时编译器提示错误信息,你认为出错的语句是

A) a=/*p1- m;

B)b=*p1+*p2+6;

C)k=1,m=8;

D)p1=&k, p2=&m;


正确答案:D
【答案】D
【知识点】C语言书写规范
【解析】D中语句应为p1=&k,p2=&m;中间的逗号应变成分号。

第6题:

有如下程序: Private Sub Command1_Click() Dim k As Integer,m As Integer Dim p As Integer k=4:m=1 p=PC(k,m):Print p; p=PC(k,m):Print p End Sub Private Function PC(a As Integer,b As Integer) Static m As Integer,i As Integer m=0:i=2 i=i + m + 1 m=i + a + b PC=m End Function 程序运行后,输出的结果为

A.4 6

B.6 6

C.8 8

D.10 12


正确答案:C
解析:在Sub过程中,程序段先定义了3个Integer型变量k,m,P,并给k赋给初值4,m的初值为1,然后调用事件过程PC,并将它的值赋给p;在事件过程PC中定义了两个形参,参数的传送是通过引用实参,即将k,m的地址作为a,b的地址;在PC中,将m,I定义为静态变量,所以第一次调用后的值仍然保留,但是m,I分别都有赋值语句,将它们的值变为0,2,所以返回值不变。

第7题:

有如下程序: Private Sub Command1_Click() Dim k As Integer,m As Integer Dim op As Integer k=4:m=1 p=PPC(k,m):Print op; p=PPC(k.m):Print op End Sub Private Function PPC(a As Integer,b As Integer) Static m As Integer,i As Integer m=0:i=2 i=i+m+1 m=i+a+b PPC=m End Function 程序运行后,输出的结果为

A.4 6

B.6 6

C.8 8

D.10 12


正确答案:C
解析:考查考生对函数及函数参数的运用。
  [解题要点] 在Sub过程中,程序段先定义了3个Integer型变量k,m,op,并为k赋给初值4,m的初值为1,然后调用事件过程PPC,并将它的值赋给op。在事件过程PPC中定义了两个形参,参数的传送通过引用实参,即将k,m的地址作为a,b的地址;在PPC中,将m,i定义为静态变量,第一次调用后的值仍然保留,但是m,i分别都有赋值语句,将它们的值变为0,2,所以返回值不变。
  [错解分析] 函数PPC中的两个参数都是以传值方式传递,注意不要与传地址方式传递混淆。
  [考点链接] 过程的定义和调用,以及参数传递方式的选择。

第8题:

有以下程序:include<stdio.h>main( ) { int a,b,k,m,*pl,*p2; k=1,m=8; p1=&k,p2=&a

有以下程序:

include<stdio.h>

main( )

{ int a,b,k,m,*pl,*p2;

k=1,m=8;

p1=&k,p2=&m;

a=/*pl-m;b=*p1+*p2+6;

printf("%d",a);printf("%d\n",b);

}

编译时编译器提示错误信息,你认为出错的语句是( )。

A.a=/*pl-m;

B.b=*p1+*p2+6;

C.k=1,m=8;

D.pl=&k,p2-&m;


正确答案:A

本题考查指针,pl=&k表示P指向k的地址,则*p=k,依次类推,在对指针进行赋值时没有错误。a=/*p+m赋值,在c语言中"/*"表示的注释,所以答案选择A。

第9题:

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


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

第10题:

已知类X的定义如下,为了实现将对象成员k的值修改为678,下面的哪条语句是正确的 ______。 class X{ private: int k; public: K(int n){k=n;} set(int n){k=m;} }; void fun(){ X a(10),*p=&a; ______ }

A.p->set(678);

B.X(678):

C.p->k=678;

D.p.set(678);


正确答案:A