单选题有程序:INTEGERM(5,5)L=0DO40J=1,5DO40K=1,5M(J,K)=K40CONTINUEDO10I=1,5N=1IF(MOD(I,2).EQ.0)N=2DO10J=N,5,2L=L+M(I,J)10CONTINUEWRITE(*,20)L20FORMAT(2X,‘L=’,I3)END此程序运行的结果为:()A L=36B L=39C L=54D L=42

题目
单选题
有程序:INTEGERM(5,5)L=0DO40J=1,5DO40K=1,5M(J,K)=K40CONTINUEDO10I=1,5N=1IF(MOD(I,2).EQ.0)N=2DO10J=N,5,2L=L+M(I,J)10CONTINUEWRITE(*,20)L20FORMAT(2X,‘L=’,I3)END此程序运行的结果为:()
A

L=36

B

L=39

C

L=54

D

L=42


相似考题
参考答案和解析
正确答案: C
解析: 程序运行时利用双重循环为K数组提供数据。当I能被2整除时,N=2,否则N=1,利用L=L+M(I,J)进行数据累加,最终结果应为39。
更多“有程序:INTEGERM(5,5)L=0DO40J=1,5DO40K=1,5M(J,K)=K40CONTINUEDO10”相关问题
  • 第1题:

    有以下程序: #include<stdio.h> void fun(int*s) { static int i=0; do{s[J]=s[J]+s[j+I];}while(++j<2); } main( ) { int k.a[l0]={1,2,3,4,5}; for(k=1;k<3;k++)fun(a); for(k=0;k<5;k++)pfintf("%d",a[k]); printf("\n"); } 程序运行后的输出结果是( )。

    A.12345

    B.23445

    C.34756

    D.35745


    正确答案:D
    本题考查静态变量,静态变量有储存已经操作过的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案选择D。

  • 第2题:

    下列程序的输出结果是【 】。

    include<iostream>

    using namespace std;

    class Base{

    public:

    int m,n;

    Base(int i,int j):m(i),n(j){}

    };

    class Derived:public Base{

    public:

    int m,k,;

    Derived(int i,int j):Base(i,j),m(i+1),k(j+1){}

    };

    int main(){

    Derived d(1,5);

    cout<<d.m<<d.k<<d.n;

    return 0;

    }


    正确答案:265
    265 解析:本题主要考查对基类与派生类的重名成员的掌握。如果在派生类中定义了与基类同名数据成员,那么在派生类中对重名成员访问时,屏蔽基类的同名成员。如果要在派生类中使用基类的同名成员,可以显式地使用作用域运算符指定:类名::成员。

  • 第3题:

    请读程序: include void fun(int * s) { static int j=0; do s[j]+=s[j+1]

    请读程序: # include<stdio.h> void fun(int * s) { static int j=0; do s[j]+=s[j+1] while( + + j<2); } main( ) { int k,a[10]={l,2,3,4,5}; for(k=l;k<3;k+ +)fun(a); for(k=0;k<5;k++)prinf("%d",a[k]); } 上面程序的输出结果是 ( )

    A.34756

    B.23445

    C.35745

    D.12345


    正确答案:C

  • 第4题:

    有下列程序: fun(int x,int y) { static int m=0,i=2; i+=++rn;m=i x y;return m; } main { int j=l,m=1,k; k=fun(j,m);printf("%d,",k); k=fun(j.m);printf(”%d\n”,k); } 执行后的输出结果是( )。

    A.5.5

    B.5,11

    C.11,11

    D.11,5


    正确答案:B
    变量m和i声明为局部静态变量,因此第1次调用fun函数后,局部静态变量m和i的值为5和3,第l次调用结束时,它们的值不变,第2次调用时,m和i的初始值分别为5和3,在执行“i+=m+1”后,i的值为9,因此,最终m的值为11。

  • 第5题:

    【程序说明】 统计2~M中有多少个素数(只能被1或自身整除的整数称为素数)。

    【程序】

    SET TALK OFF

    CLEAR

    INPUT “M=” TO M

    S=0

    (10)

    IF SS(I)

    S=S+1

    ?? STR (1,5)

    ENDIF

    ENDFOR

    ? STR(5,5)

    SET TALK ON

    FUNC SS

    (11)

    FOR J=2 TO X-1

    (12)

    EXIT

    ENDIF

    ENDFOR

    IF J=X

    RETU .T.

    ELSE

    (13)

    ENDIF

    ENDFUNC

    (10)

    A.DO WHILE I<M

    B.FOR I=2 TO M/2

    C.FOR I=M TO 1 STEP -1

    D.FOR M=I TO 0 STEP-1


    正确答案:C
    解析:主程序中的FOR/ENDFOR 循环用来判定1~M之间有几个素数,并显示输出,IF语句调用SS函数统计个数并输出每个素数。所以第(10)空应填FOR I=M T0 1 STEP -1或FOR I=1 TO M。

  • 第6题:

    阅读下列FORTRAN77程序:
    INTEGER A(4,5)
    DATA A/5*1,5*2,5*3,5*4/
    M=0 DO 10 K=1,4
    10 M=M+A(K,K+1)
    WRITE(*,*)M
    END
    上述程序运行后,输出的M值为( )。

    A.8
    B.9
    C.10
    D.11

    答案:C
    解析:
    A的值为



    K=1时,M=0+A(1,2)=1;K=2时,M=1+A(2,3)=3;依此类推

  • 第7题:

    下面的子程序求一方阵的次对角线上的元素之和。
    SUBROUTINE CDJX(M,N,K)
    DIMENSION M(N,50)
    DO 10 J = 1,N
    K=_
    10 CONTINUE RETURN END
    为了使程序完整,应在_处填入的是:

    A.K+M(J,J)
    B.K+M(J,N+1—J)
    C. K+M(N+J,J)
    D. K+M(N+J,N-J)

    答案:B
    解析:
    (1)方阵是行和列数目相等的矩阵,方阵次对角线指从左下角到右上角的直线。
    (2)N值是由主程序调用子例行子程序时传递过来的。
    (3)子例行子程序定义的两维数组下标上界最大为50。
    (4)方阵的行和列由传递过来的N值决定。
    (5)可以设置N=5,有下列25个数组元素:

  • 第8题:

    阅读下列FORTRAN 程序:
    DIMENSION M(6)
    READ(*,*)M
    DO 10 J=1,6
    DO 10 K=J,6
    IF(M(K).LT.M(J))THEN
    N=M(K)
    M(K)=M(J)
    M(J)=N
    END IF
    10 CONTINUE
    WRITE(*,100)(M(I),I=1,6)
    100 FORMAT(2X,614)
    END
    键盘输入10,7,9,2,1,3;程序运行后的输出结果是:
    (A)1 2 3 7 9 10 (B)10 9 7 3 2 1
    (C)7 9 2 1 3 10 (D)3 1 2 9 7 10


    答案:A
    解析:

  • 第9题:

    有程序:K=0DO10I=1,2DO10J=1,210K=K+I/JWRITE(*,*)KEND此程序的执行结果K值为()

    • A、0
    • B、2
    • C、2.5
    • D、1

    正确答案:B

  • 第10题:

    有程序:K=0DO10I=1,6,2DO10J=1,6,3IF(K.LT.I*J)K=I*J10CONTINUEWRITE(*,*)KEND此程序执行后的输出结果为:()

    • A、18
    • B、30
    • C、25
    • D、36

    正确答案:C

  • 第11题:

    单选题
    有程序:K=0DO10I=1,2DO10J=1,210K=K+I/JWRITE(*,*)KEND此程序的执行结果K值为()
    A

    0

    B

    2

    C

    2.5

    D

    1


    正确答案: B
    解析: 当I=1,J=2时,I/J=0,K为整型变量。

  • 第12题:

    单选题
    有程序:K=0DO10I=1,6,2DO10J=1,6,3IF(K.LT.I*J)K=I*J10CONTINUEWRITE(*,*)KEND此程序执行后的输出结果为:()
    A

    18

    B

    30

    C

    25

    D

    36


    正确答案: D
    解析: 在循环过程中,I的最大取值为5,此时J=5,则K=5×5=25。

  • 第13题:

    有如下程序,该程序的执行结果为______。 Dim k As Integer n=5 m=1 k=1 Do While k <= n m=m*2 k=k+1 Loop Print m

    A.1

    B.5

    C.32

    D.40


    正确答案:C

  • 第14题:

    有以下程序#include <stdio.h>void fun(int s[]){ static int j=0; do s[j]+=s[j+1]; while(++j<2);}main(){ int k,a[10]={1,2,3,4,5}; for(k=1;k<3;k++) fun(a); for(k=0;k<5;k++) printf("%d",a[k]);}程序的运行结果是A.34756 B.23445C.35745 D.12345


    正确答案:C
    在本题中,首先定义了一个fun函数,函数中的形参是一个数组,该函数中首先定义了一个静态整型变量j并赋了初值,注意,静态变量的作用域是整个程序,而非该函数。从该函数的程序段不难看出该函数的作用是通过一个循环求形参数组中相邻两个元素(具体根据j确定)的和,并保存。
    在主函数中,定义了一个数组并赋初值,然后用循环调用fun函数。
    当k=1时,调用fun函数,此时刚开始j的值为0,那么fun函数分别计算数组a中的第一个元素与第二个元素的和与第二个元素与第三个元素的和,并分别保存为数组的第一个元素和第二个元素,结果分别为3和5。
    当k=2时,调用fun函数,此时j的值为2,那么fun函数只计算数组a中的第三个元素与第四个元素的和,并保存为数组的第三个元素,结果为7。
    循环结束,经过该层循环后,数组a中各元素的值分别为3、5、7、4、5,最后用循环输出结果为35745。因此,答案选C。

  • 第15题:

    有以下程序

    #include<stdio.h>

    void fun(int *s)

    { static int j=0;

    do { s[j]=s[j]+s[j+1]; )while(++j<2);

    }

    main( )

    { int k,a[10]={1,2,3,4,5);

    for(k=1;k<3;k++)fun(a);

    for(k=0;k<5;k++)printf(”%d”,a[k]);

    printf("\n");

    }

    程序运行后的输出结果是

    A) 12345

    B)23445

    C)34756

    D) 35745


    正确答案:D
    【答案】D
    【知识点】static变量的使用
    【解析】静态局部变量在函数内定义,它的生存期为整个源程序。第一次k=1调用结束后,s[0]的值为3,s[1]的值为5,j的值为2。当k=2时,继续调用函数fun,此时j的值为2,但是因为do while语句先执行后判断,所以执行了s[2]=s[2]+s[3],所以s[2]的值变成了7。循环结束回到主函数,k的值为3,不满足条件结束循环。最后打印输出a数组元素的值。

  • 第16题:

    有以下程序:include void sort(int L[],int n){ int j, k, flag, temp; flag=n-1;

    有以下程序: #include <iostream.h> void sort(int L[],int n) { int j, k, flag, temp; flag=n-1; while (flag>O) { k=flag-1; flag=O; for (j=O; j<=k; j++) { if(L[j]>L[j+1]) {

    A.123

    B.3210

    C.2130

    D.1230


    正确答案:A
    解析:本题中的函数sort的功能是将输入的数组L,按从小到大的顺序排序,并返回。所以程序最后的输出为0123,即A选项。

  • 第17题:

    阅读下列FORTRAN程序:
    DIMENSION M(6)
    READ(*,*)M
    DO 10 J=l,6 DO 10 K=J,6 IF(M(K)LTM(J))THEN N=M(K)
    M(K)=M(J)
    M(J)=N END IF 10 CONTINUE
    WRITE(*,100)(M(I),I=1,6)
    100 FORMAT(2X,614)
    END
    键盘输入10,7,9,2,1,3;程序运行后的输出结果是:

    A. 1 2 3 7 9 10
    B. 10 9 7 3 2 1
    C. 7 9 2 1 3 10
    D. 3 1 2 9 7 10

    答案:A
    解析:
    数组赋值以后,各数组元素的值为:
    M(1)=10,M(2)=7,M(3)=9,M(4)=2,M(5)=1,M(6)=3。
    当循环一次后M(l)的值就确定下来了,因此不需要再做下去。
    答案:A

  • 第18题:

    阅读FORTRAN程序:
    READC*,*)I,J,K DO 10 N=l,2 I=I+J+K J=I+K+J K=I+J+K 10 CONTINUE
    WRITE(*,20)I,J,K 20 FORMAT(2X,315)
    END
    键盘输入1,0,0则程序运行后的输出结果是:

    A. 4 7 13
    B.2 3 4
    C. 1 1 2
    D. 6 9 15

    答案:A
    解析:
    解当N=1时,I=l+0+0==l,J=l+0+0=l,K=l+l+0=2;
    当N=2时,I=l+l+2=4,J=4+2+l=7,K=4+7+2=13。
    答案:A

  • 第19题:

    以下程序求两个整数M,N 的最大公约数:
    SUBROUTINE ZDGUS(M,N)
    K=__________
    DO 10 J=2,K
    IF(MOD(N,J).EQ.0.AND.MOD(M,J).EQ.0)L=J
    10 CONTINUE
    WRITE(*,’(2X,15)’)L
    RETURN
    END
    为了使程序完整,在_____处应填入的是:
    (A)M (B)N
    (C)MIN(M,N) (D)M/N


    答案:C
    解析:

  • 第20题:

    下面的子程序求一方阵的次对角线上的元素之和
    SUBROUTINE CDJX(M,N,K)
    DIMENSION M(N,50)
    DO 10 J=1,N
    K= {pz_填空}
    10 CONTINUE
    RETURN
    END
    为了使程序完整,应在{pz_填空}处填入的是:
    (A)K+M(J,J)
    (B)K+M(J,N+1-J)
    (C)K+M(N-J,J)
    (D)K+M(N+J,N-J)


    答案:B
    解析:

  • 第21题:

    有程序:INTEGERM(3,3)DATAM/1,2,3,4,5,6,7,8,9/DO10I=1.3DO10J=1,3K=M(I,J)M(I,J)=M(J,I)M(J,I)=K10CONTINUEWRITE(*,100)((M(I,J),J=1,3),I=1,3)100FORMAT(1x,3I2)END此程序执行后的结果为:()

    • A、1;4;7;2;5;8;3;6;9
    • B、1;2;3;4;5;6;7;8;9
    • C、9;6;3;8;5;2;7;4;1
    • D、7;8;9;4;5;6;1;2;3

    正确答案:A

  • 第22题:

    有程序:INTEGERM(5,5)L=0DO40J=1,5DO40K=1,5M(J,K)=K40CONTINUEDO10I=1,5N=1IF(MOD(I,2).EQ.0)N=2DO10J=N,5,2L=L+M(I,J)10CONTINUEWRITE(*,20)L20FORMAT(2X,‘L=’,I3)END此程序运行的结果为:()

    • A、L=36
    • B、L=39
    • C、L=54
    • D、L=42

    正确答案:B

  • 第23题:

    单选题
    有程序:INTEGERM(3,3)DATAM/1,2,3,4,5,6,7,8,9/DO10I=1.3DO10J=1,3K=M(I,J)M(I,J)=M(J,I)M(J,I)=K10CONTINUEWRITE(*,100)((M(I,J),J=1,3),I=1,3)100FORMAT(1x,3I2)END此程序执行后的结果为:()
    A

    1;4;7;2;5;8;3;6;9

    B

    1;2;3;4;5;6;7;8;9

    C

    9;6;3;8;5;2;7;4;1

    D

    7;8;9;4;5;6;1;2;3


    正确答案: A
    解析: 执行完循环语句之后,M(1,1)=1,M(2,1)=2,M(3,1)=3,M(1,2)=4。M(2,2)=5,M(3,2)=6,M(1,3)=7,M(2,3)=8,M(3,3)=9,由于是按隐含循环的形式输出,每行输出3个数据,按行主序输出,故应选答案A。