代码编写篇
2016-05-14 21:13
239 查看
代码编写篇
1.写一个float x 与零值的比较的if语句;
这里主要存在一个float精度的问题,尽量少用“==”或者“!=”来比较float/double
2.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直到全部输出为止,写出C程序
编程思路:首先建立一个循环指针,用来对1~N进行循环,然后就是每次数到M时,delete当前指针,从头再一次循环,直到循环指针的数量少于M为止
3.判断自加运算正确与否
了解左值和右值:C/C++语言中可以放在赋值符号左边的变量,左值表示存储在计算机内存的对象,左值相当于地址值。右值:当一个符号或者常量放在操作符右边的时候,计算机就读取他们的“右值”,也就是其代表的真实值,右值相当于数据值
优先级: () > ++ > +
4.计算sizeof
5.不用C++/C的字符串库,编写strcat
1.写一个float x 与零值的比较的if语句;
这里主要存在一个float精度的问题,尽量少用“==”或者“!=”来比较float/double
#define FLT 1e-6 float x=0.00003; if((x >= FLT)) { //x大于0 } else if( x >= (-FLT) || x <= FLT ) { //x = 0 } else { //x < 0 }
2.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直到全部输出为止,写出C程序
编程思路:首先建立一个循环指针,用来对1~N进行循环,然后就是每次数到M时,delete当前指针,从头再一次循环,直到循环指针的数量少于M为止
3.判断自加运算正确与否
了解左值和右值:C/C++语言中可以放在赋值符号左边的变量,左值表示存储在计算机内存的对象,左值相当于地址值。右值:当一个符号或者常量放在操作符右边的时候,计算机就读取他们的“右值”,也就是其代表的真实值,右值相当于数据值
优先级: () > ++ > +
int a = 4,b = 4,c = 4,d = 4; a += (a++); b += (++b); (c++) += c; //左值不能自加 (d++) += (d++);//左值不能自加 结果: plusplus.c: In function ‘main’: plusplus.c:17:8: error: lvalue required as left operand of assignment (c++) += c; ^ plusplus.c:18:8: error: lvalue required as left operand of assignment (d++) += (d++); a = [9] b = [10] c = [4] d = [4] 在C语言中, ++c = 10; ++c=10; ++(c=10); 都是非法的 然而在C++中则要另提别论了,要注意C中自增自减都不能作为左值
4.计算sizeof
void Foo(char str100[100]){ printf("sizeof(str100) =[%d]\n",sizeof(str100)); } char str[] = "563200085@qq.com"; char* p = str; int n = 10; printf("sizeof(str) = [%d]\n",sizeof(str)); printf("sizeof(p) = [%d]\n",sizeof(p)); printf("sizeof(n) = [%d]\n",sizeof(n)); Foo(str); void* vp = (void*)malloc(100); printf("sizeof(vp) = [%d]\n",sizeof(vp)); 结果: sizeof(str) = [17] sizeof(p) = [4] sizeof(n) = [4] sizeof(str100) = [4] sizeof(vp) = [4] 经检测,在C和C++中都是一样的
5.不用C++/C的字符串库,编写strcat
//原型:char* strcat(char *strDst,char *strSrc); char* CatStr(char* dst,char src) { if(!dst || !src) return NULL; char* p = dst; while(*dst){ dst++; } while((*dst++ = *src++)); return p; }
相关文章推荐
- google hacking搜索语法总结
- [Java] 贪吃蛇 V1.0
- 深入理解java内存模型(三)——顺序一致性
- Java加密技术——BASE64与单向加密算法MD5、SHA、MAC
- GOICE项目初探
- 深入理解java内存模型(二)——重排序
- Java 获取当前时间
- C# 利用反射动态将字符串转换成属性对应的类型值
- 深入理解java内存模型(一)——基础
- java hdu2012素数判定
- faster_rcnn c++版本的 caffe 封装,动态库(2)
- c++中string类成员函数的总结
- php 数字转换大写汉字
- golang slice 切片原理
- java多线程系列5-死锁与线程间通信
- Java中的锁
- FTP 权限的修改 之CuteFTP问题
- Semaphore
- 第7周 C语言程序设计(新2版) 各类位运算符定义
- spring版本引起的问题