C语言第一次培训

目录

一.Dev-C++软件与Typora下载安装:

二.新手注意事项:

三.Hello World 代码讲解

四.printf函数讲解

五.在C语言中变量的讲解

六:非负整数进制的转换:

1.十进制转二进制:

1.1除2取余法:

1.2权值拼凑法:

2.二进制转十六进制:

2.1四合一法:

3.十进制转十六进制:

3.1除16取余法:

4.十六进制转十进制:

4.1权值拼凑法:


一.Dev-C++软件与Typora下载安装:

开发C++下载 |SourceForge.net

img

Typora软件的下载安装看我发的链接

提取码:typo

Typora下载

二.新手注意事项:

1.在编写代码时,注意一定要在英文输入法下;

2.如何将语言设置为中文:

Tolls --> Enviroment Options --> Languages

3.常见快捷键的使用:

Ctrl + Home键跳转到当前文本的开头处
Ctrl + End键跳转到当前文本的末尾处
Ctrl + 鼠标滚轮改变字体大小
Ctrl + /用 // 注释掉光标当前所在行,再次按下则会取消注释。
/* */注释在/* */之间的所有内容
Ctrl + N新建文本
Ctrl + S保存文本
Ctrl + W关闭文本
F9编译
F10运行
F11编译并运行

注:在工具->快捷键选项(Tolls->Configure Tolls Options);中可查看所有快捷键

4.代码个性设置:

工具 --> 编辑器选项 --> 显示or语法

5.编写代码时一定要注意代码书写规范:

(1)、一个代码解释或一个语句占一行

(2)、函数体内的语句要有明显缩进通常以按一下Tab键为一个缩进

(3)、括号,花括号,要成对写,如果需要删除的话也要成对删除

(4)、每个语句写完后都需要加分号

三.Hello World 代码讲解

 #include <stdio.h>//包含头文件,注意系统自带的用<>,用户自己写的用""
 /*用户自定义部分*/
 int main()//定义主函数
 {
     printf("Hello World!\n");//打印输出Hello World!
     return 0;//返回函数值为0,相当于结束标志
 }

在编写C语言代码时,我们一般将代码分为3个部分:

1.头文件部分(包含我们需要的函数)

2.用户自定义部分(包含用户自己定义的变量和编写的函数)

3.主函数部分(执行用户编写的代码)

四.printf函数讲解

1.printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。

printf函数分为两个部分 printf("用户需要打印的部分",需要打印部分中的变量,若没有则直接打印" "中的内容)

2.用法:

printf("XXX占位1 XXX 占位2 XXX占位3", 替换1, 替换2, 替换3);

 /*无格式化输出*/
 printf("Hello World!\n");//第一种情况
 printf("C语言第1次培训\n");
 /*格式化输出*/
 int x = 100,a = 1;
 printf("x = %d\n", x);//第二种情况
 printf("%d\n", 10-8);//还可以用来计算
 printf("%d\n", 10*8);
 printf("C语言第%d次培训\n",a);
 ​
 /*
 代码输出:
 Hello World!
 C语言第1次培训
 x = 100
 2
 80
 C语言第1次培训
 ​
 */
 ​

格式化的意思通俗来讲就是有没有变量

仔细看会发现每行printf函数中都写了\n

这是转义字符,而\n是我们最常用的转义字符”换行符“,如果没有换行符\n,那么所有代码都会在第一行输出。

以下还有我们常见的转义字符:

img

五.在C语言中变量的讲解

C语言数据类型

1.目前我们先了解最简单的int类型

关于一个变量有三个部分:

int类型

变量是程序的基本组成单位,变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,从而通过变量名可以访问到变量(值)

变量应该有名字,并在内存中占据一定的存储单元;变量名和变量值有不同的含义;变量名实为一个符号地址

 /*代码讲解*/
 int a = 3,b;//定义(初始化)了a并给a赋值,定义了b未给b赋值,默认b的值为1;
 printf("a = %d\n", a);
 printf("b = %d\n", b);
 b = 5;//使用b,把5赋值给b
 printf("b = %d\n", b);
 ​
 /*
 代码输出:
 a = 3
 b = 1
 b = 5
 ​
 */
 ​

同理我们可以得到其他类型的使用方法:

类型作用格式化输出
int输出整型%d
unsigned int输出无符号整型%u
long int输出长整型%ld
int以八进制数形式输出整数%o
int以十六进制数形式输出整数,或输出字符串的地址%x
char输出字符型%c
char用来输出一个字符串%s
float用来输出实数,以小数形式输出,默认情况下保留小数点6位 (有效位数6位)%f
float用来输出实数,保留小数点5位%.5f
float以指数形式输出实数%e
double用来输出实数,以小数形式输出,默认情况下保留小数点6位 (有效位数15位)%lf
float/double根据大小自动选f格式或e格式,且不输出无意义的零%g

注意:%d与%u的区别是,有无符号的数值范围不同,也就是极限的值不同,不然数值打印出来会有误。

img

img

