C语言程序设计实验第一次上机实验报告.docx

上传人:b****3 文档编号:3059734 上传时间:2022-11-17 格式:DOCX 页数:18 大小:242.60KB
下载 相关 举报
C语言程序设计实验第一次上机实验报告.docx_第1页
第1页 / 共18页
C语言程序设计实验第一次上机实验报告.docx_第2页
第2页 / 共18页
C语言程序设计实验第一次上机实验报告.docx_第3页
第3页 / 共18页
C语言程序设计实验第一次上机实验报告.docx_第4页
第4页 / 共18页
C语言程序设计实验第一次上机实验报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言程序设计实验第一次上机实验报告.docx

《C语言程序设计实验第一次上机实验报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验第一次上机实验报告.docx(18页珍藏版)》请在冰豆网上搜索。

C语言程序设计实验第一次上机实验报告.docx

C语言程序设计实验第一次上机实验报告

2.第一次实验

C语言程序设计实验报告

专业运算机科学与技术班级信安1302班日期成绩

实验组别第1次实验表达式和标准输入与输出实验指导教师周时阳

学生姓名学号同组人姓名

实验名称表达式和标准输入与输出实验

实验目的

1.熟练把握各类运算符的运算功能,操作数的类型,运算结果的类型及运算进程中的类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。

2.把握getchar,putchar,scanf和printf等函数的用法。

3.把握简单的C程序(顺序结构程序)的编写方式。

4.完成教师布置的习题及课程设计上的题目。

实验内容

(一)输出“王”字

源程序如下:

#include<>

intmain()

{

puts("*************");

puts("*");

puts("*");

puts("*************");

puts("*");

puts("*");

puts("*************");

return0;

}

实验步骤:

步骤一:

计算输出进程中应操纵的空格数,选择星号作为输出的标记。

步骤二:

采纳puts函数实现对字符串的输出。

调试及编译进程:

实验中显现的不足及修改:

无。

调试:

实现对王字的输出。

(二)编程将华氏温度转换为摄氏温度

源程序如下:

#include<>

intmain()

