班级:生技0902 实验内容:实验2
姓名:李丹 日期:2010-4-15 学号:40965045 备注: 实验目的
1. 掌握字符输入输出函数的格式及调用方法。
2. 掌握格式输入输出函数的格式及调用方法,能正确使用各种格式转换符。 3. 初步理解算法和结构化程序设计的基本概念,了解顺序程序的基本结构,
掌握顺序结构程序设计方法。
实验内容
1. 实验3_1. 输入下面的程序,并记录输出结果。(《C语言程序设计教程-习题解答与实验指导》第122页,实验3,实验内容1)
(1).c源程序:(注意:以下源程序请在半角输入状态下复制粘贴) #include “stdio.h” main( )
{int a=10,b=20;char c=’A’; long m=123456789; unsigned int n=65534;
float x=12.34567891,y=-987.6543; printf(“%d%d\\n”,a,b); printf(“a=%3d, b=%3d\\n”,a,b); printf(“%c,%d,%o,%x\\n”,c,c,c,c); printf(“%ld,%d\\n”,m,m); printf(“%u,%o,%x,%d\\n”,n,n,n,n);
C语言程序设计实验报告
班级:生技0902 实验内容:实验2
printf(“%f,%f\\n”,x,y); printf(“%-10.3f,%10.7f\\n”,x,y); printf(“%e,%10.3e\\n”,x,y);
printf(“%s,%-6.3s,%6.3s\\n”,”student”,”student”,”student”); }
(2)运行结果:(请将运行结果截图并贴入下框内)
姓名:李丹 日期:2010-4-15 学号:40965045 备注: (3)思考并回答: ①程序运行结果第5、6行为什么和书上的答案不同?TC环境和VC环境的一个显著区别是什么?
答:因为书上的运行结果是TC环境下,int类型是16位,而VC下,int是32位。TC环境和VC环境的一个显著差异就是:TC是16位系统,VC是32位系统,TC和VC对int类型数据所分的存储空间不同,前者为int分了2个字节,后者为int分了4个字节。
②按%f输出时,小数部分自动保留了 6 位,为什么? 答 : %f表示输入小数形式的单精度实型数。
C语言程序设计实验报告
班级:生技0902 实验内容:实验2
姓名:李丹 日期:2010-4-15 学号:40965045 备注: 1. 实验3_2. : 输入下面的程序:(《C语言程序设计教程-习题解答与实验指导》第124页,实验3,实验内容2)
(1).c源程序:(注意:以下源程序请在半角输入状态下复制粘贴) #include “stdio.h” main() {int a,b,c,d,p,q; float x; long m,n;
scanf(“%d,%o,%x,%u”,&a,&b,&c,&d); scanf(“%ld,%lx”,&m,&n);
scanf(“%2d%3d%*2d%5f”,&p,&q,&x); printf(“a=%d, b=%d, ”,a,b); printf(“c=%d, d=%d\\n”,c,d); printf(“m=%ld, n=%ld\\n”,m,n); printf(“p=%d, q=%d, x=%f\\n”,p,q,x); }
在运行程序时输入下面的数据: 100,100,100,65525↙ 123456789,10000↙ 123456789.34567↙
(2)运行结果:(请将运行结果截图并贴入下框内)
C语言程序设计实验报告
班级:生技0902 实验内容:实验2 姓名:李丹 日期:2010-4-15 学号:40965045 备注: (3)思考并回答: ①用scanf函数进行格式输入时,需要注意的是:
如果各格式说明符之间有普通字符,在输入数据时,必须 用逗号 ,作为数据之间的分隔符;如果各格式之间没有普通字符,则可以用一个或多个 空白符 进行分隔。
②观察程序输出的结果,具有显著的对齐特点,除采用在printf函数内添加指定数量的空格符之外,还可以用转义字符 \ 来替代。
3.实验3_3. 从键盘输入两个实型数,编程求它们的和,差,积,商。要求输出结果时,保留2位小数。(习题3.4.2) (1).c源程序 Main()
{float x,y,z1,z2,z3,z4; Printf(“input x & y:”); Scanf(“%f,%f”,&x,&y);
C语言程序设计实验报告
班级:生技0902 实验内容:实验2
Z1=x+y; z2=x-y; z3=x*y; z4=x/y;
printf(“x+y=%.2f,x-y=%.2\\n”,z1,z2); printf(“x*y=%.2f,x/y=%.2f\\n”,z3,z4); }
(2)运行结果:
姓名:李丹 日期:2010-4-15 学号:40965045 备注:
(3)思考并回答:
如果题目要求“输入两个整型数,编程求它们的和、差、积、商”,那么,需要注意在求商时进行 数据类型转换 。
4.实验3_4. 计算机完成一项复杂的数学计算需要40 000s,编写程序,将其转换成几小时几分几秒的表示形式。(习题3.4.6) (1).c源程序 Main() {long m;
Int hours,minutes,seconds;
C语言程序设计实验报告
班级:生技0902 实验内容:实验2
M=40000;
Hours=(int)(m/3600);
Minutes=(int)((m-hours*3600)/60); Seconds=(int)(m%60);
Printf(“%1d equal %d hours %d minutes %d seconds\\n”, m,hours,minutes,seconds); }
(2)运行结果:
姓名:李丹 日期:2010-4-15 学号:40965045 备注:
(3)思考并回答:
分别使用赋值语句和scanf语句给变量赋值40 000,比较程序运行过程有什么区别?答:赋值语句直接执行,scanf语句执行后输入数据。
(4)如果计算机完成该项数学计算需要400 000秒,请改写程序,将其转换成几天几小时几秒的表示形式。改写后的c源程序如下: Main() {long m;
Int days,hours,minutes,seconds; M=40000;
Days=(int)(m/86400);
Hours=(int)((m-days*86400)/3600);
Minutes=(int)((m-days*86400-hours*3600)/60);
C语言程序设计实验报告
班级:生技0902 实验内容:实验2
Seconds=(int)(m%60);
Printf(“%1d equal %d days %d hours %d minutes %d seconds\\n”, M,days,hours,minutes,seconds); }
姓名:李丹 日期:2010-4-15 学号:40965045 备注: 5.实验3_5. 按%c形式输入两个数字字符,将它转换成一个两位的整形数后乘以10输出。例如输入字符3和5,应按%d形式输出整形数350。 (1).c源程序 #include printf(\"Input x,y:\\n\"); scanf(\"%c,%c\ z=(x-'0')*100+(y-'0')*10; printf(\"%d\\n\} (2)运行结果: C语言程序设计实验报告 班级:生技0902 实验内容:实验2 (3)思考并回答: 你是如何实现从数字字符得到对应的数字值的? 答:数字字符减字符‘0’可以得到对应的数字值。 姓名:李丹 日期:2010-4-15 学号:40965045 备注: 6.附加题. 编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。 (1)思考并回答: ①变量c1、c2应定义为字符型或整型?抑两者皆可? 答:字符型 ②要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数? 答:以int类型输出 printf ③整型变量与字符型变量是否在任何情况下都可以互相代替?如 char c1,c2; 与 int c1,c2; 是否无条件地等价?为什么? 答:不是, int有32位,但char只有8位 (2)写出相应的.c源程序(要求输出这两个字符及ASCII码值) #include “stdio.h” Main() C语言程序设计实验报告 班级:生技0902 实验内容:实验2 {char a,b; A=getchar(); B=getchar(); Putchar(a); Putchar(b); Printf(“%c %c”,a,b); Printf(“%d %d”,a,b); } 姓名:李丹 日期:2010-4-15 学号:40965045 备注: 因篇幅问题不能全部显示,请点此查看更多更全内容