、 编写程序。从输入的若干个大于零的整数中选出最小值(输入-1时结束输入)。2、编写程序。写一个子函数fac求n!,然后再编写main()调用fac函数分别输出1~5的阶乘。二、程序填

作者:奥鹏远程作业辅导网 来源:本站 时间:2021-04-03热度:732

天津大学21春《C语言程序设计》离线大作业答案100

题目如下:

第一组:www.apfudao.com)100分远程作业辅导网

一、编程题(每题20分,共40分)

1、 编写程序。从输入的若干个大于零的整数中选出最小值(输入-1时结束输入)。

2、编写程序。写一个子函数fac求n!,然后再编写main()调用fac函数分别输出1~5的阶乘。

二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)

1、程序用于输出以下图形。

       #include "stdio.h"

void main ( )

{  int i,j;

       for(i=1;i<= ____①____;i++)

{ for(j=1; j<= 9-i ; ____②____)

printf (" ");  

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

        printf("%c", ____③____ );

         ________④________;

       }

}

  2、程序由键盘输入10个整型数写入名为fdada.txt的文件 

      #include "stdio.h"

      #include "process.h"

      void main()

      { _____①_____ *fp; 

         int i,a;

         if ((fp=fopen("_____②_____","w"))==NULL)

{ printf("文件不能打开! "); exit(1); }

         else { printf("请输入10个整数 ");

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

{ scanf("%d",&a); fprintf(____③____,"%d  ",a);}

              ________④________ ;

             }     

       } 

3、输入4×5数组中所有元素,求所有元素的平均值并输出。

#include

        void main( )

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

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

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

              scanf(“%d”, _____①_____ );

            _____②_____; 

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

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

              sum=____  ③  ____;

           printf(“average=%f ”, ____④____ ); 

         }

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

1、

#include   

int x=10; 

void f1()

{  int a=10;

           static int b=10;

           a+=10; b+=10; x+=10;

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

        }

void main ( )

{ f1( ); f1( ); } 

2、

       #include

       void main()

       {   int a[ ]={2,3,5,4},i;

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

             switch(i%2)

             {   case 0: switch(a[i]%2)

                     { case 0: a[i]++;break;

                      case 1:a[i]--;

                     }break;

                 case 1:a[i]=0;

             }

        for (i=0;i<4;i++)  printf("%2d ",a[i]);

        printf(" ");

        }

3、

#include

        void main()

        {   int beta=10;

            int *pointer,*q;             

            pointer=β 

            *pointer=20;     

        beta=*pointer+30;   

            q=β 

            printf(" *q=%d ",*q);

         }

第二组:

一、编程题(每题20分,共40分)

1、 编写程序。从键盘任意输入10个数,将这10个数按照由小到大的次序排序,输出

排序后的结果。(排序方法任意)

2、 编写程序。利用子函数fun求a数组中n个元素的平均值,再通过main()调用fun函数输出s数组中10个元素的平均值。

二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)

1、程序用于输出以下图形。

#include

void main()

{ int i, j;

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

         {  _____①_____;

          while (++j<=_____②_____)

             printf(“%4d”, _____③_____);

          _____④_____;

         }

}

2、 程序用于求 方阵的主对角线元素的乘积,

 #include

void main()

{  int a[5][5],i,j,ss;

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

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

_____ ①  ___;

ss=_____②_____;

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

 ss= _____③_____;

printf(“%d ”, _____④_____); 

}

3、 输入一个三位正整数,分离出它的个位、十位和百位数并输出。

#include

void main()

{  int x,hundreds,tens,units;

  scanf("%d",_____  ①  _____);

  hundreds=_____②_____;

  tens=_____③_____;

  units= _____④_____;

  printf("units=%d,tens=%d,hundreds=%d ",units,tens,hundreds);

}

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

1、

              #include

              void main ( )

              {  int i,j;

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

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

printf (" ");

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

            printf("%c", ’A’+i-1);

              printf(" ");

             }

           }

2、

            #include

int x=100; 

void f1()

{  int a=100;

               a+=100;  x+=100;

               printf (“%4d %4d”, a, x) ;

            }

            void f2() 

            {  static int b=100;

               b+=100;  x+=100;

               printf (“%4d %4d”, b , x);

            } 

void main ( )

{  f1( );  f1( );  f2( );  f2( );  } 

3、

          #include

    void main() 

          {   int m=1,n=2,*p=&m,*q=&n,*r;

              r=p;p=q;q=r;

              printf("%d,%d,%d,%d",m,n,*p,*q);

           }

第三组:

一、编程题(每题20分,共40分)

1、编写程序。通过级数                      求 的值并输出(要求精度为10-6 ,即追后一项的绝对值小于10-6)。

2、编写程序。写一个求n!的子函数,再利用main( )调用该函数分别计算并输出5!和10!。

二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)

1、程序用于求输入的10个实数的最大值以及第一个最大值的下标并输出。

#include  

void main()

{ int i, max_i=0;

double a[10];

for(i=0; i<10;i++) ______①______; 

for(______②______)

        if(a[i]>a[max_i]) ______③______;

printf("最大值=%6.2f ,位置是%d ", ______④______, max_i );

}

2、函数用于求x的y次方。

double fun(double x, int y)

{ int i; ______①______;

for(i=1;______②______; i++)

z=______③______;

______④______;

}

3、程序用于输出以下图形。

        #include

        void main ( )

        { int i,j;

      for(i=1;i<= ______①______;i++)

{ for(j=1; j<= 9-i ; ______②______) 

printf (" ");  

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

      printf("%c", ______③______ );

        ______④______; 

      }

}

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

  1、

          #include

          void f(int m[ ], int n)

          { int i;

           for(i=0; i

          }

          void main()

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

         f(a,5);

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

}

  2、

#include

void main()

{ int  a[3][3]={{1,2,3},{2,4,5},{3,5,7}},i,j,s;

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

{ s=0; 

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

       s=s+a[i][j]; 

printf("%4d",s );

}

}

  3、

           #include

           int f(int n)

           {   static int a=1;

               n+=a++; 

               return n;

           }

           void main()

           {   int a=3,s;

               s=f(a);s=s+f(a);

               printf("%d ",s);

           }

 
QQ在线咨询