
C语言
文章平均质量分 71
qq_37924645
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C】sizeof 和 strlen 的区别
sizeof 和 strlen 这两者易混淆,常常让我们不能很容易地分清楚在不同情况下使用所输出的不同结果,下面我希望通过一些例子能够解释清楚这两者的区别。 首先,我们应该知道:1. 内存中的一个内存单元(字节)对应一个地址。 2. 在32位平台上指针的大小是4个字节,64位平台上是8个字节。原创 2017-04-04 23:12:11 · 195 阅读 · 0 评论 -
【C】水仙花数
6.求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个数,其各位数字的立方和恰好等于该数本身,如:153 = 1^3 + 5^3 + 3^3,则153是一个“水仙花数”。 /* 在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。 例如15原创 2017-03-31 23:49:26 · 466 阅读 · 0 评论 -
【C】扫雷游戏
首先我们先创建三个文件,分别为 MineClearance.c , MineClearance.h ,test.c,然后在相应文件下编写代码,实现游戏。 MineClearance.c #define _CRT_SECURE_NO_WARNINGS 1 #include "game.h" //产生随机数 int get_random_num(int m, int n) { retu原创 2017-04-05 22:30:31 · 220 阅读 · 0 评论 -
【C】运算符总结
C语言中的操作符:算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构成员。 1.算术操作符:+ - * / % 1) 除了 % 操作符之外,其他的几个操作符均可以作用于整数和浮点数。 2) 对于 / 操作符,如果两个操作数都为整数,执行整数除法;而只要有浮点数执行的就是浮点数原创 2017-03-26 14:21:34 · 529 阅读 · 0 评论 -
【C】写一个宏将一个数字的奇数位和偶数位交换。实现两个int(32位)整数m和n的二进制表达中,位(bit)不同的个数
1.写一个宏将一个数字的奇数位和偶数位交换。 #define _CRT_SECURE_NO_WARNINGS 1 #include #define CHANGE(X) \ ((X & (0x55555555)) > 1) //奇数位左移,偶数位右移 int main() { int x = 10; printf("%d\n", CHANGE(x)); system("pause")原创 2017-04-12 21:43:04 · 614 阅读 · 0 评论 -
【C】冒泡排序算法
#define _CRT_SECURE_NO_WARNINGS 1 #include void Bubble_Sort(int *p, int sz) { int i = 0; int j = 0; for (i = 0; i < sz - 1; i++) { for (j = 0; j<sz - 1 - i; j++) { if (p[j]>p[j + 1]) {原创 2017-04-05 22:10:26 · 170 阅读 · 0 评论 -
【C】三子棋游戏
首先我们需要建立三个文件,分别为头文件 game.h ,源文件 game.c ,和源文件 test.c ,然后在相应的文件下编写代码。 game.h #ifndef __GAME_H__ #define __GAME_H__ #include #include #include #define ROWS 3 #define COLS 3 void init_board(char b原创 2017-04-05 22:12:44 · 485 阅读 · 0 评论 -
【C】unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值
编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。 如: 在32位机器上25这个值包含下列各位:00000000000000000000000000011001 翻转后:(2550136832) 10011000000000000000000000000000 程序结果原创 2017-04-14 17:08:26 · 378 阅读 · 0 评论 -
【C】将字符数组的内容:"student a am i"改为"i am a student".
1.有一个字符数组的内容为:"studenta am i",请你将数组的内容改为"i am a student". 要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。 程序1: #define _CRT_SECURE_NO_WARNINGS 1 #include #include #include void reverse(char *start,原创 2017-04-14 17:04:18 · 412 阅读 · 0 评论 -
【C】函数相关的程序--判断一个数是否为素数,某年是否是闰年,调用一次函数将参数值加1
1. 写一个函数可以判断一个数是不是素数。 #define _CRT_SECURE_NO_WARNINGS 1 #include #include int is_prime (int x) { int j = 0; for (j = 2; j <= sqrt(x); j++) { if (x%j == 0) { return 0; } } retu原创 2017-03-29 22:52:11 · 425 阅读 · 0 评论 -
【C】模仿 qsort 的功能实现一个通用的冒泡排序
#define _CRT_SECURE_NO_WARNINGS 1 #include #include int cmp(const void*n1, const void*n2) //判断n1,n2元素大小,n1比n2大返回正数;小返回负数,相同返回0 { return *(char*)n1 - *(char*)n2; //升序 } void Swap原创 2017-05-13 20:41:53 · 677 阅读 · 0 评论 -
【C】函数的调用过程,栈帧的创建和销毁
每一次函数调用都是一个过程,这个过程我们称之为:函数的调用过程。 函数调用过程要为函数开辟栈空间,用于本次函数的调用中临时变量的保存、现场保护。这块栈空间我们称之为函数栈帧。 栈帧的维护需要我们了解ebp和esp两个寄存器,在函数调用的过程中这两个寄存器存放了维护这个栈的栈底和栈顶指针。ebp 存放了指向函数栈帧栈底的地址;esp 存放了指向函数栈帧栈顶的地址。原创 2017-04-23 16:33:43 · 397 阅读 · 0 评论 -
【C】理解指针数组、数组指针、函数指针、函数指针数组、指向函数指针数组的指针
理解指针数组、数组指针、函数指针、函数指针数组、指向函数指针数组的指针。 1. 指针数组 是数组,存放指针的数组。 2. 数组指针 是指针 3.函数指针 存放函数的地址 4.函数指针数组 5.指向函数指针数组的指针原创 2017-05-09 22:34:17 · 236 阅读 · 0 评论 -
【C】单链表
头文件 #define _CRT_SECURE_NO_WARNINGS #pragma once #include #include #include typedef int DataType; typedef struct SListNode { DataType data; //链表中存放的数据 struct SListNode *pNex原创 2017-07-01 21:53:20 · 275 阅读 · 0 评论 -
【C】可变参数列表剖析
C 语言中可通过将函数实现为可变参数的形式,可以使得函数可以接受1个以上的任意多个参数(不固定)。原创 2017-04-21 16:22:46 · 359 阅读 · 0 评论 -
【C】单链表面试题(基础篇)
1.比较顺序表和链表的优缺点,说说它们分别在什么场景下使用? 1)从结构上进行分析: (1)对于顺序表,不论是静态的还是动态的,他们都是连续的存储空间,在读取上时间效率比较快,可以通过地址之间的运算来进行访问,但是在插入和删除操作会出现比较麻烦的负载操作。 (2)对于链表,因为是链式存储,在我们需要的时候才在堆上开辟空间,对于插入查找的方式比较便携。但是对于遍历的话需要多次的空间跳原创 2017-06-30 15:48:31 · 292 阅读 · 0 评论 -
【C】求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222 #define _CRT_SECURE_NO_WARNINGS 1 #include int main() { int n = 0; int i = 0; int sum = 0; int a[10] = { 0 }; scanf("%d", &n); a[原创 2017-03-31 23:50:39 · 425 阅读 · 0 评论 -
【C】从标准输入读取C源代码,验证所有的花括号都正确的成对出现
编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。 {} {}{} {{}} #define _CRT_SECURE_NO_WARNINGS 1 #include int main() { int i = 0; char ch; while (1) { ch = getchar(); if ((ch == '}') && (i =原创 2017-03-31 23:58:57 · 328 阅读 · 0 评论 -
【C】获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。 [csharp] view plain copy #include int main() { int a, i=0; int arr1[16], arr2[16]; scanf_s("%d", &a); whi原创 2017-03-31 23:06:58 · 240 阅读 · 0 评论 -
【C】函数相关--乘法口诀表,两数互换,闰年,初始化数组、清空数组、数组逆置, 二分查找
1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出9*9的乘法口诀表,输入12,输出12*12的乘法口诀表。 #define _CRT_SECURE_NO_WARNINGS1 #include void multi_table(int n) { int i = 0; int j = 0; for(i = 1; i <= n; i++)原创 2017-04-09 15:10:27 · 341 阅读 · 0 评论 -
【C】在屏幕上输出以下图案(菱形图案)
在屏幕上输出以下图案(菱形图案): * *** ***** ******* ********* *********** ************* *********** ********* ******* ***** *** *原创 2017-03-31 23:46:50 · 4694 阅读 · 0 评论 -
【C】猜数字游戏
完成猜数字游戏。 [csharp] view plain copy #define _CRT_SECURE_NO_WARNINGS1 #include #include #include void menu() { printf("*****************************原创 2017-03-31 23:18:24 · 325 阅读 · 0 评论 -
【C】打印100-200间素数,输出乘法口诀表,闰年的判断,求十个整数中最大值
大家好,这是我自己练习的用C语言编写的简单的程序,用VS2013实现,如有失误,请多多包涵。 1、打印100-200之间的素数 #include "stdio.h" int main() { int m,n; for (m = 100; m { for (n = 2; n { if (m%n原创 2017-03-19 12:59:42 · 512 阅读 · 0 评论 -
【C】将数组A中的内容和数组B中的内容进行交换。(数组一样大)
1.将数组A中的内容和数组B中的内容进行交换。(数组一样大) #include void swap(int arr1[ ],int arr2[ ]) { int t = 0; for(int i = 0; i { t = arr1[i]; arr1[i]= arr2[i]; arr2[i]= t;原创 2017-03-22 21:37:09 · 644 阅读 · 0 评论 -
【C】模拟三次密码输入的场景
1.编写代码模拟三次密码输入的场景。 #define _CRT_SECURE_NO_WARNINGS #include #include int main() { charpasswd[10] = { 0 }; int i = 0; for(i = 0; i<3; i++) { scanf("%s", passwd); i原创 2017-03-26 14:27:47 · 503 阅读 · 0 评论 -
【C】求两个数的最大公约数
求两个数的最大公约数。 [csharp] view plain copy #include int max_common_divisor(inta,intb) { while(a*b!= 0) { if(a>b) { a= a%b;原创 2017-03-31 23:10:21 · 256 阅读 · 0 评论 -
【C】将三个数按从大到小输出
将三个数按从大到小输出。 [csharp] view plain copy #include int main() { int arr[3]; int a, b, c; for(a = 0; a { scanf_s("%d", &arr[a]);原创 2017-03-31 23:08:52 · 448 阅读 · 0 评论 -
【C】单链表面试题(进阶)
1. 判断单链表是否带环?若带环,求环的长度?求环的入口点? //判断是否带环 ListNode* IsCycle(ListNode* list) { ListNode* fast = list, *slow = list; while (fast && fast->next) { slow = slow->next; fast = fast->next->next; if (原创 2017-07-02 22:21:25 · 218 阅读 · 0 评论