C语言集训-王丽宁-第二次作业

385 阅读5分钟

Ubuntu pastebin

paste.ubuntu.com/p/fVgF72VtZ…

在Ubuntu pastebin上分享的一元二次方程的程序,截图如下。

QQ截图20211117193140.png

C语言编程预备知识

1.CPU 内存条 硬盘 显卡 主板 显示器 之间的关系
2.HelloWord 程序如何运行起来
3.什么是数据类型
4.什么是变量
5.变量为什么必须初始化
6.如何定义变量
7.什么是进制(以及进制之间的转化)
8.常量在C语言中的表示
9.代码规范化
10.字节
11.不同类型数据之间相互赋值*
12.ASCII码

HelloWorld运行

printf中的内容相当于文本,但是只有文本是不能被运行的,所以在写完程序后,会形成一个可以被运行的.exe的文件,在生成该文件以后,会请求系统调运CPU执行.exe文件。此外所有的程序都靠CPU运行。在讲解过程中,老师靠以下程序进行讲解。

QQ截图20211121184024.png

什么是数据类型

我制作了思维导图来说明(为证名不存在搬用网上截图,我附上了制作图)

IMG_0045.PNG

IMG_0046.PNG

变量

变量本质:是内存中的一段存储空间
利用变量的好处:方便存储数据。
变量初始化=变量被赋值。!!在不赋值的状态下输出的变量的结果都是垃圾值。(垃圾值:根据处理器不同输出的数值也不同,但一般都是固定的值,系统会填充以-8开始6结束的数值)\

如何定义变量

数据类型(空格)变量名=赋值
等价于
数据类型(空格) 变量名
变量名=赋值

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

进制

二进制就是逢二进一。
八进制就是逢八进一。
十进制就是逢十进一。
十六进制就是逢十六进一。

各进制之间的相互转化

为表达清楚我以图片方式展示出来。(D:十进制,B:二进制,H:十六进制(下图中十六进制的下脚表写成了x),O:八进制)

IMG_0047.PNG

IMG_0048.PNG

在printf中书写进制的符号:%d:十进制,%o:八进制,%x:十六进制(最好写成%#x或%#X)

常量在C语言中的表示方法

整数 %d:十进制,%o:八进制,%x:十六进制(最好写成%#x或%#X) 浮点数

  1. 传统写法:float=3.2
    2.科学技术法:float=3.2e2
    字符 单个字符用引号
    eg:
    'A'正确
    'AB'错误
    "A"正确
    字符串用双引号
    “A”正确

整数在计算机中的存储方法

整数是以补码的形式转化为二进制代码存储到计算机中
实数是以IEEEE754标准转化为二进制代码存储到计算机中
字符与整数相同

代码的规范性

目的: 代码的可操作性更强。
使程序不容易出错
注意事项:符号之类要成对写。
属于内容的代码要缩进。
定义变量与操作与返回数值之间要有空行。

字节

1字节=8位
1k=1024字节
1M=1024l
1G=1024M\

在购买电脑时商家所说的内存是以1M=1000K计算的

不同类型直接的赋值关系(想学精C语言必须掌握的)

int,long int,short int,float,double,char之间的转化遵循一定的规则。

什么是ASCII码

QQ截图20211121194928.png

老师通过这个程序来讲解ASCII 码的作用和用法

QQ截图20211121195413.png

并通过改动以上程序让我们知道了变量只能被定义一次,但是可以被多次赋值。 以下内容记住 ASCII不是一个值,而是一种规定。
ASCII规定了不同的字符使用哪个整数值去表示。
它规定了
‘A’--65
‘B’--66
‘a’--97
'b'--98
'0'--48

输出函数的用法

printf 的四种用法

  1. printf ("字符串");\
  2. printf ("输出控制符",输出参数);\
  3. printf ("输出控制符1,输出控制符2,……",输出参数1,输出参数2,……);\
  4. printf ("非输出控制符,输出控制符",输出参数);\

输出函数包括 %d,%ld,%c
%f,%lf,%x printf中X的用法(用程序来说明)

QQ截图20211121200846.png

输入函数的用法

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

具体功能见程序

qq_pic_merged_1637496986434.jpg

如果不加图中红线函数,如果客户在使用过程中加入了垃圾数值,那么将导致输出结果异常。

qq_pic_merged_1637497001878.jpg

红线部分就是非输出控制符

课后习题

3.10-4

a.类型:字符,含义:表示退格
b.类型:整形,无含义
c.类型:浮点型,无含义
d.类型:整形(十六进制),含义:表示十进制的170
e.类型:浮点型,含义:表示十进制的2*10^30\

3.10-6
整形 %d
整形%x
字符%c
浮点型%lf
字符串%s
浮点型%f
整形%ld
浮点型%f
3.10-8
%d,%d
%f,%c
3.11-1\

整数溢出

#include <stdio.h>
int main(void)
{
int i=2147483647;

printf ("%d %d %d",i,i+1,i+2);

return 0;
}

QQ截图20211121213207.png

浮点数上溢

#include <stdio.h>
int main(void)
{
float  i=3.4e38;

printf ("%f %f ",i,i+1);

return 0;
}

QQ截图20211121213406.png

浮点数下溢

#include <stdio.h>
int main(void)
{
float  i=3.2e-38;

printf ("%f %f ",i,i-1);

return 0;
}

QQ截图20211121213608.png 3.11-2

#include <stdio.h>
int main(void)
{
int  i;
scanf ("%d",&i);
printf ("%c ",i);

return 0;
}

QQ截图20211121213922.png 4.8-1

#include <stdio.h>
int main(void)
{
    char ming ;
    char xing ;
    printf ("请输入你的名字");
    scanf ("%s%s",&ming,&xing);
    printf ("%s,%s\n",ming,xing);
    return 0;
}

QQ截图20211121215005.png 4.8-4

#include <stdio.h>
int main(void)
{
    char XINGMING ;
    int h;
    printf ("请输入您的姓名");
    scanf ("%s",&XINGMING);
    printf ("请输入你的身高(以英尺为单位)");
    scanf ("%d",&h);
    printf ("%s,you are %d feet tall",XINGMING,h);
    return 0;
}

QQ截图20211121214850.png 4.8-7

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

QQ截图20211121214809.png