- 博客(23)
- 收藏
- 关注
原创 C语言 程序 素数圈圈
题目:将1,2,3,。。。,20这20个连续的自然数排成一圈,使任意两个相邻的自然数之和均为素数。分析:用两个数组,一个数组判断是否使用过这个数,一个数组存储这个圈。在找不到与前面的数相加为素数并没有使用过时,用i--,再看前面的数。下面是我写的程序:#include int prime_num(int num)//判断是否为素数{ int
2016-07-29 17:44:57 1331
原创 单片机 基础概念
PCB绘制工业VS手工PCB步骤其实都差不多,工业的肯定更精细。但还是有两大区别的:就是工业多了铺油(绝缘,保护;只把焊接部分留出来)和 丝印;PCB层介绍Solder层为露铜层,即铺绿油的层paste层为钢网层,工厂加工时需要,自己做PCB不需要(用来批量加工)keep-out layer ,分割层,用来给板子规定形状,或者打洞
2016-07-28 14:47:28 390
原创 C语言 关键字!!面试常碰到!
关键字register 寄存器变量1 作用:请求编译器尽可能(资源有限喃!)将变量保存在CPU的内部寄存器中。2 目的:为了节省CPU从内存中读取数据的时间,从而提高了程序的运行效率。3 什么时候使用?频繁被访问的变量。4 注意事项: 1 register只能修饰局部变量不能修饰全局变量 (因为全局
2016-07-25 18:43:55 437
原创 C语言 函数小总结
函数乃C语言精华之所在。对于函数我们需要知道:1 为什么要用函数?函数的好处大致可以分为3点:1提高代码的复用性2提高代码的维护性3可以实现迭代开发,也就是可扩展开发。2 调用函数到底做了什么大致为5步:1通过函数名找到函数的入口地址,2给形参分配空间,3传参:就是把实参变量对应的空间的值传给形参,4执行函数体里的语句,5函数返回并释放内存空间。这也就是为什么修
2016-07-21 16:16:40 697
原创 C语言 数组VS指针
数组和指针完全是不一样的两个东西,但他们可以完成相同的功能。所以我们需要区分他们,大概可以从5个方面来区分:1 空间分配:数组:如果是局部变量,就在栈上分配一块连续的空间,分配的空间一般要比实际使用的大。属于静态分配空间。指针:在堆上分配空间,是动态分配空间2 访问效率:数组属于直接访问,所以效率较高。而指针需要先访问指针的地址,再找到它所指向的空间,属于间接访
2016-07-21 10:21:45 402
原创 C语言 malloc realloc calloc
1 malloc 在C语言中,用到指针就会想到动态分配空间,动态分配空间最基础的就是malloc。头文件:stdlib.h或malloc.h(realloc和calloc也一样)void *malloc(size_t size);功能:分配长度为num_bytes字节的内存块返回值:如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回
2016-07-21 09:17:25 323
原创 C语言 避免野指针!!!
想要避免野指针,首先要知道什么是野指针?野指针就是随机指向内存中一块内存。野指针可能导致内存泄漏,在指向不可访问的内存或已经释放的内存的时候,就会出现段错误,也就是内存错误。如何避免野指针?1在定义指针时,初始化为空。同样在释放指针后,也有将指针指向NULL。NULL 是个宏,指向0地址,0地址是不允许访问和操作的!#define NULL (void *)0指向N
2016-07-20 19:11:23 582
原创 C语言 程序 打印日历
请打印出任意年份的日历这个题目理解起来很简单,也没什么高深的算法,就是有一点点“啰嗦”。#include int print_mon(int year,int mon ,int week){ int day; int i; if(mon 12 || week 6)//出现不可能的值退出程序 {exit(1);
2016-07-17 16:00:19 1963
原创 C语言 程序 位运算
1. 题目:请编写一个c函数,该函数给出一个字节中被置为1的位的个数用一个循环,和1与判断是否为1,若是1计数。#include int count1(int b){ int n = 0; int i = 0; while(i {if(b & 1){ n++;}b = b >> 1;//右移i++;
2016-07-16 16:38:57 423
原创 C语言 程序 杨辉三角实现
9.杨辉三角形在屏幕上显示杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1………………………………..*问题分析与算法设计杨辉三角形中的数,正是(x+y)的N次方幂展开式各项的系数。本题作为程序设计中具有代表性的题目,求解的方法很
2016-07-16 10:29:00 11316
原创 C语言 程序 阶乘尾数零的个数
7.阶乘尾数零的个数100!的尾数有多少个零? *问题分析与算法设计 可以设想:先求出100!的值,然后数一下末尾有多少个零。事实上,与上题一样,由于计算机所能表示的整数范围有限,这是不可能的。 为了解决这个问题,必须首先从数学上分析在100!结果值的末尾产生零的条件。不难看出:一个整数若含有一个因子5,则必然会在求100!时产生一个零。因此问题转化为求1到100这
2016-07-14 20:52:05 4855
原创 C语言 i++ ++i 傻傻分不清
i++就是先使用再相加(使用后是指此语句结束,是 ; , 之类的符号之后),++i就是先相加使用我感觉i++,++i使用要分为两种情况1 是在算式计算中i++就先不管它,等这条语句结束再相加。例:int i;i = i * ((i++) + (++i));先算(i++) + (++i) i++中的加加等遇到;后再加所以是3 + 3 = 6i * 6
2016-07-14 19:31:45 761 1
原创 C语言 程序 字符串转换成整型,整型转换成字符串
atoi这个函数的实现要考虑正负还有字母等情况下面是字符串转换成整型数#include #include int my_atio(char *String);int main(){ char String[100]; int num; printf("please input a string:\n");
2016-07-14 17:20:26 8237 1
原创 printf 和 scanf 的使用
printf和scanf常常被使用,我也查阅写资料了解了部分printf和scanf的使用。要是有新发现继续更新。要了解printf,首先要知道printf是一个行缓冲,也就是满一行输出,只有两种情况不满一行也输出,一是程序结束时,清理缓冲区。二是后面有scanf输入,在输入前会先清理缓冲区。(因为scanf和printf使用一个缓冲区)常规使用可以看这个,感觉写的蛮清楚点:h
2016-07-14 15:41:27 1251
原创 C语言 获取字符串的方法
在C语言中,获取字符串主要有三种方法1 scanf("%s",src);这个方法很常见,遇到空格和回车结束。例:#include int main(){char src[100];scanf("%s",src);printf("%s",src);return 0;}scanf也可以遇到空格不结束。%
2016-07-14 11:06:06 31425
原创 C语言 程序 去最高最低分的评分 , 偏心和不偏心的评分
4.歌星大奖赛在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。*问题分析与算法设计这个问题的算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。下面是我写的程序,在输入时算出最大最小的是第几个,再算平均分,然后再输出。#include #define
2016-07-14 10:10:15 1992
原创 C语言 程序 画圆、画圆和y=x^2
绘制圆在屏幕上用“*”画一个空心的圆 *问题分析与算法设计打印圆可利用图形的左右对称性。根据圆的方程:R*R=X*X+Y*Y可以算出圆上每一点行和列的对应关系。 程序思想和之前的两个程序一样。整个圆向右平移R个单位,因为长宽比不一样所以还要有个系数,下面是我写的程序#include #include #define R 10#defi
2016-07-13 10:21:29 11092 2
原创 面向过程处理机制VS面向对象处理机制
面向过程处理机制就是把要实现的功能分为一步一步,也就是一个个函数。先做**,再做**,然后是**,最后是**。每一步非常具体,完成了所有步也就实现了这个功能。也就是实现原理。面向对象处理机制就是将要解决的问题分解成各个对象,不是为了实现每个步骤,而是描叙某个事物在整个解决问题的步骤中的行为。一个对象是个方法面面的系统,也就是实现效果。看到一个特别清楚的例子区
2016-07-11 16:26:26 651
原创 C语言 程序 绘制余弦曲线和直线 , 绘制cos(x)和sin(x)
绘制余弦曲线和直线在屏幕上显示0~360度的cos(x)曲线与直线f(x)=45*(y-1)+31的迭加图形。其中cos(x)图形用“*”表示,f(x)用“+”表示,在两个图形相交的点上则用f(x)图形的符号。*问题分析与算法设计本题可以在上题的基础上进行修改。图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。为此,可以先判断图形的交点,再分别
2016-07-11 16:00:32 4905
原创 操作系统内核为啥用C语言?(C语言特点)
世界上绝大部分的操作系统内核都是用C语言编写的,然而这是为什么喃?这个问题我们就必须结合C语言的特点了!C语言有三大特点:1 非常好的可移植性可移植性就是指与软件从某一环境转移到另一环境下的难易程度。也就是更换不同体系结构的软/硬件平台,修改的代码越少越好。因为不同机器的C语言源码(主要是函数库中的函数名和其参数)都是差不多的,所以C语言的可移植性好。2
2016-07-11 11:04:10 2419
原创 C语言 程序 用*显示cos(x)和sin(x)
1.绘制余弦曲线在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线*问题分析与算法设计 如果在程序中使用数组,这个问题十分简单。但若规定不能使用数组,问题就变得不容易了。 关键在于余弦曲线在0~360度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行。为了获得本文要求的图形就必须在一行中
2016-07-11 10:24:13 4996 2
原创 gcc 编译过程
gcc的编译过程被分为四个阶段 1预处理阶段预处理阶段将以#开头的命令,修改原程序。一共是3个,1头文件展开#include2条件编译#ifdef,#ifndf,#else,#endif3宏替换#define命令:Gcc -E test.c > test.i 2编译阶段 先检查代码是否规范,是否有语法错等然后将.i文件翻译成汇编语言。命令:Gcc -S tes
2016-07-09 15:47:31 301
原创 GCC中-O 优化究竟做了啥?
在网上查了好多资料感觉讲的都不太清楚,现在也只能理解部分,做了总结,如果有错请指出-O0 不做优化,默认选项-O1 这是最基本的优化等级,形成更小更快的代码但不会花费太多的编译时间-O2 做-O1的所有优化,几乎所有优化都做,编译器并不进行循环打开以及函数内联,提高代码性能但不增大体积和不增加过多编译时间-O3 在O2的基础上优化,增加-finline-fu
2016-07-09 11:06:33 1002
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人