C++第二章
c语言程序设计第二章课后参考答案
第二章:C程序的基本结构一、单项选择题1、以下不是C语言的特点的是________。
A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。
A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行3、以下不是二进制代码文件是________。
A)标准库文件 B)目标文件C)源程序文件 D)可执行文件4、下面个选项组中,均属于C语言关键字的一组是________。
A)auto,enum,include B)switch,typedef,continueC)signed,union,scanf D)if,struct,type5、下面四组字符串中,都可以用作C语言标识符的是________。
A)print B)I \am C)signed D)if_maf scanf 3mf ty_prmx_2d mx_ a.f x1#aMb6 AMB A&B 5XY6、以下不属于流程控制语句的是_________。
A)表达式语句 B)选择语句 C)循环语句 D)转移语句7、下面描述中,不正确的是________。
A)C语言的函数体由一系列语句和注释组成。
B)注释内容不能单独写在一行上。
C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。
D)scanf和printf是标准库函数而不是输入和输出语句。
8、下面描述中,正确的是________。
A)主函数的花括号必须有,而子函数中的花括号是可有可无的。
B)一个C程序行只能写一个语句。
C)主函数是程序启动时的唯一入口。
D)函数体包含了函数说明部分。
二、填空题1、一个完整的C程序至少要有一个________函数。
(主函数)2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。
(编译系统)3、C语言是以________为基本单位、整个程序由________组成。
C语言教程课件第二章 数据类型、运算符和表达式
例 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
例 向字符变量赋以整数。 • 运行结果: #include <stdio.h> a b void main() 97 98 { char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); }
• 说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它 的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98
• 字符型变量用来存放字符常量,注意只能放一个字符。 • 字符变量的定义形式如下:char c1,c2; • 在本函数中可以用下面语句对c1,c2赋值: c1='a';c2='b'; • 一个字符变量在内存中占一个字节; • 将一个字符常量放到一个字符变量中,是将该字符的 相应的ASCII代码放到存储单元中,这样使字符型数据 和整型数据之间可以通用。一个字符数据既可以以字 符形式输出,也可以以整数形式输出。
运行结果: total=300 例2.1 符号常量的使用 #define PRICE 30 #include <stdio.h> void main ( ) 说明:如再用赋值语句给PRICE赋值是错的 { PRICE=40;/*错误,不能给符号常量赋值*/ int num, total; num=10; total=num * PRICE; printf(″total=%d\n ″,total); } 说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在 本文件中出现的PRICE都代表30,可以和常量一样进行运算
c语言与程序设计-第2章课后习题参考答案
2.1 下列哪些是词法记号?关键字(是)注释空白符八进制常量(是)三字符序列字符串常量(是)括号(是)2.2 C编译器可将下列每一个源字符串分解为哪些记号?(不必考虑记号组合是否合法)(1)x+++y x, ++, +, y(2)-0xabL -, 0xabL(3) 2.89E+12L 2.89E+12L(4)"String+\"FOO\"" " String+ \"FOO\""(5)x**2 x, *, *, 2(6)"X??/" "X??/"(7)a?b a, ?, b(8)x--+=y x, --, +=, y(9)intx=+10 intx, =, +, 10(10)"String""FOO" "String", "FOO"(这道题当时改的时候有几个小题改得有错误,注意!)2.3 下列哪些不是标识符,为什么?标识符由字母、数字和下划线组成,但首字符必须是字母或下划线。
4th 不是,以数字开头;sizeof 不是(标准C的关键字)_limit 是_is2 是xYshould 是x*y 不是,* 非法o_no_o_no 是temp-2 不是,- 非法isn't 不是,' 非法enum 不是(标准C的关键字。
注:关键字也称为保留字,是被系统赋予特定含义并有专门用途的标识符。
关键字不能作为普通标识符,但可以作为宏名。
所有预处理均发生在识别这些关键字之前。
)2.4 在下列表示中,哪些是合法常数,哪些是非法常数?对于合法常数,指出其类型;对于非法常数,说明其错误原因。
2L 合法,long长整型''' 不合法,单引号组中的单引号前需要转义字符.12 合法,double双精度浮点型0x1ag 不合法,g不是16进制数中的符号,也不表示任何类型33333 合法,int整形"a" 合法,字符串常量"" 合法,字符串常量0.L 合法,long double长双精度浮点型E20 不合法,缺少尾数部分0377UL 合法,unsigned long无符号长整型'\18' 不合法,存在非8进制位'\0xa' 不合法,不符合十六进制字符码表示规则\xhh0x9cfU 合法,unsigned int无符号整形'\45' 合法,char字符型1.E-5 合法,double双精度浮点型'\0' 合法,char字符型3.F 合法,float浮点型"3'4"" 不合法,缺少转义符'"' 合法,char字符型(P35,双引号作为字符常量时既可用图形符号也可用转义序列表示)'\a' 合法,char字符型2.6 以下的变量声明语句中有什么错误?(1)int a; b = 5; 第一个分号改为逗号int a, b=5;(2)doubel h; 关键字错误double h;(3)int x = 2.3; 类型错误float x = 2.3;(4)const long y; 需要赋初值const long y = 0;(5)float a = 2.5*g; g未定义变量int g = 1; float a = 2.5*g;(6)int a = b = 2; b未定义变量int a = 2, b = 2;2.7 设变量说明为:int a = 1, b = 2, c = 3, d;double x = 2.0; y = 7.7;请给出下列表达式的值。
C程序设计基础-PPT课件
2.1 常量和变量
注意符:号常量在其作用域内不能再赋值。
符号常量的好处:(1)含义清楚。(2)需改变时,“一改全改”。
2024/10/14
1
2.1 常量和变量
注意:
1、变量中的值:变量必须要有值才能参与运算,(如果一个变量
没有赋值,则该变量是一个随机值)变量可以在定义后与其赋值,也可以
2024/10/14
16
2.3 运算符与表达式
逻辑运算符和逻辑表达式
符号
例子 0&&0=0、0&&1=0、1&&0=0、1&&1=1
0||0=0、0||1=1、1||0=1、1||1=1 !1=0、!0=1
使用说明: ➢1、逻辑非优先级高于逻辑与和逻辑或,逻辑与和逻辑或优先级相同; ➢2、C语言规定:非0都表示“真”,只有0表示“假”; 例:6<4&&7>-3+!5
14
2.3 运算符与表达式
赋值运算符与赋值表达式
符号
功能
例子
=
将表达式右边的数据赋值给左边的变量
x=3+a
+=
将表达式右边的计算结果加上左边的变 量再赋值给左边的变量
x+=3+a等价于x=x+(3+a)
-=
将表达式右边的计算结果减去左边的变 量再赋值给左边的变量
x-=3+a等价于x=x-(3+a)
6~7
双精度(double): 8B 10-308 ~ 10308 15~16
长双精度: 16B 10-4931 ~ 104932 18~19
C第二章
Ch2_02
说明:整型数据的“溢出”
int范围为-32768~32767。 unsignde int范围为0~65535。
超出后发生“溢出”,但运行时不报错。 [例2.3] P31例 2.9
main() { int a,b; unsigned i,j; a = 32767; b = a+1; i = 65535; j = i+1; printf(" %d,%d, %u , %u ", a, b,i, j); }
运行结果:32767,-32768,65535,0
Ch2_03
2.4.2 实型变量P32
2.混合运算时,先转换成同一种类型,然后进行运算。 转换规则: 例:
横向为自右向左强制转换, int i; 纵向从低到高可多次或 float f; 一次转换成功。
高
double
float
double d; long e; 10 + 'a' + i*f - d/e
long
unsigned
低 int
char,short
说明: C语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关,但一般 是2字节。
二、整型变量的定义P30
[例2.2] P30例 2.7
main()
{ int a=1; c=a ;
int b=-1; d=b;
a, c, c, b, d, d);
unsigned c,d; printf(" %d, %d, %u , %d, %d, %u ",
C 材料力学第二章 轴向拉伸和压缩 第一部分
基于下列实验现象有“平面假设”
现象: 直线保持为直线。 相互垂直的直线依旧相互垂直。->无切应变 纵向线段伸长,横向线段缩短。 长度相等的纵向线段伸长后依旧相等。 长度相等的横向线段缩短后依旧相等。 即变形分布均匀,依据胡克定律应力分布也 均匀。
平面假设
根据表面变形情况,可以由表及里的做出 假设,即横截面间只有相对移动,相邻横 截面间纵线伸长相同,横截面保持平面, 此假设称为平面假设(Plane CrossSection Assumption)。
问题
(1)图示的曲杆,问公式 (2-2)是否适用?
2)图示杆由钢的和铝牢固 粘接而成,问公式(2-2) 是否适用?
(3)图示有凹槽的杆,问 公式(2-2)对凹槽段是否 适用?
σ
变截面杆横截面上的应力
F
F
应力集中 (Stress Concentration)
例:图示杆1为横截面为圆形的钢杆,直径d=16mm,杆2 为横截面为正方形的木杆,边长为100mm。在节点B处作 用20kN的力,试求1、2杆中的应力。
r ∆r o
θ
∆s
s
应力与变形的一般关系
正应力在正应力方向引起线应变,不引 起切应变 切应力引起切应变,在切应力方向不引 起线应变 这里作为结论直接给出,感兴趣可在课 后研究证明之。
轴拉伸实验
平面假设(基于实验观察)
a d e a a d e a b c b b c c d e b c d e
例 题
解:1、2杆都为二力杆,是简单拉 压问题,取节点B进行受力分析: 由节点B的平衡可得:
F N1 3 = G = 15kN 4 F N2 5 = − G = −25kN 4
A 2m
1.5m 1 2 C FN1 FN2 B G
第二章 c语言简单计算问题
填词
for(i = 0; i < p; i++){ char str[200]; scanf("%s", str); for(j = 0; str[j] != '\0'; j++) characters[str[j] - 'A'] --; } for(i=0; i< 26; i++){ if(characters[i] != 0) for(j=0; j<characters[i]; j++) printf("%c", i + 'A'); } printf("\n"); }
棋盘上的距离
国际象棋的棋盘是黑白相间的8*8的方格, 国际象棋的棋盘是黑白相间的 的方格,棋 的方格 子在格子中间,走子规则如下: 子在格子中间,走子规则如下:
– – – – 王:横、直、斜都可以走,但每步限走一格 斜都可以走, 斜都可以走, 后:横、直、斜都可以走,每步格数不受限制 竖均可以走,不能斜走, 车:横、竖均可以走,不能斜走,格数不受限制 只能斜走, 戏。填词游戏包括一个N*M 大小的矩形方格盘和P个单词。然后需要把每 个方格中填上一个字母使得每个单词都能在 方格盘上被找到。每个单词都能被找到要满 足下面的条件
– 每个方格都不能同时属于超过一个的单词。一个 长为k的单词一定要占据k个方格。单词在方格盘 中出现的方向只能是竖直的或者水平的。 – 你的任务是首先在方格盘上找到所有的单词,当 然在棋盘上可能有些方格没有被单词占据。然后 所这些没有用的方格找出来,把这些方格上的字 母按照字典顺序组成一个“神秘单词”
鸡兔同笼问题
C语言第二章习题及详解
C语言第二章习题及详解二、第二章1、设整型变量a的值为2,下列表达式值为1的是__。
(A)A)a%3B)a/3=0C)--a D)a++2.设变量a、b、c已定义并赋值,则下列表达式中符合C语言语法规则的是__。
(B)A)a=5++操作数只能是变量B)a=b=c++C)a=%2D)b=a+1=2左边只能是单个变量,即变量1=变量2=。
3.下列式中,最终运算结果的数据类型不是单精度的表达式是__。
(A)A)(int)(3+3.0)B)1e-3fen:n必须为整数C)(float)(3)D)(int)3.0+3.04.字符串”ab\x41\\34cd\102y”的长度是_A_。
\xhh表示ASCII 码:例\x41,41是16进制的。
字符串含有’\0’。
’\102’也表示ASCII码,但102是8进制的,长度为10,储存空间占11个字节。
A)10B)12C)14D)185、变量是在程序运行过程中可改变的它的三要素是类型、名称、数值6.以下选项中合法的常量是?DA)’Internet’B)E_3变量C)02x D)0xfeL7.以下选项中合法的赋值表达式是?CA)d=8+a+f=d+6同2D B)d=(a+8)++同2AC)d=(8+e,e++,d+9)D)d=7+e++=d+78.main(){int x=5,y=3;float f;f=x/y;表示为整形printf(“f=%f\n”,f);}则程序的输出结果是?f=1.0000009.设整型变量x,y,z均为2,表达式(x++)+(y++)+(z++)的值是_A 先使用值再加加_。
A)6B)7C)8D)910.设int a=3,b=5;float x=7.5,y=3.5;则表达式(float)a+b/2+(int)x%(int)y;的值是6.0__。
*11.执行语句:int a;a=‘1’+1.5;后,正确的叙述是_D_。
A)a的值是字符‘3’B)a的值是浮点型C)不允许字符型和浮点型相加D)a的值是字符’1’的ASCII码值加上112.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是_B_。
c语言程序设计-第2章_算法
C程序设计(第三版)
例2.7 将例2.2的算 法用流程图表示。打 印50名 学生中成绩在 80分以上者的学号和 成绩。
C程序设计(第三版)
如果如果包括 这个输入数据 的部分,流程 图为
C程序设计(第三版)
例2.8 将例 2.3判定闰 年的算法用 流程图表示
用流程图表示算法要比 用文字描述算法逻辑清 晰、易于理解。
完整的程序设计应该是:
数据结构+算法+程序设计方法+语言工具
C程序设计(第三版)
2.1 算法的概念
广义地说,为解决一个问题而采取的方 法和步骤,就称为“算法”。 对同一个问题,可有不同的解题方法和步骤 例: 求
n
n 1
100
• 方法1:1+2,+3,+4,一直加到100 加99次 • 方法2:100+(1+99)+(2+98)+…+(49 +51)+50 = 100 + 49×100 +50 加51次
C程序设计(第三版)
2.4 算法的表示
可以用不同的方法表示算法,常用的有: –自然语言 –传统流程图 –结构化流程图 –伪代码 –PAD图
C程序设计(第三版)
2.4.1 用自然语言表示算法 自然语言就是人们日常使用的语言,可 以是汉语或英语或其它语言。用自然语言 表示通俗易懂,但文字冗长,容易出现“ 歧义性”。自然语言表示的含义往往不大 严格,要根据上下文才能判断其正确含义 ,描述包含分支和循环的算法时也不很方 便。因此,除了那些很简单的问题外,一 般不用自然语言描述算法。
S2:如果≥80,则打印和,否则不打印。 S3:i+1 → i S4:如果i≤50,返回S2,继续执行。否则算法结束
C语言基础知识第二章
• •
说明: 在C语言中,没有专门的字符串变量,字符串常量如 果需要存放在变量中要用字符数组来处理。
2013/6/5
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
16
请 判 断 这 些 常 量 正 确 与 否 :
120 、 -100、 0; 0120、 072; 0xFFFF、 0x1e、0X28AF,0XED4 ; 120L, 200L ; 长整型常量 3.14、 -3.1、 5.12E-6 ; 'a' 、'#'、'\n'、'\101' ; 099、12f、 0xg 、48EA ; 019.5 、1e-08; 实型常量只能用十进制形式表示 2.1E10.2、E-6、6.4E+4.8、E9 ; "changsha" 、"+++\\?ab" ; ' \' 、'\p' 、'''、'ab' ;
2013/6/5
C语言程序设计教程
18
• 注意: • 1、符号常量与变量不同,它的值在其作用 域内不能改变,也不能再被赋值。 • 2、使用符号常量的好处: • (1)含义清楚、见名知意。 • (2)修改方便、一改全改,如现在想将符 号常量PI的值修改成3.15的话,只需要将宏 定义语句改为: #define PI 3.15 即可。
C语言程序设计教程
1
第2章 基本数据类型、运算符和表达式 2.1 C语言的数据类型 2.2 常量和变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 变量赋初值 2.7 各类数据之间的混合运算 2.8 C运算符简介
C语言 第2章 类型、运算符与表达式(2.4~2.7)
数据类型、运算符和表达式
主要内容
2.1 预备知识 2.2 常量和变量的概念 2.3 各种数据类型的常量及变量 2.4 变量赋初值 2.5 不同类型数据之间的混合运算 2.6 常用运算符和表达式 2.7 输入函数与输出函数
2
2.4.1 变量和内存的概念
变量: 程序运行过程中其值可以改变的量。 系统为程序中的每一个变量开辟存储单元。 变量名: 字母开头,后跟字母、数字和下划线组成。 C语言中的关键字不能作为变量名。
37
2.7.1
格式输出函数printf
printf函数一般格式: printf(格式控制,输出表列) 格式控制是由双引号括起来的字符串,包含三种信息: 1、格式说明:由“%”和格式字符组成,如%d,%f等。 它的作用是将输出的数据按照指定的格式输出。 2、普通字符:需要原样输出的字符。 3、转义字符:用于控制输出。 输出表列是一些要输出的数据。
27
2.5 数据的混合运算
1、自动转换
• 运算转换
• 赋值转换 2、强制类型转换
28
1、自动转换—运算转换
在进行运算时,不同类型的数据要先自动转换成 同一类型,然后进行运算。转换的规则按图所示。
double← float
long unsigned 转换由编译系统自动完成。 转换按数据长度增加的方向进行, 即按“向高看齐”的原则提升“ 较低”类型,以保证不降低精度。
33
2、强制类型转换
注意:对一个变量进行强制转换后,得到一个新的 类型的数据,但原来变量的类型不变。 例:x原为实型变量且值为2.6,在执行 i = (int)x 后得到一个整数 2,并把它赋给整型变量 i, 但 x 仍为实型,值为2.6。
2 C语言 第二章数据类型、表达式
说明
在整型常量尾部加上字母1或 时 在整型常量尾部加上字母 或L时,则 表示长整型常量.比如: 表示长整型常量.比如:18L或18l 或 整型(int)常量的值在 32768~32767之间 常量的值在 整型 之间 长整型(long int)常量的值在 长整型 常量的值在 2147483648 ~ 2147483647之间 之间
三位八进制 001 000 001 二进制 ( (用十进制表示为65) 65)
A' 如 \ 101 –– 表示字符'A' 又: \ x hh
用1到2位16进制数表示的 到 位 进制数表示的 进制数表示的ASCII码对应的字符 码对应的字符
如 \ x 41–– 表示字符'A'
0100 0001 二进制 (用十进制表示为65)
注意: 注意: 实型变量的有效数字的长度视机器而定 例如: 例如: pc机, 单精度一般为7位, 双精度15位 于是: float a; a=123456.789 则实际赋值a←123456.7 单精度表数范围: 单精度表数范围 10–38~1038 双精度表数范围: 双精度表数范围 10–308~10308 实数可以赋给float或double型变量.
对于较大或较小的数,可用指数形式 0.0000126 1260000 1.26E –5 1.26E+6 或1.26E6
' E ', 'e ' 均可, 表示以10为基数.E或e之前必须要 有数字,称为尾数部分或数码部分.规范化的尾数是将 小数点固定在第一位有效数字之后.ddd称为指数,指数 最多可达3位整数.
2.4.2 实型变量
分为单精度型 双精度型 单精度型与双精度型 单精度型 双精度型. 例如: 例如: float x, y, z ; 定义x, y, z为单精度变量. double a, b, c ; 定义a, b, c为双精度变量. 一般地: 单精度占4字节内存单元 字节内存单元; 一般地 单精度占 字节内存单元 双精度占8字节内存单元 双精度占 字节内存单元. 字节内存单元
第2章 C语言,数据类型、运算符和表达式
(C语言运算符总表见教材P26或P325附录C) return 31
C语言程序设计
算术运算符
+ - * / % 功能: 操作数要求: 结合性: 优先级: 注意事项: 算术运算 两个操作数 (当-用作负号时除外) 自左至右(当-用作负号时除外) -(负号) —— * / % —— + - (由高→低) ① 两个整数相除,结果为整数! 例: 3/2=1 ② %要求两个操作数均为整型数据! 且余数与被除数同号!
说明: ① 字符变量中存放的是字符ASCII码值! ② char与int数据间可进行算术运算!
char choice = 'A';
return24
C语言程序设计
字符串常量
字符常量是用双引号括起来的字符序列. 例如: "hello!" , "0" (1) 字符串常量在内存中的存储 (2) 字符串常量.vs.字符常量
整型
浮点型 字符型 说明:
① 数据类型所占字节数随机器硬件不同而不同! ② 可用sizeof(数据类型说明)来计算某一数据类型占内存的字节数! return
C语言程序设计 next part
2. 常量与变量
标识符命名 常量 变量
go go go
6
C语言程序设计
标识符命名
例: 判断下列标识符号合法性
next
ห้องสมุดไป่ตู้
20
C语言程序设计
字符常量
转义字符是用反斜杠\后面跟一个字符或一个八进制或十 六进制数表示的ASCⅡ码值。例如: '\n', '\101' (1) C语言中常用的转义字符 (2) 转义字符使用实例
C语言复习资料 第二章重点内容
11
2。 对上述已经定义的实型常量指数形式的说明:
(1)在此的digits是一位或多位十进制数字(0—9)组成。 (2)小数点之前是整数部分,之后是小数部分。 (3)小数点在没有小数时可以省略。如:3E+6 (4)指数部分用E或者e开头,幂指数可以为负,当没有符号时,视为正 指数,且其基数都为10。 (5)在不加说明的情况下,实型常量为正值,如果要表示负值,必须在 常量前使用负号。如:-2.5E-5 (6)字母E或e之前必须有数字,且E或e之后指数必须为整数。 如:e3,2.3e9.5,.e3等都是不合法的。
上述各类型整型变量占用的内存字节数随系统而异。在16位操作系 统中,一般用2字节表示一个int型变量,且long型(4字节)≥int型 (2字节)≥short型(2字节)。
2.占用内存字节数与值域
8
显然,不同类型的整型变量,其值域不同。占用内存字 节数为n的(有符号)整型变量,其值域为:-2n*8-1~(2n*8-11);无符号整型变量的值域为:0~(2n*8-1)。(同样适合于 各种不同的类型 ) 例如,PC机中的一个int型变量,其值域为-22*8-1~(22*8-11),即-32768~32767;一个unsigned型变量的值域为:0~ (22*8-1),即0~65535。 2.4.2 整型常量 1.三种表示形式 整型常量即整常数,在C语言中可用三种形式表示: (1)十进制。例如10、36。 (2)八进制(以数字0开头)。例如012。 (3)十六进制(以数字0+小写字母x开头)。例如0x36。
9
2.分类 (1)基本整型。在16位机中,用2字节存储,其数据范 围与int型变量一样。 (2)长整型(在数值后面加“L(l)”)。对超出基 本整型值域的整型常量,可使用长整型常量表示,其取值 范围可达-231-(231-1)。例如,123l、315L等。 3.类型匹配规则 类型匹配规则为:一个整型常量,可以赋给能容纳下其 值的整型变量。 例如,其值在-215--(215-1)的整型常量,可以赋 给int型变量和long int型变量;其值在-231--(231-1)的整 型常量,就只能赋给long int型变量。 注意:常量无unsigned型。但一个非负整型常量,只要 它的值不超过相应变量的值域(即取值范围),也可以赋 给unsigned型变量。
C语言教程第2章数据类型、运算符与表达式
常量只能在定义时赋值,然后不能再改变 其值 常数、 const常量、宏常量和枚举常量, 都可以用来表示一个永远不会改变的数
前者不建议直接使用,而用后三者代替
C语言大学实用教程
2.5 变 量
变量是在程序执行过程中可以改变、可以赋 值的量。
在程序中每一个变量都有一个名子即变量名, 程序对该变量访问(存入、读取)都是通过变 量名进行的。
运行结果: 1234567936.000000
1234567890.000000
}
C语言大学实用教程
2.6 常用运算符及表达式
算术运算符
+,-,*,/,%
加、减、乘、除、求余运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合
#include <math.h>
常用的标准数学函数
C语言大学实用教程
#include <stdio.h> /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) { return (a + b); }
2.1 一个简单的C程序例子
/*主函数*/ ) { int x, y, sum = 0;
022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见
以“0x”或者“0X”开始的整型常数是十六进 制
A~F和a~f用来表示十进制的10~15
十六进制的形式比较常用,尤其在进行位一级的 控制的时候 0x12、-0x1F, -0x1f
C语言大学实用教程
2.4 常量
字符常量
c语言 第二章njcc
② f格式字符。用来输出实数(包括单精度、双精 度),以小数形式输出。其用法如下: (a)%f,实数的整数部分全部输出,小数部分保 留六位。需要指出的是,并非全部数字都是有效 数字。单精度实数的有效位数一般是7位,双精度 实数的有效位数一般是16位。 (b)%mf,输出的实数共占m位,小数部分保留六 位。 (c)%.nf,输出的实数,总宽度按实际宽度,小数 部分占n位。
① d格式字符。用来输出十进制整数。其用 法如下: (a)%d,按型数据的实际长度输出。 例如: printf("%d,\n",x); 如果x=789,则输出结果为: 789
(b)%1d,输出长整型数据。例如: printf("%1d,\n",a); 如果a被定义为: long int a=56789; 则输出结果为: 56789 如果用%d格式输出,就会出错,因为整型数据 的范围是-32768~32767。对超出此范围的long型 数据应当用%1d格式输出。
格式控制符的作用有: 1.为各输出项提供格式转换说明。它总是由 “%”符号开始,紧跟其后的是格式描述符。 2.提供需要原样输出的文字或字符。输出项 表中的各输出项要用逗号隔开,输出项可 以是合法的常量、变量或表达式。格式转 换说明的个数要与输出项的个数相同,使 用的格式描述符也要与它们一一对应且类 型匹配。
• 2.2 数据输出 • 2.2.1 printf函数的一般调用形式 • printf函数是标准输出函数,功能是在终 端设备上按指定格式进行输出。 • printf()函数的一般形式为: • printf(“格式控制”,输出项序列) • 例如:printf(”a=%d,b=%c”,a,b) 中,”a=%d,b=%c”称为格式控制字符串, a,b是输出项序列中的输出项,都是printf 函数的参数。
第2章C语言基础知识
第二章C语言基础知识2.1 常量和变量【学习目标】(1)掌握常用标识符的命名规则(2)掌握常量和变量的定义与引用方法实例5 常量和变量——输出常量与变量的值【实例任务】定义不同类型的几个变量,然后对应输出相应的常量值和变量值。
程序的运行结果如图2-1所示。
图2-1 程序运行结果【相关知识】1.标识符标识符是用来标识变量名、符号常量名、函数名、数组名、文件名、类名、对象名等,其基本构成元素源自字符集。
C语言的字符集包括英文字母、数字字符和一些特殊字符。
用这些基本元素单位命名标识符时,一定要遵循以下四个原则:(1)必须由字母(a~z,A~Z)或下画线(_)开头;(2)由字母、数字或下画线组成的长度不超过32个字符;(3)标识符中的大小写字母有区别;(4)不能与关键字同名。
下面是不合法的标识符和变量名:M.d.,John,y 123,#33,3d642.常量常量是数据在内存中一种表示形式,在程序运行过程中值永远保持不变,常用的类型有5种,包括整型常量、实型常量、字符型常量、字符串常量、符号常量。
整型常量就是整型,常用的表示形式有十进制,如10、30等。
八进制常量表示形式要以0开头,如013、012等。
十六进制常量表示形式要以0x或0X开头,如0x13、0X12等。
实型常量就是指的是一些带小数点的数,包括指数。
如3.14、-1.2、1.2e6、10.5E8等。
其中,1.2e6表示数学上1.2×106,10.5E8表示数学上10.5×108。
字符型常量是单引号引起来的单个字符,这些字符为ASCII字符,对应各有其ASCII 码值。
字符常量包括一些转义字符,字符形式和输出结果对照如表2-1所示。
表2-1 转义字符字符串常量是用双引号引起来的0个或多个字符。
字符串常量形式给出的是字符串在存储空间中的起始地址。
如“Hello World!”就是一个字符串常量。
符号常量,是指以标识符来代替一个值,这个标识符的值在程序运行过程中不能再改变。
C语言知识点:第2章 数据类型、运算符与表达式
主讲教师:杨剑
第 2 章:数据类型、运算符与表达式
1. 本章目标:
理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 使用关系和逻辑运算符
2. 内存如何存放数据
电脑使用内存来记忆计算时所使用的数据 内存如何存储数据? 内存像旅馆.数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空
23. 复合赋值表达式
24. 赋值表达式和逗号运算符
赋值表达式 a=b=c=5;(从右向左计算) a +=a-=a*a
逗号运算符和逗号表达式 3+5,6+8 a=3*5,a*4
25. 习题
~7~
C 语言程序设计知识点
主讲教师:杨剑
有以下程序
main()
{
char a1=’M’,a2=’m’;
12. 单精度浮点型
float 在 C 语言中用于存储单精度浮点数 float 32 位 10-38 至 10+38 ,7 位有效数字 声明:
float price; 初始化:
float score = 11.3; score = 65.90;
13. 双精度浮点型
double 32 位 16 位有效数字 声明:
const float PI=3.14; S=PI*r*r; //等价于 3.14*r*r const 关键字的作用就是“冻结”一个量,它的值不能被修改,是一个只读(read only) 量。 优点:比数值常量可读性好、修改容易
18. 符号常量 2(宏常量)
还可用宏定义符号常量 语法:#define 符号名 常量值 例: 计算圆的周长时
C语言程序设计第二章
2.2 理论知识
运行结果:
2.2 理论知识
常量和变量 直接常量
字符串常量 字符串常量是用一对双引号括起来的零个或多个字符
如"","Hello,world!","123"等
双引号仅起定界作用,本身并不是字符串中的内容
2.2 理论知识
常量和变量 直接常量
字符串常量 字符串的长度 指一个字符串中所包含的字符个数 C语言规定在存储字符串常量时,由系统在字符串的末 尾自动加一个'\0'作为结8.539815
2.2 理论知识
符号常量的两个好处
1. 修改程序方便 2. 见名知意,便于理解程序
符号常量的使用
1. 其值在它的作用域内不能改变,也不能再被赋值 2. 符号常量名用大写,变量名用小写,以示区别
2.2 理论知识
举例:
#define PI 3.1415
void main() { int PI; PI=3.1415; PI=3.14159; }
指针类型 构造类型 空类型
数组类型
结构体类型
共用体类型
2.2 理论知识
C语言的基本数据类型 整数类型
数据类型 有符号整型
短整型 长整型
int a,b,sum; a=32768;
数据类型符 int
short long [int] [int]
占用字节数 2
2 4
取
值
范
围
-215~(215-1) 即-32768~32767
2.2 理论知识
常量和变量 变量的赋值
在定义变量时赋值 float data1=1.5,data2=2.6;
“先定义后赋值
C语言第二章 顺序结构
第二章 顺序结构程序设计
程序基本结构:DICO
声明 Declaration 输入 Input int ia,ib,isum; scanf("%d%d",&ia,&ib);
计算
输出
Compute
Output
isum = ia+ib;
printf("%d+%d=%d\n",ia,ib,isum);
第二章 顺序结构程序设计
在程序语句中使用较为复杂的表达式时,请尽 量多的使用括号来保证准确的计算顺序。
第二章 顺序结构程序设计
2.7 实型数据
第二章 顺序结构程序设计
实型变量 实型变量的分类 单精度(float):占4字节,提供7位有效数字 双精度(double):占8字节,提供15~16位有效 数字 长双精度(long double)
第二章 顺序结构程序设计
其他格式符 (1)%ld,输出长整型数据 (2)%o,以八进制无符号形式输出整数。
例如:int a=65;
printf(“%o”,a);
输出结果:101
(3) x格式符,以十六进制无符号形式输出整数。 int a=255; printf(“%x”,a); 输出结果:ff
第二章 顺序结构程序设计
A+B问题:计算两个整数之和
#include <stdio.h> void main() { int ia,ib,isum; printf("input two integer please:"); scanf("%d%d",&ia,&ib); isum = ia+ib; printf("%d+%d=%d\n",ia,ib,isum); }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2.4 符号常量
• C++语言另外还有一种定义常量的方法,即宏 定义(或宏替换)方法,例如: • # define N 1000 • # define pai 3.1416 • 用宏替换与const 方式的实现机制是不同的:宏 替换是在编译时把程序中出现的所有标识符N 或pai都用1000 和3.1416 来替换,这里并没有 一个只读不写的const 变量存在;宏替换的方 式中没有类型、值的概念,仅是两个字符串的 代换,容易产生问题。
2.1.2 词法记号
• 5 分隔符(separator) • 分隔符本身没有明确的含义,但程序中却必 不可少,一般用来界定或分割其他语法成分 的单词称为分隔符(separator)。例如: • ―;”:表示一个语句的结束。 • “"‖:表示一个字符串的开始与结束。 • 分隔符包括: • ︺(空格),",#,(,),/*,*/,//,’,;, {,}
2.2.2 字面常量
2、实型常量:C++中,包含小数点或10的幂的数 为实型常量。有一般形式和指数形式两种表示方 法。 一般形式与平时书写形式相同,由数字0 9和小 数点组成。例如: 0.23 -125.76 0.0 .46 -35. 指数形式(也称为科学表示法)表示为尾数乘以 10的整数次方形式,由尾数、E或e和阶数组成 。例如: 23E12 //表示1231012 -34e-2 //表示-0.3410-2
2.2.2 字面常量
3、字符型常量:字符常量是用单引号引起来 的单个字符。 如: ′a′ //字符a ′@′ //字符@ ′4′ //字符4 ′′ //空格字符
2.2.2 字面常量
4、字符串常量:用双引号引起来的若干个字 符称为字符串常量。例如: ―I am a Chinese.‖ ―123‖ ―a‖ 字符串常量在内存中是按顺序逐个存 储串中字符的ASCII码,并在最后存放一个 “\0‖字符,作为串结束符。字符串的长度 指的是串中“\0‖之前的所有字符数量,包 括不可见字符。因此,字符串常量占用的 字节数是串长+1。
2.2.3 变量
• extern变量:用关键字extern 说明的变量称 为外部变量。 • 一个变量被说明为外部变量,其含义是告 诉系统不必为其按一般变量那样分配内存 ,该变量已在这一局部的外面定义。 • 外部变量一般用于由多个文件组成的程序 中,有些变量在多个文件中被说明,但却 是同一变量,指出某一变量为外部变量就 避免了重复分配内存,产生错误。
2.1.2 词法记号
• 4 运算符(operator) • C++中另一类重要单词是运算符,主要由字 母、数字之外的第三类基本符号组成,少 数的例外是个别关键字如sizeof, new, delete,也被列入运算符之列,其余运算符 为: • +,-,* ,/,%,==,!= ,<,<=,>,>= ,!,&&,|| ,&,^ ,|,~,++ ,-- ,+=,=,*= ,/=,%=,<<=,>>=,&= ,^ = , |= ,?:,=,(),[],. ,-> ,<<,>>,’, :
2.2.3 变量
• auto 变量:用关键字auto 说明的局部变量, 称为自动变量。 • 该变量在程序的临时工作区中获得存储空 间,如说明语句未赋初值,系统不会自动 为其赋初值,随着变量生存期结束,这段 临时空间将被释放,可能为其他自动变量 占用。 • 变量的auto 属性为缺省属性,即不写auto 与写上的效果相同。
2.1.2 词法记号
• 3 字面常量(literal constant) • C++程序中的常量是指固定不变的量。一般 常量有两种表示形式:一种称为有名常量, 一种称为字面常量。例如圆周率 pai=3.1416,其中pai 就是一个有名常量, pai 是量3.1416 的名字,而3.1416 称为字 面常量
2.2.5 运算符与表达式
• 1 运算符 • (1) 算数运算符 • 在C++中对常量或变量进行运算或处理的符号 称为运算符,参与运算的对象称为操作数。 • 运算符的优先级指不同运算符在运算中的优先 关系,表中序号越小,优先级越高。 • 运算符的结合性决定同优先级的运算符对操作 数的运算次序。若一个运算符对其操作数按从 左到右的顺序运算,称该运算符为右结合,反 之称为左结合。
• static 变量:用static 说明的变量称为静态变量, 任何静态变量的生存期将延续到整个程序的终止 ,其要点为: • (1)静态变量和全局变量一样,在内存数据区分 配空间,在整个程序运行过程中不再释放。 • (2)静态变量如未赋初值,系统将自动为其赋缺 省初值0(NULL)。 • (3)静态变量的说明语句在程序执行过程中多次 运行或多次被同样说明时,其第一次称为定义性 说明,进行内存分配和赋初值操作,在以后的重 复说明时仅维持原状,不再做赋初• • • • • • 符号常量就是使用一个标识符来表示某个常量值。 定义常量定义格式如下: const <类型说明符> <常量名>=<常量值>; 例如: const int N = 2000; const float pai = 3.1416; 必须以关键字 const 开头。 类型名:限定为基本类型(int,float,char,bool) 及其派生类型。 • 常量名:标识符。 • 表达式:其值应与该常量类型一致的表达式(常量和 变量也是表达式)。
第2章 VC++2005 简单程序设计
主讲内容
2.1 VC++2005基本语法 2.2 基本数据类型和表达式
2.3 数据的输入与输出
2.4 基于VC++2005的简单程序开发
2.1.1 字符集
字符集是构成C++语言的基本元素。用 C++语言编写程序时,除字符型数据外,其他 所有成分都只能由字符集中的字符构成。C++ 语言的字符集由下述字符构成: 大小写的英文字母:A~Z,a~z 数字字符:0~9 特殊字符:空格 ! # % ^ & * _(下划线) + = - ~ < > / \ ' " ; . , () [] {}
2.2.5 运算符与表达式
• 按照要求的操作数个数,运算符分为单目 (一元)运算符、双目(二元)运算符和 三目(三元)运算符。单目运算符只对一 个操作数运算,如负号运算符“”等;双 目运算符要求有两个操作数,如乘号运算 符“*”等;三目运算符要求有三个操作数 ,三元运算符只有一个“?:‖。 • 按照运算的种类,运算符可分为算术运算 符、关系运算符、逻辑运算符、位运算符 等。
2.2.1 基本数据类型
2.2.2 字面常量
• • • • 整型常量 实型常量 字符型常量 字符串常量
2.2.2 字面常量
1、整型常量: 即整数,在C++中可以用十进制、八进制 、十六进制表示 。 十进制表示与我们熟悉的书写方式相同。 八进制表示以0打头,由数字07组成,用来表示 一个八进制数。如:012、-0655 十六进制以0X(大小写均可)打头,由数字09 和字母AF(大小写均可)组成,用来表示一个十六 进制数。如:0x32A 、-0x2fe0 整数常量还可以表示长整数和无符号整数。长整 型常数以L或l结尾,无符号常整数以U或u结尾,以UL 或LU(大小写均可)结尾则可表示无符号长整型常数
2.1.2 词法记号
• • • • • 关键字 标识符 字面常量 运算符 分隔符。
2.1.2 词法记号
• 1 关键字(key word) • 关键字是这样一类有特定的专门含义的单 词。 • 对于C++ 语言来说,凡是列入关键字表的 单词,一律不得移作它用。因此,关键字 又称为保留字(reserved word)。在上节 的程序中,int,for,if 等单词就属于关键 字。
2.2.3 变量
• register 变量:用register 说明的局部变量, 称为寄存器变量,该变量将可能以寄存器 作为存储空间。 • register 说明仅能建议(而不是强制)系统 使用寄存器,这是因为寄存器虽存取速度 快,但空间有限,当寄存器不够用时,该 变量仍按自动变量处理。
2.2.3 变量
2.2.3 变量
• 在程序的执行过程中其值可以变化的量称 为变量,变量是需要用名字来标识的 • 变量说明的格式为: • [<存储类>]<类型名或类型定义><变量 名表>; • 例如: int size,high,temp= 37; • static long sum; • 其中:
2.2.3 变量
• 逻辑运算符用来进行逻辑运算。其操作数 和运算结果均为逻辑量。
2.2.5 运算符与表达式
• (3) 位运算符 • 位运算对操作数的各个位进行操作。位运算符共有六个 :~(按位取反)、<<(左移)、>>(右移)、&(按位 与)、|(按位或)、^(按位异或)。 • ①按位取反运算符“~‖ • 将操作数的每个二进制位取反,即1变为0,0变为1。例 如,整数a的值为10011011,则~a的值为01100100。 • ②左移运算符“<<‖ 运算一般格式为: • a<<n • 其中a为整数,n为一个正整数常数。语义为将a的二进 制数依次向左移动n个二进制位,并在低位补0。例如, 变量a的值为00000010,则a<<3的值为00010000,而 a的值仍为00000010。
2.1.2 词法记号
• 2 标识符(identifier) • 标识符是由程序员为程序中的各种成分:变 量,有名常量,用户定义的类型,枚举类 型的值,函数及其参数,类,对象等所起 的名字。