C语言集训-温宇骏-第二次作业

247 阅读4分钟

C语言集训-温宇骏-第二次作业

1.课堂笔记

1.数据类型

基本数据类型

  • 整型—— int(整数)
  • 短整型—— short int
  • 长整型——long int
  • 单精度浮点数——float(实数)
  • 双精度浮点数——double
  • 字符——char
#include <stdio.h>
int main (void)
{
    int i=3;
    printf("i=%d\n",i);
    return 0;
}

image-20211121155036047

image.png

复合类型数据

  • 结构体
  • 枚举
  • 共用体

2.变量为什么要初始化

向操作系统申请储存空间,内存空间不分配给其他软件,运行完毕,操作系统回收该内存空间。

变量初始化防止垃圾数据占用

3.进制

进制就是逢几进一

八进制前面加0,十六进制前面加0x或0X,十进制前三名都不加!

  • 十进制(0-9) %d表示十进制输出
  • 二进制(0-1)
  • 八进制(0-7) %0表示八进制输出
  • 十六进制(0-F) %x或%X表示十六进制输出

浮点数中e表示10

例如:float x=3.2e3 表示x=32000

单个字符用'A'单引号表示,字符串用“AB”双引号表示

char 中变量ch不能重复定义,否则会报错

4.字节

1字节=8位

1K=1024字节

1M=1024K

1G=1024M

5. ASCII

1.ASCII规矩不同字符使用哪个整数表示

  • 'A'——65
  • ’B'——66
  • ‘a’——97
  • ‘b'——98
  • ’0‘——48
#include <stdio.h>
int main (void)
{
    char ch='b';
    printf("%d\n",ch);
    return 0;
}

image-20211121164110851

image.png

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

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

1.printf的用法

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

四种用法

  1. printf(“字符串”);
  1. printf(“输出控制符”,输出参数);

  2. printf(“输出控制符1 输出控制符2.....”,输出参数1 输出参数2...);

    输出控制符和输出参数必须一一对应

#include <stdio.h>
int main(void)
{
   int j=3;
   int k=5;
   printf("%d %d\n",j,k);
   return 0;
}

image-20211121165730526

image.png

注意,输出参数之间必须用,隔开 不然会乱码

  1. printf(“输出控制符 非输出控制符”,输出参数);

    输出控制符 一般%开头

2.scanf的用法

  1. scanf(“输入控制符”,输入参数); &i表示i的地址 &是一个取地址符
#include <stdio.h>
int main(void)
{
   int i;
   scanf("%d",&i);
   printf("i=%d\n",i);
   return 0;
}

image-20211121173541410

image.png 2. scanf(“非输入控制符 输入控制符”,输入参数);

非输入控制符必须原样输入

给多个变量键盘赋值
#include <stdio.h>
int main(void)
{
   int i,j;
   scanf("%d %d",&i,&j);
   printf("i=%d,j=%d\n",i,j);
   return 0;
}
​

image-20211121174308783

image.png

非控制输入符必须原样输入 否则输出结果错误 如图

image-20211121174450562

image.png

如何使用scanf写出高质量代码
  1. 使用scanf之前用printf提醒用户用什么方式输入
  2. scanf中尽量不要用非输入控制符,尤其是不要使用\n

清除前面的垃圾数据

while ((ch=getchar()) !='\n')

continue;

#include <stdio.h>
int main(void)
{
   int i;
   char ch;
   scanf("%d",&i);
   printf("i=%d\n",i);
   while ((ch=getchar()) !='\n')
   continue;
   int j;
   scanf("%d",&j);
   printf("j=%d\n",j);
   return 0;
​
}

image-20211121175448609

image.png Ubuntu Pastebin

课后习题

3.10

T4.

  • 单字符 \b
  • 整型 1066
  • 浮点数 99.44
  • 十六进制数 176
  • e型浮点数 20000000000000000000000000000000000 T6.
  • 12 整数 %d
  • 0X3 十六进制数 %a
  • 'c' 单字符 %c
  • 2.34E07 浮点数e计数法 %e
  • '\040' 单字符 %c
  • 7.0 浮点数十进制计数法 %f T8.
  • %d
  • %ld
  • %f
  • %c

3.11

T1.

  • 整数上溢 0
  • 浮点数上溢 无穷大
  • 浮点数下溢 低于正常值 T2.
#include <stdio.h>
int main(void)
{
  int i;
  scanf("%d",&i);
  printf("i=%d\n",i);
  return 0;
}

4.8的练习真想不出来,难度有点高了,视频还没讲到怎么输入输出除数字外的数据。

QQ图片20211121211700.jpg