重邮 自动化 集中上机实验报告Word格式文档下载.docx

上传人:b****2 文档编号:909843 上传时间:2023-04-29 格式:DOCX 页数:47 大小:1.13MB
下载 相关 举报
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第1页
第1页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第2页
第2页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第3页
第3页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第4页
第4页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第5页
第5页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第6页
第6页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第7页
第7页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第8页
第8页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第9页
第9页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第10页
第10页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第11页
第11页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第12页
第12页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第13页
第13页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第14页
第14页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第15页
第15页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第16页
第16页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第17页
第17页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第18页
第18页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第19页
第19页 / 共47页
重邮 自动化 集中上机实验报告Word格式文档下载.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

重邮 自动化 集中上机实验报告Word格式文档下载.docx

《重邮 自动化 集中上机实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《重邮 自动化 集中上机实验报告Word格式文档下载.docx(47页珍藏版)》请在冰点文库上搜索。

重邮 自动化 集中上机实验报告Word格式文档下载.docx

else

z=y;

return(z);

输入数据:

3,4

输出结果:

4

1-2题目:

编写一个C程序,输入a,b,c三个数,输出其中最大者(直接编写主程序不用写调用函数或者使用运算符直接输出结果)。

试想一下,如果是求四个数中的最大者,程序该如何编写。

求三个数中最大数的程序:

输出结果:

求四个数中最大数的程序:

四.问题讨论(实验心得与体会)

通过本次实验,熟悉了安装、编辑、编译、连接和运行一个C语言程序的基本操作步骤,学会了基本的C语言程序设计与调试环境设置方法,通过运行简单的C程序,了解了CX程序的特点。

实验二:

数据类型运算符和表达式

一:

实验目的

掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对他们赋值的方法,了解以上类型数据输出是所用的格式转换符。

学会使用C有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

进一步熟悉C程序的编辑、编译、连接和运行的过程。

二:

实验内容

例1:

分析下程序,写出运行结果,在输入计算机运行,将结果与你分析得到的结果比较

{charc1='

a'

c2='

b'

c3='

c'

c4='

\101'

c5='

\116'

;

a%cb%c\tabc\n"

c1,c2,c3);

\t\b%c%c"

c4,c5);

在该程序中,主要考查对转义字符的掌握情况。

例2:

从键盘上输入三角形三边a,b,c的值,计算三角形面积,并输出三角形的三边a,b,c及面积area的值。

三角形面积的公式s=(a+b+c)/2area=genhaos(s-a)(s-b)(s-c)平方根函数为:

{floata,b,c,s,area;

%f%f%f"

b,&

c);

s=(a+b+c)/2.0;

area=sqart(s*(s-a)*(s-b)*(s-c));

a=%fb=%fc=%f\n"

a,b,c);

area=%f\n"

area);

}运行后输入:

10.520.415.2,面积等于多少?

再输入边的其他值再查看结果。

三:

实验结果

2-1题目:

从终端输入一个字符串,以回车换行未结束。

对其中的字母处理:

如果字母是小写字母则转换成大写,其余的保持不变,处理完输出。

若将大写字母转换成小写字母后输出,怎么修改程序(其中字母可以由他的ASCII码来表示)。

编的程序:

2-2题目:

输入并调试运行一下程序

原程序:

结果:

要求1:

将第四行改为:

m=i++;

n=++j;

后的结果情况怎么样?

程序:

要求2:

在上述改变后再将printf语句改为:

printf(“%d,%d,%d,%d\n”,i,j,i++,j++)后的结果情况怎么样?

程序:

实验结果:

要求3:

又将printf语句改为:

printf(“%d,%d,%d,%d\n”,i,j,++i,++j);

后的结果情况怎样?

输入并调试运行程序写出结果。

2-3题目将100~1000之间的所有素数按每个数之间空3列并且只输出5个方式输出所有素数

2-4题目有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?

请输出满足条件的每一个这样的三位数。

四:

实验讨论

1.C语言中分了四种数据类型,算术运算和数学有很大的差别,这需要注意。

2.常用的转义字符含义必须记住。

3.编写的程序要在运行的情况下检查,然后总结规律,逐渐理解。

实验三逻辑运算与分支判断结构程序设计

第8周,星期日第9~12节实验日期4.15

1、了解C语句表示逻辑量得方法(以0代表“假”以1代表“真”);

2、学会正确使用逻辑运算符和逻辑表达式;

3、熟练掌握if语句和switch语句

输入某学生成绩,经处理后给出学生的等级,等级分类如下:

90分以上(包括90):

A

80至90分(包括80):

B

70至80分(包括70):

C

60至70分(包括60):

D

60分以下:

E

方法一:

(用if嵌套)

分析:

由题意知如果某学生成绩在90分以上,等级为A;

否则,如果成绩大于80分,等级为B;

否则,如果成绩大于70分,等级为C;

否则,如果成绩大于60分,等级为D;

