《(实验报告参考范例).doc》由会员分享,可在线阅读,更多相关《(实验报告参考范例).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验报告 第 页专业_软件工程 _ 班级 软工*班 学号_* _ 姓名 实验日期:2012年11 月1 日 报告退发 (订正 、 重做) 课程 c语言实验设计 实验名称 数组 一、实验目的(1)掌握一维数组的基本操作;(2)掌握二维数组的基本操作;二、实验环境(描述实验的软件、硬件环境) 安装有Microsoft VC+6.0的PC机三、实验内容、步骤和结果分析(列出实验内容,阐明实验步骤及中间的结果或现象、最终结果和现象,对这些结果和现象进行分析,若出现误差也予以分析误差原因)题目一:从键盘上输入六个整数,存放到整型数组arr中,再从键盘上输入一个整数,存放到整型变量n中。要求: 编程查找整
2、数n是否在数组arr中出现过。若出现,则输出第一次出现的位置,否则,输出no found(1)源码#include #define N 6int main()int arrN;int i,n;printf(输入六个整数:);for(i=0;iN;i+)scanf(%d,&arri);printf(输入一个整数:);scanf(%d,&n);for(i=0;i=N)printf(no foundn);return 0;(2)运行结果截图题目二:编程实现将原数组中的元素逆序存储:例如原数组a=5,2,7,4 ,则逆序后的数组a=4,7,2,5.要求:(1)分别输出逆序前、后数组各元素的数值;(2)
3、逆序实现不要借助其他数组;(1)源码#include int main()int a4=5,2,7,4;int i;printf(原数组:);for(i=0;i=0;i-)printf(%2d,ai);printf(n);return 0;(2)运行结果截图题目三:输出数组中的元素(重复的元素只输出一次): 例如数组int a=1,1,2,3,26,3,4,5,8,7,7,4;则应输出 1 2 3 26 4 5 8 7(1)源码#include int main()int a=1,1,2,3,26,3,4,5,8,7,7,4;int b,i,n;printf(%3d,a0);for(i=1;i
4、12;i+)for(n=0;ni;n+)if(ai=an)b=0;break;else b=1;if(b=1)printf(%3d,ai); printf(n);return 0;(2)运行结果截图 题目四:编写一个程序,将用户输入的十进制正整数转换成任意进制(216)的数(将结果存储在一维数组中,最后显示结果) (1)源码#includeint main()int a,b,d;int i,m,n;int c100;for(d=1;d!=-1;)printf(请输入一个十进制整数:);scanf(%d,&a);if(a=-1)goto done;printf(请输入要转换成的进制:);scan
5、f(%d,&b);for(i=0,m=1;m!=0;i+)ci=a%b;m=a/b;a=m; printf(转换结果为:);for(n=i-1;n=0;n-)printf(%d,cn);printf(n);printf(-n); done:printf(-n); return 0;(2)运行结果截图题目五: 假设共有3名学生,每名学生都有5门成绩(语文、数学、英语、化学、物理)。 要求:(1)从键盘上输入每位学生的5门课程成绩;(2)输出每位同学的总成绩和平均分;(1)源码#includeint main ()int a3=1,2,3;float b5;int i,j;float sum;fo
6、r (i=0;i3;i+)printf(请输入第%d位学生的课程成绩(语文、数学、英语、化学、物理):,ai);for(j=0,sum=0;j5;j+)scanf(%f,&bj);sum =sum+bj;printf(总分:%.2f平均分:%.2fn,sum,sum/5.0);printf(n);return 0;(2)运行结果截图题目六:使用二维数组打印如下图形(杨辉三角)(1)方法1:#includeint main ()int a66=1;int i,j;for(i=1;i6;i+)ai0=1;printf(-n);for(i=0;i6;i+)for(j=0;j=i;j+)if(j=0)
7、 printf(%4d,aij);elseaij=ai-1j-1+ai-1j;printf(%4d,aij);printf(n);printf(-n);return 0;方法2:#includeint main ()int a66=1;int i,j;for(i=1;i6;i+)ai0=1;printf(-n);for(i=0;i6;i+)for(j=0;j=i;j+)if(j=0) aij=aij;elseaij=ai-1j-1+ai-1j;for(i=0;i6;i+)for(j=0;j=i;j+)printf(%4d,aij);printf(n);printf(-n);return 0;(
8、2)运行结果截图题目七:编写一个程序,将两个字符串连接起来。注意:不要用strcat函数。(1)源码#includeint main ()char a3;char b5;char c50;int i;printf(input the value of array a:);scanf(%s,a);printf(input the value of array b:);scanf(%s,b);for(i=0;i8;i+)if (i3)ci=ai;elseci=bi-3;for(i=0;i8;i+)printf(%c,ci);printf(n);return 0;(2)运行结果截图题目八:编写程序,
9、读入一个以符号!结束的长度小于20字节的英文句子,检查其是否为回文(即正读和反读都是一样的)。例如: 读入句子:MADA ADAM! 它是回文,所以输出:YES读入句子:ABCDBA)! 它不是回文,所以输出:NO (1)源码#includeint main ()char a20;int i,k,h;printf(读入一个以符号!结束的长度小于20字节的英文句子:);for(i=0;i20;i+)scanf(%c,&ai);if(ai = !)break;for(k=0;ki;k+)h=i-k-1;if(ak!=ah)printf(Non);break;if(k=i)printf(Yesn);return 0;(2)运行结果截图四、讨论(说明实验过程中遇到的问题及解决办法;未解决/需进一步研讨的问题或建议新实验方法等)题目四中开头会出现这种问题。后来问了老师,就知道是怎么回事啦!明白问题出在哪里真是高兴。题目八开头也是运行不出来,但是在11月9日下午的课上,听老师讲课时恍然大悟 原来自己忘记在输入的那个地方加入地址符,所以总是运行不了。题目六中,把输出语句放入判断的循环内和循环外,好像应该是没有什么区别吧,方法一比较省代码吧。
限制150内