【艾琪出品】-【C语言程序设计】测试题系列一

【声明】本博客内容,若有侵权请告之,会删除 非商业用途,如有侵权,请告知我,我会删除

如回复不及时,或不懂的请加我微信 island68  QQ823173334 可以的话注明来自CSDN

很希望通过CSDN这个平台与大家交流,试题可以给需要的人参考,也留作自己备用

C语言程序设计

 

第一组:

一、编程题

1、编写程序。定义数组sco存放30名学生的成绩。将成绩由高到低排序,并输出排序结

果和所有高于平均分数的成绩(结果保留两位小数)。

2、编写程序。先编写一个子函数求x ,再通过主函数调用该子函数,对输入的一个数y,

求y 并输出。

二、程序填空。在程序中的序号处填上正确的内容。

1程序用于求两个数的和与差。

#include <stdio.h">

int  fun(int a,int b, int *psub)

{  int sum;

             sum=a+b;

             __________=a-b;

             return sum;

          }

void main( )

{  int x,y,s1,s2;

            scanf(%d%d, __________);

            s1=fun(x,y, __________);

            printf(sum=%d\n sub=%d\n, __________);

          }

 

 

 

2对于5×5的方阵输出其下三角的元素。

1  2  3  4  5            1

2  3  4  5  6            2  3

3  4  5  6  7            3  4  5

4  5  6  7  8            4  5  6  7

5  6  7  8  9            5  6  7  8  9

 

      #include<stdio.h>

              void main()

{ int   __________,i,j;

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

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

                     a[i][j]= __________;

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

                {  for(j=0; __________;j++)

                    printf("%4d", a[i][j]);

                    __________; }

}

 

 

 

3输出所有的水仙花数。所谓的水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如153是一水仙花数,因为153=13+53+33

#include <stdio.h>

void main()

{

int n, i, j, k;

for(n=100; n<= __________; n++)

{

i = n/100;              // 取出n的百位数

j =  ___ _______;     // 取出n的十位数

k =  __ ________;    // 取出n的个位数

if(n==__________)

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

}

}

 

 

 

 

  三、写出程序的执行结果

1

          #include <stdio.h>

void main( )

{  int i, j;

    for (i=1; i<5; i++)

    {  for( j=1; j<=12-i; j++)

        printf(“  “); 

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

            printf(“%4d”,i);

        printf(“\n”);

     }

}

 

 

 

2

#include <stdio.h>

      int a=5;

      void fun(int b)

      {   int a=10;

          a+=b;

          printf("%d ",a);

      }

      void main()

      {   int c=20;

          fun(c);a+=c;

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

      }

 

 

 

 

 

3

#include <stdio.h>

void sub (int x,int y,int *z)

{ *z=x-y; }

void main()

{ int a,b,c;

sub(10,6,&c);

sub(8,c,&b);

sub(c,b,&a);

printf(“%d  %d  %d\n”,a,b,c);

}

 

 

 

 

第二组:

一、编程题

1编写程序。输入一行字符(以回车符结束),分别统计其中字母、数字和其他符号的个数。

 

2编写程序。要求编写子函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0,再调用该子函数求100以内的全部素数(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

二、程序填空。在程序中的序号处填上正确的内容。

1按照公式 e=1+ + ++…+ 求e的近似值,至n=10为止。

#include < stdio.n>

void main ( )

{ float__________

       int n=1, i;

       for(__________)

       { n=__________;

        e=__________;

       }

       printf (“ e= %f\n” ,e);

      }

 

 

 

    2将文件file1.dat中的内容复制到file2.dat中。    

          #include <stdio.h>

#define  Null  0

void main()

{  FILE__________;

             char ch;

             if((p1=fopen(file1.dat,r)= =Null)||(p2=fopen(file2.dat,w)= =Null ))

             { printf(Can’t open file\n); __________; }

             while(__________)

              { ch=__________; fputc(ch,p2); }

             fclose(p1);

             fclose(p2);

          }

 

 

 

3求二维数组a[5][4]中所有元素的平均值。

   #include <stdio.h>

____  __  ____   

void main ( )

   {  int a[5][4],i ,j, pa;

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

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

          scanf(“%d”, &a[i][j]);

      pa= __________;

      printf (“average=%d\n”,pa);

   }

int average (int s[ ][4] )

   {  int i,j,aver=0;

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

        for (j=0;j<4;j++) aver=aver+s[i][j];

     aver=__________;

     __________;        

    }

 

 

 

  三、写出程序的执行结果

1

         #include <stdio.h>               

void main()

         {  int i, j, k=4;

for (int i=1;i<=k;i++)

printf("%c",’’); printf("\n");

            for (int i=1;i<=k-2;i++)

                    {  printf("%c",’*’);

for (j=1;j<= k-2;j++)

printf(" ");

printf("*\n"); 

}

            for (i=1;i<=k;i++)

                     printf("%c",’’); printf("\n");

}

 

  

 

 

2

#include <stdio.h>

void fun(int s[ ]);

void main()

{ int a[ ]={1,2,3,4,5,6},k;

fun(a);

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

printf(“\n”);

}

void fun(int s[ ])

{  int i=0;

 while(i<3) { s[i]=s[i]+5;  i++; }

}

 

 

 

3

   #include <stdio.h>

void main()

{ int j, a[ ]={1,2,3,4,10,12,13,15};

for( j=3; j>0; j--)

      switch ( j )

       {  case 1:

          case 2: printf(“%d,”, a[j+4]); break;

          case 3: printf(“%d,”, a[j-1]);

        }

              printf(“\n”);

}

 

 

 

 

第三组:

一、编程题)

