niusouti.com
更多“有以下程序:int add(int a,intB){return(a+B);}main(){int k,(*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题:

    主程序中定义了变量int x=3,y=4;调用函数f(x,&y)后,x,y都等于3,则调用的是以下函数()

    A.f(int *a, int b){ *a++; b--;}

    B.f(int *a, int b) { (*a)++; b--;}

    C.f(int a, int *b){ a++; (*b)--;}

    D.f(int *a, int *b) { a++; *b--;}


    D 一维数组定义和初始化是允许省略行下标,不允许省略列下标。

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

    有以下程序:includeint fun(int*k){int b=0;b=*k+b:return(B);}main(){int a[10]={1,2

    有以下程序: #include<stdio.h> int fun(int*k) {int b=0; b=*k+b: return(B);} main() {int a[10]={1,2,3,4,5,6,7,8},i; for(i=2;i<4;i++){printf("%d",fun(&a[i]));} printf("\n"); } 程序运行后的输出结果是( )。

    A.10 12

    B.8 10

    C.3 4

    D.10 28


    正确答案:C