C语言疑难点

AScii码:

\0 、0、0的区别‘\0’转义字符的ascii码值是0,\0与数字0相同,但不与‘0’相同,‘0’的ascii码值是48,‘a'字符的值是97ASCII表

字符串长度为5,大小为6,还有\0,不计入长度。

自己写复制字符串的程序一定要记得在末尾添加\0。----字符串结束标志

48-57对应数字0-9,65-90对应A-Z,97-122对应a-z.(同一字母的大写与小写之间相差32)

进制:

八进制:%o,Printf(%04o,

输入0xxx,系统会默认识别为八进制输入。
十六进制:%x,Printf(0x%x,d)

输入0xbbbbbb,系统会默认认为十六进制输入。

//c语言中,十六进制和八进制可以自动转换,二进制需要编写程序。#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){unsigned int i, j;int k;printf("please input a number less than 256\n");scanf("%d", &i);printf("the hexadecimal express of i is ox%x\n", i);//十六进制printf("the octal express of i is %04o\n", i);//八进制---用0填充,宽度为4;//打印的时候只打印一位,会从右边往左打一位,那就是次高位j = (i >> 7) + 48;//最高位有可能是2,当取256的时候,所以最高位不和0x01按位与printf("%1c", j);for (k = 6; k >= 0; k--){j = ((i >> k) & 0x01) + 48;//每次除了最后一位其他的都被置零了。printf("%1c", j);}return 0;}

printf("%c\n", '\'');//打印'\用于转义

函数:

  1. Sleep(1000)//经过一次sleep就会休息1000ms=1s.单位是毫秒。

头文件  #include<windows.h>

  1. System()执行系统命令的一个函数

System(cls)----cls---清空屏幕的一个函数

头文件  #include<stdlib.h>

System(pause)-----用系统函数暂停程序执行,等待任意操作来继续执行程序

  1. 字符串函数:<string.h>
  • strcmp用于判断两字符串是否相等,不能用==判断

Strcmp(字符串1,字符串2),如果两字符串相等,则该函数返回结果是0

Eg.If(strcmp(password,hu8yg)==0)

头文件为 #include<string.h>

  1. strlen函数:头文件为#include<string.h>

用于计算整个字符串的长度,不包含结束字符\0

  1. Strcpy------copy string------#include<string.h>----------在复制时要考虑数组长度,防止溢出,同时,\0也会被复制

char* strcpy(char* destination,const char* source);

  1. strcat字符串拼接函数。
  2. char* p = strchr(s, 'l');//字符串在前,要找的元素在后

//strchr返回的是找到元素的地址,printf("%s", p);//所以p这里打印的就是一个从要找的字符开始的字符数组

  1. int rand(void)-----------生成一个随机整数-------头文件#include<stdlib.h>

在调用rand函数之前,使用srand来调用rand,可以保证按照不同的顺序生成随机数。

srand((unsigned)time(NULL));

matrix[i][j] = rand() % 10

  1. #include <math.h>
    pow() 函数用来求 x 的 y 次幂(次方),其原型为: double pow(double x, double y)

Sqrt()开方

sqrt的参量只能是浮点数,所以要强制类型转换,这个不会报错---sqrt((double)a)

double要用lf

位操作符:

&按位与   ^按位异或 | 按位或

#define _CRT_SECURE_NO_WARNINGS 1

要点:

1不是素数。

一串数字要计算每个的出现次数时,可以搞一个全为0的数组专门用来标记,某个数字出现一次对应位置上就加一。

别忘记free。

用\做换行符的话,打印的结果是会保留第二行中的空格。

switch的case中每个都要加break,不加的会自动执行下一种情况。case只决定程序入口,删除break,将会接着输出下面的case操作。当输入的整形表达式在case中找不到时,设置default,将会执行对应操作。不是每一个case后面都要加break

不可在for循环体内修改循环变量,容易出错/形成死循环/失去控制

C语言中的eof指的是在操作系统中表示资料源无更多的资料可读取,可以用来和getchar搭配停止循环。

#include<stdio.h>int main(){char i;while((i = getchar())!=EOF)//putchar(i);//会等用户的输入全部完成以后再进行下一步操作return 0;}

数组名做指针

char* mycpy(char* b, char* a){int i = 0;while (a[i])//a[i]最后一位是'\0',循环就会自动不允许进行了{b[i] = a[i];i++;}//上面走到最后一位的时候停止了 ,所以要补上'\0'b[i] = '\0';return b;}

打印结构体:today.year----必须精准到它里面的元素,因为可能数据类型不一样。

自定义函数名大写,类名首字母大写。

二维数组在已知后面数据初始化的时候必须确定列数

typedef struct clock CLOCK;//将struct clock类型的重命名为CLOCK

\r使得每次新的输出会覆盖原来的,从而有时钟跳动的效果

如果malloc分配的指针在后续循环中被移动了,需要弄一个指针保存它最开始的地址,方便后面释放。

记不住ascii码可以直接用字符a,0等。

辗转相除法:最大公约数大数除以小数,然后小数除以余数,直到余数为0,除数就是最大公倍数

if (n > m) {k = m;m = n;n = k;}//m总大于nk = m * n;t = m % n;while (t)//余数不为0{m = n;n = t;t = m % n;}

最小公倍数:大数乘以小数除以最大公约数。

最小公倍数还可以把较大数依次扩大123倍直到能整除小数为止。

注意:scanf("%d%d", &m, &n);scanf括号里面的格式必须与输入格式一致,要输入逗号里面要设置逗号。注意这里必须按照原样输入scanf内的字符,注意是英文内的逗号

循环内的有些累加判断标志每次循环结束后要归0

(int)i % 2 == 0只有整数才能取模

scanf时“ %c”前面有空格scanf从第一个非空格/回车字符开始录入。

scanf时“%c”前面没有空格scanf会将键盘的任何一个键入都作为录入(空格看作空白字符,回车看作换行符),多余的部分存入缓存区。

 scanf只要开始读取了字符后面一遇到回车符、空格、跳格符就会退出读取,而且不会把最后读到的回车、空格、跳格符从缓冲区中拿走。所以需要getchar()

输入“abc def”,输出为“abc”。

gets只会被回车中断。

getchar只接收单个字符。

Static:

即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变static变量存放在静态存储区,在程序整个运行期间都不释放

而auto变量存放在动态存储区,随着生命周期的结束而立即释放。

register只能修饰局部变量,不能修饰全局变量和函数;register变量必须是能够被CPU所接受的类型,意味着register变量必须是一个单个的变量,变量长度小于等于寄存器长度;

使用C++分配的数组空间释放格式:delete[]p

double或者long double型解决阶乘溢出。------打印用LF。

类的定义最后不要少写分号.

函数写在最前面,可以直接调用。

char是ascii表里里面的一个符号。

不知道循环多少次就用while,break掉while.

且&&,或||

continue不执行后面了,直接重新进行循环。

Switch----default:不是上面的任何一种情况,最后必须使用 default 分支。即使程序真的不需要 default 处理,也应该保留语句:

default:

break;

case 后面只能是整型或字符型的常量或常量表达式

指针指向数组第一个位置的地址,就用数组名。

namespaceOne::caculate;

namespaceTwo::a;------命名空间构造的大括号后面不需要分号。

类的名字首字母必须大写。构造函数与类名相同。析构函数

类的后面必须要加分号。和struct一样。

Human a(1);----初始化.

setage();通过 . 调用。也类似于struct。

在类的外面编写类的函数------int University::getStuNumber-----使用::。

程序C++:

指针

#include <iostream.h>void swap(float *m,float *n){float t;t=*m;*m=*n;*n=t;}void main(){float a,b,*p1,*p2;cin>>a>>b;p1=&a;   p2=&b;swap(p1, p2);cout<<a<<endl<<b<<endl;}

指针参数虽然也能达到与使用引用的效果,但在被调函数中需要重复使用“*指针变量名”的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址(&a,&b)作为实参。

引用

#include <iostream.h>void swap(float& m,float& n)//引用符号加在形参上{float temp;temp=m;m=n;n=temp;}void main(){float a,b;cin>>a>>b;swap(a,b);cout<<a<<endl<<b<<endl;}

 引用中的&只会出现在定义中 , 在变量类型(类)名后面(与指针相似) , 并且在接下来的代码中 , &符号都不会再出现 , 只需直接使用引用定义的名字即可 , 而取地址符是不用绑定类名的 , 直接在变量(对象)左边写上& 即可(变量可以是指针或引用 , 毕竟它们也算是变量)。

Int &ri=i;

数据类型加&就声明引用,这个只有C++里面使用。

Creview:链表

#include<stdlib.h>

  1. 内存初始化函数:memset(void* ptr,char ch,int n),在首地址处填入n个ch字符
  2. calloc(size_t num,size_t bytes)

//calloc和malloc最主要区别是它会在已分配的内存空间设置0的默认值

  1. realloc:为已分配的内存空间重新分配并复制内容,新的空间大小设置为0时,相当于free

//动态分配不够的时候扩容

//void *realloc(*ptr,size_t byte)

//返回值为NULL失败,成功时返回首地址.

realloc(ptr, 0); /* free(ptr);*/

  1. 顺序存储结构:数组
  2. 单链表初始化时必须定义头指针,使他指向空。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/309569.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

房贷还款(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <math.h>int main() {//初始化变量值&#xff1b;double m, r 0.01;float d 300000;float p 6000;//运算还款所需月份&#xff1b;m log10…

Lua脚本使用手册(Redis篇)

Lua脚本 **简介&#xff1a;**Lua是一种功能强大的&#xff0c;高效&#xff0c;轻量级&#xff0c;可嵌入的脚本语言。它是动态类型语言&#xff0c;通过使用基于寄存器的虚拟机解释字节码运行&#xff0c;并具有增量垃圾收集的自动内存管理&#xff0c;是配置&#xff0c;脚…

Java-Tomcat

一、web补充技术 ①&#xff1a;B/S架构 主流的方式&#xff0c;只要有浏览器即可。编程方式直接基于socket即可 ②&#xff1a;javascript 简称js&#xff0c;早期只是实现在客户端的浏览器的动态效果&#xff0c;但服务端不会解释运行&#xff0c;所以本质上是静态资源。 …

1.16 LeetCode总结(基本算法)动态规划2

70. 爬楼梯 首先想到的是递归&#xff1a; // 递归 int climbStairs(int n) {if (n 1) {return 1;} else if (n 2) {return 2;}return climbStairs(n - 1) climbStairs(n - 2); }我们先来看看这个递归的时间复杂度吧&#xff1a; 递归时间复杂度 解决一个子问题时间*子问…

【无人机/平衡车/机器人】详解STM32+MPU6050姿态解算—卡尔曼滤波+四元数法+互补滤波(文末附3个算法源码)

效果: MPU6050姿态解算-卡尔曼滤波+四元数+互补滤波 目录 基础知识详解 欧拉角

Unsupervised Learning ~ Anomaly detection

unusual events vibration: 振动 Density estimation: Gaussian(normal) Distribution. standard deviation: 标准差 variance deviation sigma Mu Parameter estimation Anomaly detection algorithm 少量异常样本点的处理经验 algorithm evaluation skewed datatsets:…

Java实现二叉树(下)

1.前言 http://t.csdnimg.cn/lO4S7 在前文我们已经简单的讲解了二叉树的基本概念&#xff0c;本文将讲解具体的实现 2.基本功能的实现 2.1获取树中节点个数 public int size(TreeNode root){if(rootnull){return 0;}int retsize(root.left)size(root.right)1;return ret;}p…

【MySQL】索引篇

SueWakeup 个人主页&#xff1a;SueWakeup 系列专栏&#xff1a;学习技术栈 个性签名&#xff1a;保留赤子之心也许是种幸运吧 本文封面由 凯楠&#x1f4f8;友情提供 目录 本系列传送门 1. 什么是索引 2. 索引的特性 3. 索引的分类 4. 索引的优点及缺点 优点 缺点 5.…

实验5 流程图和盒图ns图

一、实验目的 通过绘制流程图和盒图&#xff0c;熟练掌握流程图和盒图的基本原理。 能对简单问题进行流程图和盒图的分析&#xff0c;独立地完成流程图和盒图设计。 二、实验项目内容&#xff08;实验题目&#xff09; 1、用Microsoft Visio绘制下列程序的程序流程图。 若…

蓝桥杯:握手问题和小球反弹问题

试题 A: 握手问题 本题总分&#xff1a; 5 分 【问题描述】 小蓝组织了一场算法交流会议&#xff0c;总共有 50 人参加了本次会议。在会议上&#xff0c; 大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手&#xff08;且仅有一次&#x…

ChatGPT在线网页版

ChatGPT镜像 今天在知乎看到一个问题&#xff1a;“平民不参与内测的话没有账号还有机会使用ChatGPT吗&#xff1f;” 从去年GPT大火到现在&#xff0c;关于GPT的消息铺天盖地&#xff0c;真要有心想要去用&#xff0c;途径很多&#xff0c;别的不说&#xff0c;国内GPT的镜像…

基于GRU实现评论文本情感分析

一、问题建模 在线评论的细粒度情感分析对于深刻理解商家和用户、挖掘用户情感等方面有至关重要的价值&#xff0c;并且在互联网行业有极其广泛的应用&#xff0c;主要用于个性化推荐、智能搜索、产品反馈、业务安全等。此博文&#xff0c;共包含6大类20个细粒度要素的情感倾…

HTML制作跳动的心形网页

作为一名码农 也有自己浪漫的小心思嗷~ 该网页 代码整体难度不大 操作性较强 祝大家都幸福hhhhh 效果成品&#xff1a; 全部代码&#xff1a; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE> 一个…

LeetCode 19. 删除链表的倒数第 N 个结点

LeetCode 19. 删除链表的倒数第 N 个结点 1、题目 力扣题目链接&#xff1a;19. 删除链表的倒数第 N 个结点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a; head [1,2,3,4,5], n 2 输出&am…

获取数据信息、发现隐藏风险?AI+BI效果好得惊人!

奥威BI基于大语言模型&#xff08;LLM&#xff09;的AI助手终于上线内测了&#xff0c;今天我们先来一睹为快&#xff01; 获取数据信息、发现隐藏风险&#xff1f;AIBI效果好得惊人&#xff01; 打开利润表&#xff0c;这里可以看到2022年全年每个月的利润表实际情况&#xff…

面试八股——Spring——AOP与事务

AOP的定义 事务的实现 事务的失效场景 异常捕获处理 下图中由于②导致异常&#xff1a; 原因&#xff1a; 解决办法&#xff1a;自己抛出一个非检查异常&#xff08;具体原因看“抛出检查异常”&#xff09;。 抛出检查异常 由于①出错&#xff0c;导致抛出了检查异常 原因&…

通讯录的实现(单链表版本)

我们首先要知道通讯录的实现是基于单链表的基础上的&#xff0c;所以我们首先要搞懂单链表。&#xff08;注意&#xff1a;今天的代码量较多&#xff09;&#xff0c;但这不是阻挡我们前进的脚步&#xff0c;冲冲冲&#xff01;&#xff01;&#xff01; 单链表的简要概述 我们…

Nacos 服务发现-Spring Cloud Alibaba 综合架构实战(一)实现 application1 子模块

Nacos 服务发现-Spring Cloud Alibaba 综合架构实战&#xff08;一&#xff09;实现 application1 子模块 一、Nacos 服务发现-Spring Cloud Alibaba 综合架构实战-总体架构介绍 1、spring cloud 是一个较为全面的微服务框架集。 spring cloud 集成了如服务注册发现、配置中心…

将Ubuntu18.04默认的python3.6升级到python3.8

1、查看现有的 python3 版本 python3 --version 2、安装 python3.8 sudo apt install python3.8 3、将 python3.6 和 3.8 添加到 update-alternatives sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 sudo update-alternatives --insta…

【MySQL】事务篇

SueWakeup 个人主页&#xff1a;SueWakeup 系列专栏&#xff1a;学习技术栈 个性签名&#xff1a;保留赤子之心也许是种幸运吧 目录 本系列专栏 1. 什么是事务 2. 事务的特征 原子性&#xff08;Atomicity&#xff09; 一致性&#xff08;Consistency&#xff09; 隔离性&…