第一节课
关于对自学的一些看法:
对于郝斌老师的第一节的引入,我在一定范围上感同身受,比如说在学习高数的过程中有一点其实是非常简单的,但是你就是看不懂,反复读反复读也看不明白,但是隔天换一个思路的时候就可能直接理解,或者说老师简单的一句话就能让你明白。解一些数学题,也是一样的。实际上在配置vscode的时候我也遇到了相似的问题。就算是看着视频一步一步去做还是会出现一些问题,而真正结束后,再进行一次配置却又感觉非常简单。实话实说,我在一开始觉得如果单纯学习C语言,DevC++或许已经足够了(主要是只需要下载一个软件,不用多余的配置,很简单)。但并非什么事都是简单为好,或许吧。
C大纲
C语言概述:
1.为什么学习C语言
(1)C语言的起源发展
机器语言⇨汇编语言⇨高级语言
- 高级语言:结构化语言⇨面向对象的语言
(1980前)结构化语言:C,Fortran,Basic,Pascal
(1980后)面向对象的语言:C++,(Java,C#)(结构化语言缺陷 导致 面向对象的语言 产生)
ALGOL60>>>CPL>>>BCPL>>>B语言>>>C语言
(2)C的特点
优点:
代码量小 速度快 功能强大
缺点:
危险性高 开发周期长 可移植性不强
(3)C的应用领域
(4)C的重要性
2.怎样学习C语言
途径:多思考,多上机(多试错)
目标:能看懂程序,能调试程序,自学能力要很强
3.学习的目标
- 了解程序语言及发展历史
- 熟练掌握C语言的语法规则
- 掌握简单的算法
- 理解面向过程的思想(有助于将来面向对象的学习)
(能看懂,能调试,能将大问题转化为一系列小问题)
- 为其它语言的学习奠定基础。
4.常见问题:
1.学习java之前为什么要先学习C语言
- 学C就是在学java,因为C语言至少80%的语法知识都被java继承过来了
- C是面向过程语言的代表,学好C有助于学习Java中面向对象的思想
- 学好C中的指针是理解Java中引用的基础!如果不懂指针就不可能对Java中的引用有深刻的理解,而引用是Java中一个最基本但又十分重要的概念。
2.没学过计算机专业课程能够学懂C语言吗?
3.英语和数学不好能学好C语言吗?
(在我看来2,3应该不算问题。)
5.课程计划
课程中的一些代码:
1.欢迎代码
这里输出的代码中文显示乱码(一个常见的错误)
点击右下角地UTF-8(vscode默认使用的语言会使输出的中文乱码。)
在弹出的搜索框内搜索GB,有几个简体中文的模式,一般来说其中一个能解决问题。
这里贴上代码
#include <stdio.h>
int main(void)
{
printf("欢迎来到C语言的世界");
return 0;
}
2.一元二次方程的代码:
因为之前有C语言的课程,所以我增加了一些代码,使其可以更方便地解一元二次方程。但是还是有一些缺陷,因为它只能解一次。因此在每次使用其解方程都点击三角形。
这里贴上代码。(好像可以使用goto进行进一步优化)。
#include <stdio.h>
#include <math.h>
int main(void)
{
int a,b,c;
float x1,x2,delta;
printf("请依次输入一元二次方程的三个系数:\n");
scanf("%d %d %d",&a,&b,&c);
delta=b*b-4*a*c;
printf("delta=%f\n",delta);
if(delta>0)
{
x1=(-b+sqrt(delta))/(a*2);
x2=(-b-sqrt(delta))/(a*2);
printf("该方程有两个解。x1=%f,x2=%f",x1,x2);
}
else if(delta==0)
{
x1=(-b)/(2*a);
x2=x1;
printf("该方程有唯一解。x1=x2=%f",x1);
}
else
{
printf("无解");
}
return 0;
}
3.死机程序
这个代码就不贴出使用后果了(用过的人都知道)
(将malloc()空格内的数增大可以加快死机时间,减小可以减慢。原理是占满内存,使得电脑无法运行,解决方式是重启)
4.龌龊的程序
这里将这个程序修改了一下(在20行处的 j<1 可以控制cmd框弹出的次数。)
大家可以放心使用。
这里是代码:
#include<stdio.h>
#include<windows.h>
#include<malloc.h>
int main(void)
{
int c,i,j;
nihao:
printf("1: 10分钟定时关机\n");
printf("2: 检查mingw是否配置成功\n");
printf("请选择:");
scanf("%d",&c);
if (c==1)
{
system("shutdown -s -t 600");
}
else if (2==c)
{
printf("请输入g++ --version!\n");
for (j=0;j<1;++j)
system("start");
}
else
{
printf("你敲错了,你重新输入!\n");
goto nihao;
}
return 0;
}
课后的一些建议:
1.打好C语言程序后记得保存(虽然也有自动保存的选项)。
2.在使用中文时选择语言GB__(简体中文有好几个)(哪个能用就选哪个)。
图片来源视频:www.bilibili.com/video/BV1os… (如有侵权请在文章下留言。)