初学c语言

初学c语言

   这一周观经过了十几个小时的c语言的学习,来谈谈我对c语言的了解。
   **第一部分**——c语言程序编写软件
   Microsoft visual studio 2019        下载链接与安装 https://zhuanlan.zhihu.com/p/94998894
   
   **第二部分**——c语言的分布编译
   
   1、预处理:宏定义展开,头文件展开,条件编译,去掉注释
   2、编译:检查语法,将c语言转换成c汇编语言
   3、汇编:将汇编语言转换成机械语言(采用二进制码)【这一点是我我们学习c语言的重点】
   4、链接:将C语言依赖库链接到程序中
   


   **第三部分**——c程序设计
   
   1、了解什么是变量和常量
   常量:在程序运行过程中,其值不能变化的量称为常量。
   变量:变量代表一个有名字、具有特定属性的一个存储单元。它用来存放数据,也就是存放变量的值。在程序运行过程中它可以改变。

   2、数据的类型![在这里插入图片描述](https://img-blog.csdnimg.cn/20210424180212770.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzU3Mzk2NjA5,size_16,color_FFFFFF,t_70#pic_center)
   
   3、了解转义字符和最常用的算术运算符
   
   ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210424181043979.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzU3Mzk2NjA5,size_16,color_FFFFFF,t_70#pic_center)
   ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210424181104368.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzU3Mzk2NjA5,size_16,color_FFFFFF,t_70#pic_center)
   
   补充:include <stdio.h>

include 是导入一个文件
stdio.h 是一个标准库 i(input),o(output)是标准输入输出库 .h是头文件
< >表示导入系统文件 " "表示导入自定义文件

int main (){ }
int 是数据类型 整型 main程序的主函数 程序有且只有一个主函数
()里面表示函数的参数 里面可写void表示空
{ }:表示函数体 代码体 程序体

函数:如printf(“xxxx”,\n):
是stdio.h中系统提供的函数 表示在标准输出设备上打印字符串
\n是转义字符 表示换行

return 0
如果出现在其他函数中表示函数结束

   4,最简单的c程序设计编译与执行(了解了以上前提下)

例题1

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//一斤果3.25块钱,买3.2斤
int main(void)
{
float a = 3.25; //浮点型
float b = 3.2;
float c = a * b;
printf("%.2f\n", c); //保留2位小数
printf("嘎嘎嘎 "); //在屏幕上打出 嘎嘎嘎 ? %%(还有其它特殊转义字符)
return 0;
}

例题2

//求圆的面积与周长
#include <stdio.h>
int main(void)
{
const float pi = 3.141592;//const 表示常量
float r = 5;
float s = pi * r * r;
float c = 2 * pi * r;
printf(“圆的面积%.5f\n”, s);
printf(“圆的周长%.5f\n”, c);
return 0;
}

例题3

//输入一个十进制数,让它变为多少进制的
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int a, b;
printf(“请输入a,b的值:”);
scanf("%d,%d", &a, &b); //将键盘上输出a,b的值打在标椎设备上
printf(“a输出8进制值%o\n”, a);
printf(“a输出10进制值%d\n”, a);
printf(“a输出16进制值%X\n”, a);
printf(“b输出8进制值%o\n”, b);
printf(“b输出10进制值%d\n”, b);
printf(“b输出16进制值%x\n”, b);
return 0;
}

例题4(输出输入整型8,10,16进制数)

//输入不为十进制的书=数,让它变为其它进制
int main()
{
int a = 0123; //值为8进制类型
int b = 0x123; //值为16进制类型
printf(“a输出8进制值%o\n”, a);
printf(“a输出10进制值%d\n”, a);
printf(“a输出16进制值%X\n”, a);
printf(“b输出8进制值%o\n”, b);
printf(“b输出10进制值%d\n”, b);
printf(“b输出16进制值%x\n”, b);
return 0;
}

例题5

//整型类型(short ,int, long, long long的使用
#include <stdio.h>
int main(void)
{
short a = 10;
int b = 20;
long c = 30;
long long d = 40;
printf("%d\n", a);
printf("%d\n", b);
printf("%d\n", c);
printf("%d\n", d);
return 0;
}

