您的当前位置:首页正文

C语言实验三

来源:帮我找美食网
C语言程序设计实验报告

班级:生技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 main() { char x,y; int z;

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 备注:

因篇幅问题不能全部显示,请点此查看更多更全内容

Top