2019第一次软件培训 --- C语言

软件第一讲 — C语言

01 程序设计概述

(1)什么是编程

编程就是让计算机代为解决某个文图,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程

为什么编程

物联网工程学院的所有专业都离不开扎实的编程能力:硬件控制、信号处理、软件开发……所有这些的基础都离不开编程。
随着科技的发展与人类社会的不断进步,计算机在人类社会中的地位将会越来越重,编程会是人类未来的基本技能之一。
编程将人从繁琐的重复的劳动之中解放出来,解放了生产力,是现代社会的基石之一。

为什么用C语言

2019年3月编程语言排行榜
2019年3月编程语言排行榜
C语言是一种高级语言
用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于程序的改进、拓充与移植。
C语言可以直接调用汇编
加快程序的运行效率,在单片机编程中也有较大作用。
在这里插入图片描述

如何学习编程

1.听课入门,重点是看书,看博客,看论文
2.多看大牛的代码,编程有模板的,多敲多尝试,实践出真知
3.多写高质量的代码,积累才能质变
4.有一个目标,不论是想完成一个软件项目还是获得一个奖项,目标给

02 C语言程序结构

#include <stdio.h> //预处理指令
/*
主函数main()是程序入口
*/
int main()
{
int a = 1; //变量a
printf(“Hello World!\n”) ; //输出HelloWorld
return 0;
}
在这里插入图片描述

注释

在这里插入图片描述
#include <stdio.h> //头文件
/ *
comment1
main: generate some simple output
/
//主函数
int main()
{
printf(/
comment2 */“Hello, world.\n”);
printf(“Goodbye!”);
return 0;/comment3/
}

头文件

C语言标准库中有许许多多的头文件,这里主要介绍常用的这三个头文件stdio.h, string.h, math.h,以后用到其他的再做补充。

头文件stdio.h :定义了输入输出函数、类型以及宏 如: scanf , printf

头文件string.h :字符串及内存处理函数 如: strcpy, strcat, strcmp, memset, memcpy

头文件math.h :常用的基本数学函数 如: abs, tan, sin, cos, pow, sqrt, ceil, floor

计算机存储

8 bit(比特) = 1 Byte(字节)
1024 Byte = 1 KB
1024 KB = 1 MB
1024 MB = 1 GB
1024 GB = 1 TB
1024 TB = 1 PB

基本数据类型

整型:
(字符型)char -128 ~ 127
short -215 ~ 215-1
int -231 ~ 231-1
long -231 ~ 231-1
long long -263 ~ 263-1
浮点型
float 6位小数
double 15位小数
在这里插入图片描述

03 C语言语法

scanf/printf

一个有用的程序必然有0或若干个输入以及1或更多个输出。
scanf(),printf()是C语言标准库函数,申明于头文件stdio.h。默认情况下用于从键盘读取输入及将格式化后的字符串输出到屏幕。
scanf()以及printf() 格式化字符串包含三种对象,分别为:
(1)字符串常量;(2)格式控制字符串;(3)转义字符。

类型:类型是格式控制字符串的重中之重

在这里插入图片描述
在这里插入图片描述

转义字符

在这里插入图片描述

常用运算符

算数运算符
赋值运算符
逻辑运算符
二进制运算符
关系运算符

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

逻辑运算符

逻辑与:&&<表达式1> && <表达式2>当且仅当 <表达式1> 和 <表达式2> 全部为真的时候,整个逻辑表达式为真
逻辑或:||<表达式1> || <表达式2>当且仅当 <表达式1> 和 <表达式2> 全部为假的时候,整个逻辑表达式为假
逻辑非:!! <表达式>当 <表达式> 为真的时候,!<表达式> 为假当 <表达式> 为假的时候,!<表达式> 为真

为了加快程序运行速度,编译器会对条件判断的表达式进行一定的优化
逻辑与:&&
<表达式1> && <表达式2>当 <表达式1> 为假的时候,不执行<表达式2>
逻辑或:||
<表达式1> || <表达式2>当 <表达式1> 为真的时候,不执行<表达式2>

条件分支-if

if语句。if有两种用法
if(条件表达式){ 条件成立时需要执行的内容;}
if(条件表达式){ 条件成立时需要执行的内容;}
else{ 条件不成立时需要执行的内容;}

if嵌套

if(条件表达式1)
{
条件1成立时需要执行的内容;
}
else if(条件表达式2)
{
条件2成立时需要执行的内容;
}else if(条件表达式3)
{
条件3成立时需要执行的内容;
}…
else { 条件都不成立执行的内容;}

条件分支-switch

switch(表达式){
case 常量1:
<语句块1>
break;
case 常量2:
<语句块2>
break;
default:
<语句块3>
}

switch语句非常有用,但在使用时必须谨慎。程序会自动跳转到与表达式的值相同的常量的Case处并继续执行接下来的代码,若不写break会导致程序继续执行接下来Case中的语句。default部分为找不到相对应的相等常量时跳转的位置。

条件比较的注意点

浮点型的精度有限,不适合用==运算符做精确比较。以下代码可以说明问题:float i = 1;float j = i / 10.0; if (j * 10.0 == i) printf(“Equal.\n”); else printf(“Unequal.\n”);
Switch也因为这种原因,不用于进行浮点型的比较。

while / for / do…while 循环控制语句

while

while (条件){ <执行的语句们>}
使用while循环的注意事项:(1)表达式不可以为空,表达式为空不合法;(2)表达式可以用非0代表逻辑值真(true),用0代表逻辑值假(false);(3)循环体中必须有改变条件表达式状态的语句,否则将成为死循环

例如 while(1){…} 是一个无限循环语句 while(0){…} 是一个不会进行循环的语句

例:求n!
int factorial(int n)
{
int result = 1;
while (n > 0)
{
result = result * n;
n = n - 1;
}
return result;
}

for

for (初始化;循环条件;条件变化操作){ <执行的语句们>}
For循环可以看作一种while循环的变体。(1)若循环初始值省略并且在for循环之前已经初始化过了,则不影响循环体的执行(2)若循环条件或循环参数或循环初始值、循环条件、循环参数三者都省略,则循环体会一直执行下去,变成一个死循环(3)For循环里面是分号不是逗号


例:求n!
int factorial(int n)
{
int result = 1;
int i;
for(i = 1; i <= n; ++i)
result = result * i;
return result;
}

循环-for初始化、循环条件、条件变化表达式的忽略

for (初始化;循环条件;条件变化操作){ <执行的语句们> }
注意:每一项后面的分号不可忽略。
省略初始化部分:for(;i<=100;i++){…}; 不对循环的变量进行初始化操作
省略循环条件部分:for循环在不经过break等语句的情况下会一直运行
省略条件变化表达式:若循环内无相关改变循环条件表达式的操作,循环可能会一直运行。

循环-控制语句

break 语句功能:跳出当前所在循环,用在循环语句和开关语句中,通常总是与if 语句联合使用,即满足一定条件时跳出循环。当break用于switch-case 中时,可使程序跳出switch-case而执行switch-case 后面的语句;当break用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,

continue 语句功能:结束本次循环,继续下次循环;
for(i=0;i<=100;i++){ if(i==1) contiune; //执行i=2的情况}printf(“%d”,i);输出结果为100(循环进行了101次)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章