您的位置:首页 > 编程语言

代码编写篇

2016-05-14 21:13 239 查看
代码编写篇

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: