C语言程序设计 最简单的C程序设计——顺序程序设计

1 算法是程序的灵魂

1.1 什么是算法

程序包括两个方面的内容:
(1)对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。
(2)对操作的描述。即操作步骤,也就是算法。
数据结构+算法=程序
设计一个程序需要运用算法、数据结构、程序设计方法和语言。
算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用适合的方法。
计算机算法分两大类:数值运算算法和非数值运算算法。
算法是解决“做什么”和”怎么做“的问题。
”做什么“就是目的,效果。
”怎么做“就是做哪些事情才能达到解决问题的目的;二是决定做这些事情的先后次序。

1.2 怎样表示算法

用自然语言表示算法
用流程图表示算法
用N-S流程图表示算法
用伪代码表示算法

2 程序的三种基本结构

(1)顺序结构。各操作步骤是顺序执行。
(2)选择结构。又称为判断结构或分支结构。
(3)循环结构。又称重复结构,即在一定条件下反复执行某一部分的操作。
这三种基本结构构成的程序称为”结构化程序“。
if实现选择结构。
for语句,while语句实现循环结构。

3 C语言语句综述

一个函数是由数据声明部分和执行语句组成。

3.1 控制语句

if()…else…
条件语句,实现选择结构

switch
多分支选择语句
for()…
循环语句,实现循环结构

while()…
循环语句,实现循环结构

do…while()
循环语句,实现循环结构

continue
结束本次循环语句

break
中止执行switch或循环语句

return
从函数返回的语句

3.2 函数调用语句

由调用语句由一个函数调用加一个分号构成。如:printf();

3.3 表达式语句

表达式语句由一个表达式加一个分号构成,赋值表达式语句由一个赋值表达式加分号构成,如:a=3;

3.4 空语句

;
只有一个符号的语句,它什么也不做。

3.5 复合语句

用{}把一些语句括起来成为符合语句。如:
在这里插入图片描述
C语言允许一行写几个语句,也允许一个语句拆开写在几行上,书写格式无固定要求。

4 赋值表达式和赋值语句

4.1 赋值表达式

4.1. 1 赋值运算符

赋值符号“=”就是复制运算符,它的作用是将一个 数据赋给一个变量。如:a=3,把常量3赋值给a。也可以将一个表达式赋值给一个变量。

4.1.2 复合的赋值运算符

分类:+=,-=,*=,/=,%=
a+=3 等价于a=a+3
x *=y+8等价于x=x *(y+8)
x%=3等价于x=x%3

4.1.3 赋值表达式

由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。它的形式为: 变量 赋值运算符 表达式。如a=(b=7),a=1+(b=8)。
赋值运算符按照“自右而左”的结合顺序。

4.2 赋值过程中的类型转换

(1)实型转整型。实型数据(单、双精度)赋值给整型变量,先对实数取整(即舍去小数部分),然后赋整型变量。
如:i=2.33,以整数形式存储在整型变量,i=2。
(2)整型转单精度或双精度变量。
(3)double型数据转float变量。
(4)字符型数据赋给整型变量。将字符的ASCII码赋给整型变量。
(5)将一个占字节多的整型数据赋给一个占字节少的整型变量或字符变量。如:把一个4字节的long型数据赋给一个2字节的short型的short型变量,或将一个2字节的int型数据赋给1字节的char型变量

4.3 赋值语句

赋值语句是由赋值表达式加上一个分号构成,作用是将一个表达式的值赋给一个变量。
注:一个表达式中可以包含一个或多个赋值表达式。

4.4 变量赋初值

设置初值既可以用赋值语句去实现,也可以在定义变量的同时使变量初始化。如:
int a,b,c=5;
int a=3,b=3,c=3;

5 数据输入输出的概念

C语言本身不提供输入输出语句。printf和scanf不是C语言的关键字,而只是库函数的名字。
putchar(输出字符)、getchar(输入字符)、printf(格式输出)、scanf(格式输入)。
在使用系统库函数时,应当在程序中使用预编译指令“#include”。如:#include <stdio.h>。目的是将有关的“头文件”的内容包括到用户源文件。
stdio是standard input & output(输入和输出)的缩写。文件后缀中“h”是header的缩写。

6 字符数据的输入输出

6.1 用putchar函数输出一个字符

putchar是put character(给字符)的缩写。作用是输出字符变量,向显示器输出字符。
在这里插入图片描述
putchar(’\n’)的作用是输出一个换行符。
在这里插入图片描述

整型数据与字符数据是相通的(整型数据的值应在字符的ASCIId代码范围内)。
putchar函数只能输出字符不能输出整数。
在这里插入图片描述

6.2 用getchar函数输入一个字符

调用系统函数库中的getchar函数(字符输入函数)。getchar是get char(取得字符)的缩写。
作用是从显示器的键盘输入一个字符,就是计算机得一个字符。
getchar没有参数,一般形式是getchar()。
getchar函数只能接受一个字符。
在这里插入图片描述
输入BOY,回车。

在这里插入图片描述
此外,getchar函数可以获得在屏幕无法显示的字符,如控制字符\n,\r…
在这里插入图片描述
输入B,回车,输入O,得出B 回车O。

7 简单的格式输入与输出

