C语言基础

C 语言基础

现在有院校的学生过来学习C语言,所以整理了一下资料,希望对大家有所帮助吧

// 生成一个输出 Hello World! 的 C 程序
#include <stdio.h>
// 引入  头文件   
// <stdio.h> 标准输入输出库
// std  standard 标准
//  io  input output 输入输出
// .h 引入头文件 header
// 
//  * 编程语言: 高级编程语言C
//  *  最基础的编程语言
//  *  Linux shell编程
//  *  语言
//  *  C++
//  *  Java
//  *  Python
//  *  Go
//  *  Swift
//  *  Scala
//  *  R
//  *  SQL
//  *  云计算 网络安全 数据分析 ... 
//  *   学习核心:
//  *  逻辑-- 解决问题的思路 过程 方法
//  * 学习:
//  * 1 打印语句
//  * 2 输入输出 交互
//  * 3 逻辑 数据类型 变量
//  *  运算符 分支语句 循环语句 函数
//  * C 语言的代码的构成
//  * 1. 预处理指令
//  * 2. 主函数
//  
 // int main(){} 主函数  
 // 有返回值的函数
 // 执行C 程序的唯一入口
 // 函数: 能够完成一定功能或者性能的代码块
 // 通过调用函数来实现函数的功能
 // int 表示整数的数据类型 
 // 是main函数的返回值类型 跟它对应的是
 // 在{} 的内部 return 0;
 // 返回一个整型的数值0
 // main() 函数名() 函数的写法 
 // {} 函数体 函数的内容
