实验一简单C程序设计实验报告.docx

上传人:b****7 文档编号:9225433 上传时间:2023-02-03 格式:DOCX 页数:48 大小:105.58KB
下载 相关 举报
实验一简单C程序设计实验报告.docx_第1页
第1页 / 共48页
实验一简单C程序设计实验报告.docx_第2页
第2页 / 共48页
实验一简单C程序设计实验报告.docx_第3页
第3页 / 共48页
实验一简单C程序设计实验报告.docx_第4页
第4页 / 共48页
实验一简单C程序设计实验报告.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

实验一简单C程序设计实验报告.docx

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

实验一简单C程序设计实验报告.docx

实验一简单C程序设计实验报告

成绩:

 

实验名称:

集中上机1—C语言程序设计

学生姓名:

李梦雅

学生学号:

2013212360

学生专业:

机械设计制造及其自动化

学生班级:

0841302

指导教师:

李敏老师、张开碧老师

 

实习时间:

2014年上半年第11周到第14周

 

实验一简单的C程序设计

学号2013212360姓名李梦雅班级0841302

第11周星期四第5,6,7,8节实验日期2014年5月8日

一、实验目的

1、了解MicrosoftVisualC++6.0软件的窗面,掌握c语言程序的编辑、编译、连接和运行过程。

2、掌握c语言的基本数据类型、定义和使用方法,了解几种类型输出时所用的格式和转换符,熟悉各种运算符和表达式的使用特点。

3、熟悉掌握c语言中赋值运算、各类数据间的混合运算、算术运算和符号运算的使用。

4、掌握c语言数据输入输出的概念和使用方法。

二、实验内容和结果

例1、从键盘任意输入a、b、c三个数,输出其中最大值和它们的和值。

#include

voidmain()

