C上机实验报告.docx
《C上机实验报告.docx》由会员分享,可在线阅读,更多相关《C上机实验报告.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一次上机1.1题目:一个首项大于0且等差大于0的等差数列前四项和为26,前四项积为880。请编写函数计算该数列的第20项的值。提示:如果一个数列从第二项起,每一项与它的前一项的差等于同一个常数,这个数列就叫做等差数列,这个常数叫做等差数列的公差。如等差数列:1,3,5,7,9,11。公差是2,该数列的第5项值是9。分析:根据等差数列的特征,估算项数和首项的范围;再利用已知条件以及等差数列求和的公式,在估算出的项数和首项范围内建立循环,依次求和、积,并与已知和、积对比,找到满足已知的首项、公差;最后利用等差数列求末项公式,计算出第20项的值。程序:#includeusing namespace
2、 std;int get(int a,int d,int n) /等差数列求末项公式 int an; an=a+(n-1)*d; return an;int main() int an,sum,mul,a,d,k=0; for(a=1;a0;d-) mul=a*(a+d)*(a+2*d)*(a+3*d); sum=4*a+6*d; if(mul=880&sum=26) k=1;break; if(k=1) /标记k的使用可以使循环提前结束 break; an=get(a,d,20); coutan; return 0;结果:59小结:估算范围是本题一大难点,估算精确度越高越能提高程序运行效率;
3、此外,设置标志值使循环提前结束也可以提高效率。1.2题目:编写函数,实现下面功能:读入两个字符串,比较其是否相等,如果不相等,输出较大的那个。例如:“word”与“world”,第4个字母不同,l的ASCII码比d大,则输出world输入:wordworld输出:world分析:比较两个字符串的大小,可以依次对比对应位置的字符,建立循环依次对比,一旦某位置处字符不等,进入比大小流程,输出该位置处字符较大的字符串即可。程序:#includeusing namespace std;void compare(char a10,char b10) char *p1,*p2; p1=a; p2=b; f
4、or(int i=0;i*(p2+i) couta;break; else couta; /不能收空格 /cinb; cin.getline(a,10); cin.getline(b,10); /可以收空格 compare(a,b); return 0;结果:输入:wordworld输出:world小结:输入字符串的小技巧:cin函数不能接收空格,遇到空格或许回车都会自动判断字符串输入结束;cin.getline(a,n)函数可以接收空格,遇到回车才会判定输入结束。第二次上机:2.1题目:编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。 输入第一行为学生
5、个数,接下来输入N个学生的数据。输出时,先输出N个学生,再输出平均分数(保留小数点后两位)。样例输入:3test1 101 90test2 102 87tets3 103 83样例输出:test1 101 90test2 102 87tets3 103 8386.67分析:建立类Student来存放学生的数据,类中除了成员函数外,还需要构造函数和显示数据的函数;使用对象数组来存放定义的n个学生对象;由于学生信息是手动输入的,类中便不需要获得score的成员函数,直接在输入时累加即可获得sum进而取得平均值程序:#include#include /因为用到了printf#include usin
6、g namespace std;class Student private: string name; int num; int score; public: Student(string x=,int y=0,float z=0) /string类型的使用极大简化了程序 /必须给出默认参数,否则定义对象函数(不设初始值)时会出错 name=x; /string类型可以以赋值的方式进行字符串的复制 num=y; score=z; /int Getscore() /return score; void show() coutname num scoren; for(int i=0;iNameNu
7、mScore; sti=Student(Name,Num,Score); /赋值法调用默认拷贝构造函数 sum+=Score;/sti.Getscore(); for(int i=0;in;i+) sti.show(); printf(%.2lf, sum/n); return 0;结果:样例输入:3test1 101 90test2 102 87tets3 103 83样例输出:test1 101 90test2 102 87tets3 103 8386.67小结:No.1. 若只有带参数(非默认参数)的构造函数,创建对象Student zhang/Student a10会 出错:方法1:带
8、默认参数的构造函数;方法2:不带参数的空构造函数+带参数构造函数。No.2. string类型较字符数组而言更加方便,至少不需要程序员自定义析构函数。No.3. 规定输出格式时,可以添加#include 头文件,便可以使用C语言的printf输出。 2.2题目:设计一个矩形类(Rectangle),属性为矩形的左下和右上角的坐标,矩形水平放置。计算并输入矩形的周长和面积。输入第一行为左下坐标,第二行为右上坐标。输出第一行为周长,第二行为面积。样例输入:0 05 5样例输出:2025分析:建立一个Rectangle类,数据成员为两个顶点的左标,成员函数包括根据面积和周长公式分别求面积和周长的函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 实验 报告
限制150内