编程语言
文章平均质量分 71
firefox-w
c语言,c++, linux操作系统,数据结构,计算机网络
展开
-
交换两个数
#includeint main(){ int a = 1; int b = 2; /*a = a^b; b = a^b; a = a^b; printf("a=%d,b=%d", a, b);*/将十进制数转化为二进制数然后按位异或 /*a = a + b;原创 2016-10-23 10:20:51 · 746 阅读 · 0 评论 -
linux目录权限修改(以及umask用法)
一.目录权限 Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。 文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户原创 2017-03-19 11:51:36 · 13976 阅读 · 0 评论 -
c++实现一个日期类
#pragma once#include using namespace std;class Date{private: int _year; int _month; int _day; int GetMonthDays(int year, int month)const;//获取某个月的天数public: Date() : _year(1900) , _m原创 2017-03-11 21:12:30 · 1082 阅读 · 0 评论 -
c++实现复数类运算
#define _CRT_SECURE_NO_WARNINGS 1#includeusing namespace std;class Complex{private: int _real; int _image;public: Complex(int real=1,int image=2) :_real(real) ,_image(imag原创 2017-03-12 19:38:20 · 6170 阅读 · 0 评论 -
模板实现链表队列
#pragma once#include #include using namespace std;templatestruct ListNode{ ListNode* _next; ListNode* _prev; T _data; ListNode(const T& x) :_data(x) ,_next(NULL) ,_prev(NULL) {}};原创 2017-04-09 10:41:41 · 365 阅读 · 0 评论 -
c++(模板类)实现顺序表
#pragma once#include #include #include using namespace std;templateclass SeqList{public: SeqList() :_a(NULL) ,_capacity(0) ,_size(0) {} SeqList(const SeqList& s) :_size(s._size)原创 2017-04-09 16:14:30 · 645 阅读 · 0 评论 -
明晰class和struct之间的区别
class与structc++最初被称为“c with class”,足见class在c++中的地位。在c++中我们可以用class自定义用户数据类型,然而它还存在一个类似的——struct,他们似乎有着太多的相同的特点与功能。由于在设计c++时就考虑到要向下兼容c,所以c++中的很多东西都能在c中找到,要谈及struct就要从c谈起。c中struct的定义如下:struct 结原创 2017-03-31 21:15:28 · 20571 阅读 · 0 评论 -
c++动态内存分配(new/new[]和delete/delete[])
为了解决这个普通的编程问题,在运行时能创建和销毁对象是基本的要求。当然,C已提供了动态内存分配函数malloc( )和free( ),以及malloc( )的变种(realloc:改变分配内存的大小,calloc:指针指向内存前初始化),这些函数在运行时从堆中(也称自由内存)分配存储单元,但是运用这些库函数需要计算需要开辟内存的大小,容易出现错误。 那么原创 2017-03-13 21:14:21 · 773 阅读 · 0 评论 -
c++实现单链表
#define _CRT_SECURE_NO_WARNINGS 1#include #include using namespace std;typedef int dataType;struct ListNode{ dataType _data; ListNode* _next; ListNode(const dataType x) :_data(x)原创 2017-03-25 17:57:48 · 392 阅读 · 0 评论 -
c++实现顺序表
#define _CRT_SECURE_NO_WARNINGS 1#include #includeusing namespace std;class Seqlist{ public: Seqlist() :_a(NULL),_size(1),_capacity(1) { } Seqlist(const Seqlist& s) { if (this原创 2017-03-25 18:12:34 · 710 阅读 · 0 评论 -
智能指针(auto_ptr scoped_ptr)
auto_ptr用法: 用法一: std::auto_ptrm_example(new ClassName ()); 用法二: std::auto_ptrm_example; m_example.reset(new ClassName()); 用法三(指针的赋值操作): std::aut原创 2017-04-12 22:01:23 · 425 阅读 · 0 评论 -
浅析shared_ptr 和weak_ptr、定制删除器
shared_ptr的作用如同指针,但又比指针更加安全,甚至还能提供基本的线程安全保证。记录了有多少个shared_ptrs共同指向一个对象(即引用计数),它基本上解决了在使用c++开发过程中不可避免的使用指针而遇到的许多问题,例如:内存泄漏和内存的提前释放,还有由于指针内存申请而产生的异常问题等。shared_ptr指针解决了auto_ptr和一旦最后一个这样的指针被销毁,也就是一旦某个对象的引原创 2017-04-17 17:16:20 · 4410 阅读 · 0 评论 -
魔力手环
小易拥有一个拥有魔力的手环上面有n个数字(构成一个环),当这个魔力手环每次使用魔力的时候就会发生一种奇特的变化:每个数字会变成自己跟后面一个数字的和(最后一个数字的后面一个数字是第一个),一旦某个位置的数字大于等于100就马上对100取模(比如某个位置变为103,就会自动变为3).现在给出这个魔力手环的构成,请你计算出使用k次魔力之后魔力手环的状态。 #define _CRT_S原创 2017-04-09 09:45:48 · 1074 阅读 · 0 评论 -
c++异常处理
异常处理C++语言本身或标准程序库所抛出的所有异常,都派生自基类exception。这是其他数个标准异常类别的基类,它们共同构成一个类体系:传统错误处理办法1. 终止程序。(如段错误等)2. 返回错误码。3. 返回合法值,让程序处于某种⾮法的状态。(误导人,不可用)4. 调一个预先设置的出现错误时调⽤的函数。(回调函数)5.使用abort()原创 2017-04-20 17:49:11 · 326 阅读 · 0 评论 -
模拟实现list(迭代器)
#pragma once;#include #include#include using namespace std;templatestruct __ListNode{ T _data; __ListNode* _next; __ListNode* _prev; __ListNode(const T& x) :_data(x) ,_nex原创 2017-04-23 10:44:35 · 420 阅读 · 0 评论 -
A^B中最后三位(百度2011研发工程师笔试卷)
给定两个数A,B(0,10000),求A^B中最后三位数是多少#define _CRT_SECURE_NO_WARNINGS 1#include int main(){ int num = 0; int b = 0; long long s = 1; int c = 0; scanf("%d",&num);//底数 scanf("%d",&b);//指数 if (b==1) {原创 2017-05-22 15:49:49 · 811 阅读 · 0 评论 -
二叉树的递归与非递归
#include #include #include #include using namespace std;templatestruct BinaryTreeNode{ BinaryTreeNode* _left; BinaryTreeNode* _right; T _data; BinaryTreeNode(const T& x) :_left(NULL) ,原创 2017-05-06 17:44:20 · 480 阅读 · 0 评论 -
c++模拟实现string
#define _CRT_SECURE_NO_WARNINGS 1#include using namespace std; class String { public: String(const char* str=" ") { size_t len=strlen(str); _str=new char[len+1]; strcpy(_str,str原创 2017-03-18 20:14:37 · 1032 阅读 · 0 评论 -
注释转换
// 将c语言注释转化为cpp注释//头文件 "commentconvert.h"#ifndef __COMMENT_CONVERT_H__#define __COMMENT_CONVERT_H__#include#includeenum STATE //枚举四种状态{ NUL_STATE, C_STATE, CPP_STATE, END_STATE原创 2017-02-24 21:56:34 · 379 阅读 · 0 评论 -
简单推理题:日本某地发生了一件谋杀案判断凶手,5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手#includeint main(){ int i, sum=0; char killer=6原创 2016-11-16 11:12:43 · 998 阅读 · 1 评论 -
java语言和c语言的区别
首先来说说他们各自的历史:C语言的发展历史C语言的发展颇为有趣。它的原型ALGOL 60语言。(也成为A语言)1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。1970年,美国贝尔实验室原创 2016-11-08 23:00:22 · 1077 阅读 · 0 评论 -
形参和实参
形式参数和实际参数函数的参数分为形参和实参两种。在本小节中,进一步介绍形参、实参的特点和两者的关系。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。函数的形参和实参具有以下特点:原创 2016-11-13 23:02:36 · 878 阅读 · 0 评论 -
十进制转化为二进制输出奇数偶数为
将十进制转化为二进制,再将二进制的奇数位偶数位分别输出#includeint main(){ int num=0, i; char num1; printf("输入正整数\n"); scanf("%d",&num); for(i=31;i>=0;i--) { num1=(num>>i)&1; printf("%d",num1); } printf("\n");原创 2016-11-14 21:16:59 · 1710 阅读 · 0 评论 -
sizeof与strlen的区别
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。 char a1[10];printf("%d",strlen(a1)); //结果是不定的 char a1[10]={'\0'}; printf("%d",strlen(a1 )); //结果为0原创 2016-12-03 10:41:26 · 443 阅读 · 0 评论 -
模拟实现strcpy函数
#define _CRT_SECURE_NO_WARNINGS 1#include #include #include char* my_strcpy(char *dest, const char *scr){ char *ret=dest; assert((dest!=NULL)&&(scr!=NULL)); //检查是否正确 while(*des原创 2016-12-02 23:16:07 · 1530 阅读 · 0 评论 -
扫雷2(可以同时排出多位没有雷的位置)
"sweep.h" //头文件#ifndef __SWEEP_H__#define __SWEEP_H__#define _CRT_SECURE_NO_WARNINGS 1#include#include#include#include#define ROWS 16#def原创 2016-12-03 15:18:19 · 1649 阅读 · 0 评论 -
利用位操作符求平均值
#include#includeint main(){ int num1=10; int num2=20; int avg=((num1&num2)+(num1^num2))>>1; printf("%d\n",avg); system("pause"); return 0;} 在求平均值时用两数相加除二的方法若两个数都是三原创 2016-12-03 16:35:06 · 492 阅读 · 0 评论 -
宏定义与宏函数
宏定义又称为宏代换、宏替换,简称"宏",在程序编译过程中进行宏替换的。格式:#define 标识符 字符串其中的标识符就是所谓的符号常量,也称为"宏名"。预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。掌握"宏"概念的关键是"换"。一切以换为前提、做任何事情之前先要换,准确理解之前就要"换"。即在对相关命令或语句的含义和功能作具体分析之前就要换:例:#原创 2016-12-05 17:10:26 · 1690 阅读 · 0 评论 -
找出数组中只出现一次的元素
#include int find(int arr[],int sz) { int i=0; int ret=0; for(i=0; i<sz; i++) { ret^=arr[i]; } return ret; } in原创 2016-12-05 21:50:08 · 1611 阅读 · 0 评论 -
比较智能的三子棋游戏
#define line 3 //行#define row 3 //列#include#include#includeint Init(char arr[line][row]) //初始化棋盘{ int i=0,j=0; for(i=0;i<line;i++) { for(j=0;j<row;j++) { arr[i][j]='原创 2016-11-18 16:26:31 · 500 阅读 · 0 评论 -
扫雷
sweep.h //头文件******************#define _CRT_SECURE_NO_WARNINGS 1#ifndef __SWEEP_H__#define __SWEEP_H__#include#include#include#include#define ROWS 16#define COLS 16#define原创 2016-11-24 22:25:24 · 505 阅读 · 0 评论 -
字符串函数(strcpy strncpy strcat strncat strcmp strncmp memcpy memmove)
1.strcpy#define _CRT_SECURE_NO_WARNINGS 1#include #include#include#includechar* my_strcpy(char *dest, const char *scr){ char *ret=dest; assert(dest); assert(scr); while(原创 2017-01-12 15:24:30 · 476 阅读 · 0 评论 -
把字符串转为整数
//方案一int stringToInt1( char* string )//此代码就是大多数人能想到的, //但这个代码无法完成较为复杂的字符串转换, //比如有字母嵌套是输出的就是随机值, //另外没有检查字符串是否是空指针, { int number原创 2017-02-27 22:17:38 · 420 阅读 · 0 评论 -
c语言实现顺序表
//线性顺序表#ifndef _SEQLIST_H__#define _SEQLIST_H__#define _CRT_SECURE_NO_WARNINGS 1#include #include #define LIST_INIT_SIZE 1000 //线性表存储空间的初始分配量#define LISTINCRESEMENT 100 //线性表存储空间的分配增量#defin原创 2017-03-03 16:40:27 · 355 阅读 · 0 评论 -
N*N顺时针螺旋递增数组(多益网络)
#include #define MAX 100int main(){ int i = 0; int j = 0; int a[MAX][MAX] = { 0 }; int n = 0; int k = 1; printf("please input a number n:"); while (scanf("%d", &n) != EOF) { k = 1;原创 2017-08-29 16:20:49 · 670 阅读 · 0 评论