{

inta,b,c;

intmaxv,sum;

printf("请输入三个数a,b,c:

\n");

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

if(a>b)

maxv=a;

else

maxv=b;

if(c>maxv)

maxv=c;

printf("三个数中最大的数为%d\n",maxv);

sum=a+b+c;

printf("三个数之和为%d\n",sum);

}

例2、转义字符的使用。

分析下列程序,写出运行结果,并将分析结果与运行结果进行对照。

#include

voidmain()

{

charc1='a',c2='b',c3='c',c4='\101',c5='\116';

printf("12345678910abcdefg\n");

printf("a%cb%c\tabc\n",c1,c2,c3);

printf("abc\tde\rf\tg\n");

printf("h\ti\b\bjk\n");

printf("\t\b%c\n",c4,c5);

printf("\ta\tc\n");

}

例3、从键盘输入一字符,要求将其中的字母找出来,并小写输出。

#include

voidmain()

{

charc1,c2;

c1=getchar();

printf("输出的字符是:

%c,其ASCII码是:

%d\n",c1,c1);

if((c1>='a'&&c1<='z')||(c1>="A"&&c1<="Z"))

{

if(c1>='A'&&c1<='Z')

c2=c1+32;

else

c2=c1;

printf("%c,%d\n",c2,c2);

}

else

printf("输入的不是字母,不能小写转换!

\n");

}

例4、从键盘上输入三角形三边a,b,c的值,计算三角形的面积,并输出计算结果。

#include

#include

voidmain()

{

floata,b,c;

floats,area;

printf("请输入三角形的三边\n");

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

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

area=(float)sqrt(s*(s-a)*(s-b)*(s-c));

printf("三角形的三边为:

a=%-7.2f,b=%-7.2f,c=%7.2f\n",a,b,c);

printf("面积为:

area=%-7.2f\n",area);

}

练习题

1、写出下面程序的运行结果,体会自加(自减)运算符的使用及执行顺序。

#include

voidmain()

{

inti,j,m,n;

i=8;

j=10;

m=++j;

n=j++;

printf("%d,%d,%d,%d\n",i,j,m,n);

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

printf("%d,%d,%d,%d\n",++m,m++,m,++m);

}

2、将100~800之间的所有素数按每个数之间空3列并且每行输出5个方式输出所有素数。

#include

#include

voidmain()

{

intm,k,i,n=0;

for(m=101;m<=800;m=m+2)

{

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0)

break;

if(i>=k+1)

{

printf("%6d",m);

n=n+1;

}

if(n%5==0)

printf("\n");

}

printf("\n");

}

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

请输出满足条

件的每一个这样的三位数。

#include

voidmain()

{

inti,j,k;

for(i=1;i<=4;i++)

for(j=1;j<=4;j++)

for(k=1;k<=4;k++)

{

if(i!

=j&&i!

=k&&j!

=k)

printf("%d%d%d\n",i,j,k);

}

}

4、设圆柱底面积半径为r,圆柱高为h,求圆底面积、圆柱表面积、圆柱体积。

要求半径和

高从键盘输入,输出结果保留两位小数位。

#include

#definePI3.1415926

voidmain()

{

floatr,h,S1,S2,V;

scanf("%f,%f",&r,&h);

S1=PI*r*r;

S2=2*PI*r*h+2*S1;

V=S1*h;

printf("圆底面积=%.2f\n",S1);

printf("圆柱表面积=%.2f\n",S2);

printf("圆柱体积=%.2f\n",V);

}

三、问题讨论

要加强自己对学习的耐心与细心,要增强对基本知识的掌握,多看书。

实验二三种结构的程序设计

学号2013212360姓名李梦雅班级0841302

第12周星期四第5,6,7,8节实验日期2014年5月15日

一、实验目的

1、了解并熟练掌握c语言程序设计的三种结构:

顺序、选择和循环。

2、熟练掌握顺序结构中赋值语句的使用、数据的输入输出函数和常用的格式控制方法。

3、掌握关系运算符和表达式、逻辑运算符和表达式的定义和使用,熟练使用选择结构中if和switch语句,能结合实际应用编程。

4、掌握循环控制中的for、while、dowhile等常用语句的使用方法和技巧,掌握循环跳出语句break和continue的用法,熟悉循环的嵌套,能结合实例正确使用这些技巧。

二、实验内容和结果

例1:

闰年的条件是符合下面两者之一:

①能被4整除,但不能被100整除,如2008;②

能被400整除,如2000。

从键盘任意输入一年,判断是否是闰年。

#include

voidmain()

{

intyear;

intc=1;

while(c)

{

printf("请输入任意年份:

\n");

scanf("%d",&year);

if((year%4==0&&year%100!

=0)||(year%100==0))

printf("\n%d是闰年!

\n",year);

else

printf("\n%d不是闰年!

\n",year);

printf("是否要继续?

0:

退出,1:

继续\n");

scanf("%d",&c);

}

}

例2:

在我国,人的一生有不同的划分:

0-1岁为婴儿,1-3岁为幼儿,3-6岁为儿童,7-14

岁为少年,15-45岁为青年,46-59为中年,60-74为年轻的老人,75-89为老年,90岁以

上为长寿老人。

请根据以上划分,从键盘任意输入一年龄,看属于哪个年龄段。

#include

voidmain()

{

intage;

intc=1;

while(c)

{

printf("请输入年龄:

\n");

scanf("%d",&age);

if(age<1)

printf("\n你是可爱的小婴儿^-^!

");

elseif(age<3)

printf("\n你是乖巧的小幼儿!

");

elseif(age<7)

printf("\n你是调皮的儿童啦!

");

elseif(age<15)

printf("\n你是叛逆的少年!

");

elseif(age<45)

printf("\n你是风华正茂的青年!

");

elseif(age<60)

printf("\n你处在中流砥柱的中年!

");

elseif(age<75)

printf("\n你是老年益壮的年轻人!

");

elseif(age<89)

printf("\n你是长寿老人啦!

争取活到200岁!

");

printf("\n继续测试?

0:

退出,1:

继续\n");

scanf("%d",&c);

}

}

例3:

物品征税问题。

价格在1万元以上的征5%,5000元以上的1万元以下的征3%,1000

元以上5000元以下的征2%,1000元以下的免税,请读入货物价格,计算并输出税金。

#include

voidmain()

{

floatprice,m;

intp,s;

printf("请输入货物价格:

\n");

scanf("%f",&price);

if(price>10000)

price=1000;

p=(int)price/1000;

switch(p)

{

case0:

s=0;break;

case1:

s=2;break;

case2:

case3:

case4:

case5:

s=3;break;

case6:

case7:

case8:

case9:

case10:

s=5;break;

}

m=price*s/100;

printf("该货物税金为:

%f\n",m);

}

例4、给一个不多于5位的正整数,请按照从高位到个位分别输出每一个数字。

#include

voidmain()

{

intx,i=10000,y;

printf("请输入数据x:

\n");

scanf("%d",&x);

while(x>99999)

{

printf("输入错误,请重新输入:

\n");

scanf("%d",&x);

}

while(x)

{

y=x/i;

if(y>0)

{

printf("%d",y);

x=x%i;

}

i=i/10;

}

}

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

#include

voidmain()

{

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);

printf("%6.2f",x);

}

练习题

1、企业发放的奖金根据利润提成。

利润低于1万元的,提成10%,高于1万低于5万的,

提成8%,高于5万低于10万的,提成6%,高于10万的提成5%。

输入利润,计算奖金数并

输出结果。

#include

voidmain()

{

doublex,y;

printf("请输入利润值:

");

scanf("%lf",&x);

if(x<=10000)

y=0.10*x;

elseif(x<=50000)

y=0.08*x;

elseif(x<=100000)

y=0.06*x;

elseif(x>100000)

y=0.05*x;

printf("%lf\n",y);

 

}

2、学生成绩等级制。

如果某学生成绩在90分以上,等级为优;80-90分,等级为良;70-80

分,等级为中;60-70分,等级为及格;如果成绩小于60分,等级为不及格。

输入一成绩,

判断是在哪个等级。

#include

voidmain()

{

intx;

intc=1;

while(c)

{

printf("请输入成绩:

\n");

scanf("%d",&x);

if(x>=90)

printf("\n优");

elseif(x>=80)

printf("\n良");

elseif(x>=70)

printf("\n中");

elseif(x>=60)

printf("\n及格");

else

printf("\n不及格");

printf("\n继续测试?

0:

退出,1:

继续\n");

scanf("%d",&c);

}

}

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

如:

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

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

#include

voidmain()

{

longi,j,s;

for(i=2;i<1000;i++)

{

s=i*i;

j=i;

while(j>0)

{

if((j%10)!

=(s%10))break;

j=j/10;

s=s/10;

}

if(j==0)

printf("%6d",i);

}

}

4、求下面分数序列的前10项之和。

1235813

,,,,,...

23581321

#include

voidmain()

{

doublea=2,b=1;

intm,i;

doublesum=0,c;

for(i=1;i<=10;i++)

{

c=b/a;

sum=sum+c;

m=b;

b=a;

a=b+m;

}

printf("%lf\n",sum);

}

5、某小朋友有若干个玻璃球,第一天拿出去一半还加一个,第二天又将剩下的拿走一半再

多一个,以后每天都将剩下的一半零一个拿走。

到第8天的时候只剩下一个玻璃球了。

问他原本有多少个玻璃球。

#include

voidmain()

{

inty=1;

inti;

for(i=1;i<=8;i++)

{

y=(y+1)*2;

}

printf("%d\n",y);

}

6、将一个正整数分解质因数。

例如:

输入90,打印出90=2*3*3*5。

#include

voidmain()

{

longn;

inti;

printf("请输入一个正整数:

\n");

scanf("%ld",&n);

for(i=2;i

{

while(i!

=n)

{

if(n%i==0)

{printf("%ld*",i);

n=n/i;

}

else

break;

}

}

printf("%d\n",n);

}

7、计算下列多项式之和。

要求两次求得的误差在ε之内,设ε=10

-5。

e≈1+1/1!

+1/2!

+...+1/n!

#include

voidmain()

{

inti=1,a=1;

doublee=1;

while(1.0/a>1e-5)

{

e+=1.0/a;

i++;

a*=i;

}

printf("e=%lf\n",e);

}

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

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

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

#include

voidmain()

{

inti,j,k,s,n=0;

printf("完数有:

\n");

for(i=1;i<=1000;i++)

{

s=0;

for(j=1;j

if(i%j==0)

s=j+s;

if(s==i)

{

printf("%d",i);

n=n+i;

}

}

printf("\n所有完数之和为%d\n",n);

}

三、问题讨论

加强对循环结构不同形式的使用,注意break和continue等,对所学知识灵活运用,尝试用不同方法解决问题。

 

实验三数组和函数

学号2013212360姓名李梦雅班级0841302

第13周星期四第5,6,7,8节实验日期2014年5月22日

一、实验目的

1、掌握一维数组、二维数组、字符数组的定义、初始化、引用和输入输出,能熟练运用数组解决实际问题。

2、掌握函数的定义、声明、调用,能熟练掌握函数的参数和返回值,能运用函数解决较简单的问题。

3、了解局部变量,全局变量,动态存储变量、静态存储变量,内部函数、外部函数的联系和区别。

二、实验内容和结果

例1、输出一个菱形图。

#include

voidmain()

{

chard[][5]={{'','','*'},{'','*','','*'},{'*','','','','*'},{'','*','','*',''},{'','','*'}};

inti,j;

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%c",d[i][j]);

printf("\n");

}

}

例2、已有一个已排好序的数组,从键盘任意输入一个数,要求按原来排序的规律将它插入数组中

#include

#include

voidmain()

{

inta[6]={1,3,4,7,8};

intx,i,j;

printf("请任意输入一个值x:

\n");

scanf("%d",&x);

for(i=0;i<5;i++)

{

if(x

{

for(j=4;j>=1;j--)

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

a[i]=x;

break;

}

}

printf("\n,数据插入后新数组为:

\n");

for(i=0;i<6;i++)

printf("%d",a[i]);

}

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

#include

#defineM3

#defineN4

voidmain()

{

intmax,i,j,r,c;

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

printf("该矩阵为%d行%d列矩阵:

\n",M,N);

for(i=0;i

{

for(j=0;j

printf("%5d",a[i][j]);

printf("\n");

}

max=a[0][0];

for(i=0;i

for(j=0;j

if(a[i][j]>max)

{

max=a[i][j];

r=i;

c=j;

}

printf("最大值为:

%d,是第%d行第%d列\n",max,r+1,c+1);

}

例4、打印输出yx的值。

#include

voidmain()

{

intpower(intx,inty);

ints,x,y;

printf("请输入x和y的值:

\n");

scanf("%d,%d",&x,&y);

s=power(x,y);

printf("x的立次方位:

%d\n",s);

}

intpower(intx,inty)

{

intp,m=1;

for(p=1;p<=y;p++)

m=m*x;

return(m);

}

练习题

1、打印出N行的等腰直角三角形。

N从键盘输入。

如N=4,则打印图形如下:

*

**

***

****

#include

voidmain()

{

chard[][4]={{'*'},{'*','*'},{'*','*','*'},{'*','*','*','*'}};

inti,j;

for(i=0;i<4;i++)

{

for(j=0;j<4;j++)

printf("%c",d[i][j]);

printf("\n");

}

}

2、一个含有若干字符的字符串,分别找出其中数字,将重复的去掉后,按升序排列后输出。

#include

#include

voidmain()

{

chars1[100],s2[100];

inti,j=0,t,k;

printf

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

当前位置:首页 > 解决方案 > 工作计划

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

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