C语言程序设计上机实习答案 下载本文

内容发布更新时间 : 2024/5/20 3:42:47星期一 下面是文章的全部内容请认真阅读。

#include

int m, n, rem,i;

int Rem(int m, int n); int main() {

int j;

scanf(\ j=Rem(m, n); printf(\ return 0; }

int Rem(int m, int n) {

i=m%n; if(i==0) {

rem=n; } else {

m=n; n=i;

Rem(m,n); }

return rem; }

实验四

1.

标题: 1、整数排序 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms

描述: 用指针实现:由键盘输入10个整数,将他们按由小到大的顺序排列。 输入: 键盘输入的10个整数。 输出: 按由小到大的顺序排列。 输入样例: 1 5 4 3 2 9 23 11 5 7 输出样例: 1 2 3 4 5 5 7 9 11 23 #include

21

#include

int Reverse(int *a, int n); int main() {

int a[10],i,*p; for(i=0;i<10;i++) {

scanf(\ } p=a;

Reverse(p,10); for(i=0;i<10;i++) {

printf(\ }

printf(\ return 0; }

int Reverse(int *a, int n) {

int i,j,*p;

for(i=0;i

for(p=a;p

if(*p>*(p+1)) {

j=*p;

*p=*(p+1); *(p+1)=j; } } }

return 0; } 2.

标题: 2、学生成绩 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms

描述: 已知10个学生的5门课程的成绩,将其存入一个二维数组,求每一

22

个学生的总成绩和每一个学生的平均成绩。

输入: 10个学生的5门课程的成绩

输出: 每一个学生的总成绩和每一个学生的平均成绩.保留小数点后两位. 90.5 80 70 89 84.6 91.5 81 71 88 84.7 92.5 82 72 87 84.8 93.5 83 73 86 84.9 94.5 84 74 85 84.0

输入样例:

95.5 85 75 84 84.1 96.5 86 76 83 84.2 97.5 87 77 82 84.3 98.5 88 78 81 84.4 99.5 89 79 80 84.5 414.10 82.82 416.20 83.24 418.30 83.66 420.40 84.08 421.50 84.30

输出样例:

423.60 84.72 425.70 85.14 427.80 85.56 429.90 85.98 432.00 86.40 #include #include

int i=0,j=0; float a,b;

float ch[10][5];

float Gates(float ch[10][5]); int main() {

for(i=0;i<10;i++) {

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

scanf(\ } }

for(i=0;i<10;i++) {

23

a=Gates(ch); b=a/5;

printf(\ a=0,b=0; }

return 0; }

float Gates(float ch[10][5]) {

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

a=a+ch[i][j]; }

return a; } 3.

标题: 3、对角线数据 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms

描述: 输入一个5×5的数组,分别求其主对角线和辅对角线上元素之和。 输入: 5×5的数组

输出: 主对角线和辅对角线上元素之和 1 2 3 4 5 6 7 8 9 10

输入样例: 11 12 13 14 15

16 17 18 19 20 21 22 23 24 25 输出样例: 65 65

主对角线为从矩阵的左上角至右下角的连线,在数组中即指行列下

提示: 标相同的元素,辅对角线为从矩阵的右上角至左下角的连线,这些元素

的下标之间也可用相应的表达式表达。

#include #include

int i,j;

int ch[5][5];

void Sum(int ch[][5]);

int main()

24

{

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

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

scanf(\ } }

Sum(ch); return 0; }

void Sum(int ch[][5]) {

int a=0,b=0; for(i=0;i<5;i++) {

a=a+ch[i][i]; }

for(j=4;j>=0;j--) {

b=b+ch[j][4-j]; }

printf(\} 4.

标题: 4、字符串排序 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms

描述: 用指针实现:将10个字符串(设其长度小于20)从小到大排序。 输入: 10个字符串。

输出: 排序后的10个字符串。 ijk jkl def ghi

输入样例: def

cde hij def efg

25