[离线作业] 天大2018年6月《C语言程序设计》大作业答案参考

[复制链接]
发表于 2018-6-11 17:31:16 | 显示全部楼层 |阅读模式
C语言程序设计
要求:
独立完成,下面已将三组题目列出,请按照学院平台指定的做题组数作答,
每人只答一组题目,多答无效,满分100分;
    平台查看做题组数操作:学生登录学院平台→系统登录→学生登录→课程考试→离线考核→离线考核课程查看→做题组数,显示的数字为此次离线考核所应做哪一组题的标识;
    例如:“做题组数”标为1,代表学生应作答“第一组”试题;
二、答题步骤: 无忧答案网
使用A4纸打印学院指定答题纸(答题纸请详见附件);
在答题纸上使用黑色水笔按题目要求手写作答;答题纸上全部信息要求手写,包括学号、姓名等基本信息和答题内容,请写明题型、题号;
三、提交方式:请将作答完成后的整页答题纸以图片形式依次粘贴在一个Word
    文档中上传(只粘贴部分内容的图片不给分),图片请保持正向、清晰;
上传文件命名为“中心-学号-姓名-科目.doc”
文件容量大小:不得超过20MB。
提示:未按要求作答题目的作业及雷同作业,成绩以0分记!


题目如下:
第一组:
  一、编程题(每题20分,共40分)
1、编写程序。任意输入10个数,输出这10个数中正数的平均值并将这10个数按相
反的次序并输出。
     2、编写程序。自定义函数重复输出给定的一个字符n次,调用该函数输出给定的字符和输出的次数。
  二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)
1、程序用于输出以下图形。无忧答案网






#include <stdio.h>
void main( )
{  int i, j;
              for (i=1; i<10; i++)
              {  for( j=1; j<=12-i; j++)      
                   _____①_____;
                 for (j=1; _____②_____; j++)
                   printf(“%4d”, _____③_____);
                 _____④_微761296021信____;
               }
}

     2、将1到100各数的平方根按照每行5个数存到磁盘的file.dat文件中。
#include <stdio.h>
            #include <math.h>
#define  Null  0
void main()
{  FILE  *p1;
               int i=1;
               if((p1=____  _①_  ____)==Null)
                { printf(“Can’t open file\n”); exit(0) ; }
               while(i<=100)
                { fprintf(p1,”%f5.3”,sqrt((double)(i)));
                   if(_____②_____) fprintf(p1,”\n”);
                     _____③_____;
                 }
               _____④_____;
       }   


     3、用公式                        计算π的值, 直到最后一项的绝对值<10。
#include <stdio.h>
#include <math.h>
void main()
{  int s; float n, t, pi;
         t=1;  n=1.0;  pi=0;  s=1;
         while(_____①_____)
         {   pi=pi+t;  n+=2;  s=_____②_____;  t=_____③_____; }      
         _____④_____;                           
         printf(“pi=%10.6f\n”, pi);
}



  三、写出程序的执行结果(每题4分,共12分)
1、
          #include <stdio.h>     
int sum(int p[ ], int a);
void main()
{ int data[ ][3]={{3,2,1},{1,2,3},{4,5,6}};
          for(int s,i=0; i<3; i++)
          { printf("%ds=%d\n", sum(data,s),s); }
}
int sum(int p[ ], int a)
{  int i, k=0;
           static int s=0;         
           for(i=0; i<3; i++) { s+=p;  k+=p; }
           a=k; return  s;
}



     2、
#include <stdio.h>
void pp(int x[]);
void main ( )
{ int i ,a[ ]={1,2,3,4,5,6};
     pp(a);
     for (i=0;i<6;i++)
       printf(“%3d”,a);
    }
void pp(int x[ ])
{ int k;
     for (k=0;k<6;k++)
        x[k]=x[k]*x[k];
     return;
    }



     3、
              #include?<stdio.h>?
void main()
{  int a[6][6],i,j;
for(i=1;i<6;i++)
for(j=1;j<6;j++)
a[j]=(i/j)*(j/i);
for(i=1;i<6;i++)
{  for(j=1;j<6;j++)
printf("%2d",a[j]);
printf("\n");
}
}



第二组:
一、编程题(每题20分,共40分)
1、编写程序。定义数组sco存放30名学生的成绩。将成绩由高到低排序,并输出排序结
果和所有高于平均分数的成绩(结果保留两位小数)。
2、编写程序。先编写一个子函数求x,再通过主函数调用该子函数,对输入的一个数y,
求y并输出。
二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)
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[j]= _____②_____;
                   for(i=0;i<5;i++)
                {  for(j=0; _____③_____;j++)
                    printf("%4d", a[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);
}
}




  三、写出程序的执行结果(每题4分,共12分)
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);
}





第三组:
一、编程题(每题20分,共40分)
1、编写程序。通过级数                      求的值并输出(要求精度为10-6 ,即追后一项的绝对值小于10-6)。
2、编写程序。写一个求n!的子函数,再利用main( )调用该函数分别计算并输出5!和10!。
二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)
1、程序用于求输入的10个实数的最大值以及第一个最大值的下标并输出。
#include <stdio.h>
void main()
{ int i, max_i=0;
double a[10];
for(i=0; i<10;i++) ______①______;
for(______②______)
        if(a>a[max_i]) ______③______;
printf("最大值=%6.2f ,位置是%d \n", ______④______, max_i );
}



2、函数用于求x的y次方。
double fun(double x, int y)
{ int i; ______①______;
for(i=1;______②______; i++)
z=______③______;
______④______;
}



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





        #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", ______③______ );
        ______④______;
      }
}



三、写出程序的执行结果(每题4分,共12分)
  1、
          #include <stdio.h>
          void f(int m[ ], int n)
          { int i;
           for(i=0; i<n; i++) m=m*10;
          }
          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);
}



  2、
#include<stdio.h>
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[j];
printf("%4d",s );
}
}



  3、
           #include <stdio.h>
           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\n",s);
           }

答案附件已经更新,需要可以下载



2018 年6月 C语言程序设计 第2组答案.zip

17.46 KB, 下载次数: 6, 下载积分: 贡献 1

售价: 50 金币  [记录]  [购买]

第2组答案

2018年6月 001016[C语言程序设计] 第3组答案.zip

22.21 KB, 下载次数: 4, 下载积分: 贡献 1

售价: 50 金币  [记录]  [购买]

第3组答案

2018年6月 C语言程序设计 第1组答案.zip

23.58 KB, 下载次数: 2, 下载积分: 贡献 1

售价: 50 金币  [记录]  [购买]

第1组答案

发表于 2018-6-15 20:07:24 | 显示全部楼层
发表于 2018-6-21 23:08:09 | 显示全部楼层
张老师 发表于 2018-6-15 20:07
C语言程序设计 第2组

么么可以便宜点吗?50一组题
快速回复 返回顶部 返回列表