int main() {
    // 在终端中打印输出 Hello World!
    //并且换行(\n换行符)
    // printf 函数  () 里面的内容是参数
    // printf 函数是打印输出的函数
    // 当前的参数是 字符串类型的值
    // "Hello World!\n"  现实中的文本
    // 使用的时候必须加英文的双引号
    printf("Hello World!\n");
    printf("Tom and Jerry.\n");
    return 0;
}
#include <stdio.h>
#include <stdbool.h>
// 引入bool类型的头文件,就可以使用bool类型
// 数据类型  为了方便管理数据,
// C语言中对现实中的数据分门别类,
// 方便管理就形成了数据类型
// C语言中常用的数据类型有:
// 表示整数的类型 按照范围划分:
// 整型:int
// 短整型 short 
// 长整型 long 
// 长长整型 long long 
// 表示小数的类型:
// 双精度浮点型:double
// 单精度浮点型:float
// 字符型:char 表示存储一个字符
// 布尔型:bool 表示真假的类型
// 表示数值的类型分为两种 一种带 +- 的(signed)
//  一种没有负数的(unsigned)
// 如果没有特殊说明 指的是包含负数的
// 各个数据类型在系统所占的空间 单位 字节
// sizeof(数据类型) 获取数据类型的字节数
int main() {
    // 使用占位符来输出 %d 一个整数的占位符
    // 输出int所占的空间 int: 4
    printf("int: %d\n", sizeof(int));
    // 输出short所占的空间 short: 2
    printf("short: %d\n", sizeof(short));
    // 输出long所占的空间 long: 4
    printf("long: %d\n", sizeof(long));
    // 输出long long所占的空间 long long: 8
    printf("long long: %d\n", sizeof(long long));
    // 输出double所占的空间 double: 8
    printf("double: %d\n", sizeof(double));
    // 输出float所占的空间 float: 4
    printf("float: %d\n", sizeof(float));
    // 输出char所占的空间 char: 1
    printf("char: %d\n", sizeof(char));
    // 输出bool所占的空间 bool: 1
    printf("bool: %d\n", sizeof(bool));
    printf("Hello World!\n");
    printf("Tom and Jerry.\n");
    return 0;
}
#include <stdio.h>
#include <stdbool.h>
// 占位符
// %c 字符的占位符
// %d 整数的占位符 有符号的十进制整数
// %f 浮点数的占位符 float double( %lf)
// %e 科学计数法的浮点数
// %E 科学计数法的浮点数
// %ld 长整型的占位符 long
// %s 字符串的占位符
int main() {
    // 输出字母A
    printf("%c\n", 'A');
    // 输出十进制数 10
    printf("%d\n", 10);
    // 输出浮点型值 3.14
    printf("%f\n", 3.14);
    //输出double型值 3.14 %lf
    printf("%lf\n", 3.14);
    // 输出小数以科学计数法的形式输出 3.14
    printf("%e\n", 3.14);
    // 输出小数以科学计数法的形式输出 光的速度
    printf("%E\n", 3333.9999);
    // 输出长整型的数值 999999
    printf("%ld\n", 999999);
    // 输出字符串 Tom and Jerry
    printf("%s\n", "Tom and Jerry.");
    printf("Tom and Jerry.\n");
    return 0;
}
#include <stdio.h>
#include <stdbool.h>
// 变量 : 一个代词 代表它保存的值,
// 在程序的执行过程中,变量的值可以被改变
// 一个变量必须声明并且赋值后才可以使用
// 在同一时刻,一个变量只能保存一个值
// 变量的定义 : 数据类型 变量名 = 值;
// C语言是一个强类型的语言,声明变量的时候必须指定类型
int main() {
    // 变量声明 声明一个变量age并且赋值为99
    int age = 99;
    // 输出变量age的值
    printf("age = %d\n", age);
    age = 100;
    printf("age = %d\n", age);
    // 定义一个变量tall来保存身高
    float tall = 1.88;
    printf("tall = %f\n", tall);
    // 定义一个变量name来保存名字
    // char[10] 字符类型的数组
    // 数组 保存了一组同类型数组的容器
    char name[10] = "Tom";
    printf("name = %s\n", name);
    // 定义一个字符类型的变量 c来保存字母 z
    char c = 'z';
    printf("c = %c\n", c);
    printf("Tom and Jerry.\n");
    return 0;
}
#include <stdio.h>
#include <stdbool.h>
// 作业:
// 1. 使用变量保存自己的个人信息,并且使用占位符输出自己的个人信息
//   个人信息包含 姓名 年龄 身高 体重 爱好
// 2. 写出你知道数据类型 并且举例使用占位符输出
// 3. 写出你知道数据类型所占的字节数
// 4. 写出变量的定义 数组的定义
// 变量 代词 代表它保存的值,一个变量在
//同一时刻只能保存一个值, 变量总是保存最新一次的值
// 在程序的执行过程中变量的值可以被改变
// 数组 是保存了一组相同类型数据的容器
int main() {
    char name[10] = "Tom";
    int age = 18;
    float height = 1.75;
    float weight = 70.5;
    char hobby[10] = "football";
    printf("name:%s, age:%d, height:%f, weight:%f, hobby:%s\n", name, age, height, weight, hobby);
    // 短整型 2字节 short
    short a = 1;
    printf("a:%d\n", a);
    // 整型 4字节 int
    int b = 1;
    printf("b:%d\n", b);
    // 长整型 4字节 long
    long b1 = 1;
    printf("b1:%ld\n", b1);
    // 长长整型 8字节 long long
    long long b2 = 1;
    printf("b2:%lld\n", b2);
    // 单精度浮点型 4字节 float
    float b3 = 1.0;
    printf("b3:%f\n", b3);
    // 双精度浮点型 8字节 double
    double b4 = 1.0;
    printf("b4:%lf\n", b4);
    // 布尔型 1字节 bool
    bool b5 = true;
    printf("b5:%d\n", b5);
    // 字符型 1字节 char
    char b6 = 'a';
    printf("b6:%c\n", b6);
    // 输出字符型的字节数
    printf("sizeof(char):%d\n", sizeof(char));
    
    
    
    
    
    printf("Tom and Jerry.\n");
    return 0;
}
// 打印输出 Hello World
#include <stdio.h>
#include <stdbool.h>
// 变量的命名要求
// 1. 命名只能使用字母、数字、下划线
// 2. 命名不能以数字开头
// 3. 命名不能使用关键字 int short long char float double
// 4. 命名不能使用保留字
// 5. 命名不能使用空格
// 6. 长度不能超过63个字符
// 7 . 区分大小写
// 运算符
// 算术运算符 + - * / %
// +
// - 
// *
// /
// %
int main(void)
{   
    // + 
    int a = 1;
    int b = 2;  
    int c = a + b;
    printf("%d\n", c);
    // short类型的两个值相加
    short d = 7;
    short e = 2;
    short f = d + e;
    printf("%d\n", f);
    // 有浮点型的值参与的加法
    int g = 5;
    float h = 2.3;
    float i = g + h;
    printf("%f\n", i);
    // - 
    int j = 5;
    int k = 2;
    int l = j - k;
    printf("%d\n", l);
    float m = 5.0;
    float n = 2.0;
    float o = m - n;
    printf("%f\n", o);
    bool b1 = true;
    // true --> 1
    int b2 = a + b1 ;
    printf("%d\n", b2);
    b1 = false ;
    // false -- > 0
    b2 = a - b1 ;
    printf("%d\n", b2);
    // *
    c = a * b;
    printf("%d\n", c);
    f = d * e;
    printf("%f\n", f);
    // /  整数值相除的结果还是一个整数
    a = 8;
    int m1 = 3;
    c = a / m1;
    printf("%d\n", c);
    f = d / e;
    printf("%f\n", f);
    // % 模 取余 5 / 3 = 1 ... 2    5 % 3 = 2
    c = a % m1;
    printf("%d %% %d = %d\n", a,m1,c);
    printf("%d %% %d = %d\n", 10,2,10%2);
    printf("%d %% %d = %d\n", 9,3,9%3);
    printf("Hello World\n");
    return 0;
}
// 打印输出 Hello World
#include <stdio.h>
#include <stdbool.h>

