物联网工程学院学生科协 ——2018年软件第一次培训总结

       第一次培训的内容是C语言基础,按照“C语言引述”——“C语言基础知识及语法讲解” ——“国庆大礼包讲解”的顺序展开。同时本次培训“安装IDE & 配置环境(CodeBlocks)”的工作已经于培训前全部完成。下面按照培训顺序进行总结和扩充。

 

目录

一、C语言引述

  1. 什么是编程?

  2. C语言的地位如何?

  3. 我们为什么选择学习编程?

  4. 怎样学习编程?

二. C语言基础知识及语法讲解

1. 基础知识介绍

1.1关于printf:

1.2语言常用的数据类型介绍:

1.3 C语言中的逻辑运算

2. 基础语句和语法介绍

2.1 if-else语句

2.2 switch语句

2.3 循环相关语句

三. 国庆大礼包讲解

四. 总结


一、C语言引述

  1. 什么是编程?

  • 一句话概括,“编程就是指导计算机执行任务的行为”。
  • 许多事情都是有规律可寻的,这是我们能够编程解决问题的基础。
  • 计算机需要从我们这里获得指令。它并不能理解我们人类的语言,我们需要整理归纳我们的思想,从具象的事物之中抽象出对象个体与相关的规律,来“教会”计算机思考与处理分析问题。
  • 在程序中,我们用各种数据来表示各个对象个体,而那些提炼出的按照有限步骤解决某一类问题的方法即为算法。
  • 编程换言之即程序设计。从某种意义上来说,“程序 = 数据结构 + 算法”。

  2. C语言的地位如何?

  • C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。当今使用C语言进行程序设计仍然是软件开发的一个重要方向。
  • C语言可以大大缩短系统开发周期,便于程序的改进、拓充与移植。
  • C语言效率非常高,一般只比汇编程序生成的目标代码效率低10%—20%。

  3. 我们为什么选择学习编程?

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

  4. 怎样学习编程?

  • 学习一门编程语言,这是编程的工具。
  • 听课入门,重点是看书,看博客,看论文,想提高编程能力离不开自学。
  • 多看大牛的代码,学习他们的优点,编程是有模板的。
  • 多写代码,提高代码的质量,量变引起质变。
  • 目标驱动。不论是完成一个软件项目还是竞赛获奖,目标会带给你方向。
  • 工欲善其事,必先利其器。学习编程前你还需要一个好的开发环境(IDE)。

 

二. C语言基础知识及语法讲解

  先看第一个小程序:

#include<stdio.h> 
//头文件, 想要使用函数,必须先申明包含它的头文件
int main() //主函数main是程序入口
{
    printf ("Hello World! \n"); //输出HelloWorld(格式化输出)
    return 0;	//返回值
}

别看人家短,人家就是一个正经的小程序啦!一个C程序必要的头文件、主函数、输入输出流、返回值都在这一个小小的程序中有所体现。

 

1. 基础知识介绍

1.1关于printf:

  • printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf()申明于头文件stdio.h。
  • 格式化字符串包含三种对象,分别为:

(1)字符串常量;

(2)格式控制字符串:类型是格式控制字符串中的重中之重!

(3)转义字符:

 接下来我们举个栗子介绍一下最简单的赋值语句:

 

int a = 3;

  上面这个语句中,‘3’ 是常量。 ‘=’ 是运算符。‘a’是变量。

   a = 3;  就是一个完整的表达式。    

  申明变量其实是向内存中申请一部分存储空间。

 

1.2语言常用的数据类型介绍:

1.3 C语言中的逻辑运算

  • 逻辑与:&&

<表达式1> && <表达式2>

当且仅当 <表达式1> 以及 <表达式2> 全部为真的时候,整个逻辑表达式为真。

逻辑与运算的“短路”规则:

如果 <表达式1> 为假,<表达式2> 不会被执行

例如:

int a = 0;
int b = 2;
if(a && (b = 10))
    printf(“啊啦啦啦啦\n”);
printf(“%d”, b);

输出的b即为2。

 

  • 逻辑或:||

<表达式1> || <表达式2>

当且仅当 <表达式1><表达式2> 全部为假的时候,整个逻辑表达式为假。

逻辑或运算的“短路”规则:

如果 <表达式1> 为真,<表达式2> 不会被执行

例如:

int a = 1;
int b = 2;
if(a || (b = 10))
    printf(“啊嘿嘿嘿嘿\n”);
printf(“%d”, b);

输出的b值仍然为2。

 

  • 逻辑非:!

! <表达式>

