欢迎光临
奥鹏作业辅导

天津大学18秋001016[C语言程序设计][答案]

来源:奥鹏远程教育   日期: 作者:奥鹏作业辅导

天津大学18秋001016[C语言程序设计][答案]满分答案

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


题目如下:
第一组:
一、编程题(每题20分,共40分)
1、编写程序。定义数组sco存放30名学生的成绩。将成绩由高到低排序,并输出排序结
果和所有高于平均分数的成绩(结果保留两位小数)。
2、编写程序。先编写一个子函数求x ,再通过主函数调用该子函数,对输入的一个数y,
求y 并输出。
二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)
1、程序用于求两个数的和与差。
#include <stdio.h">
int  fun(inta,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);
}
}




三、写出程序的执行结果(每题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 (intx,inty,int *z)
{ *z=x-y; }
void main()
{ inta,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、编写程序。输入一行字符(以回车符结束),分别统计其中字母、数字和其他符号的个数。

2、编写程序。要求编写子函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0,再调用该子函数求100以内的全部素数(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)
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_____①_____;
charch;
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=_____③_____;
_____④_____;
    }



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




第三组:
一、编程题(每题20分,共40分)
1、编写程序。每当输入10个评委的分数后,求该选手的最后得分并输出(设10个评委按照以下打分原则为选手打分:去掉一个最高分和一个最低分,剩下的求平均分作为选手的最后得分)。
2、编写程序。先定义一个求n!的子函数fact,调用该子函数计算并输出
的值(m、n的值由键盘输入)。
二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)

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>
voidmain()
{  inti,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]);
 _____④_____;
 }
}



2、 将输入的一个字符串(以!结束)中的小写字母转换成大写字母,然后输出到磁盘文件“test”中。

#include <stdio.h>
void main()
{ _____①_____;
charstr[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>
voidmain()
{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=5,b=6,c=7;
printf(“%d,%d,%d”,a,b,c);
sub(b,c,&a); sub(a,b,&c)
printf(“%d,%d,%d\n”,a,b,c);
}



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);
}




天津大学18秋001016[C语言程序设计][答案]历年参考题目如下:

扫描二维码获取答案

热门文章

  • 东师英语写作(一)18秋在线作业2答案

  • 英语写作(一)18秋在线作业2-0001 试卷总分:100 得分:0 一、 单选题 (共 40 道试题,共 100 分) 1.He close a tie which would___his suit. A.suit B.go with C.fit D.agree 2.I was si

猜你喜欢

  • 东师税法20春在线作业1[答案]

  • 税法20春在线作业1题目 试卷总分:100 得分:100 一、单选题 (共 10 道试题,共 20 分) 1.以下不是确认属人性质税收管辖权自然人居民身份标准的是() A.住所 B.居所
  • 东师发展心理学20春在线作业1[答案]

  • 发展心理学20春在线作业1题目 试卷总分:100 得分:100 一、单选题 (共 10 道试题,共 30 分) 1.在()之后,婴儿平均每个月掌握25个新词,出现了言语爆炸的现象。