C++第二章

合集下载

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语言教程课件第二章 数据类型、运算符和表达式

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章课后习题参考答案

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课件

C程序设计基础-PPT课件
第二章 C程序设计基础
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第二章

C第二章
} 运行结果:1, 1, 1, -1, -1, 65535 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
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 材料力学第二章 轴向拉伸和压缩 第一部分

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语言简单计算问题

第二章 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语言第二章习题及详解

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_。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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) • 标识符是由程序员为程序中的各种成分:变 量,有名常量,用户定义的类型,枚举类 型的值,函数及其参数,类,对象等所起 的名字。
相关文档
最新文档