实验内容2
scanf("%f,%f",&r,&h);
s=r*r*pi;
v=r*r*pi*h/3;
printf("底面积=%g\t圆锥体积=%g\n",s,v);
}
2.一个程序从键盘输入三位整数,将它们逆序数输出。例如:输入123,输出321。
分析:将输入的三位整数,个位数转换为百位数,百位数转换为个位数,把转换的三个数字生成一个新的逆序数。
3、运算符
(1)算术运算
单目运算:-,++,――
双目运算:+,-,*,/,%
(2)关系与逻辑运算
关系运算的结果是1和0,若关系表达成立,则其值为1,否则为0。
逻辑运算的结果是真或假,如果为真,定义其值为1,如果为假,定义其值为0。
4、编程中应注意
(1)用整型(int、short、long)说明变量时,要注意变量的取值范围,否则将出意想不到的错误;字符常量和字符串常量是有区别的。
依题意编写程序如下:
#include<stdio.h>
main( )
{
int n,x1,x2,x3,y;
printf("Please input n:");
scanf("%3d",&n);
x1=n/100;
x2=n/10-10*x1;
x3=n-10*x2-100*x1;
y=x3*100+x2*10+x1;
• 按要求对字符型变量输出
问题描述:编写用字符O组成OK字符图案。
示例输出:
程序模板:
#include<stdio.h>
main()
{
char a='O';
printf(" %c%c %c %c\n",a,a,a,a);
printf("%c %c %c %c\n",a,a,a,a);
printf("%c %c %c %c\n",a,a,a,a);
printf("%c %c %c %c\n",a,a,a,a);
printf(" %c%c %c %c\n",a,a,a,a);
}
强化练习:
1.若要由任一输入的字符组成“OK”图案,程序应怎样修改?请在此基础上进行修改?答案添入下方空白处:
2.4综合练习
1.编写一个程序从键盘输入圆锥体的半径r和高度h,并计算其底面积和体积。
2.观察运行结果,结合程序模板,找出x与x1、y与y1、z与z1之间的联系;
强化练习:
1.考虑得出上述结果的原因,并将其下在这里:
实验练习2:温度计算。
实验目的:
本实验旨在巩固学生对于编程概念的理解。在这个实验中,学生将练习:
•如何定义浮点型变量
•使用scanf输入用户提供的数据
•使用printf输出变量
}
问题解答提示:
1.输入数据包括9个浮点数,因此可以用float来表示;
2.提示用户输入6项费用,并用scanf读入到相应的变量中;
3.计算6项费用的总额,并存储在相应变量中;
4.用printf语句输出应付款;
5.用scanf语句接收病人的实际付款金额,并存储在相应变量中;
6.计算应付款和实际付款之间的差额,并存储在相应变量中;
4.用printf语句显示对应的摄氏温度。
强化练习:
1.若将上述程序改为输入摄氏温度,输出华氏温度,应如何改写程序?请将改写结果写在这里:
实验练习3:自增运算符的使用。
实验目的:
本实验旨在巩固学生对于编程概念的理解。在这个实验中,学生将练习:
•掌握自增(++)运算符的使用
问题描述:运行下列程序,观察其执行结果,思考自增运算符放在变量之前和放在变量之后,表达式的值有何不同。
分析:已知半经r和高度h,依据圆面积的计算公式:s=r*r*π和圆锥体体积计算公式:v= r*r*π*h/3,可计算其底面积和体积,程序为顺序结构。
依题意编写程序如下:
#include<stdio.h>
main()
{
float r,h,s,v,pi=3.14159;
printf("Please input r,h:");
printf("逆序数:%d",y);
}
•使用printf输出文本和变量
•使用scanf输入用户提供的数据
•使用算术运算符(+和-)执行数学运算
在强化练习中,学生将练习:
• 按照要求对程序进行修改、实现若干功能的能力
问题描述:
编写一个程序用于医院收费处出纳算账:要求输入所在医院费用(西药费,检查费,材料费,床位费,观察费,护理费),打印出应付钱数,再输入病人所付款数,打印出应找的钱数(已知某病人,西药费300.2元,检查费97.6元,注射用材料费80.5元,观察费20元,护理费0元)。
示例输出:
程序模板:
#include <stdio.h>
main( )
{
int x=4,y1,y2;
/*计算y1*/
printf("y1=%d,x=%d\n",y1,x);
/*计算y2*/
printf("y2=%d,x=%d\n",y2,x);
}
问题解答提示:
1.观察结果,结合程序模板进行分析,x初始值为4而第一次输出值为5,y1输出值为4,考虑在y1与x的运算过程中,自增均算符是放于x之前还是之后;
在强化练习中,学生将练习:
• 如何实现摄氏温度转化为华氏温度
问题描述:
编写程序,输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。
示例输出:
程序模板:
#include<stdio.h>
void main( )
{
float h, c;
prin用户输入的华氏温度*/
/*计算x1的值*/
y=32767;
/*计算y1的值*/
z=32767;
/*计算z1的值*/
printf("x=%d,x1=%d\n",x,x1);
printf("y=%d,y1=%d\n",y,y1);
printf("z=%ld,z1=%ld\n",z,z1);
}
问题解答提示:
1.程序要求输出int、long int型的取值范围;
printf("%c %c %c %c\n",a,a,a,a);
printf("%c %c %c%c\n",a,a,a,a);
printf("%c %c %c %c\n",a,a,a,a);
printf("%c %c %c %c\n",a,a,a,a);
printf("%c %c %c %c\n",a,a,a,a);
7.用printf语句将病人付款、应收款、应找回的各项金额显示;
强化练习:
1.能否增设显示用户基本信息功能;
2.将用户所在医院各项费用显示;
实验练习5:输出字符图案。
实验目的:
本实验旨在巩固学生对于编程概念的理解。在这个实验中,学生将练习:
•熟悉如何定义一个字符型变量
•掌握字符型变量的输出方法
在强化练习中,学生将练习:
•使用printf输出变量
•掌握整型、长整型数据的取值范围
在强化练习中,学生将练习:
• 加强对于程序的分析能力
问题描述:
运行下列程序,观察其执行结果,思考为什么?
示例输出:
程序模板:
#include <stdio.h>
main( )
{
int x,y,x1,y1;
long z,z1;
x=-32768;
(2)变量按照数据类型定义
基本数据类型有字符型、整型、单精度浮点类型和双精度浮点型,由基本数据类型的数据长度不同及有无符号又可派生多种类型。
2、算术表达式
算术表达式是用算术运算符和括号将运算对象连接起来,且符合C语法规则的式子。
C语言在不同数据类型混合运算时会按规则自动转换成相同的数据类型后再进行运算。即C编译自动把参与运算的各种常量和变量转换为它们中间数据长度最长的数据类型进行计算,但赋值操作按把赋值号右边类型转换成赋值号左边类型的原则进行。如果希望在一个算术表达式中按用户的要求确定结果的类型,则必须采用强制类型转换符号进行操作。
2.2相关知识
1、变量和常量
常量和变量是C语言数据处理的基本对象。
(1)常量分为数、字符和字符串
数分为整数和实数。整数可以使用十进制、八进制和十六进制表示;实数只使用十进制,采用一般形式和指数形式具体表示。
字符常量用单引号括起来的一个字符表示,字符常量的值是该字符的ASCII码值。
字符串常量用双引号括起的一串字符表示,字符串在内存存贮时,自动在其尾部加上一个空(NULL)字符。
示例输出:
程序模板:
#include <stdio.h>
main()
{
float x,j,c,hj,fk,zh,cw,g,f;
//其中:x代表西药费;j代表检查费;c代表材料费;cw代表床位费;g代表观察费;f代表护理费; hj代表应付款;fk代表病人付款;zh代表应找回的金额;
printf("输入西药费,检查费,材料费,床位费,观察费,护理费:");
/*编写接收语句,将西药费,检查费,材料费,床位费,观察费,护理费存放在相应的变量中*/
/*计算各项费用的总额*/