c语言实验报告1_第1页
c语言实验报告1_第2页
c语言实验报告1_第3页
c语言实验报告1_第4页
c语言实验报告1_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验名称:熟悉C程序的运行环境一、 实验目的和要求了解TurboC++3.0的基本操作方法,学会独立使用该系统编辑、编译、连接和运行一个C程序通过运行简单的C程序,初步了解C源程序的特点二、 实验内容和原理输入并运行一个简单、正确的程序include<stdio.h>voidmain(){printf("Thisisacprogram\n");}输入一个有错误的程序,修改错误,直到程序能正确运行,分析程序运行结果。include<stdio.h>voidmain(){inta,b,suma=123;b=456;sum=a+bprintf("sumis%d\n",sum);}输入并运行一个需要在运行时输入数据的程序,输入数据,观察运行结果。#include<stdio.h>voidmain(){intmax(intx,inty);inta,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d”,c);}intmax(intx,inty){intz;z=y;if(x>y)z=x;return(z);}三、 实验环境硬件:PC机;软件:Windows操作系统、TurboC++3.0。四、 算法描述及实验步骤内容1启动TC++3.0,新建一个C文件;输入程序1;(3) 保存文件;(4) 编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功,再次保存文件;(5)连接程序、运行程序,观察运行结果。内容2(1) 启动TC++3.0,新建一个C文件;(2) 输入程序2;(3) 保存文件;(4) 编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;(5) 连接程序、运行程序,观察运行结果。内容3(1) 启动TC++3.0,新建一个C文件;(2) 输入程序2;(3) 保存文件;(4) 编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;(5) 连接程序、运行程序;(6) 输入数据,观察运行结果。五、调试过程1・输入后,按Alt+F9编译,出现如下信息:Linescompiled:WarningsLinescompiled:Warnings:Errors:成功编译。2.输入后,按Alt+F9编译,出现如下信息:ErrorC:XJMSOFTXCLfiNGU™lXTCXS¥ll.C4:DeclarationsyntaxerrorinfunctionmaEarningC:\JMSOFTXCLANGU~lXTC\Syil.C6:PossibleuseofbeforedefinitionErrorC:\JMSOFT\CLANGU~1XTC\S¥11.C6:Statementmissing;infunctionmainIJarningC=\JMgQFT\CLANGUEl\TC\gY:L:L-C'sum'isHssignedavaluewhichisne经分析是由于inta,b,sum与sum=a+b俩句未加;导致。3.输入后,按Alt+F9编译,出现如下信息:ErrorC:\PEOGRA~1XCLANGU~1XTC\SHI¥AN1.CPP7:Statementmissing;infunctionUarningC:XPROGRAXCLANGUXTC\SHIYAN1.CPP8:'c'isassignedaualueuhich经分析是由于inta,b,c句未加;导致。修改后编译结果如下:IUarnings:0Errors:0六、实验结果1.Thisisacprogram2.3.输入123,654运行结果如下:输入1989,1988运行结果如下:1989,1988max=1989七、总结经过本次上机实验,我基本了解TurboC++3.0的操作方法,学会在该系统上编辑、编译、连接和运行一个C程序。同时也明白在编译过程中应留心一些细节问题(如一个语句结束要加“;”),也学会通过编译错误信息找出错误,并修正错误。实验名称:数据类型、函数和表达式八、 实验目的和要求掌握C语言数据类型,熟悉如何定义整型、字符型和实型变量并赋值掌握不同类型数据之间赋值的规律学会使用C的有关算法运算符及表达式,特别是自加(++)和自减(--)运算符的使用进一步熟悉C程序的编辑、编译、连接和运行的过程九、 实验内容和原理输入并运行下面程序,分析运行结果。include<stdio.h>voidmain()(charcl,c2;c1='a';c2='b';printf("%c%c",c1,c2)}输入并运行下面程序,分析运行结果。include<stdio.h>voidmain(){charc1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);printf("\t\b%c%c”,c4,c5);}输入并运行下面程序,分析运行结果。include<stdio.h>voidmain(){inta,b;unsignedc,d;longe,f;a=100; b=-100;e=50000;f=32767;c=a; d=b;printf("%d,%d\n",a,b);printf("%u,%u\n”,a,b);printf("%u,%u\n”,c,d);c=a=e;d=b=f;printf("%d,%d\n”,a,b);printf("%u,%u\n”,c,d);}输入并运行下面程序,分析运行结果。include<stdio.h>voidmain(){inti,j,m,n;i=8; j=10;m=++i; n=j++;

