欢迎来到天天文库
浏览记录
ID:40978566
大小:42.00 KB
页数:4页
时间:2019-08-12
《《C++语言程序设计》课程作业评讲(3)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《C++语言程序设计》课程作业评讲(3)责任教师敖开云写出每个函数的功能题是难度较大的题,学生往往感到学起来比较困难,本次作业评讲对第三次平时作业的“三、写出每个函数的功能”进行评讲。下文中,黑色的是问题与答案,绿色是说明和解释。写出下列函数的功能:1.#includevoidLI(intn){int*a=newint[n],*p=a+n;for(inti=0;i>a[i];for(i=n-l;i>=0;i--)cout<<*(--p)<<'';cout<<'';del
2、ete[]a;}此题的考核知识点有3点:⑴第三章中for循环的功能和编程方法;⑵第四章中一维数组的定义和用法;⑶第五章中函数的调用与参数的传递。分析:要知道该函数的功能,必须读懂该程序的含义,从程序可知,语句“for(inti=0;i>a[i];”是给a数组赋值,而语句“for(i=n-l;i>=0;i--)cout<<*(--p)<<''”则是按相反方向排列。答案:把从键盘上输入的n个整数按与输入相反的顺序显示出来。注意:此题容易出错的地方是看不懂语句“for(i=n-l;i>=0;i--)co
3、ut<<*(--p)<<''”2.#include第4页共4页voidLK(inta[],intn,int*&b,int&m){floats=0;inti;for(i=0;i=s)*p++=a[i];}此题的考核知识点有3点:⑴第三章中for循环的功能和编程方法;⑵第四章中一维数组的定义和用法;⑶第五章
4、中函数的调用与参数的传递。分析:要知道该函数的功能,必须读懂该程序的含义,从程序可知,前面6行是计算a数组的平均值,最后一个for循环语句是查找数组a中大于等于平均值的所有元素,并赋值给数组b。答案:使一维整数数组a中大于等于所有元素平均值的元素成为动态数组b的元素。注意:此题容易出错的地方是动态数组b。3.//structWorker{//charname[15];//姓名//intage;//年龄//floatpay;//工资//};第4页共4页istream&operator>>(istream&istr,Wor
5、ker&x){cout<<”请输入一个职工记录:姓名、年龄、工资”<>x.name>>x.age>>x.pay;returnistr;}此题的考核知识点是:第八章中的重载的概念。分析:从语句“istream&operator>>(istream&istr,Worker&x)”可知,这是一个类的重载问题,其程序的功能很简单,就是输入姓名、年龄和工资。答案:重载可应于自定义类型Worker的插入运算符。注意:此程序容易出错的地方是看不懂语句“istream&operator>>(istream&ist
6、r,Worker&x)”。4.StructStrNode{charname[15];//字符串域StrNode*next;//指针域};voidQB(StrNode*&f,intn){if(n==0){f=NULL;return;}f=newStrNode;cin>>f->name;StrNode*p=f;while(--p){p=p->next=newStrNode;cin>>p->name;}p->next=NULL;}此题的考核知识点是:第七章中的创建链表。第4页共4页分析:从题意可知,前4行是定义2个域的结构,
7、从结构成员可以看出,定义的是链表,根据后面的程序分析是创建链表。答案:建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变量f带回。注意:此题较难,学生不容易看懂程序,应注意多训练。5.//structStrNode{//charname[15];//字符串域//StrNode*next;//指针域//};voidQC(StrNode*f){while(f){cout<name<<‘‘;f=f->next;}}此题的考核知识点是:第七章中链表的遍历。分析:从语句“cout<n
8、ame<<‘‘;”可知,这是输出每个节点字符串域name,所以这是一个遍历链表的程序。答案:遍历f单链表,即从表头结点开始依次输出f单链表中每个结点的值。注意:此题容易出错的地方是看不懂语句“f=f->next;”。第4页共4页
此文档下载收益归作者所有