中国大学慕课第9周测验

1单选(1分)

​声明语句int (*p)();的含义是________。

  • A.以上都不对

  • B.p是一个指向一维数组的指针变量

  • C.p是指针变量,指向一个整型数据

  • D.p是一个指向函数的指针,该函数的返回值是一个整型

正确答案:D

2单选(1分)

​声明语句int *f();中f的含义是________。

  • A.一个用于指向整型数据的指针变量

  • B.一个用于指向一维数组的行指针

  • C.一个用于指向函数的指针变量

  • D.一个返回值为指针类型的函数名

正确答案:D

3单选(1分)

‌给出下面程序的运行结果。

#include <stdio.h>

int main(void)

{    static int x[]  =  {1,2,3};

    int  s = 1, i, *p = x;

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

    {         s*= *(p + i);

    }

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

    return 0;

}

  • A.3

  • B.5

  • C.6

  • D.4

正确答案:C

4单选(1分)

​从键盘任意输入10个整数,计算并输出最大值和最小值及其它们在数组中的下标位置。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。

​程序运行结果示例1:

​Input 10 numbers:1 2 3 4 5 6 7 8 9 10

​max=10,pos=9

​min=1,pos=0

​程序运行结果示例2:

​Input 10 numbers:2 4 5 6 8 10 1 3 5 7 9

​max=10,pos=5

​min=1,pos=6

#include <stdio.h>

int FindMax(int a[], int n, int *pMaxPos); int FindMin(int a[], int n, int *pMinPos);

int main()

{     int a[10], maxValue, maxPos, minValue, minPos, i;     printf("Input 10 numbers:");

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

    {      scanf("%d", &a[i]);             // 输入10个数     }

    maxValue = FindMax(a, 10, _________);  // 找最大值及其所在下标位置     minValue = FindMin(a, 10, _________);  // 找最小值及其所在下标位置     printf("max=%d,pos=%d\n", maxValue, maxPos);     printf("min=%d,pos=%d\n", minValue, minPos);

    return 0;

} //函数功能:求有n个元素的整型数组a中的最大值及其所在下标位置,函数返回最大值 int FindMax(int a[], int n, int *pMaxPos)

{    int i, max;

    max = a[0];             //假设a[0]为最大值     __________;           //假设最大值在数组中的下标位置为0          for (i=1; i<n; i++)

    {    if (a[i] > max)

        {    max = a[i];             __________;     //pMaxPos指向最大值数组元素的下标位置         }

    }

    return max ;

} //函数功能:求有n个元素的整型数组a中的最小值及其所在下标位置,函数返回最小值 int FindMin(int a[], int n, int *pMinPos)

{    int i, min;

    min = a[0];              //假设a[0]为最小     __________;            //假设最小值在数组中的下标位置为0          for (i=1; i<10; i++)

    {    if (a[i] < min)

        {    min = a[i];

            __________;  //pMinPos指向最小值数组元素的下标位置         }

    }

    return min ;

}

  • A.第13行:maxPos

    第14行:minPos

    第25行:pMaxPos = 0

    第32行:pMaxPos = i

    第43行:pMinPos = 0

    第50行:pMinPos = i

  • B.第13行:&maxPos

    第14行:&minPos

    第25行:*pMaxPos = 0

    第32行:*pMaxPos = i

    第43行:*pMinPos = 0

    第50行:*pMinPos = i

    1.00/1.00

  • C.第13行:&maxPos

    第14行:&minPos

    第25行:pMaxPos = 0

    第32行:pMaxPos = i

    第43行:*pMinPos = 0

    第50行:*pMinPos = i

  • D.第13行:maxPos

    第14行:minPos

    第25行:pMaxPos = 0

    第32行:*pMaxPos = i

    第43行:pMinPos = 0

    第50行:*pMinPos = i

正确答案:B

5单选(1分)

‏采用梯形法编程实现在积分区间[a,b]内计算下面两个函数的定积分。

‏按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。

‏程序运行结果示例:

‏y1=1.333350

‏y2=1.151212

#include <stdio.h>

float Fun1(float x);

float Fun2(float x);

float Integral(float (*f)(float), float a, float b);

int main()

{    float y1, y2;

    y1 = Integral(Fun1, 0.0, 1.0);

    y2 = Integral(Fun2, 0.0, 3.0);

    printf("y1=%f\ny2=%f\n", y1, y2);

    return 0; } /*  函数功能:计算函数1+x*x的函数值 */

float Fun1(float x)

{     return  1 + x * x;

} /*  函数功能:计算函数x/(1+x*x)的函数值 */

float Fun2(float x)

{     return x / (1 + x * x);

} /*    函数功能:用梯形法计算函数的定积分 */

float Integral(float (*f)(float), float a, float b)

{    float s, h;

    int n = 100, i;

    s = __________;

    h = __________;

    for (i=1; i<n; i++)

    {        s += __________;

    }

    return __________;

}

  • A.第31行:(*f)(a+b) / 2

    第32行:(b - a) / n

    第36行:(*f)(a + i * h)

    第38行:s 

  • B.第31行:(*f)(a+b) / 2

    第32行:(a - b) / n

    第36行:*f(a + i * h)

    第38行:s

  • C.第31行:((*f)(a) + (*f)(b)) / 2

    第32行:(a - b) / n

    第36行:*f(a + i * h)

    第38行:s * h

  • D.第31行:((*f)(a) + (*f)(b)) / 2

    第32行:(b - a) / n

    第36行:(*f)(a + i * h)

    第38行:s * h

正确答案:D

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值