C语言基础第五课——字符输出函数putchar、字符输入函数getchar、字符型数据与整型数据与实型数据混合运算、强制类型转换、顺序结构程序设计(按顺序一步一步来)

写在前面:

简单谈谈写程序吧,写程序的目的可以说是为了解决某个(或某些)问题。人的计算速度远远赶不上计算机,所以用计算机解题速度很快,但是呢,计算机比较笨,只能执行人类指定的命令,而且是以二进制的方式执行。但人类搞二进制多费劲啊,也就那些大佬能玩的转。所以人类就想办法简化给计算机下命令的过程,如果下命令跟说话一样简单就好了,所以编程语言就慢慢的发展起来了,从汇编到中级语言到高级语言,一步一步的发展。C可以说是一门中级语言吧,在编程语言里面算是比较难的了。但现在的要求并没有那么高,现在的要求就是记住框架,然后记住一些特殊的函数用法,然后掌握一些算法,做题的时候拼凑一下就OK了,难度其实还好,就说这么多吧。

一、字符输出函数putchar

格式: putchar(字符型数据)
功能:从显示器输出一个字符。
用法如下:

char ch='a';
putchar(ch);
putchar('a');
putchar(97);
结果都是字符a

二、字符输入函数getchar

格式: getchar( )
功能:从键盘输入一个字符,并作为该函数的函数值。
如ch=getchar( );
不能写作getchar(ch);
这两个函数使用方法的区别要注意

char c;
c=getchar( );

三、字符型数据与整型数据可以进行混合运算

因为字符数据存储时,内存中是以二进制ASCII码的形式存储。
如’a’,内存中存储二进制数01100001。
用一个字节存储十进制整数97,内存中存储的二进制数是01100001。
C语言中,字符型数据与整型数据可以进行混合运算。
就是可以将一个字符的ASCII码作为整数使用

大小写转换:(他们之间差32char ch;
ch=getchar( );
ch=ch-32;
putchar(ch);
这是是一种方法
只要他们之间的关系是32就OK
可以想办法构造出来等于32的表达式

在C语言中,整型、实型、字符型数据之间可以进行混合运算。
两个不同类型的数据进行混合运算时,首先要将其中取值范围较小的的类型转换为取值范围较大的类型,然后再进行运算。
这种类型转换是由系统自动进行的,故称为自动类型转换。
例如: 5.0/2+‘a’
在这里插入图片描述首先/的优先级高,所以第一步5.0/2
2是整型,5是实型,所以先转化第一波
结果就是2.50000
字符型数据在参与运算的时候,会先转化成int型
就是’a’首先转为97,然后再进行2.50000+97的运算
一般来说只要有实型,在运算的时候都是按照double运算的

图中横线就是必定转换的
float必定转为double
char、short必定转化为int

四、强制类型转换

一般形式:
(类型说明符)(表达式)
功能:把表达式的运算结果强制转换为类型说明符所表示的类型。
其中(类型说明符),称为强制类型转换运算符。
例如:

(int)1.1*6.5%3
//表达式错误
//运算的话首先进行(int)1.1的运算,结果是1
//然后1*6.5=6.5
//然后6.5%3
//但是呢,%求余只能是在两整型变量之间
//所以不对


//想转化一下类型进行运算
//但是迫于运算优先级没办法的时候
//()这个提高优先级的神器就出来了
(int)(1.1*6.5)%3
//第一步1.1*6.5
//第二步转成整型
//第三步两整数之间求余运算

五、顺序结构程序设计(按顺序一步一步来)

顺序结构程序的编写方法,一般包括以下几步:
①定义变量
分析问题确定变量个数,并明确哪些变量是已知的,哪些变量是未知的。
②数据的输入
通过赋值语句或输入函数为变量赋值。
③问题求解
根据己知变量与未知变量的关系,用赋值语句求得未知变量的值。
④输出结果
使用输出函数输出求得的未知变量的值。
例题:
已知a=100,b=200,交换两个变量的值并输出
算法分析:
(1)交换变量a和b的值,就是将b原来的值赋给a,而将a原来的值赋给b。
(2)但是若用a=b; b=a; ,则变量a原来的值将丢失。
(3)故应将a原来的值先保存到第三个变量中。(这就是引入第三个变量,也有不引入第三个变量的方法)

在这里插入图片描述

#include <stdio. h>
int main()
{ 
int a,b,t;
scanf("%d%d"&a,&b);

//重点
t=a;  //此时t=a=100
a=b;  //a=b=200
b=t;   //b=t=100
//换完了


printf(" a=%d, b=%d\n",a, b) ;
return 0;
}

还有就是不引入第三个变量
a=a+b;   //a=100+200
b=a-b;	//b=100+200-200=100
a=a-b;	//a=100+200-100=200
这样也可以实现更换的要求

顺序程序结构就是按照你给的条件逐条执行就OK了
同时它也是程序的根本
以后的选择结构可以简单理解为加了限制条件
循环结构可以简单理解为为了避免重复输入类似功能的代码,就让一段代码多次执行

例题:
例已知一元二次方程ax2+bx+c=0的系数a、b、c的值,设b2- -4ac≥0且a≠0,编程序求该方程的根。
编程思路:
不能通过直接将方程式写在程序中来求解方程。可以利用一元二次方程的求根公式,分别求解该方程的两个根。
需要借助sqrt()函数求平方根 (#include<math.h>不要忘记)

#include <stdio.h>
#include <math.h>
int main()
{ 
float a,b,c,p,q,xl,x2;
printf(”请输入三个系数的值: \n");
//友情提示,加了换行就在下一行输入,比较美观
scanf("%f%f%f",&a,&b,&c);
p=-b/ (2*a) ;
//这里之所以把公式拆开
//将分子分开,是为了减少运算量
q=sqrt (b*b-4*a*c)/ (2*a) ;
xl=p+q;
x2=p-q;
printf("x1=%f, x2=%f\n", x1, x2) ;
return 0;
}

已知地球的赤道半径为6377.830千米,并已知位于东半球赤道上两点的经度值(单位为度),编程序计算这两点之间的球面距离。
编程思路:
在赤道上两点之间的球面距离,就是这两点之间劣弧的长度。根据弧长公式,首先求出两点之间圆心角的大小 (单位弧度),然后乘上赤道半径即可。

#include <stdio.h>
#include <math.h>
#define PI 3.14159
int main()
{ 
float r,a,b,t,l;
r=6377.830;
printf("请输入东半球两点的经度值(单位为度) : \n");
scanf("%f%f",&a,&b);
t=fabs (a-b)/180*PI; //度化为弧度
l=t*r;
printf(”两点之间的球面距离=%f千米\n”",1);
return 0;
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值