
C/C++小例子
文章平均质量分 63
cany1000
码农。无所谓,像蜗牛一点一点爬。
展开
-
网站
1、C++http://www.runoob.com/cplusplus/cpp-interfaces.html 2、个税计算器http://www.us35.com/3、C语言关键字http://c.biancheng.net/cpp/html/450.html4、精品课http://course.jingpinke.com/search?level=benke&subject01=01...原创 2018-06-11 15:23:15 · 499 阅读 · 2 评论 -
C/C++面试一
1、C++和C#除了语法上的差别以外,有什么不同的地方?---- 1)C#有垃圾自动回收机制,程序员不用担心对象的回收。---- 2)C#严禁使用指针,只能处理对象。如果希望使用指针,则仅可在unsafe程序块中能使用指针。---- 3)C#只能单继承。---- 4)C#必须通过类名访问静态成员。不能像C++中那样,通过对象访问静态成员。---- 5)在子类中覆盖父类的虚函数时原创 2017-01-09 13:27:42 · 443 阅读 · 0 评论 -
互斥锁Mutex和信号量
1、Mutex 互斥量/互斥锁Mutex本质上说就是一把锁,提供对资源的独占访问,所以Mutex的主要作用是用于互斥的访问共享资源。Mutex对象的值,只有0和1两个值。这两个值也分别代表了Mutex的两种状态。值为0,表示锁定状态,当前对象被锁定,用户进程/线程如果试图Lock临界资源,则进入排队等待。值为1,表示空闲状态,当前对象为空闲,用户进程/线程可以Lock临界资源,之后Mutex值减1...原创 2018-06-11 14:27:57 · 8199 阅读 · 1 评论 -
C++:构造函数和析构函数能否为虚函数
C++:构造函数和析构函数能否为虚函数?简单回答是:构造函数不能为虚函数,而析构函数可以且常常是虚函数。(1) 构造函数不能为虚函数让我们来看看大牛C++之父 Bjarne Stroustrup 在《The C++ Programming Language》里是怎么说的:To construct an object, a constructor needs the exact type of th...转载 2018-06-11 14:28:17 · 2764 阅读 · 3 评论 -
strcpy/strlen/malloc
1、strcpy需要注意点-- 源字符串加const修饰,表明其为输入参数-- 对源字符串指针和目的字符串指针加非0断言-- 为了实现链式操作,将目的地址返回char * strcpy(char * strDest,const char * strSrc){ assert((strDest != NULL) && (strSrc != NULL)); char * res =...原创 2018-06-11 14:28:58 · 649 阅读 · 0 评论 -
构造函数不能为虚函数
1,从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。2,从使用角度 虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身就是要初始化实例,那...转载 2018-06-11 14:28:41 · 262 阅读 · 0 评论 -
Watchdog
1、在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,称"看门狗"。2、watchdog是Linux看门狗。Linux 自带了一个转载 2017-01-10 16:55:23 · 620 阅读 · 0 评论 -
代码优化--死代码
程序的完整编译过程分为是:预处理,编译,汇编等,如下关于编译阶段的编译优化的说法中不正确的是()A、死代码删除指的是编译过程直接抛弃掉被注释的代码;B、函数内联可以避免函数调用中压栈和退栈的开销C、For循环的循环控制变量通常很适合调度到寄存器访问D、强度削弱是指执行时间较短的指令等价的替代执行时间较长的指令A. 了解编译原理的同学都清楚, 死转载 2017-01-25 15:44:30 · 4229 阅读 · 0 评论 -
printf(),sprintf(),fflush()
1、printf() 中%m.nsm表示占用宽度,n表示从相应的字符串中最多取用的字符串数。如果n<m,需要补空格,没有负号的左补空格,有负号的右补空格。如果n>m,按照n指定的宽度进行输出。#include <stdio.h>int main(){ char * mystr = "hello world."; printf("%5.5s\n",mystr); /...原创 2018-04-13 16:34:41 · 2613 阅读 · 0 评论 -
C++错题(8-30)
1、template:一定要类型匹配templatevoid f(T &i){ cout<<1<<endl;;}template<>void f(const int &i){ cout<<2<<endl;}int main(){ int i=8; f(i); float j=3.14; f(j); const int k=1; f(k); system("p原创 2016-08-30 08:12:58 · 562 阅读 · 0 评论 -
矩阵变形
一个9*9的矩阵,随机填入1-9之间的数字,写一个程序,检查矩阵,将含有1的行和列全部变为1。#include using namespace std;//一个9*9的矩阵,随机填入1-9之间的数字,写一个程序,检查矩阵,将含有1的行和列全部变为1void fun(int (*mat)[9]){ int m,k=0,n=0; int h[9],w[9]; for(int i=0原创 2016-12-28 15:50:36 · 1075 阅读 · 0 评论 -
走台阶
一个8级的台阶,一个人一步最多可以跨3级,一共有多少方法走完?#include #include #include using namespace std;//一个8级的台阶,一个人一步最多可以跨3级,一共有多少方法走完#define RANK 8#define STEP 3void count(int *arr,int end,int rank,int step,int *n原创 2016-12-28 13:37:42 · 414 阅读 · 0 评论 -
该日是该年的第几天
//计算该日是该年的第几天 第一种:有点麻烦,先判断是否是闰年,然后判断月份,求出和。#include #include using namespace std;//计算该日是该年的第几天 int main(void){ int year,month,day,sum = 0;//定义3个int型变量保存年,月,日,总天数初始值是0 bool isleap = false;原创 2016-03-07 16:27:33 · 602 阅读 · 0 评论 -
两个数的最大公约数
求两个数的最大公因子:1)穷举法#include #include using namespace std;int main(){ int m,n; printf("请输入两个正整数:"); scanf("%d,%d",&m,&n);//输入时,记得有逗号 for(int i=m0;i--) { if((m%i==0)&&(n%i==0)) { print原创 2016-03-03 11:07:21 · 439 阅读 · 0 评论 -
是否素数
素数:质数(prime number)又称素数,除了1和它本身以外不再有其他的因数。1)判断一个大于2的正整数是否是素数int main(){ int num; printf("请输入一个大于2的正整数:"); scanf("%d",&num); int count = 0; for(int i = 2;i < num;i++)//i<num/2 { if(num %原创 2016-03-02 20:14:42 · 775 阅读 · 0 评论 -
字符串反序
用一个函数实现输入字符串的反序#include #include using namespace std;/* 编写一个函数,使输入的字符串反序存放,并在主函数中输入和输出字符串。要求该函数与主函数不在同一个文件中。*/void RevStr(char *str){ char *s = str; int length = strlen(s); for(int i=0;i原创 2016-03-07 16:59:50 · 2140 阅读 · 0 评论 -
统计字母,数字,空格的个数
注意区分数组的元素,小括号,大括号和逗号举例1:int main(){ int a[3][2]={{0,1},(2,3),(4,5)}; int *p; p=a[1]; printf("%d\n",p[0]);//3 printf("%d\n",p[1]);//5 printf("%d\n",a[0][0]);//0 printf("%d\n",a[0][1]);//1原创 2016-02-06 10:20:19 · 784 阅读 · 0 评论 -
进制的转换
通过相除取余的方法进行进制的转换#include #include using namespace std;//十进制转八进制和十六进制//hexadecimalvoid ConvHex(int num){ if(num/16>0) { ConvHex(num/16); } printf("%d",num%16);}//octalvoid ConvOct(in原创 2016-03-19 16:57:16 · 337 阅读 · 0 评论 -
约瑟夫问题
n个人围成一个圆圈,首先第1个人从1开始一个人一个人顺时针报数,报到第m个人,令其出列。然后再从下一个人开始,从1顺时针报数,报到第m个人,再令其出列,…,如此下去,直到圆圈中只剩一个人为止。此人即为优胜者。例如:n=8,m=3,则得到的出列次序为4,6,1,5,2,8,4。1)一般方法#include using namespace std;int yuese(int *a原创 2016-03-22 14:55:44 · 644 阅读 · 0 评论 -
二进制数中1的个数
求一个正整数对应二进制数中1的个数#include #include using namespace std;//求一个正整数的二进制数中有多少个1int binar(int num){ int sum = 0; while(num>0) { if(num & 1) { sum++; } num >>= 1; } return sum;}int原创 2016-03-22 15:18:16 · 426 阅读 · 0 评论 -
输出整数的位数和每一位的数字
#include "stdafx.h"#include #include using namespace std;//输出整数的位数和每一位的数字int main(){ int number; int i = 0; int a[10]; printf("请输入一个正整数:\n"); scanf("%d",&number); while(number>0) { a[原创 2016-02-24 12:49:08 · 2496 阅读 · 0 评论 -
百鸡问题
百鸡问题: 鸡公3元一只,鸡婆1元一只,鸡仔1元3只,请列出用100元钱买100只鸡的各种可能。问题分析:先用方程的形式表达一下,设买了x只鸡公,y只鸡婆,z只鸡仔,则有下面的方程式:x+y+z=1003x+y+1/3z=100 转化为->9x+3y+z=300下面我们就用编程语言来帮我们计算到底有几种可能性呢,鸡公,鸡婆,鸡仔的个数分别是多少只呢?#include原创 2016-02-24 10:32:46 · 747 阅读 · 0 评论