输入输出主要用printf和scanf函数实现的。这两个函数是格式输入输出的函数。

7.1 printf函数输出数据

格式:
printf(格式控制,输出列表)
如:
printf("%d,%c\n",i,c)
格式控制包括格式声明和普通字符。
格式声明由“%”和格式字符组成,如%d,%f等。它的作用是将输出的数据转换为指定的格式输出。

7.1.1 d格式字符

按十进制整型数据的实际长度输出。
在这里插入图片描述

7.1.2 c格式字符

输出一个字符。
一个整数,只要他的值在0~255范围内,可以用“%c”使之按字符形式输出,将该整数作为ASCII码转换成相应的字符。
在这里插入图片描述

7.1.3 s格式字符

用来输出一个字符串。
在这里插入图片描述

7.1.4 f格式字符

用来输出实数(单、双精度),以小数形式输出。单精度实数的有效数为6~7位,双精度有效数为15 ~16位。
在这里插入图片描述
a,b为float类型,a+b只能保证6~7位精度,所以只有前7位数字是有效数字,后面的几位数字是误差,千万不要以为凡是计算机输出的数字都是准确的。

7.1.5 e格式字符

用格式声明%e指定指数形式输出实数。
在这里插入图片描述
e也可以写成大写E形式。

在这里插入图片描述

普通字符即需要的原样输出的字符。如:a=%b,a=就是普通字符。
输出列表是需要输出的一些数据,可以是常量、变量或表达式。

7.2 scanf函数输入数据

7.2.1 scanf函数的一般形式

scaf(格式控制,地址表列)
地址表列是由若干个地址组成的表列,可以是变量的地址或字符串的首地址。
在这里插入图片描述
”&“是“地址运算符”,&a指变量a在内存中的地址。
输入的a,b,c的值放到变量a,b,c的存储单元,然后根据&a,&b,&c找到a,b,c的存储单元。
“%d%d%d”表示要按十进制整数形式连续输入3个数据。输入数据时,在两个市局之间以一个或多个空格分隔,也可以按Enter键或Tab键分隔输入数据。

7.2.2 scanf函数中的格式声明

scanf函数中的“格式控制”后面是变量地址,不是变量名。
正确写法:scanf("%d%d%d",&a,&b,&c);
错误写法:scanf("%d%d%d",a,b,c);

在输入数据时在对应位置应输入与这些字符相同的字符。
在这里插入图片描述
在两个%d间插入一个逗号。
在输入的两个数据间也应插入一个逗号。

在用%c格式声明输入字符时,空格字符和转义字符都作为有效字符输入。
在这里插入图片描述

在这里插入图片描述
这里输入a 空格 b,a传给变量a,空格传给变量b,b传给变量c。

在输入数据时,空格键、Enter键、Tab键或遇到不合要求的输入,认为该数据结束。
在这里插入图片描述
12312传给变量a,a传给变量b,21232传给变量c。

对于unsigned型变量所需的数据,可以用%u或%d格式输入。

8 顺序结构程序设计举例

8.1 输入三角形的三个边长,求三角形面积

知道三边求三角形面积的公式:
在这里插入图片描述
在这里插入图片描述
定义5个双精度变量。
%lf,l是格式字符f的附加字符,lf表示实数,即双精度数据,不加附加字符l,则不能用于输入双精度变量。
sqrt函数是求平方根的函数。由于要调用属性函数库的函数,需要在程序开头加一条#include,把头文件math.h包含到程序中来。
“%7.2f”表示指定输入数据的字段宽度为7列,其中小数点后的数字为2列。

用来丰富格式字符功能的附加字符称为“修饰符”。表示为“ %m.nf ”m必须大于n。

8.2 从键盘输入一个大写字母,输出该小写字母

小写字母的ASCII=大写字母的ASCII+32
在这里插入图片描述
用fetchar函数的到从键盘输入的字母‘A’,赋值给字符变量c1。将c1分别用字符形式(‘A’)和整型形式(65)输出。得出‘a’,赋值给c2,将c2分别用字符形式(‘a’)和整数形式(97)输出。

9 简单易用的C++的输入输出

c++用cin进行输入,用cout进行输出。cout输出不用考虑输出格式(%d%f)。
<<是输出运算符,>>是输入运算符。
每个<<只能输出一个项。
如果程序用C++的cincout进行输入输出,应在程序文件开头写“#include <iostream.h>”。此时,不用写“#include <stdio.h>”。

例如:
C语言的输出语句:
printf(“a=%f\n”,a);
在c++中可用以下形式输出:
cout<<“a=”<<a<<"\n";

C语言的输入语句:
scanf("%d %f",&a,&b);
C++的输入:
cin>>a>>b;

总结:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
输入数据时不可以规定精度,输出时才可以规定精度。

格式控制:scanf函数和printf函数中的双撇号中的部分。
格式声明:由%和格式字符组成,如%d,%c,%7.2f。
格式字符:用来指定各种输出格式,如d,c,f等。
修饰符(附加格式字符):对格式字符的作用补充说明,如%3d,%5.2f,%-10.3f中的3,5.3,-10.3。

猜你喜欢

转载自blog.csdn.net/qq_45059457/article/details/113776661