代码编写篇

代码编写篇

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;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值