c语言集训——王羿磐——第二次作业

220 阅读5分钟

课程笔记

c语言编程预备知识

cup把内存条硬盘显卡主板。显示器之间的关系把硬盘数据调入内存里,cup处理完内存后的数据传送到显示器

"hello world"程序怎么运行的

先打出基本程序再通过编译器和链接器( .exe)的可执行文件,最后操作系统调用cup执行该文件后在显示在显示屏上 ps:编程软件不能直接执行( .exe)文件

什么是数据类型

基本类型数据

1.整数

  • 整形———— int ——4
  • 短整型———— short int——2
  • 长整型———— long int——8

2.浮点数

  • 单精度浮点数 ———— float——4
  • 双精度浮点数 ———— double——8

3.字符

  • char————1

复合类型数据

  • 结构体
  • 枚举
  • 共用体

什么是变量

变量的本质就是内存中的一段储存空间

变量为什么必须要初始化

所谓初始化就是赋值的意思

如果不初始化就无实际意义,会自动填充出一个垃圾数

不初始化的后果.png 其中0就为垃圾数

如何定义变量

数据类型变量名=要赋的值 数据类型 变量名 变量名=要赋的值 int i = 3;等价于int i; i = 3;int i,j; 等价于int i; int j; int i, j = 3;等价于int i;int j; j = 3; int i = 3,j = 5;等价于int i; int j;i=3; j = 5;int i,j; i = j = 5;等价于int i,j; i =5; j = 5;

什么是进制

进制就是逢几进一

c语言规定8进制前要加0(不是字母o),16进制前要加0x或0X,十进制前什么都不加

在汇编中:在数字后加字母B表示二进制数,加O(字母O)表示8进制数,加字母D表示10进制数,加字母H表示16进制数

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

整数

  • 十进制: 传统的写法
  • 十六进制:前面加0x 或0X
  • 八进制: 前面加0 (不是字母o)

浮点数

传统的写法

float x = 3.2

科学计数法

float x = 3.2e3; //x的值是3200 float x = 123.45e-2; //x的值是1.2345
ps:e表示10,后面的数表示次方数

9.png

字符

单个字符用单引号括起来

‘A’ 表示字符A

字符串用双引号(“ ”)括起来

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

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

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

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

代码规范化

(可参考《高质量c/c++编程》)——林锐

  • 成对敲 eg:不能先敲“(”再写代码,最后敲“)”
  • 缩进:地位相等不缩进,地位不相等要缩进

一般代码

#include< >

int main( )

{
定义变量
操作变量
输出值
return 0;

}

什么是字节2

字节就是存储数据的单位,并且是硬件所能访问的最小单位
1字节=8位
1k = 1024字节
1m = 1024k
1G = 1024m

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

可参考《c语言程序设计五版》p54———谭浩强

什么是ASCII

ASCII不是一个值而是一种规定
ASCII规定了不同字符是用那个数字去表示

基本的输入和输出函数

printf() ——将变量的内容输出到显示器上

四种用法:

  • printf(“字符串\n”);
  • printf(“输出控制符\n”,输出参数);
  • printf(“输出控制符1 输出控制符2。。。”,输出参数1,输出参数2。。。);输出控制符和输出参数必须一一对应。
  • printf(“输出控制符 非输出控制符”,输出参数);

输出控制符包含如下:

  • %d -- int
  • %ld -- long int
  • %c -- char
  • %f -- float
  • %lf -- double
  • %x(或者%X或者%#X) -- int / long int / short int(输出16进制)
  • %o-- int / long int / short int(输出8进制)
  • %s -- 字符串

为什么需要输出控制符

  • 01组成的代码可以表示数据也可以表示指令
  • 如果01组成的代码表示数据的话,那么同样的01代码组合以不同的格式输出就会有不同的输出结果

scanf() -- 通过键盘将数据输入到变量中

两种用法:

  • 用法一: scanf(“输入控制符”,输入参数);

    功能:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中
    
  • 用法二 : scanf(“非输入控制符 输入控制符”,输入参数);

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

如何使用scanf编写出高质量代码

  • 使用scanf之前最好先使用printf提示用户以什么样的方式来输入期望内容

scanf的运行.png

  • scanf中尽量不要使用非输入控制符,尤其是不要用\n(eg:scanf(“%d”,&i)不要写成scanf(“%d\n”,&i))
  • 应该编写代码对用户的非法输入做适当的处理

名词翻译

中文英文中文英文
整数integer变量variable
字符character初始化initialize
浮点数float十进制decimalism结构体structural二进制binary system
枚举enumeration十六进制hexadecimal
联合unite打印print

课后作业

3.10

第四题

常量类型或者含义
'\b'char
1066int 10进制的1066
99.44浮点型函数
0XAA16进制数
2.0e30double

第六题

常量类型转换说明
12int%d
0X3unsigned int%#X
'c'char%c
2.34E07double%e
'\040'char%c
7.0double%f

第八题

printf(“The odds against the %d were %ld to 1.\n”,imate,shot);
printf ("A score of %f is not an %c grade.\n",log,grade);

3.11

第一题

  • 整数上溢

整数上溢.png

  • 浮点数上溢

整数上溢.png

  • 浮点数下溢

浮点数下溢2.png

4.8

第一题

第一题.png

第二题

4.4.png

第7题

4.82.png

pastebin代码分享

[](Ubuntu Pastebin)