D)DEFABC(32)某人为计算 n!(0<n<=12)编写了下面的函数过程:Private Function fun(n As Integer) As LongDim p As Longp=1For k=n-1 To 2 Step-1p=p*kNext kfun=pEnd Function在调试时发现该函数过程产生的结果是错误的,程序需要修改。下面的修改方案中有3 种是正确的,错误的方案是( )。A)把 p=1 改为 p=nB)把 For k=n-1 To 2 Step-1 改为 For k=1 To

题目

D)DEFABC

(32)某人为计算 n!(0<n<=12)编写了下面的函数过程:

Private Function fun(n As Integer) As Long

Dim p As Long

p=1

For k=n-1 To 2 Step-1

p=p*k

Next k

fun=p

End Function

在调试时发现该函数过程产生的结果是错误的,程序需要修改。下面的修改方案中有3 种是正确的,错误

的方案是( )。

A)把 p=1 改为 p=n

B)把 For k=n-1 To 2 Step-1 改为 For k=1 To n-1

C)把 For k=n-1 To 2 Step-1 改为 For k=1 To n

D)把 For k=n-1 To 2 Step-1 改为 For k=2 To n


相似考题
更多“D)DEFABC (32)某人为计算 n!(0&lt;n&lt;=12)编写了下面的函数过程: Private Function fun(n As I ”相关问题
  • 第1题:

    某人为计算n!(0<n<=12)编写了下面的函数过程:

    Private Function fun(n As Integer)As Long

    Dim P As Long

    P=1

    For k=n-1 To 2 Step-1

    P=P*k

    Next k

    fun=P

    EndFunction

    在调试时发现该函数过程产生的结果是错误的,程序需要修改。下面的修改方案中有3种是正确的,错误的方案是

    A.把P=1改为P=n

    B.把For k=n-1 To 2 Step-1改为For k=1 To n-l

    C.把For k=n-1 T02 Step-1改为Fork=1 To n

    D.把For k=n-1 To 2 Step-l改为FOr k=2 To n


    正确答案:B
    解析:题f中的错误在于求n!,却少乘了n,选项B也犯了同样的错误,所以答案选B。

  • 第2题:

    请补充函数fun(),该函数的功能是:输出一个N×N矩阵,N由键盘输入,矩阵元素的值为随机数,并计算出该矩阵四周边元素的平均值,结果由函数返回。例如:当N=4时:

    注章:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

    试题程序;

    include<stdio.h>

    include<conio.h>

    include<stdlib.h>

    define N 20

    double fun(int a[ ][N],int n)

    {

    int i,j;

    int k;

    double s=0.0;

    double aver=0.0;

    printf("*****The array*****\n");

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

    {

    for(j=0;j<n;j++)

    {

    a[i][j]=rand()%10;

    printf("%4d",a[i][j]);

    if(【 】)

    s+=a[i][j];

    }

    printf("\n");

    }

    k=【 】;

    aver=【 】;

    return aver;

    }

    main( )

    {

    int a[N][N];

    int n;

    double S;

    Clrscr( );

    printf("*****Input the dimension Of array N*****\n");

    scanf(“%d”,&n);

    S=fun(a,n);

    printf(“***** THE RESULT *****\n”);

    printf(“The average is %2,3f\n”,S);

    }


    正确答案:i==0||i==n-1||j==0||j==n—1 4*n-4 s/k
    i==0||i==n-1||j==0||j==n—1 4*n-4 s/k 解析:第一空:用二维数组表示n×n矩阵时,周边元素是行下标为0或n-1,列下标为0或n-1的元素,判断时四个条件中只要有一个条件满足,则该元素就是周边元素,所以用“厂运算符。第二空:变量k记录周边元素的个数,在四个顶角上的元素会重复加入,所以要减去4。第三空:变量s保存周边元素的累加和,平均值等于周边元素的累加和除以个数。

  • 第3题:

    试题2

    本程序中,函数fun的功能是计算整数n的阶乘。程序中存在若干错误,请找出并改正。(注意:不改动程序的结构,不得增行或删行。)

    #include <stdio.h>

    double fun(int n)

    { double result=1.0;

    while (n>1 && n<170)

    result*=- -n;

    return;

    }

    main()

    { int n;

    clrscr ();

    printf(“Enter an integer:”) ;

    scanf(“%d”,&n);

    printf(“\n\n%d!=%lg\n\n”,n,fun(n)) ;

    nono ();

    {int n,i;

    FILE *rf, *wf ;

    rf = fopen (“g03.in”,“r”) ;

    wf = fopen(“g03.out”,“w”) ;

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

    { fscanf(rf, “%d”,&n) ;

    fprintf (wf, “%lg\n”,fun( n ) );

    }

    fclose (rf) ;

    fclose (wf) ;

    }


    正确答案:
    试题2分析
    **********************
    本题中函数的功能是计算整数n的阶乘,result存放阶乘的结果,result*=- -n;是先将n的值减1,然后在于result相乘,此举并没有将n本身计算进去。最后返回的时候,返回的应该是result。
    试题2答案
    *************************
    [1] 第5行的result*=--n改为result*=n--;[2] 第6行的return后面加上返回值(result)。

  • 第4题:

    请编写一个函数void fun(int a [],int n),其中a为数组,n为数组a的长度。函数fun()的功能是冒泡排序法将数组a元素按从小到大的顺序排列,实现数组a的升序排列。

    注意:部分源程序已存在文件PROC12.cpp中。

    请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句。

    文件PROC12.cpp的内容如下:

    //PROC12. cpp

    include <iostream>

    using namespace std;

    define MAX 100

    void fun(int a[],int n);

    int main ()

    {

    int a[MAX],n,i;

    cout<<"Please enter the array size n:\n";

    do {

    cin>>n;

    if (n>100)

    cout<<"array size flowover! ReEnter a number(0-100)\n";

    }while (n>100);

    cout<<"Enter the array data:\n";

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

    cin>>a [ii;

    fun(a[],n);

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

    cout<<a [i] <<" ";

    cout<<end1;

    return 0;

    }

    void fun(int a[ ],int n)

    {

    // * * * * * * * *

    }


    正确答案:

  • 第5题:

    函数定义为Fun(int&i),变量定义n=100,则下面调用正确的是( )。

    A.Fun(20);

    B.Fun(20+n);

    C.Fun(n);

    D.Fun(&n);


    正确答案:C
    C。【解析】本题考查函数的调用。当函数的参数是引用类型时,参数不能是常量、表达式和变量地址,只能是变量本身。