从尾到头打印单链表void FromTailToHeadPrint(SListNode*& head) { stack<SListNode*> s; SListNode* cur = head; &n
C语言:输入一个整数,输出该数二进制表示中1的个数。
静态顺序表的实现(包括头插、头删、尾插、尾删、查找、删除指定位置)
strcpy:拷贝源字符串到子字符串,包括‘\0’。 strncpy:strncpy与strcpy之间差别在于,strcpy将源字符串全部拷贝到新的字符串中,而strncpy拷贝长度由自己确定。 strcat:作用是链接字符串. strcmp: 用来比较字符串长度。 对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到‘\0’为止。如果全部字符相同,则认为相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准。 如果两个字符串都由英文字母组成,则有一个简单的规律:在英文字典中位置在后面的为“大”,还要特别注意:小写字母比大写字母“大”。 返回值: (1)字符串1=字符串2,返回0 (2)字符串1>字符串2,返回一个正整数 (3)字符串1<字符串2,返回一个负整数。
意大利的数学家列昂那多·斐波那契在1202年研究兔子产崽问题时发现了此数列.设一对大兔子每月生一对小兔子,每对新生兔在出生一个月后又下崽,假若兔子都不死亡. 问:一对兔子,一年能繁殖成多少对兔子?题中本质上有两类兔子:一类是能生殖的兔子,简称为大兔子;新生的兔子不能生殖,简称为小兔子;小兔子一个月就长成大兔子.求的是大兔子与小兔子的总和。 如果用 un 表示第 n 月的大兔对数,则有 un = un-1 + un-2, n >2每月大兔对数un 排成数列为:1,1,2,3,5,8,13,21,34,55,89,144,• •• 此数列称为斐波那契数列. 月 份 ⅠⅡ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ 大兔对数 1 1 2 3 5 8 13 21 34 55 89 144 小兔对数 0 1 1 2 3 5 8 13 21 34 55 89 到
// 1.一般情况 /* int i = 0; */ // 2.换行问题 /* int i = 0; */int j = 0; /* int i = 0; */ int j = 0; // 3.匹配问题 /*int i = 0;/*xxxxx*/ // 4.多行注释问题 /* int i=0; int j = 0; int k = 0; */int k = 0; // 5.连续注释问题 /**//**/ // 6.连续的**/问题 /***/ // 7.C++注释问题 // /*xxxxxxxxxxxx*/ // 8.C注释本身不匹配 /* int i = 0;
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<string.h> #define MAXSIZE 1000 typedef int Da
VS操作快捷键+系统快捷键调试程序快捷键编译程序:F7运行程序:ctrl + F5打断点:F9运行到断点位置:F5单步执行:F10单步进入函数:F11结束调试:shift+F5注释代码:ctrl+k,ctrl+c解注释代码:ctrl+k,ctrl+ups:某些机器需要配合Fn进行转转功能键。VS快捷键--(用颜色标注的是我使用时常用的,其实这个全凭个人喜好啦!!!)编辑.删除行Ctrl + Shi
加密的方法是: 每个字母被修改成在字母表距其13个位置(前或者后)的字母。例如:A被修改成N,B被修改成O,Z被修改成M,以此类推。#include<stdio.h> #include<stdlib.h> int main() { int ch;  
break:(1)永久结束循环,下一条执行的是正常结束循环时的下一条语句。(2)对于while语句,使用break,循环就会永久结束。(3)对于for语句,使用break,便终止不再执行for语句,开始执行for语句之后的语句。continue:(1)结束当前循环,结束后开始再判断是否满足循环条件。(2)对于while语句,使用continue,循环体内的剩余语句不再执行,而是开始下一条循环语句。
const的作用: a.使用习惯,若变量的值不会被修改,则在声明时就应当加上; b.该关键字可用来修饰变量,函数返回值,形式参数等等,表示不可修改; c.增加程序的健壮性。如,char* strcpy(char* dest,const&nbs
局部变量: 创建在栈区(向下生长),生命周期存在于当前作用域中。 创建时若未初始化,则为随机值。全局变量: 创建在static区,生命周期一直存在。 创建时若未初始化,则为0。静态局部变量:  
#include<stdio.h> #include<stdlib.h> void squares(int limit) { /*Commment out this entire function int
关于strlen,sizeof均可求字符串长度,这两者是笔试面试常考的知识点。
C语言:使用malloc开辟一个3*4的二维数组,并将内容初始化为1-12.
实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人
指针就是指针,指针变量在 32位系统下,永远占 4 个byte ,其值为某一个内存的地址。指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量访问到。 数组就是数组,其大小与元素的类型和个数有关。定义数组时必须指定其元素的类型和个数。数组可以存任何类型的数据,但不能存函数。根据sizeof分析数组与指针。 数组指针与指针数组,如int *p[10],[]优先级高于*,表示的是数组中的每个元素都是int*类型的。用画图表示的话,它是10个int型大小,每个int型中存放的是int*。而int(*q)[10]表示的是数组指针,归根结底,不管是什么指针,它都是指针,那么它就存放的是地址,只不过数组指针存放的是数组的指针。用画图表示的话,是地址,则是4个字节大小。这个指针指向了10个int型大小的数组。
模拟实现内存比较函数memcmp: 该函数与strcmp有相似之处,都可用于字符串比较是否相同,若相同,则返回0值。若前者大于后者,则返回大于0的整型值,否则返回小于0的整型值。 区别在于: strcmp只能比较字符串,memcmp是内存比较函数,原则上是比较内存的,但其实真正实现时并不是所有都可以比较,例如float,但我们至少可以比较字符串以及int型。而对于strcmp,strncmp的比较:str1, str2 为需要比较的两个字符串,n为要比较的字符的数目,而函数strcmp()做不到,strcmp()可以比较全部字符串(因为它找字符串结束标志‘\0’)。 关于strcmp的实现,可以查看我的博客http://10740184.blog.51cto.com/10730184/1714512 关于strncmp的实现,可以查看我的博客http://10740184.blog.51cto.com/1073018
模拟实现内存放置函数memset() 我们查看库函数可知,函数原型为: void * __cdecl memset ( void *dst, int val, size_t count),我们常用于将数组arr向后几个字节初始化置为0,而并不怎么用于置为其他元素,如1。这是因为: val = 1,是int型,将它赋给char型dest,则只把低八位赋给dest,下次再接着循环,每次都只把一个字节长度的1赋给dest。如此重复count次,结束。在输出过程中,而arr是int型,一个int型是4个char型,即每次输出的结果都是:1000 0000 1000 0000 1000 0000 1000 0000这个十进制的值。
比较strncpy与strcpy区别: 两者均为字符串拷贝函数,用于拷贝字符串。但strcpy比较时找字符串结束标志‘\0’,一旦找到 ‘\0’,比较结束。而后者我们可以根据实际情况完成指定长度n的字符串比拷贝,因此函数strcpy里面多了一个字母n,即strncpy.由此,从此处看strncpy比strcpy功能强大一点。 关于strcpy可以查看我的博客链接:http://10740184.blog.51cto.com/10730184/1714516
模拟实现strncat(): 与函数strcat()有区别,是防止当自己连接自己时找不到'\0'无法连接。而关于strcat()函数可见博客连接 http://10740184.blog.51cto.com/10730184/1714515。
模拟实现字符串比较函数strncmp(),与strcmp()函数可以查看博客http://10740184.blog.51cto.com/10730184/1714512有区别。 【返回值】若str1与str2的前n个字符相同,则返回0;若arr1大于arr2,则返回大于0的值;若arr1 若小于arr2,则返回小于0的值。 【参数】str1, str2 为需要比较的两个字符串,n为要比较的字符的数目(这是函数strcmp()所做不到的)。而此处我设置的len是arr1长度。,
模拟实现strcpy: (1)字符串拷贝函数就是将原串拷贝到新串,而原串无需变换,可以用const来修饰。包括‘\0’全部拷贝到新的子串dest。 (2)while ((*dest++ = *src++) ) { ; }这种遍历程序连同‘\0’一起拷贝了while ((*dest++ = *src++) )相当于while ((*dest++ = *src++) !=‘\0’),上一次拷贝到最后一个字符时后置加加,将src变为‘\0’了,而下次再进入while循环时先执行*dest++ = *src++,dest也拷贝为‘\0’.而此时不满足该条件跳出while循环。但是此时已经拷贝了'\0'了。这也是程序的先后性。 或者可以:while (*src) {
strcat()函数不限制,而strncat()是有限制的,后者我的博客也有,有兴趣可以查看。 设置有限制的strncat() ,因为:像我的博客,C语言:判断一个字符串是否为另外一个字符串旋转之后的字符串,http://10740184.blog.51cto.com/10730184/1709411此内找不到\0时需要。 strcat()函数其实就是找到连接前的字符串结束标志\0,然后接在其后面拷贝。 所以我就想到遍历数组,不满足遍历条件时就跳出即此时碰到结束标志了。而实现后续拷贝工作思路和函数strcpy很相似。 另外,要注意到自加有副作用,因此要重新定义遍历ret存储首地址,便于后续返回。而若不这样可能屏幕不输出。
模拟实现strcmp: 模拟实现字符串比较strcmp()函数,要想到用遍历数组的方法,从头到尾一直比较,若相同(就继续循环)一直到‘\0’满足,则两个字符串就相等。若不同则返回其ASCII差值。由此也可知道,我们设计函数时类型设置为int型。
C语言:模拟实现memcpy 模拟实现内存拷贝函数memcpy(),该特点与strcpyhttp://10740184.blog.51cto.com/10730184/1714516 比较就是不管是不是string类型均可以比较,只是单纯内存的比较。 设置为空类型是考虑到接收任何类型的转换,无需强制转换。而考虑到p1,p2,sizeof(p1)是地址,=4。而*p是空类型, 不知道访问多少个字节来取内容。因此有以下操作: size_t是unsigned int 型,字节数,即类型长度与串长度乘积。
模拟实现memmove(): 拟实现内存移动函数memmove: 我的代码是关于将字符数组 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } 中的3,4,5,6移动到5,6,7,8位置处。这个内存移动涉及到解决了内存重叠的问题,而memcmp()函数http://10740184.blog.51cto.com/10730184/1714516没有解决。为防止覆盖,若不内存重叠时就正常如strcpy拷贝,否则就从后往前拷贝。size-t count指的是字节数,4个整型的元素字节数。src =src +8,指的是前面有两个整形的字节数。dest指的是前面有四个整形的字节数。
调整数组使奇数全部都位于偶数前面。 题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
C语言:冒泡法排序一组数,如何优化?
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号