C语言集训-李珍-第二次作业

201 阅读5分钟

课堂笔记

软件的使用

  • 保存的快捷方式:ctrl+s
  • 编写代码要规范,注意空格
  • close workspace才能彻底关闭程序,close则不行
  • 保存最重要的一个文件提供以后使用

C语言编程预备知识

  1. cpu内存条硬盘显卡主板显示器之间的关系
  2. He11oWor1d程序如何运行起来的
  3. 什么是数据类型
  4. 什么是变量
  5. cpu内存条vc++6.0操作系统之间的关系
  6. 变量为什么必须的初始化
  7. 如何定义变量
  8. 什么是进制
  9. 常量在C语言中如何表示
  10. 常量以什么样的二进制代码存储在计算机中
  11. 代码规范化
  12. 什么是字节
  13. 不同类型之间相互赋值的问题
  14. 什么是ASCII

重点内容

软件运行与内存关系

  1. 软件在运行前需要向操作系统申请存储空间,在内存空闲空间足够时,操作系统将分配一段内存空间并将外存中软件拷贝一价存入该内存空间中,并启动该软件的运行
  2. 在软件运行期间,该软件所占内存空间不再分配给其他软件
  3. 当软件运行完毕后,操作系统将回收该内存空间(注意操作系统并不清空该内存空间中遗留下来的数据),以便再次分配给其他软件用 综上所述,一个软件所分配到的空间中极可能存在着以前其他软件使用过后的残留数据,这些数据被称之为垃圾数据。所以通常情况下我们为一个变量,为一个数组,分配好存储空间之后都要对该内存空间初始化!

基本类型数据

整数

  • 整型 -- int -- 4
  • 短整型 --short int --2
  • 长整型 --loong int --8

浮点数

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

字符

  • char

复合类型数据

  • 结构体

  • 枚举

  • 共用体

进制转化

1.进制

  进制就是逢几进一,我们说N进制实际就是指逢N进一,我们计算机只识别二进制,人类最习惯使用的是十进制,为了实际需要我们又建立了八进制和十六进制     C语言规定八进制前要加0(注意是零不是字母0),十六进制前要加0x或0X,十进制前什么都不加!

2.不同制数表示

在汇编中:在数字后加字母B表示二进制数,加字母O表示八进制数,加字母D表示十进制数,加字母H表示十六进制数。

  • 1011B为二进制数1011,也记为(1011)2
  • 13570为八进制数1357,也记为(1357)8
  • 2049D为十进制数2049,也记为(2049)10
  • 3FB9H为十六进制数3FB9,也记为(3FB9)16   

3.什么叫n进制

1.十进制

  • 十个基数,逢一进十
  • 基数:0 1 2 3 4 5 6 7 8 9

2.二进制

  • 两个基数,逢二进一
  • 基数:0 1

3.八进制

  • 八个基数
  • 基数:0 1 2 3 4 5 6 7
  • 8->10

printf()

1.四种用法

1.printf("字符串")
2.printf("输出控制符”,输出参数)
3.printf("输出控制符1输出控制符2...",输出参数1,输出参数2,...)
输出控制符和输出参数的个数必须一一对应
4.printf("输出控制符非输出控制符",输出参数);

2.输出控制符包含如下

  d   int
%1d   long int
%c   char
%f   float
%1f   double
%x(或者%X后者%#X)   int或long int或short int
%o   同上
%s

3.字符串

为什么需要输出控制符

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

scanf()

1.用法及功能

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

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

  • 使用scanf之前最好先使用printf提示用户以什么样的方式来输入
  • scanf中尽量不要使用非输入控制符,尤其是不要用n3.应该编写代码对用户的非法输入做适当的处理

课堂程序

1.
#include <cstdio>
int main(void)
{
    int i = 10;
    printf("%d\n",i);
    return 0;
}

QQ截图20211121165712.png

2.
# include <stdio.h>
int main(void)
{
    int i, j, k;
    scanf("%d %d %d", &i, &j, &k);
    printf("i=%d, j=%d, k=%d", i, j, k);
    return 0;
 }

QQ截图20211121170651.png

课后作业

使用Ubuntu Pastebin

QQ截图20211119135431.png paste.ubuntu.com/p/M2b2zq69r…

书本作业

3.10

第四题:
a.'\b' 转义字符,表示退格
b.1066 整型
c.99.44 浮点型
d.0XAA 整型(十六进制) 表示十进制的170
e.2.0e30 浮点型

第六题:

常量类型
12int
类型
%d
0x3int
'c'char
%d
%c
2.34E07double
'\040'char
%lf
%c
7.0float
%f

第三题:
d ld c f

3.11

第一题:
1.整数上溢

include <stdio.h>
int main()
{
    int a =2147483647;
    printf("%d %d %d", a, a+1, a+2);
    return 0;
}

QQ截图20211121173621.png 2.浮点数上溢

include <stdio.h>
int main()
{
    float toobig = 3.4E38 * 100.0f;
    printf("%f",toobig );
    return 0;
 }

QQ截图20211121174341.png 3.浮点数下溢

include <stdio.h>
int main()
{
    float toosmall = 0.01234E-10;
    printf("%f",toosmall);
    return 0;
}

QQ截图20211121174559.png 第二题:

include <stdio.h>
int main(void)
{
    int ch;
    scanf("%d", &ch);
    printf("%c\n", ch);
    return 0;
}

QQ截图20211121172905.png

4.8

第一题:

include <stdio.h>
int main(void)
{
    printf("请分别输入您的名和姓,并用逗号隔开\n");
    char last_name[10];
    char fast_name[10];
    scanf("%s", &last_name);
    getchar();
    scanf("%s",  &fast_name);
    printf("%s, %s" ,last_name[10], fast_name[10]);
    return 0;

第四题:

    #include<stdio.h>
  int main(void)
  {
  float height;
  char name[20];
  printf"Please input your height by inches:");
  scanf"%f",&height);
  printf"Please input your name:");
  scanf"%s",name);
  printf"%s,you are %.3f feet tall\n",name,height/12);
  return 0;
  }

第七题:

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

QQ截图20211121200433.png