2012上机实验手册

上传人:痛*** 文档编号:145074481 上传时间:2022-08-28 格式:DOC 页数:14 大小:118KB
返回 下载 相关 举报
2012上机实验手册_第1页
第1页 / 共14页
2012上机实验手册_第2页
第2页 / 共14页
2012上机实验手册_第3页
第3页 / 共14页
点击查看更多>>
资源描述
新视野教育实验一 熟悉C语言实验要求:1、能够熟练使用VC 6.0开发环境;2、理解C语言顺序结构;熟练掌握printf函数和scanf函数的使用方法。特别要求:在实验中遇到困难时,切忌不要动不动就问老师,而是应该先思考。如果确实不能解决困难,先与坐在旁边的同学讨论,而无论这个同学在以前是否认识。如果有同学问你问题,无论你是否能解决这个问题,都应该和他讨论。如果讨论了仍然不能解决问题,就一起问老师。讨论问题的好处在于能够深刻的理解问题,记住问题。实验内容:一、 熟悉VC开发环境,详见教材第1页,认真完成上面的求2数之和的练习。二、理解顺序结构前面通过最简单的例子熟悉了VC的开发环境,接下来的任务是熟练掌握printf函数和scanf函数。1、练习printf函数(1)练习printf中的格式控制字符串。新建一个文件,在TC中输入下面的程序代码:main( )int i=2000;float j=2.71828;printf(i=%d,j=%f,j*10=%fn, i , j ,j*10);查看程序的运行结果,将其记录下来: 我们将程序中printf函数那一行改为:printf(j*10=%d,i=%f,j=%fn, i , j ,j*10);运行程序,记录下运行结果: 再将其改为:printf(i is %d,j is %f,j*10 is %fn, i , j ,j*10);运行程序,记录下运行结果 最后将其改为printf(%d, %f,%fn, i , j ,j*10);运行程序,记录下运行结果 看看这四个结果有什么相同点和不同点,想想在printf函数的格式控制字符串(即双引号引起来的部分)中的i和j有什么作用。结论:在格式控制字符串中出现的变量名,仅仅起一个提示的作用,它将被原样输出到屏幕上。其有无以及正确与否,均不影响后面值的输出。(2)练习整数的不同格式控制符。新建一个文件,在VC中输入下面的程序代码:main( )int a=32767; printf(%dn,a); printf(%on,a); printf(%xn,a);运行程序,看看相同的变量,在不同格式控制符的控制下,向屏幕输出不同的结果。(3)练习printf函数对整型数据输出宽度的控制。新建一个文件,在TC中输入下面的程序代码:main( )int a=5732; printf(%dn,a); printf(%6dn,a); printf(%3dn,a);看看程序的运行结果,记住printf函数对整型数据输出宽度的控制规律。(3)练习printf函数对实型数据输出宽度的控制。新建一个文件,在TC中输入下面的程序代码:main( ) float a=3.14159; printf(p=%10fn,a); printf(p=%4fn,a); printf(p=%.2fn,a); printf(p=%.4fn,a); printf(p=%2.4fn,a); printf(p=%10.4fn,a);根据本实验记住printf函数对实型数据输出宽度的控制规律,注意对小数位数的舍弃情况。(4)验证整型数据的存储结构。新建一个文件,在TC中输入下面的程序代码:main( )int a=-1; printf(%dn,a); printf(%un,a);用笔把-1在两个字节中的补码计算出来,在与程序第二个输出结果进行比较,想想为什么。2、练习scanf函数(1)练习使用scanf函数从键盘输入整型数据。新建一个文件,在TC中输入下面的程序代码:main( )int a;scanf(%d,&a);printf(%dn,a*10);运行程序,此时程序将停止在scanf函数中,等待用户的数据输入。因此,用户看到的是一个黑色的屏幕,光标在上面一闪一闪。如果不输入数据,则无论敲多少个回车键,程序均不能结束,也就是不能回到TC的界面。在屏幕上输入45,再回车。程序运行结束,按AltF5查看运行结果。这是会发现在屏幕上输出了数字450,这就是我们要求程序输入的东西。多运行几次程序,每次输入不同的数字,看看运行结果。想想用scanf函数给变量赋值和直接给变量赋值有什么不同。(2)练习使用scanf函数获取长整型数据。将上一个例子改为如下:main( )long a;scanf(%ld,&a);printf(%dn,a*10);注意,%ld中的l是字母l,不是数字1。运行程序,输入数据,看看程序的运行结果,然后将scanf函数中的格式控制符%1d改为%d,即将scanf函数改为:scanf(%d,&a);运行程序,看看结果,想想为什么。结论:使用scanf函数输入长整型数据时,必须使用%ld,不得省略字母l。(3)练习使用scanf函数获取单精度实型数据。新建一个文件,在TC中输入下面的程序代码:main( )float a;scanf(%f,&a);printf(%fn,a*10);运行程序,输入数据,查看程序运行结果。(4)练习使用scanf函数获取双精度实型数据。将上一个例子改为如下:main( )double a;scanf(%lf,&a);printf(%fn,a*10);运行程序,输入数据。然后去掉%lf中的字母l,再运行程序,输入相同数据,查看程序运行结果。比较两次结果,想想为什么。结论:使用scanf函数输入双精度实型数据时,必须使用%lf,不得省略字母l。(5)练习printf和scanf配合使用。新建一个文件,在TC中输入下面的程序代码:main( ) int a;printf(Input a number:n);scanf(%d,&a);printf(%dn,a);运行程序,输入数据,看看程序的运行结果。将程序第三行“printf(Input a number:n);”删除,再运行程序,输入相同数据,再看看程序的运行结果,想想为什么。结论:scanf函数前面的printf函数仅仅起到提示作用,其有无或具体是什么内容,均不影响后面的scanf函数。(6)同时输入多个数据。新建一个文件,在TC中输入下面的程序代码:main( ) int a;float b,c;scanf(%d%f%f,&a,&b,&c);printf(a=%d,b=%f,c=%fn,a,b,c);注意在scanf函数中%d和两个%f之间均无其它符号。运行程序,输入3个数据。注意这3个数据之间只能以空格、制表符号或回车符隔开,不能以逗号或其它符号隔开。实验二 选择结构 循环结构实验要求:1、熟悉选择结构的语法;2、熟悉循环结构的语法,能编写简单的程序;3、学习单步调试程序。实验内容:一、选择结构(1)新建一个文件,输入以下程序代码:main( )int a;scanf(%d,&a);if(a=60)printf(Pass!n);elseprintf(Fail!n);将程序多运行几遍,每次输入0100之间不同的数据,看看程序的运行结果。(2)新建一个文件,输入以下程序代码:main( )int a;scanf(%d,&a);if(a=90)printf(An);else if(a=80)printf(Bn);else if(a=70)printf(Cn);else if(a=60)printf(Dn);elseprintf(En);将程序多运行几遍,每次输入0100之间不同的数据,看看程序的运行结果。(3)新建一个文件,输入以下程序代码:main( )inta=4,b=3,c=5,t;if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t;printf(%d %d %dn,a,b,c);运行程序,看看程序的运行结果。再将上面的程序改为:main( )inta=4,b=3,c=5,t;if(ab) t=a;a=b;b=t;if(ac) t=a;a=c;c=t;printf(%d %d %dn,a,b,c);注意两个程序的区别,运行程序,看看程序的运行结果,比较一下两次结果的不同之处,分析一下原因。二、循环结构在编写循环结构程序的时候,往往由于忘记了对循环变量的值进行改变,从而变成了死循环。其症状是屏幕一直停留在DOS界面,不能做任何响应,这时候就需要强制将程序结束。按组合键Ctrl+C可以强制结束程序。(1)求出1100之间的和。新建一个文件,输入以下程序代码:main( ) int i=0,s=0;while(i=100)s+=i;i+;printf(%dn,s);运行程序,查看程序的运行结果。将循环判断条件改为i100,再运行程序,看看程序的运行结果,分析一下原因。试着将上面的程序改为do-while循环结构和for循环结构,分别运行程序,查看程序运行结果。(2)新建一个文件,输入以下程序代码:main( )int i=1,sum=1;while(i=60)printf(Pass!n);elseprintf(Fail!n);while(a!=0)运行程序,输入数据,看看程序的运行结果。当输入数据0时,结束程序的运行。(4)利用公式/4=1-1/3+1/5-1/7+1/9-求的近似值,直到最后一项的绝对值小于10-4为止。新建一个文件,输入以下程序代码:#include math.hmain( ) int i=1,a=1; float pi=0,s=a*1.0/i; while(fabs(s)=1e-4) pi+=s; a=-a; i+=2; s=a*1.0/i; pi*=4; printf(%fn,pi);说明:fabs是求绝对值的函数,调用fabs函数必须包含头文件math.h。运行上面的程序,查看运行结果,思考并验证下面的几个问题:1、变量a起什么作用;2、如果将表达式s=a*1.0/i写为s=a/i,结果会怎样;还可以写出那些与这个表达式等价的表达式;3、如果要提高值的精度,应如何修改程序。4、试着编写程序,求e的值。e1+课后练习题:1、编写程序,任意输入一个正整数,然后把它转换为小时,分钟,秒表示。如3700,则为1小时1分40秒.2、编写程序,读入3个整数给a,b,c,然后把它们的值交换,把a的值给b,把b的值给c,把c的值给a。3、 (提高题)编写程序,输入你的生日,然后再输入当前的日期,程序将输出你的年龄,并输出你在这个世界上存在了多少天。4、写一个程序计算1到100的和,并改进可以计算任意2个整数之间的和。实验三 函数实验要求:1、熟悉字符型数据的输入输出函数;2、理解函数,能编写简单的函数;复习前面学习过的内容;3、熟悉全国计算机等级考试上机考试题型。实验内容:一、字符型数据(1)新建一个文件,输入以下程序代码:main( ) char a; scanf(%c,&a); printf(%c %dn,a,a);运行程序,输入一个字符,看看运行结果。然后将程序改成使用getchar()函数和putchar()函数进行输入和输出:main( ) char a; a=getchar( ); putchar(a);(2)编写程序,输出小写字母的ASCII码表。新建一个文件,输入以下程序代码:main( ) int i;char a; for(i=0;i26;i+)a=a+i;printf(%c %d ,a,a);if(i+1)%5=0)printf(n);运行程序,查看程序的运行结果。如果删除程序的第七行和第八行,即:main( ) int i;char a; for(i=0;i26;i+)a=a+i;printf(%c %d ,a,a);再运行程序,看看程序的运行结果,比较两次结果的不同点。二、函数(1)新建一个文件,输入以下程序代码:void swap(int x,int y)int t;t=x; x=y; y=t;printf(%d %d ,x,y);main( )int a=3,b=4;swap(a,b);printf(%d %dn,a,b);运行程序,看看程序的运行结果,理解函数参数的单向传递。从第二个实验开始均为全国计算机等级考试上机考题,每题均为40分,请认真练习并熟练掌握。(2)新建一个文件,输入以下程序代码:#include float fun ( float h )main( ) float a; printf (Enter a: ); scanf ( %f, &a ); printf ( The original data is : %f nn , a ); printf ( The result : %fn, fun ( a ) );输入完毕后按F9键编译程序。如果程序没有错误,独立完成fun函数的内容,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。例如:实型数为 1234.567, 则函数返回 1234.57;实型数为 1234.564, 则函数返回 1234.56。完成编程后运行程序,输入上面所举的数据例子,看看程序是否能得出正确的结果。以下程序仅供参考:float fun ( float h )long a;a=h*1000;a=(a+5)/10;return a/100.0;(3)新建一个文件,输入以下程序代码:#include #include double fun( int n)main( )printf(s =%fn, fun ( 1000) );输入代码无勿后独立完成fun函数的内容,函数的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。完成编程后运行程序,看看程序是否能得出正确的结果。以下程序仅供参考:double fun( int n) int i; double s=0; for(i=1;in;i+) if(i%3=0 & i%7=0) s+=i; return sqrt(s);注意记住求平方根的函数sqrt的用法。(4)新建一个文件,输入以下程序代码:#include double fun( int n )main( ) printf(%fn, fun(10);输入代码无勿后独立完成fun函数的内容,函数的功能是:计算并输出下列级数和: 1 1 1 S = + + + 12 23 n(n+1)例如,当n = 10时,函数值为:0.909091。完成编程后运行程序,输入上面所举的数据例子,看看程序是否能得出正确的结果。以下程序仅供参考:double fun( int n ) int i; double s=0; for(i=1;i=n;i+) s+=1.0/(i*(i+1); return s;(5)新建一个文件,输入以下程序代码:#include #include double fun ( double eps)main( ) double x; printf(Input eps:) ; scanf(%lf,&x); printf(neps = %lf, PI=%lfn, x, fun(x);输入代码无勿后独立完成fun函数的内容,函数的功能是:根据以下公式求的值(要求满足精度0.0005, 即某项小于0.0005时停止迭代): 1 12 123 1234 12n = 1 + + + + + 2 3 35 357 3579 35(2n+1)程序运行后,如果输入精度0.0005,则程序输出为3.14。完成编程后运行程序,输入上面所举的数据例子,看看程序是否能得出正确的结果。以下程序仅供参考:double fun ( double eps) int i=0; double pi=0,a=1; while(a=eps) pi+=a; i+; a=a*i/(2*i+1); return pi*2;(6)新建一个文件,输入以下程序代码:#include #include double fun(double x , int n)main( ) printf(%fn, fun(0.3,10);输入代码无勿后独立完成fun函数的内容,函数的功能是计算下列级数和,和值由函数值返回。例如,当n = 10,x0.3时,函数值为1.349859。完成编程后运行程序,输入上面所举的数据例子,看看程序是否能得出正确的结果。以下程序仅供参考:double fun(double x , int n) int i; double s=1,a=1; for(i=1;i=n;i+) a=a*x/i; s+=a; return s;(7)新建一个文件,输入以下程序代码:#include float fun(int m, int n)main( ) printf(P=%fn, fun (12,8); 输入代码无勿后独立完成fun函数的内容,函数的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m n。 m! P = n!(m-n)!例如:m12,n8时,运行结果为495.000000。完成编程后运行程序,输入上面所举的数据例子,看看程序是否能得出正确的结果。以下程序仅供参考:float fun(int m, int n) int i; float s,p; s=1; for(i=1;i=m;i+) s*=i; p=s; s=1; for(i=1;i=n;i+) s*=i; p=p/s; s=1; for(i=1;i=m-n;i+) s*=i; p=p/s; return p;实验四 指针 数组实验要求:1、熟悉对指针的操作;2、熟悉对数组的操作;3、熟悉全国计算机等级考试上机考试题型。实验内容:一、指针(1)新建一个文件,输入以下程序代码:main( )int a=7,b=8,*p,*q,*r;p=&a;q=&b;r=p; p=q;q=r;printf(%d,%d,%d,%dn,*p, *q,a,b);运行程序,查看程序运行结果。(2)新建一个文件,输入以下程序代码:int f( int *a, int *b)int s;s=*a+*b;return s;main( )int x=2,y=4,s;s=f(&x,&y);printf(%dn,s); 运行程序,查看程序运行结果。(3)新建一个文件,输入以下程序代码:void swap(int *a, int *b)int t;t=*a; *a= *b; *b=t;main( )int x=10, y=20;printf(1)x=%d y=%dn,x,y);swap(&x,&y);printf(2)x=%d y=%dn,x,y);运行程序,查看程序运行结果。比较其与实验三中函数的第一个实验,看看有什么相同点和不同点,并理解它们之间产生差别的原因。(4)新建一个文件,输入以下程序代码:#include void fun(int a, int b, long *c)main( ) int a,b; long c; printf(Input a, b:); scanf(%d%d, &a, &b); fun(a, b, &c); printf(The result is: %ldn, c);输入代码无勿后独立完成fun函数的内容,函数的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。例如,当a45,b=12。调用该函数后,c=4251。完成编程后运行程序,输入上面所举的数据例子,看看程序是否能得出正确的结果。本题为全国计算机等级考试的上机考试题目,分数为40分,请熟练掌握。以下程序仅供参考:void fun(int a, int b, long *c) *c=a/10*1000+a%10*10+b/10+b%10*100;二、数组(1)新建一个文件,输入以下程序代码:main( )int i, n=0,0,0,0,0;for(i=1;i=4;i+)ni=ni-1*2+1;printf(%d,ni);运行程序,查看程序运行结果。(2)新建一个文件,输入以下程序代码:main( )int i;float sum, aver, b10=4,2,8,3,1,10,5,6,12,7;sum=0;for(i=0;i10;i+)sum+=bi;aver=sum / 10;printf(sum=%d aver=%d,sum,aver);运行程序,查看程序运行结果,分析程序的作用。(3)新建一个文件,输入以下程序代码:main( )int i, cnt, b10=58,99,60,42,75,64,86,92,100,71;cnt=0;for(i=0;i=60)cnt+;printf(cnt=%d,cnt);运行程序,查看程序运行结果,分析程序的作用。(4)新建一个文件,输入以下程序代码:main( )int i, max, min, a10;for(i=0;i10;i+)scanf(%d,&ai);max=a0;for(i=1;i10;i+)if(maxai)max=ai;printf(max=%d,max);运行程序,查看程序运行结果,分析程序的作用。(5)新建一个文件,输入以下程序代码:main( )int i,j,a,b5=4,2,8,3,1;for(i=0;i5;i+)for(j=i;jbj)a=bi;bi=bj;bj=a;for(i=0;i5;i+)printf( %d ,bi);运行程序,查看程序运行结果,分析程序的作用。至此,同学们已经对C语言程序有一定程序的了解,可以开始练习上机考试题目了,以后的上机课请带上二级上机题库这本教材来进行考试真题的练习,如果想在课后进行更多的练习,可直接登陆进行学习。新视野教育
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!