否则,如果成绩小于60分,等级为E;

但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。

因此,再用if嵌套前,应先判断输入的成绩是否在0~100之间。

{floatscore;

chargrade,c[80]={'

y'

};

%c"

c[0]);

while(c[0]=='

{printf("

\npleaseinputastudentscore:

"

);

%f"

score);

if(score>

100||score<

0)

\ninputerror!

exit();

{if(score>

=90)

grade='

A'

B'

=70)

C'

=60)

D'

elsegrade='

E'

\nthestudentgrade:

%c\n"

grade);

Doyougoony\n"

%s"

输入测试数据,调试程序。

测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。

方法二:

用switch语句

switch语句适用于处理多分支的语句。

注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。

所有A(除100以外),B,C,D类的成绩的共同点是十位数相同,此外都是E类。

则由此可得把score除十取整,化为相应的常数。

ints;

charch,c[80]={'

s=(int)(score/100);

if(s<

0||s>

10)

exit();

{switch(s)

{case10:

case9:

ch='

break;

case8:

case7:

case6:

default:

\nthestudentgrade:

ch);

Doyougoony/n"

输入测试数据,同方法一样调试程序并写出结果。

编写程序求输入月份的总天数

用scanf函数输入一个年份year,计算这一年二月份的天数days,然后用输出函数printf输出days.

实验步骤与要求:

(1)有变量定义为整型。

(2)输入前要加提示语句。

(3)输出结果前要有必要的文字说明。

说明:

(1):

闰年的一奥件事:

year能被4整除但不能被100整除,或者year能被400整除。

(2):

如果year是闰年,则二月份的天数为29天,不是闰年则是28天。

按照提示自己编程调试

{intyear,days,leap;

%d"

year);

if(year%4==0)

{

if(year%100==0)

if(year%400==0)

leap=1;

leap=0;

if(leap)

%d2yuefenshi29tian"

days);

%d2yuefenshi28tian"

输出数据:

3-1题目c语言中如何表示“真”与“假”?

系统如何判断一个量的“真”与“假”?

答:

1代表“真”,0代表“假”。

3-2题目求下面算术表达式的值

x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7

程序如下:

(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5

先自己分析,再试着用程序求解,看得到的结果是否一致。

3-3题目给出一个不多于5位的正整数,要求:

1、求出他是几位数;

2、分别输出每一位数;

3、按逆序打出各位数字,例如原数为321,应输出123.

3-4题目:

所谓“同构数”是指这样的数,它出现在它的平方数的右端。

如:

6的平方是36,6出现在36的右端,6就是一个同构数。

编程输出2-1000之内的所有同构数。

3-5题目“水仙花数”是一个三位数,其个位数立方和等于该数本身,输出所有的水仙花数。

3-6题目求s=a+aa+aaa+aa·

·

a的值,其中a是一个数。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。

请由键盘输入a和个数的值后输出s的值。

问题讨论

1.要记住C中0和1在不同环境下的含义。

2.记牢逻辑运算符的含义,运算顺序,不然根本看不懂程序的意义。

3.if语句是很常用的,要掌握好。

实验四循环结构程序设计

学号:

201213021姓名:

第9周,星期六第9~12节实验日期4.21

1、熟悉while语句,do·

while语句和for语句实现循环的方法。

2、熟悉掌握循环结构的嵌套。

3、掌握break和continue语句的使用。

4、练习调试与修改程序。

分别用while语句,do-while语句编写程序,计算e~~1+1/1!

+1/2!

+…+1/n!

(1)用单重循环编写程序

(2)是误差小于给定的t,设t=10-6

(3)除了输出e以外,同时还要求输出总的项数n

例2·

编程求“完数”。

如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数“。

例如6的因子是1,2,3,且6=1+2+3,因此6是完数。

编写程序找出1000之内的所有完数及这些完数的和。

{intn,s,j,sum=0;

for(n=1;

n<

=1000;

n++)

{s=0;

for(j=1;

j<

n;

j++)

if(n%j==0)

s=s+j;

if(s==n)

{sum+=s;

\n%d"

s);

\nsum=%d"

sum)

例3·

输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数。

程序分析:

利用while语句,条件为输入的字符不为’\n’.

程序源代码:

{charc;

intletters=0,space=0,digit=0,others=0;

pleaseinputsomecharacters\n"

while((c=getchar())!

='

\n'

{if(c>

&

c<

z'

||c>

Z'

letters++;

elseif(c=='

'

space++;

elseif(c>

0'

9'

digit++;

else

others++;

allinall:

char=%dspace=%ddigit=%dothers=%d\n"

letters,space,digit,others);

例4·

用牛顿迭代求方程2x3-4x2+3x-6=0在1.0附近的根。

math.h>

{floatx,x0,f,f1;

x=1.0;

do

{x0=x;

f=((2*x0-4)*x0+3)*x0-6;

f1=(6*x0-8)*x0+3;

x=x0-f/f1;

while(fabs(x-x0)>

=1e-5;

%6.2f"

x);

4-1题目用递归法编程实现:

1!

+2!

+3!

20!

的和。

4-2题目用迭代法求x=

求平方根的迭代公式为xn+1=

要求前后两次求出x的差的绝对值小于10-5.

4-3题目有一个数是5623265,它是一个左右对称的数,求比它大的对称数中的最小的一个数并输出。

4-4题目编写程序:

有两个正整数a和b,已知a*b=2048,求a、b各为何值时,a+b的值最小。

4-5题目将一个正整数分解质因数。

例如:

输入90,打印出90=2*3*3*5.程序分析如下:

对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明质因数的过程已经结束,打印出即可。

(2)如果不等于,但n能被k整除,则打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

实验心得与体会

1.经过这几天的学习已经对C语言基本知识有所了解,但是还是远远不够的。

现在如果有一个程序,基本上可以看懂。

但是要自己编写一个程序出来,很困难,基本上不能编写。

2.注意while语句是先判断在做,do……while是先做了再判断条件十分成立,而是否要继续做。

3.break语句与continue的区别,与它们的应用。

实验五数组

姓名:

第12周,星期六第9~12节实验日期5.12

1.掌握数组的定义、赋值和输入输出的方法;

2.掌握字符数组和字符串函数的使用;

3.掌握与数组有关的算法(例如排序算法)。

在键盘上输入N个正整数,使编制程序是该数组中的书按照从大到小的次序排列。

C中数组长度必须是确定大小,即指定N的值。

排序的方法有多种,我们取出其中一种作为参考。

起泡排序:

从第一个数开始依次对相邻俩数进行比较,如次序对则不作任何操作;

如次序不对则使这两个数交换位置。

第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。

stdio.h。

#defineN10

{inta[N],i,j,temp;

pleaseinput%dnumbers\n"

N);

for(i=0;

i<

N;

i++)

a[i]);

N-1;

for(j=0;

N-1-i;

{if(a[j]>

a[j+1])

{temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

thearrayaftersort:

]n"

%5d"

a[i]);

输入一个字符串,计算其中空格的个数。

string.h>

{charc[80];

inti,sum=0;

gets(c);

strlen(c);

if(c[i]=='

sum=sum+1;

空格数为:

%d\n"

sum);

有一个3*4矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。

#defineM3

#defineN4

{intmax,i,j,r,c;

staticinta[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};

max=a[0][0];

M;

if(a[i][j]>

max)

{max=a[i][j];

r=i;

c=j;

max=%d,row=%d,column=%d\n"

max,r,c);

5-1题目已有一个排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。

5-2题目任意输入两个字符串s1和s2.要求每个字符串中无重复字符,求两者的交集,若非空,就输出交集的字符,若空就输出相应的提示符。

5-3题目一个含有若干字符的字符串,分别找出其中的字符和数字,其余的字符一概不计,将重复的去掉后,分别按升序排列后输出。

5-4题目求一个4*4矩阵对角线元素之和。

(中间交叉点上的一个数只计算一次)

5-5题目打印出以下的杨辉三角形(要求打印出10行)

1

11

121

1333

14641

15101051

5-6题目写一函数,输入一个十六进制数,输出相应的十进制数

1.初步学会了定义数组,赋值和输入输出的方法。

2.数组的输入输出方法了解,认识对地址和值的联系,这对学习指针很有帮助。

实验六函数

第12周,星期六第9~12节实验日期5.12

1.掌握C语言函数的定义方法,函数的声明及函数的调用方法;

2.了解主调函数和被调函数之间的参数传递方式;

3.掌握函数的嵌套调用和递归调用的方法;

4.熟悉不同变量的作用域;

5.掌握变量的存储类型及变量说明的一般形式,熟练掌握存储类型区分符的表示方式用auto表示自动变量、extern(外部)static(静态)register(寄存器)。

(这是一个十分典型的算法,必须理解)

写两个函数,分别求两个正数的最大公约数和最小公倍数,用主调函数调用这两个函数并输出结果。

两个正数有键盘输入。

hcf(u,v)

intu,v;

{inta,b,t,r;

if(u>

v)

{t=u;

u=v;

v=t;

a=u;

b=v;

while((r=b%a)!

=0)

{b=a;

a=r;

return(a);

lcd(u,v,h)

intu,v,h,l;

{return(u*v/h);

main()

{intu,v,h,l;

pleaseinputtwodata:

one,two"

u,&

v);

h=hcf(u,v);

H.C.F=%d\n"

h);

l=lcd(u,v,h);

L.C.D=%d\n"

l);

使用函数的嵌套功能求1!

+。

+n!

的值

{intn;

longsum();

n);

sum=%ld\n"

sum(n));

longsum(n)

intn;

{inti;

longs=0;

longfac();

for(i=1;

=n;

s=s+fa

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2