c程序设计实验手册簿.docx
- 文档编号:4108660
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:46
- 大小:29.43KB
c程序设计实验手册簿.docx
《c程序设计实验手册簿.docx》由会员分享,可在线阅读,更多相关《c程序设计实验手册簿.docx(46页珍藏版)》请在冰豆网上搜索。
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; prin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 实验 手册