华南农业大学C语言程序设计实验指导书参考答案 下载本文

} }

[题目1035:打印菱形]

由键盘输入正数n,要求输出2*n+1 行的菱形图案。要求菱形左边紧靠屏幕左边。

[第一组自测数据] [第二组自测数据]

[键盘输入] [键盘输入] 3↙ 2↙

[正确输出] [正确输出]

* * *** *** ***** ***** ******* *** ***** * *** *

参考程序:

#include \#include \main()

{ int n,i,j,k; scanf(\

for(i=1;i<=2*n+1;i++) { k=abs(n+1-i);

for(j=1;j<=k;j++) printf(\

for(j=1;j<=2*n+1-2*k;j++) printf(\printf(\} }

[题目1038:打印图案]

由键盘输入正数n,要求输出中间数字为n 的菱形图案。要求菱形左边紧靠屏幕左边。

[第一组自测数据] [第二组自测数据]

[键盘输入] [键盘输入]

4 ↙ 3

[正确输出] [正确输出]

1 1 121 121 12321 12321 1234321 121 12321 1 121 1

参考程序:

# include # include main()

{ int n,i,j,k,h; scanf(\

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

for(k=1;k<=n-abs(i);k++) printf(\for(h=n-abs(i)-1;h>=1;h--) printf(\printf(\} }

实验7 数组

一、实验目的

1)掌握一维数组和二维数组的定义、赋值和输入输出方法。 2)掌握与数组有关的算法。

二、实验内容

[题目1039:倒序]

由键盘输入10 个整数,倒序输出。数字间由一个空格分隔) [ 自测数据] [键盘输入]

70 5 14 20 19 2 99 67 13 66↙ [正确输出]

66 13 67 99 2 19 20 14 5 70 参考程序:

#include main()

{ int a[10]; int i;

for(i=0;i<10;i++) scanf(\for(i=9;i>=0;i--) printf(\}

[题目1040:统计不同数字个数]

由键盘输入20 个整数,统计不同数字的个数。 [ 自测数据] [键盘输入]

70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙

[正确输出] 16

[提示]上述答案中,因为5 有1 个重复数字,11 有1 个重复数字,22 有2 个重复数字,故不同数字有16

个,分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 33

参考程序:

#include\main()

{ int a[20]; int i,t,p=0;

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

{ scanf(\for(t=0;t

printf(\}

[题目1062:打印矩阵]

由键盘输入一个3×4 的矩阵,要求输出它的转置矩阵。 [ 自测数据]

[键盘输入] [正确输出]

1 6 9 3 1 1 1 1 1 0 2 6 1 9 1 9 8 9 9 0 8

3 2 9

参考程序:

#include main()

{ int a[3][4],b[4][3],i,j; for(i=0;i<3;i++) for(j=0;j<4;j++)

{ scanf(\b[j][i]=a[i][j]; }

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

{ for(j=0;j<3;j++) printf(\printf(\} }

*[题目1047:冒泡排序]

由键盘输入10 个数,用“冒泡法”对10 个数从小到大排序,并按格式要求输出。代码如下,请填充完

整。数字间由一个空格分隔。 #incude \main()

{ int a[10], i,j, t;

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

scanf(\for( ___________)

{ for(j=0;j<____;j++) if (___________) {___________} }

for(i=0;i<10;i++) printf(\}

[ 自测数据] [键盘输入]

70 5 14 20 19 2 99 67 13 66↙ [正确输出]

2 5 13 14 19 20 66 67 70 99 参考程序: