来源:奥鹏远程教育 日期: 作者:奥鹏作业辅导
天大18春[C语言程序设计][答案]满分答案
C语言程序设计要求:
一、 独立完成,下面已将三组题目列出,请按照学院平台指定的做题组数作答,
每人只答一组题目,多答无效,满分100分;
平台查看做题组数操作:学生登录学院平台→系统登录→学生登录→课程考试→离线考核→离线考核课程查看→做题组数,显示的数字为此次离线考核所应做哪一组题的标识;
例如:“做题组数”标为1,代表学生应作答“第一组”试题;
二、答题步骤:
1. 使用A4纸打印学院指定答题纸(答题纸请详见附件);
2. 在答题纸上使用黑色水笔按题目要求手写作答;答题纸上全部信息要求手写,包括学号、姓名等基本信息和答题内容,请写明题型、题号;
三、提交方式:请将作答完成后的整页答题纸以图片形式依次粘贴在一个Word
文档中上传(只粘贴部分内容的图片不给分),图片请保持正向、清晰;
1. 上传文件命名为“中心-学号-姓名-科目.doc”
2. 文件容量大小:不得超过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”, _____③_____);
_____④_____;
}
}
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 ”); exit(0) ; }
while(i<=100)
{ fprintf(p1,”%f5.3”,sqrt((double)(i)));
if(_____②_____) fprintf(p1,” ”);
_____③_____;
}
_____④_____;
}
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 ”, 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 ", sum(data[i],s),s); }
}
int sum(int p[ ], int a)
{ int i, k=0;
static int s=0;
for(i=0; i<3; i++) { s+=p[i]; k+=p[i]; }
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[i]);
}
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[i][j]=(i/j)*(j/i);
for(i=1;i<6;i++)
{ for(j=1;j<6;j++)
printf("%2d",a[i][j]);
printf(" ");
}
}
第二组:
一、编程题(每题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 sub=%d ”, _____④_____);
}
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);
}
}
三、写出程序的执行结果(每题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(“ ”);
}
}
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 ",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 ”,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[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 <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[i]=m[i]*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[i]);
}
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[i][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 ",s);
}
天大18春[C语言程序设计][答案]历年参考题目如下: