
C语言
like_that
freedom
展开
-
sizeof与strlen的区别
sizeof与strlen的区别通过一个例子来区分int main(){ char str1[100] = "abcde"; char str2[] = "abcde"; char *str3 = "abcde"; char str4[100] = "abcde\0ijk\n"; char str5[] = "abcde\0ijk\n"; char *str6 = "abc.原创 2018-07-16 22:38:02 · 123 阅读 · 0 评论 -
假设在n进制下、567*456=150216的等式成立,n的值是多少?
例、假设在n进制下、567*456=150216的等式成立,n的值是多少?A、9 B、10 C、12 D、18第一步:将等式的两边进行n进制的转换 (5n^2+6n+7)*(4n^2+5n+6)=20n^4+25n^3+30n^2+24n^3+30n^2+36n+28n^2+35n+42=20n^4+49n^3+88n^2+71n+42=n^5+...原创 2018-07-10 22:15:41 · 950 阅读 · 0 评论 -
输入一个正整数,求出它是几位数
C语言:输入一个正整数,求出它是几位数并将其按倒序输出如:123,输出为321.#include <stdio.h>int Show(int x)//判断位数{ int n=0; while(x!=0) { n++; x/=10; //x=x/10 } return n;}...原创 2018-07-12 23:48:25 · 29065 阅读 · 1 评论 -
字符串复制的几种方法
字符串:只有以'\0'结尾的字符集合才能称为字符串。char arr[10]={'a','b','c','d'};是字符串char brr[ ]={'a','b','c','d'};不是字符串char crr[10];不是字符串字符数组特有的char drr[10]={"abcd"};是char err[10]="abcd";是char *frr="abcd";字符指针...原创 2018-07-16 23:37:50 · 38018 阅读 · 3 评论 -
有关动态内存的几个函数
动态内存函数:malloc、calloc、realloc、free等使用此函数需要使用#include<stdlib.h>头文件动态内存:动态创建内存,创建大内存。1、malloc函数malloc(n*sizeof(int ))用来分配内存malloc只管分配内存,并不会初始化,其内存空间中的值可能是随机的。分配的空间不再使用时,要用free函数释放这块内存空间...原创 2018-07-22 20:54:46 · 293 阅读 · 0 评论 -
C语言条件编译及编译预处理阶段
C语言由源代码生成的各阶段的作用1、编译预处理阶段的作用(1)读取c源程序,对伪指令(以#开头的指令)和特殊符号进行处理。预处理过程先于编译器对源代码进行处理。(2)删除注释。(3)检查包含预处理指令的语句和宏定义,并对源代码进行相应的转换。 宏定义指令:如#define指令 预处理过程会把源代码中出现的宏标识符替换成宏定义时的值。2、...原创 2018-08-03 00:56:53 · 875 阅读 · 0 评论 -
C语言中的类型转换
C语言中的类型转换可以分为两种:隐式转换中的规则有:①窄的向宽的转变;②unsigned 同类型无符号比有符号宽同类型的转换例如:int a=-10;unsigned int b=10;if(a>b)printf("a>b");elseprintf("a<b");不同类型的转换例如:int c=-10;u...原创 2018-09-04 21:37:33 · 544 阅读 · 0 评论 -
【C++】复习2(C/C++的区别、动态内存(new、malloc的区别))
一、C/C++的区别1、C是面向过程的语言 C++是面向对象的语言2、输入输出方式不同3、C++带有默认的函数、函数重载、inline内联函数,这些C++都不支持4、C++可以实现面向对象的代码,具有强大的设计模式,如单例模式、工厂模式、观察值模式,可以更好的进行模块化设计:做到高内聚、低耦合5、强制类型转换不同 在C语言中:使用()小括号里面加类型进行类型强转 ...原创 2019-07-26 17:02:04 · 268 阅读 · 0 评论 -
【C语言】字符串替换问题
1、一换多将将字符串中的空格替换为%20。如:we are family --->we%20are%20family。时间复杂度O(n),空间复杂度O(1)#include <stdio.h>#include <string.h>#include <assert.h>void SwapStr(char *str){ assert(str...原创 2019-08-02 21:49:31 · 616 阅读 · 0 评论 -
【数据结构】顺序表的基本操作——定长顺序表(实现插入删除查找及打印)(C语言实现)
线性表的顺序存储结构:指的是用一段地址连续的存储单元依次存储线性表的数据元素。线性表的顺序结构示意图如下:顺序表(SeqList)的基本特征为:元素在内部存储时是一个接一个在存储单元中按顺序存储的,所以只要知道"起始元素的存储地址"--称为顺序表的基地址以及顺序表中任何元素的位置(即它是第几个元素),就能直接定位到该元素的地址,从而直接访问到该元素的值。顺序表的优点:可以快速地存取...原创 2018-12-06 21:19:45 · 899 阅读 · 0 评论 -
【数据结构】排序的几种方法以及算法的稳定性、时间复杂度、空间复杂度的比较
时间复杂度与空间复杂度相关概念1、时间复杂度 时间复杂度可以认为是对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。 常见的时间复杂度有:常数阶O(1),对数阶O(log2n),线性阶O(n), 线性对数阶O(nlog2n),平方阶O(n2) 时间复杂度O(1):算法中语句执行次数为一个常数,则时间复杂度为O(1),2、空间复杂度 ...原创 2019-03-21 01:42:28 · 3311 阅读 · 0 评论 -
C语言实现斐波那契数列的几种方法
斐波那契数列指的是这样一个数列:1 、1、2、3、5、8、13、21、34、55、89……是从第三项开始每一项都是前两项之和。用递推的方法定义为: f(0)=1;f(1)=1; f(n)=f(n-1)+f(n-2) (n>=2,n∈...原创 2018-09-28 20:43:28 · 14236 阅读 · 2 评论 -
求某一天是这一年的第几天(判断闰年)
用结构体实现今天是这一年的第几天用数组存储每月的天数#include <stdio.h>typedef struct Day{ int year; int month; int day;}Day;bool IsLeapYear(int n)//判断是否是闰年{ return (n%4==0&&n%100!=0||n%400==0);}i...原创 2018-10-18 11:42:47 · 335 阅读 · 0 评论 -
求两个数的最大公约数和最小公倍数
最大公约数:指两个或多个整数共有约数中最大的一个。最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。最小公倍数=两个数的乘积/两个数的最大公约数 #include <stdio.h>//辗转相除法int GreatestComDiv(int m,int n){ int r;//定义一个数,...原创 2018-09-19 22:54:31 · 332 阅读 · 0 评论 -
指针之间的几种算术运算
算术运算:指针+数字:需要调整,调整的权重为指针本身去掉一个*,求sizeof指针-数字:需要调整,调整的权重为指针本身去掉一个*,求sizeof指针+指针:非法,无意义指针-指针:间隔的单元个数,需要调整,调整的权重为size of(指针去掉一个*)例:int *p; p+2的值为p的值加上2*sizeof(int)个字节#include<stdi...原创 2018-09-17 21:27:21 · 637 阅读 · 0 评论 -
C语言:函数的递归调用
函数的递归调用:一个函数在它的函数体内,直接或者间接地调用了他本身。直接递归调用:函数直接调用自身。 间接递归调用:函数间接调用自身。如下图: 如下图: 防止递归无休止的进...原创 2018-07-20 16:14:18 · 18605 阅读 · 4 评论 -
const的用途
const的用途在编程时有时定义一个变量,需要限定它的值不能被改变,在整个作用域中都保持不变。const:限定变量的权限,变成只读(不能做左值)。 左值:写权限 右值:读权限int main(){ int a; a = 10;//左值,放在"="符号左边就是左值,其它情况都是右值 int b = a; c...原创 2018-07-20 13:02:27 · 3009 阅读 · 0 评论 -
有关变量的总结
有关变量的总结 内存区域代码段 全局(静态)变量区 栈 堆 定义 生命周期 默认值 作用域 内存区域 连接属性 普通全局变量 函数外部定义的变量 程序开始运行就创建,程序结束才销毁 0 定义变量开始到本文件结束 整个文件 外部(被其他文件引用) 静态全局变量 ...原创 2018-07-18 20:12:05 · 230 阅读 · 0 评论 -
魔方阵
魔方阵1、奇数阶指它的每一行、每一列以及对角线之和均相等例如:三阶魔方阵8 1 6 3 5 7 4 9 2 1、将1放在第一行的中间;2、将后面的数字放在当前行的上一行、下一列;3、若当前位置不为空,则将数字放在前一数字的下一行(当前位置的上两行)。#define ROW 3void MagicSquare(){...原创 2018-07-20 00:02:37 · 742 阅读 · 0 评论