int main(void)
{   
   // 使用变量完成练习 已知 圆的直径是16,
   //求出圆的面积和周长,圆周率使用3.14
   int diameter = 16;
   float pi = 3.14;
   float area = pi * diameter * diameter / 4;
   float perimeter = pi * diameter;
   printf("area = %f\n", area);
   printf("perimeter = %f\n", perimeter);
   //从终端输入数据的方法 scanf() 扫描器方法
   // 输入数据到变量 a 变量a的声明和初始化
   int a = 0;
   // 提示用户的输入信息
   printf("please input a integer:");
   // 输出数据保存到变量a中
   scanf("%d", &a);
   printf("your number is:%d\n", a);
   // 从终端输入姓名保存到变量name中
   char name[20];
   printf("please input your name:");
   scanf("%s", name);
   printf("your name is:%s\n", name);
   // 从终端输入一个身高保存到变量tall中并且输出
   float tall = 0.0;
   printf("please input your tall:");
   scanf("%f", &tall);
   printf("your tall is:%f\n", tall);

   
   
   
   
    
   
    
    
    
   
    printf("%d %% %d = %d\n", 9,3,9%3);
    printf("Hello World\n");
    return 0;
}
#include <stdio.h>
#include <stdbool.h>

int main(void)
{   
    //输入一个两位数保存到变量num中,
    //输出num每个位置上的数值
    int num;
    printf("请输入一个两位数:");
    scanf("%d",&num);
    printf("num = %d\n",num);
    printf("num / 10 = %d\n",num/10);
    printf("num %% 10 = %d\n",num%10);
    //输入一个三位数保存到变量num中,
    //输出num每个位置上的数值
    printf("请输入一个三位数:");
    scanf("%d",&num);
    // 百位上的数值为b 
    int b = num / 100;
    // 十位上的数值为s
    int s = num / 10 % 10;
    // 个位上的数值为g
    int g = num % 10;
    printf("%d = %d * 100 + %d * 10 + %d\n",num,b,s,g);
    printf("%d %% %d = %d\n", 9,3,9%3);
    printf("Hello World\n");
    return 0;
}
#include <stdio.h>
#include <stdbool.h>
//   10 = ()B
//   除基取余逆排法
//   10 = 1*2^3+0*2^2+1*2^1+0*2^0 = 1010B
// short类型 存储的时候是
// 0000000000001010 B     10
// 移位运算符 
// 左移运算符 << 规则: 左移n位,则结果为原数左移n位,
// 如果n大于sizeof(int) * 8,则结果为0 
// 最右边补n个0 前面舍弃掉相应位数的值
// 右移运算符 >> 规则: 
// 右移n位,则结果为原数右移n位, 
//如果是正数 右边补零,如果负数则右移n位,左边补n个1
int main(void)
{   
    int n = 10;
    // n左移2位 保存到m中,输出m
    int m = n << 2;
    printf("%d\n", m);
    // 如何快速求出2的立方
    int m1 = 2 << 2;
    printf("%d\n", m1);
    // 右移运算符练习
    // 00000010  00000000
    int m2 = 2 >> 2;
    printf("%d\n", m2);
    //  11111111
    //+ 11111111
    // = 11111110 = 00000001+1=00000010 = 2
    // 00001000 11110111+1 = 11111000 = 11111111 =-1
    int m3 = -8 >> 3;
    printf("%d\n", m3);




    printf("Hello World\n");
    return 0;
}
#include <stdio.h>
#include <stdbool.h>
int main(void)
{   
   // 赋值运算符 = 把等号右边的值
   // (表达式的结果/已经有值的变量的值)
   // 保存到左边的变量中
   int a = 10;
   int b = 10 + 10;
   printf("a = %d, b = %d\n", a, b);
   // 复合赋值运算符
   // += -= *= /= %=
   // 把a+10的结果保存到变量a中
   // a = a + 10;
   a += 10;
   b -= 10;
   printf("a = %d, b = %d\n", a, b);
   a *= 10;
   b /= 10;
   printf("a = %d, b = %d\n", a, b);
   a %= 10;
   b %= 10;
   printf("a = %d, b = %d\n", a, b);
 


    printf("Hello World\n");
    return 0;
}
#include <stdio.h>
#include <stdbool.h>
int main(void)
{   
    // 单目运算符 ! - +  & sizeof ~ -- ++
    // ! 逻辑非 非真即假 非假即真
    bool a = true;
    bool b = !a;
    printf("a = %d, b = %d\n", a, b);
    // - 负号
    int x = -10;
    printf("x = %d\n", x);
    x = -x;
    printf("x = %d\n", x);
    // + 正号
    int y = +10;
    printf("y = %d\n", y);
    // & 取地址 -1501562272
    int z = 10;
    printf("z = %d\n", &z);
    // sizeof 获取变量大小
    printf("sizeof(int) = %d\n", sizeof(int));
    printf("sizeof(char) = %d\n", sizeof(char));
    printf("sizeof(x) = %d\n", sizeof(x));
    // ~ 按位取反 00000001  11111110
    int m = 1;
    printf("~m = %d\n", ~m);
    // -- 自减一 只针对变量有效
    int n = 10;
    // 后-- 先赋值后自减 
    //n--这个式子也是有值的,它等于n的初始值
    // n-- 结束后 n的值-1
    int z1 = n --;
    printf("n = %d\n", n);
    printf("z1 = %d\n", z1);
    // 前-- 先自减后赋值  --n的值是n-1 
    //整个式子运行结束后n的值是n-1
    int n1 = 10;
    int z2 = --n1;
    printf("n1 = %d\n", n1);
    printf("z2 = %d\n", z2);
    // ++ 自加一 只针对变量有效
    // 前++ 先自增后赋值
    int n2 = 10;
    int z3 = ++n2;
    printf("n2 = %d\n", n2);
    printf("z3 = %d\n", z3);
    // 后++ 先赋值后自增
    int n3 = 10;
    int z4 = n3 ++;
    printf("n3 = %d\n", n3);
    printf("z4 = %d\n", z4);
    printf("Hello World\n");
    return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值