参考答案和解析
正确答案:
8
更多“阅读下面程序,则程序的执行结果为【19】。 #include"stdio.h" fun(intk,int*p) {inta,b; i ”相关问题
  • 第1题:

    阅读下面程序,则执行后的结果为#include "stdio.h"fun1(){ int k=20; return k; }fun2(){ int a=15; return a; }fun3(int a,int b){ int k; k=(a-b)*(a+b); printf("%d\n",k);}main(){ un3(fun1(),fun2());}A.0 B.184 C.175 D.编译不通过


    正确答案:C
    本题主要考查函数的嵌套调用。在本题中,程序首先定义了三个子程序即函数fun1、函数fun2和函数fun3。
    从程序中可以看出,函数fun1和函数fun2都很简单,分别定义一个整型变量,并赋初值,然后返回这个变量。
    在函数fun3中,函数带有两个形参,然后定义一个整型变量k来保存(a-b)*(a+b)运算的结果,最后输出k的值。
    在主函数中,直接调用函数fun3,调用该函数的同时调用函数fun1和fun2,用函数fun1和fun2的返回值作为函数fun3的形参,此时形参a和b的值分别是20和15。执行(a-b)*(a+b);语句结果为5*35=175,将该结构保存至变量k中,因此,本题程序的最终输出结果是175,正确答案选C。

  • 第2题:

    有以下程序 include include int fun(int n) {int *

    有以下程序 #include <stdio.h> #include <stdlib.h> int fun(int n) {int *p; p=(int*)malloc(sizeof(int)); *p=n; return *p; } { int a; a=fun(10); printf("%d\n",a+fun(10)); } 程序的运行结果是______。

    A.0

    B.10

    C.20

    D.出错


    正确答案:C
    解析:malloc(sizeof(int))的作用是开辟一个长度为sizeof(int)存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了—个整型的指针变量p。然后执行语句“*p=n”,使得*p的值为10,并通过返回此值,在主函数中输出a+10的值,即输出20。

  • 第3题:

    现有如下程序段

    #include "stdio.h"

    int *fun(int *a,int *b)

    {int c;

    c=*a%*b;

    return &c;}

    main()

    {int a=5,b=19,*c;

    c=fun(&a,&b);

    printf("%d\n",++*c);}

    则程序段执行后的结果为

    A.8

    B.7

    C.6

    D.5


    正确答案:C

  • 第4题:

    下面程序的运行结果是( )。include main(){int a=25; fun(&A); }fun(int *x){ print

    下面程序的运行结果是( )。

    include<stdio.h>

    main()

    {int a=25;

    fun(&A);

    }

    fun(int *x)

    { printf("%d\n",++*x);

    }


    正确答案:26
    26 解析:在主函数中只调用了fun函数,调用时把变量a的地址传递给形参。fun函数的形参x是一个指针,其基类型与主函数中a的类型一致,因此在调用时得到的是a的地址,输出项是++*x,*x代表的就是主函数中变量a的存储单元,++*x就是使主函数中a的值加1,输出26。

  • 第5题:

    下面程序的运行结果是#include "stdio.h" void fun(int k,int *p) { int a,b; if(k==1|| k==2) *p=1; else { fun(k-1,&a); fun(k-2,&b); *p=a+b; } }main(){ int x; fun(6,&x); printf("%d\n",x);}


    正确答案:8
    本题主要考查函数的递归调用。在本题中,程序首先定义了一个无返回类型的fun函数,该函数带有一个整型变量的形参和一个指针型的变量形参。从函数体中我们可以看出,该递归函数的出口是形参k的值等于1或2,如果运行到函数出口,则指针变量形参p的值等1。
    在主函数中,首先定义了一个整型变量x,然后调用fun函数,传递的实参分别为6和变量x的地址,然后程序运行fun函数,在fun函数中,首先定义了两个整型变量a和b,然后判断形参变量k的值是否到达函数出口,这时,k的值为6,没有到达出口,然后程序分别递归执行fun(5,&a)和fun(4,&b)。从程序中可以看出,p的值为分别调用两个函数的p值的和。
    首先执行fun(5,&a)时,k=5,没有到达出口,又进行一次递归,分别执行fun(4,&a)和fun(3,&b),由于都没达到出口,分别执行fun(3,&a)和fun(2,&b),fun(2,&a)和fun(1,&b),由于fun(2,&a)和fun(1,&b)返回的p值都为1,那么fun(3,&a)返回p的值为2,fun(4,&a)返回的p值就等于fun(3,&a)和fun(2,&b)之和,为3,同理可以得出fun(5,&a)返回的p值为5,fun(6,&a)返回的p值为8。因此,最后题目要求输出的结果为8。