- 博客(36)
- 收藏
- 关注
原创 C++学习(4)
1.this指针 当前的对象,在类的内部访问成员使用,pubic,protected,private; 只能在非静态成员函数内部使用; 2. static 在C++中 static在类的内部修饰变量,对象是共享使用,在类内声明,在类外定义; 类型 类名::变量名 = 数值; 在类内声明的时候前面加static,在类外初始化
2017-08-04 20:27:20
338
原创 C++学习(3)
1.构造函数: 名字和类名相同,没有返回值,也不需要显式调用,在创建对象的时候自动执行。---专门用来初始化对象的;2.访问权限:在类的内部,无论public,protect,private,都可以互相访问;没有限制; 在类的外部,只能是通过对象访问public的成员,不能访问private,protected成员;通过类的内部public的函数访问private;
2017-08-04 20:26:38
264
原创 C++学习(2)
一、什么是堆?什么是栈?堆和栈的区别是什么? 栈:由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 堆:一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回 收。用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
2017-08-04 20:26:01
237
原创 C++学习(1)
一、什么叫做面向对象? 面向对象就是把数据及对数据的操作方法放在一起,作为一个相互依存的整体--------对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。 面向过程就是自顶向下顺序执行,逐步求精;其程序结构是按功能划分为若干个基本模块,这
2017-08-04 20:23:58
213
原创 类的继承练习题
定义一个字符串类DelSameStr,从左到右对字符串中每个字符删除其后所有相同的字符,只留下第一次出现的那一个。例如,若字符串为”cocoon”,删除重复出现的字符后,其结果是字符串”con”。具体要求如下:(1)私有数据成员。char *s1:指向原字符串。char *s2:指向结果字符串。(2) 公有成员函数。DelSameStr(char *s):构造函数,动态分配s1
2017-01-22 20:52:09
606
原创 类的继承练习
编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推。 例如,原始二维数组为,逆向存放后变为。试建立一个类REVARR,完成上述工作。具体要求如下:(1)私有数据成员int a[M][N]:初始化时存放原始二维数组,最终存放逆向存放后的二维数组。(2)公有成员函数REVARR(int
2017-01-20 21:02:10
320
原创 类的继承练习题
2.对一个5位数的任意整数,求出其降序数。例如,整数是82319,则其降序数是98321。算法提示:将整数的各位数分解到一维整型数组a中,再将a数组中的元素按降序排序,最后输出a数组元素值。试建立一个类DescendNUM,用于完成该功能。具体要求如下:(1)私有数据成员int n:存放5位数的整数。int a[5]:存放其元素的降序排列值。(2)公有成员函数DescendNU
2017-01-19 21:29:04
692
原创 C++类的继承练习(1)
1.建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle,求出面积并获取相关信息。具体要求如下:(1)形状类Shape(a)保护数据成员double x,y:对于不同的形状,x和y表示不同的含义,如对于圆,x和y均表示圆的半径,而对于矩形,x表示矩形的长,y表示矩形的宽。访问权限定义为保护类型是为了能被继承下去,以便派生类能直接访问x和y。
2017-01-18 20:31:14
667
原创 用循环模式打印菱形
#include int main (){ int i; int j; int k; for (i = 0; i { for (j = 0; j { printf (" "); } for (k = 0; k { printf ("*"); } printf ("\n"); } for
2016-12-16 19:49:29
300
原创 自制的简易通讯录
#include #include #include #define OK 0#define ERROR -1#define MALLOC_ERROR -2 typedef struct node{ long ID; //ID号 char Name[20];
2016-12-12 23:03:26
600
原创 复制一个字符串
#include#define N 50char *strcpy(char *dest,const char *src){ char *p = dest; while((*dest++ = *src++)!='\0') { ; } return p;}int main(){ char str1[N]; char str
2016-12-12 00:34:19
293
原创 创建单链表并赋值,要求遍历能输出1~9
#include #include #define OK 0#define ERROR -1#define MALLOC_ERROR -2 typedef int ElementType;typedef struct node{ ElementType data; // 结点的数据 struct node *next;
2016-12-10 23:50:51
968
原创 编写程序,将十进制转换为8进制并输出
#include int main(){ int n; int i = 0; printf ("n = "); scanf ("%d", &n); int a[10] = {0}; while (n) { a[i++] = n % 8; n = n / 8;
2016-12-09 23:59:31
6991
1
转载 埃及分数
分子是1的分数,叫单位分数。古代埃及人在进行分数运算时。只使用分子是1的分数。因此这种分数也叫做埃及分数,或者叫单分子分数。问题:将一个分数化为用埃及分数表示【贪心算法】设a、b为互质正整数,a步骤一: 用b 除以a,得商数q1 及余数r1。(r1=b - a*q1)步骤二:把a/b 记作:a/b=1/(q1+1)+(a-r)/b(q1+1)步骤三:重复步骤2,直到分解完毕
2016-12-08 22:55:44
1051
原创 习题-输出乘法口诀
#includeint main(){ int i,j; int sum; for(i=1;i { for(j=i;j { sum=i*j; printf("%4d*%d=%d",i,j,sum); } printf("\n"); } return 0
2016-12-07 22:47:55
256
转载 malloc函数实现原理
任何一个用过或学过C的人对malloc都不会陌生。大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉。但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上,malloc只是C的标准库中提供的一个普通函数,而且实现malloc的基本思想并不复杂,任何一个对C和操作系统有些许了解的程序员都可以很
2016-12-06 22:59:47
1222
1
原创 简单的链表
#include #include #define OK 0#define ERROR -1#define MALLOC_ERROR -2 typedef int ElementType;typedef struct node{ ElementType data; // 结点的数据 struct node *next;
2016-12-05 23:04:32
175
原创 简单的顺序表
#include #include #define INIT_SIZE 100 // 顺序表初始化大小#define INCESS_SIZE 20 // 顺序表满后的每次扩充大小#define OK 0#define ERROR -1#define MALLOC_ERROR -2typedef int Element
2016-12-04 23:50:15
188
原创 简单的顺序表
#include #include #define INIT_SIZE 100 // 顺序表初始化大小#define INCESS_SIZE 20 // 顺序表满后的每次扩充大小#define OK 0#define ERROR -1#define MALLOC_ERROR -2typedef int Element
2016-12-04 23:49:39
200
转载 GDB调试命令以及GDB调试段错误
一、GDB的调试命令。C语言是:cc -g tst.c -o tst;C++是g++ -g -o (生成的文件) file.cppC++调试程序命令:gdb file 启动,罗列代码行数ist 1,break (行数),info break,run(r)调试运行,step(s)单步调试,查看变量 print(p) 变量名,查看堆栈式bt,继续调试continue(c),退出程序q
2016-12-04 00:03:03
421
原创 C语言指针总结
指针(Pointer)就是内存的地址,C语言允许用一个变量来存放指针,这种变量称为指针变量。指针变量可以存放基本类型数据的地址,也可以存放数组、函数以及其他指针变量的地址。程序在运行过程中需要的是数据和指令的地址,变量名、函数名、字符串名和数组名在本质上是一样的,它们都是地址的助记符:在编写代码的过程中,我们认为变量名表示的是数据本身,而函数名、字符串名和数组名表示的是代码块或数据块的首地
2016-12-02 22:41:49
164
转载 C语言指针数组
如果一个数组中的所有元素保存的都是指针,那么我们就称它为指针数组。指针数组的定义形式一般为:dataType *arrayName[length];[ ]的优先级高于*,该定义形式应该理解为:dataType *(arrayName[length]);括号里面说明arrayName是一个数组,包含了length个元素,括号外面说明每个元素的类型为dataType *。除了每
2016-12-01 22:48:05
143
原创 快速找出一个数组中的最大数和第二大数
#includeint main(){ int n; printf("请输入你想输入数字的个数:"); scanf("%d",&n); int a[n]; int i; for(i=0;i { scanf("%d",&a[i]); } int j; int temp; for(i=0;i { f
2016-11-30 23:38:20
680
转载 C语言指针使用陷阱
转载自:http://blog.youkuaiyun.com/porscheyin/article/details/3461670“C语言诡异离奇,陷阱重重,却获得了巨大成功!”——C语言之父Dennis M. Ritchie。Ritchie大师的这句话体现了C语言的灵活性以及广泛的使用,但也揭示了C是一种在应用时要时刻注意自己行为的语言。C的设计哲学还是那句话:使用C的程序员应该知道自己在干什么。有
2016-11-29 23:05:42
492
原创 编写一个程序,求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12
#include #include int main(){ int i; for (i=1000; i { int a = i / 1000; //千位 int b = i % 1000 / 100; //百位 int c = i % 100 /10; //十位 int d = i % 10;
2016-11-28 23:42:01
5833
原创 求100以内的素数
#include #include int main(){ int n; int i; int k; for(n = 1; n { k = sqrt(n); for(i = 2; i { if(n % i == 0) break;
2016-11-27 23:02:51
280
原创 输入一个整数N,求1到N这N个整数中1出现的次数
#include int main(){ int num; scanf ("%d", &num); //输入一个数 int i; int count = 0; for (i = 0; i <= num; i++) { int temp = i; while (temp) {
2016-11-26 21:00:38
1106
1
转载 C数组
C 数组C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来
2016-11-26 00:37:51
257
原创 C指针初识
什么是指针?指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。指针变量声明的一般形式为:type *var-name;在这里,type 是指针的基类型,它必须是一个有效的 C 数据类型,var-name 是指针变量的名称。用来声明指针的星号 * 与乘法中使用的星号是相同的。但是,在这个语句中,星号
2016-11-24 22:54:56
173
原创 冒泡排序
#include#define N 10 //定义十个数int main(){ int i; int j; char a[N]; int temp; scanf("%s",&a); for (i = 0; i { for (j = 0; j { if (a[j] > a
2016-11-22 22:28:53
161
转载 shell常用命令
find-namefind . -name "*.log" -a -size +2k -print -typefind . -type f -name "*log" -print-sizefind . -type f -name "*log" -size +337c -print-printfind . -name "*.log" -print
2016-11-19 23:01:44
388
转载 C语言函数的返回值
关于这个问题,大家应该在很多书上看到过:1.函数的返回值不可以是局部变量;2.函数内的局部变量在函数调用完成之后自动销毁,因为局部变量是存放于栈空间内的; 理论很明确,但是实际应用中还是有一些疑惑的。先找几个常见的例子一步一步深入说明。[cpp] view plain copy print?#include #inclu
2016-11-18 23:23:29
584
原创 C语言经常犯的一些错误
1、书写标识符时,忽略了大小写字母的区别。main(){ int a=5; printf("%d",A);}编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。2、忽略了变量的类型,进行了不合法的运算。main(){ float a,b; pr
2016-11-17 23:15:27
694
1
原创 11月13日课堂笔记
周末学习了C语音基本数据类型与表达式,今天复习了一下一。常用单位 位 最小储存单位 字节 一个字节8位 字 根据机器不同,几位的机器就要几位 1KB=1024B 1MB=1025KB 1GB=1024MB 1TB=1024GB二。数据存储方式 整数 以二进制数字存储
2016-11-16 23:46:11
269
转载 linux GDB调试学习
编译如果要进行编译,请在 gcc(或 g++)下使用额外的 -g选项来编译程序: gcc -o eg -g eg.c运行 gdb可以使用 gdb 命令并指定程序名作为参数来运行 gdb,例如 gdb eg;或者在 gdb 中,可以使用 file 命令来装入要调试的程序,例如 file eg。这两种方式都假设您是在包含程序的目录中执行命令。装入程序之后,可以用 gdb 命令
2016-11-15 22:58:01
188
原创 学习C语言一些体会
在大学里上过C语言的课,也上过C++的课,但都没有认真去学习,经过昨天一天C语言的培训我对C语言有些不一样的体会。 虽然老师讲的都是C语言里面最简单的数据类型,还有一些简单的数据运算,但是我基础实在是差,基本从零学。老师一点一点讲解,并夹带着让我们自己去敲代码,运行结果。我觉得这种学习方式很好。学校上课方式太呆板,听得很枯燥,一下课就全忘了。还是这种边学习边实践的方式才能更好的学习C语言
2016-11-14 23:19:11
229
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人