c程序的设计实验手册范本.docx

上传人:b****7 文档编号:24049918 上传时间:2023-05-23 格式:DOCX 页数:54 大小:28.10KB
下载 相关 举报
c程序的设计实验手册范本.docx_第1页
第1页 / 共54页
c程序的设计实验手册范本.docx_第2页
第2页 / 共54页
c程序的设计实验手册范本.docx_第3页
第3页 / 共54页
c程序的设计实验手册范本.docx_第4页
第4页 / 共54页
c程序的设计实验手册范本.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

c程序的设计实验手册范本.docx

《c程序的设计实验手册范本.docx》由会员分享,可在线阅读,更多相关《c程序的设计实验手册范本.docx(54页珍藏版)》请在冰豆网上搜索。

c程序的设计实验手册范本.docx

c程序的设计实验手册范本

前言

实验一C程序的运行环境

实验二数据类型、运算符和表达式

1、实验目的

通过本次实验要求学生掌握以下知识:

(1)熟悉数据和运算符的基本概念

(2)掌握数据类型、常量、变量的概念,以及常量、变量的定义方法

(3)熟练地应用常量、变量和运算符构成表达式,对数据进行处理

2、实验步骤

(1)分析下列程序的结果,思考输出结果的原因

#include

voidmain()

{

chara,b,c;

a='a';b='b';c='c';

a=a+1;b=b-1;c=c-32;

printf("%c,%c,%c\n",a,b,c);

inta1,b1,c1;

a1=a-1;b1=b+1;c1=c+32;

printf("%d,%c,%d\n",a1,b1,c1);

}

#include

voidmain()

{

inta,b,p,q;

a=1;b=2;

p=a++;

q=++b;

printf("%d,%d,%d,%d\n",a,b,p,q);

intc,d,e,f;c=d=e=f=2;

c*=2+3;d+=d-=d*=d;

e=(e++,++e,e%=2);

f=(f++)+(++f);

printf("%d,%d,%d,%d\n",c,d,e,f);

}

(2)编写程序实现以下问题

1、求任意两个数的加法、减法、乘法、除法

2、编写一个程序将“Iloveyou”这个字符串进行加密,密码规律自定义。

(可参照恺撒密码的方式)

 

实验三顺序程序设计

1、实验目的

通过本次实验要求学生掌握以下知识:

(1)能读懂简单的程序,并对顺序程序设计有初步的认识

(2)可以编写简单的顺序程序

(3)通过上机调试,了解顺序程序设计中常见的错误,掌握基本的调试技术(逐步分析程序)。

2、实验步骤

(1)已知摄氏温度与华氏温度的换算公式

C=5/9×(F-32)

编写一个程序求华氏温度为30℉,70℉,100℉。

#include

voidmain()

{

floatf;

floatc;

scanf("%f",&f);

c=(f-32)*5/9;

printf("%f\n",c);

}

(2)已知地球半径为6371.0km,编写一个程序计算地球表面积的近似值,并打印输出地球的半径、π的近似值、地球的表面积。

voidmain()

