有程序:INTEGERPP=0DO10I=0,10,3DO10J=5,100,20DO10K=-10,-5,-110P=

题目
单选题
有程序:INTEGERPP=0DO10I=0,10,3DO10J=5,100,20DO10K=-10,-5,-110P=P+1WRITE(*,*)PEND此程序的运行结果是:()
A

0

B

24

C

120

D

144

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第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]={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。

第2题:

有以下程序

#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数组元素的值。

第3题:

有程序段 for i:=1 to 10 do begin j:=i mod 4; case j of 0:x:‘a‘; 1:x:=‘b‘; 2:x:=‘c‘; 3:x:=‘d‘ end; end; for i:=1 to 10 do write(x:1); writeln; 输出应为( )。

Abcdabcdabc

Babcdabcdab

Ccdabcdabcd

Ddabcdabcda


正确答案:A

第4题:

阅读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

第5题:

以下程序的输出结果是 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.23345

C.35745

D.12345


正确答案:C
解析:本题考查了通过数组首地址引用数组元素的方法。第一次执行fun(a)后,a[0]=3,a[1]=5。第二次执行fun(a)时,因为static变量j保存着上次执行时的值为2,所以a[2]=7,最后数组a={3,5,7,4,5}。故正确答案为选项C)。

第6题:

请读程序: 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

第7题:

当执行以下程序后,i的值是5,j的值是4,k的值是【 】。

int a, b, c, d, i, j, k;

a=10; b=c=d=5; i=j=k=0;

for(;a>b; ++b) i++;

while(a>++c) j++;

do {

k++;

}while(a>d++);


正确答案:6
6

第8题:

以下程序的输出结果是( )。 include main() {int i=10,j=0; do {j=j+i; i--; }while(i>5

以下程序的输出结果是( )。 include<stdio.h> main() {int i=10,j=0; do {j=j+i; i--; }while(i>5); printf("%d\n",j); }


正确答案:40
40 解析:分析程序,初始时i=10,j=0,这时do循环中的“i=j+i”

第9题:

阅读下列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

第10题:

阅读下列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
解析:

更多相关问题