C语言集训-黄锐辉-第二次作业

127 阅读4分钟

笔记

理论部分

整数

整形 -- int 短整型 -- short int (两个字节) 长整型 -- long int(八个字节)

浮点数(实数)

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

内存的不同 节省内存

字符

char

复合类型数据

结构体 枚举 共用体

变量

变量的本质就是内存中的一段存储空间,变量要初始化

进制

二进制 十进制 八进制 十六进制

冯诺依曼让计算机使用二进制

printf的用法

%d表示以十进制输出

%x或%X表示以十六进制输出

%o表示以八进制输出

冯诺依曼让计算机使用二进制

常量的表示
整数

十进制 十六进制 八进制

浮点数

传统的写法 float x = 3.2

科学计数法

float x =3.2e3 x=3200 e代表十的几次方

float x =123.45e-2 x=1.2345

字符

单个字符用单引号括起来

'a'正确 "a"正确

'ab'错误 "ab"正确

"a"正确因为此代表了'a' '\0'的组合

常量在计算机中的存储方式

整数是以补码的形式转化为二进制代码储存在计算机中的

实数是以IEEE754标准转化为二进制代码存储在计算机中的

字符的本质实际与整数的存储方式相同

代码规范化

可以让代码更易读懂 更不容易出错 要把代码写规范

写程序时可以把写程序的目的啥的都写上去,回来看的时候更有意义

字节

存储数据的单位,是硬件所能访问的最小单位

1k = 1024字节 1m = 1024k 1G = 1024m

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

(暂不考虑)

内存溢出 放不下

什么是ASCII码

%c 指把字符输出

ASCII不是一个值,而是一种规定,

ASCII规定了不同的字符是用哪个整数值去表示

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

C语言的一些实际运用

基本输入与输出函数的用法
printf

将变量的内容输出到显示器上

四种用法

  • printf ("字符串\n");

  • printf ("输出控制符",输出参数); \n表示换行

  • printf ("输出控制符1 输出控制符2.。。。。",输出参数1,输出参数2.。。。。); 输出控制符与输出参数需要一一对应

  • printf ("输出控制符 非输出控制符",输出参数);

  • 输出控制符包含%d %ld %f %lf %c %x (十六进制显示) (还有%X %#X (建议使用这个) %#x ) %o

    输出控制符初始化代码
    %ldlong int
    %cchar
    %dint
    %ffioat
    %lfdouble
    %xint 或 long int 或 short int
    %o同上
    %s字符串

输出控制符的意义

01组成的代码可以表示数据也可表示指令

如果01组成的代码是数据的话,那么同样的01代码组合以不同的输出格式输出就会有不同的输出结果

scanf

两种用法

  • scanf (“输入控制符”,输入参数)
  • 将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中
  • scanf (“非输入控制符 输入控制符”,输入参数)非输入控制符必须原样输入

作业

编程练习

上溢
#include <stdio.h>
int main(void)
{
    int i = 2147483647;
    printf("%d %d %d\n", i, i+1, i+2);
    return 0;
}

结果

image-20211121201250042.png

输入ASCII码并打印
# include <stdio.h>
int main (void)
{
    char ch = 'a';
    printf ("请输入一个ASCII的值\n");
    scanf ("%c",&ch);
    printf ("%d",ch);
    return 0;   
}

image-20211121203237212.png

姓和名反过来
#include <stdio.h>
int main (void)

{
    printf ("请输入你的姓和名\n");

    char first[40];

    char second[40];

    scanf ("%s %s",&first , &second);

    printf ("%s %s",second , first );

    return 0 ;
}
显示名字和身高
#include <stdio.h>

int main (void)
{
    float a = 0;

    char name;

    printf ("请输入你的身高以英尺为单位\n");
    
    scanf ("%lf",&a );

    printf ("输入你的名字\n");

    scanf ("%s",&name);
    
    printf ("%s,you are %lf feet tall",name,a);
   
    return 0 ;

   
}

image-20211121222557391.png

4.8第七题不会

思考题

3.10第四题
  1. '\b' char类型常量
  2. 1066 int型数据常量
  3. 99.44 float类型 单精度浮点数
  4. OXAA double类型 十六进制常量
  5. 2.0e30 双精度浮点类数据常量
3.10第六题
常量类型转换说明
0X3unsigned int%#X
'c'char%c
2.34e07double%e
'\040'char%c
7.0double%f
12int%d
3.10第八题

%d %ld

%f %c

名词翻译

中文英文中文英文
整数int变量char int float double
字符char初始化Initialization
浮点数float double十进制Decimal system
结构体Struct二进制Binary system
枚举enum十六进制He xadecimal
联合union打印printf