printf("%d,%d,%d,%d”,i,j,m,n);}十、实验环境硬件:PC机;软件:Windows操作系统、TurboC++3.0。十一、算法描述及实验步骤(1) 启动TC++3.0,新建一个C文件;(2) 输入程序;(3) 保存文件;(4) 编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;(5) 连接程序、运行程序,观察分析运行结果。十二、 调试过程1.经分析错误是由于printf("%c%c",cl,c2)后未加;导致。修改后运行如下:2.成功运行3.ErrorC:XJMSOFTXCLANGU^lXTCXNONfiME.C10:Functioncallmissing〉infunction12200printf("%u,%u\n"a,b);改成printf("%u,%u\n",a,b);成功运行4.12200Linescompiled:221Uarnings:0Errors:0成功运行。十三、 实验结果.100,-100100,65436100,65436-15536,3276750000,327674.十四、总结通过这次上机实验我掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型变量并对它们赋值的方法,学会使用C的有关算法运算符及表达式,特别是自加(++)和自减(--)运算符。并进一步熟悉C程序的编辑,编译,连接和运行的过程。实验名称:顺序结构程序设计十五、实验目的和要求十五、实验目的和要求十六、6.输入并运行下面程序,#include<stdio.h>voidmain()(inta,b;floatd,e;charc1,c2;doublef,g;十六、6.输入并运行下面程序,#include<stdio.h>voidmain()(inta,b;floatd,e;charc1,c2;doublef,g;longm,n;unsignedintp,q;a=61;c1=’a’;d=3.56;f=3157.890121;m=50000;p=32768;分析运行结果。b=62;c2=’b’;e=-6.87;g=0.123456789;n=-60000;q=40000;7.8.9.十七、printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n”,a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n”,f,g,m,n,p,q);}编程序求一个圆的周长、面积,圆球表面积和圆柱体积。用scanf输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字。编程序,用getchar函数读入两个字符给cl、c2,然后分别用putchar函数和printf函数输出这两个字符。(选作)有自学或有兴趣同学可以编写程序判断一个年份是否为闰年。实验环境掌握赋值语句的使用方法掌握各种类型数据的输入输出方法,能正确使用各种格式控制符实验内容和原理计算机及TurboC++3.0。十八、算法描述及实验步骤1.(1)启动TC++3.0,新建一个C文件;(2) 输入程序1;(3) 保存文件;(4) 编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;(5) 连接程序、运行程序,观察分析运行结果。2.(1)启动TC++3.0,新建一个C文件;(2) 输入事先设计好的程序(见附录);(3) 保存文件;(4) 编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;(5) 连接程序、运行程序;(6) 输入测试数据,检查程序执行结果是否正确。

3.(1)启动TC++3.0,新建一个C文件;(2)输入事先设计好的程序(见附录);(3) 保存文件;(4) 编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;(5) 连接程序、运行程序;(6) 输入测试数据,检查程序执行结果是否正确。十九、 调试过程1.ErrorC:\JMSOFTXCLANGU~1XTC\NONAME.C14:UndefinedsymbolJpJinfunctionmaiEpfopC:XJMSOFTXCLfiNGU^lXTCXNONfiME.C14:UndefinedsymbolJqJinfunctionmaiErrorC:XJMSOFTXCLANGU^lXTCXNONAME.C15:UnterminatedstringopcliaractepconErrorC:\JMSOFT\CLfiNGU~l\TC\NONfiME.C15:Functioncallmissing〉infunctionUarningC:\JMSOFT\CLANGU~1\TC\NONAME.C16:JnJisassignedavaluewhichisnUaFningC=\JMgOFT\CLnNGUei\TC\NONAME.CIM'm'isassignedaumluewhichisnlongm,n后加;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n,a,b,c1,c2,d,e);少了无错误,成功运行。2.ErrorC:\JMSOFT\CLANGU~1XTC\SHI¥AN32.C11:ExpressionsyntaxinfunctionmainWarningC:\JnSOFT\CLANGUzi\TC\SHIYAN32-C12:Pctssihleuseof'result'heFciFE经分析为定义常量时使用=错误导致,修改后成功运行。3.无错误,成功运行。2200Linescompiled:Warnings:Errors2200二十、 实验结果1.6Lh=62=a,c2=b,g=0.1234567890003.56,e=—6.87,g=0.1234567890003157.89012150000,n=-6000032768,q=400002.输入123,456,结果如下:PleaseinputFj.li:123,456circlezhouchang=772.83|cirelemianji=47529.16ballbiaomianji=190116.62balltiji=7794781.50^hutitiji=21673294.00输入2,6,结果如下:Please_inputr,h:cirelezhouchang=12.57cirelemianji=12.57ballbiaomianji=50.27balltiji=33.51shutitiji=75.40Pleaseinputtwochar:acPutchapresult:acPrintfresult:ac1^一、总结经过本次上机实验,我已基本掌握赋值语句的使用方法,也掌握各种类型数据的输入输出方法,能正确使用各种格式转换符,同时更进一步了解。程序的运行环境。附录:2.#definepi3.141592653#include<stdio.h>voidmain(){floatr,h;floatresult;printf("Pleaseinputr,h:\n");scanf("%f,%f”,&r,&h);result=2*pi*r;printf("circlezhouchang=%6.2f\n”,result);result=pi*r*r;printf("circlemianji=%6.2f\n",result);result=4*pi*r*r;printf("ballbiaomianji=%6.2f\n",result);result=4*pi*r*r*r/3;printf("balltiji=%6.2f\n”,result);result=pi*r*r*h;printf("zhutitiji=%6.2f\n",result);}3.#include<stdio.h>voidmain(){charc1,c2;printf("Pleaseinputtwochar:\n");c1=getchar();c2=getchar();printf("Putcharresult:\n");putchar(c1);putchar(c2);printf("\nPrintfresult:\n");printf("%c\n”,c1);printf("%c\n”,c2);实验四:逻辑结构程序设计二十二、实验日的和要求了解C语言表示逻辑量的方法正确使用逻辑运算符和逻辑表达式,掌握if语句和switch语句结合程序掌握一些简单算法,并学习调试程序二十三、实验内容和原理有一函数:,-x (xV1)y= -,、2x-1 (Kx<10)...3x-11 (x310)写一程序,用scanf函数输入乂,输出y值。编程实现:给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,81~89分为B,70~79分为C,60~69分为D,60分以下为E。给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。二十四、实验环境硬件:PC机;软件:Windows2000、TurboC++3.0。二十五、算法描述及实验步骤(1)启动TC++3.0,新建一个C文件;(2)输入事先设计好的程序(见附录);保存文件;编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;连接程序、运行程序;输入测试数据,检查程序执行结果是否正确。(1)启动TC++3.0,新建一个C文件;(2)输入事先设计好的程序(见附录);保存文件;编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;连接程序、运行程序;输入测试数据,检查程序执行结果是否正确。(1)启动TC++3.0,新建一个C文件;(2)输入事先设计好的程序(见附录);保存文件;编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;连接程序、运行程序;输入测试数据,检查程序执行结果是否正确。(1)启动TC++3.0,新建一个C文件;输入事先设计好的程序(见附录);保存文件;编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;

