《C程序设计上机实验》教案1授课时间2007-3-22第1次课授课章节实验一数据类性、运算符和表达式任课教师及职称李忠副教授实验器材奔腾计算机课时安排2使用教材和主要参考书C程序设计题解与上机指导(第三版).谭浩强编著ProgrammingInANSIC(thirdedition),E.Balagurusami著实验目的:1.在计算机上如何编辑、编译、连接和运行一个C程序。2.掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及赋值的方法3.掌握不同的类型数据之间赋值的规律。4.学会使用C的有关算术运算符,以及包含这些运算符的表达式。实验内容:1.检查所用的计算机系统是否已安装了C编译系统并确定它所在的子目录。2.建立用户自己的子目录3.进入TC工作环境4.熟悉TurboC集成环境5.编辑并运行程序题目1写出以下程序运行的结果。main(){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);}题目2写出程序的运行结果。main(){charc1,c2;c1=97;c2=98;printf(%c%c\n,c1,c2);printf(%d%d\n,c1,c2);}思考:可否改成intc1,c2;?《C程序设计上机实验》教案2题目3写出程序运行结果。main(){inti,j,m,n;i=8;j=10;m=++i;n=j++;printf(%d,%d,%d,%d,i,j,m,n);}思考:m=++i;与m=i++;的相同之处与不同之处?题目5下列程序的输出是main(){inta=9;a+=a-=a+a;/*包含复合的赋值运算符的赋值表达式*/printf(%d\n,a);}思考:赋值表达式a+=a-=a+a的求解步骤?题目6下列程序的输出是main(){inta=7,b=5;printf(%d\n,b=b/a);}思考:若将printf语句中%d变为%f,可否输出分式的值?题目7下列程序的输出是main(){inta=011;printf(%d\n,++a);}题目8若int类型数据占两个字节,则下列语句的输出为main(){intk=-1;printf(%d,%u\n,k,k);}思考:-1在内存中的存储形式?《C程序设计上机实验》教案3复习思考题、作业题:题目9下列程序的运行结果是#includestdio.hmain(){printf(%d,null);}运行情况:因为变量null无定义,无法正确运行。思考:如将null改为NULL,则结果如何?题目10若k,g均为int型变量,则下列语句的输出为main(){intk,g;k=017;g=111;printf(%d\t,++k);printf(%x\n,g++);}下次课预习要点实施情况及实验效果分析学院审核意见学院负责人签字年月日《C程序设计上机实验》教案4授课时间2007-4-5第2次课授课章节实验二简单的C程序设计任课教师及职称李忠副教授实验器材与手段奔腾计算机课时安排2使用教材和主要参考书C程序设计题解与上机指导(第三版).谭浩强编著ProgrammingInANSIC(thirdedition),E.Balagurusami著实验目的:(1)掌握C语言中赋值语句的使用方法。(2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。重点:各种类型数据的输入输出的方法。难点:能正确使用各种格式转换符。实验内容:题目1若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。要求输出的结果如下:a=3b=4c=5x=1.200000,y=2.400000,z=-3.600000x+y=3.60y+z=-1.20z+x=-2.40u=51274n=128765c1=’a’or97(ASCII)c2=’b’or98(ASCII)题目2请写出下面程序的输出结果:main(){inta=5,b=7;floatx=67.8564,y=-789.124;charc=’A’;longn=1234567;unsignedu=65535;printf(%d%d\n,a,b);printf(%3d%3d\n,a,b);printf(%f,%f\n,x,y);printf(%-10f,%-10f\n,x,y);printf(%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n,x,y,x,y,x,y);printf(%e,%10.2e\n,x,y);printf(%c,%d,%o,%x\n,c,c,c,c);《C程序设计上机实验》教案5printf(%ld,%lo,%x\n,n,n,n);printf(%u,%o,%x,%d\n,u,u,u,u);printf(%s,%5.3s\n,COMPUTER,COMPUTER);}思考:解释倒数第三个printf语句的输出结果。题目3用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。问在键盘上如何输入?main(){inta,b;floatx,y;charc1,c2;scanf(a=%db=%d,&a,&b);scanf(%f%e,&x,&y);scanf(%c%c,&c1,&c2);printf(a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n,a,b,x,y,c1,c2);}题目4设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编程序。main(){floatpi,h,r,l,s,sq,vq,vz;pi=3.1415926;printf(inputr,h:\n);scanf(%f,%f,&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=4.0/3.0*pi*r*r*r;vz=pi*r*r*h;printf(l=%6.2f\n,l);printf(s=%6.2f\n,s);printf(sq=%6.2f\n,sq);printf(vq=%6.2f\n,vq);printf(vz=%6.2f\n,vz);}《C程序设计上机实验》教案6运行结果:inputr,h:1.5,3↙1=9.42s=7.07sq=28.27vq=14.14vz=21.21题目5输入一个华氏温度,要求输出摄氏温度。公式为c=95(F-32)。输出要有文字说明,取2位小数。main(){floatc,f;printf(inputf:\n);scanf(%f,&f);/*输入华氏温度f*/c=(5.0/9.0)*(f-32);/*求摄氏温度c*/printf(c=%5.2f\n,c);}运行结果:inputf:78↙c=25.56思考:求c值的语句可否改成c=(5/9)*(f-32);为什么?题目6下列程序的运行结果为main(){intx=2,y,z;x*=3+2;printf(%d\t,x);x*=y=z=4;printf(%d\t,x);x=y=1;z=x++-1;/*此处等价于z=x-1;x=x+1;故z为0,x为2*/printf(%d,%d\t,x,z);z+=-x+++y;/*此处等价于z+=-(x++)+y*/printf(%d,%d\t,x,z);x=40;y=4;z=4;x=y==z;printf(%d\t,x);x=x==(y=z);printf(%d\n,x);}运行结果为:10402,03,-110思考:表达式i+++j如何理解?《C程序设计上机实验》教案7题目7下列程序的运行结果为main(){inti,j;i=16;j=(i++)+i;printf(%d\t,j);i=15;printf(%d\t%d\t,++i,i);i=20;j=i--+i;printf(%d\t,j);i=13;printf(%d\t%d\n,i++,i);}运行结果为:321615401313思考:如函数参数求值顺序是自左向右,则结果又将如何?题目8下列程序的运行结果为main(){unsignedchara=’a’,b=’b’,c=’c’;a=a-32;b+=c-a;c=c-32+b-a;printf(a=%c,b=%c,c=%c\n,a,b,c);}题目9下列程序的运行结果为#includestdio.hmain(){intx=2,y=4,z=40;x*=3+2;printf(%d\n,x);x=y=z;printf(%d\n,x);}思考:赋值运算符的结合顺序?《C程序设计上机实验》教案8复习思考题、作业题:题1下列程序的运行结果为main(){inta=5;printf(\n%d,,(3+5,6+8));a=(3*5,a+4);printf(a=%d\n,a);}思考:程序第5行如改为a=3*5,a+4;结果将如何?题2输入a字母时,下列程序运行结果为#includestdio.hmain(){charch;ch=getchar();(ch=’a’&&ch=’z’)?putchar(ch+’A’-’a’):putchar(ch);}题3下列程序运行结果为main(){intx,y,z;x=24;y=024;z=0x24;printf(%d,%d,%d\n,x,y,z);}题4执行下面的程序后,变量w,x,y,z的值分别为:main(){intw=5,x=4,y,z;y=w++*w++*w++;z=--x*--x*--x;printf(%d%d%d%d,w,x,y,z);}题5下列程序运行结果为main(){unsignedx1;intb=-1;x1=b;printf(%u,x1);}《C程序设计上机实验》教案9下次课预习要点实施情况及实验效果分析学院审核意见学院负责人签字年月日《C程序设计上机实验》教案10授课时间2007-4-19第3次课授课章节实验三逻辑结构程序设计任课教师及职称李忠副教授实验器材与手段奔腾计算机课时安排2使用教材和主要参考书C程序设计题解与上机指导(第三版).谭浩强编著ProgrammingInANSIC(thirdedition),E.Balagurusami著实验目的:(1)了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。(2)学会正确使用逻辑运算符和逻辑表达式。(3)熟练掌握if语句和switch语句。(4)结合程序掌握一些简单的算法。(5)学习调试程序。重点、难点:调试程序实验内容:题目1有3个整数a、b、c,由键盘输入,输出其中最大的数。方法1:main(){inta,b,c;printf(inputthreeinteger:);scanf(%d,%d,%d,&a,&b,&c);if(ab)if(bc)/*a小于b且b小于c,则c最大*/printf(max=%d\n,c);else/*a小于b且b大于c,则b最大*/printf(max=%d\n,b);elseif(ac)/*a大于b且a小于c,则c最大*/printf(max=%d\n,c);else/*a大于b且a大于c,则a最大*/printf(max=%d\n,a);}《C程序设计上机实验》教案11方法2:main(){inta,b,c,temp,max;printf(inputthreeinteger:);scanf(%d,%d,%d,&a,&b,&c);temp=(ab)?a:b;/*temp为a、b中较大值*/max=(tempc)?temp:c;/*在temp和c中比较出最大值*/printf(max=%d\n,max);}运行结果:i