C语言
文章平均质量分 63
阿狸茜茜
爆发我的小宇宙,做正能量的小女子。
展开
-
小游戏——给五名运动员排名、找凶手、模拟银行密码三次输入场景、猜数字游戏,猜大或者猜小直到猜正确
程序:五名运动员排名#define _CRT_SECURE_NO_WARNINGS 1#includeint main(){ int A = 0, B = 0, C = 0, D = 0, E = 0; for (A = 1; A < 6; A++) { for (B = 1; B < 6; B++) { for (C = 1; C < 6; C++) {原创 2016-04-11 21:05:38 · 939 阅读 · 0 评论 -
数学问题(1):杨辉三角、水仙花数、打印斐波那契数列
程序:杨辉三角形 #define _CRT_SECURE_NO_WARNINGS 1#include#includeint main(){ int i, j; int a[10][10]; for (i = 0; i < 10; i++) { a[i][0] = 1; a[i][i] = 1; } for (i = 2; i < 10; i++) for原创 2016-04-11 20:57:25 · 650 阅读 · 0 评论 -
C语言基础练习篇(1)
第一个程序:输出九九乘法表#includevoid main(){ int i,j; printf("---九九乘法表---\n"); for (i= 1;i< 10;i++) { for (j= 1; j<= i;j++) printf("%d*%d=%2d",i,j , i*j); putchar('\n'); } getchar();}编程思想:遍历i和j的原创 2016-03-28 22:57:45 · 442 阅读 · 0 评论 -
我与C语言的那点故事
我与C语言的那点故事: 以前我是不玩博客的,但是最近因为学习C语言的关系,我也有了自己的博客账号。看着上面都是一些大神发的相关的资源,我想我也应该启程,即使现在的自己基础都很薄弱,但我也应该记录下自己学习C语言的这一路历程。我想它会一直陪伴我,给我坚持的动力。最初接触C是刘白林的C语言程序设计基础,那时我还在读大二。一直都觉得写代码的人很厉害,现在真正接触了更是这样觉得。原创 2016-03-28 21:53:50 · 489 阅读 · 0 评论 -
C结构体内存对齐
引言:结构体内存对齐问题一直以来都受到很大的关注。平常使用时,我们用sizeof()操作符可以求出结构体类型的大小,也有offsetof()宏来求取结构体对应成员变量的偏移。但仅仅会使用这两者还是不够的,我们还需要掌握其成员变量在内存中的对齐方式,以在有必要的情况下,合理排布成员变量的顺序,减少结构体类型所占字节。所以,今天再次探索结构体内存对齐的规则!sizeof()size原创 2016-07-31 16:00:37 · 359 阅读 · 0 评论 -
文本文件和二进制文件有什么区别?
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。1、ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:ASC码: 00110101 00110110 00110111 00111000 ↓ ↓ ↓ ↓十进制码: 5 6 7原创 2016-07-31 16:15:39 · 1796 阅读 · 0 评论 -
模拟实现strcmp、strcat、strstr
模拟实现strcmp(字符串大小比较函数)#define _CRT_SECURE_NO_WARNINGS 1#include#include#include#includeint my_strcmp(const char* str1, const char* str2){ assert(str1); assert(str2); while (*str1 == *str2)原创 2016-04-17 22:03:46 · 328 阅读 · 0 评论 -
sizeof()和strlen()的区别与联系
一、sizeofsizeof(...)是运算符,返回值为size_t,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。size_t获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占...原创 2016-08-08 13:11:02 · 301 阅读 · 0 评论 -
定义和声明的区别
在初学C语言的时候,很多同学都分不清什么是定义?什么是声明?在此我就对定义和声明区别与联系说明下,希望对各位未来的同仁能有所帮助。定义:定义就是创建一个对象,并且为这个对象起名字和分配内存空间。需要注意的是:这个名字和这个分配的空间匹配起来,就同生共死了,而且这块内存空间的位置也不能改变。一个变量或对象在一定的区域内只能被定义一次。这就像是出嫁的女生(名字)一样,嫁给了丈夫原创 2016-08-08 13:11:58 · 218 阅读 · 0 评论 -
自己实现的atio()和atof()函数
函数名:myatoi功能:把字符串转化成int整型 名字来源:my array to integer 函数说明:接收一个字符串判断第一个字符的符号,没有符号默认为正值,然后对剩 余字符串进行转换,//遇到\0结束,最后返回一个intint myatoi(const char* sptr) { bool ispnum=true原创 2016-08-08 23:42:42 · 511 阅读 · 0 评论 -
怎样防止头文件被重复包含?(两种方式)以及它的影响
一、头文件被重复包含#include文件的一 个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码:#include "x.h"#include "x.h"显然,这里文件x.h被包含了两次,没有人会故意编写这样的代码。但是下面的代码:#include "a.h"#include "b.h"看上去没什么问题。如果a.h和b.h原创 2016-08-06 10:38:02 · 23664 阅读 · 5 评论 -
数学问题(2):折半查找
折半查找:#define _CRT_SECURE_NO_WARNINGS 1#include#include#includeint main(){ int i; int right = 0, left = 0,mid=0; char arr[10] = { 0 }; for (i = 0; i < 10; i++) { scanf("%d", &arr[i]); }原创 2016-04-11 21:20:27 · 326 阅读 · 0 评论 -
函数篇(1):用函数的方法把之前的小程序再敲一遍
1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出9 * 9口诀表,输出12,输出12 * 12的乘法口诀表。#define _CRT_SECURE_NO_WARNINGS 1#include#includeint main(){ int i=0, j=0; int n = 1; scanf("%d", n); printf("---任意乘法口诀表--原创 2016-04-11 21:30:52 · 386 阅读 · 0 评论 -
用c语言实现求一个字符串长度的函数
用c语言实现求一个字符串长度的函数:分析:c语言中并没有限制字符串长度,程序必须扫描完整个字符串才能知道字符串的长度根据题目要求写出函数声明: int My_Strlen(const char *ps);int My_Strlen(const char *ps)//不用中间变量 用递归实现{ if((ps == NULL)||(*ps == '\0'))原创 2016-06-18 16:46:01 · 2580 阅读 · 0 评论 -
关于两种头文件包含及其解决办法
1、C语言中用两种方式的区别:(1)、使用表示按照标准方式搜索要嵌入的文件,该文件位于c++系统目录下的include子目录下,一般包含系统提供的标准文件时采用这样的方式;使用" "表示首先在当前目录下搜索要嵌入的文件,如果没有再按照标准方式搜索,对用户自己编写的文件一般采用这种方式。(2)、用(3)、C语言专用的头文件目录包含在C语言安装的根目录中,“ ”会先搜索你自己写的头文原创 2016-05-16 21:14:34 · 1364 阅读 · 0 评论 -
字符串左旋右旋——三步旋转法和移相法
字符串左旋右旋——三步旋转法和移相法!(K个字符)原创 2016-04-19 15:15:59 · 2223 阅读 · 0 评论 -
函数篇(2):20元钱你可以喝几瓶饮料?
每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水。(编程实现)#define _CRT_SECURE_NO_WARNINGS 1#include #include#define MAX 20int main(){ int money = MAX; int count = MAX; while (1) { if (money % 2 != 0)原创 2016-04-11 22:10:04 · 600 阅读 · 0 评论 -
一个简单的程序教你检测你的机器是大端还是小端?
描述大端字节序和小端字节序;并编写程序判断当前的机器是大端还是小端?大端字节序:低位放在高地址处,高位放在低地址处;小端字节序:低位放在低地址处,高位放在高地址处。#define _CRT_SECURE_NO_WARNINGS 1#includeint check_sys(){ int a = 1; char *p = (char*)&a; if (*p == 1) retu原创 2016-04-11 22:07:05 · 1711 阅读 · 2 评论 -
可变参数列表:一个练习题
//可变参数列表的一个练习题#define _CRT_SECURE_NO_WARNINGS 1#include#include#include#include#define va_start(arg,va);va_start(arg,val)void print(char *val, ...) { char *c = NULL; va_list arg; va_start原创 2016-04-11 21:55:25 · 343 阅读 · 0 评论 -
递归实现:一个数的各位数字之和、n^k、字符串逆序
//用递归实现字符串的字符反转#define _CRT_SECURE_NO_WARNINGS 1#include#includevoid rev_print(char *x ){ if (*x) rev_print(x + 1); else return; putchar(*x);}int main(void){ char line[80]; printf("请原创 2016-04-11 21:54:29 · 444 阅读 · 0 评论 -
数组篇(1):给we are happy的每一个空格加“ ”、字符串逆序:i am a student
#define _CRT_SECURE_NO_WARNINGS 1#include#include#includevoid reverse(char* left, char* right){ assert(left); assert(right); while (left < right) { char tmp = *left;原创 2016-04-11 21:48:20 · 358 阅读 · 0 评论 -
C语言基础篇(2):按位比较是否相等、找出不是成对出现的单数、不用中间变量实现两个数的交换
//两个32比特位的数有几个不相同的比特位#include#includeint main(){ int m, n, i, x, y, count = 0; printf("请输入m,n:"); scanf_s("%d%d", &m, &n); for (i = 31; i >= 0; i--) { x = m % 2; m = m / 2; y = n % 2;原创 2016-04-11 21:44:23 · 2433 阅读 · 0 评论 -
你的机器是大端还是小端?
你的机器是大端还是小端?——测试一下你就知道。大端模式(Big-endian):是指数据的低位(就是权值郊县的后面那几位)保存在内存的高地址中;而数据的高位,保存在内存的低地址中。这样的恶存储方式有点儿类似把数据当做字符串顺序处理:地址由小向大增加,而数据从高位往低位放。小端模式(Little-endian):是指数据的低位保存在内存的低地址中;而数...原创 2016-08-06 10:16:09 · 897 阅读 · 0 评论