{

doublex,y;

printf("请输入华氏温度:

");

scanf("%lf",&x);

y=(5*(x-32))/9;

printf("%.2lf(F)=%.2lf(C)",x,y);

return0;

}

编辑步骤:

步骤一:

概念两个浮点型变量,别离用来寄放华氏温度和摄氏温度

步骤二:

用输入函数输入一个华氏温度值并存入命名为x的单元中。

步骤三:

进行华氏温度与摄氏温度之间的转换,将取得的摄氏温度值存入命名为y的单元中。

步骤四:

输出取得的摄氏温度值。

调试及编译进程:

输入数据100进行测试

显现的不足及修改:

调试时觉察输出为0,经推断得出缘故为5/9为整型得出的结果为0

将5/9*(x-32)改成(5*(x-32))/9,于是得出正确结果。

(三)别离用三种方式实现对两个数据的转换

源程序如下:

#include<>

intmain()

{

inta,b,t;

printf("enternumbers:

");

scanf("%d%d",&a,&b);

t=a;a=b;b=t;

printf("a=%d,b=%d",a,b);

return0;

}

程序32

#include<>

intmain()

{

inta,b;

printf("enternumbers:

");

scanf("%d%d",&a,&b);

a=a+b;b=a-b;a=a-b;

printf("a=%d,b=%d",a,b);

return0;

}

程序

#include<>

intmain()

{

inta,b;

printf("enternumbers:

");

scanf("%d%d",&a,&b);

a=a^b;b=a^b;a=a^b;

printf("a=%d,b=%d",a,b);

return0;

}

实验步骤(实验一):

步骤一:

概念三个变量,其中两个用来寄放将要进行转换的数据。

步骤二:

将其中一个变量的值赋给中间变量,再将另一个变量的值赋给那个变量,最后将中间变量的值赋给另一个变量。

实验步骤(实验二):

步骤一:

通过单纯的计算关系,得知a=a+b;b=a-b;a=a-b能够得出最后的结果。

步骤二:

概念变量,进行计算,输出结果。

实验步骤(实验三):

步骤一:

查资料得知通过位运算也能够完成要求。

步骤二:

通过位运算计算得出需进行的计算进程,上机完成并输出。

调试及编译进程:

测试数据:

12,23(第一个比第二个小)

测试数据:

12,12(第一个和第二个一样大)

测试数据:

23,12(第一个数据比第二个大)

显现的不足及修改:

无调试结果:

显现预期的结果。

(四)将输入的数反向输出。

源程序如下:

#include<>

intmain()

{

intx;

printf("input:

");

scanf("%d",&x);

do

putchar(x%10+'0');

while((x/=10)!

=0);

printf("\n");

return0;

}

实验步骤:

步骤一:

画出流程图,第一输入一个数,选择将它的列位数以字符的形式输出。

步骤二:

实现输出它的个位数字,即可取此数除以10后的余数。

步骤三:

将其余列位数字按这种方式进行输出。

并操纵循环条件为除以10后的余数为0时退出循环,循环进程中将该数已输出的位数上的数字抛去,即令x=x/10.

步骤四:

循环终止后,由输出的字符组成的数字即为所求。

调试及编辑进程:

测试数据:

12(两位数)

测试数据:

123(三位数)

测试数据:

1234(四位数)

显现的不足及修改:

本来将x=x/10写在循环进程中且用while循环,后来改成dowhile,使得第一次的输出更方便精练,而且将操纵x/=10写进操纵循环的括号中,既完成了循环的操纵,又实现了对x值的修改,是程序精练易懂。

(五)用两种方式输出三个数中的最大者

程序

#include<>

intmain()

{

inta,b,c,max;

printf("internumbers:

");

scanf("%d%d%d",&a,&b,&c);

max=(a>b)?

((a>c)?

a:

c):

((b>c)?

b:

c);

printf("max=%d",max);

return0;

}

程序

include<>

intmain()

{

inta,b,c,max;

printf("enternumbers:

");

scanf("%d%d%d",&a,&b,&c);

if(a>=b)

{

if(a>=c)max=a;

elsemax=c;

}

else

{

if(b>=c)max=b;

elsemax=c;

}

printf("max=%d",max);

return0;

}

实验步骤(实验一):

步骤一:

第一用条件语句判定出其中两个数的大小。

步骤二:

在条件语句的选择结果中再嵌套地用另外两个条件语句别离表示出前面两个数中较大的那个于第三个数的比较结果。

实验步骤(实验二):

步骤一:

预备用两层if语句实现实验一中的进程。

步骤二:

将实验一中的条件语句转换为if语句。

调试及编译进程:

测试数据:

1,2,3(按从小到大顺序)

测试数据:

1,3,2(第二种顺序)

测试数据:

2,1,3

测试数据:

2,3,1

测试数据:

3,1,2

测试数据:

3,2,1

显现的不足及修改:

无运行结果:

输出预期的结果。

(六)输出三个数中的居中的数

源程序如下:

#include<>

intmain()

{

inta,b,c;

printf("enternumbers:

");

scanf("%d%d%d",&a,&b,&c);

if(((a>=b)&&(b>=c))||((b>=a)&&(c>=b)))

printf("居中的数为:

%d",b);

elseif(((b>=a)&&(a>=c))||((c>=a)&&(a>=b)))

printf("居中的数为:

%d",a);

else

printf("居中ta的数为:

%d",c);

return0;

}

实验步骤:

步骤一:

输入三个数,选择划分的类型。

步骤二:

判定处在中间的数需要知足的条件,来运用条件语句完成对所有情形的划分,判定输入的三个数属于哪一种类型,进而得出居中的数为多少。

调试及编译进程:

测试数据:

1,2,3(第一种排列顺序)

测试数据:

1,3,2(第二种排列顺序)

测试数据:

2,1,3(第三种排列顺序)

测试数据:

2,3,1(第四种排列顺序)

测试数据:

3,1,2(第五种排列顺序)

测试数据:

3,2,1(第六种排列顺序)

显现的不足及更正:

一:

刚开始显现了a>=b>=c的写法,是很典型的没有弄清楚数学符号和机械语言之间不同的错误,报错后改成((a>=b)&&(b>=c)

二:

之前没有把等于号包括进去,致使条件语句不能涵盖所有的情形,致使错误。

(七)输入一元二次方程的三个系数,输出方程的根。

源程序如下:

#include<>

#include<>

intmain()

{

inta,b,c;

floatt,x1,x2;

printf("enternumbers:

");

scanf("%d%d%d",&a,&b,&c);

if((b*b-4*a*c)<0)

printf("该方程无实根");

else

{

t=sqrt(b*b-4*a*c);

x1=(t-b)/(2*a);

x2=(-t-b)/(2*a);

printf("x1=%.2lf,x2=%.2lf",x1,x2);

}

return0;

}

实验步骤:

步骤一:

分析输入三个系数以后可能显现的两个根,无实根的情形

步骤二:

将每种情形显现的条件及结果写出,其中二次项系数不为0时情形较复杂,要用到math中的函数,可概念一个变量用来寄放特点根。

步骤三:

将各类情形的结果输出,验证。

调试及编译进程:

测试数据:

1,-2,2(无实根的情形)

测试数据:

1,-2,1(两相同实根的情形)

测试数据:

1,-5,6(两不同实根的情形)

显现的不足及修改:

无运行的结果:

显现预期的结果。

(八)输入三角形三边的边长,通过海伦公式计算三角形的面积并输出。

源程序如下:

#include<>

#include<>

intmain()

{

doublea,b,c,t,s;

printf("enter3numbers:

");

scanf("%lf%lf%lf",&a,&b,&c);

if(((a+b)>c)&&((a+c)>b)&&((b+c)>a))

{

t=(a+b+c)/2;

s=sqrt(t*(t-a)*(t-b)*(t-c));

printf("s=%.2lf",s);

}

elseprintf("error!

");

return0;

}

实验步骤:

步骤一:

输入三边的边长,判定可否围成三角形,假设不能,提示错误。

步骤二:

假设能够围成,那么设置一个中间变量用来寄放周长的一半,以更方便地利用海伦公式。

步骤三:

计算并输出面积值。

调试及编译进程:

测试数据:

3,4,5(比较好计算正确答案)

测试数据:

1,2,3(不能围成三角形)

显现的不足及修改:

刚开始的时候没有考虑到可能不能围成三角形的情形,但这是不科学的,因为在某些输入错误的情形下,或是调试者没

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1