
c
跟快递小哥飙车
这个作者很懒,什么都没留下…
展开
-
链表常见面试题
////////////////////////////////////////////////////////////////////////////////////链表的面试题//////////////////////////////////////////////////////////////////////////////////1.从尾到头打印单链表//非递归void SL原创 2018-02-28 19:59:56 · 252 阅读 · 0 评论 -
求出0~999之间的所有“水仙花数”并输出。
“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。 在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。 例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数原创 2017-11-14 21:08:15 · 216 阅读 · 0 评论 -
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222
#define _CRT_SECURE_NO_WARNINGS#include #include int main(){ int a = 0; int i = 0; int sum = 0; int n = 0; printf("输入所求的项数:"); scanf("%d", &n); for (i = 1; i <= 5; i++) { a = a * 10 + n原创 2017-11-14 21:11:06 · 274 阅读 · 0 评论 -
调整数组使奇数全部都位于偶数前面
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。#define _CRT_SECURE_NO_WARNINGS#include #include #include void my_change(int *p, int len){ int *q = p + len - 1; int temp; assert原创 2017-11-14 23:04:48 · 156 阅读 · 0 评论 -
用递归和非递归方法求第n个斐波那锲数
斐波那契数列:1,1,2,3,5,8,13,21……这个数列从第三项开始,每一项都等于前两项之和。如果设F(n)为该数列的第n项(n∈N+)。菲波那切数列可以概括成如下形式:在这里我们输出第6个斐波那锲数 递归方法#define _CRT_SECURE_NO_WARNINGS# include int fib(int n){while (原创 2017-11-20 23:25:10 · 2490 阅读 · 0 评论 -
模拟实现qsort函数
模拟实现qsort函数qsort 的函数原型是void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));qsort(即,quicksort)主要根据你给的比较条件给一个快速排序,主要是通过指针移动实现排序功能。排序之后的结果仍然放在原来数组中。参原创 2017-12-10 17:11:58 · 241 阅读 · 0 评论 -
自定义类型(结构体,位段,枚举,联合)总结
结构体结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。结构体的定义方式:struct 结构体名{ 结构体所包含的变量或数组};例如:struct Student{ //声明一个结构体类型Student int num; char name[20]; char sex;原创 2017-11-27 23:57:30 · 329 阅读 · 0 评论 -
C语言实现简单的三子棋小程序
1 game.h中用于函数定义#ifndef __GAME_H__#define __GAME_H__#include #include #include #include #define ROW 6#define COL 6void InitBoard(char board[ROW][COL], int row, int col);void DisplayBoard(原创 2018-02-22 13:02:51 · 1123 阅读 · 0 评论 -
字符串函数的模拟实现
#define _CRT_SECURE_NO_WARNINGS# include #include #include1.实现strcpychar *my_strcpy( char*dest, const char*src){ char*ret = dest; assert(dest&&src); while (*dest++ =*src++) { ; } return原创 2018-04-18 22:27:05 · 241 阅读 · 0 评论 -
编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出
#define _CRT_SECURE_NO_WARNINGS#include #include void main(){ char c = 'a'; printf("请输入一个键盘字符c:"); scanf("%c", &c); if (c >= 'A' && c<= 'Z') { c = c+ 32; } else if (c >= 'a' && c <= 'z')原创 2017-11-14 21:06:04 · 206 阅读 · 0 评论 -
写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
例如在这里查找数字6#define _CRT_SECURE_NO_WARNINGS#include #include int my_search(int arr[], int key, int left, int right){ while (left <=right) { int mid = left + (right-left) / 2; if (key <arr[mid]原创 2017-11-14 21:04:09 · 424 阅读 · 0 评论 -
指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针 的理解
首先我们要知道什么是指针指针是C语言中广泛使用的一种数据类型。 指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。简单来说,指针就是地址。 指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身原创 2017-11-19 00:09:31 · 380 阅读 · 0 评论 -
C语言关于数组知识点总结
数组数组本身是一种构造数据类型,主要将相同类型的变量集合起来,用一个名称来代表。数组也是一种自定义类型,使用之前要先定义,以便编译程序能分配内存空间供程序使用。一维数组的定义一维数组的定义形式:数据类型 数组名[整形常量表达式];(1)数据类型:规定数组的数据类型。(2)数组名:表示数组的名称,命名规则和变量名相同,为任一合法的标识符,不要与其他变量名或关键字重名。原创 2017-11-07 21:36:39 · 3561 阅读 · 2 评论 -
写一个宏实现一个数的奇数位和偶数位交换
假设我们需要交换的数字为x将(x&(0x55555555))将(x&(0xAAAAAAAA))>>1; x按位与0xAAAAAAAA后得到的二进制偶数位与x相同但奇数位均为0,然后再向右移一位,奇数位变为原来的偶数位,且移动后偶数位全为0;通过将两个二进制按位或((x&(0x55555555))>1)就可以得到最终的数字。#define _CRT_SECURE_NO_WAR原创 2017-11-09 16:27:52 · 222 阅读 · 0 评论 -
编写一个函数完成n^k计算
编写一个函数完成n^k计算#define _CRT_SECURE_NO_WARNINGS#include#include#includeint my_pow(int n, int k) { if (k == 0) { return 1; } else if (k == 1) { return n; } return n*my_pow(n, k - 1);}原创 2017-11-09 17:58:32 · 661 阅读 · 0 评论 -
个人总结C语言操作符
C语言操作符操作符是一种表示对数据进行某种运算处理的符号。C语言编译器通过识别这些操作符完成各种算术运算 逻辑运 位运算等运算。算术运算符1)基本算术运算符基本算术运算符包括双目的“+”“-”“*”“/”四则运算和“%”运算符,以及单目的“-”(负号)运算符。说明:1.基本算术运算符优先级与数学中一致。2.“-”运算符可以当做负号运算符使用 用作运算符时只要一个原创 2017-11-03 18:53:16 · 352 阅读 · 0 评论 -
给定两个整形变量的值,将两个值的内容进行交换
通过创建临时变量交换两个数的值#includeint main(){int a=10;int b=20;int tmp=0;tmp=a;a=b;b=tmp;printf("a=%d\n b=%d\n",a,b);return0;}不通过临时变量交换两个数的值#includeint main(){int a=10;int b=20;a=a^b;b=b^a;a=a^原创 2017-11-03 19:14:41 · 161 阅读 · 0 评论 -
函数调用栈帧过程 图解
函数的调用栈帧过程的常用指令1、add:加法指令,第一个是目标操作数,第二个是源操作数,格式为:目标操作数= 目标操作数+ 源操作数;2、call:调用函数,一般函数的参数放在寄存器中;3、ret:跳转会调用函数的地方。对应于call,返回到对应的call调用的下一条指令,若有返回值,则放入eax中;4、push:把一个32位的操作数压入堆栈中,这个操作在32位机中会使得e原创 2017-11-13 23:47:06 · 992 阅读 · 0 评论 -
写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1
#define _CRT_SECURE_NO_WARNINGS#include #include int count_one_bits(unsigned int value){int count;count = 0;while (value){count++;value = value&(value - 1原创 2017-11-07 00:25:02 · 230 阅读 · 0 评论