有以下程序: #include<stdio.h> int fun {static int x=1; x+=1;return X; } main {int i,S=1; for(i=1;i<=S;i++)s+=fun; printf("%d\n",s); } 程序运行后的输出结果是( )。A.11B.21C.6D.120

题目

有以下程序: #include<stdio.h> int fun {static int x=1; x+=1;return X; } main {int i,S=1; for(i=1;i<=S;i++)s+=fun; printf("%d\n",s); } 程序运行后的输出结果是( )。

A.11

B.21

C.6

D.120


相似考题
更多“有以下程序: #include&lt;stdio.h&gt; int fun {static int x=1; x+=1;return X; } main ”相关问题
  • 第1题:

    有以下程序:int fun1 (double a){ return a * =a;}int fun2 ( double x, double y ){ double a=0,b=0; a = fun1 (x) ;b = fun1 (y); return(int) (a + b);} main() { doublew;w=fun2(1.1,2.0);……} 程序执行后变量w中的值是( )。

    A.5.21

    B.5

    C.5

    D.0


    正确答案:C
    解析:程序调用函数fun2时,通过fun2调用函数fun1,第一次调用fun1返回的值为1,然后将1赋值给a,由于a为double型,系统自动将1转换为1.000000赋给变量a,以此类推可得b的值为4.000000;然后通过return(int)(a+b);将a+b的值强制转换为int型返给主函数,由于w为double型,所以返回的整型值5被转换为double型,故输出结果为5.0。

  • 第2题:

    有以下程序 int fun1(double a){return a*=a;} int fun2(double x,double y) {double a=0,b=0; a=fun1(x);b=fun1(y);return(int)(a+b); } main() {double w;w=fun2(1.1,2.0);…} 程序执行后变量w中的值是

    A.5.21

    B.5

    C.5.0

    D.0.0


    正确答案:C
    解析: 题中变量w的定义为double型,函数 fun2()的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。

  • 第3题:

    有以下程序: int fa(int x) { return x*x; } int fb(int x) { return x*x*x; } int f(int (*f1)(),int (* f2)(),int x) { return (*f2)(x)-(*f1)(x); } main() { int i; i=f(fa,fb,2); printf("%d\n",i); } 程序运行后的输出结果是( )

    A.-4

    B.1

    C.4

    D.8


    正确答案:C

  • 第4题:

    以下程序的输出结果是#include "stdio.h"int *fun(int *a,int *b){ int m; m=*a; m+=*b-3; return(&m);}main(){ int x=21,y=35,*a=&x,*b=&y; int *k; k=fun(a,b); printf("%d\n",*k);}


    正确答案:53
    本题考查指针函数的使用。题目给出的程序包括两个部分,一个为指针函数fun,一个为主函数main。主函数main部分给出两个整型变量x和y,并给出相应的赋值。main函数的执行结果为输出*k的值,而*k的值即*fun的值。fun函数包括两个整型指针形参*a和*b。通过对*a、*b进行操作,得到结果m,并将m值返回,整个程序的实际输出即为m的值。初始时,m=*a=21。随后令m=m+*b-3,得m=53。整个程序的输出结果即为53。

  • 第5题:

    有以下程序 int fun1 (double a){return a*=a;} int fun2 (double x,double y) { double a=0,b=0; a=fun1(x);b=fun1(y); return(int)(a+b); } main() {double w;w=fun2(1.1,2.0);......} 程序执行后变量W中的值是______。

    A.5.21

    B.5

    C.5

    D.0


    正确答案:C
    解析:此题考核的是数值类型的定义与强制转换。本题在进行调用函数fun2()时,又对函数fun1()进行了调用,由于函数 fun1()定义为整型,所以第一次调用fun1()时返回的值为1,然后再将1赋值给a,此时由于a为double型,则系统自动类型转换,将1转换成了1.000000赋值给了变量a,以此类推,得b的值为4.000000,然后诵过“return(int)(a+b);”将a+b的值强制转换为int型5返回给主函数,此时又由w的类型为double,所以返回的整型值5又被转换为double型。故输出结果为5.0。

  • 第6题:

    若下列各选项中所有变量已正确定义,函数fun通过return语句返回一个函数值,以下选项中错误的程序是( )。

    A.main( ) {...... x = fun(2,10);......} float fun(int a, int b){......}

    B.float fun( int a,int b){......} main( ) {......x = fun(i,j);......}

    C.float fun(int, int); main( ) {......x=fun(2,10);......} float fun(iht a, int b){......}

    D.main( ) { float fun(int i, int j); ...... x = fun(i,j);......} float fun(int a,int b) {......}


    正确答案:A
    解析:C语言程序从main函数开始执行,当程序中定义了多个函数时,通常情况下是先定义后调用。若被调用函数定义在主调函数之后,则必须先声明后调用。在选项A)中,先执行main函数,并调用了fun函数,而fun函数在此调用之前无定义也无声明,故无法正常识别调用,所以错误。