连接程序、运行程序;输入测试数据,检查程序执行结果是否正确。二十六、调试过程1.无错误,出现如下信息:Linescompiled:231Uarnings:0Errors:02.Linescompiled:240Uarnings:0Errors:02310024000‘inaiu"indiuJindiuJfindiuJfindiuJfindiuJCCCCC33333CCCCCCCCCCTTTTT4680222233netorebeforebeforebeforebeforebeforenetinitdefinitidefinitidefinitidefinitidefiniti没有给indiv先定义,修改后成功运行。二十七、实验结果1.输入0,运行结果如下:输入5,运行结果如下:输入13,运行结果如下:2.2310024000‘inaiu"indiuJindiuJfindiuJfindiuJfindiuJCCCCC33333CCCCCCCCCCTTTTT4680222233netorebeforebeforebeforebeforebeforenetinitdefinitidefinitidefinitidefinitidefiniti没有给indiv先定义,修改后成功运行。二十七、实验结果1.输入0,运行结果如下:输入5,运行结果如下:输入13,运行结果如下:2.输入94,运行结果如下:输入86,运行结果如下:输入74,运行结果如下:pleaseinputscoresscore:74.0,grade:C输入61,运行结果如下:leaseinputscores:61core:61.0,grade:D输入52,运行结果如下:输入-70时结果:pleaseinputanumber:1Uplace=5Eachnumber:1,8,7,9,5Changednumber:5,9,7,8,1二十八、总结通过本次上机实验我了解C语言表示逻辑量的方法,能正确使用逻辑运算符和逻辑表达式,基本掌握了if语句和switch语句和一些简单的算法,并大体上学会了调试程序。附录:1.#include<stdio.h>voidmain(){inta,b;printf("Pleaseinputa:\n");scanf("%d”,&a);if(a<1)printf("b=%d”,a);elseif(1<=a<10){b=2*a-1;printf("b=%d”,b);}elseif(a>=10){b=3*a-11;printf("b=%d”,b);}}2.#include<stdio.h>voidmain(){floatscore;chargrade;printf("pleaseinputscores:");scanf("%f”,&score);while(score>100||score<0){printf("\nWrong!");scanf("%f”,&score);}switch((int)(score/10)){case10:case9:grade='A';break;case8:grade='B';break;case7:grade='C';break;case6:grade='D';break;case5:case4:case3:case2:case1:case0:grade='E';}printf("score:%5.1f,grade:%c\n",score,grade);}3.#include<stdio.h>#include<math.h>voidmain()(longintnum;intindiv,ten,hundred,thousand,ten_thousand,place;printf("pleaseinputanumber:");scanf("%ld”,&num);if(num>9999)place=5;elseif(num>999) place=4;elseif(num>99) place=3;elseif(num>9) place=2;elseplace=1;printf("place=%d\n”,place);printf("Eachnumber:");ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10000)/1000;hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;switch(place)(case5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);printf("\nChangednumber:");printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thousand,ten_thousand);break;case4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);printf("\nChangednumber:");printf("%d,%d,%d,%d\n",indiv,ten,hundred,thousand);break;case3:printf("%d,%d,%d",hundred,ten,indiv);printf("\nChangednumber:");printf("%d,%d,%d\n",indiv,ten,hundred);break;case2:printf("%d,%d",ten,indiv);printf("\nChangednumber:");printf("%d,%d\n",indiv,ten);break;case1:printf("%d”,indiv);printf("\nChangednumber:");printf("%d\n",indiv);break;}}实验名称:循环结构程序设计二十九、实验日的和要求熟悉掌握用while语句、do-while语句和for语句实现循环的方法掌握在程序设计中用循环方法实现一些常用算法(如穷举、迭代、递推等)进一步学习调试程序三十、 实验内容和原理输入两个正整数m和n,求其最大公约数和最小公倍数。输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少桃子。三十一、实验环境硬件:PC机;软件:Windows操作系统、TurboC++3.0。三十二、算法描述及实验步骤见附录三十三、调试过程没有给“P”定义Errore:61.c11:Undefinedsymbol'p'infunctionmain< 改为〈没有加“””和“;”ti:Unterminatedstringorcharacterconstantmfunctionmain6:Functioncallmissing)infunctionmain改为printf("pleaseinputaline:\n");|无错误,见附录。三十四、实验结果1.卧坷puttwonumbers:12,8pieaseinputtuonumbers£胜M君? Thebig:4thesmall-24 thesmall:24pleaseinputtuonumbers:5,7Thebig:lthesmall:352.pleaseinputaline:MyteacherJsaddressis,Rttl23BeijingRoad,Shanghai"letter:38space:6digit:3other:63.total=1534三十五、总结通过本次上机实验,我基本熟悉掌握while语句,do-while语句和for语句实循环的方法,掌握在程序设计中用循环的方法实现一些常用算法,并进一步学习调试程序。但是总是忘记对变量进行定义和添加符号(如“;”)。实验1:#include<stdio.h>voidmain()(intp,r,n,m,temp;printf("pleaseinputtwonumbers:");scanf("%d,%d,",&n,&m);if(n<m)(temp=n;n=m;m=temp;}p=n*m;while(m!=0)(r=n%m;n=m;m=r;}printf("Thebig:%d\n",n);printf("thesmall:%d\n",p/n);}实验2:#include<stdio.h>voidmain()(charc;intletters=0,space=0,digit=0,other=0;printf("pleaseinputaline:\n");while((c=getchar())!='\n')(if(c>='a'&&cv='z'llc>='A'&&cv='Z')letters++;elseif(c=='')space++;elseif(c>='0'&&c<='9')digit++;elseother++;}printf("letter:%d\nspace:%d\ndigit:%d\nother:%d\n”,letters,space,digit,other);}实验3:#include<stdio.h>voidmain(){intday,x1,x2;x1=1;for(day=9;day>0;day—){x2=(x1+1)*2;x1=x2;printf("total=%d”,x2);}实验名称:数组三十六、实验日的和要求掌握一维数组、二维数组的定义、赋值和输入输出掌握字符数组和字符串函数的使用结合程序掌握一些简单算法三十七、实验内容和原理用选择法对10个整数排序。10个整数用scanf函数输入。有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中的第几个元素的值。如果该数不在数组中,则输出“无此数”。(选做)找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。将两个字符串连接起来,不要用strcat函数。三十八、实验环境硬件:PC机;软件:Windows操作系统、TurboC++3.0。三十九、算法描述及实验步骤见附录四十、 调试过程数组符号为“[]”,错写成“{}”71.c8:Functioncallmissing)infunctionmaingnF( 改为wean日 ,&经过查找发现是voidmain()误输入为voinmain()c3:Declarationsyntaxerror忘记添加一对单引号^t73.c13:Illegalcharacter,(0k5c)infunctionmains1[i]=\0;改为》[i]=:四十一、实验结果1.enterdatea[l]=32a[2]=16a[3]=la[4]=67a[5]=92"61=46a[?]=58a[8]=9"91=106a[10]=150Theorginal32 16numbers:1 679246589106150Thesorted1 9numbers:16 32465867921061502.data1*et1*etn262627628685thisdataagain:169121622263237465258667885inputnumbertolookfor:52Hasfound52,itspositionisll4.Ipleaseinputstringl:fashionpleaseinputstring2:ableTheneustringis:fashionable四十二、总结通过本次上机实验我大体上掌握了数组的定义,赋值和输入方法,也掌握了字符数组和字符串函数的使用,并能结合一些简单程序了解与数组有关的算法。但是刚接触数组对其符号用得不是很应手,还有输入时总出现一些简单错误,所以自己应该多进行上机实验。实验1:#include<stdio.h>voidmain(){inti,j,min,temp,a[11];printf("enterdate:\n");for(i=1;i<=10;i++){printf("a[%d]=",i);scanf("%d”,&a[i]);}printf(〃\n〃);printf("Theorginalnumbers:\n");for(i=1;i<=10;i++)printf("%5d”,a[i]);printf(〃\n〃);for(i=1;i<=9;i++){min=i;for(j=i+1;j<=10;j++)if(a[min]>a[j])min=j;temp=a[i];a[i]=a[min];a[min]=temp;}printf("\nThesortednumbers:\n");for(i=1;i<=10;i++)printf("%5d”,a[i]);printf(〃\n〃);}实验2:include<stdio.h>defineN15voinmain(){inti,number,top,bott,mid,loca,a[N],flag=1,sign;charc;printf("enterdata:\n");scanf("%d”,&a[0]);i=1;while(i<N){scanf("%d”,&a[i]);if(a[i]>=a[i-1])i++;elseprintf("enterthisdataagain:\n");}printf(〃\n〃);for(i=0;i<N;i++)printf("%d”,a[i]);printf(〃\n〃);while(flag){printf("inputnumbertolookfor:");scanf("%d”,&number);sign=0;top=0;bott=N-1;if((number<a[0])||(number>a[N-1]))loca=-1;while((!sign)&&(top<=bott)){mid=(bott+top)/2;if(number==a[mid]){loca=mid;printf("Hasfound%d,itspositionis%d\n”,number,loca+1);sign=1;}elseif(number<a[mid])bott=mid-1;elsetop=mid+1;}}}实验3:#include<stdio.h>voidmain(){chars1[80],s2[40];inti=0,j=0;printf("\npleaseinputstring1:");scanf("%s”,s1);printf("\npleaseinputstring2:");scanf("%s”,s2);while(s1[i]!='\0')i++;while(s2[j]!='\0')si[i++]=s2[j++];si[i]=,\05;实验名称:函数四十三、实验日的和要求掌握定义函数的方法掌握函数的嵌套调用和递归调用的方法掌握全局变量和局部变量的概念和使用方法四十四、实验内容和原理写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。用全局变量的方法,分别用两个函数求两个整数的最大公约数和最小公倍数,但其值不由函数带回。将最大公约数和最小公倍数都设为全局变量,在主函数调中输出它们的值,两个整数由键盘输入。输入10个学生5门课的成绩,分别用函数求:①每个学生平均分;②每门课的平均分;③找出最高的分数所对应的学生和课程。写一函数,用“起泡法”对输入的10个字符按由小到大顺序排列。求方程ax2+bx+c=0的根,用3个函数分别求当b2-4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a、b、c的值。用递归调用的方法求写一个求n!的函数,在主函数中输入一个整数,输出该数的阶乘。四十五、实验环境硬件:PC机;软件:Windows操作系统、TurboC++3.0。四十六、算法描述及实验步骤见附录四十七、调试过程编译时无出现错误、警告信息:Mainfile:E:TLU1.C1a1502T300Compiling:EDITOR■+TLU1.C1a1502T300Linescompiled:Warnings:Errors:Availablemeinoi'v:1942K定义变量时,变量输入有误I 调试为I 调试为inti<int,int,int>编译程序较复杂时“{}”范围搞乱,在第46行后再加一个“}”c47:Unreachablecodeinfunctionhighestc47:Espressionsyntaxinfunctionhighestc70:Compoundstatementmissing}infunctionhighest编译时出现错误、警告信息:"9: 巧诚密error,原因是没加主函数voidmain()第18行的“elseif”之间少了空格而错写成“elseif”19:Statementmissing;infunctionmain

