本次小课堂教程分C、C++两个版本,可按需阅读。
每次课留有作业部分,位于教程的最后,另附参考答案,仅供参考、学习交流;编写程序没有绝对的标准答案,只有更优答案,我们可以在学习过程中逐渐体会到这种优化的过程。
C++版:
一、Hello,world!
现在我们要开始第一个C++程序的编写,首先打开DevC++ IDE,新建一个C++文件(后缀为.cpp)
cout输出
教会电脑输出一句话是几乎所有程序员的第一个程序。而使用频率最高的就是这句“Hello,world”
请看以下代码
1 |
|
现在,你需要将你所看到的代码一字不差的输入你的编辑器(注意:不是复制),这样可以尽快熟悉编程所需要用到的所有字符在键盘上的位置。
这里我们重点学习一下第四行:
1 | cout<<"Hello,world"<<endl; |
很简单,cout表示输出(读作“see-out”)。后面跟着<<符号,连接的就是要输出的内容,双引号“”内填上要输出的句子,表示输出一个字符串,cout就会把引号内的内容原封不动地打印在屏幕上。
后面的endl表示换行,可以试验,观察输出的变化:
1 | cout<<"Hello,world"; |
另外,几乎所有的C++语句都以英文分号;结尾,一定要记得加上。
好,接着我们变一些花样:
1 | cout<<"1+1="<<1+1<<endl; |
运行输出:
1+1=2
显然代码中没有出现数字2,2是由计算机计算得出的。计算机计算出第二个1+1,得到结果2,最后输出。
1 | cout<<"1+1\n="<<1+1<<endl; |
运行输出:
1+1
=2
发现这个”\n”并没有被输出,却换了个行。此处\n为转义符,使用\n可以换行。
虽然这算是最简单的程序之一了,这短短的六行中还是涵盖了许多超出本节课范围的内容。其中的第一行是预处理,第二行涉及到C++的特性之一命名空间,第三行和第五行牵涉到函数的操作,在这里只是暂时补完这个程序,使它可以正常运行(你可以尝试删去他们只留cout语句看看还能否运行,分别会出什么错)以下是对它们的简单介绍,详细的学习将在以后的课程中完善:
预处理
预处理是C++语言在编译期需要执行的语句,以#打头。这里的include语句就是一种预处理,其中“iostream”是头文件,里面含有已经实现的现成的许多功能,可以想象成是C++语言自带的一个工具箱,当你想钉钉子,要么是自己造锤子(在初学阶段显然不现实),要么就用别人现成的锤子。#include
注1:iostream即input/output stream(输入/输出流)的缩写,包含了C++语言最基本的输入输出操作,不要打错了(
注2:C++基本上是C语言的超集,以上只介绍了C++风格的输出,但C++也支持C语言风格的“printf输出”,具体方法为:
1 |
|
除了头文件的部分不同,其他写法与C完全一致,详细了解可查看下文“C版”部分。
C版:
一、Hello,world!
现在我们要开始第一个C程序的编写,首先打开DevC++ IDE,新建一个C文件(后缀为.c)
printf输出
教会电脑输出一句话是几乎所有程序员的第一个程序。而使用频率最高的就是这句“Hello,world”
请看以下代码
1 |
|
现在,你需要将你所看到的代码一字不差的输入你的编辑器(注意:不是复制),这样可以尽快熟悉编程所需要用到的所有字符在键盘上的位置。
这里我们重点学习一下第三行:
1 | printf("Hello,world"); |
很简单,printf()表示输出,括号内是输出内容,“”内填上要输出的句子,printf就会把它原封不动地打印在屏幕上。
另外,几乎所有的C语言语句都以英文分号;结尾,一定要记得加上。
好,接着我们变一些花样:
1 | printf("now put a number:%d",1); |
运行输出:
now put a number:1
为啥不是now put a number:%d呢?这里的%d为格式符,是为了控制输出格式,改变输出对象使用的,在“”内的%d将会被逗号(’,’)后面的值替代(注意:%d表示后边的值是个整数,其他的情况将在下一章讲到):
1 | printf("1+1=%d",1+1); |
运行输出:
1+1=2
显然代码中没有出现数字2,2是由计算机计算得出的。计算机计算出逗号后面的1+1,得到结果2,并将它代到引号中的%d上,最后输出。
1 | printf("1+1\n=%d",1+1); |
运行输出:
1+1
=2
发现这个”\n”并没有被输出,却换了个行。此处\n为转义符,使用\n可以换行。
虽然这算是最简单的程序之一了,这短短的五行中还是涵盖了许多超出本节课范围的内容。其中的第一行是预处理,第二行和第三第四行牵涉到函数的操作,在这里只是暂时补完这个程序,使它可以正常运行(你可以尝试删去他们只留printf语句看看还能否运行,分别会出什么错)以下是对它们的简单介绍,详细的学习将在以后的课程中完善:
预处理
预处理是C语言在编译期需要执行的语句,以#打头。这里的include语句就是一种预处理,其中“stdio.h”是头文件,里面含有已经实现的现成的许多功能,可以想象成是C语言自带的一个工具箱,当你想钉钉子,要么是自己造锤子(在初学阶段显然不现实),要么就用别人现成的锤子。#include<stdio.h>表示你从工具箱中取出了stdio.h这一个来使用。当然C语言还有许多现成的“工具”,都有不同的作用,将会陆续提到。
注:stdio即standard input/output的缩写,包含了C语言最基本的输入输出操作,所以和“studio”一点关系也没有,不要打错了(
函数
这里的main就是一个函数,而且是整个C语言程序中最特殊的,称为主函数,表示计算机执行的开始。int为标准C的返回值类型,void为参数,return语句为返回值,这些语句在一个正常程序中都是必须写的,虽然删掉一些可能在某些屑编译器中也可以,但避免不必要的麻烦,还是把这些都记住为好。函数将在第六章中详细学习。
作业:
1、输出以下图形:
#
##
###
####
#####
2、输出1024×512的值(请写表达式让计算机计算输出,在C/C++中乘号为*,除号为/)