中国大学慕课第七周练兵区——单选题——不计入总分

1单选(1分)

‏写出下面程序的运行结果

#include <stdio.h>

void Bin(int x)

{     if (x/2 > 0) Bin(x/2);

      printf("%d\n", x%2);

}

int main()

{    

    Bin(12);

   return 0;

  • A.6

        3

       1

       1

  • B.6

       3

       1

       0

  • C.1

        1 

        0

        0

  • D.0

        0

        1

        1

  • 答案:C

2单选(1分)

子函数Incre()的功能是,利用静态变量,使子函数的输出值能够随调用次数的增加依次为:

第1次调用,输出:

的结果

第2次调用,输出:

的结果

第3次调用,输出:

的结果

.....

在下面的程序中,对子函数Incre()进行了两次调用,若使程序的输出结果是:

2‎

6

请补充完整空白处缺少的代码。

#include <stdio.h>

int x=3;

void Incre();

int main()

{     

       int i;

      for (i=1;_______;i++)

          Incre();

       return 0;

}

void Incre()

{        ___________;

         x*=x+1;

         printf("%d\n",x);

}

  • A.第7行:   i<x

    第13行:  static int x=1

  • B.第7行:   i<=x

    第13行:  int x=0

  • C.第7行:   i<=x

    第13行:  static int x=0

  • D.第7行:   i<x

    第13行:  int x=1

  • 答案:A

3单选(1分)

函数Sum(int n)是用递归方法计算下面的公式,请补充程序中缺少的内容。

int Sum(int n)

{     if (n <= 0) 

         printf("data error\n");                       if (n == 1)________________;

    else return ____________________; }

  • A.第4行: return 1

    第5行: n+Sum(n-1)

  • B.第4行: return 1

    第5行: Sum(n-1)

  • C.第4行: return 0

    第5行: Sum(n)

  • D.第4行: return 0

    第5行: Sum(n-1)

  • 答案:A

4单选(1分)

‏程序运行后的输出结果是

#include <stdio.h>

int Fun(int n)

{   if (n==1) return 1;

    else return Fun(n-1)+1;

}

int main()

{    int i,j=0;

     for(i=1;i<3;i++) j+=Fun(i);

    printf("%d\n",j);

    return 0;

}

  • A.3

  • B.1

  • C.2

  • D.4

  • 答案:A

5单选(1分)

‌以下程序运行后的输出结果是

#include <stdio.h>

float Fun(int x,int y)

{     return(x+y);

}

int main()

{    int a=2,b=5,c=8;

    printf("%3.0f\n",Fun((int)Fun(a+c,b),a-c));

    return 0;

}

  • A.9.0

  • B.9

  • C.21

  • D.编译出错

  • 答案:B

6单选(1分)

下面程序是用辗转相除法计算两个正整数的最大公约数递归求解方法。请将程序补充完整。

提示:辗转相除法的基本思路是,对正整数a和b,连续进行求余运算,直到余数为0为止,此时非0的除数就是最大公约数。设r=a mod b表示a除以b的余数,若r≠0,则将b作为新的a,r作为新的b,重复a mod b运算,直到r=0时为止,此时b为所求的最大公约数。例如,50和15的最大公约数的求解过程可表示为:Gcd(50, 15)=Gcd(15, 5)=Gcd(5, 0)=5。

int Gcd(int a, int b)

{     if (a%b == 0)    return b;

       else     return ____________________;

}

  • A.Gcd(a, b%a)

  • B.Gcd(b, a%b)

  • C.Gcd(a%b, b)

  • D.Gcd(b%a, a)

  • 答案:B

7单选(1分)

​子函数Fun(char x , char y)的功能是对任意两个字符x和y,如果x为真,则函数返回y的值,否则返回x的值。若使以下程序运行后的输出结果是7,请补充完整空白处缺少的代码。

#include <stdio.h>

char Fun(char x , char y)

{    if(__________) return y;

    else return x;

}

int main( )

{    char a='9',b='8',c='7';

    printf("____",Fun(_______________));

    return 0;  

}

  • A.第4行: x==0

    第11行:%c

            Fun(b,a),Fun(c,b)

  • B.第4行: x!=0

    第11行:%d

            Fun(c,b),Fun(b,a)

  • C.第4行: x=0

    第11行:%d

            Fun(b,c),Fun(a,b)

  • D.第4行: x

    第11行:%c

            Fun(a,b),Fun(b,c)

  • 答案:D

8单选(1分)

‏下列说法正确的是

  • A.形参也是局部变量,形参变量和实参变量的作用域是不同的,因此形参变量和实参变量同名时,二者互不干扰。

  • B.用extern声明变量为外部变量的时候,编译器是对其分配内存的。

  • C.函数既可以嵌套定义,也可以嵌套调用。

  • D.静态局部变量和静态全局变量的生存期和作用域都是相同的。

  • 答案:A

9单选(1分)

‏以下程序的输出结果是 

#include <stdio.h>

int Func();

int i=10;

int main()

{    int j=1;

    j=Func();

    printf("%d,",j);

    j=Func();

    printf("%d",j);

    return 0;

}

int Func()

{   

    int k=0;

    k=k+i;

    i=i+10;

    return(k);

 }

  • A.0,0

  • B.10,10

  • C.20,20

  • D.10,20

  • 答案:D

10单选(1分)

​请给出程序的运行结果

#include <stdio.h>

int Fun(int m)

{    static int n = 0;

    m /= 2;

    m = m * 2;

    if (m)

    {    n *= m;

        return(Fun(m - 2));

    }

    else

          return n;

}

int main()

{    int a, i;

    for (i = 0; i < 2; i++)

    {   a = Fun(4 + i);

        printf("%d\n", a);

    }

    return 0;

}

  • A.8

       8

  • B.0

       0

  • C.64

        64

  • D.4

        4

  • 答案:B

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值