c语言常用小知识点总结1

2023-05-16


#define 用来定义宏常量
格式:#define 标识符(大写字母) 常量
     #define  PI 3.14     //注意后面是不加;分号的
     常用字母的ASCII码 'a'=97   'A'=65  '0'=48
     
变量的输出
printf("参数",变量名);  字符串%s   char %c   int %d   float %float
printf("%10d",a);前面多加空格=10-变量的宽度
变量的输入: scanf("%参数",&变量名);

rand能够产生随机数,需要加头文件#include "windows.h"
格式: rand()%(大数-小数)+小数
       rand()%90+10 //产生10~100之间的随机数
如何确保每次运行所产生的随机数都不一样?
srand(unsigned)time(NULL);//这行代码只需要执行一次
time函数需要time.h头文件支持,#include "time.h"

do{
    语句体;
}while(条件);//这边的;一定要加

延迟函数sleep(1000);//延迟1秒
system("color 背景颜色");//使用#include "windows.h"
        文字颜色/背景颜色
以0开头的是八进制 0123=83(十进制)
以0x开头的是十六进制 0123=291(十进制)
一维字符数组的输入输出
整体输入: scanf("%s",数组名);//这里数组名就是地址,不需要&
           gets(数组名);//可以输入任何字符
区别:用scanf不能输入空格,他会把输入的空格当成'\0'
puts(数组名);          printf("%s",数组名);
gets(数组名);


