C语言程序设计实验上机报告doc.docx
- 文档编号:25088775
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:8
- 大小:20.39KB
C语言程序设计实验上机报告doc.docx
《C语言程序设计实验上机报告doc.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验上机报告doc.docx(8页珍藏版)》请在冰豆网上搜索。
C语言程序设计实验上机报告doc
C语言程序设计实验上机报告
课程实验报告课程名称C语言程序设计专业班级信息安全1302学号姓名指导教师报告日期2014年6月16日计算机科学与技术学院目录1实验概述12第一次实验22.1实验目的32.2实验内容32.3实验小结193第二次实验203.1实验目的203.2实验内容203.3实验小结354第三次实验364.1实验目的364.2实验内容364.3实验小结495第四次实验505.1实验目的505.2实验内容505.3实验小结626第五次实验636.1实验目的636.2实验内容636.3实验小结697第六次实验707.1实验目的707.2实验内容707.3实验小结838第七次实验848.1实验目的848.2实验内容848.3实验小结1059实验总结106参考文献1071实验概述本实验采用C语言常用的上机开发环境VisualC6.0集成开发环境。
其关键是掌握程序的编辑、修改、编译、链接和执行的方法,以及如何调试程序,跟踪程序,通过断点控制程序,观察变量、表达式在程序运行过程中的取值,如何综合运用这些方法定位程序中的的错误和排除错误。
在实验中除了传统的编程设计题外,增加了源程序改错题,源程序完善、修改、替换题,程序的调试跟踪题等,培养学生跟踪程序、设置断点、调试程序的能力,排除程序中语法、逻辑方面错误与故障的能力,并养成细致、周密、严谨的编程作风。
实验中的源程序改错题,先给出一些含有经典、常见错误的源程序,让学生通过编译或运行发现错误,并加以改正,从而纠正初学者易犯的常见错误,实验中的源程序修改替换题,也是先给出源程序,然后要求学生按要求编写修改替换原来程序中的部分代码。
实验中的跟踪调试结果填空题,给出源程序,要求学生填写程序运行过程中的某些中间结果。
强迫学生用断点设置、单步跟踪等调试程序,观察并填写相应的中间结果。
实验中的编程设计题,只给出题目,要求学生完成从源程序的编程、编辑、修改,编译产生目标代码,链接产生可执行文件,运行程序得到正确结果的全部环节。
学习C语言与学习和使用任何一门其他程序设计语言一样。
首先要理解程序设计语言的语法和语义,然后通过上机熟悉该语言集成开发环境,掌握编辑、修改、编译、链接、跟踪、调试程序等方面的技巧。
最后,还要熟悉语言编译系统提供的库函数或类库,以便快速实现程序的设计与开发。
上机实验就是学习与掌握上面三个环节的重要途径。
上机实验之前一定要预先编好有关程序,把上机的重点放到程序的编辑、修改、编译、链接、跟踪、调试程序等方面,放到观察程序运行过程中的中间结果和运行完毕后的运行结果方面来。
最终使自己的大脑变成一台“计算机”,能够在脑袋中运行自己的程序,判断各种情况下程序的走向等等,从而提高上机的效率和程序设计的准确性。
总之,上机实验是进一步深刻了解C语言的语法、语义,掌握用C语言进行初步程序设计所需要的方法和技能的一个重要环节。
2第一次实验2.1实验目的1.熟悉C语言开发环境VC6.0的使用;2.学会在VC6.0中编译、运行、调试程序;3.熟悉表达式和标准输入与输出;4.熟悉掌握掌握各种运算符运算功能,操作数的类型,运算结果的类型及运算过程中的类型转换,重点是c语言特有的运算符,例如位运算符,问号运算符,逗号运算符;书籍运算符的优先级和结合性;5.掌握getchar,putchar,scanf和printf函数的用法;6.掌握c程序(顺序结构程序)的编写方法。
2.2实验内容
(一)修改四个源程序得到正确的结果和如下程序设计1.编写一个程序,输入字符c,如果c是大写字母,则将c转换成对应的小写,否则c的值不变,最后输出c。
2.编写一个程序,输入无符号短整数x,m,n(0≤m≤15,1≤n≤16-m),取出x从第m位开始向左的n位(m从右至左编号为0~15),并使其向左端(第15位)靠齐。
3.(3)IP地址通常是4个用句点分隔的小整数(即点分十进制),如32.55.1.102。
这些地址在机器中用无符号长整形表示。
编写一个程序,以机器存储的形式读入一个互联网IP地址,对其译码,然后用常见的句点分隔的4部分的形式输出。
例如,整形676879571二进制表示就是00101000010110000101110011010011,按照8位一组可表示为408892211,由于CPU处理数据的差异,它的顺序是颠倒的,所有最终格式为211.92.88.40。
(二)1.设计一个程序,在字符模式下,以某个字符拼出“王”汉字图形,显示输出。
2.输入一个华氏温度,要求输出摄氏温度。
公式为c5/9*f-32。
3.设计3种算法,完成交换整型两个变量值的程序。
4.设计一个程序,完成如下功能输出一个三位数,将它反向输出。
如输入127,输出721。
5.设计2种完成计算MAX{x,y,z}的程序。
6.设计一个程序,完成计算3个数的居中数。
7.设计计算一元二次方程的根的程序。
8.根据任意三角形的面积公式(海伦公式)S√pp-ap-bp-c,其中,p(abc)/2,a.b.c为三角形三边,设计一个程序计算任意三角形的面积。
(3)实验步骤及结果(要求给出源程序和程序运行结果。
另外,根据实验内容,记录编辑、编译、链接、调试程序的操作过程和实验现象)
(一)改错(红色字体为修改部分)源程序1.includeincludeintmainvoid{floata,b,c,s,t;print“inputthreedegeofthetriangle\n“scanf“fff“,sabc/2ts*s-a*s-b*s-c;areasqrtt;print“aread\n“,area;return0;}修改后源程序1.includeincludeintmainvoid{floata,b,c,s,t;print“inputthreedegeofthetriangle\n“;scanf“fff“,sabc/2;ts*s-a*s-b*s-c;tsqrtt;printf“aread\n“,t;return0;}源程序2includedefineN5;intsumintx[],intn;intmain{inti,a[N],total;printf“Inputdintegerplease\n“,N;fori0;idefineN10intsumintx[],intn;intmain{inti,a[N],total;printf“Inputdintegerplease\n“,N;fori0;idefinePI3.14159;voidmainvoid{intf;shortp,k;doublec,r,s;/*fortask1*/printf“InputFahrenheit“;scanf“d“,f;c5/9*f-32;printf“\ndF.2C\n\n“,f,c/*fortask2*/printf“inputtheradiusr“;scanf“f“,sPI*r*r;printf“\nTheacreageis.2f\n\n“,s;/*fortask3*/printf“inputhexintk,p“;scanf“xx“,newintpshortp,k;doublec,r,s;/*fortask1*/printf“InputFahrenheit“;scanf“d“,c5/9*f-32;printf“\ndF.2fC\n\n“,f,c;/*fortask2*/printf“inputtheradiusr“;scanf“lf“,sPI*r*r;printf“\nTheacreageis.2f\n\n“,s;/*fortask3*/printf“inputhexshortintk,p“;scanf“hdhd“,newintpprintf“newinthd\n\n“,newint;return0;}源程序4includevoidmain{inta,b,t;printf“Inputtwointegers“;scanf“dd“,ta;ab;bt;prinf“\nad,bd“,a,b;}替换下划线,语句includevoidmain{inta,b;printf“Inputtwointegers“;scanf“dd“,aab;ba-b;aa-b;printf“\nad,bd“,a,b;}程序设计程序1includevoidmain{intc;cgetchar;ifcAunsignedshortintresult;scanf“huhuhu“,resultxmvoidmain{longip;unsignedinti0,tem0,c0;scanf“ld“,fori0;ivoidmain{printf“1111111111\n“;printf“11\n“;printf“11\n“;printf“11111111\n“;printf“11\n“;printf“11\n“;printf“1111111111\n“;}题2includevoidmain{inttem,res;printf“pleaseinputyourtemperature\n“;scanf“d“,res5.0/9.0*tem-32;printf“theresultisd\n“,res;}题3includevoidmain{inta,b;printf“ThefirstMethoad\n“;printf“pleaseinputthevalueofa,b\n“;scanf“dd“,inttem;tema,ab,ba;printf“adbd“,a,b;printf“ThesecondMethoad\n“;printf“pleaseinputthevalueofa,b\n“;scanf“dd“,ab;ba-b;aa-b;printf“adbd“,a,b;printf“ThethirdMethoad\n“;printf“pleaseinputthevalueofa,b\n“;scanf“dd“,ab;ba;aab;printf“adbd“,a,b;}题4includevoidmain{intnum,res;printf“inputthenumber\n“;scanf“d“,res100*num10;resnum100-num10;resnum/100;printf“theresultisthe\nd\n“,res;}题5includevoidmain{inta,b,c;printf“thefirst\ninputthreenumbers\n“;scanf“ddd“,aabab;aabac;ifab{ifac;elseac;}else{ab;ifbc;elseac;}printf“Maxd\n“,a;printf“thesecond\ninputthreenumbers\n“;scanf“ddd“,aabacacbcbc;printf“Maxd\n“,a;}题6includevoidmain{inta,b,c,d;printf“inputthreenumbers\n“;scanf“ddd“,dabc;aabbccbacca;babacacbcbc;dd-a-b;printf“midd\n“,d;}题7includeincludeintmainvoid{floata,b,c,d,x1,x2,realpart,imagepart;printf“Inputa,b,c\n“;scanf“fff“,ifa0printf“InuptERROR\n“;else{db*b-4*a*c;ifdincludevoidmain{floata,b,c,s,p;printf“inputthreenumbers\n“;scanf“fff“,pabc/2;ifp*p-a*p-b*p-c0{ssqrtp*p-a*p-b*p-c;printf“theresultf\n“,s;}elseprintf“thesenumbersisnatriangle\n“;}2.3实验小结1.编写程序时,要注意加上“include”,这是一个包含基本输入输出的头文件。
2,在温度转换题中。
公式是c5/9*f-32,但是用c语言不能这么写。
因为在C语言中,5/9是得到一个int型的结果,所以会得到0,导致程序运行结果始终为0;必须写成5.0/9才能得到浮点型结果。
3.一个工程中只能有一个main函数,不然编译器会报错。
4.在使用标准输入语句scanf是其中需要赋值的变量要使用其地址,即使用printf“Pleaseentern“;scanf“d“,n;fori1,iintmain{inti,n,s1;printf“Pleaseentern“;scanf“d“,fori1;iintmain{inti1,n,s1;printf“Pleaseentern“;scanf“d“,whileiintmain{inti,n1,s,tem1;printf“Pleaseenters“;scanf“d“,for;;n{fori1;isbreak;tem1;}printf“MAXndvoidmain{intsala;printf“inputyoursalary\n“;scanf“d“,switchsala/1000{case0printf“yourtaxis0\n“;break;case1printf“yourtaxis5\n“;break;case2printf“yourtaxis10\n“;break;case3printf“yourtaxis15\n“;break;case4printf“yourtaxis20\n“;break;defaultprintf“yourtaxis25\n“;}}2.3-3.2includevoidmain{charc1,c2;whilec1getcharEOF{whilec1{ifc2getcharprintf“c“,c1;c1c2;}printf“c“,c1;}}2.3-3.3includeintcintj,inti;voidmain{inti,j,m;fori0;ivoidmain{longm,res0;inti,n;printf“inputyournumber\n“;scanf“d“,fori0;mnm10,m/100;i{resres*10n;ifm0break;}printf“resultd\n“,res;2.3-4includeincludedefinee1e-6intcintj,inti;voidmain{doublex01,xk1;do{x0xk;xkx0-3*x0*x0*x0-4*x0*x0-5*x013/9*x0*x0-8*x0-5;}whilefabsx0-xke;printf“.9lf“,xk;}
(二)题9includeintmainvoid{floata,n,m;printf“Inuptanumber\n“;scanf“f“,na-3500;ifa0printf“Inputtwonumbers\n“;scanf“dd“,ifxy{maxx;miny;}elsemaxy;minx;}whileminx0}cy;dx*y/c;printf“cd,dd“,c,d;return0;}题11includeincludeintmainvoid{intn,i,r;intk;printf“Inputanumber\n“;scanf“d“,ifn2{i1;do{ksqrtn;i;rni;}whiler0printf“n2isaprime.\n“;forn2;nmainvoid{inti,j,result;fori1;i还是。
4.使用switch语句是记着加上break语句跳出switch,有必要时需加上default。
6.double型数据输入输出要使用“lf”。
7.两个数的最小公倍数就是两数之积除以两数的最大公约数。
8.九九乘法表,注意“\t”和“\n”的使用时机。
4第三次实验4.1实验目的
(1)熟悉和掌握函数的定义、声明;函数调用与参数传递方法;以及函数返回值类型的定义和返回值使用。
(2)熟悉和掌握不同存储类型变量的使用。
(3)熟悉多文件编译技术。
4.2实验内容
(一)源程序改错下面是计算s123n的源程序,在这个源程序中存在若干语法和逻辑错误。
要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。
源程序修改替换
(1)修改上述源程序中的sum_fac函数,使其计算量最小
(2)修改上述源程序中的sum_fac函数,计算跟踪调试下面是计算fabonacci数列前n项和的源程序,现要求单步执行该程序,并观察p,i,sum,n值,即
(1)刚执行完scanf“d“,语句时,p,i值是多少
(2)从fabonacci函数返回后,光条停留在哪个语句上(3)进入fabonacci函数时,watch窗口显示的是什么(4)当i3时,从调用fabonacci函数到返回,n值如何变化程序设计编写并上机调试运行能实现以下功能的程序。
1编写一个程序,让用户输入两个整数,计算两个数的最大公约数并且输出之。
要求用递归函数实现求最大公约数,同时以单步方式执行该程序,观察其递归过程。
2编写一个程序,验证歌德巴赫猜想一个大于等于4的偶数都是两个素数之和。
3编写一个程序,证明对于在符号常量BEGIN和END之间的偶数这一猜测成立。
例如,如果BEGIN为10,END为20,则程序的输出应为GOLDBACHSCONJECTURE
(二)14.求n个数的最大值、最小值和平均值。
要求不使用数组。
15.依据下列格里高利公式,计算圆周率π。
要求最后一项<10-6。
16.完全数是一些特殊的自然数。
它所有的真因子(即除了自身以外的约数)的和恰好等于它本身。
试求出11000范围内的所有完全数。
17.水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。
例如135333153。
试求出所有的水仙花数。
18.一个的数,其七进制和九进制均为3位数,且3位数的数字正好相反。
试求出这个数。
19.求解1313的尾数三位是多少。
20.求解100尾数有多少个0。
(3)实验步骤及结果(要求给出源程序和程序运行结果。
另外,根据实验内容,记录编辑、编译、链接、调试程序的操作过程和实验现象)
(一)1.源程序改错下面是计算s123n的源程序,在这个源程序中存在若干语法和逻辑错误。
要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。
源程序includevoidmainvoid{intk;fork1;klongsum_facintn;voidmainvoid{intn;printf“pleaseinputN\n“;scanf“d“,printf“thesumisld\n“,sum_facn;}longsum_facintn{longs0;inti;longfac1;fori1;ilongfabonacciint;voidmainvoid{inti,k;longsum0,*pscanf“d“,fori1;iintdivisorintn,intm;voidmain{inta,b,res;printf“inputtwointeger\n“;scanf“dd“,resdivisora,b;printf“Themaxdivisord\n“,res;}intdivisorintn,intm{inttem;ifnintmain{intm,i,j;printf“inputanumber\n“;scanf“d“,fori2,jm-i;j2;i,jm-i{ifpjbreak;}}return0;}intpintm{inti;fori2;i4isthesumoftwoprimes.1037125720317源代码includes
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验 上机 报告 doc