1编写程序。每当输入10个评委的分数后,求该选手的最后得分并输出(设10个评委按照以下打分原则为选手打分:去掉一个最高分和一个最低分,剩下的求平均分作为选手的最后得分)。

2编写程序。先定义一个求n!的子函数fact,调用该子函数计算并输出

的值(m、n的值由键盘输入)。    

二、程序填空。在程序中的序号处填上正确的内容。

 

  1. 打印出杨辉三角形(只打印出10行,形式如下)。

       1

      1  1

      1  2  1

      1  3  3  1

      1  4  6  4  1

      1  5  10 10 5  1

        ……

 

#include <stdio.h>

void main()
        {  int  i,j;
           int  a[10][10];
           for(i=0;i<10;i++)a[i][0]=1, _____①_____;
           for(_____②_____;i<10;i++)
            for(j=1;j<i;j++)
              a[i][j]= _____③_____;
           for(i=0;i<10;i++)
          {  for(j=0;j<=i;j++)
              printf("%5d",a[i][j]);
             _____④_____;
          }
}
 

 

 

  1. 将输入的一个字符串(以!结束)中的小写字母转换成大写字母,然后输出到磁盘文件“test”中。
 
#include <stdio.h>
         void main()
         { _____①_____;
          char str[100],filename[10];
          int i=0;
          if((fp=_____②_____ ==NULL)
         { printf("cannot open the file\n");exit(0); }
          printf("please input a string:\n");
          gets(str);
          while(_____③_____)
          { if(str[i]>='a'&&str[i]<='z')
             str[i]=str[i]-32;
             fputc(str[i],fp);
             _____④_____;
          }
          fclose(fp);
}

 

 

 

3输出如下图形。

 

        *     *

        *    *

        *  *

        *

        *  *

        *   *

        *    *

 

#include <stdlib.h>
void main()

{ int i=1,j;

           while(i<=3)

         {  j=1;

            printf("*");

            while(j<=3)

            { printf(" ");

               __________; }

              printf("*\n");

              __________;

           }

           __________;

           i=1;

           while(i<=3)

           {   j=1;

             printf("*");

               while(__________)

               { printf(" ");

                j++; }

               printf("*\n");

               i++;

            }

          }

 

 

 

  三、写出程序的执行结果(每题4分,共12分)

1

          #include  <stdio.h>    

          void sub(int x,int y,int *z)

          { *z = x+y;}

          void main()

          { int a=5b=6c=7;

printf(“%d%d%d    ”abc);

sub(b,c,&a); sub(a,b,&c)

printf(“%d%d%d\n”abc);

}

 

 

 

2

        #include  <stdio.h>

void main ()

{  int  x=1,a=0,b=0;

switch(x)

              {  case 1:a++ ;

case 2:a++; b++; break;

default: b++;break;

}

printf(“a=%d,b=%d”,a,b);

}

 

 

 

3

              #include<stdio.h>

void fun(int x);

void main()

{  fun(7);

printf("\n");

}

void fun(int x)

{  if(x/2>1)

fun(x/2);

printf("%5d",x);

}

 

 

 

 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值