C语言集训-王孖豪-第二次作业

218 阅读6分钟

课程笔记

CPU 内存条 硬盘 显卡 主板 显示器 之间的关系

CPU不能直接处理硬盘上的数据,需要调入到内存条中
CPU对内存条中数据进行处理
图像通过显卡在显示器上输出,声音数据通过声卡发出声音
主板提供平台 链接:www.bilibili.com/video/BV1os…

Hello World程序如何运行起来的

通过编译和链接生成后缀为“.exe”可执行文件
请求系统执行文件,系统通过CPU执行,在显示器上输出结果 链接:www.bilibili.com/video/BV1os…

什么是数据类型

基本数据类型

整数

整型 -- int -- 4
短整型 -- short int -- 2
长整型 -- long int -- 8

浮点数(实数)

单精度浮点数 -- float -- 4
双精度浮点数 -- double -- 8

字符

char -- 1

复合数据类型

结构体
枚举
共用体 链接:www.bilibili.com/video/BV1os…

什么是变量

变量的本质就是内存中的一段存储空间 链接:www.bilibili.com/video/BV1os…

CPU 内存条 VC++6.0 操作系统 之间的关系

程序由VC++软件编写
请求由VC++6.0编写的可执行文件本身发出 链接:www.bilibili.com/video/BV1os…

变量为什么必须要初始化

所谓的初始化就是赋值的意思
一个软件所分配到的空间中极可能存在着以前其他软件使用过后的残留数据,这些数据被称之为垃圾数据,所以通常情况下我们为一个变量,为一个数组,分配好存储空间之后都要对该内存空间初始化 链接:www.bilibili.com/video/BV1os…

如何定义变量

数据类型 变量名 = 要赋的值
等价于
数据类型 变量名
变量名 = 要赋的值
例如:int i = 3;等价于int i;i = 3; 链接:www.bilibili.com/video/BV1os…

什么是进制

进制

十进制是逢十进一
二进制是逢二进一
依次类推,N进制是逢N进一
C语言规定
八进制前面要加0(注意是零不是字母o)
十六进制前要加0x或0X
十进制前什么都不加!

不铜数制数的表示

在汇编中:在数字后加字母B表示二进制数,加字母O表示八进制数,加字母D表示十进制数,加字母H表示十六进制数
例如:
1011B表示二进制数1011
1357O表示八进制数1357
2049D表示十进制数2049
3FB9H表示十六进制数3FB9 链接:www.bilibili.com/video/BV1os…

常量在C语言中是如何表示的

整数

十进制 传统的写法
十六进制 前面加0x或0X
八进制 前面加0,注意是数字零

浮点数

传统的写法 float x = 3.2
科学计数法 float x = 3.2e3

字符

单个字符用单引号括起来
‘A’表示字符A
字符串用双引号括起来
“AB”正确
“A”正确,“A”代表了‘A’‘\0’的组合 链接:www.bilibili.com/video/BV1os…

常量以什么样的二进制代码存储在计算机中

整数是以补码的形式转化为二进制代码存储在计算机中
实数是以IEEE754标准转化为二进制代码存储在计算机中的
字符的本质实际也是与整数的存储方式相同 链接:www.bilibili.com/video/BV1os…

代码规范化

链接:www.bilibili.com/video/BV1os…

什么是字节

字节就是存储数据的单位,并且是硬件所能访问的最小单位
1字节 = 8位
1K = 1024字节
1M = 1024K
1G = 1024M 链接:www.bilibili.com/video/BV1os…

不同类型数据之间相互赋值的问题

链接:www.bilibili.com/video/BV1os…

什么是ASCII

ASCII不是一个值,而是一种规定
ASCII规定了不同的字符是使用哪个整数值去表示
它规定了
‘A’ -- 65
‘B’ -- 66 链接:www.bilibili.com/video/BV1os…

字符的存储(字符本质上与整数的存储方式相同)

链接:www.bilibili.com/video/BV1os…

基本的输入和输出函数的用法

printf()--将变量的内容输出到显示器上
四种用法
printf(“字符串”)
printf(“输出控制符”,输出参数)
printf(“输出控制符1 输出控制符2 ...”,输出参数1,输出参数2,...)
输出控制符和输出参数的个数必须一一对应
printf(“输出控制符 非输出控制符”,输出参数)
输出控制符包含如下
%d -- int
%1d -- long int
%c -- char
%f -- float
%1f -- double
%x
%o
%s
为什么需要输出控制符
1.01组成的代码可以表示数据也可以表示指令
2.如果01组成的代码表示的是数据的话,那么同样的01代码组合以不同的输出格式输出就会有不同的输出结果

scanf()通过键盘将数据输入到变量中
两种用法
用法一:scanf(“输入控制符”,输入参数)
功能:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中
用法二:scanf(“非输入控制符 输入控制符”,输入参数)
功能:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中
非输入控制符必须原样输入
如何使用scanf编写出高质量代码
1.使用scanf之前最好先使用printf提示用户以什么样的方式来输入
2.scanf中尽量不要使用非输入控制符,尤其是不要用\n
3.应该编写代码对用户的非法输入做适当的处理

名词翻译

中文英文中文英文
整数integer变量variable
字符character初始化initialition
浮点数float十进制decimal system
结构体structure二进制binary system
枚举enum十六进制hexadecimal
联合union打印printf

课后习题

3.10习题

第四题

‘\b’,单引号表示字符类型
1066,一个整型数据常量
99.44,一个浮点型数据常量
0XAA,一个十六进制整型数据常量
2.0e30,一个浮点型数据常量

第六题

常量类型转换说明(%转换字符)
12int%d
0X3unsingned%X
‘C’char%c
2.34E07double%e
‘\040’char%c
7.0double%f

第八题

int imate = 2;
long short = 53456;
char grade = 'A';
float log = 2.71828;
printf("The odds against the %d were %ld to 1.\n",imagte, short);
printf("A score of %f is not an %c grade.\n",log, grade);

3.11习题

第一题

image.png

第二题

int main(void)
{
    int i;
    printf("please enter a char.\n");
    scanf("%d",&i);
    printf("you input value is %d and char is %c\n",i,i);
    return 0;
}

image.png

4.8习题

第一题

int main(void)
{
    char i,j;
    printf("please input your first name\n");
    scanf("%s",&i);
    printf("please input your last name\n");
    scanf("%s",&j);
    printf("your name is %s %s",i,j);
    return 0;
}

image.png

第四题

int main(void)
{
    float i;
    char j;

    printf("please input your height\n");
    scanf("%f",&i);
    printf("please input your name\n");
    scanf("%s",&j);
    printf("%s,your are %.3f feet tall.",j,i/12.0);
    return 0;
}

image.png

第七题

#include<float.h>
int main(void)
{
    double a = 1.0/3.0;
    float b = 1.0/3.0;
    printf("%.6f %.6f\n",a,b);
    printf("%.12f %.12f\n",a,b);
    printf("%.16f %.16f\n",a,b);
    printf("%d %d",FLT_DIG,DBL_DIG);
    return 0;
}

image.png