C语言程序设计——第八周检测

1 单选(1分)

输入某班学生某门课的成绩(最多不超过40人,具体人数由用户键盘输入),用函数编程统计不及格人数。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。

    #include  <stdio.h>
    #define N 40
    intGetFailNum(int score[], int n);
    int main()
    { 
        int i, n, fail, score[N];
        printf("How many students?");
        scanf("%d", &n);
        for (i=0; i<n; i++)
        {
            scanf("%d", _________);
        }
        fail = _____________;
        printf("Fail students = %d\n", fail);
        return 0;
    }
    /* 函数功能:统计不及格人数 */
    int GetFailNum(int score[], int n)
    {
        int  i, count = 0;
        for (i=0; i<n; i++)
        {
            if (_________)  count++;
        }
        return count;
    }

正确答案:第11行:    &score[i]

第13行:    GetFailNum(score, n)

第23行:    score[i] < 60

2;单选(1分)

以下程序中函数Fun的功能是对b所指数组中的第m至第n个数据取累加和,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。

    #include <stdio.h>
    Fun(________,int m,int n)
    { 
        int  i,s=0;
        for( ______;i<n;i++)  
            s=s+b[i];
        return _______;
    }
     
    int main()
    { 
        int  x,a[]={1,2,3,4,5,6,7,8,9};
        x=Fun(a,3,7);
        printf("%d\n",x);
        return 0;
    }

  • C.

    第2行:    int b[]

    第5行:    i=m-1

    第7行:    s


3.下面代码的功能是将数组a中存放的5个整型数据逆序后在屏幕上输出,具体输出内容如下:

5    4    3    2    1

按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。

    #include <stdio.h>
    void Fun(int b[],int i,int j)
    { 
         int t;
         if(i<j)
         { 
              _________; 
               
              b[i]=b[j];
              _________;
               
              Fun(b,i+1,j-1);
         }
    }
     
    int main( )
    { 
         int i,a[5]={1,2,3,4,5};
         _________;
          
         for(i=0;i<5;i++) printf("%d\t",a[i]); 
         printf("\n");
         return 0;
     }

正确答案:第7行:    t=b[i]

第10行:    b[j]=t

第19行:    Fun(a,0,4)

4.某人有5张2分的邮票和5张3分的邮票,问使用这些邮票可以组合出多少种不同面值的邮资。(例如:1张2分邮票加1张3分邮票可以组成5分的邮资;3张2分的邮票或2张3分的邮票都可以组成同样的6分邮资。)按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。

    #include <stdio.h>
    int main()
    {
        int i,j,k,s,n=0;
        int a[100]={0};
         
        for(i=0;_________;i++)
            for(j=0;________;j++)
            {
                s=_____________;
                 
                for(k=0;a[k]!=0;k++)
                    if(s==a[k])
                       _________;
                        
                if(a[k]==0 && s>0)
                {
                    _________;
                    n++;
                }
            }
             
        printf("\n %d kinds:",n);
         
        for(k=0;a[k];k++)
            printf("%2d,",a[k]);
             
        return 0;
    }

正确答案:第7行:    i<=5

第8行:    j<=5

第10行:    2*i+3*j

第14行:    break

第18行:    a[k]=s

5.以下程序中函数Sort的功能是对a所指数组中的数据进行由大到小的排序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。

    #include <stdio.h>
    void Sort(int a[],int n)
    { 
        int i,j,t;
        for(i=0;_________;i++)
            for(________;j<n;j++)
                if(a[i]<a[j])
                {
                    t=a[i];
                    __________;
                    a[j]=t;
                }
    }
     
    int main()
    {
        int aa[10]={1,2,30,4,5,6,7,8,9,10},i;
        __________;
         
        for(i=0;i<10;i++)
            printf("%d,",aa[i]);
        printf("\n");
        return 0;
    }

正确答案:第5行:    i<n-1

第6行:    j=i+1

第10行:    a[i]=a[j]

第18行:    Sort(aa,10)

6.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出。程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是

    #include <stdio.h>
    int main()
    { 
        int n,k;
        float score ,sum,ave;
        sum=0.0;
        for(n=1;n<=10;n++)
        { 
            for(k=1;k<=4;k++)
            { 
                scanf("%f",&score); 
                sum+=score;
            }
             
            ave=sum/4.0;
            printf("NO%d:%f\n",n,ave);
             
        }
         
        return 0;
    }

正确答案:sum=0.0;

7.下面代码的功能是在屏幕上输出以下内容

0

1

3

程序中空白处缺少的代码由下列选项给出,其中有一个不能满足题目要求,请将其找出。

    #include <stdio.h>
    int main()
    {  
         int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0;
          
         for(i=0;i<3;i++)
             for(j=i;j<=i;j++) 
               {
                    t=t+____________;
                    printf("%d\n",t);
               }  
          
         return 0;
    }

正确答案:b[t][j]

8.以下程序的输出结果是



    void swap1(int c[])
    { 
        int t;
        t=c[0];
        c[0]=c[1];
        c[1]=t;
    }
     
    void swap2(int c0,int c1)
    { 
        int t;
        t=c0;
        c0=c1;
        c1=t;
    }
     
    int main( )
    { 
        int a[2]={3,5},b[2]={3,5};
        swap1(a); 
        swap2(b[0],b[1]);
        printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]);
        return 0;
    }

C.   5 3 3 5






猜你喜欢

转载自blog.csdn.net/qq_42346692/article/details/80513714
今日推荐