C程序设计(第五版) 第三章最简单的C程序设计——顺序结构程序设计

实验二  顺序结构程序设计

一、实验目的:

1. 理解简单的顺序结构程序设计;

2. 熟练掌握如何定义各种不同数据类型,尤其是整型、浮点型、字符型等常用数据类型;

3. 熟练掌握各种运算符的使用方法,主要是算术运算符和赋值运算符的使用;

4. 熟练使用printf、scanf进行简单基础的输入、输出。

二、实验内容

1.编程输出自己的班级、学号和姓名

程序代码:

#include<stdio.h>
#define CLASS "数师本2002"
#define XUEHAO "20202102474"
#define NAME "荪葭"
int main()
{
printf("%s\n%s\n%s\n",CLASS,XUEHAO,NAME);
return 0;
}

2.【验证性试验-例3.1】有人用温度计测量出华氏法表示出的温度(如64℉),今天要求把它转换为以摄氏法表示的温度(如17.8℃)。将下列程序按照变化1修改后,回答问题1

程序代码:

#include <stdio.h>

int main()

{ float f,c; //定义f和c为单精度浮点型变量

f=64.0; //给赋值

c=(5.0/9)*(f-32); //利用公式计算c的值

printf("f=%f\nc=%f\n",f,c); //输出c的值

return 0;

 }

变化1:

#include <stdio.h>

int main()

{ float f,c; //定义f和c为单精度浮点型变量

f=64.0; //给赋值

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

printf("f=%f\nc=%f\n",f,c); //输出c的值

return 0;

 }

结合上述代码变化1,回答一下c=(5/9)*(f-32);是否可以解决华氏转化为摄氏温度的问题。说出你的理由。

问题1回答:

否,当“/”左右都是整型的时候,进行整除运算,运行结果可以发现是0,并不是我们所需要的数学上的除法运算。


3.【验证性试验-例3.2】计算存款利息。有1000元,想存一年。

有3种方法:

(1)活期,年利率为r1;

(2)一年期定期,年利率为r2;

             (3)存两次半年定期,年利率为r3。

请分别计算出一年后3种方法所得到的本息和。运行下列程序,按照变化1修改后,回答问题1。

程序代码:

#include <stdio.h>

int main ()

{ float p0=1000, r1=0.0036, r2=0.0225, r3=0.0198, p1, p2, p3; //定义变量

p1=p0*(1+r1); //计算活期本息和

p2=p0*(1+r2); //计算一年定期本息和

p3=p0*(1+r3/2)*(1+r3/2); //计算存两次半年定期的本息和

printf("p1=%f\np2=%f\np3=%f\n",p1, p2, p3); //输出结果

return 0;

}

变化1:

如果将上述代码中的

float p0=1000, r1=0.0036, r2=0.0225, r3=0.0198, p1, p2, p3; //定义变量

改为

double p0=1000, r1=0.0036, r2=0.0225, r3=0.0198, p1, p2, p3; //定义变量

是否可以?

问题1回答:

可以,float是单精度浮点数类型,double是双精度浮点数类型,将float改成double提高了变量的精度。


4.【验证性试验】给定一个大写字母,要求用小写字母输出。

程序代码:

#include <stdio.h>
int main ( )
{
  char c1,c2;
  c1='A';                 
  c2=c1+32;	              
  printf("%c\n",c2);     
  return 0;
}

5.验证性试验-3.4】给出三角形三边长,求三角形面积。

解题思路:  假设给定的三个边符合构成三角形的条件: 任意两边之和大于第三边。

从数学知识已知求三角形面积的公式为:area=\sqrt{s(s-a)(s-b)(s-c)},其中s=(a+b+c)/2

程序代码:

#include <stdio.h>
#include <math.h>
int main ()
 {
	double a,b,c,s,area;	//定义各变量,均为double型 
	a=3.67;							//对边长a赋值 
	b=5.43;							//对边长b赋值 
	c=6.21;								//对边长c赋值
	s=(a+b+c)/2; 						//计算s 
	area=sqrt(s*(s-a)*(s-b)*(s-c));	//计算area 
	printf("a=%f\tb=%f\tc=%f\n",a,b,c); 	//输出三边a,b,c的值 
	printf("area=%f\n",area);		//输出面积area的值
	return 0;
 }

6.验证性试验-3.8】先后分别输出BOY三个字符。

程序代码:

#include <stdio.h>
int main()
{	char a,b,c;	//定义字符变量a,b,c
	a=getchar();	//从键盘输入一个字符,送给字符变量a
	b=getchar();	//从键盘输入一个字符,送给字符变量b
	c=getchar();	//从键盘输入一个字符,送给字符变量c
	putchar(a); 	//将变量a的值输出
	putchar(b); 	//将变量b的值输出 
	putchar(c); 	//将变量c的值输出
	putchar('\n');//换行
	return 0;
}

