程序设计实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生实训报告册课程名称:程序设计基础实训
姓名龚枫
学号**********
班级软件161
指导教师石怡
实训时间2017.3.13 —2017.3.24
实训地点J4 306
物联网工程学院2017年3 月
实训报告
double fun( STREC *a, STREC *b, int *n )
{
int i;
double av=0.0;
*n=0;
for(i=0;i av=av+a[i].s; av=av/N; for(i=0;i if(av<=a[i].s) { b[*n]=a[i];*n=*n+1;} /*将高于等于平均分的学生存入b所指存储单元中,并统计人数*/ return av; } 2.编写函数fun,其功能是计算: ……s作为函数值返回。 =++++ s m ln(1)ln(2)ln(3)ln() 在C语言中可调用log(n)函数求ln(n)。log函数的引用说明为:double log(double x)。 例如,若m的值为20,则fun函数值为6.506583。 【答案】 double fun( int m ) { int i; double s=0.0; for(i=1;i<=m;i++) s=s+log(i); /*计算s=ln(1)+ln(2)+ln(3)+…+ln(m)*/ return sqrt(s); /*对s求平方根并返回*/ 3.程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函 4. 编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。 例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。 【答案】 (1) M (2) < (3) k 5. 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串中的前导*号全部移到字符串的尾部。 例如,字符串中的内容为:"*******A*BC*DEF*G****",移动后,字符串中的内容应当是:"A*BC*DEF*G***********"。在编写函数时,不得使用C语言提供的字符 串函数。 【答案】 (1) a (2) (3) score[i] 6. 下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、…… 例如,若给n输入7,则该项的斐波拉契数值为13。 【答案】 (1) a[i] (2) a[j] (3) a[j]3.实训中遇到的问题和解决方法(至少5个问题) 7. 下列下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为7654321时,t中的数为7531。 【答案】 (1)void fun(long s,long *t) (2)sl=sl*10; 8. 下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。 例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。 【答案】 (1)t=a;a=b;b=t; (2)return(b);或return b; 9. 下列给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。 例如,s所指的字符串为"def35adh3kjsdf7",执行后结果为"defadhajsdf3537"。【答案】 (1)for (j = i + 1; j < 6; j++) (2)*(pstr + i) = *(pstr + j) ; 10. 下列给定程序中fun函数的功能是:求表达式 s=aa… aa-…-aaa -aa -a (此处aa… aa表示n个a,a和n的值在1至9之间) 例如,a=3,n=6,则以上表达式为: s=333333-33333-3333-333-33-3 其值是296298。 a和n是fun函数的形参,表达式的值作为函数值传回main函数。 【答案】 (1)long s=0, t=0; (2)t=t/10; 11. 程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量s中的数据进行修改,并把a的地址作为函数值返回主函数,从主函数中输出修改的数据。 例如,a所指变量s中的学号、姓名和三门课的成绩依次是:10001、"ZhangSan"、95、80、88,修改后输出t中的数据应为:10002、"LiSi"、96、81、89。 【答案】 (1) struct student * (2) a->score[i] (3) a 12. 下列给定程序中已建立了一个带头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。【答案】 (1) q (2) next (3) next 13. 程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是:从文