Hello各位小伙伴们~
在家里想学习却不知从何下手?
小编为大家准备了C语言的复习课程哦~
下面我们一起来康康叭~
![41274551b101b86ef7e37e7aeea42552.png](https://i-blog.csdnimg.cn/blog_migrate/ed0ef4c1f6ebb5755258688edaed5db1.png)
C语言复习
第一章和第二章的内容比较基础
我们在这里就不详细阐述了
第一节我们一起来学习一下第三章和第四章
第三章
输入、输出函数:
字符输入函数getchar()
字符输出函数putchar()
格式输入函数scanf()
格式输出函数printf()
第四章
算法的相关内容以及常用的几种结构和语句
![41274551b101b86ef7e37e7aeea42552.png](https://i-blog.csdnimg.cn/blog_migrate/ed0ef4c1f6ebb5755258688edaed5db1.png)
第3章 键盘输入与屏幕输出
输入输出数据需要调用标准库函数来实现
#include
字符输出函数
– putchar(ch)
– 输出一个字符ch
字符输入函数
– getchar()无参数
举例:
#include
main()
{
char ch;
printf("Press a key and then press Enter:");
ch = getchar();
printf("You pressed ");
putchar(ch);
}
![982779c7a40c27bf5060833376842375.png](https://i-blog.csdnimg.cn/blog_migrate/6ebe3e68c37f923c7a2cd654ff0785a9.png)
Printf输出格式字符
%c character:以字符形式输出单个字符
%s string:输出一个字符串
%d decimal:以带符号十进制整数输出
%f float:以小数形式输出浮点数(6位小数)
%e exponent:以标准指数形式输出(6位小数)
%g 选用%f,%e中输出宽度较小的一种格式
%o octal:以八进制无符号整数输出(无前导0)
%x hex:以十六进制无符号整数输出(无前导0x)
%u unsigned:以十进制无符号整数输出
举例:
printf(格式控制字符串, 输出项表列);
printf("a=%d b=%f", a, b);
printf代表次函数名;
a= b=代表普通字符 %d %f格式说明。
最后的a b代表可输出表列。
小数输入格式为printf(“a=%10.5d”,a);
10代表域宽(意为后面一共有几位 空格也算一位);
5代表小数位数。
举例:
![b9f10666884c09469416e927ed072be9.png](https://i-blog.csdnimg.cn/blog_migrate/1304c63d4b08c98cffaa6269a26b3891.png)
接下来说一下输入函数scanf();
格式:scanf(格式控制字符串, 地址表列);
scanf("%d,%f”, &a, &b);
"%d,%f”:指定输出格式,中间可以逗号,空格分隔。
&a, &b:输入格式列表。
接下来说一下输入函数注意说明符
m 表示数据占用的宽度
l 加在d、o、x、u前:输入长整型
加在f、e 前:输入双精度型
L 加在f、e 前:输入long double型
h 加在d、o、x 前:输入短整型
* 本输入项在读入后不赋给相应的变量
举例:
![a61c241c225e9bc505db1b9245979254.png](https://i-blog.csdnimg.cn/blog_migrate/376bc583478b70fc3c8d97bc8197e2fd.png)
因为%*2d不用读入相关数据 所以该项直接跳过。
![026e8a4995e1fb39bca91ee21f5a6e2d.png](https://i-blog.csdnimg.cn/blog_migrate/6384f667f8d6e6d54c58ac47374f1875.png)
结果:
![047a7f0e6f2bd514796230cab73c8f20.png](https://i-blog.csdnimg.cn/blog_migrate/0eb692b3187474cafdca8fa101643df4.png)
理应结果应是:
![1cd5513428fb0840142a9671172438cd.png](https://i-blog.csdnimg.cn/blog_migrate/90eb84e6c6706f5890285217f414b113.png)
为什么会出现这种错?
因为在缓冲区存在一个空格字符,导致了后面的有效字符无法读入。
我们应该添加一个getchar()函数:
![1891c1d584b8d1944b7ed45296725aa1.png](https://i-blog.csdnimg.cn/blog_migrate/a7ccda4a3db34e27e354323c7c22c341.png)
这样就避免了此类情况的发生。
不要死记硬背,要活学活用。
![41274551b101b86ef7e37e7aeea42552.png](https://i-blog.csdnimg.cn/blog_migrate/ed0ef4c1f6ebb5755258688edaed5db1.png)
第4章 程序的控制结构
我们首先要了解一下什么是算法。
①:为解决一个具体问题而采取的确定的、有限的操作步骤,就称为“算法”。
②:对同一个问题,可以有不同的解题方法和步骤。
③:为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。
通过算法我们可以快速的分析出数据的准确性。
算法具有几个特性:有穷性,确定性,有0个或多个输入,有一个或多个输出,有效性。
![f8cdd0c0cf359240265ca137b76e43bf.png](https://i-blog.csdnimg.cn/blog_migrate/077be6efc703476831c5e78b8c0c4b87.png)
举例:
用C语言表示:
#include
int main( )
{ int sign=1;
double deno = 2.0,sum = 1.0, term;
while (deno <= 100)
{ sign = -sign;
term = sign/deno;
sum = sum+term;
deno = deno+1;
}
printf ("%f\n",sum);
return 0;
}
这就是相关算法。
算法要根据题设自己想出相关运算,接着写出算法。
首先先说一下循环和选择结构。
选择语句主要是:If语句和switch语句。
If语句是2个分支的选择结构;
switch语句是多个分支的选择结构;
说一下if语句的一般格式;
If(表达式)
{可以使关系表达式,逻辑表达式,数值表达式}
语句一;
else
语句二;
每个else都是与与其最近未配对if相匹配(这个要多加注意)。
最常用的3种if语句形式:
1. if (表达式) 语句1;(没有else子句)
2. if (表达式) 语句1 ;
else 语句2; (有else子句)
3. if(表达式1) 语句1;
else if(表达式2) 语句2;
else if(表达式3) 语句3;
┆
else if(表达式m) 语句m;
else 语句m+1;
(在else部分又嵌套了多层的if语句)
接下来说一下switch语句;
switch多用于多分支选择结构。
例4.6 要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分 ,D等为 60分以下 。成绩的等级由键盘输入。
#include
int main()
{ char grade;
scanf("%c",&grade);
printf("Your score:");
switch(grade)
{ case 'A': printf("85~100\n");break;(注意break不能少 其作用为转到语句的结束末尾)
case 'B': printf("70~84\n");break;
case 'C': printf("60~69\n");break;
case 'D': printf("<60\n");break;
default: printf("enter data error!\n");
}
return 0;
}
若输入A那么结果就是85~100 输入C结果就是60~69
switch语句的一般形式:
switch(表达式)
{ case 常量1 :语句1
case 常量2 :语句2
┇ ┇ ┇
case 常量n :语句n
default : 语句n+1
}
注意常量不能相同。
接下来在说一道比较经典的判断闰年的题。(该题很多算法 这不唯一)
#include
int main()
{int year,leap;
printf("enter year:"); scanf("%d",&year);
if (year%4==0)
if(year%100==0)
if(year%400==0) leap=1;
else leap=0;
else leap=1;
else leap=0;
if (leap) printf("%d is ",year);
else printf("%d is not ",year);
printf("a leap year.\n");
return 0;
}
![41274551b101b86ef7e37e7aeea42552.png](https://i-blog.csdnimg.cn/blog_migrate/ed0ef4c1f6ebb5755258688edaed5db1.png)
![7fbcfdc554f5df9bfdec7f011ad426a1.png](https://i-blog.csdnimg.cn/blog_migrate/b80c4d4c3cfc4c6e5b530200e661cb1e.jpeg)
本期的C语言复习课就到这里啦~
我们下期不见不散哦~
开学临近
大家要调整好状态
迎接新的学期
有问题我们评论区见哦~
文案:潘长鑫
排版:李肃疆
![06740d3bc7504610aa9131dfd0018c8e.png](https://i-blog.csdnimg.cn/blog_migrate/be3565c39b8c47d8854f9b32805fb865.jpeg)