汤斌斌实验.docx
- 文档编号:11854647
- 上传时间:2023-04-06
- 格式:DOCX
- 页数:63
- 大小:33.90KB
汤斌斌实验.docx
《汤斌斌实验.docx》由会员分享,可在线阅读,更多相关《汤斌斌实验.docx(63页珍藏版)》请在冰豆网上搜索。
汤斌斌实验
第二章
2.21实验1变量的使用与赋值运算
1.实验的目的与要求
(1)掌握c语言的数据类型。
(2)掌握变量的定义与使用。
(3)掌握c语言的赋值运算和算数运算。
2.实验题目。
(1)#include
voidmain()
{
inta,b;
a=5/2;
b=1/2;
printf("a=%d,b=%d\n",a,b);
printf("5/2.0=%f,1.0/2=%f\n",5/2.0,1.0/2);
a=5%2;
b=2%5;
printf("a=%d,b=%d\n",a,b);
a=-5%2;
b=5%-2;
printf("a=%d,b=%d\n",a,b);
}
结果:
a=2b=0
5/20=2.500000
1.0/2=0.500000
a=1,b=2
2.输入下列程序,修改其中的错误。
#include
voidmain(){
floatr,area;
scanf("%d",&r);
area=3.14159*r*r
printf("area=%f\n",area);
}
改正后的程序为:
#include
voidmain(){
intr;
floatarea;
scanf("%d",&r);
area=3.14159*r*r;
printf("area=%f\n",area);
}
(3)由键盘输入两个整数,分别计算这两个数的和,差,商,积,并输出结果。
1.该程序为:
/*#include
voidmain(){
inta,b,A,B,C;
floatD;
scanf("%d,%d",&a,&b);
A=a+b;
printf("A=%d\n",A);
B=a-b;
printf("B=%d\n",B);
C=a*b;
printf("C=%d\n",C);
D=(float)a/b;
printf("D=%.3f\n",D);
}
(4)由键盘输入一个10~99之间的整数,将该数分解,分别输出其个位数字和十位数字。
例如输入85,输出5,8
#include
voidmain(){
inta,b,c;
printf("请输入一个10到99的数\n");
scanf("%d",&c);
a=c%10;
printf("a=%d\n",a);
b=c/10;
printf("b=%d\n",b);
}
2.2.2实验二
1.实验的目地与要求
(1)掌握c语言的格式化输入输出函数。
(2)掌握整形,实型数k据不同格式的输出和正确输入字符型。
2.实验题目
#include
voidmain(){
floatx,y;
charc1,c2,c3;
x=5/2.0;
y=1.2+5/2;
printf("x=%f,y=%6.2f\n",x,y);
printf("x=%e,y=%E\n",x,y);
c1=’a’
c2=c1+32;
c3='0'+8;
printf("c1=%3c,c2=%5c,c3=%-5\n",c1,c2,c3);
printf("c1=%4d,c2=%-4d,c3=%d\n",c1,c2,c3);
printf("%S\n%8s\n%6.2s\n","hello","hello","hello","hello");
}
结果:
x=2.500000y=3.20
X=2.500000e+000y=3.2000000e+000
C1=A,c2=ac3=
C1=65,c2=97,c3=56
Hello
He
(2).上机输入两个程序。
然后输入数据
程序1整型,实型数据输入#include
voidmain()
{
inta,b;
floatx,y;
scanf("a=%d,b=%d",&a,&b);
scanf("%f%f",&x,&y);
printf("a=%d,b=%d\n",a,b);
printf("x=%f,y=%f\n",x,y);
}
输入方式1
a=24,b=18
5.69.34
输入方式2
a=2.4,b=18
5.6,9.34
输入方式3
24185.69.34
结果a=24,b=18x=5.600000,y=9.340000
X=24,b=18x=5.600000,y=-1037374176.000000
a=-858993460,b=-858993460x=24.000000,y=18.000000
程序2:
字符型数据输入
#include
voidmain()
{
charc1,c2,c3,c4;
scanf("%c%c",&c1,&c2);
scanf("%c,%c",&c3,&c4);
printf("c1=%C,c2=%c\n",c1,c2);
printf("c3=%c,c4=%c\n",c3,c4);
}
输入方式1
HKMN
输入方式2
H
K,M,N
输入方式3
HKM,n
结果:
c1=H,c2=c3=K,c4=?
c1=H,c2=c3=K,c4=M
c1=H,c2=Kc3=M,c4=N
(3)编程实现从键盘输入两个整数,分别计算出他们的商和余数,并输出要求输出商时保留两位小数
#include
voidmain(){
intx,y,b;
floata;
scanf("x=%d,y=%d",&x,&y);
a=x/y;b=x%y;
printf("a=%f,b=%d\n",a,b);
}
2.2.3实验3宏定义,条件编译编程。
1.实验目的与要求。
(1).掌握带参数的宏定义的编程。
(2).理解文件包含的意义。
(3).掌握条件编译编程。
2.实验题目
(1)阅读以下程序,先写出程序的运行结果,在上机操作。
#include
#definef(x)x%2
voidmain()
{
ints1=0,s2=0;
s1=s1+f
(1);
s2=s2+f
(2);
printf("s1=%d\n",s1);
printf("s2=%d\n",s2);
}结果
S1=1
S2=0
(2)用带参数的宏定义编程实现求3个数的最大值
#include
#defineF(a,b,c)a>b?
(a>c?
a:
c):
(b>c?
b:
c)
voidmain(){
intj,k,l,max;
printf("输入三个数\n");
scanf("%d,%d,%d",&j,&k,&l);
max=F(j,k,l);
printf("%d\n",max);
}
(3)用条件编译实现字符串密码输出;
#include
#definef(x)x==0?
0:
1
voidmain(){
intflag,i,n;
chara[50];
printf("输入字符串\n");
gets(a);
printf("输入n:
\n");
scanf("%d",&n);
flag=f(n);
if(flag==1){
for(i=0;a[i]!
='\0';i++)
if(a[i]>='a'&&a[i]<'z'||a[i]>='A'&&a[i]<'Z')
a[i]+=1;
elseif(a[i]=='z'||a[i]=='Z')
a[i]-=25;
puts(a);
}
elseputs(a);
printf("\n");
}
2.2.4实验4位运算编程
1实验目的与要求。
(1)掌握六种运算位:
~,&,|,^,<<,>>.
(2)学会应用基本的位运算解决问题。
2实验题目。
(1)阅读以下程序,写出结果。
#include
voidmain()
{
inta,b,c,d,n1,n2,n,c1,c2;
a=0x0abf89de;
n1=5;n2=8;
n=sizeof(int)*8;
b=~0;
c1=~(b<<(n-n1)+1);
printf("c1=%x\n",c1);
c2=(b<<(n-n2));
printf("c2=%x\n",c2);
c=c1&c2;
printf("c=%x\n",c);
d=a&c;
d=d>>(n-n2);
printf("d=%x\n",d);
}
C1=fffffff
C2=ff00000
c=f000000
d=a
心得:
们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,,同时它让我知道,只要你努力,任何东西都不会太难
第三章
3.2.实验一if语句编程
1实验目地与要求
(1)掌握关系运算与逻辑运算,能写出正确的关系表达试。
(2)掌握if语句的三种形式,及if语句的嵌套。
2.实验题目
#include
voidmain()
{
inta=0,b=0,c=1,x=0;
if(a)x=5;
else
if(!
b)
if(!
c)x=15;
elsex=25;
printf("x=%d\n",x);
a=2;b=3;c=0;
if(a>b)x=1;
else
if(a==b)x=0;
elsex=-1;
if(c=1)printf("x=%d\n",x);
}
X=25x=-1
(3)找出错误并改正
#include
voidmain()
{
doublex,y;
scanf("%d",&x);
if(x>0)y=exp(-x);
if(x<0)y=-exp(x);
elsey=1;
printf("y=%f\n",y);
}
改正后的程序:
#include
#include
voidmain()
{
doublex,y;
scanf("%d",&x);
if(x>0)y=exp(-x);
if(x<0)y=-exp(x);
elsey=1;
printf("y=%f\n",y);
}
(3)用if语句编程实现输入三角形的三个边,判断三边长是否能构成三角形。
#include
#include
voidmain(){
inta,b,c;
floats,area;
printf("请输入三角形的三边长(三边为整数):
\n");
scanf("%d,%d,%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a){
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%f\n",area);
if(a*a+b*b==c*c){
printf("它是直角三角形\n");
}
elseif(a==b&&a==c&&b==c){
printf("它是等边三角形\n");
}
elseif(a==b||a==c||b==c){
printf("它是等腰三角形\n");
}
else{
printf("一般三角形\n");}
}
else{
printf("输入的三边不能构成三角形\n");}
}
(4)编程实现从键盘输入一个整数判断它是否分别能被3,5整除并根据不同情况输出以下信息之一:
①该数能同时被3和5整除;
②该数能被其中一个数整除
③该数既不能被3整除也不能被5整除
/*#include
voidmain()
{
inti;
printf("从键盘输入一个整数\n");
scanf("%d",&i);
if(i%3==0&&i%5==0)
printf("它是一个能被3和5整除的整数\n",i);
if(i%3!
=0||i%5==0)
printf("它是一个只能被5整除不能被3整除的整数\n",i);
if(i%3==0||i%5!
=0)
printf("它是一个只能被3整除不能被5整除的整数\n",i);
if(i%3!
=0&&i%5!
=0)
printf("它是一个不能被3和5整除的整数\n",i);
}*/
3.2.2实验2switch语句编程。
1实验目地与要求
(1)掌握switch语句的形式及其使用方法。
(2)学会用switch语句编程解决实际问题。
2.实验题目
(1)阅读下面程序,写出结果。
#include
voidmain()
{
int=2,b=7,c=5;
switch(a>o)
{
case1:
switch(b<0)
{
case1:
printf("@");break;
case2:
printf("&");break;
}
case0:
swith(==5)
}
case0:
printf("*");break;
case1:
printf("#");break;
default:
printf("#");
}
default:
printf("$");
}
printf("\n"};
}
#$
(1)用switch语句编程实现一个简单的计算器程序输入两个数和一个运算符(设只有4个运算符+,-,*,/),根据输入的运算符进行运算并输出结果
/*#include
voidmain()
{
floata,b;
floatresult=0;
charch;
printf("输入两个数:
");
scanf("%f,%f",&a,&b);
printf("输入一个运算符(+-*/):
");
getchar();//读取回车符
scanf("%c",&ch);
switch(ch){
case'+':
result=a+b;break;
case'-':
result=a-b;break;
case'*':
result=a*b;break;
case'/':
result=a/b;break;
default:
printf("输入运算符错误!
\n");
}
printf("%f%c%f=%f\n",a,ch,b,result);
}
(2)根据给出的函数关系对输入X值计算出相应的Y值要求用switch语句实现
0X<0
100<=X<10
Y=X10<=X<20
-0.5X+2020<=X<40
#include
voidmain(){
floatx,y;
scanf("%f",&x);
switch(x<10){
case1:
switch(x>=0){
case1:
printf("y=%f",y=x);break;
case0:
printf("y=%f",y=0);break;
}break;
case0:
switch(x>=10&&x<20){
case1:
printf("y=%f",y=10);break;
case0:
printf("y=%f",y=-0.5*x+20);break;
}
}
printf("\n");
}
3.2.3实验3循环结构编程。
1.实验目的与要求
(1)掌握while,do-while,for这三种循环语句的形式极其使用方法。
(2)掌握循环嵌套的使用方法。
(3)理解break和continue语句的区别,并能正确使用。
2.实验题目
#include
Voidmain()
{
inti,j;
floatsum;
for(i=7;j>4;i--)
{sum=0.0;
for(j=i;j>3;j--)
sum=sum+i*j;
}
printf(“sum=%f\n”,sum);
}
结果:
sum=45.000000
(2)分别用while和do-while语句编程实现计算1~200之间的能被3整除的整数之和
#include
voidmain(){
inti,sum;
i=1;
sum=0;
while(i<=200){
if(i%3==0)
sum+=i;
i++;
}
printf("sum=%d\n",sum);
}
#include
voidmain(){
inti,sum;
i=1,sum=0;
do{
if(i%3==0)
sum+=i;
i++;
}
while(i<=200);
printf("sum=%d\n",sum);
}
(3)编程找出1000以内的所有完数,完数是指一个数恰好等于它的因子之和如:
6=1+2+3,并按一下格式输出:
6,its,factorsare1,2,3
#include
voidmain(){
inti,j,sum=0;
for(i=2;i<1000;i++){
for(j=1;j
if(i%j==0)
sum+=j;
if(sum==i)
printf("%d\n",i);
sum=0;
}
}
结果:
6,28,496
(4)用for语句编程实现打印如下输出形式的九九乘法口诀表
#include
voidmain()
{
inti,j;
intr;
for(i=1;i<=9;i++){
for(j=1;j
printf("");
}for(j=i;j<=9;j++){
printf("%3d",i*j);
}
printf("\n");
}
}心得:
本章主要是学习程序的控制结构,了解运算符,键盘更加熟练,对程序的结构有进一步的了解
第四章
4.21实验1一维数组编程
1.实验目的与要求。
(1)掌握一维数组的定义,初始化与使用。
(2)掌握一维数组的输入输出方法。
(3)学会应用一维数组编程求解问题。
22
2.实验题目
(1)阅读以下程序,先写出程序运行结果,在上机验证。
#include
voidmain(){
inta[11]={3,5,8,10,12,16,19,24,28,37};
inti,j,n,pos;
printf("intputn:
\n");
scanf("%d",&n);
if(n>a[9])a[10]=n;
else{
for(pos=0;pos<10;pos++)
if(a[pos]>n)break;
for(j=10;j>pos;j--)
a[j]=a[j-1];
a[pos]=n;
}
for(i=0;i<11;i++)
printf("%4d",a[i]);
printf("\n");
}
输入11
输出3,5,8,10,11,12,16,19,24,18,37
(2)编程对冒泡排序方法进行改进。
冒泡法改进:
#include
#defineN20
voidmain(){
inti,j,t;
intflag=0,a[N]={8,4,2,6,7,5,3,5,12,16,1,12,19,20,25,23,36,10,15,21};
for(i=0;i flag=0; for(j=0;j if(a[j] t=a[j];a[j]=a[j+1];a[j+1]=t; flag=1; } if(flag==0)break; } for(i=0;i printf("%3d",a[i]); printf("\n"); } (3)编程实现两个有序数组的合并,合并后的数据存放在第3个数组中并保持其有序性。 数组交换 #include voidmain(){ inta[]={4,2,8,5,3,69,1,5,15,24}; intb[]={36,25,4,1,52,7,8,5,62,45},c[10]; inti,j; for(i=0;i<10;i++) c[i]=a[i],a[i]=b[i],b[i]=c[i]; printf("交换数组后: \n"); printf("a[10]="); for(j=0;j<10;j++) printf("%d,",a[j]); printf("\n"); printf("b[10]="); for(j=0;j<10;j++) printf("%d,",b[j]); printf("\n"); } 或者: #include voidmain(){ inta[]={4,2,8,5,3,69,1,5,15,24}; intb[]={36,25,4,1,52,7,8,5,62,45},c[10]; intj; printf("交换数组后: \n"); printf("a[10]="); for(j=0;j<10;j++) printf("%d,",b[j]); printf("\n"); printf("b[10]="); for(j=0;j<10;j++) printf("%d,",a[j]); printf("\n"); } (4)找出下面程序中的错误,该程序的功能是: 输入10个数存放到数组a中;找出其中最小的数组的a【0】交换,找出最大的数与数组的a【9】交换,最后输出交换后的结果。 #include voidmain() inti,max,min,temp,a[10]; for(i=0;i<10;i++) scanf(“%d”,&a[i]); max=min=0; for(i=1;i<10;i++){ if(a[i]>a[max])max=i; if(a[i] temp=a[10]; a[0]=a[min]; a[min]=temp; temp=a[9]; a[9]=a[max]; a[m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汤斌斌 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)