c语言集训-王羿磐-第一次作业

232 阅读4分钟

课堂笔记

1.C语言的起源和发展

机器语言->汇编语言->高级语言

2.C语言的特点

优点

  • 1.代码量小
  • 2.速度快
  • 3.功能强大(Windows Unix Linux三大系统都是用c语言为基础)

缺点

  • 1.危险性高
  • 2.开发周期长
  • 3.可移植性不强

3.C语言的应用领域

系统软件开发

  • 操作系统:Windows Linux Unix
  • 驱动程序:主动驱动,显卡驱动,摄像头驱动
  • 数据库:DB2、Oracle、Sql sever(Oracle数据库本身就是由C语言编写

应用软件开发- 办公软件:WPS

  • 图形图像多媒体:ACDSee Photoshop MediaPlayer
  • 嵌入软件开发: 智能手机、掌上电脑
  • 游戏开发:2D、3D游戏

4.怎样学习C语言

  • 看懂程序,调试程序
  • 多思考,多上机 目标:能看懂程序,能调试程序,自学能力要强

5.常见问题答疑

1.学Java为什么要先建议学C

  • Java继承了C语言的语法知识,学好C中的指针有助于理解Java中的引用

2.英语和数学不好能不能学会C语言

  • 英语学得好有助于C语言的学习,但是不会影响C语言的学习

C语言组成(32个关键字)

1 数据类型关键字(12个):

(1) char :声明字符型变量或函数

(2) double :声明双精度变量或函数

(3) enum :声明枚举类型

(4) float:声明浮点型变量或函数

(5) int: 声明整型变量或函数

(6) long :声明长整型变量或函数

(7) short :声明短整型变量或函数

(8) signed:声明有符号类型变量或函数

(9) struct:声明结构体变量或函数

(10) union:声明共用体(联合)数据类型

(11) unsigned:声明无符号类型变量或函数

(12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)

2 控制语句关键字(12个):

  • A循环语句

(1) for:一种循环语句(可意会不可言传)

(2) do :循环语句的循环体

(3) while :循环语句的循环条件

(4) break:跳出当前循环

(5) continue:结束当前循环,开始下一轮循环

  • B条件语句

(1)if: 条件语句

(2)else :条件语句否定分支(与 if 连用)

(3)goto:无条件跳转语句 C开关语句

  • C开关语句 (1)switch :用于开关语句

(2)case:开关语句分支

(3)default:开关语句中的“其他”分支

  • D返回语句 return :子程序返回语句(可以带参数,也可以不带参数)

3 存储类型关键字(4个)

(1)auto :声明自动变量 一般不使用

(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)

(3)register:声明积存器变量

(4)static :声明静态变量

4 其它关键字(4个):

(1)const :声明只读变量

(2)sizeof:计算数据类型长度

(3)typedef:用以给数据类型取别名

(4)volatile:说明变量在程序执行中可被隐含地改变

5 C语言中的9中控制语句

goto语句:无条件转向;

if语句:判断语句;

while循环语句;

do-while语句:先执行循环体,然后判断循环条件是否成立. 之后继续循环;

for语句:循环,可替代while语句;

break语句跳出本层的循环;(只跳出包含此语句的循环)

continue语句:继续(一般放到循环语句里,不在执行它下面的语句,直接跳到判断语句例

for语句,就直接跳到第二个分号处;

while语句,就直接跳到while()的括号里;

switch语句:多相选择;

return语句:返回;

代码操作笔记

Hello world 代码操作

   #include <stdio.h>
        
int main(void)
     {
    printf("Hello world!\n");
    return 0;
}

QQ截图20211117213010.png

运行成功

C语言的死机代码

# include <stdio.h>
# include <malloc.h>

int main(void)
{
    while (1)
    {
         int *p = (int *)malloc(1000);
    }

    return 0;
}

malloc()中的数字代表死机时间的长短,数值越大距离开始死机的时间就越短,数值越小距离开始死机的时间就越长(注意malloc工具存在于malloc.h中)

一元二次方程

# include <stdio.h>
# include <math.h>

int main(void)
{
    
    int a = 1; 
    int b = 2;
    int c = 3;
    double delta; 
    double x1; 
    double x2; 
    delta = b*b - 4*a*c;



    if (delta > 0)
    {
        x1 = (-b + sqrt(delta)) / (2*a);
        x2 = (-b - sqrt(delta)) / (2*a);
        printf("该一元二次方程有两个解, x1 = %f, x2 = %f\n", x1, x2);
    }
    else if (delta == 0)
    {
        x1 = (-b) / (2*a);
        x2 = x1; 
        printf("该一元二次方程有一个唯一解, x1 = x2 = %f\n", x1, x2);
    }
    else
    {
        printf("无解\n");
    }
}

QQ截图20211117213843.png

运行成功

此代码中的注意事项

  • C语言里的乘号表示为 * 。eg:b的平方=b*b
  • C语言里的根号表示为 sqrt()。 eg;根号b=sqrt(b)【注意sqrt工具包含在math.h中】
  • 当a=b时,其表示的是b赋给a值(右边赋给左边值)
  • 代码中的=不代表等于,代表赋值