7.验证性试验-3.10】从键盘输入一个小写英文字母,将其转换成大写并输出。

程序代码:

#include <stdio.h>
int main()
{
	char c1,c2;
	c1=getchar();	
	c2=c1-32;	
	printf("小写字母: %c\n大写字母: %c\n",c1,c2);	
	return 0;
}

8.验证性试验从键盘输入三角形三边长,编程实现求三角形面积。

程序代码:

#include <stdio.h>
#include <math.h>
int main ()
 {	double a,b,c,s,area;	//定义各变量,均为double型 
	printf("请输入a b c的值\n"); 
	scanf("%lf%lf%lf",&a,&b,&c);
	s=(a+b+c)/2; 						//计算s 
	area=sqrt(s*(s-a)*(s-b)*(s-c));	//计算area 
	printf("a=%f\tb=%f\tc=%f\n",a,b,c); 	//输出三边a,b,c的值 
	printf("area=%f\n",area);		//输出面积area的值
	return 0;
 }

9.已知圆半径,圆柱高,求圆周长、圆柱体积。

程序代码:

#include <stdio.h>
int main ()
{
    float pi=3.14159,r,h,c,s;
    printf("请输入圆柱的半径和高:");
    scanf("%f%f",&r,&h);
    c = 2*pi*r;
    s = pi*r*r*h;
    printf("圆周长为%f\n圆的面积为%f\n",c,s);
    return 0;
}

10.验证性试验-3.5】求方程ax^{^{2}}+bx+c=0的实数根。a,b,c由键盘输入,a\neq 0,设b^{2}-4ac\geqslant 0

程序代码:

#include <stdio.h>
#include <math.h>			//程序中要调用求平方根函数sqrt
int main() 
{
	double a,b,c,disc,x1,x2,p,q;			//disc用来存放判别式(bb-4ac)的值
	scanf("%lf%lf%lf",&a,&b,&c);	//输入双精度型变量的值要用格式声明″%lf″
	disc=b*b-4*a*c;
	p=-b/(2.0*a);
	q=sqrt(disc)/(2.0*a);
	x1=p+q;    
    x2=p-q; 			//求出方程的两个根
	printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);	    //输出方程的两个根
	return 0;   
}

11.编程实现从键盘任意输入一个三位整数,计算其各位相加的和。例如,输入258,输出为2+5+8=15。

程序代码:

#include<stdio.h>
int main()
{
	int n,a,b,c,s;
	printf("请输入一个三位整数:");
	scanf("%d",&n);
	a = n/100;
	b = n/10%10;
	c = n%10;
	s = a+b+c;
	printf("%d+%d+%d=%d\n",a,b,c,s);
	return 0;
}

12.编写程序,输入一个正4位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入5000,输出应该是5。

输入格式:

每个测试是一个4位的正整数。

输出格式:

输出按位逆序的数。

输入样例:

1234

输出样例:

4321

输入样例:

5200

输出样例:

25

程序代码:

#include <stdio.h>
int main()
{
	int n,a,b,c,d;int e;
	printf("请输入一个正四位整数:");
	scanf("%d",&n);
	a = n/1000;
	b = n/100%10;
	c = n/10%10;
	d = n%10; 
	e = a + b*10 + c*100 + d*1000;
	printf("4位正整数逆序后:%d\n",e);
	return 0;
}



13.求整数均值

编写程序,计算3个整数的和与平均值。题目保证输入与输出均在整型范围内。

输入格式:

输入在一行中给出3个整数,其间以#分隔

输出格式:

在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值输出小数点后6位。

程序代码:

#include<stdio.h>
int main()
{
  int a,b,c;
  scanf("%d#%d#%d",&a,&b,&c);
  printf("Sum = %d; Average = %.6f",a+b+c,(a+b+c)/3.0);
  return 0;
}

14.输入实型数据3.4,整型数据34,字符型数据’B’,计算三个数据之和,分别输出实型数据3.400000,整型数据34,字符型数据’B’,以及以双精度浮点型指数形式输出三个数据之和。

程序代码:

#include <stdio.h>
int main()
{
	double a,d;
	int b;
	char c;
	printf("请输入实型数据3.4,整型数据34,字符型数据'B':");
	scanf("%lf%d%c",&a,&b,&c);
	d = a+b+c;
	printf("实型数据%lf,整型数据%d,字符型数据%c,三个数据之和%E\n",a,b,c,d);
	return 0;
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荪葭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值