<表达式> 为真的时候,!<表达式> 为假,

<表达式> 为假的时候,!<表达式> 为真;

逻辑变换:

!(<表达式1> && <表达式2>) 等价于

!<表达式1> || !<表达式2>

!(<表达式1> || <表达式2>) 等价于

!<表达式1> && !<表达式2>

 

2. 基础语句和语法介绍

2.1 if-else语句

if (条件表达式) {
    ......
} else if (条件表达式) {
    ......
} else if (条件表达式) {
    ......
} ......
else {
    ......
}

从上到下,依次对每个条件表达式进行判断,哪一个条件表达式为true,则执行哪一个对应的分支。至多只会执行一个分支。

 

2.2 switch语句

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

switch语句非常有用,但在使用时必须谨慎。只能针对基本数据类型中的某些类型使用switch,例如int、char等。对于其他类型,则必须使用if语句。并且case标签必须要是常量表达式

 

2.3 循环相关语句

2.3.1 while()语句(第一种循环语句)

使用while()循环的注意事项:

(1)()中的表达式不可以为空,表达式为空不合法;

(2)表达式可以用非0代表逻辑值真(true),用0代表逻辑值假(false);

(3)循环体中必须有改变条件表达式状态的语句,否则成为死循环。

例如:

while(1){......} //是一个无限循环语句。
while(0){......} //是一个不会进行循环的语句。

 

2.3.2 for()语句(第二种循环语句)

函数表现形式:for(循环初始值;循环条件;循环参数)

(1)若循环初始值省略并且在for循环之前已经初始化过了,则不影响循环体的执行。

(2)若循环初始值、循环条件、循环参数三者都省略,则循环体会一直执行下去,变成一个死循环。

(3)for循环里面是分号不是逗号(初学者很容易犯错哦)。

常用for循环的写法:

for( i = 0; i < n; i++){
    <代码块>
}//共循环n次,n的值依次位[0, 1, 2, …, n - 1]

for( i = 0; i != n; i++){
    <代码块>
}//共循环n次,n的值依次位[0, 1, 2, …, n - 1]

for( i = n - 1; i >= 0; i--){
    <代码块>
}//共循环n次,n的值依次位[n - 1, n - 2, …, 0]

2.3.3 continue-break循环控语句(结合for()和while()使用)

  • break 语句

功能:跳出当前所在循环,用在循环语句和开关语句中,通常总是与if 语句联合使用,即满足一定条件时跳出循环。

当break 用于switch-case 中时,可使程序跳出switch-case 而执行switch-case 后面的语句。

当break 用于do-while、for、while 循环语句中时,可使程序终止循环而执行循环后面的语句。

例如:

for(i = 0; i <= 100; i++)
{
    if(i == 1)
    break; //跳出for语句
}
printf(“%d”, i);

输出结果为1

 

  • continue语句

功能:结束本次循环,继续下次循环;

例如:

for(i = 0; i <= 100; i++)
{
    if(i==1)
    continue; //此时直接结束i == 1时的循环
    printf(“%d”, i);
}

输出结果为0 2 3 4 … 100,即跳过了i==1时的printf()

 

三. 国庆大礼包讲解

       国庆大礼包的题解已经打包发送至科协新生群,每道题的代码均以txt文本文件的形式保存,可以将代码直接复制进工程,编译运行。很多题目都提供了多种解法和思路,供同学们参考。其中有一些题目的解法由于涉及到本次培训还未讲解的知识点,所以本次现场培训时将其跳过,但这些题目的代码也在题解当中,同学们感兴趣的可以提前学习和探究。

现场培训时跳过的题目的题号如下:

基础9(常规法)(位运算法)【涉及数组、字符和字符串处理】

基础10(法一)【涉及数组、字符和字符串处理】

提高8(素数筛法)【涉及数组】

提高10(递归法)【涉及自定义函数、函数递归】

每道题的解法都不唯一,但不同的解法有优劣之分。同学们可以自己探索更好的解法,修改优化自己的程序。

 

四. 总结

       本次培训的内容是C语言程序设计的基础内容,但这的确是迈出了编程路上的第一步。虽然是开始,但无论做任何事,打好基础都十分重要。学习过程中轻易退缩与急功近利都是不可取的。希望同学们能继续努力,认真学习消化所讲知识,结合课内学习,巩固基础,不断提升自己。良好的开端是成功的一半,同学们,继续加油吧!

 

猜你喜欢

转载自blog.csdn.net/NOTFOUND_Liu/article/details/83062368
今日推荐