//对字符串进行修改会用到#include"string.h"
strcpy函数  strcpy(串1,串2);//串1=串2,串2的长度不能大于串1的长度
strlen函数  strlen("字符串“);//
          n = strlen(数组名);//一个字符串含有字符个数,不包含'\0'
          n = strlen(一维字符型数组);
          m = sizeof(数组名);//测量数组长度
char a[100];
m = sizeof(a);//m=100
strcmp函数,用来比较两个字符串的大小
if(strcmp(字符串1,字符串2)>0)//串1>串2
if(strcmp(字符串1,字符串2)=0)//串1=串2
if(strcmp(字符串1,字符串2)<0)//串1<串2
if(strcmp(字符串1,字符串2))//串1不等于串2
分别取出两个字符串的每个字符来比较直到不等,然后由不等的字符来决定
strcat函数,用来连接两个字符串
strcat(串1,串2);//返回值为:串1+串2
strupr函数:把一个字符串中小写字母变成大写字母,其他不变
strlwr函数:把一个字符串中大写字母变成小写字母,其他不变


c语言中常见错误:
缺少;
缺少括号,小括号或花括号的不配对。
"/"与"\"的混用
单引号与双引号的混用
= 与 == 的混用   在条件表达式 if(  ==  )
逻辑& 和逻辑 |
短路&&和短路 ||
整除运算符  /
求余运算符 %
y+=1;改成  y+=(double)1/(i*i);
   或改成  y+=1.0/(i*i);
   
   输入一个数求他每一位上的数字和
   while(n)
   {
       s+=n%10;
       n=n/10;
   }
   
   
   int i,t=1;
   for(i=1;i<=y;i++)
   {
       t=t*x;
   }
   return  t;
   
   
  a?b:c

性质:

1、相当于条件判断语句

首先判断a是真是假,真就执行b,假就执行c,不会同时又判断a的真假的同时,又运算a,b的结果,最后再根据a的真假对a,b取舍,不会这样的。


2、结合方式从右向左分组运算

a=b>c?d:e-f?g-h:i+j

实际先运算e-f?g-h:i+j三目表达式的结果,然后再计算前面的三目表达式,最后赋值给a。

k=*p++  先把*p的值赋给k之后p+1
k=(*p)++  先把*p的值赋给k之后*p+1
k=++(*p)  先把*p的值加1,再把*p的值赋给k,*p+1是指针指向的变量+1
k=*(++p) 先把指针p+1,之后把*p的值赋给k

二叉树是一种非线性结构
满二叉树一定是完全二叉树
但完全二叉树并不一定是满二叉树
性质:
在二叉树的第k层上之多有2的k-1个节点(k>=1)
深度为m的二叉树至多有2的m次方-1个节点
对任何一刻二叉树度为0的节点(即叶子节点数)总比度为2的节点多一个
具有n个节点的完全二叉树的深度至少为(log 2为底  n )+1,其中(log 2为底  n )取它的整数部分

创建链表
STU *createlink(STU a[],int n)
{
    STU *head;
    int i;
    head=&a[0];//表示吧数组a中第一个元素给头指针
    for(i=0;i<n-1;i++)
    {
        a[i].next=&a[i+1];
    }
    a[n-1].next=NULL;
    return head;
}

head=createlink(a,8);
output(head);
输出链表:
void output(STU *head)
{
    STU *p = head;
    while(p != NULL)
    {
        printf("%s\t%s\n",p->id,p->name);
        p=p->next;
    }
}

链表的删除
STU *p=head,*front;
while(P! = NULL)
{
    if(strcmp(p->id,id) == 0)//找到要删除的节点
        break;
    front = p;//front总是跟着p的后面
    p = p->next;
}
if(p!=NULL)
{
    front->next = p->next;
}
retrun head;


询问循环程序
char answer;
do{
    //要循环的语句体
    printf("要继续吗?(y/n)");
    answer=getchar();//获取y/n
    getchar();//消化掉回车键,不然会退出循环
    
}while(answer == 'y');

数组的反转:
a[n]={..........};
int i,j,t;
for(i=0,j=n-1;i<j;i++,j--)
{
    t=a[i];
    a[i]=a[j];
    a[j]=t;
}
数组的插入:
for(i=0;i<9;i++)
{
    if(insert<s[i])
        break;
}
index=i;
for(i=9;i>=index+1;i--)
{
    a[i]=a[i-1];
}//产生空位
a[index]=insert;//插入值
怎样使用递归调用编程?
什么样的程序适合用递归方法:
这个程序的特征符合前项与后项有某种关系
已知某项的值(退出递归的条件)
如果要循环也可使用递归来代替换换

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言常用小知识点总结1 的相关文章

  • c语言 一维字符型数组

    什么是一维字符型数组 xff1a char a 5 这个数组中含有5各元素 xff0c 每个元素都是一个字符型变量 如何定义一字符型维数组 xff1a 格式 xff1a char 数组名 长度 ex char a 6 定义了一个含有6个字符
  • c语言常用的几个函数

    strcpy函数 2 xff09 如何给字符串进行赋值 xff1a A 字符串不能直接赋值 B 目前而言 给字符串赋值的方法是通过strcpy函数 C strcpy函数需要string h的头文件的支持 D 在使用strcpy函数时不能把大
  • 两个字符型数组,a[]="abcdefgh",用户输入一个值n,把数组a中右边n个字符复制到数组t中,最后输出数组t的值。

    两个字符型数组 xff0c a 61 34 abcdefgh 34 用户输入一个值n xff0c 把数组a中右边n个字符复制到数组t中 xff0c 最后输出数组t的值 算法分析 xff1a 定义两个字符型数组 char a 61 34 ab
  • 图文详解win10/8.1/7系统cmd命令提示符出现“不是内部或外部命令,也不是可运行的程序或批处理文件”

    声明下 xff1a 本教程支持win10 win8 1 8 win7 winxp等windows桌面系统 首先我们需要打开系统的环境变量 xff0c 那么在哪里能找到环境变量呢 xff1f 当然是在系统属性里了 tips xff1a 按下w
  • 关于字符串前导*的移动/删除的几种情况

    1 编写一个程序把所有字符串的前导 保留 xff0c 其他的 号都删除 效果 xff1a shd swbd dwh 转换成 shdswbddwh 算法分析 xff0c 先研究一个字符串 char a 100 61 34 shd swbd d
  • 函数的嵌套与递归调用

    什么函数的嵌套调用 main gt fun gt fun2 gt fun3 归调用 什么函数的 求1 xff01 43 2 xff01 43 3 xff01 43 4 43 43 n 算法分析 xff1a 写一个函数求n的阶乘 要写一个函数
  • c语言学习之 变量的分类学习笔记

    A 按作用域来分类 全局变量 xff1a 不在任何一个函数里面定义的变量 局部变量 xff1a 在函数里面定义的变量 区别 xff1a 全局变量可以被一个程序中的所有函数都来使用 局部变量只能在定义它的本函数中来使用 所有的函数都共享全局变
  • 以数组作为函数的参数c学习笔记

    以数组作为函数的参数 格式 xff1a 类型标识符 函数名 类型标识符 数组名 int n 处理的代码 A n表示数组的长度 B 在以数组作为函数参数时 xff0c 数组一般不写大小 C 它的大小由变量n来决定 sum int a int
  • c语言之指针之谜

    变量地址的意义 指针的定义 指针的赋初值 通过指针改变变量的值 内存 xff1a xff08 锅 xff09 A 在计算机中有一个很大的处理场 B 程序都是在内存中运行的 C 总结 xff1a 数据的处理场地 外存 xff1a xff08
  • 指向二维数组的指针学习笔记

    二维数组与一维数组的关系 二维数组的指针指向一维数组的指针 一维数组的情况下 xff1a 数组名代表数组首地址 a 43 i 61 a i 二维数组与指针 int a 3 4 61 1 2 3 4 5 6 7 8 9 10 11 12 a
  • 指向一维数组的指针学习笔记

    main int a 61 2 4 6 8 10 y 61 1 x p p 61 amp a 1 for x 61 0 x lt 3 x 43 43 y 43 61 p 43 x 1 43 4 43 6 43 8 printf 34 y 6
  • 生日快乐音乐小程序

    include 34 iostream 34 include 34 time h 34 include lt windows h gt include lt stdio h gt include lt conio h gt using na
  • c语言之指向字符串的指针学习笔记

    一 指向字符串的指针 1 xff1a 什么是字符串 xff1f 用双引号括起来的0个或多个字符 34 123 34 2 xff1a 字符串的结束符号 39 0 39 39 0 39 它是一个字符 xff0c 不是一个字符串 3 xff1a
  • 指向函数的指针与指针数组学习笔记

    指向函数的指针 1 char p 指向字符串的指针 2 int p 指向整型变量的指针 3 int a 4 61 1 2 3 4 p 61 a 指向一维数组的指针 4 int a 3 4 61 p 4 61 a 指向二维数组的指针 5 指针
  • makefile

    目录 一 Makefile简介 1 make解决的问题 xff1a 1 大量代码的关系维护 2 减少重复编译时间 二 Makefile文件命名规则 三 Makefile语法规则 1 Makefile基本规则三要素 xff1a 1 xff09
  • c语言之宏学习笔记

    宏 宏 什么是宏 xff1f 1 用一个字符串表示有意义的常量或常量表达式被称为宏 2 使用宏可以增加程序的灵活性 3 宏为了区分变量一般用大写字母 xff0c 也可以用小写字母 4 宏不是语句 xff0c 所以在定义宏的时候不要加分号 x
  • 一道有趣的数学题

    爱因斯坦曾出过这样一道有趣的数学题 xff1a 有一个长阶梯 xff0c 若每步上2 阶 xff0c 最后剩1阶 xff1b 若每步上3阶 xff0c 最后剩2阶 xff1b 若每步上5阶 xff0c 最后剩4阶 xff1b 若每步上6阶
  • c语言之文件学习

    文件是相关信息的集合 文字信息 声音信息 图形信息 文件的取名 xff1a 主文件名 扩展名 文件的分类 xff1a xff08 c 程序中 xff09 A xff1a 文本文件 B xff1a 二进制文件 xff08 data xff09
  • 翻转c风格的字符串

    这里的字符串是c风格的字符串 以 39 0 39 结尾 include lt stdio h gt using namespace std void reverse string 01 char void reverse string 02

随机推荐

  • 交换两个字符串

    swap char p1 char p2 char p p 61 p1 p1 61 p2 p2 61 p void main char str1 61 34 12345 34 char str2 61 34 ABCDEFG 34 char
  • 翻转句子中单词的顺序

    include 34 stdafx h 34 include 34 iostream 34 include lt windows h gt include lt stdlib h gt include lt stdio h gt using
  • 常用的vi/vim命令

    转载自 xff1a https blog csdn net wang907553141 article details 78846784 常用的vi vim命令 xff1a vi命令 xff1a yy xff1a 复制 光标所在的这一行 n
  • sql中limit使用方法

    sql中limit使用方法 此处以mysql为例 xff0c 但是我相信物以变通在oracle上也一定适用 1 下面是几种limit的方法 xff1a 原则看看下面几个例子应该就懂了 在数据库中很多地方都会用到 xff0c 比如当你数据库查
  • 数据库sql的优化问题的面试题

    想一下这个道面试题怎么做 有一张user表有1000万条数据 xff0c 请为下面的sql提供优化建议 xff1f 字段分别为 xff1a 主键id xff0c 用户id xff0c 姓名 xff0c 性别 select from user
  • 日期加一天的函数

    bool isLeapYear int year if year 4 61 61 0 amp amp year 100 61 0 year 400 61 61 0 判断闰年 return true return false void add
  • SpringAOP简单案例

    简介 本文是一个老师在学校给学生上课的简单案例 xff0c 介绍了AOP的五个通知的使用 xff0c 以及通知的执行顺序 通过自定义注解来充当切入点 xff0c 获取注解的类型分别对不同的老师做对应的业务处理 代码中的消息响应体 xff08
  • 学习 shell脚本之前的基础知识

    转载自http www 92csz com study linux 12 htm 日常的linux系统管理工作中必不可少的就是shell脚本 xff0c 如果不会写shell脚本 xff0c 那么你就不算一个合格的管理员 目前很多单位在招聘
  • Linux入门教程

    http www 92csz com study linux 发现这个写的不错 xff0c 作为小白入门非常棒 xff01
  • c与c++的区别

    相同 xff1a C 43 43 是在C语言的基础上改进的 xff0c C语言的很多语法在 C 43 43 中依然广泛使用 xff0c 例如 xff1a C 43 43 仍然使用 char short int long float doub
  • 多线程--线程管理

    说到多线程编程 xff0c 那么就不得不提并行和并发 xff0c 多线程是实现并发 xff08 并行 xff09 的一种手段 并行是指两个或多个独立的操作同时进行 注意这里是同时进行 xff0c 区别于并发 xff0c 在一个时间段内执行多
  • 选择排序和冒泡排序

    void select sort int a int n 选择排序 选择排序 xff0c 每次选择最小的放在第一个位置 xff0c 然后下次从第二个位置开始 for i 61 0 i lt n 1 43 43 i j 61 i 给下标放在一
  • 数据库面试题

    1 数据库系统的核心是 A 数据模型B 数据库管理系统C 软件工具D 数据库 2 下列叙述中正确的是 A 数据库是一个独立的系统 xff0c 不需要操作系统的支持 B 数据库设计是指设计数据库管理系统 C 数据库技术的根本目标是要解决数据共
  • 什么是shell?

    操作系统与外部最主要的接口就叫做shell shell是操作系统最外面的一层 shell管理你与操作系统之间的交互 等待你输入 xff0c 向操作系统解释你的输入 xff0c 并且处理各种各样的操作系统的输出结果 shell提供了你与操作系
  • 《心流》——每天十分钟,解读完本书

    心流 每天十分钟 xff0c 解读完本书 你好 xff01 这里是 每天十分钟 xff0c 解读完本书 xff0c 我是财哥哥 xff0c 今天为你解读的是 心流 xff0c 作者是米哈里 契克森米哈赖 他是积极心理体验这一领域的权威学者
  • SourceInsight4.0的使用

    转自 xff1a https blog csdn net qq 39660930 article details 77499455 一 项目管理 1 新建一个项目 快捷键Alt 43 Shift 43 N可以打开新建项目对话框 xff0c
  • 输入一个英文句子,翻转句子中的单词,要求单词内的字符顺序不变。 如:I am a student. 转换成 student. a am I

    输入一个英文句子 xff0c 翻转句子中的单词 xff0c 要求单词内的字符顺序不变 如 xff1a I am a student 转换成 student a am I 算法分析 xff1a 1 通过ReverseString xff08
  • OpenMLDB开源社区贡献者体系今日发布

    关于OpenMLDB OpenMLDB 是一个开源机器学习数据库 xff0c 提供企业级 FeatureOps 全栈解决方案 OpenMLDB 致力于闭环解决 AI 工程化落地的数据治理难题 xff0c 并且已经在上百个企业级人工智能场景中
  • 排序算法

    影响排序算法性能的几个要素 xff1a 1 时间性能 2 辅助空间 3 算法的复杂性 直接插入排序算法的基本操作是将一个记录插入到已经排好序的有序表中 xff0c 从而得到一个新的 xff0c 记录数增加一的有序表 void InsertS
  • c语言常用小知识点总结1

    define 用来定义宏常量 格式 xff1a define 标识符 大写字母 常量 define PI 3 14 注意后面是不加 分号的 常用字母的ASCII码 39 a 39 61 97 39 A 39 61 65 39 0 39 61