{

floatr=6371,s;

floatpi=3.14;

s=pi*r*r;

printf("地球的半径是:

%.2f\n",r);

printf("pi的值为:

%.2f\n",pi);

printf("地球的表面积为:

%e\n",s);

}

(3)已知三角形的三条边a,b,c,求三角形面积的公式为:

编写一个程序读入a,b,c的值,计算出面积F,并输出三条边及面积的值。

(开平方根函数为sqrt,在math.h文件中)

#include

#include

voidmain()

{

floata,b,c,s,F;

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

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

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

print("三角形的面积为:

%f",F);

}

(4)设圆半径r=2,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆柱体积。

编写程序,用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。

编写程序实现。

输出结果如右图所示:

#definePI3.14

#include

voidmain()

{

floatr,h,l,s,ss,v;

printf("请输入圆半径:

");

scanf("%f",&r);

printf("请输入圆柱高:

");

scanf("%f",&h);

l=2*PI*r;

s=PI*r*r;

ss=4*s;

v=PI*r*r*h;

printf("圆的面积为:

%.2f\n",s);

printf("圆的周长为:

%.2f\n",l);

printf("圆球的表面积为:

%.2f\n",ss);

printf("圆柱的体积为:

%.2f\n",v);

}

(5)分析下列程序的结果,并看懂程序。

#include

voidmain()

{

charc1;

printf("请输入一个字符:

");

c1=getchar();

if(c1>='a'&&c1<='z')

{

printf("你输入的是小写字母:

");

putchar(c1);

}

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

{

printf("你输入的是大写字母:

");

putchar(c1);

}

elseif(c1>='1'&&c1<='9')

{

printf("你输入的是数字:

");

putchar(c1);

}

else

{

printf("你输入的是其它东东:

");

putchar(c1);

}

}

实验四选择结构程序设计

(一)实验容

1、实验目的

通过本次实验要求学生掌握以下知识:

(1)清楚的掌握if语句、switch语句的各种使用方法,并灵活运用

(2)能读懂if语句、switch语句的流程走向

(3)通过上机调试,了解选择程序设计中常见的错误,掌握基本的调试技术(逐步分析程序)。

2、实验步骤

(1)编程求:

voidmain()

{

intx,y;

scanf("%d",&x);

if(x!

=0)

y=x*x-5;

else

y=3*x+2;

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

}

(2)编写一个按月收入额计个人收入调节税的应用程序。

记税公式如下:

0pay<=1000或离退休

(pay-1000)*0.051000

(pay-1500)*0.1+251500

(pay-2000)*0.15+752000

Tax=(pay-2500)*0.2+1502500

(pay-3000)*0.25+2503000

(pay-3500)*0.3+3753500

(pay-4000)*0.35+5254000

(pay-4500)*0.4+700pay>=4500

其中:

pay为纳税人的月收入

#include

voidmain()

{

floattax,pay;

scanf("%f",&pay);

if(pay<=1000)

tax=0;

elseif(pay<=1500)

tax=(pay-1000)*0.05;

elseif(pay<=2000)

tax=(pay-1500)*0.1+25;

elseif(pay<=2500)

tax=(pay-2000)*0.15+75;

elseif(pay<=3000)

tax=(pay-2500)*0.2+150;

elseif(pay<=3500)

tax=(pay-3000)*0.25+250;

elseif(pay<=4000)

tax=(pay-3500)*0.3+375;

elseif(pay<=4500)

tax=(pay-4000)*0.35+525;

else

tax=(pay-4500)*0.4+700;

printf("pay=%.2f,tax=%.2f\n",pay,tax);

}

(3)编写程序实现:

BMI法测身高体重是否合适

体重指数=体重(公斤)除身高(米)的平方kg/m2

正常体重:

体重指数=18-25

超重:

体重指数=25-30

轻度肥胖:

体重指数>30

中度肥胖:

体重指数>35

重度肥胖:

体重指数>40

voidmain()

{

floatweight,height,t;

printf("请输入体重(公斤)");

scanf("%f",&weight);

printf("请输入身高(米)");

scanf("%f",&height);

t=weight/(height*height);

printf("%f\n",t);

if(t<18)

printf("偏瘦");

elseif(t<=25)

printf("正常体重");

elseif(t<=30)

printf("超重");

elseif(t<=35)

printf("轻度肥胖");

elseif(t<=40)

printf("中度肥胖");

else

printf("中度肥胖");

}

(4)任意输入3个数,将之从大到小排序并输出

voidmain()

{

inta,b,c,min,mid,max;

printf("请输入三个整数:

");

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

min=a;max=a;mid=a;

if(a<=b&&a<=c)

{

min=a;

if(b<=c)

{

mid=b;

max=c;

}

else

{

mid=c;

max=b;

}

}

elseif(c<=a&&c<=b)

{

min=c;

if(a<=b)

{

mid=a;

max=b;

}

else

{

mid=b;

max=a;

}

}

else

{

min=b;

if(a<=c)

{

mid=a;

max=c;

}

else

{

mid=c;

max=a;

}

}

printf("%d%d%d",max,mid,min);

}

 

(5)给出一个不多于5位数的正整数,要求:

(1)求出它是几位数;

(2)分别输出每一位数字;(3)按逆序输出每一位数字,例如:

原数是321,输出为123

(提示:

此题的关键为1、首先判断这个数是否为0~99999之间的数。

2、在利用%求得每位的数字是多少)

voidmain()

{

intnum,indiv,ten,hundred,thousand,ten_thousand,place;

printf("请输入一个整数(0-99999)");

scanf("%d",&num);

if(num>9999)

place=5;

elseif(num>999)

place=4;

elseif(num>99)

place=3;

elseif(num>9)

place=2;

else

place=1;

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

printf("每位数字是:

");

ten_thousand=num/10000;

thousand=(num-ten_thousand*10000)/1000;

hundred=(num-ten_thousand*10000-thousand*1000)/100;

ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10;

indiv=num-ten_thousand*10000-thousand*1000-hundred*100-ten*10;

switch(place)

{

case5:

printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thousand,ten_thousand);

break;

case4:

printf("%d,%d,%d,%d\n",indiv,ten,hundred,thousand);

break;

case3:

printf("%d,%d,%d\n",indiv,ten,hundred);

break;

case2:

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

break;

case1:

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

}

}

(6)输入数字1,则鸣叫一声,输入数字2,则鸣叫两声,…,如果是1~5之外的数,则没有叫声。

(提示:

程序中定义了一个宏BEEP,当程序中遇到BEEP,便用printf("\a");替换,方法如下:

#defineBEEPprintf("\a");//使用switchcase语句实现

#defineBEEPprintf("\a");

voidmain()

{

inta;

scanf("%d",&a);

switch(a)

{

case1:

BEEP

break;

case2:

BEEP

BEEP

break;

case3:

BEEP

BEEP

BEEP

break;

case4:

BEEP

BEEP

BEEP

BEEP

break;

case5:

BEEP

BEEP

BEEP

BEEP

BEEP

break;

default:

printf("error\n");

}

}

(7)编写整数加减乘除计算器。

(比如:

你依次输入1+2,计算机会自动进行判别,运算出结果。

)//使用switchcase语句实现

参考程序如下,请完善后执行。

voidmain()

{

charc;intnum1,num2,jg;

……

switch(c)

{

case'+':

……jg=num1+num2;break;

case'-':

……jg=num1-num2;break;

case'*':

……

case'\':

……

}

……

}

#include

voidmain()

{

inta,b;charop;

printf("\n输入操作数1,运算符,操作数2:

");

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

switch(op)

{

case'+':

printf("\n%d+%d=%d\n",a,b,a+b);

break;

case'-':

printf("\n%d-%d=%d\n",a,b,a-b);

break;

case'*':

printf("\n%d×%d=%d\n",a,b,a*b);

break;

case'/':

printf("\n%d/%d=%d\n",a,b,a/b);

break;

default:

printf("\n运算符错误!

");

}

}

实验五循环控制程序设计

1、实验目的

通过本次实验要求学生掌握以下知识:

(1)熟悉掌握用while语句、do-while语句和for语句实现循环的方法。

(2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)

(3)进一步学习调试程序。

2、实验步骤

(1)For循环基础专项练习,从下列实例中体会For循环的用法

①.求1-10这十个数的累加

voidmain()

{

inti,sum=0;

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

{

sum=sum+i;

}

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

}

②.求1-10这十个数的累乘

voidmain()

{

inti,multi=1;

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

multi=multi*i;

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

}

③.求1-100中偶数之和

voidmain()

{

inti,sum=0;

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

{

if(i%2!

=0)

continue;

sum=sum+i;

}

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

}

 

④.求1-100中奇数之积

voidmain()

{

inti;

doublemulti=1;

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

{

if(i%2==0)

continue;

multi=multi*i;

}

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

}

⑤.求1+1/2+1/3+1/4+……1/10

voidmain()

{

floati,sum=0;

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

{

sum=sum+1/i;

}

printf("sum=%f\n",sum);

}

⑥.求1-1/2+1/3-1/4+……-1/10

voidmain()

{

floati,sum=1,s=1;

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

{

s=s*(-1);

sum=sum+s/i;

}

printf("sum=%f\n",sum);

}

⑦.利用循环输出”a“-“z”

voidmain()

{

charc='a';

while(c<='z')

{

printf("%c",c);

c++;

}

}

 

⑧.求1-10这十个数的阶乘之和

voidmain()

{

floati,j,multi=1,sum=0;

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

{

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

multi=multi*j;

sum=sum+multi;

multi=1;

}

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

}

voidmain()

{

floati,j,multi=1,sum=0;

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

{

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

multi=multi*j;

sum=sum+multi;

multi=1;

}

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

}

(2)我国现有人口13亿,按人口年增长率0.8%计算,多少年后我国人口超过26亿。

  计算公式26=13(1+0.008)^n

(提示:

可以使用while语句,如果使用FOR语句会有问题么?

#include

voidmain()

{

intn=0;

floatpeople=13;

do

{

people=people*1.008;

n++;

}

while(people<=26);

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

}

#include

voidmain()

{

intn;

floatpeople=13;

for(n=0;people<=26;n++)

people=people*1.008;

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

}

(3)统计你输入的十个两位正整数中偶数与奇数的个数,并求出偶数与奇数各自的总和(提示:

要清楚的知道我们判断一个数是基数或是偶数的方法:

%,再者对于辅助变量的用法要学会:

i++)。

voidmain()

{

inti,num1=0,num2=0,sum1=0,sum2=0,t;

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

{

scanf("%d",&t);

if(t%2==0)

{

num1++;

sum1=sum1+t;

}

else

{

num2++;

sum2=sum2+t;

}

}

printf("num1=%d,sum1=%d\n",num1,sum1);

printf("num2=%d,sum2=%d\n",num2,sum2);

}

(4)从键盘上输入一个正整数,找出大于或等于该数的第一个素数(提示:

素数就是质数,对于此题目首先要知道如何判断一个数是素数)。

#include

voidmain()

{

inta,k,i,p=0;

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

");

scanf("%d",&a);

while(p==0)

{

k=sqrt(a);

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

if(a%i==0)

break;

if(i>k)

p=1;

elsea++;

}

printf("第一个素数是:

%d\n",a);

}

#include

 

/*voidmain()//方法考虑使用双层循环,外循环保证运算是在非素数的情况下计算,循环用来计算素数,一旦找到因子肯定不是素数,直接跳出循环

{

intnumber,k,i,p=0;//p为逻辑值,如果是素数p!

=0

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

");

scanf("%d",&number);

while(p==0)

{

k=sqrt(number);

for(i=2;i<=k;i++)//重要,求素数的基本算法

if(number%i==0)

break;

if(i>k)

p=1;

elsenumber++;

}

printf("第一个素数是:

%d\n",number);

}*/

 

//解法2不使用BREAK

voidmain()//方法考虑使用双层循环,外循环保证运算是在非素数的情况下计算,循环用来计算素数,一旦找到因子肯定不是素数,直接跳出循环

{

intnumber,i,j=0,k;

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

");

scanf("%d",&number);

k=sqrt(number);

for(i=number;j<=k;i++)

{

k=sqrt(i);

for(j=2;j<=k&&i%j!

=0;j++);//重要,求素数的基本算法

}

printf("第一个素数是:

%d\n",i-1);

}

#include

voidmain()

{

inta,k,i,p;

print

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

当前位置:首页 > 初中教育 > 数学

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

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