函数y=fac(n)后忘记加“;”ErrorE:\T6.C9:Statementmissingf;WarningE:\T6.C10:ryrisassignedaualuethatisneuerusedactnJactnJprintf< ,n,y>;改为四十八、实验结果1.2.3.(ma:最大公约数mi:最小公倍数)-M--M--M-_M~-M--M--M-_M~-M--M4086868200F5240122327e8888888687ua-M--M--M-_M~-M--M--M-_M~-M--M--M--M--K--M--K--M5 P1382043032U9888889798oc-M--M--M-_M~-M--M--M-_M~-M--M--M--M--K--M--K--M4 P3011114465U8898898588oc-M--M--M-_M~-M--M--M-_M~-M--M--M--M--K--M--K--M3 P3179495450U8877877677oc-M--M--M-_M~-M--M--M-_M~-M--M--M--M--K--M--K--M2 P9126627273U7787777667oc-M--M--M-_M~-M--M--M-_M~-M--M--M--M--K--M--K--M1 P1565875695U9988888687oc1234567890■1o NooooooooooNNNNNNNNNNIauerage: 84.70 73.50 76.70 81.60 84.60higest: 95.00No.2course14.inputstring:reputationstringsorted:aeinoprttuinputstring:fashinablestringsorted:aabefhilns5.4.00*x+1.00=0x2=-4.707107inputa,b,c:2,4,1equation: 2.00*x*x+root:fcl=-3.2928932.00*x+1.00=0inputa,b,cequation: 1.00*x*x+n?oot:xl=-l.000000inputa,b,c:2,4,3equation: 2.00*x*x+n?oot:Eel=-l.000000+0.707107ix2=-l.000000-0.70710714.00*x+3.00=06.intputanumber:1010?= 3628800intputanumber:-10fi<0,Wrong*-10*=-NAN四十九、总结通过这次上机实验我已基本掌握定义函数的方法,了解函数实参与形参的对应关系以及“值传递”的方式,并掌握函数的嵌套调用的方法,也掌握了全局变量和局部变量的概念和使用方法以及学会对多文件的程序的编译和运行。但是一些可避免的细微错误仍存在,所以在编程序时应细心。附录:实验1#include<stdio.h>voidmain(){intprime(int);intn;printf("\ninputaninteger:");scanf("%d”,&n);if(prime(n))printf("\n%disaprime.\n”,n);elseprintf("\n%disnotaprime.\n”,n);}intprime(intn){intflag=1,i;for(i=2;i<n/2&&flag==1;i++)if(n%i==0)flag=0;return(flag);}实验2#include<stdio.h>voidmain(){inta(int,int);inti(int,int,int);intu,v,ma,mi;scanf("%d,%d,",&u,&v);ma=a(u,v);printf("ma=%d\n”,ma);mi=i(u,v,ma);printf("mi=%d\n”,mi);}inta(intu,intv){intt,r;if(v>u){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}return(v);}inti(intu,intv,inth){return(u*v/h);}实验3#include<stdio.h>#defineN10#defineM5floatscore[N][M];floata_stu[N],a_cour[M];intr,c;voidinput_stu(void){inti,j;for(i=0;i<N;i++){printf("\ninputscoreofstudent%2d:\n”,i+1);for(j=0;j<M;j++)scanf("%f”,&score[i][j]);}}voidaver_stu(void){inti,j;floats;for(i=0;i<N;i++){for(j=0,s=0;j<M;j++)s+=score[i][j];a_stu[i]=s/5.0;}}voidaver_cour(void){inti,j;floats;for(j=0;j<M;j++){s=0;for(i=0;i<N;i++)s+=score[i][j];a_cour[j]=s/(float)N;}}floathighest(){floathigh;inti,j;high=score[0][0];for(i=0;i<N;i++)for(j=0;j<M;j++)if(score[i][j]>high){high=score[i][j];r=i+1;c=j+1;}return(high);}voidmain(){inti,j;floath;input_stu();aver_stu();aver_cour();printf("\nNo.courlcour2cour3cour4cour5aver\n");for(i=0;i<N;i++){printf("No.%2d”,i+1);for(j=0;j<M;j++)printf("%8.2f”,score[i][j]);printf("%8.2f\n”,a_stu[i]);}printf("\naverage:");for(j=0;j<M;j++)printf("%8.2f”,a_cour[j]);printf("\n");h=highest();printf("higest:%7.2fNo.%2dcourse%2d\n”,h,r,c);}实验4#include<stdio.h>#include<string.h>#defineN10#include<conio.h>charstr[N];voidmain(){voidsort(char[]);inti;printf("inputstring:\n");scanf("%s”,&str);sort(str);printf("stringsorted:\n");for(i=0;i<N;i++)printf("%c”,str[i]);printf("\n");}voidsort(charstr[]){inti,j;chart;for(j=1;j<N;j++)for(i=0;(i<N-j)&&(str[i]!='\0');i++)if(str[i]>str[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;}}实验5#include<stdio.h>#include<math.h>floatx1,x2,disc,p,q;voidmain(){voidbig_than_zero(float,float);voidequal_to_zero(float,float);voidsmall_than_zero(float,float);floata,b,c;printf("\ninputa,b,c:");scanf("%f,%f,%f”,&a,&b,&c);printf("equation:%5.2f*x*x+%5.2f*x+%5.2f=0\n”,a,b,c);disc=b*b-4*a*c;printf("root:\n");if(disc>0){big_than_zero(a,b);printf("x1=%f\t\tx2=%f\n”,x1,x2);}elseif(disc==0){equal_to_zero(a,b);printf("x1=%f\t\tx2=%f\n”,x1,x2);}else{small_than_zero(a,b);printf("x1=%f+%fi\tx2=%f-%fi\n”,p,q,p,q);}}voidbig_than_zero(floata,floatb){x1=(-b+sqrt(disc)/(2*a));x2=(-b-sqrt(disc)/(2*a));}voidequal_to_zero(floata,floatb){x1=x2=(-b)/(2*a);}voidsmall_than_zero(floata,floatb){p=-b/(2*a);q=sqrt(-disc)/(2*a);}实验6#include<stdio.h>voidmain(){floatfac(intn);intn;floaty;printf("intputanumber:");scanf("%d”,&n);y=fac(n);printf("%d!=%10.0f\n”,n,y);}floatfac(intn){floatf;if(n<0){printf("n<0,Wrong!”);}elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return(f);}实验名称:指针五十、 实验日的和要求学会定义和使用指针变量能正确使用数组的指针和指向数组的指针能正确使用字符串的指针和指向字符串的指针变量五十一、实验内容和原理输入3个整数,按由小到大的顺序输出。输入3个字符串,按由小到大的顺序输出。输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:①输入10个数;②进行处理;③输出10个数。有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数。在主函数中输入10个等长的字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。五十二、实验环境硬件:PC机;软件:Windows操作系统、TurboC++3.0。五十三、算法描述及实验步骤见附录五十四、调试过程没给*p2定义为整型<uoidsuap<int*<uoidsuap<int*pl,*p2>;改为在使用字符串函数时没有包含头文件“string.h”,尽管能运行但是实验不会成功。所以调试时在程序开头添加“#include<string.h>”。输入时误把输出函数“printf”写成“print”4.c21:DeclarationsyirtaxerrorErrorE:\T83.C29:Function*printJ4.c21:Declarationsyirtaxerror原因是定义一个函数不用像声明一个函数后面要加“;”,所以调试时应5.[uoid 由十叫[20]语句后面”去掉。5.[uoid 由十叫[20]语句后面”去掉。c6:Sizeofstructureorarraynotknowninfunctionmain因二维数组定义方法不对导致这错误。charstr[18,6];charstr[18,6];改为charstr[1Q][6];五十五、实验结果1.leaseinputthreenumbers:32,66,98heordernumbersis:32,66,98leaseinputthreenumbers:-1,-6,6heordernumbersis:-6,-1,6leaseinputthreenumbers:3,6,3heordernumbersis:3,3,62.pleaseinputthreelineNicetomeetyou-IIamastudent.Hello!Theorderlineis:Hello*Iamastudent.Nicetomeetyau.3.4.howmangnumbers:10Ipleaseinputnumbers-23361059998667524437houmanppositionyouuantmoue:5theneuarrangeis:866752443723361059995.ChinaJapanKoreaEgyptNepalBurmaGhanaSudanItalyLibyaThenewarrangeisBurmaChinaEgyptGhanaItalyJapanKoreaLibijaNepalSudan五十六、总结在了解了指针概念的基础上通过本次上机实验,我更进一步学会定义和使用指针变量,也基本能使用数组的指针和指向数组的指针变量,以及使用字符串的指针和指向字符串的指针变量。从这次实验中我也知道自己对函数的定义和声明的区别还不是很熟悉,还有实验的一些错误细节没有避免掉,今后还应加强程序的书写和上机实验。附录:实验1:#include<stdio.h>voidmain(){voidswap(int*p1,int*p2);inta,b,c;int*p1,*p2,*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论