更多“有以下程序int add(int a,int b){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;}则以下函数 ”相关问题
  • 第1题:

    有以下程序:includeint a=2;int f(int *a){return (*a) ++;}main(){ int s=0;{ int a=

    有以下程序: #include <stdio.h> int a=2; int f(int *a) { return (*a) ++;} main() { int s=0; { int a=5; s+=f(&a); } s+=f(&a); printf("%d\n",s) } 执行后的输出结果是( )。

    A.10

    B.9

    C.7

    D.8


    正确答案:C
    解析:在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用这些变量。对于main函数中的{inta=5;s+=f(&a);},a只在花括号内有效。在函数之外定义的变量称为外部变量,外部变量是全局变量,它的有效范围是从定义该变量的位置开始到本源文件结束。程序开头的定义inta=2;使a成为全局变量,main函数中第二个s+=f(&a);语句中的a就是这个全局变量。

  • 第2题:

    有以下程序

    int add (int a,int b){return (a+b); }

    main()

    { int k,(*f)(),a=5,b=10;

    f=add;

    }

    则以下函数调用语句错误的是

    A.k=(*f)(a,b);

    B.k=add(a,b);

    C.k=*f(a,b);

    D.k=f(a,b);


    正确答案:C
    解析:本题考查函数的调用。在语句"k=*f(a,b)"中,由于"()"的优先级高于"*",所以"*f(a,b);"表示其返回类型为指针的带有两个整型参数的函数。

  • 第3题:

    以下哪个函数是不正确的(与能否被编译无关)?

    A.int* f(int *p) { int i; return &i; }

    B.int* f(int *p) { return p; }

    C.int* f(int *p) { return (int*)malloc(sizeof(int)); }

    D.int* f(int *p) { return NULL; }


    int* f(int *p) { int i; return &i; }

  • 第4题:

    有以下程序include<stdio.h>int*f(int*p,int*q);main( ){int m=1,n=2,*r=&m;r=f(r,&am

    有以下程序

    include<stdio.h>

    int*f(int*p,int*q);

    main( )

    {int m=1,n=2,*r=&m;

    r=f(r,&n);printf(”%d\n”,*r);

    }

    int-f(int*P,int*q)

    (return(*p>*q)?p:q;)

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


    正确答案:2
    2 解析:函数f的返回值的类型是int*,作用是返回两个int*型指针所指变量中值大的那个指针的。本题中定义了一个int*型指针r并置初值&m,即指针r指向m。r=f(r,&n),由于m的值小于n值,所以f函数返回值为&n,所以输出为2,即n值。

  • 第5题:

    有以下程序 int a=2; int f(int*a) {return(*a) ++;} main() { int s=0; { int a=5; s+=f(&a) ; } s+=f(&a) ; pfintf("%d\n",a) ; } 执行后输出结果是

    A.10

    B.9

    C.7

    D.8


    正确答案:C
    解析:若在函数中定义了与全局变量名字相同局部变量,则全局变量在该函数中将不起作用。本题中定义了一个全局变量a和局部变量a。在主函数中定义一个整型变量s并赋初值为0,接着定义了一个局部变量a并赋值为5,由于该局部变量的和全局变量a同名,故全局变量在复合语句中将不起作用,然后调用函数f(&a) (该函数的作用是返回存储变量a的空间中的值,并让该值加1,分析程序可知返回值为5,并让a值加 1变为6),并将返回值加到s中。此时s的值为5,然后执行该复合语句外的其他语句,同样调用函数f(&a) ,但传递的参数是全局变量a,故其返回值为2,加到s中后s的值变为 7,故最后输出的s的值为7。