niusouti.com

有以下程序 fun(int x,int y){return(x+y);} main() { int a=1,b=2,c=3,sum; sum=fun((a++,b++,a+b),c++); printf("%d\n",sum); }A.6B.7C.8D.9

题目

有以下程序 fun(int x,int y){return(x+y);} main() { int a=1,b=2,c=3,sum; sum=fun((a++,b++,a+b),c++); printf("%d\n",sum); }

A.6

B.7

C.8

D.9


相似考题
更多“有以下程序 fun(int x,int y){return(x+y);} main() { int a=1,b=2,c=3 ”相关问题
  • 第1题:

    有以下程序 float fun(int x,int y) {return(x+y);} main() { int a=2,b=5,c=8; printf(“%3.Of\n”,fun((int)fun(a+c,b),a-c)); } 程序运行后的输出结果是

    A.编译出错

    B.9

    C.21

    D.9


    正确答案:B
    解析:fun()函数是将传进来的两个整型参数相加,把和作为函数值返回,注意返回值为float型。在主函数调用了两次fun()函数,第一次调用时把表达式“a+c”和变量“b”的值求和,得到15转换为15.0作为函数的返回值。第二次调用把第一次调用的返回值通过强制类型转换成int型15,再和表达式“a-c”相加,得到结果9,转换成float型作为函数值返回。由于输出格式符为“%3.of输出时没有小数位,故输出为9。

  • 第2题:

    以下程序执行后的输出结果是includeusing namcspace std;void try(int,int,int,int);

    以下程序执行后的输出结果是 #include<iostream> using namcspace std; void try(int,int,int,int); int main() { int x,y,z,r; x=1; y=2; try(x,y,z,r); cout<<r<<end1; return 0; } void try(int x,int y, int z,int r) { z = x+y; x = x*x; y = y*y; r = z+x+y; }

    A.18

    B.9

    C.10

    D.不确定


    正确答案:D
    解析:本题考核函数调用(参数的传递)。本题常见的错误解答是:把x=1,y=2代入到函数try中,逐步计算出r=8。最后得到r的输出值是8。以下是正确解答,根据程序逐步分析:程序中定义了一个名为try的void型函数,即函数try没有任何返回值。而try函数在main函数中是以一条独立语句的方式被调用的,且main函数最后输出变量r的值。但在main函数中,并没有对变量r赋值。在C++语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以虽然在函数try中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第3题:

    有以下程序 float fun(int x, int y){ return{x+ y); }main(){ int a=2,b=5,c=8; printf("%3.of\n",fun((int)fun(a+ c, B) ,a-C) );} 程序运行后的输出结果是

    A.编译出错

    B.9

    C.21

    D.9


    正确答案:B
    解析:本题考查的知识点是函数的参数类型、函数值类型及函数调用.fun()函数是将传进来的两个整型参数相加,把和作为函数值返回,.注意返回值为float型.在主函数调用了两次fun()函数,第一次调用时把表达式“a+c”和变量“b”的值求和,得到15转换为15.0作为函数的返回值。第二次调用把第一次调用的返回值通过强制类型转换成int型15,再和表达式“a-c”相加,得到结果9,转换成float型作为函数值返回。由于输出格式符为“%3.0f”输出时没有小数位,故输出为9.所以4个选项中B正确。

  • 第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题:

    有以下程序: float fun(int x,int y) {return(x+y);} main( ) { int a=2,b=5,c=8; printf("%3.Of\n",fun( (int)fun(a+c,b),a-c) ); } 程序运行后的输出结果是

    A.编译出错

    B.9

    C.21

    D.9


    正确答案:B
    解析:对于float或double类型的实型数据可以用“整数1,整数2”的形式在指定宽度(整数1)的同时来指定小数位的位数(整数2)。

  • 第6题:

    有以下程序 include floatfun(int x,int y) {return(x+y);}void main() {int a=2,b

    有以下程序 #include<iostream.h> floatfun(int x,int y) {return(x+y);} void main() {int a=2,b=5,c=8; tout<<fun((int)fun(a+c,b),a-C);} 程序运行后的输出结果是

    A.编译出错

    B.9

    C.21

    D.9


    正确答案:B
    解析:本题的运算过程是fun((int)fun(a+c,b),a-c),fun((int)fun(10,5),2-8),fun((int)15.000000,-6),thn(15,-6)=9。