C语言复习笔记
wangfei20001396
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
const char *p与char * const p区别
这里是const char *p;他的意思是p指向的目标空间的内容不可变化.例如定义char c='A'; p=&c;则c的内容不可以变化.如c='B';等一些企图改变变量c的值的做法都不行.然而p仍然是动态的,就是它还可以指向别的空间,被赋予新的地址值,只是被他指向的目标空间的内容不可变化,如上面的c值始终为'A',不可以更新,而一但p指向别处,则c就更新了.问题补充中的变化实质上是p的值的变化,这是允许的.因为字符串出现在表达式中时它的值是它的首字母的地址,所以"xxx"和"yyy"都是地址值.而若企图原创 2010-06-27 16:53:00 · 575 阅读 · 0 评论 -
C程序100实例之八
【程序71】题目:编写input()和output()函数输入,输出5个学生的数据记录。1.程序分析:2.程序源代码:#define N 5struct student{ char num[6]; char name[8]; int score[4];}stu[N];input(stu)struct student stu[];{ int i, j; for(i=0; i { printf("/n please input %d of %d/n", i+1,转载 2010-07-02 18:32:00 · 385 阅读 · 0 评论 -
C程序100实例之五
【程序41】题目:学习static定义静态变量的用法 1.程序分析:2.程序源代码:#include "stdio.h"varfunc(){ int var = 0; static int static_var = 0; printf("/40:var equal %d /n", var); printf("/40:static var equal %d /n", static_var); printf("/n"); var++; static_var++;}voi转载 2010-07-02 17:23:00 · 300 阅读 · 0 评论 -
C程序100实例之四
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。2.程序源代码:void main(){ char letter; printf("please input the first letter of someday/n"); while((letter = getch()) != 'Y') /* 当所按字母为Y时才结束 */ { swi转载 2010-07-02 17:21:00 · 495 阅读 · 0 评论 -
C程序100实例之三
【程序21】题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。1.程序分析:采取逆向思维的方法,从后往前推断。2.程序源代码:main(){ int day, x1, x2; day = 9; x2 = 1; while(day>0) { x1 = (x2 + 1) * 2; /*转载 2010-07-02 17:21:00 · 373 阅读 · 0 评论 -
C程序100实例之二
【程序11】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析: 兔子的规律为数列1, 1, 2, 3, 5, 8, 13, 21....2.程序源代码:main(){ long f1, f2; int i; f1 = f2 = 1; for(i = 1; i { printf("%12ld %12ld", f1, f2); if(i %转载 2010-07-02 17:20:00 · 315 阅读 · 0 评论 -
C程序100实例之一
【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。2.程序源代码:main(){ int i, j, k; printf("/n"); for(i=1; i for(j=1; j for(k=1; k { if(i != k && i !=j && j != k转载 2010-07-02 17:18:00 · 440 阅读 · 0 评论 -
16道嵌入式C面试题
> 预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3). 意识到这个转载 2010-07-02 17:07:00 · 630 阅读 · 0 评论 -
C程序100实例之七
【程序61】题目:打印出杨辉三角形(要求打印出10行如下图)1.程序分析:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 12.程序源代码:main(){ int i, j; int a[10][10]; printf("/n"); for(i=0; i { a[i][0] = 1; a[i][i] = 1; } for(i=2;i for(j=1;j a[i][j] = a[转载 2010-07-02 18:14:00 · 343 阅读 · 0 评论 -
text, data (initialized), bss, stack, heap几个段
根据APUE,程序分为下面的段:.text, data (initialized), bss, stack, heap。data/bss/text: text段在内存中被映射为只读,但.data和.bss是可写的。bss是 英文Block Started by Symbol的简称,通常是指用来存放程序中未初始化的全局变量的一块内存区域,在程序载入时由内核清0。BSS段属于静态内存分配。它的初始值也是由用 户自己定义的连接定位文件所确定,用户应该将它定义在可读写的RAM区内,源程序中使用malloc分配的内存转载 2010-06-27 16:52:00 · 3386 阅读 · 1 评论 -
枚举类型和指针的长度
1.枚举类型和int型应该一样,指针肯定是和平台位数一样 2.指针的存储内容是内存地址,他的大小当然等于地址总线的宽度。 32位机是32位。即4字节。 16位即是16位。既2字节。 依次类推。原创 2010-06-27 16:48:00 · 942 阅读 · 0 评论 -
keril中不能定义全局变量时初始化的原因
<br />在嵌入式系统中,全局变量的初始化是在系统启动的过程中来做的。做法其实很简单,就是把外存(ROM或Flash等存放CODE的介质)中的全局变量空间拷贝到内存中的全局变量空间映像中。如果没有这一步正确的从外存到内存的拷贝工作,你的全局变量是没有初始化值的。<br /><br />编译器如果没有生成这步代码,那你的全局变量就都是没有办法初始化的。<br /><br />用const为啥能解决问题呢?因为const型的变量被Keil直接放到了外存中,也就是放到了代码段中。以后使用const实际不是访问内原创 2011-04-27 20:20:00 · 1348 阅读 · 0 评论
分享