c语言第2讲
C语言程序设计教案第2讲 算法
<
>
二,表示算法的三种基本结构
1966年,Bohra和Jacopini提出了程序中需要的三种控 年 和 提出了程序中需要的三种控 制结构
顺序结构 选择结构 循环结构
成立
根据表达式的 值进行选择
A N P
不成立 成立
A
B
M
A B A
P
不成立
成立
P
不成立
P A
不成立 成立
B
A
<
>
三种结构的共同点
只有一个入口 只有一个出口
<
>
例 2-1 问题: 求5的阶乘 问题:对于任意正整数 N,如何计算 N! 计算5 计算5!=1*2*3*4*5
Step1: Step2: Step3: Step4: 计算 1 计算 2 计算 6 计算 24 * * * * 2 3 4 5
可以描述如下: 可以描述如下:
=> => => => 2 6 24 120
数去掉
使xj=0
j+1=>j i+1=>i 1=>i
当 i ≤ n
xi=0 打印所有素数 是 把未挖掉的x 打印出来 否 i
打印xi
<
>
i+1=>i
数制转换
进位计数制
定义:在采用进位计数的数字系统中, 定义:在采用进位计数的数字系统中,如果 只用r个基本符号 例如: 个基本符号( 只用 个基本符号(例如:0,1,2,…,r-1) 表示 数值,则称为基 数制 称为该数制的 数制, 称为该数制的" 数值,则称为基r数制,r称为该数制的"基 数",而数制中每一固定位置对应的单位值 称为"权". 称为"
教案C语言2
郑州信息科技职业学院教案授课题目:C语言的运算符和表达式、数据类型的转换第二讲:C语言的运算符和表达式、数据类型的转换授课时数:3教学目的与教学要求:1、掌握C语言的各种运算;2、掌握C语言中运算过程中不同的数据类型的转换。
主要内容:1、算术运算符和算术表达式;2、关系运算和逻辑运算;3、自增、自减运算;4、赋值运算;5、其他运算;6、表达式和表达式语句;7、自动类型转换和赋值转换;8、强制类型转换。
重点和难点:1、自增、自减运算;2、自动类型转换和赋值转换;3、强制类型转换。
教学方法和手段教具多媒体演示和板书相结合授课内容:第三章3、1运算符与表达式C的运算符有以下几类:本章主要介绍算术运算符(包括自增自减运算符)、赋值运算符、逗号运算符,其它运算符在以后相关章节中结合有关内容陆续进行介绍。
3、1、1 算术运算符和算术表达式1、算术运算符+(加法运算符。
如3+5)-(减法运算符或负值运算符。
如5-2,-3)*(乘法运算符。
如3*5)/(除法运算符。
如5/3,5.0/3)%(模运算符或求余运算符,%要求两侧均为整型数据。
如7%4的值为3)。
除了负值运算符-单目运算符外,其它都是双目运算符。
说明:(1)两个整数相除的结果为整数,如5/3的结果为1,舍去小数部分。
(2)如果参加+,-,*,/运算的两个数有一个为实数,则结果为double型,因为所有实数都按double 型进行计算。
(3)求余运算符%,要求两个操作数均为整型,结果为两数相除所得的余数。
求余也称为求模。
一般情况,余数的符号与被除数符号相同。
例如:-8%5=-3;8%-5=32、算术表达式算术表达式:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为算术表达式。
运算对象可以是常量、变量、函数等。
例如,下面是一个合法的C算术表达式。
a*b/c-1.5+’a’。
注意:C语言算术表达式的书写形式与数学表达式的书写形式有一定的区别:(1)C语言算术表达式的乘号(*)不能省略。
C语言第2讲--数据的表示之基本数据类型
5.字符输出举例
例3.7(P51) main() 运行结果:A,B { char a,b; 65,66 a='a'; b='b'; /*或 b=98;可向字符变量赋以整数 */ a=a-32; b=b-32; printf("%c,%c\n%d,%d\n",a,b,a,b); } 注:C语言允许字符变量参与数值运算,即用字符 的ASCII 码参与运算。 大小写字母的ASCII 码相差32,因此运算后把小写 字母换成大写字母
结果:total1=300 total2=600
6
二、变量
变量以标识符命名。 变量的定义: 类型名 标识符1,标识符2,......标识符n; int a,b,c; float x,y,z;
注意事项:
/* a,b,c 为整型变量 */ /* x,y,z 为单精度型变量 */
(1)
(2)
变量必须先定义后使用
double a1,a2; a1,a2为double型变量名,每个 变量占8个字节的空间
20
3.浮点型数据的格式输出
#include <stdio.h> /*可省 */ void main() { float a=123.456; double b=1234.5678; printf(“a=%f\n”,a); printf(“b=%f\n”,b); }
输出结果: a=123.456001 b=1234.567800
21
4.printf( )函数中浮点型数据的输 出格式符(自阅)
%f :按小数形式输出实数(包括双精度),默认保留6位
小数。
%e(=%E):按指数形式输出实数(包括双精度) ,尾数 部分默认保留6位有效数字。 %.3f:按小数形式输出实数,保留3位小数。 %8.3f :按小数形式输出实数,保留3位小数,数据总宽
第2讲 判断 - 分支结构
嵌套的if
图像处理与模式识别研究室
48
§2.2.1 嵌套的 if - else
嵌套的if
图像处理与模式识别研究室
49
§2.2.1 嵌套的 if - else
嵌套的if
图像处理与模式识别研究室
50
§2.2.1 嵌套的 if - else
tips
•
•
在if或else后面总是用{}
即使只有一条语句的时候
图像处理与模式识别研究室
18
§2.1.3 找零计算器
/* */注释
• 延续数行的注释,要用多行注释的格式来写。多行
注释由一对字符序列“/*”开始,而以“*/”结束 • 也可以用于一行内的注释
int ak=47 /* 36*/, y=9;
图像处理与模式识别研究室
19
§2.1.3 找零计算器
比较
图像处理与模式识别研究室
51
§2.2.2 级联的 if-else if
分段函数
f(x) = -1; x < 0
0;
2x;
x = 0
x > 0
图像处理与模式识别研究室
52
§2.2.2 级联的 if-else if
分段函数
f(x) = -1; 0; 2x; x < 0 x = 0 x > 0
图像处理与模式识别研究室
输入格式:每个测试是一个3位的正整数。
输出格式:输出按位逆序的数。 输入样例:123;输出样例:321
图像处理与模式识别研究室
5
2.1 判断
图像处理与模式识别研究室
6
§2.1.1 做判断
计算时间差
• 输入两个时间,每个时间分别输入小时和分钟的值,
计算机C语言编程【课件】
第4讲最简单的c程序设计—顺序程序设计
本讲目录
课程目录
if后面的( )内是一个条件,如: if(x>0)… 在x的位置上换上一个赋值表达式“a=b”,其作用是: 先进行赋值运算(将b的值赋给a),然后判断a是否大 于0,如大于0,执行t=a。在if语句中的“a=b”不是 赋值语句而是赋值表达式,这样写是合法的。 如果写成if((a=b;)>0)t=a;就错了。 在if的条件中不能包含赋值语句。由此可以看到,c把 赋值语句和赋值表达式区别开来,增加了表达式的种 类,使表达式的应用几乎“无孔不入”,能实现其他 语言中难以实现的功能.
( )表示条件, ~表示语句
第4讲最简单的c程序设计—顺序程序设计
本讲目录
课程目录
3. 复合语句(语句体)
用{ } 括起来的一系列语句。 if(a>b) { z=x+y; t=z/100; printf ("%f", t); } 如:
复合语句中最后一个语句的分号不能忽略不写。 C语言允许一行写几个语句,也允许一个语句拆开 写在几行上,书写格式无固定要求。
/* exam21.c */ /* 最简单的C程序 */ #include<stdio.h> main() { printf(“Hello,world!”); }
头文件 主函数
第4讲最简单的c程序设计—顺序程序设计
本讲目录
课程目录
例2.2 已知圆的半径为R(R是一个可变的量),求圆的面积 和周长,用计算机求解,程序如下
第5讲
分支结构程序设计
本讲目录
课程目录
解决办法:
1、引入新的程序结构,分支结构, 有时也称 判断结构 或 选择结构。 2、为了和分支结构相配合,同时还要引入 逻辑表达式的概念。 3、有三种形式可进行分支结构的程序设计
C语言第2讲-C语言基本概念
注意事项:
①键入数据可用一个或多个空格、Tab、回车键分隔; ②指定宽度时,键入就不要分隔符,按 个数读 ③当含有其它普通字符时,则键入时必须一一对应完全相同;
①scanf ( " %d %d %d " , &a , &b , &c ) ; 键入3 _ 4 _ 5 ②scanf ( " %3d%3d " , &a , &b ) ; 键入 123 456 7 ③scanf ( " %3c " , &ch) ; 键入abc ④scanf ( " %2d %3d%2d " , &a , &b ) 键入12345678 ⑤不能写成scanf ( " %7.2f " , &x ) ; ⑥scanf ( " %d , %d " , &a , &b ); ⑦scanf ( " %c %c %c " , &c1 , &c2 , &c3 ) ;
3.实数:(实型常量、实型常数)又称之为浮点数; (1)小数表示法:用十进制小数形式表示实数:如:12.34、2.0、0.234等 (2)指数表示形式:如:2E2 或2e2,2.341E-4等等。 注意:①e(E)之前必须有数字;②e之后必须是整数; 4.字符型常量 (1)用一对单引号(单撇)括起来的一个字符;如:‘a‟、‘A‟、 ‘#‟;这种方式表示可显示的字符。 (2)转义字符:用一反斜杠\将后面的字符转变为另一些特殊字符 (非显示/打印字符); 一个字符常量放到一个字符变量中时,是将该字
地址表列:必须是变量的地址; 即:输入项为:&变量;
注意:格式控制中格式描述符应与地址表
第二讲 用printf()打印简单字符图案
#include <stdio.h>
void main( )
{
printf(“* * * * * * * *\n”);
printf(“*
*\n”); /*2个*号中间有6个空格*/
printf(“*
*\n”); /* 同上 */
printf("* * * * * * * *\n");
}
上面这个平面图形是非常 简单的,特别是中间两行左右 两个字符 ” “ 相隔很近, 中间的空格只有6个。
000000
0
0
0
0
0
0
0Hale Waihona Puke 000000000
88
88
8888888888
8
88
8
8888888888
88
88
88
作业练习
A
AA
AA
AA
AAAAAA
A
A
A
A
A
A
作业
大部分构成,一是编译预处理命令,应该写在程序的
最前面;
二是函数,可能有多个,但只能有一个主函数。
回顾
函数由函数名所在的行以及用一对大括号括起的函数
体组成。
模仿练习
Printf函数
• 现在请同学们模仿上例,在纸上写一个向屏幕 输出文字:“C语言其实很简单!!!”的程 序。
开始 新课程
#include <stdio.h> main( )
在程序中的printf语句里面的字符串末尾都有一个\n (反斜杠和n)。
这种用反斜杠开头后跟一个或多个字符组成的复合字符, 在C语言中称为转义字符(即在一些普通字符前加一个反斜 杠,使普通字符的含意转变了)。
C课件第2讲-C语言快速入门
C语言程序的基本结构
【例2】计算输入的两个整数的和 。 CW0202.c
思路:算法简单,先定义三个变量,二个输入,一个是和。输入采用键盘输 /* This is the second C program CW01-02.c */ 入法,可以反复计算。输出采用格式输出。
#include <stdio.h> int main ( ) { in语言中的词汇。P9
也称为保留字(Reserved words)(共32个) 类型说明(共14)(可以抄一下中文含义)
int、long、short、float浮点、double双精度、char字符、 unsigned无符号、signed带符号、const常量、void空、 volatile可变的、enum枚举 、struct结构、union共用
/* 在屏幕上显示Hello World! */ #include <stdio.h>
#define P printf("================\n") //定义符号常量 int /*定义主函数*/main() { system("color 2f"); //颜色函数,可删,自己试 P; printf("Hello World!\n"); 注释部分 P; •以增加程序的可读性。 return 0; //但是控制权要交还给编译系统 •不被执行。 } 注释不能嵌套,如: •如果只占一行可用//代替 /*这是/*非法的*/*/ /*xxxx*/ //这种形式的注释一般只能写在一 //Isita \ 输入文件名时如果不加.c则默默的文件为C++,有些语法不一样, 行,要换行时要加换行接续符 3/25 validcomment? 例如在C++中system(“color 1a”)头文件不一样。iostream 黄兴鼎版权所有
C语言课件-第02讲-cp
字符的存储方式与整数相同
举例
字母A的ASCII码值为65 且占一个字节。
01000001 RAM 01000001
14
2.2 常量、变量和标准函数
2.2.1 常量
在程序运行期间,其值 不能被改变的量 — 常量。
整数的存储方式
正整数的存储方式
在内存中以二进制补码形式存放。
正整数的补码与原码相同。
例如:10
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 RAM 00000000 符号位 00001010
11
基本数据类型
整数的存储方式
负整数的存储方式
在内存中以二进制补码的形式存放。 例如:-10
5
基本数据类型
变量与常量
数据(Data)
程序处理的对象是数据。 数据有多种形式:数值、字符、声音、图片等。 数据均以二进制形式存放在存储器中。
常量(Constants)
在程序执行期间其值不可改变的量。 如直接常量:23,-5.27;符号常量等。
变量(Variables)
在程序执行期间可以改变的量。 如程序中表示半径和面积的变量r和area等。
7
2.1.4 不同数据类型间的转换与运算
在C程序中,当不同类型的量进行运算时,要转换成同 一种类型然后再进行运算。
转换方式:自动类型转换∕强行类型转换 自动类型转换—将低级类型自动转换成高级类型,然 后再按同类型量进行运算。
float double
long unsigned 高
例:
15+2.5* ’A’
语句定义
if、else、goto、switch、case、do、while、for、continue、 break、return、default、typedef
C语言常量和变量课件
变量的定义与 使用
变量— 先定义,后使 用
先赋值,后引用
int a,b; a=2; b=a*a; printf(“%d”,b);
变量的赋值
一.赋初值(初始化):在定 义变量时对它赋值
int a=5,b=2;
二.赋值表达式:
int a,b; a=5; b=2;
三.输入函数:
scanf(“%d%d”,&a,&b);
横向跳格(8或4个)!根据前面为参考
常 用 的 转 回车(回到本行第一个位置)
退格
义 字 符 常 换页(没有变化)
量 空字符
反斜杠
的
含
义
单击此处输入你的正文,文字是您思想的提炼,为了最终演示发布
单引号 双引号 的 良 好 效 果 , 请 尽 量 言 简 意 赅 的 阐 述 观 点 , 以 便 观 者 可 以 准 确 理 解 您所传达的信息。
实型变量
2 实型变量 -- 单精度浮点型 4字节存储 float a, b, c; -- 双精度浮点型 double x, y, z8;字节存储
实型数据的输入和输出
printf( ) float、double使用相同的格式控制说明
%f:以小数形式输出浮点数,保留六位小数 %e:以指数形式输出
例:实型数据的输出
printf("%c",'a');
printf("%d",'a');
//打印出 'a'的 ASCLL码值 97
1.3.2、 转义字符
使用 ’ \ ’
1.3.3字符串常量
字符串常量,注意字符串常量和字符型常量是不一样的。
字符串常量与字符常量不同的地方是,字符串常量是用""把字符串括起来,所以'a'和"a" 是不一样的,而且系统会在字符串常量的末尾自动加一个字符串结束标志('\0')。
计算机等级考试二级C语言第2讲 程序控制结构
}
return 0; }
对吗?
(3)if…else if语句 在C++程序还经常使用如下结构: if(表达式1)语句1
else if(表达式 2)语句 2 else if(表达式3)语句 3
… else if(表达式n)语句 n
else语句n+1 这种嵌套的if语句构成的序列是编写多路判定的最一般的方法。
printf("%d\n",d); } 程序运行后的输出结果是 A) 2 B) 3 C) 43 D) 44
当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为 if(a<b)
if(c<d) x=1; else
if(a<c) if(b<d) x=2; else x=3;
else x=6; else x=7; A.1 B.2 C.3 D.6
大纲内容
四、选择结构程序设计 1.用 if 语句实现选择结构。 2.用 switch语句实现多分支选择结构。 3.选择结构的嵌套。 五、循环结构程序设计 1.for 循环结构。 2.while 和 do-while循环结构。 3.continue语句和 break语句。 4. 循环的嵌套。
1. 用 if 语句实现选择结构
printf(“%d\n”,k);
A.-1
B.0
C.9
D.28 D.10
有以下程序 main() { int k=5,n=0;
while(k>0) { switch(k)
{ default : break; case 1 : n+=k; case 2 : case 3 : n+=k;
} k--; } printf("%d\n",n); } 程序运行后的输出结果是 A)0 B)4 C)6 D)7
计算机等级考试 二级C语言讲义 第二讲 运算符和表达式
第二讲主要内容运算符表达式一.运算符1.算术运算符和算术表达式C语言的运算符具有不同的优先级,而且还有一个特点,就是它的结合性。
在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。
这种结合性是其它高级语言的运算符所没有的,因此也增加了C语言的复杂性。
C运算符简介C语言的运算符可分为以下几类:1.算术运算符:用于各类数值运算。
包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
2.关系运算符:用于比较运算。
包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。
3.逻辑运算符:用于逻辑运算。
包括与(&&)、或(||)、非(!)三种。
4.赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
5.逗号运算符:用于把若干表达式组合成一个表达式(,)。
6.指针运算符:用于取内容(*)和取地址(&)二种运算。
7.求字节数运算符:用于计算数据类型所占的字节数(sizeof)。
8.特殊运算符:有括号(),下标[],成员(→,.)等几种。
9.条件运算符:这是一个三目运算符,用于条件求值(?:)。
10.位操作运算符:参与运算的量,按二进制位进行运算。
包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
1.1算术运算符和算术表达式1.基本的算术运算符●加法运算符“+”:加法运算符为双目运算符,即应有两个量参与加法运算。
如a+b,4+8等。
具有左结合性。
●减法运算符“-”:减法运算符为双目运算符。
C语言程序设计基础讲解PPT第3章(第二讲)
14
与 哪 个 if 配 对 ? ⑶ if (c<=100) if (c>=50) printf("50<=c<=100\n"); else printf("c<50\n")
2019/1/8
再例如:
if(a>b) if(a>c) if(a>d) m=1; else m=2; else m=3; 问题:哪一个 else 和哪一个 if 相匹配?
24
2019/1/8
注意:
25
switch语句的书写格式:语句体本身必须用花括 号括起;case和default后面如果有多条语句, 则可以不必使用花括号;case和常量表达式之 间必须有空格;default可以写在语句体的任何 位置,也可以省略不写 break语句可以改变case的语句标号作用,终止 后续case语句序列的执行。 switch语句和break 语句结合,可以实现程序的选择控制(break语 句还可以在循环语句中使用) 允许switch嵌套使用,但同一个switch语句中, 任意两个case的常量表达式值不能相同。
2019/1/8
程序:
#include "stdio.h" main( ) { char ch; ch=getchar( ); if (ch>='A' && ch<='Z') ch=ch+32; printf("%c\n",ch ); } 可使用条件表达式代替
程序运行情况如下: putchar(ch>='A' && ch<='Z' ? ch+32:ch); G putchar (' \n') g
C语言-02-变量输入输出和函数
2.2.4 复合赋值与自加自减
复合赋值 以下几种运算称为复合赋值,复合赋值也 是一种赋值。 a+=b; /*相当于a=a+b; 将a的值增加b*/ a-=b; /*相当于a=a-b; 将a的值减少b */ a*=b; /*相当于a=a*b; 将a的值放大b倍 */ a/=b; /*相当于a=a/b; 将a的值缩小b倍 */ a%=b; /*相当于a=a%b; 将a的值变为a除 以b的余数 */
3、变量的初始化
变量在定义时同时就赋给一个值,称为初始化。 如 float z=4.2, v, s=1.3; /* 变量z,s在定义时同时初始化,而变量v只是定义。 */ 再如
int x,y=3,z;
4、变量值的输出
整型变量的值是一个整数,实型变量的值是一个 实型数,因此其输出与整型数、实型数的输出并 无区别。 如下列程序段将输出##1.600000**9 float x=2.5; int y; x=1.6; /* x原来为2.5,现变为1.6 */ y=3; /* y原来未知,现变为3 */ printf("##%f**%d\n",x,y*3);
2、变量的赋值
变量的赋值就是给变量一个值。通过赋值使变量 获得一个新的值。赋值用赋值运算符“=”,其格 式如下:变量名=表达式; 赋值语句执行时先计算右边的表达式的值,再将所得 的值赋给左边的变量。如 int a,b; a=5; /* a获得值5 */ b=6+a; /* 将6+a的值也就是11赋值给b */ 变量可以再次赋值,再次赋值后,原先的值就被新的 值覆盖。如经过下列语句后a的值是6。 a=5; a=6; /*注意变量经过新的赋值以后,原来的值5就丢 失了 */
2.2.2 输入数据
计算机二级 C语言考试 C语言学习 第2讲
• 输入分隔符的指定 – 一般以空格、TAB或回车键作为分隔符 – 其它字符做分隔符:格式串中两个格式符间字符
例 scanf(“%d%o%x”,&a,&b,&c); 例例 scanf(“%d,%d”,&a,&b) scanf(“%d:%d:%d”,&h,&m,&s); 输入 12:30:45 输入 3,4 例printf(“a=%d,b=%d,c=%d\n”,a,b,c scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 则12 h, 30 b 45 s 则3a, 4 m, ); 输入 a=12,b=24,c=36 输入 123 123 123 输出 a=123,b=83,c=291
十进制整数
567 ff 101 567
char a=65;printf(“%c”,a); A 例 int a=3,b=4; ABC printf(“%s”,“ABC”); 字符串 printf(“%d %d\n”,a,b); 例 main() 例 intprintf(“a=%d , b=%d\n”,a,b); a=3,b=4; 5.677890e+02 指数形式浮点小数 float a=567.789;printf(“%e”,a); int u=65535; { unsigned printf(“%d %d\n”,a,b); 567.789000 输出结果: 3 a=567.789;printf(“%f”,a); printf(”u=%d\n",u); 小数形式浮点小数 float 4 printf(“a=%d b=4 float a=567.789;printf(“%g”,a); 567.789 a=3, , b=%d\n”,a,b); } e和f中较短一种 printf(“%%”); % 输出结果:u=-1 百分号本身
C语言程序设计-第2讲 字符集
static auto
<2>程序结构语句定义符 〔10个〕
判断: If 循环: for do while 转移:goto 跳出: break continue 返回:return 开关:switch case
3、其它关键字
sizof 大小 typedef 类型定义
default volatile 可变的 变量
和字符串常量中起作用.在其它地方出现时,只起间隔作用,编译程序对
它们忽略不计.因此在程序中使用空白符与否,对程序的编译不发生影
响,但在程序中适当的地方使用空白符将增加程序的清晰性和可读性.
4.标点和特殊字符
一、C语言词汇
在C语言中使用的词汇分为六类:标识符,关键字,运算 符,分隔符,常量,注释符等.
short int,短整型,2个字节.通常简写为short long int,长整型,4个字节.通常简写为long
single 单精度浮点数 4个字节 double 双精度浮点数 8个字节 long double ?
signed 用来修饰char、int、short和long,说明他们是有符号的整
/*定义 ch 为字符型变量*/
C语言第2-3讲
* *** ***** *******
复习: 计算机中的数据表示
1.2.2 基本整型与%d格式符
例 例1-2 1-2 基本整型变量的定义和输出。 基本整型变量的定义和输出。 #include #include "stdio.h" "stdio.h" main() main() { { int /*定义一个基本整型变量a*/ int a; a; a=23; /*a赋值为23*/ a=23; a=-23567; printf("%d\n",a); printf("%4d\n",a); //用%d格式符输出变量a的值 } }
⑵ 整型变量的声明 例1 main( ) { int a,c; unsigned u; a=12; u=10; c=a+u; printf("%d\n",c); }
2.浮点型变量
(1)浮点型变量的分类
类型 关键字 所占字节数 有效数字位数 数值范围
单精度 float
双精度 double 长双精度 long double
常用数学函数(附录D) x fabs(x) exp(x) ex log(x) ln x log10(x) lg x pow(x,y) xy sqrt(x) x sin(x) sin x cos x cos(x) tan(x) tan x
2.4 赋值、自增、自减运算符
例2-5 赋值运算示例。 #include "stdio.h" main( ) {int a,b; a=1; a=1.95; b=5; a=a+1; a=b; b=a; printf("%d,%d\n",a,b); }
第二讲_C语言中的数据运算
第二讲 C语言中的数据运算主要内容C语言中的数据类型(浮点、字符型)变量赋值与混合运算算术运算和强制类型转换赋值运算和赋值表达式逗号运算和逗号表达式输入输出再讨论浮点型数据(实型数据)实型变量数据存储:指数形式:符号位 尾数(为[0,1]间的小数) 指数尾数和指数的位数没有统一标准,由各C系统自定。
实型变量的分类类型 字节数 有效数字 表示数值范围float 4 7 10 38 ~10 38double 8 16 10 308 ~10 308 实型变量定义float 变量表;double 变量表;。
说明:double数据的输入格式串是“%lf”或“%le”练习1:编程输入一个 float 数据后直接输出,理解 float 的有效数字。
练习2:编程输入一个double数据后直接输出。
实型常量²十进制小数形式:必须有小数点。
如:3.14159、-23.4563、.5、1.²指数形式:字母e前必须有数字,字母e后必须为整数。
如:1.5e4、6.8e-10说明:n实型常数只以十进制表示n所有实型常数默认为double,加 f或 F显式说明为 floatn绝对值小于1的实数,小数点前的 0可略n Turbo C用默认格式输出实型数时,保留小数点后6位n实型数据易产生误差,对于实型数据的比较,谨用“= =” 。
#include <stdio.h>#include <math.h>main(){int a,b;if(1./41*41==1)a=1;else a=0;if (sqrt(2)*sqrt(2)==2) b=1;else b=0;printf("%d\t%d\n",a,b);}思考1. double 和 float,哪种类型表示的数据精度高?有效位数分别是?2. 用什么格式串输入数据给 double 型变量?3. 用什么格式串输出 double 型数据?4. 目前认识的输出格式串有哪些?5. 3.5 是哪种类型的常量?6. 如何表示 float 型的常量?7. 实型数据可以以八进制或十六进制输出吗?8. 输出 double 型数据的格式串是?字符型数据字符常数n直接表示, 如'a', '9', 'Z'n ASCII码值表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二讲 数组、字符串… dsjiaoxue@ 数组、
基本思想: 基本思想:……
a[0] a[1] a[2] a[3] a[4] 乌拉圭 意大利 意大利 乌拉圭 西德
例如: 例如:char a[19][20];
算法: 算法: 1)置计数器 的值为 的值为1; )置计数器c的值为 2)for(j=1;j<=18;j++) ) { 2.1) 在前面的比赛结果中找 在前面的比赛结果中找a[j]; ; 2.2) 如果找不着,计数器 如果找不着,计数器c+1; ; } 3)输出计数器 的值 的值; )输出计数器c的值
第二讲 数组、字符串… dsjiaoxue@ 数组、
#include <stdio.h> void main( ) a[15],i,j,f,c; { int a[15],i,j,f,c; printf("输入15个数 输入15个数"); printf( 输入15个数 ); for(j=0;j<15;j++) scanf("%d",&a[j]); //计数器 c=1; //计数器 printf("%d ",a[0]); for(j=1;j<=14;j++) { f=1; for(i=j-1;i>=0;i---) for(i=j-1;i>=0;i--) if(a[j]==a[i]) {f=0;break;} printf(" if(f) { printf("%d ",a[j]); c++;} } printf("集合中元素的个数 集合中元素的个数= printf("集合中元素的个数 %d \n",c); }
第二讲 数组、字符串… dsjiaoxue@ 数组、
//冒泡排序 for(j=0;j<18;j++) //冒泡排序 for(i=0;i<18for(i=0;i<18-j;i++) if (strcmp(a[i],a[i+1])>0) {strcpy(s,a[i]),strcpy(a[i],a[i+1]), strcpy(a[i+1],s);} :\ printf("the sorted numbers :\n"); //输出排序后的国家名 for(i=0;i<19;i++) //输出排序后的国家名 printf("\ { if(i%5==0) printf("\n"); printf("%printf("%-8s",a[i]);} printf("\ printf("\n"); }
r=&b; *r; p=a; q=a+9; p++; q--; q-p;
含义? 含义?
q
第二讲 数组、字符串… dsjiaoxue@ 数组、
例1.写程序的运行结果,然后说出该程序的功能。 1.写程序的运行结果,然后说出该程序的功能。 写程序的运行结果 #include <stdio.h> void main( ) a[10]={1, 0}; { int a[10]={1,2,3,4,5,6,7,8,9,0}; int *p ,*q ,temp; for(p=a;p<(a+10);p++) for(p=a;p<(a+10);p++) p=a printf("%d ",*p); for(p=a,q=a+9;p<q;p++,q--) for(p=a,q=a+9;p<q;p++,q ) { temp=*p; *p=*q; *q=temp;} p=a;p<(a+10);p++) for(p=a for(p=a;p<(a+10);p++) printf("%d ",*p); } 1,2,3,4,5,6,7,8,9,0 , , , , , , , , , 0, 9, 8, 7, 6 , 5, 4, 3, 2, 1
2 4 6 8 10 1 3 5 7 9
第二讲 数组、字符串… dsjiaoxue@ 数组、
二维数组(多维数组) 二维数组(多维数组) 定义格式: 定义格式:
第一维的大小 第二维的大小
数组名[常量表达式1][常量表达式 常量表达式2 类型说明符 数组名[常量表达式1][常量表达式2]; 例:int a[3][4],b[5][10]; a[3][4],b[5][10]; 2 1 4 6 3aoxue@ 数组、
历届世界杯足球赛冠军 1930年 第1届 1930年 乌拉圭 1934年 第2届 1934年 意大利 1938年 第3届 1938年 意大利 1950年 第4届 1950年 乌拉圭 1954年 第5届 1954年 西德 1958年 第6届 1958年 巴西 1962年 第7届 1962年 巴西 1966年 第8届 1966年 英格兰 1970年 第9届 1970年 巴西
第二讲 数组、字符串… dsjiaoxue@ 数组、
运行结果: 运行结果: 按年份的国家名: 按年份的国家名: 乌拉圭 意大利 巴西 巴西 阿根廷 意大利 法国 巴西
意大利 乌拉圭 西德 英格兰 巴西 西德 阿根廷 西德 巴西 意大利 西班牙
得冠军的国家个数= 得冠军的国家个数= 8 排序后国家名 : 阿根廷 阿根廷 巴西 巴西 西班牙 西德 意大利 意大利 巴西 法国 西德 意大利 巴西 巴西 乌拉圭 乌拉圭 西德 意大利 英格兰
第10届 1974年 西德 10届 1974年 第11届 1978年 阿根廷 11届 1978年 第12届 1982年 意大利 12届 1982年 第13届 1986年 阿根廷 13届 1986年 第14届 1990年 西德 14届 1990年 第15届 1994年 巴西 15届 1994年 第16届 1998年 法国 16届 1998年 第17届 2002年 巴西 17届 2002年 第18届 2006年 意大利 18届 2006年 第19届 2010年 西班牙 19届 2010年
第二讲 数组、字符串… dsjiaoxue@ 数组、
二维数组在内存中的表示: 二维数组在内存中的表示: int a[3][4] 2 1 4 6 3 0 8 5 3 9 7 8
2 6 8 9 1 3 5 7 4 0 3 8
a[0] a[1] a[2]
可以把二维数组当作 一维数组来处理!! 一维数组来处理!! 三维数组、四维数组……、 三维数组、四维数组 、 多维数组
第二讲 数组、 数组 字符串、 数组、指针、字符串、 dsjiaoxue@ 第二讲 数组、指针、、字符串…结构体综合应用
数 组: 固定数目相同类型的元素所组成的序列。 固定数目相同类型的元素所组成的序列。 定义格式: 数组名[常量表达式]; 定义格式: 类型说明符 数组名[常量表达式]; 低地址 例如: a[10] 例如: int a[10]; 大小 一维数组在内存中的表示 如果: 如果:{2, 4, 6, 8, 10, 1, 3 ,5, 7, 9} 高地址
第二讲 数组、字符串… dsjiaoxue@ 数组、
指针…… ; 地址 指针 概念、定义、运算符: 概念、定义、运算符 * , &, -> 数组名…… 数组名 数组的访问方法:下标法、 数组的访问方法:下标法、 指针法 p 如果: 如果: int a[10], b=9,*p,*q,*r;
第二讲 数组、字符串… dsjiaoxue@ 数组、
例2.下面的程序能实现上一程序的功能吗? 2.下面的程序能实现上一程序的功能吗? 下面的程序能实现上一程序的功能吗 #include <stdio.h> void main( ) a[10]={1, 0}; { int a[10]={1,2,3,4,5,6,7,8,9,0}; int p ,q ,temp; for(p=0;p<10;p++) for(p=0;p<10;p++) p=0 printf("%d ",a[p]); p<q;p++,q--) for(p=0,q=9; p<q;p++,q ) { temp=a[p]; a[p]=a[q]; a[q]=temp;} p=0;p<10 for(p=0 for(p=0;p<10 ;p++) printf("%d ",a[p]); }
第二讲 数组、字符串… dsjiaoxue@ 数组、
c=1; for(j=1;j<=18;j++) { f=1; for(i=j-1;i>=0;i--)/*在前面找 --)/*在前面找* for(i=j-1;i>=0;i--)/*在前面找*/ if(strcmp(a[j],a[i])==0) /*找着了 找着了* { f=0;break;} /*找着了*/ c++;/*没找着 计数器c+1*/ 没找着, if(f) c++;/*没找着,计数器c+1*/ } 得冠军的国家个数= printf(" 得冠军的国家个数= %d \n \n",c);
第二讲 数组、字符串… dsjiaoxue@ 数组、
3.如果一个大小为 如果一个大小为15的整型数组存放的是一个 例3.如果一个大小为 的整型数组存放的是一个 集合, 集合,请输出这个集合中的所有元素 ,并求出这个 集合中元素的个数。 集合中元素的个数。 算法: 算法: 1)输出第一个元素,并使计数器的值为1 )输出第一个元素,并使计数器的值为 2)for(j=1;j<=15;j++) ) { 2.1) 在前面的元素中找 在前面的元素中找a[j]; ; 2.2) 如果找不着,则输出这个元素 如果找不着,则输出这个元素a[j], , 并使计数器c+1; 并使计数器 ; } 3)输出计数器 的值 )输出计数器c的值