[工学]计算机上机实习报告

上传人:tian****1990 文档编号:73231532 上传时间:2019-01-25 格式:DOC 页数:15 大小:194.18KB
返回 下载 相关 举报
[工学]计算机上机实习报告_第1页
第1页 / 共15页
[工学]计算机上机实习报告_第2页
第2页 / 共15页
[工学]计算机上机实习报告_第3页
第3页 / 共15页
[工学]计算机上机实习报告_第4页
第4页 / 共15页
[工学]计算机上机实习报告_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《[工学]计算机上机实习报告》由会员分享,可在线阅读,更多相关《[工学]计算机上机实习报告(15页珍藏版)》请在金锄头文库上搜索。

1、 班级: 自本一班 学号: 201028004 姓名: 徐艳改错题第1题1、 题目要求 函数fun的功能是:用递归算法计算斐波拉契级数数列中第n项的值。从第l项起,斐波拉契级数序列为1、1、2、3、5、8、13、21、;例如:当给n输入7,该项的斐波拉契级数值为13。#include long fun(int g)/*found*/ switch(g); case 0:return 0;/*found*/ case 1;case 2: return 1; return (fun(g-1)+fun(g-2);main() long fib; int n; printf(input n: ); s

2、canf(%d,&n); printf(n=%dn,n); fib=fun(n); printf(fib=%dnn,fib);2、 错误分析语句swich(g);错误,swich(表达式)后不应该带有“;”,应该为:swich(g)语句case 1;case 2: return 1;错误,case语句常量后应该是“:”,应该为:case:case:return 1;第2题一、题目要求下列给定程序中,函数fun的功能是:将字符串p中的所有字符复制到字符串b中,要求每复制三个字符之后插入一个空格。例如,在调用fun函数之前给字符串a输入ABCDEFGHIJK,调用函数之后,字符串b中的内容则为AB

3、C DEF GHI JK。#include void fun(char *p,char *b) int i,k=0; while(*p)/*found*/ i=1;/*found*/ while(i3 | *p) bk=*p; k+;p+;i+; if(*p)/*found*/ bk= ; bk=0;main() char a80,b80; printf(enter a string ); gets(a); printf(the original string: ); puts(a); fun(a,b); printf(nthe string after insert space: ); pu

4、ts(b); printf(nn);二、错误分析题目中p是指针型变量作函数参数,因此给bk赋值时出现错误。应改为bk=*p;题目要求赋值3个字符后加一个空格,所以应该是先给bk赋值空格,然后变量k再加1。应改为bk= ;k+第3题一、题目要求下列给定程序中,函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。#include #include #define MAXLINE 20fun ( char *pstr6) int i, j ; char *p ; for (i = 0 ; i 5 ; i+ ) for (j = i + 1; j 0) p = *(pstr + i) ;

5、/*found*/ *(pstr + i) = pstr + j ; *(pstr + j) = p ; main( ) int i ; char *pstr6, str6MAXLINE ; clrscr( ) ; for(i = 0; i 6 ; i+) pstri = stri ; printf( nEnter 6 string(1 string at each line): n ) ; for(i = 0 ; i 6 ; i+) scanf(%s, pstri) ; fun(pstr) ; printf(The strings after sorting:n) ; for(i = 0 ;

6、 i 6 ; i+) printf(%sn, pstri) ;二、错误分析根据for语句的格式,各表达式之间应用;割开,应该为for (j = i + 1; j 6; j+)根据用指针表示数组元素的方法,*(pstrI)表示pstr所指向数组的第I个元素,同理*(pstrj)表示pstr所指向数组的第j个元素。所以应该为)*(pstr + i) = *(pstr + j) ;第4题一、题目要求下列给定程序中函数fun的功能是:计算正整数num的各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。#include #include long fun (long

7、num)/*found*/ long k; do k*=num%10;/*found*/ num=10; while(num); return (k);main( ) long n ; clrscr() ; printf(Please enter a number:); scanf(%ld,&n) ; printf(n%ldn,fun(n) ;二、错误分析k用来存放各位数字的积,初始值应为1,应该为long k=1;除号应用/来表示,所以应改为num/=10;第5题一、题目要求下列给定程序中,fun函数的功能是:求出以下分数序列的前n项之和。和值通过函数值返回main()函数。 例如,若n=5

8、,则应输出8.391667。#include #include /*found*/fun(n)int n ; int a=2,b=1 ,c,k ; double s=0.0 ; for(k =1;k=n;k+ ) s=s+1.0*a/b ;/*found*/ c=a; a+=b;b+=c; return(s) ;main( ) int n = 5 ; clrscr( ) ; printf( nThe value of function is: %lfn,fun(n) ;二、错误分析由语句return(s)和变量s定义为double数据类型可知,该函数定义时其类型标识符为double类型。所以应

9、该为double fun(int n)注意数据类型double的书写格式。所以应该为s=s+(double)a/b;第6题一、题目要求下列给定程序中,函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3。程序运行后a中的值为3,b中的值为8。#include #include int fun(int *x,int y) int t;/*found*/ t=x;x=y;/*found*/ return(y);main() int a=3, b=8; clrscr(); printf(%d %dn,a,b); b=fun(&a,b

10、); printf(%d %dn,a,b);二、错误分析变量t作为中间变量,然后进行数据交换,因参数x是指针变量,交换时应使用*x,所以应该为t=*x;*x=y;确定返回值,根据代码bfun(8a,b)可以知道返回值将赋给变量b,而b中应存放交换前*中的值,所以函数应返回变量t,所以应该为return(t);第7题一、题目要求下列给定程序中,函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。例如,若给numl和num2分别输入49和2l,则输出的最大公约数为7;若给numl和num2分别输入27和81,则输出的最大公约数为27。#include int fun(int a,

11、 int b) int r,t; if(ab)/*found*/ t=a;b=a;a=t; r=a%b; while(r!=0) a=b;b=r;r=a%b;/*found*/ return(a); main() int num1,num2,a; printf(input num1 num2: );scanf(%d%d,&num1,&num2); printf(num1=%d num2=%dnn,num1,num2); a=fun(num1,num2); printf(the maximun common divisor is %dnn,a);二、错误分析将a、b的值互换,应先将a的值赋给中间变量t,再将b的值赋给a,最后将t的值赋给b,所以应该为t=a; a=b; b=t;当余数r为0时,除数b即为所求的最大公约数,所以函数应返回b,所以应该为return(b);第8题一、题目要求下列给定程序中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为7531。#include #include void fun (long s, long *t) int d; long sl=1;/*found*/ t = 0; while ( s 0) d = s%10;/*found*

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号