例题6

//整型的大小和范围
int main()
{
short a;
int b;
long c;
long long d;
unsigned int len = sizeof(long long);//括号内可以为 short int long long long
printf(“短整型%d\n”, sizeof(a));
printf(“整型%d\n”, sizeof(b));
printf(“长整型%d\n”, sizeof©);
printf(“长长整型%d\n”, sizeof(d));
return 0;
}

例题7(字符型)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
char ch=‘a’; //字符型需要‘’,且‘’内只能放入一个字符,a为控制变量
printf(“请输入小写字母:”);
scanf("%c/n", &ch);
printf(“输出相应的大写字母为:%c\n”, ch-32); //ASCII值a=A+32,a从97开始,A从65开始
printf(“输出相应的控制字符ASCII值为:%d\n”, ch);
return 0;
}
//两个字符型相减用 %d

例题8(浮点型,内存地址编号)

/*类型:单精度float 表示为float a=3.14f;
双精度double 表示为double a=3.14
*/

#include <stdio.h>
int main(void)
{
int a = 10;
printf("%p\n", &a); //%p 表示输出一个变量对应内存地址编号(无符号十六进制整形数)
return 0;
}
//查看内存地址编号步骤:调试-窗口-内存-内存-看第一行前四个字节(内存大小端对齐)

例题9(2,4,8,16进制互换;数据的储存形式)

/*十进制转成二进制、八进制、十六进制(除二、八、十六反序取余法)
eg 变二进制
10——1010
解:除以 整除数 余数
2 10 0
2 5 1
2 2 0
1 1

eg变八进制
123——173
解:除以 整除数 余数
8 123 3
8 15 7
1 1

eg变十六进制
123——7b
解:除以 整除数 余数
16 123 11=b(十六进制)
16 7 7

**二进制、八进制、十六进制转成十进制(权值法)

eg二进制变十进制(将2进制从末尾开始每个数*2^n,n=0开始,最后相加)
1010——10
解:

        便捷方法总结——————
        由十六进制-------(8421法则)十进制----------二进制(四个数字一格)
        由八进制---------(8421法则)十进制----------二进制(三个数字一格)

        eg.十六进制转成二进制(四个数一格)
        73abc------0111 0011 1010 1011 1100
        解:7        =4+3  =100+11     =111              补全0111
            3                          =11               补全0011
            a  =10     =8+2  =1000+10    =1010              1010
            b  =11     =8+3  =1000+11    =1011              1011
            c  =12     =8+4  =1000+100   =1100              1100
                     ~~~~~(化成十进制)~~~~~~~       ~(化成十六进制)~



        eg.二进制转成八进制(尾向首排三个数字一格)
        10 001 010 101 010 101----------232525
        解:10------2
            001-----3
            010-----2
            101-----5
            010-----2
            101-----5    (十进制变化得到)

**数据的存储形式(二进制
字符型char 一个字节8位

整型 int 一个字节32位

在计算机系统中数值一律用补码来储存

整型正数 原码=反码=补码 码的第一个数为0,表示正数(符号位)
整型负数 原码首数不变,其它1-0转换=反码; 反码最后数+1=补码 码的第一个数为1,表示负数(符号位)

eg.十进制变二进制(原码,反码,补码,几进制值之间的转换)
char ch=10;(正数十进制) char ch=-10;(负数十进制)
原码:0000 1010 原码:1000 1010
反码:0000 1010 反码:1111 0101
补码:0000 1010 补码:1111 0110

****数据最大储值

  • signed int a=…
    -2^7 至 2^7-1 (字符型 char)
    -2^32 至 2^42-1 (整型 int)
    -2^64 至 2^64-1 (整型 long)

*/

最后温馨提示(编程得多实战才有收获,才知道自己那些细节做得不够好)
个人感觉在做题中学习才能学得更好
不喜勿喷!

原文链接:http://blog.qmgua.com/?id=48

=========================================

http://blog.qmgua.com/ 为 “布尔博客” 唯一官方服务平台,请勿相信其他任何渠道。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸运的涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值