itgle.com

下面的程序使用了函数指针,其运行结果是______。 #include<stdio.h>#include<math.h>int f1(int a){return a*a;}int f2(int a){return a*a*a;}void main( ){int x=3,y1,y2,y3,y4;f=f1;y1=(*f)(x);y2=f1(x);f=f2;y3=f(x);y4=f2(x);printf("y1=%d,y2=%d,y3=%d,y4=%d\n",y1,y2,y3,y4);}A.y1=27,y2=9

题目
下面的程序使用了函数指针,其运行结果是______。
#include<stdio.h>#include<math.h>int f1(int a){return a*a;}int f2(int a){return a*a*a;}void main( ){int x=3,y1,y2,y3,y4;f=f1;y1=(*f)(x);y2=f1(x);f=f2;y3=f(x);y4=f2(x);printf("y1=%d,y2=%d,y3=%d,y4=%d\n",y1,y2,y3,y4);}

A.y1=27,y2=9,y3=9,y4=27
B.y1=9,y2=9,y3=27,y4=27
C.y1=9,y2=27,y3=9,y4=27
D.y1=27,y2=27,y3=9,y4=9

相似考题
更多“下面的程序使用了函数指针,其运行结果是______。 ”相关问题
  • 第1题:

    下面的程序的运行结果是__________func main() {x := 1{ x := 2 fmt.Print(x)}fmt.Println(x)}


    参考答案:21

  • 第2题:

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


    参考答案:4 3 2 1 0

  • 第3题:

    以下程序的运行结果是______。 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

  • 第4题:

    以下关于程序的叙述中,错误的是__(30) 。

    A.有编译错误的程序一定包含着错误

    B.运行结果正确的程序也可能含有错误

    C.调用了未定义的函数会产生链接错误

    D.调用了未定义的函数会发生运行异常


    正确答案:D
    函数在调用前必须首先进行定义。

  • 第5题:

    有以下程序(strcat函数用于连接两个字符串):

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

    A.U-K

    B.ABCDE\0FG\0UK

    C.ABCDUK

    D.EFGUK


    正确答案:C
    字符数组a中包含两个‘、O’,遇到第一个‘O’时就表示字符串a结束。字符串处理函数由c吐(字符数组a,字符数组b),功能是连接两个字符数组中的字符串,把字符串b连接到a的后面,结果放在字符数组a中。连接时将字符串a后的‘、0’取消,只在新串最后保留一个‘、0’。本题相当于将“ABCD”和“IJK”连接。因此C选项正确。

  • 第6题:

    以下程序中函数sCmp的功能是返回形参指针sl和s2所指字符串中较小字符串的首地址。若运行时依次输入:abCd、abba和abC三个字符串,则输出结果是( )。

    A.abCd

    B.abba

    C.abC

    D.abCa


    正确答案:B
    main函数将输入的三个字符串存在二维数组str中,并通过两次streW函数调用,将最小的一个字符串复制到string中。abcd、abba、abc中最小的字符串为abba。

  • 第7题:

    在C语言中,关于函数fseek的说法正确的是( )。

    A.使位置指针重新返回文件的开头

    B.使位置指针到文件的结尾

    C.可以改变文件位置指针

    D.利用fseek函数只能实现文件顺序读写


    正确答案:C
    解析:fseek()函数可以自由的改变文件位置指针的位置,即可以自由读写文件中的任何位置,故选项A、B、D都是错误的,应该选择C。

  • 第8题:

    若有函数fun(x,y),并且已经使函数指针变量p指向函数fun,则使用p调用函数 fun的方法是______。


    正确答案:(*p)(xy)。
    (*p)(x,y)。 解析: 一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向读函数。然后通过指针变量就可以找到并调用这个函数。我们把这种指向函数的指针变量称为“函数指针变量”。函数指针变量定义的一般形式为:类型说明符(*指针变量名)();其中“类型说明符”表示被指函数的返回值的类型。“(*指针变量名)”表示“*”后面的变量是定义的指针变量。最后的空括号表示指针变量所指的是一个函数。

  • 第9题:

    项目名为EX_SDIHello的单文档应用程序中的视图类OnDraw(CDC*pDC)虚函数中,有以下代码:CEx_SDIHelloDoc*pDoc=GetDocument();,其功能是()。

    • A、获取视图类对象指针
    • B、获取应用程序类对象指针
    • C、获取文档类对象指针
    • D、获取主框架类对象指针

    正确答案:C

  • 第10题:

    如果在程序中调用了strcat函数,则需要预处理命令。如果调用了gets函数,则需要预处理命令()。


    正确答案:#include

  • 第11题:

    单选题
    项目名为EX_SDIHello的单文档应用程序中的视图类OnDraw(CDC*pDC)虚函数中,有以下代码:CEx_SDIHelloDoc*pDoc=GetDocument();,其功能是()。
    A

    获取视图类对象指针

    B

    获取应用程序类对象指针

    C

    获取文档类对象指针

    D

    获取主框架类对象指针


    正确答案: A
    解析: 暂无解析

  • 第12题:

    单选题
    函数rewind(fp)的作用是(  )。
    A

    函数rewind(fp)的作用是使文件读写指针指向文件开始位置

    B

    使文件位置指针指向文件的末尾

    C

    使文件位置指针移至前一个字符的位置

    D

    使文件位置指针移至下一个字符的位置


    正确答案: B
    解析:
    rewind函数作用是使文件读写指针指向文件开始位置。答案选择A选项。

  • 第13题:

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


    参考答案:abc

  • 第14题:

    窗体上有一个名称为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个参数求和,不会报错。

  • 第15题:

    运行下面的程序,输入字符串Microsoft Visual Studio,则程序的执行结果是()。includemai

    运行下面的程序,输入字符串Microsoft Visual Studio,则程序的执行结果是( )。 #include<stdio.h> main() {char Chr[20]; scanf("%s",&Chr); printf("%s\n”,Chr); }

    A.Microsoft Visua1 Studio

    B.M

    C.Microsoft

    D.MicrosoflVisualStudio


    正确答案:C
    解析:当从键盘输入Microsoft Visual studio时,由于scanf输入函数的特点是遇到空格时结束读入字符,因此,该程序只将Microsoft这9个字符送到了字符数组str中,并在其后自动加上结束符“\0”。

  • 第16题:

    编写如下代码:

    运行上面的程序,单击命令按钮,其输出结果是

    A.9885

    B.5889

    C.988

    D.889


    正确答案:A
    关键是For循环的含义。它实际上是依从数组尾都取数,分别作为十进制个位及其他位的权值,然后组成一个数字。直接可以写出结果9885,所以选择A。

  • 第17题:

    有以下程序(strcpy为字符串复制函数,streat为字符串连接函数)

    程序运行后的输出结果是

    A.a12xyz

    B.bc2yz

    C.a2yz

    D.12yz


    正确答案:C
    本题考查字符串处理函数strcpy和streat,执行完strcpy(a+1,b+2);后,a变为a2,执行完strcat(a,c+1)后,a变为a2yz,所以答案为C选项。

  • 第18题:

    窗体上有一个名称为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个参数求和,不会报错。

  • 第19题:

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

    A.A

    B.B

    C.C

    D.D


    正确答案:B
    本题考查C语言函数指针的基础知识。仔细阅读程序,正确理解函数指针并将参数正确代入函数,可得到y=9,y2=9y3=27,y4=27的结果。

  • 第20题:

    ●以下关于程序的叙述中,错误的是__(30) 。

    (30)

    A.有编译错误的程序一定包含着错误

    B.运行结果正确的程序也可能含有错误

    C.调用了未定义的函数会产生链接错误

    D.调用了未定义的函数会发生运行异常


    正确答案:D

  • 第21题:

    C程序的main函数可以有参数,但参数不能是指针类型。


    正确答案:错误

  • 第22题:

    在VB编程中,我们使用函数与过程是为了()。

    • A、使程序模块化
    • B、使程序易于阅读
    • C、提高程序运行速度
    • D、便于系统的编译

    正确答案:A

  • 第23题:

    问答题
    C++程序设计语言中虚函数指针和虚函数表的作用?

    正确答案: C++编译器为每个“内含虚拟函数的类”建立一个虚拟函数表(vtablE.,表中每一个指针元素指向一个虚拟函数的地址,编译器为类加上一个成员变量vptr,vptr是一个指向虚拟函数表的指针。每一个派生类的对象,都有一个vptr,对象调用虚拟函数就是通过vptr找到虚拟函数表,再找到虚拟函数的真正地址。虚拟函数表的内容是依据类中的虚拟函数声明次序一一填入函数指针。派生类继承基类的虚拟函数表,派生类中改写虚拟函数,虚拟函数表中元素所指的函数地址不再是基类的函数地址,而是派生类的函数地址。包含虚拟函数的类通过vptr指针和虚拟函数表可以在程序运行时依据指针实际指向的对象调用对应的虚拟函数,从而实现多态(Polymorphism)。为了达到动态绑定的目的,虚拟函数是了解多态(Polymorphism)以及动态绑定的关键,同时也是了解如何使用MFC的关键。
    解析: 暂无解析

  • 第24题:

    单选题
    在VB编程中,我们使用函数与过程是为了()。
    A

    使程序模块化

    B

    使程序易于阅读

    C

    提高程序运行速度

    D

    便于系统的编译


    正确答案: B
    解析: 暂无解析