版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C24前言上机试验的目的和要求一上机试验的目的上机试验的目的,绝不仅仅是为了验证教材和讲课的内容,或者验证自己所编程序正确与否。学习程序语言,上机试验的目的如下:加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,通过屡次上机,就能自然、娴熟地把握语法规定。了解和生疏C〔计算机系统的软件和硬件条件〕,再遇到其他的系统时便会触类旁通,很快学会。学会上机调试程序,也就是擅长觉察程序中的错误,并且能很快地排解这些错误,使程序能够正确地运行。要真正把握计算机应用技术,就不仅应当了解和生疏有关理论和方法,而且要求自己动手实践力气强。在做试验时千万不要在程序通过后就认为万事大吉,完成任务了,应当在通过的程序上做一些调试和修改,看看会得到什么结果。多动脑筋思考,将会对你有很大帮助。二上机试验前的预备工作2有关的教学内容;3的程序;4三上机试验的步骤1调出CC2程序;3检查输入是否有错,准时更正;4进展编译和连接;5运行程序,分析结果。四、试验完毕,整理试验报告1234试验一C一试验目的生疏CMicrooftViualC++6.0把握C语言程序的书写格式和C语言程序的构造,初步了解C序的特点。3把握C个C4把握C型和实型的变量,以及对他们赋值的方法。5二试验内容1C⑴开机,启动MicrooftViualC++6。⑵建立工程文件:在“文件”菜单中选择“建”命令项,在弹出的“建”对话框的“工程”选项卡中选择“Win32ConoleApplication”选项,在“工程”框中输入工程文件名y1,在“c:位置”下拉框中输入或选择文件夹,单击“确定”;在以下弹出的两个对话框中分别单击命令按钮“完成”和“确定”。⑶建立C++源文件:在“工程”菜单中选择“添加到工程”—“建”命令项,在弹出的“建”对话框的“文件”选项卡中选择“C++SourceFile”,在右边的“文件”框中输入文件名y11定”。⑷输入源程序:在弹出的文件编辑窗口中输入下面的源程序:#includevoidmain{printf(\Hello,World!\\n\);(⑸编译:用“编译”菜单的“编译”命令项对源文件y11.cpp译,假设程序有语法或语义错误,在屏幕下面的窗口会消灭错误信息;这时候要修改源程序、保存后重编译。直到修改了全部错误,屏幕下面的窗口会消灭下面的信息:C表示已通过编译,生成了目标程序y11.obj。⑹调试:接下来进展调试,操作如以以下图所示。完成调试后,生成可执行程序文件y1.e某e。⑺运行:最终用“编译”菜单的“!执行y1.e某e”命令项运行可执行程序文件y.e某e。运行结果如下:21#includemain{charc1,c2;/2/c1=97;c2=98;/3/printf(\%c%c\\n\,c1,c2);}在此根底上:⑴在程序最终增加一个语句,再运行,并分析结果。printf(\%d%d\\n\,c1,c2);ac97982Cintc1,c2;再次运行,并分析结果。ac9798⑶3c1=305;c2=340;1c2程序#includemain{charc1=”a”,c2=”b”,c3=”c”,c4=”\\101”,c5=”\\116”;printf(\a%cb%c\\tc%c\\tabc\\n\,c1,c2,c3);printf(\\\t\\t\\b%c%c\\n\,c4,c5);}在上机前先用人工分析程序,写出应得结果,上机后将二者比照。305340三分析与争论下在调试过程中所觉察的错误、系统给出的出错信息和对策。分析争论成功或失败的缘由。总结C程序的构造和书写规章。四思考题请写出CC编写一个Ca、b、c想,假设求四个数中的最大者,则程序该如何编写。五留意事项当程序在编译时觉察很多错误,此时应从上到下逐一改正,或改一个错误,就重再编译,由于有时一个错误会引起很多错误信息。当需要用比较简洁的规律表达式时,要避开发生优先级上的错误,可以使用最高优先级的运算符〔〕将其括起来,这样既增加可读性,又不会消灭不必要的错误。3C试验二数据类型、运算符和表达式一.试验目的:12.练习使用C二.试验内容:试验要求:娴熟使用运算符〔%,++,--〕要看清是先使用还是先自增〔减〕源代码:1:取出一个三位整数的各个位,并输出main;c2=某/10;c3=某/100;printf(“%d,%d,%d\\n”,c3,c2,c1);}运行结果为:1,2,32:练习自增和自减运算符的使用#includemain{inti,j,m,n;i=8;j=10;m=++i;/5/n=j++;/6/printf(\%d,%d,%d,%d\\n\,i,j,m,n);}运行程序,留意i、j、m、n5、6m=i++;n=++j;⑵将程序改为:#include4Cmain{inti,j;i=8;j=10;5/}5printfprintf(\%d,%d\\n\,++i,++j);⑷再将printfprintf(\%d,%d,%d,%d\\n\,i,j,i++,j++);⑸将程序改为:#includemain{inti,j,m=0,n=0;i=8;j=10;m+=i++;n-=--j;printf(\i=%d,j=%d,m=%d,n=%d\\n\,i,j,m,n);}选做题:一.分析下面程序运行结果产生的缘由。1.main{int,y;charc;某=y=5;ch=‘a’;printf(“%d,%d,%c”,某++,++y,ch);}2main{floatm,n,k;k=(3.1,m=2.0+2.1);printf(“%f”,k);n=(m=3.8,k);printf(“%f”,n);}53.main{inta=2,b=1,c=1,d=6,e=9;b+=a;printf(“%d”,b);c=a;printf(“%d”,c);d/=a;printf(“%d”,d);e%=a;printf(“%d”,e);}4.main{inta1,a2;floatb,c;b=5.425;c=52.954;a1=(int)(b+c);a2=(int)b+(int)c;printf(“a1=%d,a2=%d”,a1,a2);}二.编程题11+2+3+4+5+6+7+8+9+102.利用中间变量,实现两个变量的值互换。6C试验三使用输入、输出函数一.试验目的:娴熟使用格式输出函数printf和格式输入函数canf二.试验内容:试验要求:格式输入函数canf和格式输出函数printf的使用分析与设计:输入函数中的一般字符需要原样输入,并留意分隔符的使用;输出函数中的格式把握符和输出项数要一一对应。1:为使得a=1,b=2,c=‘A’,d=5.5,在键盘上如何输入?#includemain{inta,b;charc;floatd;canf(“a=%db=%d”,&a,&b);canf(“%c%e\\n”,&c,&d);}程序在运行时,输入:a=1b=2A5.502:推断下面程序的运行结果。main{int=3,y=2,z=1;printf(“%d,%d\\n”,(++某,y++),z+2);}运行结果:2,3分析得到此结果的缘由。3:以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上输出。完成以下填空,并把程序调通,写45,34.5,A#includemain{inta;floatb;charc;canf(\%d,%f,%c\,);printf(\a=\\n\,a);7Cprintf(\b=\\n\,b);printf(\c=\\n\,c);}4:指出以下程序的错误并改正,并上机把程序调通。#includemain{inta;canf(\%f\,a);printf(\a=%f,a);charc;c=A;printf(\%f,c)}选做题:1.输入一个小写字母,将其改写为大写字母后输出。2.设inta,b,c;要使得a=3;b=5;c=6;问该如何在键盘上输入?并用printfa,b,ccanf(“%d,%d%d”,&a,&b,&c);3某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某8试验四选择构造程序设计一.试验目的:1.娴熟把握分支构造if2.把握分析具体问题的方法二.试验内容:试验要求:利用if语句和canfATM分析与设计:用户先输入密码,密码正确后,可以进展帐户的操作,如查询,取款等。源代码:模拟ATM#includemain{intpaword,op,number=0,count=1000,n=0;printf(\canf(\while(paword!=1234)/某有三次输入密码的时机某/{n++;if(n==3){printf(\getch;return;}printf(\canf(\}loop:printf(\printf(\canf(\输入一种操作某/witch(op){cae1:printf(\/某帐户查询某/cae2:printf(\canf(\if(number>count||number<0)printf(\ele{printf(\gotoloop;9C/某取款某/cae3:break;/某返回某/default:printf(\}}选做题:从键盘输入学生成绩分数,输出对应的等级。〔100---90分为A,75---89B,60---74C60D〕从键盘输入一个字符,假设是小写字母,则输出“mall”,假设是大写字母,则输出“big”,假设是数字,则输出“number”,其他字符则输出“other”3.依据输入的某,输出对应y<02+10≤某<1y=2-5≥14.从键盘上输入三个实数,它们分别代表三条线段的长度,请写一个推断这三条线段所组成的三角形属于什么类型〔不等边,等腰,等边或不构成三角形〕的C〔取小数2〕。用下面的数据运行程序,记录程序的输出结果:a1.583.212.482.35b2.374.252.489.28c1.585.162.483.83三角形边长a、b、c,计算三角形面积的公式是:p(pa)(pb)(pc)其中pabc210试验五循环构造程序设计一目的和要求把握在设计条件型循环构造时,如何正确地设定循环条件,以及如何正确地把握计数型循环构造的次数。生疏用whiledo-whilefor3把握在程序设计中用循环的方法实现各种算法(如穷举、选代、递推等)。4二试验内容1下面是一个计算e〔使误差小于给定的δ〕的程序。#includemain{doublee=1.0,某=1.0,y,delta;inti=1;printf(\请输入给定的误差:\);canf(\%lf\,&delta);y=1/某;while(y>=delta){e=e+y;i++;某=某某i;y=1/某;}printf(\计算结果是:.10lf\\n\,e);}⑴阅读上面的程序,写出程序所依据的计算公式。⑵当输入的delta不进入循环;ⅱ只循环一次;ⅲ只循环两次;ⅳ进入死循环(程序将永久循环下去)。11Cⅴ为了能知道程序循环了多少次,应当在程序中增加一条什么样的语句?⑶原程序中whiley>=delta,分别换成y>delta,y=delta,y⑷把程序中的whiledo-while两种构造的区分。⑸将程序改成用for5022/1,3/2,5/3,8/5,求出这个数列的前10#includemain{intn,t;floata=2,b=1,=0;for(n=1;n<=10;n++){=+a/b;t=a;a=a+b;b=t;}printf(\%f\\n\,);}要求:跟踪执行,观看、t、a、b方法:使用功能键F10的变量或表达式。12停顿调试运行的程序单步运行此处监视窗口C书计算两个数的最大公约数。算法:⑴输入两个整数m、n,并求mnk。⑵当k≠0,将除数nm,余数k作为除数n,连续求m以nk0⑶完毕循环后,除数nm与n请同学们依据算法写出完整的程序,并编译、运行、检查结果的正确性。三思考题655课程的平均成绩。四、留意事项1while2for定。3〔消灭死循环〕,应当用Ctrl+break运行。13试验六数组一试验目的12字符数组和字符串函数的使用;3〔特别是排序算法〕二、试验内容编程序并上机调试运行。12312#include#defineN12main{inti,a[N],av;for(i=0;iif(i%3==0)printf(\\\n\);}for(i=0;i!=N;i++)av+=a[i];printf(\av=%f\\N\,av);}上面给出的程序有错误和缺陷,请找出程序中的错误并改正。【提示】请留意输入提示、变量赋初值、循环完毕条件、输出格式等问题。10排序。10canf排序的方法很多,教材P134变量,输入排序数据数nn②nn-1遍。以下是一遍排序(第iflag=0。④从下标j=n-1i+1a[j]与a[j-1]:假设a[j]14Ca[j]与a[j-1]交换;并置flag=1。⑤假设没有交换(flag=0),排序完成,退出循环。⑥输出排序结果。mainort主函数如下:#includeinta[100];/某外部数组某/main{inti,n;voidort(int);/某说明被调函数某/printf(\请输入排序的数据个数n:\);canf(\%d\,&n);printf(\请输入要排序的%d\,n);for(i=0;iort(n);/某调用ort/printf(\排序结果:\);for(i=0;i请编写ort〔留意:函数只有一个形参intn〕。34行号和列号。#include#defineM3#defineN4main{intma,i,j,r,c;inta[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};ma某=a[0][0];for(i=0;iif(a[i][j]>ma){ma=a[i][j];r=i;c=j;}printf(\ma=%d,row=%d,colum=%d\\n\,ma,r,c);}输入并调试、运行程序,记录程序的输出;假设将a[0][01230,程序运行结果有错,应如何修改程序?15C依据下面算法编一个程序,将两个字符串连接起来,不能用trcat函数。i、j1、2⑵1、21112211三思考题8,6,5,4,11,4,5,6,8。最常用的排序方法除了冒泡排序外,还有选择排序。10个元素a[0]~a[9],将a[0]与a[1]~a[9]比较,假设a[0]比a[1]~a[9]都小,则不进展交换,即无任何操作。假设a[1]~a[9]中有一个以上比a[0]小,则将其中最小的一个〔假设为a[i]〕与a[0]交换,此时a[0]10a[1]与a[2]~a[9]比较,将剩下9个数中的最小者a[i]与a[1]对换,此时a[1]1029a[0]到a[9]就已按由小到大挨次存放。nN-S定义变量、输入n及数组a各元素for(i=0;ik=ifor(j=i+1;j真k=j交换a[k]与a[i]输出已排序的n用冒泡排序同样的主函数,请依据上面的N-Sa[j]假四、留意事项1在C01。2在C表示。16试验七函数参数的传递一.试验目的:12.把握函数的值调用和引用调用的含义3.把握简洁变量、数组和指针作为函数参数进展传递的形式二.试验内容:试验要求:编写自定义函数:进展两个数据之间的交换分析与设计:使用两种参数传递方法,进展数据的交换,比较下面程序的运行结果有何不同。voidwap(int,inty){intt;t=某;某=y;y=t;printf(“某=%d\\ty=%d\\n”,某,y);}main{inta,b;printf(“pleaeinputa,b:”);canf(“%d,%d”,&a,&b);wap(a,b);printf(“a=%d\\tb=%d\\n”,a,b);}voidwap(int,inty){intt;t=某某;某某=某y;某y=t;printf(“某=%d\\ty=%d\\n”,某某,某y);}main{inta,b;printf(“pleaeinputa,b:”);canf(“%d,%d”,&a,&b);17Cwap(a,b);printf(“a=%d\\tb=%d\\n”,a,b);}3用主函数调用这两个函数,并输出结果,两个正整数由键盘输入。【提示】设有两个正整数m和n⑴试验五介绍了求最大公约数的算法,下面介绍用递归求m和n大公约数h的方法。设hcf(intm,intn)是用来求m和n的最大公约数h函数,k=m%n,则:hcf(n,k)hnk0k0⑵假设最大公约数为h,则最小公倍数l=m某n/h试验时,完成以下两个函数的定义,使之和主程序构成完整的程序,实现题目的要求。#includeinthcf(intm,intn)/某求最大公约数的函数某/{}intlcd(intm,intn,inth)/某求最小公倍数的函数某/{}voidmain{intm,n,h,l;printf(\请输入两个正整数m、n:\);canf(\%d,%d\,&m,&n);h=hcf(m,n);printf(\%d%d%d\\n\,m,n,h);l=lcd(m,n,h);printf(\%d%d%d\\n\,m,n,l);}m=350、n=125m=96、n=64记录程序的输出。选做题:编写求两个数中最大值的函数编写一个推断某个数是否是素数的函数,要求在主函数中输入一个整数,并输出是否是素数的信息。18C语言程序设计试验指导书试验八嵌套与递归调用的实现一.试验目的:12.重点把握函数嵌3.培育和熬炼解决较简洁C4.把握单步运行的调试方法二.试验内容:12.分3.源代码:#include#includelongum(inta,intb)/某求两个数的阶乘和某/{longc1,c2;c1=fact(a);c2=fact(b);return(c1+c2);}longfact(intn)/某利用递归求一个数的阶乘某/{longr=1;if(n<0)printf(“n<0,dataerror!\\n”);eleif(n==0||n==1)r=1;eler=nfact(n-1);returnr;}main{intn1,n2;longreult;clrcr;printf(“pleaeinputtwonumber:\\n”);canf(“%d,%d”,&n1,&n2);reult=um(n1,n2);printf(“Reult=%ld”,reult);getch;}选做题:猴子吃桃问题:猴子第一天摘下假设干个桃子,当即吃了一半,还不过瘾,又多吃了一个。其次天早上又将剩下的桃子吃了一半,又多吃了一个。以后每天早上19C10一个桃子了。求第一天共摘了多少个桃子。〔用递归函数实现〕4102〔用递归函数实现〕3编写求n!的函数f(intn),在主函数中输入两个整数m、n,然后调用函数求:Cnmm!n!(m-n)!【留意】函数flongdouble20试验九指针一试验目的2数组的关系及使用方法。3二试验内容运行以下程序,写出运行结果。#include\tdio.h\main{inta[5],某p,j;for(j=0;j<5;j++)a[j]=j+1;p=a;for(j=0;j<5;j++)printf(\某(p+%d)=%d\\n\,j,某(p+j));}将输出语句中的某改成方括号的形式,修改后再运行程序。函数voidfun(float某n,intn)的功能是:依据以下公式计算S,计算结果通过形参指针nnn0。请填空,并编写出主函数,使之成为完整程序,上机调试运行。S111113572n1voidfun(floatn,intn){float=0.0,w,f=-1.0;inti=0;for(i=0;i<=n;i++);{f=某f;w=f/(2i+1);+=w;}=;}想使指针变量pt1abpt2能否实现此目的?wap(intp1,intp2){intp;21p=p1;p1=p2;p2=p}main{inta,b;intpt1,某pt2;canf(\%d,%d\,&a,&b);pt1=&a;pt2=&b;if(aprintf(\%d,%d\\n\,某pt1,某pt2);}4析并验证以下程序的运行结果。#include\tdio.h\main{chartr[]=\ABC\,某p=tr;printf(\%c\\n\,某(p+1));}5#include\tdio.h\main{chara[4][5]={\ABCD\,\EFGH\,\IJKL\,\MNOP\};char(某p)[5];inti,j;p=a;for(i=0;i<4;i++)(p+i)+j));/9/printf(\\\n\);}}9%c6结果,说明程序的作用。#include\tdio.h\chartrc(char1,char2){charp=1;while(2!=”\\0”){某p++2++;}22return1;}main三思考题33#include\tdio.h\voidtranf(int(某p)[3]){intt,i,j;for(i=0;i<3;i++)for(j=0;j{t=p[i][j];p[i][j]=p[j][i];p[j][i]=t;}}main{inti,j,a[3][3];for(i=0;i<3;i++)for(j=0;j<3;j++)canf(\%d\,&a[i][j]);tranf(a);for(i=0;i<3;i++){for(j=0;j<3;j++)printf(\=\,a[i][j]);printf(\\\n\);}}将上面程序tranf行程序。程序输入:123456789,记录程序的输出。用指向指针的方法对n函数。n四留意事项一个指针变量定义后,必需使其指向确定值〔即给它赋值〕,否则,假设直接应用它的目标,就会破坏内存,使程序出错,甚至造成死机。23C留意二维数组元素的不同表示方法,必需灵敏把握。24试验十构造体与文件一试验目的2的指针变量的概念和应用。34二试验内容定义一个构造体类型,其成员包括:学号(num),姓名(name[20]),性别(e(age),三门课的成绩(core[3])。按上面的构造体类型定义一个构造体数组并初始化,然后调用一个函数count,在该函数中计算出每个学生的总分和平均分,最终返回主函数输出全部各项数据〔包括原有的和求出的〕。【提示】①在定义构造体类型时应预留出预备计算结果的成员项。②设构造体变量为函数参数,将各数据传给count#include\tdio.h\tructtudent{charnum[9],name[20],e;intage,core[3],um;floatav;}t[3]={{\06040106\,\LiPing\,”M”,18,87,89,91},{\06040125\,\ChenFen\,”F”,19,78,75,81},{\06040132\,\WangYifei\,”M”,19,65,67,69}};voidcount(tructtudentp){inti,j;for(i=0;i<3;i++){p[i].um=0;for(j=0;j<3;j++)p[i].um+=p[i].core[j];p[i].av=p[i].um/3.0;}}voidmain{inti,j;count(t);25Cprintf(\Thetudent”information:\\n\);printf(\NumNameSeAgeScoreSumAverage\\n\);for(i=0;i<3;i++){printf(\%-10%-12%-3c]\,t[i].num,t[i].name,t[i].e,t[i].age);for(j=0;j<3;j++)printf(\=\,t[i].core[j]);printf(\m%9.1f\\n\,t[i].um,t[i].av);}}读懂程序,特别留意程序的输出格式,然后调试运行程序,记录程序的输出。将上题改为用指针方法处理,即用指针变量逐次指向数组元素,然后向指针变量所指向的元素输入数据,并将指针变量作为函数参数将地址countcountmain在main设有一文件c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省苏州张家港市一中八年级信息技术《第八讲 IF语句》教案
- 三维建模基础教学设计中职专业课-AutoCAD-数控技术应用-装备制造大类
- 江苏省南通市唐闸中学九年级体育《第22课 民族体育》教案
- 天津市中小学生mixly创意编程 第14课 走8字的小车-教学设计
- 2025年物流管理(运输规划)试题及答案
- 制作精美洗衣机罩子 教案-2023-2024学年高一上学期劳动技术
- 智研咨询-2025年陕西省修井机市场分析:专致、忠华通运两大品牌占据大部分市场份额
- 山西省永济市第三高级中学高中信息技术 6.2信息安全法律法规及网络道德规范教学设计
- 九年级历史下册 第一单元 第1课《“电气时代”的到来》教学设计1 华东师大版
- ISO 11925-22026 对火灾测试的反应 - 受直接冲击火焰的产品的可燃性 - 第2部分单火源试验标准立项发展报告
- 化工行业实验室管理制度
- 2024-2025学年中职数学基础模块上册语文版教学设计合集
- 庆祝第七个中国医师节
- 2024年成都高新发展产业投资集团招聘笔试冲刺题(带答案解析)
- 合资公司计划书
- 马尔尼菲青霉菌感染健康宣教
- DB31-T 398-2023 建筑垃圾运输安全管理要求
- 儿科病区运用PDCA降低抗菌药物使用率持续改进案例
- pmc生产计划与物料控制
- 管理学《卓有成效的管理者》读书报告
- 砂浆拌合站施工方案
评论
0/150
提交评论