c语言有什么奇技淫巧

Python014

c语言有什么奇技淫巧,第1张

一、for循环最后一个参数可由多个语句组成:

#include <stdio.h>

int main()

{

    int i,j,k

    for( i=j=k=0i<5i++,j=++,k++)

        printf("i=%d,j=%d,k=%d\n",i,j,k)

    return 0

}

二、利用二进制实现数值交换,无需中间变量

#include <stdio.h>

int main()

{

    int a=1,b=9,c

    c=a

    a=b

    b=c

    printf(" 常规写法a,b交换后a=%d,b=%d\n",a,b)

    a=1b=9

    a^=b

    b^=a

    a^=b

    printf(" 利用二进制异或实现交换后a=%d,b=%d\n",a,b)

    return 0

}

三、把上面两个技巧合在一起,可以把常见的冒泡排序写成这样:

#include <stdio.h>

int main()

{

    int i=0,j=1,num[10]={7,8,3,4,5,2,6,9,10,1}

    for(i<9j==9?j=++i+1:j++)//降序排列

    {

        if(num[i]<num[j])

            num[i]^=num[j]^=num[i]^=num[j]

    }

    //打印排序后的数组

    for(i=0i<10i++)

        printf("%d ",num[i])

    return 0

}

2017年计算机二级C语言做题技巧

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。下面是我整理的关于计算机二级C语言做题技巧,欢迎大家参考!

1. 把C++当成一门新的语言学习(和C没啥关系!真的。)

2. 看《Thinking In C++》,不要看《C++变成死相》

3. 看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看

4. 不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言

5. 不要放过任何一个看上去很简单的我程问题——他们往往并不那么简单,或者可以引伸出很多知识点

6. 会用Visual C++,并不说明你会C++

7. 学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书

8. 如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的

9. 看Visual C++的书,是学不了C++语言的

10. 浮躁的人容易说:XX语言不行了,应该学YY——是你自己不行了吧!?

11. 浮躁的人容易问:我到底该学什么——别问,学就对了

12. 浮躁的人容易问:XX有钱途吗——建议你去抢银行

13. 浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!

14. 浮躁的人容易问:XX和YY哪个好——告诉你吧,都好——只要你学就行

15. 浮躁的人分两种:a)只观望而不学的.人b)只学而不坚持的人

16. 把时髦的技术挂在嘴边,还不如把过时的技术记在心里

17. C++不仅仅是支持面向对象的程序设计语言

18. 学习编程最好的方法之一就是阅读源代码

19. 在任何时刻都不要认为自己手中的书已经足够了

20. 请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准

21. 看得懂的书,请仔细看看不懂的书,请硬着头皮看

22. 别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍

23. 请看《Effective C++》和《More Effective C++》以及《Exceptional C++》

24. 不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序

25. 和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好

26. 请看《程序设计实践》,并严格的按照其要求去做

27. 不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样

28. C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密

29. 请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已

30. 读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++

31. 学习编程的秘诀是:编程,编程,再编程

32. 请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》

《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》

33. 记住:面向对象技术不只是C++专有的

34. 请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码

35. 把在书中看到的有意义的例子扩充

36. 请重视C++中的异常处理技术,并将其切实的运用到自己的程序中

37. 经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去

38. 不要漏掉书中任何一个练习题——请全部做完并记录下解题思路

39. C++语言和C++的集成开发环境要同时学习和掌握

40. 既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的

41. 就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主

42. 当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43)

43. 别心急,设计C++的class确实不容易自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的

44. 决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的(勿以善小而不为)

45. 每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了

46. 记录下在和别人交流时发现的自己忽视或不理解的知识点

47. 请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX

48. 保存好你写过的所有的程序——那是你最好的积累之一

49. 请不要做浮躁的人

50. 请热爱C++!