以下程序的输出结果是 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.34756B.23345C.35745D.12345

题目

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


相似考题
更多“以下程序的输出结果是void fun(int*s){static int j=0;do s[j]+=s[j+1];while(++j<2);}main(){in ”相关问题
  • 第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 using namespace std;void main(){int s;for(int k

    下面程序的输出结果是( )。#include <iostream>using namespace std;void main(){int s;for(int k=2;k<6;k+=2)s=1;for(int j=k; j<6;j++) s+=j;cout<<s<<end1;

    A.9

    B.1

    C.11

    D.10


    正确答案:D

  • 第3题:

    以下程序的输出结果是( )。 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”

  • 第4题:

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

  • 第5题:

    有下列程序: include void fun(int * s,int n1,int n2) { int i,j,

    有下列程序: #include <stdio.h> void fun(int * s,int n1,int n2) { int i,j,t; i=n1;j=n2; while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9);fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]);printf("\n"); } 程序的运行结果是( )。

    A.987654321

    B.4321098765

    C.5678901234

    D.987651234


    正确答案:C
    解析:从题目的主函数入手,定义了一个一维数组并赋韧值,接着调用函数fun(),fun()函数的功能为使数组中的元素逆序,当调用 fun(a,0,3),将实参传递给形参实现数组a中a[0]-a[3]这4个元素逆序;同理调用fun(a,4,9)是将上步排列好的a数组中a[4]-a[9]这6个元素逆序;调用fun(a,0,9)是将数组中a[0]-a[9]这10个元素在逆序,再用printf()函数输出结果为5678901234,故选项C)正确。

  • 第6题:

    阅读以下程序: include void main() { static int a[][3]={9,7,5,3,1,2,4,6,8}; int

    阅读以下程序:

    include<iostream.h>

    void main()

    {

    static int a[][3]={9,7,5,3,1,2,4,6,8};

    int i,j,s1=0,s2=0;

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

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

    {

    if(i==j)s1=sl+a[i][j];

    if(i+j==2)s2=s2+a[i][j];

    }

    cout<<s1<<","<<s2<<endl;

    }

    则该程序的输出结果为【 】。


    正确答案:1810
    18,10

  • 第7题:

    有以下程序:includeinclude"string.h"void fun(char*s[],int n){char*t;int i,j;for(

    有以下程序: #include<stdio.h> #include"string.h" void fun(char*s[],int n) { char*t;int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;} } main() { char*ss[]={"bee","bbcc","xy","aaaacc","aabcc"}; fun(ss,5);printf("%s,%s\n",ss[0],ss[4]); } 程序的运行结果是( )。

    A.xy,aaaacc

    B.aaaacc,xy

    C.bcc,aabcc

    D.aabcc,bcc


    正确答案:A

  • 第8题:

    以下程序的输出结果是()。include Void main(){int a[3][3]= { { 1,2 }, { 3,4 }, {

    以下程序的输出结果是( )。#include <iostream.h>Void main(){ int a[3][3]= { { 1,2 }, { 3,4 }, { 5,6 } }, i, j, s=0; for(i=1;i<3;i++) for(j=0;j<i; j++) s+=a[i][j]; cout<<s<<end1;}

    A.14

    B.19

    C.20

    D.21


    正确答案:A

  • 第9题:

    下面程序的输出结果是( )。 public class Sun { public static void main(String args[]) { int[] a={1,2,3,4); int j=1,s=0; for(int i=3;i>=0;i--) { s=s+a[i]*j; j=j*10; } System.out.println(s); } }

    A.1234

    B.21

    C.43

    D.4321


    正确答案:A
    解析:本题考查对for循环语句和数组的理解。for语句中步长为-1即每循环一次,循环变量i的值减1,数组进行反运算,即a[i]取值4、3、2、1。故本题答案是A。

  • 第10题:

    有以下程序

    #include <stdio.h>

    void fun(int *s,int n1,int n2)

    { int i,j,t;

    i=n1; j=n2;

    while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;}

    }

    main()

    { int a[10]={1,2,3,4,5,6,7,8,9,0},k;

    fun(a,0,3); fun(a,4,9); fun(a,0,9);

    for(k=0;k<l0;k++)printf("%d",a[k]); printf("\n");

    }

    程序的运行结果是

    A.0987654321

    B.4321098765

    C.5678901234

    D.0987651234


    正确答案:C
    解析:函数fun(int *s,int n1,int n2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5,6,7,8,9,0};再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。

  • 第11题:

    有以下程序:int f(int b[][4]){int i, j, s=0;for(j=0; j<4; j++){i=j;if(i>2)i=3-j;S+=b[i][j];

    有以下程序: int f(int b[][4]) { int i, j, s=0; for(j=0; j<4; j++) { i=j; if(i>2)i=3-j; S+=b[i][j]; } return s; } main() { int a[4][4]={{1, 2, 3, 4}, {0, 2, 4, 6}, {3, 6, 9, 12}, {3, 2, 1, 0}}; printf("%d\n", f(a)); } 执行后的输出结果是______。

    A.12

    B.11

    C.18

    D.16


    正确答案:D
    解析:f(a)=a[0][0]+a[1][1]+a[2][2]+a[0][3]=1+2+9+4=16。

  • 第12题:

    单选题
    有以下程序:#include #include void fun(char *s[],int n){ char *t; int i,j; for(i=0;i  for(j=i+1;j   if(strlen(s[i])>strlen(s[j]))   {    t=s[i];    s[i]=s[j];    s[j]=t;   }}main(){ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"}; fun(ss,5); printf("%s,%s",ss[0],ss[4]);}程序的运行结果是(  )。
    A

    xy,aaaacc

    B

    aaaacc,xy

    C

    bcc,aabcc

    D

    aabcc,bcc


    正确答案: B
    解析:
    函数fun的功能:将字符串数组 s中前n个字符串按照字符串的长度由小到大进行排序,要求输出数组的第一个和第五个字符串的内容,答案选择A选项。

  • 第13题:

    阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。

    【说明】

    函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。

    【函数】

    void QuickSort( int A[ ],int s,int t)

    { int i=s,j=t+1,temp;

    int x=A[s];

    do{

    do i ++ ;while (1);

    do j -- ;while(A[j]>x);

    if(i<j){temp=A[i];(2);(3);}

    }while(i<j);

    A[a] =A[j];A[j] =x;

    if(s<i-1) (4);

    if(j+1<t) (5);

    }


    正确答案:(1)A[i]x (2)A[i]=A[j] 3)A[j]=temp (4)QuickSort(Asj-1) (5)QuickSort(Aj+1t);
    (1)A[i]x (2)A[i]=A[j] 3)A[j]=temp (4)QuickSort(A,s,j-1) (5)QuickSort(A,j+1,t); 解析:快速排序的思想是:任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。快速排序是对冒泡排序的一种改进方法,算法中元素的比较和交换是从两端向中间进行的,排序码较大的元素一次就能够交换到后面单元,排序码较小的记录一次就能够交换到前面单元,记录每次移动的距离较远,因而总的比较和移动次数较少。

  • 第14题:

    有以下程序:includeincludevoid fun(char*s[],int n){char*t;int i,j;for(

    有以下程序: #include<stdio.h> #include<string.h> void fun(char*s[],int n) { char*t;int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;} } main() { Char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"}; fun(ss,5);printf("%s,%s\n",ss[0],ss[4]); } 程序的运行结果是( )。

    A.xy,aaaacc

    B.aaaacc,xy

    C.bcc,aabcc

    D.aabcc,bcc


    正确答案:A

  • 第15题:

    有以下程序#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。

  • 第16题:

    请阅读以下程序:includevoid fun(int s[]){static int j=0; dos[j]+=s[j+1]; while(++

    请阅读以下程序: #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.23445

    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)。

  • 第17题:

    有以下程序

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

  • 第18题:

    下面程序的输出结果是()includeusing namespace std;int main(){int s:for(int k=2;k

    下面程序的输出结果是( ) #include<iostream> using namespace std; int main() { int s: for(int k=2;k<6;k+=2){ s=1; for(int j=k, j<6;j++)s+=j; } cout<<s<<end1: }

    A.9

    B.1

    C.11

    D.10


    正确答案:D

  • 第19题:

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

    以下程序运行后的输出结果是【 】。

    include <iostream.h>

    main()

    {

    int i=10,j=0;

    do

    {

    j=j+ i; i--;

    }

    while(i>2);

    cout<<j;

    }


    正确答案:52
    52

  • 第20题:

    有以下程序:struct S{int n;int a[20];};void f(struct S*P){int i,j,t;for(i=0;in-1;i++)fo

    有以下程序: struct S{int n;int a[20];}; void f(struct S*P) { int i,j,t; for(i=0;i<P->n-1;i++) for(j=j+1;j<P->n-1;j++) if(p->a[i]>p->a[j]) {t=P->a[i];p->a[i]=P->a[j];p->a[j]=t} } main() {int i;struct S s{10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i<s.n;i++)printf("%d",s.a[i]);} 程序运行后的输出结果是( )。

    A.3

    B.4

    C.5

    D.6


    正确答案:A
    解析:在主函数main()中定义了一个整型变量i和一个结构体变量s。f()函数中,定义了一个结构体指针类型的指针p,外层循环变量i表示数组的第i个元素,内层循环j表示数组的第i+1个元素,调用f()函数,通过指针变量p来引用结构体成员,并把它们进行从小到大排序,最后输出。

  • 第21题:

    以下程序的输出结果是______。 main () { int x=5,n=3,s,j; for(j=0;j<2;j++) { s=fun(x,n); printf("%d",s); } } fun(int a,int b) { static int n=0,i=2; i=n+1; n=i+a-b; return(n); }

    A.3 7

    B.3 5

    C.3 6

    D.3 3


    正确答案:C

  • 第22题:

    有以下程序includevoidfun(int*s,intn1,intn2){inti,j,t; i=n1j=n2; while(i

    有以下程序 #include <stdio.h> void fun(int *s,int n1,int n2) { int i,j,t; i=n1 j=n2; while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]); printf("\n"); } 程序的运行结果是

    A.987654321

    B.4321098765

    C.5678901234

    D.987651234


    正确答案:C
    解析:函数fun(int *s,int n1,int n2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当 fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5.6,7,8,9,01;再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。

  • 第23题:

    下面程序的输出结果是()。include using namespace std;void main( ){ inta[3][3] ={{

    下面程序的输出结果是( )。 #include <iostream> using namespace std; void main( ) { inta[3][3] ={{1,2},{3,4},{5}}; int s =0; for(int i=1;i<3;i++) for(int j=0;j<=i;j++) s+=a[i][j]; cout<<s<<endl;

    A.12

    B.4

    C.15

    D.13


    正确答案:A
    解析:该程序将第2行的前两个元素和第3行的第1个元素进行累加运算。