C语言笔记

这篇博客介绍了C语言的基本概念,包括整型、浮点型、字符型常量及字符串,以及进制转换和数学函数的使用。还涵盖了字符和字符串的输入输出,以及随机数和时间函数的应用。此外,文章提供了指针、内存管理和预处理指令的示例,最后通过一个字母大小写转换的面试题展示了C语言的实际应用。
摘要由CSDN通过智能技术生成
int main(int argc,char** argv)
        //argc 参数个数
        //argv 参数是什么


getchar();
//输入一个字符,不能读整数,不能读小数

putchar();
//输出一个字符

C语言关键字32个
在这里插入图片描述

常量:程序在运行当中 值 不可以发生改变的量
如:4578'A';‘t’; "hello"; '&'

整形变量
48 78
浮点型变量(小数)
3.14    0.7788
字符型常量
'A'  '&'
字符串常量
"qwert"   "1234"
符号常量
#denfine PI 3.14
这里的PI就是符号常量

整型常量

十进制整型常量
符号:0~9
%d  格式化的输入输出一个十进制整数
printf("%d\n",45);

八进制整型常量
符号:0~7 (不包含8)
前缀:0
比如:072
%o 格式化的输入输出一个八进制整数
printf("%o\n",072);   //输出一个八进制的72 注意:输出72没有前缀0
printf("%#o\n",072);  //可以完整的输出072
printf("%d\n",072);   //以十进制的方式输出一个八进制的72,相当于八进制的72转换为十进制的58

十六进制整型常量
符号:0~9  A~F(a~f)
a:10   b:11  c:12  d:13  e:14  f:15
前缀:0x 或者 0X
比如:0x45   0xaf4d
%x 格式化的输入输出一个十六进制整数
printf("%x\n",0xaf4d);  //输出一个十六进制的af4d 注意:输出af4d没有前缀0x
printf("%#x\n",0xaf4d);  //可以完整的输出0xaf4d

**注意:不包含二进制**

进制之间的转换
在这里插入图片描述
就比如十进制279 用 短除法除以 2 ,一直除到商小于除数,再从商开始数余数就是二进制的数

由下图可发现,三位二进制位对应一位八进制位,四位二进制位对应一位十六进制位

在这里插入图片描述
在这里插入图片描述

十进制小数  比如:3.14
打印方式:   %f(默认保留小数点后六位)
%m.nf        m表示输出宽度,比如3.14宽度为4,如果m值小于等于4的话,3.14原样输出
                                           m值为5的话,会在输入的3.14前面空一格
             n值为保留小数点后几位
             
用科学计数法表示浮点型常量
3.14 * 10 ^ 2
可以用E或者e 表示 10
3.14E2
printf("%f\n",3.14E2);    //314.000000

字符型常量

a~z  A~Z  ~ % # * &等等
用单引号引起来的,单引号里面不能为空
字符在内存是以ASCII码的方式存储,数值和符号是一一映射的关系,实际存储的是数值
'z'  'A'  '~'  '$'  '&'%c输出
printf("%c\n",'0');   //打印字符0
printf("%d\n",'0');  //打印出字符0的ASCII码,值为48

想打印%,它是格式化控制符,需要写两个%号
printf("%%"); 才会输出一个百分号

字符串常量

"hello world"
printf("hello world");

可以有空字符串""

空字符串长度为0,但是占用一个字节,因为它包含字符串终止符 \0(占用一个字节)
比如

int len  = strlen("wq");

printf("字符串的长度为:%d\n",len);              //输出2 ,长度是2,但是占用3个字节
printf("len的大小为:%d\n",sizeof(len));        //输出4,因为len是一个整型变量(占用四个字节)
printf("%d\n",sizeof("wq"));                   //输出3,因为终止符\0包含 一个字节


char ne[6]  =  "qwer";
printf("%d\n",strlen(ne));  //输出4,因为strlen是计算实际长度
printf("%d\n",sizeof(ne)); //输出6,sizeof 计算大小        

面试题
输入一个字母,大写转小写,小写转大写

#include <stdio.h>

int main()
{
  char n;
  while(1){
        printf("请输入一个字母,不区分大小写\n");
        scanf("%c",&n);
        setbuf(stdin,NULL);          //清空缓冲区
  
        if(n >= 65  && n<= 90){
             printf("%c\n",n+32);
        }else if(n >= 97 && n <= 122){
             printf("%c\n",n-32);
        }else{
             printf("请输入字母\n");
        }
  }
  
  return 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
练习题:
在这里插入图片描述
删除线格式
whiel循环做一个九九乘法表
在这里插入图片描述
删除线格式

char ch = getchar(); 
//输出一个字符
putchuar(ch);

char str[100];   //字符数组
gets(str);      
puts(str);

**

数学函数

要包含头文件 #include <math.h>
**

//求绝对值的函数
int n = abs(-45);
printf("%d\n",n);    //输出45

//求长整型的绝对值
int m = labs(-7891236);
printf("%d\n",m);   //输出7891236

//求浮点型绝对值
float f = fabs(-3.14);
printf("%f\n",f);    //输出3.140000

//向上取整
int c = ceil(3.8);
printf("%d\n",c);   //输出4

//向下取整
c = floor(3.8);
printf("%d\n",c);  //输出3

随机函数
包含头文件 #include <stdilb.h>

//rand
int x = rand(); 
printf("x=%d\n",x);   //输出41

srand
int q = srand(123);   //srand要带值,但是这个值是有另一个数值来对应
                      //就比如123对应7931320
printf("%d\n",q);     //输出7931320

时间函数
包含头文件 #include <time.h>

time_t* t = time(NULL);

二位数组
在这里插入图片描述

指针

int *p1,p2,p3;      //这里只有p1是指针,p2,p3都是int型
int *p1,*p2,*p3;    //这里三个都是指针

define 和 typedef

#define PINT int*    //define 是发生宏替换
PINT p1,p2,p3;       //等于int *p1,p2,p3;
typedef int* PPINT;        //typedef 是起别名
PPINT p1,p2,p3;            //等于int *p1,*p2,*p3;

内存管理
在这里插入图片描述
程序的局部变量存在于()中,全局变量存在于()中,动态申请数据存在于()中。

答案:栈;静态区;堆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值