下面的程序使用了函数指针,其运行结果是(43)。A.AB.BC.CD.D

题目

下面的程序使用了函数指针,其运行结果是(43)。

A.A

B.B

C.C

D.D

参考答案和解析
正确答案:B
本题考查C语言函数指针的基础知识。仔细阅读程序,正确理解函数指针并将参数正确代入函数,可得到y=9,y2=9y3=27,y4=27的结果。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

已有函数fun(a,b),为了使函数指针变量P指向函数fun,则使用的赋值语句是______。


正确答案:p=fun
p=fun 解析:函数入口地址称为函数的指针。可以使用指针变量指向fun函数,然后通过该指针变量调用此函数。赋值语句就是将函数fun的入口地址赋值给指针变量P,只需将函数名赋给P,不能写成“p=fun(a,b)”形式。函数名就代表了函数入口地址,即p=fun。

第2题:

下面的程序的运行结果是__________func main() { x := []string{"a", "b", "c"}for _, v := range x { fmt.Print(v)}}


参考答案:abc

第3题:

C语言中rewind函数使位置指针回到文件的开头位置,而fseek函数使位置指针移到指定的位置。()

此题为判断题(对,错)。


参考答案:正确

第4题:

以下程序运行后的输出结果是 ______。 main() { char m; m='B'+32;printf("%c\n",m); }

A.a

B.b

C.c

D.d


正确答案:B
解析:字符参与运算的值是其对应的ASCII码,小写英文字符的ASCII值比大写英文字符的ASCII值大32,执行语句m='B'+32;得出结果m=66+32=98,以“%c”的格式输出结果为b。

第5题:

您正在写的下面的代码是,调用一个函数从Win32应用程序编程接口(API)通过使用平台调用。Intrc=MessageBox(hWnd,text,caption,type)下面正确的是()

A.A

B.B

C.C

D.D


参考答案:A

第6题:

虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非虚函数不支持多态调用。有如下程序; #include <iostream> using namespace std; class Base { public: virtual void f() {cout<<"f0+";} void g() {cout<<"g0+";} }; class Derived: public Base { public: void f() {cout<<"f+";} void g() {cout<<"g+";} }; int main() { Derived d; Base *p=&d; P->f(); P->g(); return 0; }运行时输出的结果是

A.f+g+

B.f0+g+

C.f+g0+

D.f0+g0+


正确答案:C
解析:本题考查的知识点是:虚函数与多态性。在题目的主函数中,首先声明了一个派生类对象d,然后声明了一个基类指针p指向它。接着通过该基类指针,分别调用了f()函数和g()函数。由于在基类Base的定义中,f()函数使用了virtual关键字,因此它是虚函数,即具有多态性,所以通过指针p调用的f()是派生类Derived中定义的 f()。而g()不是虚函数,所以通过指针p调用的是Base中定义的g()。由此可见,最终输出的结果是“f+g0+”。故本题应该选择C。

第7题:

下面的程序的运行结果是__________for i := 0; i < 5; i++ {defer fmt.Printf("%d ", i)}


参考答案:4 3 2 1 0

第8题:

●当程序运行陷于死循环时,说明程序中存在 (41) 。在C语言中,函数定义及函数调用应该遵循的原则是 (42) 。以求n!为例,采用递归方式编写的程序相对于递推方式的程序执行效率较低的原因是 (43) 。

(41) A.词法错误

B.静态的语义错误

C.语法错误

D.动态的语义错误

(42) A.可以进行函数的嵌套定义,不可以进行函数的嵌套调用

B.不可以进行函数的嵌套定义,可以进行函数的嵌套调用

C.既不能进行函数的嵌套定义,也不能进行函数的嵌套调用

D.既可以进行函数的嵌套定义,也可以进行函数的嵌套调用

(43) A.递归程序经编译后形成较长目标代码,所以需要较多的运行时间

B.递归程序执行过程中重复存取相同的数据占用了较多的时间

C.递归程序执行时一系列的函数调用及返回占用了较多的时间

D.递归程序执行时多次复制同一段目标代码占用了较多的时间


正确答案:D,B,C
【解析】语法错误和词法错误应该在分析过程中分析出来,静态的语义错误不会造成死循环,而动态的语义错误很容易造成程序的死循环。常见错误有循环结束条件错误。C语言允许在一个函数中调用另一个函数,在第二个函数中调用第三个函数,即允许嵌套调用;但是它不允许在一个函数中定义另外的函数,即不允许嵌套定义。递归程序因为在执行过程中需要不断地进行函数调用及返回,即不断地执行上下文切换和反复地进行入栈、出栈操作,所以它们需要较大的时间开销。

第9题:

窗体上有一个名称为Command1的命令按钮,其单击事件过程及有关函数过程如下: Private Sub Command1 Click( ) Dim n As Integer n=add(5,10) Print n End Sub Function add(v1 As Integer,v2 As Integer,Optiona1 v3)As Integer If Not IsMissing(v3)Then add=v1+v2+v3 Else add=v1+v2 End If End Function 运行程序,单击命令按钮,以下叙述中正确的是( )。

A.程序不能正常运行,因为函数add的参数定义有错

B.程序不能正常运行,因为函数定义与函数调用语句的参数个数不匹配

C.程序能正常运行,结果是在窗体上显示15

D.程序能正常运行,结果是在窗体上显示510v3


正确答案:C
C。【解析】本题考y,-add方法里IsMissing的v3,v3是一个可选项,用来判断这个参数是否存在。根据程序语句,当输入3个参数时,就是3个参数求和,输入2个参数时是两个数求和,题目中是2个参数,因此是2个参数求和,不会报错。

第10题:

以下程序的运行结果是______。 include include template class TA

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

include<iostream.h>

include<math.h>

template<class T>

class TAdd//定义类模板TAdd,T为类型

{

Tx,y;

public:

TAdd (Ta,Tb) {x=a,y=b;) //构造函数

Tadd() { retum x+y;}//成员函数

};

void main( )

{

TAdd<int>A (5,6);


正确答案:s1=11 s2=8.2
s1=11 s2=8.2

更多相关问题