实验一C程序运行环境及简单程序的运行33005.docx
广西科技大学实验报告 C语言程序设计 成绩GuangxiUniversity of Science and TechnologyC语言程程序设计计实验报报告院 (系): 计算机机学院 专 业: 通信信工程 班 级: 通通信1332班学生姓名: 王王睿 学 号: 2201330044020042 上 课 时时 间:20113-20014(1) 指 导 老老 师: 王王智文 86广西科技大学实验报告 C语言程序设计 实验一 C程程序运行行环境及及简单程程序的运运行一、实验目目的(1)了解解所用的的计算机机系统的的基本操操作方法法,学会会独立使使用该系系统。(2)了解解在该系系统上如如何编辑辑、编译译、连接接和运行行一个CC 程序序。(3)通过过运行简简单的CC 程序序,初步步了解CC 程序序的特点点。二、实验内内容1.下列程程序的功功能为:计算xx*y的的值并将将结果输输出,程程序中有有8处错错误,尝尝试改正正并上机机调试之之(程序序以文件件名syy1_22.cppp存盘盘)。#inclludee <sstdiio.hh>void maiin iint x=22;y=3;aaA=x*yyprintt (""a=%d",a);prinntf(nn);2.下列程程序的功功能为:输入圆圆的半径径,计算算圆面积积并将结结果输出出;程序序中有99处错误误,尝试试改正并并上机调调试之(程程序以文文件名ssy1_3.ccpp存存盘)。#inclludee sttdioo.h; int mmiann();floatt rr; aareaa; pprinntf("innputt rr:n""); sscannf(""%f"",r);area=3.1141559r*r;printtf(""r=%f , aareaa=%ffn"",arrea);3.编写一一个程序序实现输输入三个个整数,显显示出其其中的最最大值。三、实验分分析与总总结 总结程序的的结构和和书写规规则。 阅读:附件AA-在VVisuual C+环境下下运行CC程序的的方法。特别提示:当程序序在编译译时发现现很多错错误,此此时应从从上到下下逐一改改正,或或改一个个错误,就就重新再再编译,因因为有时时一个错错误会引引起很多多错误信信息。四、相关实实验程序序列表1#inclludee <sstdiio.hh>void maiin() iint x=22,y=3,aa;a=x*yy;printtf ("a=%d"",a);prinntf("nn");2#inclludee <sstdiio.hh> int mmainn()floaat r, areea; pprinntf("innputt rr:nn"); sscannf(""%f"",r);area=3.1141559*rr*r;printtf(""r=%f , aareaa=%ffn"",arrea);3#inclludee<sttdioo.h>>int mmainn()int mmax(intt x,intt y,intt z);int aa,b,c,dd;scanff("%d,%d,%d",&a,&b,&c);d=maxx(a,b,cc);printtf(""maxx=%ddn"",d);returrn 00;int mmax(intt x,intt y,intt z)int w;if(xx>y)w=xx;elsee w=y;int q;if(ww>z)q=ww;elsee q=z;retuurn(q);五、实验心心得通过这次学学习,我我学会了了编辑、编编译、连连接和运运行一个个C 程程序,初步了了解了C 程程序的特特点,我我感到很很高兴,我我会努力力把基础础学好。实验二基本本数据类类型、运运算和表表达式一、实验目目的(1)掌握握C 语语言数据据类型,熟熟悉如何何定义一一个整型型和实型型的变量量,以及及对它们们赋值的的方法。(2)掌握握不同的的类型数数据之间间赋值的的规律。(3) 学学会使用用C 的的有关算算术运算算符,以以及包含含这些运运算符的的表达式式,特别别是自加加(+)和自自减(-)运运算符的的使用。(4)进一一步熟悉悉C 程程序的编编辑、编编译、连连接和运运行的过过程。二、实验内内容1.变量量定义,按按要求完完成程序序下面给出一一个可以以运行的的程序,但但是缺少少部分语语句,请请按右边边的提示示补充完完整缺少少的语句句。#inclludee "sstdiio.hh"main(); /*定定义整型型变量aa 和bb*/; /*定定义实型型变量ii 和jj*/a=5;b=6;i=3.114; j=ii*a*b;printtf(""a=%d,bb=%dd,i=%f,j=%fnn", a, b, i, j);具体操作作步骤(1)将代代码补充充完整;(2)在VVC+上运行行通过并并写出运运行结果果。2.在显显示屏上上显示指指定字符符要求编写一一个程序序,在显显示屏上上显示如如下内容容(全为为半角字字符,且且不包含含空格):C:ABCC.TXXT提示 注意转转义字符符在程序序中的使使用。3.赋值值表达式式与赋值值语句,写写出程序序运行结结果阅读下面程程序,写写出运行行结果:#inclludee "sstdiio.hh"main() flooat a;int bb, cc;char d, e;a=3.55;b=a;c=3300;d=c;e='1141''printtf(""%f,%d,%d,%c,%c"", aa,b,c,dd,e);运行结果为为:提示赋赋值语句句具有类类型转换换的功能能,但可可能会改改变数据据。4. 基基本运算算,写出出程序运运行结果果阅读下面程程序,写写出运行行结果:#inclludee "sstdiio.hh"main() intt a, b, c;floatt d=15, e, f;a=35%7;b=15/10;c=b+;e=15/10;f=d/110;printtf(""%d,%d,%d,%f,%f,%f"", aa,b,c,dd,e,f);运行结果为为:提示除除法分整整除与普普通除法法之分。三、实验分分析与总总结 总结如如何定义义程序序的数据据类型,运运算符的的优先级级别,赋赋值表达达式的作作用。程序4中中的b+改写写为+b后的的结果会会变化吗吗?四、相关实实验程序序列表1#inclludee "sstdiio.hh"int mmainn()int aa=5;int bb=6;floatt i=3.114;floatt j=i*aa*b;printtf(""a=%d,bb=%dd,i=%fn", a, b, i);printtf(""j=%fnn",jj);returrn 00;2#inclludee "sstdiio.hh"int mmainn()prinntf("C:AABC.TXTT");3#inclludee "sstdiio.hh"main() flooat a;int bb, cc;char d, e;a=3.55;b=a;c=3300;d=c;e='1141''printtf(""%f,%d,%d,%c,%c"", aa,b,c,dd,e);4#inclludee "sstdiio.hh"main() intt a, b, c;floatt d=15, e, f;a=35%7;b=15/10;c=b+;e=15/10;f=d/110;printtf(""%d,%d,%d,%f,%f,%f"", aa,b,c,dd,e,f);五、实验心心得通过这次学学习我学学会了整整型和实实型的变变量,以以及对它它们赋值值的方法法和使用CC 的有有关算术术运算符符,以及及包含这这些运算算符的表表达式,我会巩固所学到的知识,继续努力。实验三基本本输入与与输出一、实验目目的(1)熟练练掌握pputccharr、geetchhar、pprinntf、sscannf 函函数的使使用方法法。(2)掌握握各种类类型数据据的输入入输出的的方法,能能正确使使用各种种格式转转换符。二、实验内内容1.字符符的输入入与输出出编程实现由由键盘输输入一个个字符后后,在屏屏幕上输输出该字字符。参考程序:#inclludee "sstdiio.hh"main() chaar cch;ch = gettchaar();putchhar(ch);2.加法法计算编程实现由由键盘输输入一个个加法式式,输出出正确的的结果。(两两个加数数均为整整数)。参考程序:#inclludee "sstdiio.hh"main() intt a, b;scanff("%d%*c%dd", &a,&b);printtf(""%d"", aa+b);3.求圆圆的面积积由键盘输入入圆半径径r,请请计算该该圆的面面积。(注注:取3.141159,结结果保留留两位小小数位;另外,程程序只要要能对rr 在00 到1100000 范范围的情情况输出出正确答答案即可可)。参考程序:#inclludee "sstdiio.hh"main() flooat areea,rr;scanff("%f",&r);area=3.1141559*rr*r;printtf(""%0.2f"",arrea);运行结果为为:4. 计计算摄氏氏温度值值从键盘输入入一个华华氏温度度值,要要求按格格式输出出其对应应的摄氏氏温度值值,精确确到小数数点后两两位。数学公式描描述为:参考程序:#inclludee<sttdioo.h>>main() flooat f,cc;scanff("%f",&f);c=5.00/9*(f-32);printtf(""%.22f",c);运行结果为为:三、实验分分析与总总结各实验运运行结果果及分析析。 程序22中%*cc的含义是是什么?(3) 程程序4中中c=55.0/9*(f-332),为什么么要用55.0,如如果改为为5,运运行结果果将会是是什么?四、相关实实验程序序列表1#inclludee "sstdiio.hh"int mmainn() chaar cch;ch = gettchaar();putchhar(ch);putchhar('nn');2#inclludee "sstdiio.hh"main() intt a, b;scanff("%d%*c%dd", &a,&b);printtf(""%dn", a+b);3#inclludee "sstdiio.hh"main() flooat areea,rr;scanff("%f",&r);area=3.1141559*rr*r;printtf(""%0.2fn",areea);4#inclludee<sttdioo.h>>main() flooat f,cc;scanff("%f",&f);c=5.00/9*(f-32);printtf(""%.22fnn",cc);五、实验心心得通过这次学学习,我我熟悉了了puttchaar、ggetccharr、prrinttf、sscannf 函函数的使使用方法法以及各种种类型数数据的输输入输出出,能够正确使使用各种种格式转转换符,我我感受到到了学习习c语言言的乐趣趣。实验四顺序序结构程程序设计计一、实验目目的(1)熟练练掌握顺顺序结构构程序设设计的设设计方法法。(2)掌握握各赋值值语句的的正确使使用方法法。(3)学习习进一步步调试程程序。二、实验内内容1.siizeoof运算算符的使使用方法法以下程序用用于测试试C中不不同类型型数据所所占内存存字节数数,运行行并体会会sizzeoff运算符符的使用用方法。/sizzeoff运算的的结果为为一个iint型型的整数数,表示示其求解解对象的的存储所所占的内内存字节节数。#inclludee <sstdiio.hh>void maiin()intt a=1;prinntf("Siize of chaar iis %dnn", sizzeoff(chhar); prinntf("Siize of shoort is %dn", siizeoof(sshorrt);prinntf("Siize of intt iss %ddn"", ssizeeof(intt);prinntf("Siize of lonng iis %dnn", sizzeoff(loong);prinntf("Siize of flooat is %dn", siizeoof(ffloaat);prinntf("Siize of douublee iss %ddn"", ssizeeof(douublee);prinntf("Siize of boool iis %dnn", sizzeoff(boool);prinntf("-nn"); priintff("SSizee off a is %dn", siizeoof(aa);/变变量的类类型所占占内存字字节数prinntf("Siize of 2.00*100 iss %ddn"", ssizeeof(2.00*100);/表表达式运运算结果果的类型型所占字字节数Size of char is 1Size of short is 2Size of int is 4Size of long is 4Size of float is 4Size of double is 8Size of bool is 1-Size of a is 4Size of 2.0*10 is 8size of Liu Dehua is 10Press any key to continueprinttf(""sizze oof LLiu Dehhua is %dn", siizeoof(""Liuu Deehuaa");/字符串串所占内内存字节节数参考结果2.分析析程序的的输出结结果阅读并分析析以下程程序的输输出结果果,上机机调试,对对比实际际的输出出与分析析的结果果是否一一致。#inclludee <sstdiio.hh>void maiin()chaar cch=665;int aa=12234; lonng gg=12234556788;floaat ff=1223.44567789; douublee d=9.88765543221E55;prinntf("%dd,%cc,%55d,%3cnn",cch,cch,cch,cch); prinntf("%008d,%0+8d,%8dd,%oo,%77x,%10lld,%ld n"",a,a,aa,a,g,gg); prinntf("%0010.3f,%-110.33f,%10.3f,%f,%e,%gn",f,ff,f,f,ff,f); prinntf("%00+155.5llf,%-155.5llf,%15.5lff,%llf,%len",d,dd,d,d,dd);prinntf("%110sn%220sn%-10.3sn%ssn"","HHelllo,wworlld!"","HHelllo,wworlld!"","HHelllo,wworlld!"","HHelllo,wworlld!"");参考结果65,A, 65, A00001234,+0001234, 1234,2322, bc614e, 12345678,2367460000123.457,123.457 , 123.457,123.456787,1.234568e+002,123.457+00987654.32100,987654.32100 , 987654.32100,987654.321000,9.876543e+005Hello,world!Hello,world!HelHello,world!3.程序序修改下列程序的的功能为为:按下下列公式式计算并并输出xx的值。其其中a和和b的值值由键盘盘输入。 x=22ab/(a+b)22请纠正程序序中存在在的错误误,使程程序实现现其功能能。 #inccludde <<stddio.h> voidd maain() intt a,b; flloatt x; sccanff("%d,%d",a,bb);x=ab/(a+b)(a+bb); prinntf("x=%dn",x);4. 编编写与调调试程序序写一个程序序测试一一下把带带小数的的flooat和和douublee型数据据用prrinttf函数数输出时时,小数数部分是是截断还还是四舍舍五入?三、实验分分析与总总结 各实验验运行结结果及分分析。 程序11中Liuu Deehuaa的sizzeoff的值为为什么是是10还还不是99?四、相关实实验程序序列表1#inclludee <sstdiio.hh>void maiin()intt a=1;prinntf("Siize of chaar iis %dnn", sizzeoff(chhar); prinntf("Siize of shoort is %dn", siizeoof(sshorrt);prinntf("Siize of intt iss %ddn"", ssizeeof(intt);prinntf("Siize of lonng iis %dnn", sizzeoff(loong);prinntf("Siize of flooat is %dn", siizeoof(ffloaat);prinntf("Siize of douublee iss %ddn"", ssizeeof(douublee);prinntf("Siize of boool iis %dnn", sizzeoff(boool);prinntf("-nn"); priintff("SSizee off a is %dn", siizeoof(aa);/变变量的类类型所占占内存字字节数prinntf("Siize of 2.00*100 iss %ddn"", ssizeeof(2.00*100);/表表达式运运算结果果的类型型所占字字节数printtf(""sizze oof LLiu Dehhua is %dn", siizeoof(""Liuu Deehuaa");/字符串串所占内内存字节节数2#inclludee <sstdiio.hh>void maiin()chaar cch=665;int a=112344; lonng gg=12234556788;floaat ff=1223.44567789; douublee d=9.88765543221E55;prinntf("%dd,%cc,%55d,%3cnn",cch,cch,cch,cch); prinntf("%008d,%0+8d,%8dd,%oo,%77x,%10lld,%ld n"",a,a,aa,a,g,gg); prinntf("%0010.3f,%-110.33f,%10.3f,%f,%e,%gn",f,ff,f,f,ff,f); prinntf("%00+155.5llf,%-155.5llf,%15.5lff,%llf,%len",d,dd,d,d,dd);prinntf("%110sn%220sn%-10.3sn%ssn"","HHelllo,wworlld!"","HHelllo,wworlld!"","HHelllo,wworlld!"","HHelllo,wworlld!"");3#inclludee <sstdiio.hh> voidd maain() innt aa,b; flloatt x; sccanff("%d,%d",&a,&b); x=(flloatt)a*b/(a+b)*(a+b); prrinttf(""x=%fnn",xx); 4#inclludee <sstdiio.hh>int mmainn()floaat aa=1.5555555555555;doublle bb=1.5555555555555;printtf(""%f,%fn",a,bb);returrn 00;五、实验心心得通过这次学学习,我我基本掌掌握了顺序结结构程序序设计的的设计方方法以及及各赋值值语句的的正确使使用方法法,我会努努力熟悉悉他们以以便更好好地设计计程序。实验五选择择结构程程序设计计一、实验目目的(1)了解解C 语语言表示示逻辑的的方法(以以0 代代表“假”,以非非0 代代表“真”)。(2)学会会正确使使用逻辑辑运算符符和逻辑辑表达式式。(3)熟练练掌握iif 语语句和sswittch 语句。(4)结合合程序掌掌握一些些简单的的算法。二、实验内内容1.判断断点是否否在圆上上由键盘输入入一个点点的坐标标,要求求编程判判断这个个点是否否在单位位圆上,点点在圆上上输出YY,不在在圆上输输出N。使使用小数数点后33位精度度进行判判断。提示(11)平面面上的点点与圆的的关系分分为在圆圆内、在在圆上、在在圆外三三种,本本题要求求判断是是否在圆圆上;(22)判断断两实数数相等采采用判断断这两实实数的差差的绝对对值小于于规定误误差精度度(本题题为0.0011)的方方法实现现。参考程序:#inclludee "sstdiio.hh"#inclludee "mmathh.h""main() flooat a,bb;scanff("%f,%f",&a,&b);if(faabs(a*aa+b*b-11)<11e-33)printtf(""Ynn");else priintff("NNn"");2.求数数的位数数由键盘输入入一个不不多于99 位的的正整数数,要求求输出它它是几位位数。提示划划定一位位数、二二位数、九位数的范围,然后用if else if else 语句实现判断。参考程序:#inclludee "sstdiio.hh"main() intt n,plaace;scanff("%ld"",&nn);if(n>>9999999999) pllacee=9;else if(n>9999999999) pplacce=88;else if(n>99999999) pllacee=7;else if(n>9999999) plaace=6;else if(n>999999) pplacce=55;else if(n>9999) pllacee=4;else if(n>999) plaace=3;else if(n>99) pplacce=22;else plaace=1;printtf(""%lddn"",pllacee);3.程序序修改下列程序的的功能为为:输入入1个字字母后,输输出该字字母的前前序字母母、该字字母、该该字母的的后序字字母,例例如:输输入g,则则输出ffgh;输入aa,则输输出zaab;输输入M,则则输出LLMN;输入ZZ,则输输出YZZA。#inclludee <sstdiio.hh>void maiin() ccharr chh,c11,c22; priintff("EEnteer aa chharaacteer:""); cch=ggetccharr(); iif(ch>>='aa')|(cch<='z'') ch-=322; cc1=cch-11; c22=chh+1; iif(cch=''A') cc1=cch+225; eelsee iff(chh='ZZ') c22=chh-255; pputccharr(c11); pputccharr(chh); pputccharr(c22); pputccharr('n');请纠正程序序中存在在的错误误,使程程序实现现其功能能。4. 字字符变换换由键盘输入入5 个个字符,将将其中的的大写字字母变成成小写,其其它类型型的字符符不变,并并按输入入顺序逐逐个输出出。提示下下面代码码实现由由键盘读读入一个个字符,并并按题意意处理后后输出char a;a=gettchaar();if(a>>='AA' &&& aa<=''Z') a=a+332;putchhar(a);现在,题目目要求处处理5 个字符符,怎么么做呢?请自己己思考5. 简简单计算算器下面程序是是实现一一个简单单的运算算器(保保留两位位小数点点),如如果由键键盘输入入10+50,计计算机可可以输出出结果660.000;如如果输入入866,计算算机输出出48.00;如果输输入200/4,计计算机输输出5.00;如果输输入8-6,计计算机输输出2.00,请请在空处处填上适适当的代代码,运运行通过过后并提提交。#inclludee "sstdiio.hh"main() flooat a,bb,c;char op;scanff("%f%cc%f"", );switcch (op) casse ''+': ;case '-'':;case '*'':;case '/'': ;defauult: prrinttf(""errror"");returrn ;printtf(""ressultt= "", cc);6. 编编写与调调试程序序输入三角形形的三边边长a、b、c,求其面面积三角角形的面面积公式式为:Areea=,其中S=(a+b+cc)/22。(要要求判断断边长值值的合法法性与三三角形的的可构成成性)。参考程序:#inclludee "sstdiio.hh"#inclludee "mmathh.h"" /数学学函数库库头文件件void maiin()doubble a,bb,c,s,aareaa; pprinntf ("请请输入三三角形三三边长:n"");scanff("%lf,%lff,%llf",&a,&b,&c);if(aa<=00|bb<=00|cc<=00) /有有任一边边边长小小于等于于0priintff("边边长必须须为正!n"");elsee if(a+bb>c && b+cc>a && a+cc>b) /任任意两边边之和对对于第三三边s=(a+b+cc)/22;arrea=sqrrt(ss*(ss-a)*(ss-b)*(ss-c); /dooublle ssqrtt(dooublle xx):求求平方根根值prrinttf(""areea=%lfn",areea);elsseprrinttf(""不能构构成三角角形!n");三、实验分分析与总总结 各实验验运行结结果及分分析。 程序11中误差差精度(设设置为00.0000011),怎怎样修改改程序?程序4中中要求反反序输出出大写字字母,怎怎样修改改程序?四、相关实实验程序序列表1#inclludee "sstdiio.hh"#inclludee "mmathh.h""main() flooat a,bb;scanff("%f,%f",&a,&b);if(faabs(a*aa+b*b-11)<11e-33)printtf(""Ynn");else priintff("NNn"");2#inclludee <sstdiio.hh>main() intt n,plaace;scanff("%ld"",&nn);if(n>>9999999999) pllacee=9;else if(n>9999999999) pplacce=88;else if(n>99999999) pllacee=7;else if(n>9999999) plaace=6;else if(n>999999) pplacce=55;else if(n>9999) pllacee=4;else if(n>999) plaace=3;else if(n>99) pplacce=22;else plaace=1;switcch(pplacce)case 9:pprinntf("%lldnn");breeak;case 8:pprinntf("%lldnn");breeak;case 7:pprinntf("%lldnn");breeak;case 6:pprinntf("%lldnn");breeak;case 5:pprinntf("%lldnn");breeak;case 4:pprinntf("%lldnn");breeak;case 3:pprinntf("%lldnn");breeak;case 2:pprinntf("%lldnn");breeak;case 1:pprinntf("%lldnn");breeak;defauult:("eenteer ddatee errrorr!nn");3#inclludee <sstdiio.hh>void maiin() ccharr chh,c11,c22; priintff("EEnteer aa chharaacteer:""); cch=ggetccharr(); iif(chh>=''b')&&(ch<<='yy')|(chh>=''B')&&(ch<<='YY') c1=ch-1; cc2=cch+11;