第四章 顺序程序设计的学习
一、和其他高级语言一样,C语言的语句用来向计算机系统发出操作指令;一个语句经编译后产生若干条机器指令;一个实际的程序应当包含若干语句。
C语言语句有以下几种:
(1)控制语句;用于完成一定的控制功能;
条件语句if ;循环语句 for while ;等;
(2)函数调用语句;函数调用语句有一个函数和一个字符串构成;
Printf(“hello world!”)
(3)空语句;只有一个分号,也不执行任何动作;
(4)复合语句;用{ }来括起来成为复合语句(也叫分程序);
二、输出和输入概念在C语言中的实现;
输入和输出在计算机中的参考点:ram(内存);
C语言的本身不提供输入和输出语句;输入和输出操作是由C语言函数库中的函数实现的;
首先,要调用输入和输出,必须在头文件中加入#include<stdio.h>这样才能在程序中加入输入和输出的调用;
- 单字符的输入和输出调用;
putchar 输出单个字符;(作用是向终端输出一个字符);
int putchar (int c) 得到的返回值为临时变量(右值);
如果要输出多个字符,可以多次调用 put char 函数;
getchar 字符输入函数;
int getchar(viod) 无需传参即可完成(即括号内可无内容);
注:输入的字符为int 型;
缓冲区的介绍:
为了解决CPU内存占用问题,可以先把输入的数据装入缓冲区,之后再经由CPU处理,由于存入的数据以队列形式输入,在这里遵循“FIFO”的形式,即先入先出的原则;数据被全部取完结束时,缓冲区就会被收回;
- 格式的输入与输出
printf 函数(格式输出函数)作用是向终端输出若干个任意类型的数据;
printf(“%d,%c\n”,i,c)
括号内包括转换控制字符串和输出列表两部分;
%d形式的内容一般被称为占位符,作用是将输出的数据转换为指定的格式输出;
%d会顺次替代后面的输出表列中的内容,如果表列中的内容多于%d的个数则会出现参数的丢失;如果%d的个数多于表列中的参数则会在多余的位置产生随机数;
下面介绍一些格式字符的类型及用法
%(o , u, x, X)使用时无负号,用来检查内存中的字节;
%(d , i )使用时有负号,用来判断正负;在d前加数字可以限制整型的输出宽度,小于原本的输出宽度则会输出原本数据;
%(e , E)用于浮点数并产生科学计数法形式;(123.456—1.234560e+02形成6位有效数字);
%(f ,F)用于浮点数并产生科学计数法形式,产生6位小数;
% m.nf m表示小数点前的位数包括小数点,n为小数点后的位数,m如果小于实际所需的则会产生原始数据,故m一般会省略;
%(g ,G)浮点型参数会被转化为f,e型
%(c)putchar 用于打印ASC2中的数值;
%(p)用于打印万能指针;
%%用于表示百分数
在字母前加入l还可以增加输出数据的字节;
- scanf函数
格式输入函数(格式控制,地址列表)
地址列表是由若干个地址组成的列表,可以是变量的地址,或者字符串的首地址;
scanf(“%d”,&i);
printf(“i = %d\n”,i);
注意:取地址符号&不可省略;
(%d之后不能加入\n来换行);
Scanf无法理解地址中的位数有多少,默认为4个字节;
解决方法:scanf(“%lf”,&f)
无法在被调用函数中去修改主函数的内容;被调用函数中的参数无法影响主调函数的值;
指针传参的含义:实现在被调用的函数中去寻找修改主调函数;
总结
每个输入输出函数在引用时都要遵循输入和输出值的形式,否则在C语言的编译和运行过程中会出现错误;深刻理解缓冲区的意义,数据在其中遵循先入先出原则;
主函数中的数值不会被调用函数影响,因为两者被存放在两个存储区域,但是指针传参可以被用来改变主函数的值。