版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程实验报告课程名称: C语言程序设计专业班级:信息安全1302学号: 姓名: 指导教师: 报告日期:2014年6月16日计算机科学与技术学院TOC\o"1-5"\h\z\o"CurrentDocument"1实验概述 1\o"CurrentDocument"2第一次实验 2\o"CurrentDocument"实验目的 2\o"CurrentDocument"实验内容 2\o"CurrentDocument"实验小结 19\o"CurrentDocument"3第二次实验 20\o"CurrentDocument"实验目的 20\o"CurrentDocument"实验内容 20\o"CurrentDocument"实验小结 35\o"CurrentDocument"4第三次实验 36\o"CurrentDocument"实验目的 36\o"CurrentDocument"实验内容 36\o"CurrentDocument"实验小结 49\o"CurrentDocument"5第四次实验 50\o"CurrentDocument"实验目的 50\o"CurrentDocument"实验内容 50\o"CurrentDocument"实验小结 62\o"CurrentDocument"6第五次实验 63\o"CurrentDocument"实验目的 63\o"CurrentDocument"实验内容 63\o"CurrentDocument"实验小结 69\o"CurrentDocument"7第六次实验 70\o"CurrentDocument"实验目的 70\o"CurrentDocument"实验内容 70\o"CurrentDocument"实验小结 83\o"CurrentDocument"8第七次实验 84\o"CurrentDocument"实验目的 836\o"CurrentDocument"实验内容 84\o"CurrentDocument"实验小结 105\o"CurrentDocument"9实验总结 106参考文献 1071实验概述本实验采用C语言常用的上机开发环境VisualC++6.集成开发环境。其关键是掌握程序的编辑、修改、编译、链接和执行的方法,以及如何调试程序,跟踪程序,通过断点控制程序,观察变量、表达式在程序运行过程中的取值,如何综合运用这些方法定位程序中的的错误和排除错误。在实验中除了传统的编程设计题外,增加了源程序改错题,源程序完善、修改、替换题,程序的调试跟踪题等,培养学生跟踪程序、设置断点、调试程序的能力,排除程序中语法、逻辑方面错误与故障的能力,并养成细致、周密、严谨的编程作风。实验中的源程序改错题,先给出一些含有经典、常见错误的源程序,让学生通过编译或运行发现错误,并加以改正,从而纠正初学者易犯的常见错误,实验中的源程序修改替换题,也是先给出源程序,然后要求学生按要求编写修改替换原来程序中的部分代码。实验中的跟踪调试结果填空题,给出源程序,要求学生填写程序运行过程中的某些中间结果。强迫学生用断点设置、单步跟踪等调试程序,观察并填写相应的中间结果。实验中的编程设计题,只给出题目,要求学生完成从源程序的编程、编辑、修改,编译产生目标代码,链接产生可执行文件,运行程序得到正确结果的全部环节。学习C语言与学习和使用任何一门其他程序设计语言一样。首先要理解程序设计语言的语法和语义,然后通过上机熟悉该语言集成开发环境,掌握编辑、修改、编译、链接、跟踪、调试程序等方面的技巧。最后,还要熟悉语言编译系统提供的库函数或类库,以便快速实现程序的设计与开发。上机实验就是学习与掌握上面三个环节的重要途径。上机实验之前一定要预先编好有关程序,把上机的重点放到程序的编辑、修改、编译、链接、跟踪、调试程序等方面,放到观察程序运行过程中的中间结果和运行完毕后的运行结果方面来。最终使自己的大脑变成一台“计算机”能够在脑袋中运行自己的程序,判断各种情况下程序的走向等等,从而提高上机的效率和程序设计的准确性。总之,上机实验是进一步深刻了解C语言的语法、语义,掌握用C语言进行初步程序设计所需要的方法和技能的一个重要环节。2第一次实验2.1实验目的.熟悉C语言开发环境VC++6.0的使用;.学会在VC++6.0中编译、运行、调试程序;.熟悉表达式和标准输入与输出;.熟悉掌握掌握各种运算符运算功能,操作数的类型,运算结果的类型及运算过程中的类型转换,重点是c语言特有的运算符,例如位运算符,问号运算符,逗号运算符;书籍运算符的优先级和结合性;.掌握getchar,putchar,scanf和printf函数的用法;.掌握c程序(顺序结构程序)的编写方法。2.2实验内容(-)修改四个源程序得到正确的结果和如下程序设计:.编写一个程序,输入字符。,如果c是大写字母,则将。转换成对应的小写,否则C的值不变,最后输出。。.编写一个程序,输入无符号短整数乂,m,n(0茹<15,1W16m),取出乂从第m位开始向左的口位(m从右至左编号为0—15),并使其向左端(第15位)靠齐。. (3)讦地址通常是4个用句点分隔的小整数(即点分十进制),如02这些地址在机器中用无符号长整形表示。编写一个程序,以机器存储的形式读入一个互联网讣地址,对其译码,然后用常见的句点分隔的4部分的形式输出。例如,整形676879571二进制表示就是:00101000010110000101110011010011按照8位一组可表示为:4088922口由于CPU处理数据的差异,它的顺序是颠倒的,所有最终格式为0(二).设计一个程序,在字符模式下,以某个字符拼出“王”汉字图形,显示输出。.输入一个华氏温度,要求输出摄氏温度。公式为。=5/9*(432)。.设计3种算法,完成交换整型两个变量值的程序。.设计一个程序,完成如下功能:输出一个三位数,将它反向输出。如输入127,输出721。.设计2种完成计算MAX{x,y,z}的程序。.设计一个程序,完成计算3个数的居中数。2.设计计算一元二次方程的根的程序。.根据任意三角形的面积公式(海伦公式):S="p(p-a)(p-b)(p-c),其中,p=(a+b+c)/2,a.b.c为三角形三边,设计一个程序计算任意三角形的面积。(三)实验步骤及结果(要求给出源程序和程序运行结果。另外,根据实验内容,记录编辑、编译、链接、调试程序的操作过程和实验现象)(一)改错:(红色字体为修改部分)源程序1.#include<stdio.h>#include<math.h>intmain(void)(floata,b,c,s,t;print("inputthreedegeofthetriangle\n")scanf(〃%f%f%f〃,&a,&b,&c);s=(a+b+c)/2t=s*(s-a)*(s-b)*(s-c);area=sqrt(t);print(〃area=%d\n〃,area);return0;)修改后:源程序1.#include<stdio.h>#include<math.h>intmain(void)(floata,b,c,s,t;print("inputthreedegeofthetriangle\n");scanf(〃%f%f%f〃,&a,&b,&c);s=(a+b+c)/2;t=s*(s-a)*(s-b)*(s-c);t=sqrt(t);printf(〃area=%d\n〃,t);return0;
1 #include<stdio.h>2 #incl\ide<math.h>111121331111213floata.fiyfctt;printf &褊悬矣..减小员蔡泅技3);scanf「牌整整#/&己/ibric);s=(a-b-c)/2;t=s*5(s-a)* *(s-c);t=sqrt(t);printf ;:5.721s1E:\C_Lamguage\debug\Area.exeinputreturn0;:5.721s1E:\C_Lamguage\debug\Area.exeinputProcessreturnedPressanykeyto0<0x0>executiontimecontinue.ProcessreturnedPressanykeyto源程序2:#include<stdio.h>#defineN5;intsum(intx口,intn);intmain()(inti,a[N],total;printf("Input%dintegerplease!\n〃,N);for(i=0;i<N;i++)scanf(〃%d〃,a[i]);total=sum(a,N);printf("Thesumis%d\n",total);return0;)intsum(intx口,intn);(inti,s;for(s=0;i=0;i<n;i++);s+=x[i];returns;)修改后:#include<stdio.h>#defineN10intsum(intx[],intn);intmain()(inti,a[N],total;printf("Input%dintegerplease!\n〃,N);for(i=0;i<N;i++)scanf(〃%d〃,a[i]);total=sum(a,N);printf("Thesumis%d\n",total);return0;)intsum(intx[],intn)(inti,s;for(s=0,i=0;i<n;i++)s+=x[i];returns;)#include<stdio.h>#defineN10intsuni(intx[]tintn);intmain()inta;N]ftotdl;printfin^;^^@forii=0;KN;1--)scanf(-%^"^a[iD;tQtdl=SUm(dfN);printf 短^\n"rtotal);return0;intsumiintx[],intn)早1int1fs;for[s=0f1=0;i<n;i一)s-=x[i];returna;anguag?\debug\totaI.exe」Input10integerplease!1111111111Thesumis10Processreturned0<0x0>executiontime:22.348sPressanykeytocontinue.源程序3:#include<stdio.h>#definePI3.14159;voidmain(void)(intf;shortp,k;doublec,r,s;/*fortask1*/printf("InputFahrenheit:");scanf(〃%d〃,f);c=5/9*(f-32);printf("\n%d(F)=%.2(C)\n\n",f,c/*fortask2*/printf("inputtheradiusr:");scanf("%f",&r);s=PI*r*r;printf(〃\nTheacreageis%.2f\n\n",s);/*fortask3*/printf("inputhexintk,p:〃);scanf("%x%x〃,&k,&p);newint=(p&0xff00)|(k&0xff00)<<8;printf("newint=%x\n\n",newint);)修改后:#include<stdio.h>#definePI3.14159intmain(void)(intf,newint;shortp,k;doublec,r,s;/*fortask1*/printf("InputFahrenheit:");scanf(〃%d〃,&f);c=5/9*(f-32);printf("\n%d(F)=%.2f(C)\n\n",f,c);/*fortask2*/printf("inputtheradiusr:");scanf("%lf",&r);s=PI*r*r;printf("\nTheacreageis%.2f\n\n",s);/*fortask3*/printf("inputhexshortintk,p:");scanf("%hd%hd”,&k,&p);newint=(p&0xff00)+(k>>8)&0x00ff;printf("newint=%hd\n\n",newint);return0;)源程序4:#include<stdio.h>voidmain()(inta,b,t;printf(〃Inputtwointegers:");scanf("%d%d",&a,&b);t=a;a=b;b=t;prinf("\na=%d,b=%d",a,b);)替换下划线,语句:#include<stdio.h>voidmain()(inta,b;printf("Inputtwointegers:");scanf("%d%d”,&a,&b);a=a+b;b=a-b;a=a-b;printf("\na=%d,b=%d",a,b);)
Processreturned10<0xA)Pressanykeytocontinue.程序设计:程序1:#include<stdio.h>voidmain()(intc;c=getchar();if(c>='A'&&c<='Z')c=c-,A,+,a,;putchar(c);)
程序2:#include<stdio.h>intmain()(unsignedshortintx,m,n;unsignedshortintresult;scanf(〃%hu%hu%hu〃,&x,&m,&n);result=x>>m<<(16-n);printf(〃%hu〃,result);return0;)10
45€7331011#incljde<Btdio.ti>voidmain()(unsignedshortititn;unsignedstiortintreB\ilt;scant[”告惠*公告公”・』功45€7331011printfC%^\n"zresult);E:\C_Langua9&\debug\3.2.exe4570Processreturned2<0x2>executiontime:13.525sPressanykeytocontinue.程序3:#include<stdio.h>voidmain()(longip;unsignedinti=0,tem=0,c=0;scanf(〃%ld〃,&ip);for(i=0;i<32;i++)(tem|=(ip%2)<<(i-8*c);if((i+1)%8==0)(c<=2?printf(〃%3d.〃,tem):printf(〃%3d〃,tem);tem=0;c++;)ip=ip/2;))11
(二)、题1:#include<stdio.h>voidmain()(printf("1111111111\n");TOC\o"1-5"\h\zprintf(〃 11 \n〃);printf(〃 11 \n〃);printf("11111111\n〃);printf(" 11 \n〃);printf(" 11 \n〃);printf(〃1111111111\n〃);)12
题2:#include<stdio.h>voidmain()(inttem,res;printf(〃pleaseinputyourtemperature\n〃);scanf(〃%d〃,&tem);res=5.0/9.0*(tem-32);printf("theresultis:%d\n",res);)题3:#include<stdio.h>voidmain()13inta,b;printf(〃ThefirstMethoad:\n〃);printf("pleaseinputthevalueofa,b\n〃);scanf(〃%d%d〃,&a,&b);inttem;tem=a,a=b,b=a;printf("a=%db=%d",a,b);printf("ThesecondMethoad:\n〃);printf("pleaseinputthevalueofa,b\n〃);scanf(〃%d%d〃,&a,&b);a+=b;b=a-b;a=a-b;printf("a=%db=%d",a,b);printf("ThethirdMethoad:\n〃);printf("pleaseinputthevalueofa,b\n〃);scanf(〃%d%d〃,&a,&b);a=b;b=a;a=ab;printf("a=%db=%d",a,b);)14题4:#include<stdio.h>voidmain()(intnum,res;printf("inputthenumber:\n〃);scanf(〃%d〃,&num);res=100*(num%10);res+=num%100-num%10;res+=num/100;printf("theresultisthe:\n%d\n",res);)题5:#include<stdio.h>voidmain()(inta,b,c;printf("thefirst:\ninputthreenumbers\n");scanf("%d%d%d",&a,&b,&c);a=a>b?a:b;a=a>b?a:c;if(a>b){if(a>c);elsea=c;)else{a=b;15
if(b>c);elsea=c;)printf(〃Max=:%d\n〃,a);printf(〃thesecond:\ninputthreenumbers\n〃);scanf(〃%d%d%d〃,&a,&b,&c);a=(a>b)?(a>c?a:c):(b>c?b:c);printf(〃Max=:%d\n〃,a);)#includeotdio.h>|B(voidmain|B(voidmain()C:\Users\Admin.i.strator.PC-20121223VBFP\Desktop\notISintafISintafbfc;printf ;scantL告碍碍国L&ar&brsc};a=a>b?a:b;a=a>b?a:c;if(a>b)-{if(a<c)-a=c;elseEl{a=b;if(ixc)
a=c;printf(,rJ^=:%@\n",a);printf(,r^ ■“版猫脸就小声;scanf5ar5b,5c);a=(a>b)?(a>c?a:c):(b>c?b:c);printf(啜歌=:%4\n"fa);thefirst:inputthreenumbers123Max=:3thesecond:inputthreenumbers321Max=:3Processreturned7<0x?>executiontime:Pressanykeytocontinue.题6:#include<stdio.h>voidmain()(inta,b,c,d;printf("inputthreenumbers:\n〃);scanf(〃%d%d%d〃,&a,&b,&c);d=a+b+c;a=(a>b)?(b>c?c:b):(a>c?c:a);b=(a>b)?(a>c?a:c):(b>c?b:c);d=d-a-b;printf(〃mid=%d\n〃,d);)16题7:#include<stdio.h>#include<math.h>intmain(void)(floata,b,c,d,x1,x2,realpart,imagepart;printf("Inputa,b,c:\n〃);scanf(〃%f%f%f〃,&a,&b,&c);if(a==0)printf("InuptERROR\n〃);else(d=b*b-4*a*c;if(d<0)(realpart=-b/(2*a);imagepart=sqrt(-d)/(2*b);printf("complexroots:%g+%.3gi\n",realpart,imagepart);printf("complexroots:%g-%.3gi\n",realpart,imagepart);)else(x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf(〃x1=%f,x2=%f\n〃,x1,x2);))return0;17#include<stdio#include<stdio.h>itinclude<math.h>intmain(uoid)Floata,bvc,d,x1,x2,realpart,imagepart;printf("Inputa,b,c:\n");scanf ;if(a==B)printF("InuptERR0R\n");else
ITr"E:\隔音程序设计WMualC+-60ftMiELIInputa.bqC:134complexroots:-l.5+0.441icomplexroots:-l.5-0.441iPressankeytocontinued=b*b-4*a*c;iF(d<8)realpart=-b/(2*a);imagepart=sqrt(-d)/(2*b);printf("complexroots:%g+%.3gi\n",realpart,imagepart);printf("complexroots:^g-^.3gi\n",realpart,iinagepart);elsex1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf(,,x1=%F,x2=%F\n",x1,x2);rrrreturn0;题8:#include<stdio.h>#include<math.h>voidmain()(floata,b,c,s,p;printf("inputthreenumbers:\n〃);scanf(〃%f%f%f〃,&a,&b,&c);p=(a+b+c)/2;if((p*(p-a)*(p-b)*(p-c))>0)(s=sqrt(p*(p-a)*(p-b)*(p-c));printf(〃theresult:%f\n〃,s);)elseprintf("thesenumbersis,natriangle!\n〃);)18
"E:\Ci§M®?'S]d\VisualC4--a-6.0\MicrosoftVisualStuidio\inputtlireenumbers:6810theresult:24.00Pressanykeytocontinue"E:\Ci§M®?'S]d\VisualC4--a-6.0\MicrosoftVisualStuidio\inputtlireenumbers:6810theresult:24.00PressanykeytocontinueFloata,bvc,5,p;printFC'inputthreenumbers:\n");scanf「常离离1 ,&c);p=(a+b+c)/2;iF((p*(p-a)*(p-b)*(p-c))>0)s=sqrt(p*(p-a)*(p-b)*(p-c));printF("theresult ;elseprintf("thesenumbersis1natriangle*\n");2.3实验小结1.编写程序时,要注意加上“#include<stdio.h>”,这是一个包含基本输入输出的头文件。2,在温度转换题中。公式是。=5/9*(432),但是用c语言不能这么写。因为在C语言中,5/9是得到一个int型的结果,所以会得到0,导致程序运行结果始终为0;必须写成5.0/9才能得到浮点型结果。.一个工程中只能有一个main()函数,不然编译器会报错。.在使用标准输入语句$。@口£)是其中需要赋值的变量要使用其地址,即使用&来获取其地址,以存入数据。.define语句后不带分号,for条件表达式后不需要分号。.数据输入定义类型要和输入一致;使用变量必须声明。193第二次实验实验目的.掌握复合语句、if语句、switch语句的使用,熟练掌握for、while、do-while三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。.熟练运用for、while、do-while语句来编写程序。.练习转移语句和标号语句的使用。.使用集成开发环境中的调试功能:单步执行、设置断点、观察变量值。实验内容(一)下面是计算$F!的源程序,在这个源程序中存在若干语法和逻辑错误。要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。例如,8!=40320。源程序修改替换(1)修改上述计算$=出的源程序,要求分别用while和do-while语句替换for语句。(2)修改上述计算$=出的源程序,要求输入改为“整数5”,输出改为“满足口!〉5的最小整数口”。例如,输入整数为40310,输出结果为n=8。编写并上机调试运行能实现以下功能的程序。(1)假设工资税金按以下方法计算:xv1000元,不收取税金;1000<xv2000,收取5%的税金;2000<xv3000,收取10%的税金;3000<xv4000,收取15%的税金;4000<xv5000,收取20%的税金;x>5000,收取25%的税金。编写一个程序,输入工资金额,输出应收取税金额度,要求分别用if语句和switch语句来实现。20(2)编写一个程序,将输入的一行字符复制到输出,复制过程中将一个以上的空格字符用一个空格代替(3)编写一个程序,打印如下的杨辉三角形。TOC\o"1-5"\h\z第0行*/ /*1 第11行*/ /*1 2第21行*/ /*1 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 11 9 368412612684369 1每个数据值可以由组合Cj计算(表示第1行第)列位置的值),而,「的计算如下:C01 (i=0,1,2,・・・)CjCj1*")】)/j(j=0,1,2,3,…,i)说明:本程序中为了打印出金字塔效果,要注意空格的数目。一位数之间是3个空格,说明:本程序中为了打印出金字塔效果,要注意空格的数目。一位数之间是3个空格,两位数之间有2个空格,3位数之间只有一个空格,程序编制过程中要注意区分。(4)编写一个程序,将用户输入的任意正整数逆转,例如,输入1234,输出4321。编写并上机调试运行能实现以下功能的程序。编写一个程序,用牛顿迭代法求方程f(x)3x34x25x130满足精度0=10-6的一个近似根,并在屏幕上输出所求近似根。牛顿迭代法求方程近似根的迭代公式为:xaxxf(x)/f'(x)其中,f'(x)是函数f(x)的导函数。牛顿迭代法首先任意设定的一个实数a来作为近似根的迭代初值%,然后用迭代公式计算下一个近似根x1O如此继续迭代计算1x3,…,xn,直到也xnJ精度e,此时值.即为所求的近似根。(二)2 3 n n.设计一个计算个人所得税的程序。.计算两个自然数的最大公约数和最小公倍数。.输入一个数口(〉2),判定n是否为素数。.输出2—100范围内的所有素数。要求:不使用子函数。21.输出九九乘法口诀表(三)实验步骤及结果(要求给出源程序和程序运行结果。另外,根据实验内容,记录编辑、编译、链接、调试程序的操作过程和实验现象)(一)改错:(红色字体为修改部分)2.3-1#include<stdio.h>intmain()(inti,n,s=1;printf("Pleaseentern:〃);scanf(〃%d〃,n);for(i=1,i<=n,i++)s=s*i;printf(〃%d!=%d〃,n,s);)return0;#include<stdio.h>intmain()(inti,n,s=1;printf("Pleaseentern:〃);scanf(〃%d'&n);for(i;i<=n;i++)s=s*i;printf(〃%d!=%d〃,n,s);return0;)ttinclude<stdio.h>intmain()inti,n,s=1;printf("Pleaseentern;scanf("^d",fen);For(i=1;i<=n;i++)s=s*i;printf("^d*=^d",n,s);returnQ;22源程序修改替换:2#include<stdio.h>intmain()(inti=1,n,s=1;printf("Pleaseentern:");scanf("%d",&n);while(i<=n)(s*=i;i++;)printf("usedthewhile:%d!=%d\n”,n,s);printf("Pleaseentern:");scanf("%d",&n);i=1;s=1;do(s*=i;i++;}while(i<=n);printf("usedthedo-while:%d!=%d\n”,n,s);return0;)23
c:'-.*D:Vdel>ug\.Eliiyaii232\Debug\ElLiyaii232.Pleaseentern:8usedthewhile:8*=40320Pleaseentern:8usedthedo-while:8?=40320Pressanykeytocontinue-c:'-.*D:Vdel>ug\.Eliiyaii232\Debug\ElLiyaii232.Pleaseentern:8usedthewhile:8*=40320Pleaseentern:8usedthedo-while:8?=40320Pressanykeytocontinue-intmain()inti=1,n,s=1;printf("Pleaseentern;scanf("^d",&n);while(i<=n)s*=i;i++;printf("usedthewhile:^d*=^d\n",n,s);printf("Pleaseentern;scanf("^d",&n);i=1;s=1;dos*=i;i++;}while(i<=n);printf("usedthedo-while:^dt=^d\n",n,s)return0;#include<stdio.h>intmain()(inti,n=1,s,tem=1;printf("Pleaseenters:〃);scanf(〃%d〃,&s);for(;;n++)(for(i=1;i<=n;i++)
tem*=i;if(tem>=s)break;tem=1;)printf("MAXn:%d!<=%d\n〃,n,s);return0;)24ttinclude<stdio.h>intmain()inti,n=1,s,tem=1;printf("Pleaseenters;scanf;for(;;n++)for(i=1;i<=n;i++)tem*=i;if(tem>=s)break;tem=1;printf("MAXn:^d*<=^d\n",n,s);return0;c:\ :\debug\shiyan232\Debug\shiyan232.Pleaseenters:125MAKn:6*<=125PressanykeytocontinueM程序设计:2.3-3.1#include<stdio.h>voidmain()(intsala;printf(〃inputyoursalary:\n〃);scanf(〃%d〃,&sala);switch(sala/1000)(case0:printf("yourtaxis0%%\n");break;case1:printf("yourtaxis5%%\n");break;case2:printf("yourtaxis10%%\n");break;case3:printf("yourtaxis15%%\n");break;case4:printf("yourtaxis20%%\n");break;default:printf("yourtaxis25%%\n〃);)25ttinclude<stdio.h>uoidmain()intsala;printf("inputyoursalary:\nscanf("^d".fesala);switch(sala/1000)0:printf("yourtaxis;break;1:printf("yourtaxis;break;2:printf("yourtaxis1;break;3:printf("yourtaxis15^\n");break;4:printf("yourtaxis2TO\n");break;casecasecasecasecasedefault:printf("yourtaxis25^\n");c:C:\debug\shiyaii233\Debug\shiyaik233.ezeinputyoursalary:3888yourtaxis15zPressanykeytocontinue2.3-3.2#include<stdio.h>voidmain()(charc1,c2;while((c1=getchar())!=EOF)(while(c1=='')(if((c2=getchar())!='')printf(〃%c〃,c1);c1=c2;)printf(〃%c〃,c1);262.3-3.3#include<stdio.h>intc(intj,inti);voidmain()(inti,j,m;for(i=0;i<=9;i++)(for(m=0;m<20-2*i;m++)printf("");for(j=0;j<=i;j++)(printf(〃%-4d〃,c(j,i));)printf(〃\n〃);))intc(intj,inti)(if(j==0)return1;return(c(j-1,i)*(i-j+1))/j;)27
:Blocks>here *2.3-3.3.cxprintfi;Fr\n,r);#includeotdio:Blocks>here *2.3-3.3.cxprintfi;Fr\n,r);#includeotdio.h>intc(intjrinti);voidmain()fori;i=0;i<=9;1——)forij=0;j<=i;j——)intc(intjfinti)if(j==O)return1;return(cij-1,1)*(i-j-1))/j;E:\C_Language\debug\two\2.3-33.exefori;ir.=2*;nK2O-2*printf(■号c(jfi))returned10<0xA>executiontime:0.296s2.3-3.4#include<stdio.h>voidmain()(longm,res=0;inti,n;printf(〃inputyournumber:\n〃);scanf(〃%d〃,&m);for(i=0;(m=(n=m%10,m/10))>=0;i++)(res=res*10+n;if(m==0)break;28printf(〃result:%d\n",res);rex/2.3-3.4.Cx#includeOtdio.ti>voidmain()longin,res=O;int±fn;printf 双球双旗津X:W);scanf["至q”,&m);for(1=0;i;ir.=in=ra^l0fra/10))>=0;i一一)res=resK10-n;if(ir.==2i)toreak;printf ^\n-\res);E:\C_Language\debug\two\2.3-3.4.eweinputyournumber:234234272result:272432432Processreturned18<0x12>executiontime:3.526sPressanykeytocontinue.2.3-4#include<stdio.h>#include<math.h>#definee1e-6intc(intj,inti);voidmain()(doublex0=1,xk=1;do(x0=xk;xk=x0-(3*x0*x0*x0-4*x0*x0-5*x0+13)/(9*x0*x0-8*x0-5);}while(fabs(x0-xk)>e);printf(〃%.9lf〃,xk);)29^^2.3-4.cXinclude<stdio.h>include<matn.h>defineele-6intc(intj,inti);voidir.ain())doublexO=lrKk=l;do3{xO=xk;xk=xO-(3*="x0*翻。*:-x0-4tx0*:-xO-5txO-L3)/(9txO-zkxO-S};-}whileI;fat*s(xO-xk)>e);printf ;-1.548909593Processreturned12<0x0Pressanykeytocontinue.(二)题9:#include<stdio.h>intmain(void)(floata,n,m;printf("Inuptanumber:\n〃);scanf(〃%f〃,&a);n=a-3500;if(a>=0&&a<=3500)printf(〃0〃);elseif(n<=1500)(m=n*0.03;}elseif(n<=4500)(m=n*0.1-105;}elseif(n<=9000)(m=n*0.2-555;}elseif(n<=35000)(m=n*0.25-1005;}elseif(n<=55000)(m=n*0.3-2755;}elseif(n<=80000)(m=n*0.35-5505;}30
elsem=n*0.45-13505;printf(〃m=%.3f〃,m);return0;)"E:\CT^Bl^^H\Vi5uaIC--6,0\MicrosoftVisualStudio\MyPInuptanumber:42354367m=19044384.000"E:\CT^Bl^^H\Vi5uaIC--6,0\MicrosoftVisualStudio\MyPInuptanumber:42354367m=19044384.000PressanykeytocontinueFloata,nprintFf'Inuptanumber:\n");scanF("^F",&a);n=a-35BB;iF(a>=B&&a<=3500)printF("B");elseif(n<=1500){m=n*B.83;}elseif(n<=4500){elseif(n<=9B00){m=n*B.2-555;}elseif(n<=35000){m=n*0.25-1BBS;}elseif(n<=55000){m=n*0.3-2755;}elseiF(n<=8000B){m=n*0.35-5505;}elsem=n*B.45-13505;printF("m=^.3F\n",m);return0;题10:#include<stdio.h>intmain(void)(intx,y,max,min,c,d;printf("Inputtwonumbers\n〃);scanf(〃%d%d〃,&x,&y);if(x<=0||y<=0)printf("InuptERROR\n〃);else{if(x>y){max=x;min=y;}elsemax=y;min=x;}while(!(min%x==0&&min%y==0)){c=y;d=(x*y)/c;printf(〃c=%d,d=%d〃,c,d);return0;31'E:\C1^M1WST+WisualC-4-6,0\MicrosoftVisualStudio^Inputtwonumbers2432c=24,d=24Pressanykeytocontinue#include<stdio.h>int'E:\C1^M1WST+WisualC-4-6,0\MicrosoftVisualStudio^Inputtwonumbers2432c=24,d=24Pressanykeytocontinueintx,1/,max,min,c,d;printf("Inputtuonumbers\n");scanf("^d^d",&x,&y);if(x<=8||y<=8)printf("InuptERRORXn");elsemax=x;min=y;}
else
nax=y;min=x;}while(*(n)in^x==0&&niin^,y==0)){y—;>c=y;d=(x*y)/c;printf("c=^d,d=^d\n",c,d);return0;题11:#include<stdio.h>#include<math.h>intmain(void)(intn,i,r;intk;printf("Inputanumber:\n〃);scanf(〃%d〃,&n);if(n<2)printf("InputERROR\n〃);elseif(n==2)printf("2isaprime.\n〃);if(n>2){i=1;do{k=sqrt(n);i++;r=n%i;}while((r!=0)&&(i<=k));if(r)printf("%disaprime.\n",n);elseprintf("%disnotaprime.\n",n);)32return0;#include<stdio.h>#include<math.h>intmain(uoid)■ fC-+6,0\Microsofiintn,i,r;intk;printF("Inputanumber:\n");scanF("^d",&n);iF(n<2)printF("InputERRORS”);elseif(n==2)printF("2isaprime.\n");iF(n>2){i=1;doInput3333isPressanumber:notaprime.anykeytocontinue<k=sqrt(n);i++;r=n^i;}
while((r*=0)&fe(i<=k));if(r)printf("^disaprime.\n",n);elseprintf("^disnotaprime.\n",n);return0;题12:#include<stdio.h>#include<math.h>intmain(void)(intn,i,r,k;printf("n=2isaprime.\n〃);for(n=2;n<=100;n++){{i=1;do(k=sqrt(n);i++;r=n%i;)while((r!=0)&&(i<=k));if(r)n);printf(〃n=%disaprime.\n"n);33■E:\博■E:\博C+-6.Ci\Mi€ro5oft''n=2isaprime.n=3is.a]prime.n=5is.a]prime.n=7is.a]prime.n=llisaprime.n=13isaprime.n=17isaprime.n=19isaprime.n=23isaprime.n=29isaprime.n=31isaprime.n=37isaprime.n=41isaprime.n=43isaprime.n=47isaprime.n=53isaprime.n=59isaprime.n=61isaprime.n=67isaprime.n=71isaprime.n=73isaprime.n=79isaprime.n=83isaprime.n=89isaprime.n=97isaprime.return0;ttinclude<stdio.h>ttinclude<math.h>intmain(uoid)intn,i,r,k;printf("n=2isaprime.\n");For(n=2;n<=108;n++)<{i=1;dok=sqrt(n);i++;r=n需i;while((r*=0)&&(i<=k));if(r)printf("n=^disaprime.\n",n);returnO;题13:#include<stdio.h>main(void)(inti,j,result;for(i=1;i<10;i++)(for(j=1;j<10;j++)(result=i*j;printf(〃%d*%d=%-3d〃,i,j,result);)printf(〃\n〃);))343.3实验小结.在使用标准输入语句$。@比()是其中需要赋值的变量要使用其地址,即使用&来获取其地址,以存入数据。,while是先进行条件判断,为真就进入循环;do-while是先执行循环体一次,在进行判断,并且W116条件体后需要添加分号‘;’。.for循环是注意判断条件是<(>)还是<=(>=)。.使用switch语句是记着加上break语句跳出switch,有必要时需加上default。.doub1e型数据输入输出要使用“%lf”。.两个数的最小公倍数就是两数之积除以两数的最大公约数。.九九乘法表,注意“让”和“\口”的使用时机。354第三次实验4.1实验目的(1)熟悉和掌握函数的定义、声明;函数调用与参数传递方法;以及函数返回值类型的定义和返回值使用。(2)熟悉和掌握不同存储类型变量的使用。(3)熟悉多文件编译技术。4.2实验内容(一)源程序改错下面是计算$=1!+2!+3!+・・+山的源程序,在这个源程序中存在若干语法和逻辑错误。要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。源程序修改替换(1)修改上述源程序中的$皿_£@。函数,使其计算量最小(2)修改上述源程序中的$加_£2。函数,计算跟踪调试下面是计算£@元皿“数列前9项和的源程序,现要求单步执行该程序,并观察p,i,sum,n值,即:(1)刚执行完scanf(〃%d〃,&k语句时,p,i值是多少?(2)从fabonacc函数返回后,光条停留在哪个语句上?(3)进入fabonacc函数时,watch窗口显示的是什么?(4)当1=3时,从调用fabonacc函数到返回,n值如何变化?程序设计编写并上机调试运行能实现以下功能的程序。(1)编写一个程序,让用户输入两个整数,计算两个数的最大公约数并且输出之。要求用递归函数实现求最大公约数,同时以单步方式执行该程序,观察其递归过程。(2)编写一个程序,验证歌德巴赫猜想:一个大于等于4的偶数都是两个素数之和。(3)编写一个程序,证明对于在符号常量BEGIN和END之间的偶数这一猜测成立。例如,如果BEGIN为10,END为20,则程序的输出应为:GOLDBACH'SCONJECTURE:36(二).求n个数的最大值、最小值和平均值。要求:不使用数组。.依据下列格里高利公式,计算圆周率论要求最后一项V10-6。11111n । :—| …二一1 2 1 7Q A.完全数是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和恰好等于它本身。试求出1〜1000范围内的所有完全数。.水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。例如:13+5+3=153。试求出所有的水仙花数。.一个的数,其七进制和九进制均为3位数,且3位数的数字正好相反。试求出这个数。.求解1313的尾数三位是多少。.求解100!尾数有多少个0。(三)实验步骤及结果(要求给出源程序和程序运行结果。另外,根据实验内容,记录编辑、编译、链接、调试程序的操作过程和实验现象)(一)1.源程序改错下面是计算s=1!+2!+3!+…+山的源程序,在这个源程序中存在若干语法和逻辑错误。要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。源程序:#include<stdio.h>voidmain(void){intk;for(k=1;k<6;k++)printf("k=%d\tthesumis%ld\n”,k,sum_fac(k));)longsum_fac(intn){longs=0;inti;longfac;for(i=1;i<=n;i++)fac*=i;s+=fac;returns;)修改后:#include<stdio.h>longsum_fac(intn);37
voidmain(void){intn;printf("pleaseinputN:\n");scanf("%d",&n);printf("thesumis%ld\n",sum_fac(n));)longsum_fac(intn){longs=0;inti;longfac=1;for(i=1;i<=n;i++){fac*=i;s+=fac;)returns;))2.源程序修改替换(1)2.源程序修改替换(1)修改上述源程序中的sum_fac函数,使其计算量最小。longsum_fac(intn){longs=0;inti=1;longfac=1;while(i<=n){fac*=i++;s+=fac;returns;)(2)修改上述源程序中的sum_fac函数,(2)修改上述源程序中的sum_fac函数,计算2!3!1n!doublesum_fac(intn){doubles=0,fac=1;inti=1;38doublep;while(i<=n){fac*=i++;p=1/fac;s+=p;returns;)3.跟踪调试下面是计算£@匕。9@“1数列前9项和的源程序,现要求单步执行该程序,并观察p,i,sum,n值,即:(1)刚执行完scanf(〃%d〃,&k);语句时,p,i值是多少?0x28ff10i=2(2)从fabonacci函数返回后,光条停留在哪个语句上?printf("i=%d\tthesumis%ld\n”,i,*p);(3)进入fabonacci函数时,watch窗口显示的是什么?(4)当i=3时,从调用fabonacci函数到返回,n值如何变化?从1变至U3源程序:#include<stdio.h>longfabonacci(int);voidmain(void){inti,k;longsum=0,*p=∑scanf("%d",&k);for(i=1;i<=k;i++){sum+=fabonacci(i);printf("i=%d\tthesumis%ld\n”,i,*p);))longfabonacci(intn){if(n==1||n==2)return1;elsereturnfabonacci(n-1)+fabonacci(n-2);39)其中,“longsum=0,*p=∑”声明p为长整型指针并用&sum取出sum的地址对p初始化。*P表示引用P所指的变量(*P即sum)。4.程序设计编写并上机调试运行能实现以下功能的程序。(1)编写一个程序,让用户输入两个整数,计算两个数的最大公约数并且输出之。要求用递归函数实现求最大公约数,同时以单步方式执行该程序,观察其递归过程。#include<stdio.h>intdivisor(intn,intm);voidmain(){inta,b,res;printf("inputtwointeger:\n");scanf("%d%d”,&a,&b);res=divisor(a,b);printf("Themaxdivisor:%d\n”,res);)intdivisor(intn,intm){inttem;if(n<m){n=m+n;m=n-m;n=n-m;)tem=n%m;if(tem==0)returnm;returndivisor(m,tem);)E:\C_Language\debug\narcissus\bin\Debijg\narcissus.exeinputtwointeger:3556Themaxdivisor:7Processreturned19<0xl3>executiontime:2.29Pressanykeytocontinue.(2)编写一个程序,验证歌德巴赫猜想:一个大于等于4的偶数都是两个素数之和。#include<stdio.h>intmain(){40intm,i,j;printf("inputanumber:\n");scanf("%d",&m);for(i=2,j=m-i;j>=2;i++,j=m-i){if(p(j)&&p(i)){printf("%d=%d+%d”,m,i,j);break;))return0;)intp(intm){inti;for(i=2;i<m;i++){if(m%i==0)return0;)return1;)(3)编写一个程序,证明对于在符号常量BEGIN和END之间的偶数这一猜测成立。例如,如果BEGIN为10,END为20,则程序的输出应为:GOLDBACH'SCONJECTURE:Everyevennumbern>=4isthesumoftwoprimes.10=3+712=5+720=3+17源代码:#include<stdio.h>intp(intm);intmain()(41intm,i,j,BEGIN,END;printf("inputBEGINandEND:\n");scanf(〃%d%d〃,&BEGIN,&END);printf("GOLDBACH'SCONJECTURE:\nEveryevennumbern>=4isthesumoftwoprimes\n");if(BEGIN%2!=0)BEGIN++;for(m=BEGIN;m<END;m+=2)(for(i=2,j=m-i;j>=2;i++,j=m-i)(if(p(j)&&p(i))(printf("%d=%d+%d\n”,m,i,j);break;)))return0;)intp(intm){inti;for(i=2;i<m;i++)(if(m%i==0)return0;)return1;)42E:\C_Language\debug\narcis5us\bin\Debug\narcissus.eweIinputBEGINandEND:11950IGOLDBACHJSCONJECTURE:・Eueryevennumbern>=4isthesumoftwoprimes120=3+1722=3+19■24=5+19[26=3+23128=5+2330=7+2332=3+2934=3+3136=5+3138=7+3140=3+3742=5+3744=3+4146=3+43148=5+43Processreturned0<0x0>executiontime:5.632sPressanykeytocontinue.(二)题14:#include<stdio.h>intmain(void)(inti=0,n;floatmax,min,sum,average;printf("Inputnumbers\n〃);scanf(〃%d〃,&n);max=n;min=n;sum=0;while(n!=0)(if(max<n)max=n;if(min>n)min=n;i++;sum+=n;scanf(〃%d〃,&n);)average=sum/i;printf(〃max=%.g\n〃,max);printf(〃min=%.g\n〃,min);43
printf(〃average=%.g\n〃,average);return0;)题15:#include<stdio.h>#include<math.h>intmain(void)(ints;floata,b,n;s=-1;a=0;n=1;for(;fabs(b)>=1e-6;n+=2)(s=-s;b=s/n;a+=b;)a=4*a;printf(〃%.6f\n〃,a);return0;)44ttlnclude<stdlo.h>ttinclude<math.h>intmain(uoid)ints;Floata,b,n;s=-1;a=B;n=1;For(;Fabs(b)>=1e-6;n+=2)s=-s;b=s/n;a+=b;a=4*a;printf("^.6F\n",a);returnO;3.141598Pressanykeytocontinue题16:#include<stdio.h>intmain(void)(intn,a,sum,b;n=1;while(n<=1000)(a=1;sum=0;while(a<n)(b=n%a;if(!b)sum+=a;a=a+1;)if(sum==n)printf(〃sum=%d\t〃,sum);n++;)return0;)45
ttinclude<stdio.h>"E:\Ci§M®?Si+\VisualC4i-4-6,0\Mi€rosoftVisualStudio\MyProjec±s\fVsum=6 sun=28sum=496Pressanykeytocontinue"E:\Ci§M®?Si+\VisualC4i-4-6,0\Mi€rosoftVisualStudio\MyProjec±s\fVsum=6 sun=28sum=496Pressanykeytocontinueintnvsun,b;n=1;while(n<=10B0)a=1;sun=B;while(a<n)b=n^a;if(?b)sum+=a;a=a+1;iF(sum==n)printf("sum^dXt".sum);n++;returnO;题17:#include<stdio.h>intmain(void)(inta,b,c;for(a=1;a<=9;a++)for(b=0;b<=9;b++)for(c=0;c<=9;c++)if((100*a+10*b+c)==a*a*a+b*b*b+c*c*c)printf(〃%d%d%d\n〃,a,b,c);return0;)题18:#include<stdio.h>intmain(void)(inta,b,c,x;46
a=1;b=0;c=1;while(a<=6)(while(b<=6)(while(c<=6)(if((49*a+7*b+c)==(81*c+9*b+a)){x=49*a+7*b+c;printf(〃x=%d\n〃,x);}c++;)c=1;b++;)b=0;a++;)return0;)#include<stdio.h>/■E:\Ci^reSSrt-\VisualC++6,0\Microsox=248Pressanykeytocontinue/■E:\Ci^reSSrt-\VisualC++6,0\Microsox=248Pressanykeytocontinueinta,bvcrx;a=1;b=0;c=1;while(a<=6)while(b<=6)while(c<=6)if((49*a+7*b+c)==(81*c+9*b+a)){x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版食品包装模具设计与制造服务合同4篇
- 2025年高温杀菌机项目可行性研究报告
- 2025年度绿色节能车棚工程承包施工协议范本合同4篇
- 2025年中国支线航空行业发展运行现状及投资潜力预测报告
- 桶装水供应与购买的2025年度合同4篇
- 2025年中国静电吸盘行业发展前景预测及投资战略咨询报告
- 2025年招贴海报项目投资可行性研究分析报告
- 2025版人防宣传教育活动承包合同范本2篇
- 2025年度外墙保温工程安全教育培训与考核合同
- 2025年针织混纺纱项目可行性研究报告
- 道路沥青工程施工方案
- 《田口方法的导入》课件
- 内陆养殖与水产品市场营销策略考核试卷
- 票据业务居间合同模板
- 承包钢板水泥库合同范本(2篇)
- DLT 572-2021 电力变压器运行规程
- 公司没缴社保劳动仲裁申请书
- 损伤力学与断裂分析
- 2024年县乡教师选调进城考试《教育学》题库及完整答案(考点梳理)
- 车借给别人免责协议书
- 应急预案评分标准表
评论
0/150
提交评论