学习c语言前言第一个c语言程序谈谈函数
函数的定义:函数的作用域以及函数声明: scanf和printf函数理解
scanf函数printf函数printf函数和scanf函数的一些嵌套问题 学习c语言前言
在学习c语言之前会谈到计算机语言的发展。
1、机器语言:也就是一串由0和1构成的二进制代码,可以被计算机直接识
别和接受。
2、符号语言:不能被计算机直接识别和执行,需要将符号语言转换为机器
指令,这个过程叫做汇编
注意:机器指令也就是计算机能够直接识别和接受的二进制代码
3、高级语言:不能够被直接识别和接受,需要编译器将高级语言写的源程序
文件转换为机器能够识别的程序,也就是目标程序
其中机器语言和符号语言是低级语言
第一个c语言程序#include
分析代码
1、#include
2、main函数是程序执行的入口
3、printf函数是用来打印输出双引号内的内容,其中n是用来换行的
4、return 0(两个作用)
作用1:用来结束程序运行作用2:将返回值0发送到调用main函数的操作系统,告诉操作系统程序是正常结束,如果返回值不是0那么就不是正常结束。 谈谈函数 函数的定义:
函数的返回值类型 函数名 (形参)
例:
#include
上面的int为函数返回值类型,a为函数名,(int a)中int是形参的参数类型,a为形参名
a(3)是调用函数,3为实参,通过函数调用将实参传递给形参。
注意:这个函数返回值类型,可以是void,int ,float,double等等,但void时不用写return 返回值,其他则必须写return.
函数的作用域以及函数声明:从函数的定义或声明处到该.cpp源文件末尾结束
下面一段代码由于函数作用域没有包含main函数,导致报错
#include
若想修改,即可在main函数之前添加函数声明即可。
???什么是函数声明,按上面例子,函数声明就是:void a();
我在添加函数声明直接添加到了#include
#include
当然还有一个方法就是将定义的函数都写在main函数前面,注意函数不能嵌套定义(不能在一个函数中定义函数)
例如:将定义的所有函数都放到main函数之前
#include
用于接收用户输入数据
源代码:
#include
输出结果:
55Process returned 0 (0x0) execution time : 2.899 sPress any key to continue.
scanf("%d",&a);中%d是整形格式说明符,&a用于找到定义的变量a
格式说明符:%d,%c,%s,%f等等
例如:
#include
结果:
6b的值是换行符Process returned 0 (0x0) execution time : 2.516 sPress any key to continue.
b变量用来接收键盘缓冲区中的换行符(n)
当scanf()函数遇到错误输入时会自动跳过这行scanf代码例如:
#include
当发生错误输入时,输入一个字符时,将不会执行scanf这行语句
c8Process returned 0 (0x0) execution time : 1.512 sPress any key to continue.
在scanf函数的格式说明符中不要添加一个或多个空白符,否则程序会一直卡在输入那儿。空白符:空格,n,tap,t等等
例如:
由于此处scanf("%dn",&a)中有一个n,导致程序一直在输入状态,所以在双引号中不要加空格,tap,n等空白符。
4.注意在使用连续输入多个内容,注意要用空格,或者回车,或者tap 键分隔。(但是输入多个字符时不需要分隔)
代码:
输入连续两个数字:
#include
结果:
3 63 6Process returned 0 (0x0) execution time : 2.627 sPress any key to continue.
此处输入连续两个数字中用到了空格来分隔
输入连续两个字符:
代码:
#include
结果:
a baProcess returned 0 (0x0) execution time : 3.556 sPress any key to continue.
此处由于用空格来分割,导致b的值成为一个空格
所以应该这样输入:
结果:
ababProcess returned 0 (0x0) execution time : 1.847 sPress any key to continue.
这样就不会出现错误
5、还有一种情况注意这样输入,否则会出现输出的值是一个不确定的数
代码:
#include
结果(正确输入)
acv5dl5Process returned 0 (0x0) execution time : 14.182 sPress any key to continue.
结果(错误输入)
560Process returned 0 (0x0) execution time : 2.899 sPress any key to continue.
☆也就是说在输入内容时一定要和双引号内的内容进行匹配。
printf函数 printf函数和scanf函数的一些嵌套问题 1、printf函数里嵌套printf函数
代码:
#include
结果:
xinkai7Process returned 0 (0x0) execution time : 0.041 sPress any key to continue.
注意:结果先输出里面的printf内容,然后外面printf输出里面字符串的个数7
2、printf函数里面嵌套scanf函数
代码:
#include
结果:
111 2 c2Process returned 0 (0x0) execution time : 6.138 sPress any key to continue.
此处注意:输出的2是按照正确格式输入的内容,三个%d,只输入两个数字,故结果为2