有以下程序:include float f1 (float n ){return n*n;}float f2 ( float n){return 2有以下程序:#include <stdio.h>float f1 (float n ){ return n*n;}float f2 ( float n){ return 2 * n;}main( ){ float ( * p1)(float),( * p2)(float),(*t)(float) ,y1,y2; p1 = f1;p2 = f2; y1 = p2

题目
有以下程序:include float f1 (float n ){return n*n;}float f2 ( float n){return 2

有以下程序:#include <stdio.h>float f1 (float n ){ return n*n;}float f2 ( float n){ return 2 * n;}main( ){ float ( * p1)(float),( * p2)(float),(*t)(float) ,y1,y2; p1 = f1;p2 = f2; y1 = p2(p1(2.0) ); t =p1;p1 = p2;p2 =t; y2=p2(p1(2.0)); prinff("% 3.0f, %3.Of\n" ,y1,y2);}程序运行后的输出结果是( )。

A.8,16

B.8,8

C.16,16

D.4,8


相似考题
更多“有以下程序:#include <stdio.h>float f1 (float n ){return n*n;}float f2 ( float n){return 2 ”相关问题
  • 第1题:

    有以下程序includevoid fun(float* p1,int n1,float,*p2,int n2,float* s){ int i;s=(

    有以下程序 #include<stdio.h> void fun(float * p1,int n1,float,*p2,int n2,float * s) { int i; s=(float *)calloc(1,sizeof(float)); *s=0; for(i=0;i<n1;i++) *s+=*p1++; for(i=0;i<n2;i++) *s+=*p2++; } main() { float a[2]={1.1,2.2},b[3]={10.0,20.0,30.0),*s=a; fun(a,2,b,3,s); printf("%f\n",*s); } 上面程序的输出结果是( )

    A.60

    B.3.3

    C.63.3

    D.1.1


    正确答案:D

  • 第2题:

    有以下程序 include using namespace std; long fib(int n) { if(n>2) return(fib(n-1

    有以下程序

    include<iostream>

    using namespace std;

    long fib(int n)

    {

    if(n>2)

    return(fib(n-1)+fib(n-2));

    else

    return 2;

    }

    int main( )

    {

    cout<<fib(3)<<endl;

    return 0;

    }

    则该程序的输出结果应该是______。


    正确答案:4
    4 解析:本题主要考查C++中递归函数,主函数通过调用fib( )函数,fib( )函数的内部再通过一个分支结构判断是否进行递归调用或退出递归调用,调用方式为直接递归调用。主函数通过实参将值3赋给fib( )函数的形参n,由于n=3满足if分支语句条件,因此函数进行递归调用,即计算 fib(2)和fib(1)的值;将2赋给fib( )函数的形参后,由于n=2不满足if语句条件,因此程序退出递归,返回2;将1赋给fib( )函数的形参后,函数同样返回2。因此函数递归调用的最终结果为返回2 +2=4,即fib(3)=4,程序最后输出值为4。

  • 第3题:

    6、以下四个程序中,完全正确的是()。

    A.#include <stdio.h> int main(); { /*programming*/ printf("programming!\n"); return 0; }

    B.#include <stdio.h> int main() { /*programming*/ printf("programming!\n"); return 0; }

    C.include <stdio.h> void main() { /*programming*/ printf("programming!\n"); return 0; }

    D.#include <stdio.h> int mian() { /*programming*/ printf("programming!\n"); return 0; }


    C

  • 第4题:

    以下程序的输出结果是 void fun(float*p1,float*p2,float*s) { s=(float*)calloc(1,sizeof(float)); *s=*p1+*p2++;} main() { float a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a; fun(a,b,s); printf("%5.2f\n",*s);}

    A.11.1

    B.12

    C.21.1

    D.1.1


    正确答案:D
    解析:本题主要考查了一维数组名用作函数实参进行的运算,数组名作实参相当于传递的是地址,这样在函数中对形参进行的操作可以影响到实参。

  • 第5题:

    以下四个程序中,完全正确的是()。

    A.#include <stdio.h> int main(); { /*programming*/ printf("programming!n"); return 0; }

    B.#include <stdio.h> int main() { /*programming*/ printf("programming!n"); return 0; }

    C.include <stdio.h> void main() { /*programming*/ printf("programming!n"); return 0; }

    D.#include <stdio.h> int mian() { /*programming*/ printf("programming!n"); return 0; }


    B 在选项A中,main()函数后面的分号是错误的,C语言在函数名后而不能有分号。在C语言中注释内容必须放在”/’和”+/”之间,”/”和”*/”必须成对出现,按语法规定在注释之间不可以再嵌套”/∥’和”+/”。在选项C的程序段中注释语句之间有嵌套;所以选项C不正确。C语言用#inc1ude命令行来实现文件包含的功能。#inc1ude命令行的形式为:#inc1ude”文件名”,所以存选项D中inc1ude前面少了一个#符号,因而选项D不正确。