语言 实验五数组程序设计解答_第1页
语言 实验五数组程序设计解答_第2页
语言 实验五数组程序设计解答_第3页
语言 实验五数组程序设计解答_第4页
语言 实验五数组程序设计解答_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言 实验五、数组程序设计解答实验五 数组应用,二, 一、实验目的 1(掌握二维数组的定义和初始化。 2(掌握二维数组元素的引用及其应用。 3(掌握字符数组的定义和初始化。 4(掌握字符数组元素的引用及其应用。 二、实验内容 1(目的掌握二维数组的输出方法。 题目内容已知有二维数组a的定义:int a34=1,2,3,4,5,6,7,8,9,10,11,12;编程序以三行四列的形式输出a数组。 输入无 输出 1 2 3 4 5 6 7 8 9 10 11 12 提示 利用二重for循环结构与printf()。 #include <stdio.h> void main() int

2、a34=1,2,3,4,5,6,7,8,9,10,11,12; int i,j; printf("二维数组:n"); for(i=0;i<3;i+) for(j=0;j<4;j+) printf("%6d",aij); printf("n"); 2(目的掌握二维数组的输入、输出方法。 题目内容已知有一个3行2列的二维数组: 89 76 67 98 54 78 编程序从键盘输入数据存储在二维数组中并以3行2列的形式输出。 输入897667985478 输出 89 76 67 98 54 78 提示 利用二重for循环结构与s

3、canf()、printf()及%4d格式输出。 #include <stdio.h> void main() int a32; int i,j; printf("请输入3行2列二维数组:n"); for(i=0;i<3;i+) for(j=0;j<2;j+) scanf("%d",&aij); for(i=0;i<3;i+) for(j=0;j<2;j+) printf("%4d",aij); printf("n"); 3(目的掌握二维数组的输入、输出、处理方法。 题目

4、内容编程序生成一个5行5列的二维矩阵并输出。 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 输入无 输出 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 提示利用for循环结构生成原则:行下标与列下标相同的数组元素为1其余为0。%4d格式输出。 #include <stdio.h> void main() int a55; int i,j; for(i=0;i<5;i+) for(j=0;j<5;j+) if(i=j) aij=1; else aij=0; for(

5、i=0;i<5;i+) for(j=0;j<5;j+) printf("%4d",aij); printf("n"); 4(目的运用所学知识解决矩阵转置问题。 ×2矩阵编程序将a矩阵转置生成矩阵b,2×3,题目内容设a矩阵是3并输出。 输入a矩阵 输出b矩阵 提示利用不同矩阵行列下标的关系。,b=a, iiji#include <stdio.h> void main() int a32,b23; int i,j; printf("请输入a数组:n"); for(i=0;i<3;i+)

6、for(j=0;j<2;j+) scanf("%d",&aij); for(i=0;i<3;i+) for(j=0;j<2;j+) bji=aij; printf("a数组:n"); for(i=0;i<3;i+) for(j=0;j<2;j+) printf("%4d",aij); printf("n"); printf("b数组:n"); for(i=0;i<2;i+) for(j=0;j<3;j+) printf("%4d&quo

7、t;,bij); printf("n"); 5(目的运用所学知识解决矩阵相乘问题。 题目内容设a矩阵是3×2矩阵b矩阵是2×3矩阵满足矩阵相乘条件编程序将a矩阵×b矩阵生成c矩阵,3×3,并输出。 输入a矩阵、b矩阵 输出 c矩阵 2c,a,b,ijikkj提示计算公式: ,1k#include <stdio.h> void main() int a32,b23,c33=0; int i,j,k; printf("请输入a数组:n"); for(i=0;i<3;i+) for(j=0;j<2

8、;j+) scanf("%d",&aij); printf("请输入b数组:n"); for(i=0;i<2;i+) for(j=0;j<3;j+) scanf("%d",&bij); for(i=0;i<3;i+) for(j=0;j<3;j+) for(k=0;k<2;k+) cij=cij+aik*bkj; n"); printf("a数组:for(i=0;i<3;i+) for(j=0;j<2;j+) printf("%4d",a

9、ij); printf("n"); printf("b数组:n"); for(i=0;i<2;i+) for(j=0;j<3;j+) printf("%4d",bij); printf("n"); printf("c数组:n"); for(i=0;i<3;i+) for(j=0;j<3;j+) printf("%4d",cij); printf("n"); 6(目的运用所学知识解决矩阵问题。 题目内容设有一个5×5方阵编程

10、序判断该方阵是否为对称矩阵。并输出判断结果。 输入 5×5方阵 输出 判断结果 提示 如果矩阵中的每个元素都满足arrayij=arrayji则称这个矩阵为对称矩阵。 #include <stdio.h> void main() int a55; int i,j,flag=0; n"); printf("请输入5*5数组:for(i=0;i<5;i+) for(j=0;j<5;j+) scanf("%d",&aij); for(i=0;i<5;i+) for(j=0;j<5;j+) if(aij!=a

11、ji) flag=1; printf("a数组:n"); for(i=0;i<5;i+) for(j=0;j<5;j+) printf("%4d",aij); printf("n"); if(flag=0) printf("是对称矩阵。n"); else printf("不是对称矩阵。n"); 6(目的运用所学知识解决矩阵问题。 题目内容 设有一个3行5列的二维数组编写程序从键盘输入数据建立这个二维数组并找出二维数组中的鞍点。 输入 3×5矩阵 输出 鞍点 提示鞍点是指在行

12、上是最大但是所在列最小的元素,这样的元素可能不存在,。 #include <stdio.h> void main() int a35; int i,j,k,m,max,flag; printf("请输入3*5数组:n"); for(i=0;i<3;i+) for(j=0;j<5;j+) scanf("%d",&aij); printf("a数组:n"); for(i=0;i<3;i+) for(j=0;j<5;j+) printf("%4d",aij); printf(&

13、quot;n"); for(i=0;i<3;i+) max=ai0; for(j=0;j<5;j+) if(aij>max) max=aij;k=j; for(m=0;m<3;m+) if(amk<max) flag=1; else flag=0; if(flag=0) printf("鞍点是:a%d%d=%dn",i,k,aik); 7(目的 运用所学知识解决实际问题。 题目内容 如下数据表显示了4个销售人员所售的3种物品的数量。 物品1 物品2 物品3 销售人员1 310 275 365 销售人员2 210 190 325 销售人

14、员3 405 235 240 销售人员4 260 300 380 请使用二维数组编写程序计算并显示以下信息: ,1,每个销售人员的销售总值 ,2,每种物品的销售总值 ,3,所有销售人员销售的全部物品的总值 输入 销售数据表数据 输出 计算结果 提示 建立一个5×4的二维数组 #include <stdio.h> void main() int a54; int i,j; printf("请输入4*3数组:n"); for(i=0;i<4;i+) for(j=0;j<3;j+) scanf("%d",&aij);

15、printf("原数组:n"); for(i=0;i<4;i+) for(j=0;j<3;j+) printf("%4d",aij); printf("n"); for(j=0;j<3;j+) a4j=0; for(i=0;i<4;i+) a4j=a4j+aij; for(i=0;i<5;i+) ai3=0; for(j=0;j<3;j+) ai3=ai3+aij; printf("所求数组:n"); for(i=0;i<5;i+) for(j=0;j<4;j+) p

16、rintf("%4d",aij); printf("n"); 8(目的 运用所学知识解决实际问题。 设某班有20个学生每个学生选修了三门课编写程序输入20题目内容 个学生三门课的成绩计算每个学生的平均成绩最后输出每个学生三门课的成绩及平均成绩。 输入 20个学生三门课的成绩 输出 每个学生三门课的成绩及平均成绩 提示 建立一个20×4的二维数组 #include <stdio.h> void main() int a204; int i,j; printf("请输入20*3数组:n"); for(i=0;i<

17、;20;i+) for(j=0;j<3;j+) scanf("%d",&aij); printf("原数组:n"); for(i=0;i<20;i+) for(j=0;j<3;j+) printf("%4d",aij); printf("n"); for(i=0;i<20;i+) ai3=0; for(j=0;j<3;j+) ai3=ai3+aij; printf("所求数组:n"); for(i=0;i<20;i+) for(j=0;j<4;j

18、+) printf("%4d",aij); printf("n"); 9(目的 运用所学知识解决实际问题。 题目内容 编写程序生成并输出杨辉三角形,10行,。 输入 无 输出 杨辉三角形 提示 初值:int a1010=1,1,1 #include <stdio.h> void main() int a1010=1,1,1; int i,j; for(i=2;i<10;i+) a0i=1;aii=1; for(j=0;j<10;j+) aij=ai-1j-1+ai-1j; printf("所求:n"); for

19、(i=0;i<10;i+) for(j=0;j<=i;j+) printf("%4d",aij); printf("n"); 10(目的 运用所学知识解决实际问题。 题目内容 编写程序按要求填充5×5矩阵并输出。 ,1, 左上三角为+1 ,2, 右下三角为-1 ,3, 从右到左的对角线为0 输入 无 输出 要求填充的5×5矩阵 提示 #include <stdio.h> void main() int a55; int i,j; for(i=0;i<5;i+) for(j=0;j<4-i;j+) a

20、ij=+1; for(i=0;i<5;i+) for(j=4-i;j<5;j+) aij=-1; for(i=0;i<5;i+) a4-ii=0; printf("所求:n"); for(i=0;i<5;i+) for(j=0;j<5;j+) printf("%4d",aij); printf("n"); 11(目的 掌握字符数组的定义、初始化、输出。 题目内容 编写程序定义一个字符数组并赋初值“Happy New year:”输出这个字符串。 输入 无 输出字符串 提示使用for循环结构输出 #incl

21、ude <stdio.h> void main() char ch15='H','a','p','p','y',' ','N','e','w',' ','y','e','a','r','!' int i; for(i=0;i<15;i+) printf("%c",chi); printf("n");

22、12(目的 掌握字符数组的定义、初始化、处理、输出。 题目内容 编写程序定义一个字符数组并赋初值“Happy New year:”将其中的小写字母转换成大写并输出处理后的字符串。 输入 无 输出 处理后的字符串 提示逐个判断数组中的各元素是否小写字母是则转换成大写字母,ASCII值-32,不是则不做处理,使用for循环结构输出。 #include <stdio.h> void main() char ch15='H','a','p','p','y',' ','N',

23、9;e','w',' ','y','e','a','r','!' int i; for(i=0;i<15;i+) if(chi>='a'&&chi<='z') chi=chi-32; printf("%c",chi); printf("n"); 。 13(目的 掌握字符数组的定义、字符串的输入与输出题目内容 编写程序定义一个字符数组从键盘输入你姓名的全拼音字符串存储到已经

24、定义好的字符数组中最后输出你姓名的全拼音字符串。 你姓名的全拼音字符串 输入 输出 你姓名的全拼音字符串 提示使用标准库函数gets()、puts()。 #include <stdio.h> void main() char name11; printf("请输入你的姓名:"); gets(name); printf("你输入的姓名是:"); puts(name); 14(目的 掌握字符串的处理、输出。 题目内容编写程序定义两个字符串变量使用输入函数为其赋值将两个字符串连接起来并输出,不用strcat函数,。 输入两个字符串 输出 连接后的字

25、符串 提示 逐个字符进行处理使用while循环结构以及字符串的结束标志0。 #include <stdio.h> void main() char a50,b20; int i,j; printf("输入第一个字符串:n"); gets(a); printf("输入第二个字符串:n"); gets(b); i=0; while(ai!='0') i+; j=0; while(bj!='0') ai=bj; i+; j+; ai='0' printf("所求:n"); i=0;

26、 while(ai!='0') printf("%c",ai); i+; printf("n"); 15(目的 掌握字符串的处理、输出。 题目内容编写程序输入一个字符串和一个单个字符在输入的字符串中删除所有的单个字符。 例如:从字符串nedtworkdtou中删除d的情况。 删除前 n e d t w o r k d t o u 0 删除后 n e t w o r k t o u 0 输入 一个字符串和一个单个字符 输出 删除后的字符串 提示 逐个字符进行处理 #include <stdio.h> void main() ch

27、ar a50,b; int i,j; printf("输入一个字符串:n"); gets(a); printf("输入一个待删除的字符:n"); scanf("%c",&b); i=0; while(ai!='0') printf("%c %cn",ai,b); if(ai=b) j=i; while(aj!='0') aj=aj+1; j+; i+; ai='0' :n"); printf("所求i=0; while(ai!='0

28、') printf("%c",ai); i+; printf("n"); 16(目的 掌握字符串的处理、输出。 题目内容编写程序从键盘输入5个学生的姓名输出最长的学生姓名。 输入 5个学生的姓名 输出 最长的学生姓名 提示 定义char names530,max30;利用求最大值算法使用strlen(),strcpy()函数。 #include <stdio.h> #include <string.h> void main() char names530,max30; int i,length,length1,m; for

29、(i=0;i<5;i+) printf("输入第%d个姓名:n",i+1); gets(namesi); strcpy(max,names0); length=strlen(max); for(i=1;i<5;i+) length1=strlen(namesi); if(length1>length) strcpy(max,namesi); length=strlen(max); m=i; printf("所求:n"); puts(max); printf("n"); 17(目的 掌握字符串的定义、输入、处理、输出。

30、 题目内容 编写程序输入一个字符串对该字符串中的字符从小到大排序并输出。输入 一个字符串 输出 排序后的字符串 提示逐个字符进行处理 #include <stdio.h> void main() char str80,temp,mins; int i,j; printf("输入字符串:n"); gets(str); printf("输入的字符串是:n"); puts(str); for(i=0;stri!='0'i+) mins=i; for(j=i+1;strj!='0'j+) if(strj<strmins) mins=j; temp=strmins; strmins=stri; stri=temp; printf("所求:n"); puts(str); printf("n"); 18(目的 掌握字符串的处理、输出。 题目内容编写程序定义char names530,并赋初值5个学生姓名从键盘输入1个需要查找的学生姓名在存放的5个学生姓名中查找有无该学生输出查找信息。 输入 1个需要查找的学生姓名 输出 查找信息 提示 顺序查找算法利用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论