C语言上机必备的 实验答案 华农人(6)

2020-05-04 15:40

参考程序:

#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

printf(\

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

16

实验 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

17

参考程序:

#include\main()

{ int a[20];

int i,t,p=0;

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

{ scanf(\

for(t=0;t

if(a[t]==a[i])break; if(t==i) p++; }

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;

18

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 参考程序:

#include main()

{ int a[10];

int i,j,t;

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

scanf(\

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

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

if(a[j]>a[j+1])

{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }

}

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

printf(\

}

*[题目 1046:计算高精度加法]

由键盘输入两个位数很长的整数(一行一个数,每个数最长不超过 80 位),试计算并输出这两个数 的和。 [自测数据] [键盘输入]

1234567890123456789↙ 987654321098765↙ [正确输出]

1235555544444555554

19

参考程序:

#include \#include \main()

{ int a[100]={0},b[100]={0},c[100]={0};

char s[101];

int i=0,n1=0,n2=0,max=0,e=0; gets(s);

n1=strlen(s);

for(i=n1-1;i>=0;i--) a[n1-1-i]=s[i]-'0'; gets(s);

n2=strlen(s);

for(i=n2-1;i>=0;i--) b[n2-1-i]=s[i]-'0'; if(n1>n2) max=n1; else max=n2;

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

{ c[i]=(a[i]+b[i]+e);

e=(a[i]+b[i]+e)/10; }

if(c[max]>0) printf(\for(i=max-1;i>=0;i--) printf(\}

*[题目:找矩阵中的鞍点]

由键盘输入一个 3×4(3 行 4 列)的矩阵,输出矩阵中的鞍点(即在矩阵行中最大,列中最小的数)。若没有鞍点,输出“NO”字样。 [自测数据] [键盘输入]

87 90 110 98↙ 70 97 210 65↙ 98 45 120 30↙ [正确输出] 110

20


C语言上机必备的 实验答案 华农人(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:智者大师《修习止观坐禅法要》

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: