以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填空。main(){int i,a[20],sum,count;sum=count=【】;for(i=0; i<20;i++)scanf("%d",【】);for(i=0; i<20;i++) { if(a[i]>0) { count++; sum+=【】; } }printf("sum=%d.count=%d\n",sum,count);}

题目

以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填空。main(){int i,a[20],sum,count;sum=count=【】;for(i=0; i<20;i++)scanf("%d",【】);for(i=0; i<20;i++) { if(a[i]>0) { count++; sum+=【】; } }printf("sum=%d.count=%d\n",sum,count);}


相似考题
参考答案和解析
正确答案:0
&a[i]
a[i]
首先将和值和个数值赋值为0,将输入的数赋给数组,计算数组元素中大于0的数的和值。
更多“以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填空。main(){int i,a[2 ”相关问题
  • 第1题:

    以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。

    define M 2

    define N 4

    void SumColumMin(int a[M][N],int *sum)

    { int i,j,k,s=0;

    for(i=0;i〈N;i++)

    { k=0;

    for(j=1;j<M;j++)

    if(a[k][i]>a[j][i])k=j;

    s+=【 】;

    }

    【 】 =s;

    }

    main( )

    { int x[M][N]={3,2,5,1,4,1,8,3},s;

    SumColumMin(【 】);

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

    }


    正确答案:a[k][i] *sum x[M][N]&s
    a[k][i] *sum x[M][N],&s 解析:本题中if(a[k][I] >a [j] [I]) k=j;把一列中值较小的一个元素的索引存储到k中,所以[18]填[k] [i],[19]填返回值,右值为整型,所以应该填。sum,SnmColumMin(  )函数第一个参数为数组a[M][N],第二个参数为一个整型指针,所以[20]填x[M][N],&s。

  • 第2题:

    以下程序统计从终端输入的字符中大写字母的个数。用号作为输入结束标志,请填空。


    正确答案:

  • 第3题:

    【填空题】下面程序以每行4个数的形式输出a数组,请分析程序填空。 #define N 20 main() { int a[N],i; for(i=0;i<N;i++) scanf("%d",【1】); for(i=0;i<N;i++) { if(【2】) 【3】; printf("%3d",a[i]); } }


    1&a[i] 2(i+1)%4==0

  • 第4题:

    以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空:includefind

    以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空: #include<stdio.h> findmax(int*s,int t,int*k) { int p; for(p=0,*k=p;p<t;p++) if(s[p]>s[*k])________; } main() { int a[10],i,k; for(i=0;i<10;i++)scanf("%d",&a[i]); findmax(a,10,&k); printf("%d,%d\n",k,a[k]); }

    A.k=p

    B.*k=p-s

    C.k=p-s

    D.*k=p


    正确答案:D
    解析:k是—个指针,它的值是—个地址,要通过它为主函数的变量改变数据,必须使用*p,边样就可以把—个下标数赋给p指针指向的那个内存单元,所以横线处应填入*k=p。

  • 第5题:

    试题14

    以下程序调用fun函数把x中的值插入到a数组下标为k的数组元素中。主函数中,n存放a数组中数据的个数。请填空。

    #include <stdio.h>

    void fun(int s[], int *n, int k, int x)

    { int i;

    for(i=*n-1; i>=k; i- - ) s[ ___ ]=s[i];

    s[k]=x;

    *n=*n+______;

    }

    main()

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

    fun(a, &n, k, x);

    for(i=0; i<n; i++) printf(“%4d”,a[i]); printf(“\n”);

    }


    正确答案:
    试题14分析
    因为是把x中的值插入到a数组下标为k的数组元素中,所以首先要将k及其后的元素往后移一位,方法是s[i+1]=s[i],插入之后,因为多了一个元素,要将n中值增1。
    试题14答案
     【14】i+1
    【15】1