注意:char(字符型)默认为unsigned char(无符号字符型)。

img

 /*代码示例*/
 float c = 3.14;
 double d = 3.1415926;
 char e = 'e';//单个字符用单引号
 /*超纲部分*/
 char f[100] = "Sunset";//字符串用双引号
 printf("c = %f\n", c);
 printf("d = %lf\n", d);
 printf("d = %.7lf\n", d);
 printf("e = %c\n", e);
 printf("f = %s\n", f);
 /*
 代码输出:
 c = 3.140000
 d = 3.141593
 d = 3.1415926
 e = e
 f = Sunset
 ​
 */

2.关于格式化输出的一些用法:

 #include <stdio.h>
 ​
 int main()
 {
     int a = 123, b = 123456;
     printf("%5d\n", a);     // 默认右对齐,且最少取5位整数,多余5位全取,不足5位使用空格左面补全
     printf("%05d\n", a);    // 使用0代替空格,在左边补齐位数(注意只能用0代替)
     printf("%-5d\n", a);    // 左对齐,不足位数,使用空格补全
     printf("%-05d\n", a);   // 左对齐,不足位数,还是用空格补全
     printf("%5d\n", b);     // 超过5位全取
     return 0;
 }
 /*
 代码输出:
   123
 00123
 123
 123
 123456
 ​
 */
 ​

3.最后,在C语言变量的使用中我们还需要注意变量名的命名规则

1、见名知意;

例如:

 int value;

2、简洁,美观;

3、当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写;

例如:

 int CurrentVal;

4、尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要编号;

5、变量名可以由字母,数字,和下划线组成,但不能以数字开头;

6、所有宏定义、枚举常数、只读变量全用大写字母命名,用下划线分割单词。

例如:

 #include "stdio.h"
 const int MAX_LENGTH = 100; //这不是常量,而是一个只读变量,不可修改
 //1.不带参数的宏定义(常量):
 #define MAXNUM 1000         //宏定义,相当于宏代换,注意没有分号; 格式:#define 标识符 常量值
 #define PI 3.1415926
 /*
 作用:把程序中出现的MAXNUM替换为1000
 说明:
 (1)宏名一般用大写
 (2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义
 (3)预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。
 (4)宏定义末尾不加分号;
 (5)宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头。
 (6)可以用#undef命令终止宏定义的作用域
 (7)宏定义可以嵌套
 (8)字符串" "中永远不包含宏
 (9)宏定义不分配内存,变量定义分配内存。
 */
 ​
 //2.带参数的宏定义:
 #define S(m,n) (m*n)            //格式:#define 宏名(参数表) 字符串
 #define L(m,n) (m+n)
 /*
 作用:把程序中出现的S(m,n)替换为m*n
 说明:
  类似于函数调用,有一个哑实结合的过程:
 (1)实参如果是表达式容易出问题
             #define S(r) r*r
             area=S(a+b);第一步换为area=r*r;,第二步被换为area=a+b*a+b;
             正确的宏定义是#define S(r) (r)*(r)
 (2)宏名和参数的括号间不能有空格
 (3)宏替换只作替换,不做计算,不做表达式求解
 (4)函数调用在编译后程序运行时进行,并且分配内存。宏替换在编译前进行,不分配内存
 (5)宏的哑实结合不存在类型,也没有类型转换。
 (6)函数只有一个返回值,利用宏则可以设法得到多个值
 (7)宏展开使源程序变长,函数调用不会
 (8)宏展开不占运行时间,只占编译时间,函数调用占运行时间(分配内存、保留现场、值传递、返回值)
 */
 int main()
 {
     int area=S(3,2);//area=S(3,2)被换为area=3*2;
     int length = L(6,4);
     printf("%d\n", MAX_LENGTH);
     printf("%d\n", MAXNUM);
     printf("%f\n", PI);
     printf("area = %d\n", S(3,2));
     printf("length = %d\n", L(6,4));
     return 0;
 }
 ​
 /*
 代码输出:
 100
 1000
 3.141593
 area = 6
 length = 10
 ​
 */
 ​

六:非负整数进制的转换:

十进制:decimalism

二进制:binary

十六进制:hexadecimal

1.十进制转二进制:
1.1除2取余法:

10/2

1.2权值拼凑法:

如果十进制数属于(0~255),用8位(D7

0~255

如果如果十进制数属于(0~65535),用16位(D15

0~65535

同理,二进制转十进制就用权值拼凑法;

2.二进制转十六进制:
2.1四合一法:

顾名思义从低位往高位看,四个二进制数为一组,不足四位高位补0。

(1)我们先看十六进制的表示:

16

0~9用数字本身,10~15用字母a~f

(2)二进制数与十六进制数之间的对应关系表:

2/16

example

同理,十六进制转二进制反过来就行了。

3.十进制转十六进制:
3.1除16取余法:

image-20230928185729828

4.十六进制转十进制:
4.1权值拼凑法:

低位为最右边160,依次往左幂数增加;

image-20230928192440856

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值