第2章 C++语言基础

合集下载

第2章 C语言基础 ppt课件

第2章 C语言基础 ppt课件

/*用字符形式输出一个大于256的
printf("ch1+10=%d\n", ch1+10);
printf("ch1+10=%c\n", ch1+10);
printf("ch2+10=%d\n", ch2+10);
printf("ch2+10=%c\n", ch2+10);
}
运行程序,效果如图2.23所示。
printf("输入3个学生的身高:(单位:CM)\n"); 示信息,提示用户输入3个学生身高*/
/*输出提
scanf("%f%f%f",&a1,&a2,&a3); /*将用户输入的*/
avg=(a1+a2+a3)/3;
printf("平均身高为:%f\n",avg);
}
运行程序,效果如图2.11所示。
C语言基础
2020/12/27
1
计算学生平均身高
输入3个学生的身高,并用空格分隔开来,求这3个学生的平均身高。#include<stdio.h>
void main()
{
float a1=0,a2=0,a3=0;
/*定义存储学生身高变量并赋值*/
float avg=0;
/*定义存储平均身高的变量并赋值*/
float f=2.2f; 整型变量*/
/*定义单精度型变量
double result=i+c+f;
/*得到相加的结果*/
printf("%f\n",result);

答案第二章 C语言程序设计的初步知识

答案第二章  C语言程序设计的初步知识

第二章 C语言程序设计的初步知识一、选择题1.在C 语言中,下列类型属于构造类型的是 D 。

(0级)A)整型B)字符型C)实型D)数组类型2.在C 语言中,下列类型属于构造类型的是D 。

(0级)A)空类型B)字符型C)实型D)共用体类型3.在C 语言中,下列类型属于构造类型的是 D 。

(0级)A)整型B)指针类型C)实型D)结构体类型4.在C 语言中,下列类型属于基本类型的是 A 。

(0级)A)整型、实型、字符型B)空类型、枚举型C)结构体类型、实型D)数组类型、实型5.下列类型属于基本类型的是 C 。

(0级)A)结构体类型和整型B)结构体类型、数组、指针、空类型C)实型D)空类型和枚举类型6.下列字符串属于标识符的是 A 。

(0级)A)INT B)5_student C)2ong D)!DF7.下列字符串属于标识符的是 A 。

(0级)A)_WL B)3_3333 C)int D)LINE 38.下列字符串不属于标识符的是 D 。

(0级)A)sum B)average C).day_night D)M.D.JOHN9.下列字符串不属于标识符的是 D 。

(0级)A)total B)lutos_1_2_3 C)_night D)$ 12310.下列字符串不属于标识符的是D 。

(0级)A)_above B)all C)_end D)# dfg11.C语言中不能用来表示整常数的进制是 D 。

(0级)A)十进制B)十六进制C)八进制D)二进制12.C语言中能用来表示整常数的进制是 A 。

(0级)A)十进制、八进制、十六进制B)十二进制、十进制C)六进制、八进制D)二进制、十进制13.在C语言中,回车换行符是 A 。

(0级)A)\n B)\t C)\v D)\b14.在C语言中,退格符是 D 。

(0级)A)\n B)\t C)\v D)\b15.在C语言中,反斜杠符是 D 。

(0级)A)\n B)\t C)\v D)\ \16.在ASCII码表中可以看到每个小写字母的ASCII码比它相应的大写字母的ASCII 码 A 。

第2章 基本c语言-2

第2章  基本c语言-2

单分支if语句:
if(表达式) 语句;
双分支if语句:
if(表达式) 语句1; else 语句2;
利用goto语句改变程序执行方向的句式如下:
goto 标号;
与goto语句配合使用的标号语句的句式如下:
标号: 语句;
#include<stdio.h> #include<stdlib.h> #include<time.h> int main(void) {
2.5.1 自动类型转换
double ← float ↑ long ↑ unsigned ↑ int←char,short


格式:(类型说明符)表达式 功能:把表达式的结果强制转换为类型说明符所
表示的类型。
例如:
(int)a
将a的结果强制转换为整型量。
(int)(x+y) 将x+y的结果强制转换为整型量。 (float)a+b 将a的内容强制转换为浮点数,再与b相加。
time()函数将从1970年1月1日00.00.00到当前时
间所经过的秒数存储到实参指向的变量。
#include<stdio.h> #include<stdlib.h> int main(void) { int x,y; x=rand(); y=rand(); printf("x=%d,y=%d",x,y ); return 0; }
printf("circle's radius is:%d,area is:%f\n",radius,area);
类型 d,i
说明 带符号十进制整数
类型 c

C语言入门学习-C第2章_算法

C语言入门学习-C第2章_算法

C程序设计(第三版) 江苏大学 计算机科学与通信工程学院 13
2.4.6 用计算机语言表示算法
• 概念:用计算机实现算法。计算机是无法 识别流程图的。只有用计算机语言编写的 程序才能被计算机执行。因此在用流程图 或伪代码描述出一个算法后,还要将它转 换成计算机语言程序。
• 特点:用计算机语言表示算法必须严格遵 循所用的语言的语法规则。
• 用处:要完成一件工作,包括设计算法和 实现算法两个部分。设计算法的目的是为 了实现算法。
C程序设计(第三版) 江苏大学 计算机科学与通信工程学院 14
写出了C程序,仍然只是描述了算法 ,并未实现算法。只有运行程序才是实 现算法。应该说,用计算机语言表示的 算法是计算机能够执行的算法。
C程序设计(第三版) 江苏大学 计算机科学与通信工程学院 15
• 确定性:算法中的每一个步骤都应当是确 定的。
• 有零个或多个输入:输入是指在执行算法 时需要从外界取得必要的信息。
• 有一个或多个输出:算法的目的是为了求 解,“解” 就是输出。
• 有效性:算法中的每一个步骤都应当能有 效地执行,并得到确定的结果 。
C程序设计(第三版) 江苏大学 计算机科学与通信工程学院 4
美国国家标准化协会ANSI(American National Standard Institute)规定了一些常用的流程图符 号:
起止框
判断框
处理框
输入/输出框
注释框
流向线
连接点
C程序设计(第三版) 江苏大学 计算机科学与通信工程学院 8
2.4.3 三种基本结构的流程图 三种基本结构的图示:
顺序结构
C程序设计(第三版) 江苏大学 计算机科学与通信工程学院 2

C语言程序设计实训教程第2章 基础实验

C语言程序设计实训教程第2章  基础实验

19
(2)编写程序求出任一输入字符的 ASCII码。 提示:从键盘输入一个字符赋给字符变量,以 整型格式输出该变量。 (3)编写程序,由键盘任意输入 3个 1位整数 (第一个整数不为 0),将它们按输入顺序组合为 一个 3位数输出,如输入 2,5,8,则输出为258。 提示:输入 a,b,c3个整数,组合整数为 d =a﹡100 +b﹡10 +c。
(3)写一个函数,用“冒泡法”对输入的 10 个数字由小到大顺序排列,并输出。 提示: ①排序的函数名为 Sort。 ②排序前后的输入输出都应在主函数中完成。 ③使用数组作为函数参数。 ④使用“冒泡法”排序。
67
(4)写一函数,使给定的一个二维数组(5 ×5)转置,即行列互换。 提示: ①使用 5 ×5的二维数组存放数据。 ②矩阵转置的函数名为 Turn。 ③转置前后的输入输出都应在主函数中完成。 ④使用数组作为函数参数。
20
2.3
数据的输入和输出
1)实验目的 ①熟悉顺序结构的程序设计方法。 ②熟练使用 C 的赋值语句和各种表达式。 ③熟练掌握各种数据的输入、输出方法,能正 确使用各种格式转换符。
21
2)实验内容 程序验证性实验
22
23
24
25
程序填空性实验 程序功能:可以计算两个整数的商和余数。
26
程序设计性实验 (1)编写程序由键盘输入任意一个数字字符 (0 ~ 9),将其转换为数字输出。 提示:将该字符和“0”字符相减(字符的 ASCII码值相减)即得到数字。 (2)输入三角形三边长 a,b,c,求三角形 周长 l和面积 s。用 scanf()函数输入数据,printf ()函数输出计算结果,输出时要求有文字说明。
2)实验内容 程序验证性实验

第二章 C基础知识练习题及答案

第二章 C基础知识练习题及答案

第二章C++基础知识练习题1.请先阅读下面的2个程序,写出程序运行的结果,然后再上机运行程序,验证自己分析的结果是否正确。

程序1:#include <iostream> //包含头文件命令using namespace std; //使用名字空间stdint main(){cout<<"This "<<"is ";cout<<"a "<<"C++ ";cout<< "program."<<endl;return 0;}程序2:#include <iostream> //包含头文件命令using namespace std; //使用名字空间stdint main(){ int a,b,c;//定义三个变量a、b、ccout<<"Please input to a and b:"<<endl; //输出提示信息到屏幕cin>>a>>b; //等待用户从键盘输入数据c=a+b;cout<< "a+b=" ;cout<<c;cout<<endl;return 0;}2.输入以下程序,进行编译,观察编译结果,如果有错误,请修改程序,再进行编译,直到没有错误,然后进行连接和运行,并分析运行结果。

#include <iostream> //包含头文件命令using namespace std; //使用名字空间stdint main(){ int a,b;//定义两个变量a和bcout<<"Please input to a and b: "<<endl;//输出提示信息到屏幕cin>>a>>b; //等待用户从键盘输入数据cout<< "Max="<< max(a,b)<<endl; //输出结果信息至屏幕return 0; //主函数返回0至操作系统}int max(int x, int y) { return (x> y) ?x:y; } //求两个数中的大者的函数3.编写一个函数,用来求2个或3个正整数中的最大数,并在主函数中调用此函数。

C语言教材 第2章

C语言教材 第2章

第2章 C 语言的基本数据类型本章要点了解C 语言的数据类型,掌握基本数据类型的应用及其相互转换规则,理解变量和常量的概念,并掌握其定义及引用方法。

本章的难点是数据在内存中的存储形式。

第一节 C 语言的数据类型由于信息的表现形式多种多样,处理的方法也不相同,所以,我们必须考虑用不同形式的数据来表示不同的信息。

例如:一个班级的人数要用整数来表示;班级学生的平均成绩要用小数表示;学生的姓名、性别要用字符来表示;一个班级学生某一门课程的成绩要用一组不同的数值来表示等。

计算机语言中的数据类型就是为了能够高效处理各种不同的数据而引进的一个概念,是指数据的内在表现形式。

不同的数据类型具有不同的取值范围和不同的操作。

C 语言提供的数据类型如图2-1所示。

在程序中使用的所有数据都必须指定它的数据类型,C 语言的数据类型由基本类型和非基本类型组成。

其中,基本数据类型是其他数据类型的基础。

C 语言中的基本数据类型包括整型、实型(浮点型)、字符型,其中实型又包括单精度和双精度两种类型。

本章主要讨论这4种基本类型。

整型、单精度型、双精度型和字符型数据定义的关键字分别为:int 、float 、double 和char 。

除了这四个关键字外,C 语言中还提供了一些数据类型的修饰符,如:long 、short 、signed 和unsigned 。

它们的作用是与基本类型的定义关键字结合起来使用,以对基本类型进行扩充,使得在程序编写的过程中可以灵活调整数值的范围以及所占用的存储空间。

结合修饰符的应用,基本数据类型可进一步划分,如表2-1所示。

表2-1 各种数据类型及其说明语言的数据类型图)空类型(指针类型)共用体类型()结构体类型(数组类型构造类型)枚举类型()字符型()双精度型()单精度型(实型(浮点型))整型(基本类型C 12void union structenum char double float int -⎪⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎧⎪⎩⎪⎨⎧⎪⎪⎩⎪⎪⎨⎧⎩⎨⎧说明:(1)表中方括号内的部分是可以省略不写的。

C语言第02章 数据类型、运算符与表达式

C语言第02章 数据类型、运算符与表达式

回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第2章 C++语言基础2.1 知识要点1.掌握常量和变量的概念。

2.掌握整型数据和实型数据、字符型数据和字符串型数据的概念和区别。

3.掌握各种类型的变量说明及其初始化。

4.掌握算术运算、关系运算、逻辑运算、赋值运算、逗号运算、条件运算等概念。

5.掌握运算符的优先级、左结合和右结合规则。

6.掌握表达式求值时的自动转换和强制类型转换。

7.掌握自加、自减运算的规则。

8.掌握常用数学函数的功能。

9.掌握一维和二维数组的定义、初始化方法以及数组元素的引用方法,了解其存储结构。

10.掌握有关一维和二维数组的基本算法。

11.掌握字符数组的定义、元素的引用方法和字符数组的初始化方法。

12.掌握C++提供的对字符串进行处理的基本函数。

13.掌握指针、地址、指针类型、空指针(NULL)等概念;14.掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算、指针变量比较运算和指针表达式;15.掌握指针与数组、函数、字符串等的联系;16.掌握动态空间操作(new,delete);17.掌握引用参数的使用。

2.2 数据类型与表达式部分习题分析与解答1.1.选择题例题1:运算符+、=、*、>=中,优先级最高的运算符是()。

A.+ B.= C.* D.>=答案:C分析:根据C++语言对运算符优先级的规则,以上运算符优先级从低到高的次序为=、>=、+、*。

例题2:下列说法正确的是()。

A.cout<<‖\n‖是一个语句,它能在屏幕上显示‖\n‖B.\68代表的是字符D。

C.1E+5的写法正确,它表示余割整型常量。

D.0x10相当于020。

答案:D分析:分号是语句的已部分,且\n是转义字符;\68代表了八进制的6、8,而八进制中没有数字8;1E+5是实型常量;十六进制的10相当于十进制的16,相当于八进制的20。

例题3:下列不合法的变量名为()。

A.int B.int1 C.name_1 D.name0答案:A分析:根据变量名命名要求,变量名只能由大小写字母、数字、下划线组成,且系统关键字不能作为变量名。

例题4:下面正确的为()。

A.4.1/2 B.3.2%3C.3/2==1 结果为1 D.7/2 结果为3.5答案:A分析:%运算符要求式整型;关系运算值为0;两个整数相除,商为为相除后的整数部分。

例题5:已知a=4,b=6,c=8,d=9,则“(a++,b>a++&&c>d)?++d:a<b”值为()。

A.9 B.6 C.8 D.0答案:D分析:此题是考察“++”运算符、逗号运算符、条件运算符及它们运算优先级的综合题,根据这些运算符的运算规则,得出表达式的运算结果。

例题6:已知i=5,j=0,下列各式中运算结果为j=6的表达式是()。

A.j=i+(++j)B.j=j+i++ C.j=++i+j D.j=j+++i答案:C分析:自增++、自减运算符在变量的前面或后面,其运算结果是不同的。

若++或—在变量前,则先将变量的值加1(或减1)后,再将变量的值参与运算;反之则先将变量的值参加运算,再将变量的值加1(或减1)。

自增++、自减运算符优先级高于算术运算符。

例题7:已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B‘&&!y)的值是()。

A.0 B.语法错C.1 D.“假”分析:根据C++语言中运算符优先级的高低,“!”运算符最高,关系运算符高于逻辑运算符。

则上面的表达式转换为:1&&1&&1,结果为1。

答案:C。

2.2.填空题例题8:如果s是int型变量,且s=6,则下面s%2+(s+1)%2表达式的值为____。

答案:1分析:%运算符是求余运算,得到的结果是相除后的余数。

表达式转换为6%2+(6+1)%2=0+7%2=1。

例题9:如果定义int a=2,b=3;float x=5.5,y=3.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为_____。

答案:4.5分析:不同类型的数据混合运算时,可以使用强制类型转换符,强制将一种数据类型转换为另一种数据类型后再进行运算。

对表达式,先求表达式的值,再转换值的类型,本题的运算结果为4.5。

例题10:设所有变量均为整型,则表达式(e=2,f=5,e++,f++,e+f)的值为____。

答案:9分析:逗号运算符是是将两个或多个表达式组合成一个表达式的运算符。

求解时从左至右依次计算每个表达式的值,整个表达式的值就是最右边的表达式的值。

本题的答案为9。

例题11:已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a‘+‘8‘-‗4‘的值为____。

答案:e分析:C++语言中,对字符数据进行算术运算,实际上就是对字符的ASCII码进行运算。

以字符形式输出时,再将ASCII码转换为相应的字符输出。

本题表达式为ch=97+8-4=101,101相应的ASCII为字符e。

3.3.编程题例题12:编写一个程序,从键盘输入半径和高,输出圆柱体的底面积和体积。

解:程序如下:#include<iostrean.h>void main(){double r, h, area, volume;cout<<‖请输入半径:‖;cin>>r;cout<<‖请输入高:‖;cin>>h;area=3.14*r*r;volume=area*h;cout<<‖底面积是: ‖<<area<<endl;cout<<‖体积是: ‖<<volume<<endl;}2.3 数据类型与表达式部分教材习题分析与解答1. 1.C++语言中有哪些数据类型?分别说明它们的类型关键字、取值范围、类型长度。

答:C++语言中的数据类型有:整型(短整型,整型,长整型);字符型;逻辑型;枚举型;实型(单精度,双精度,长双精度);引用型(指针,引用);复合型(结构,联合);空类型。

2. 2.字符常量与字符串常量的区别是什么?答:字符常量与字符串常量的主要区别在于:(1)定界符不同。

字符常量使用单引号,而字符串常量使用双引号。

(2)长度不同。

字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数。

(3)存储要求不同。

字符常量存储的是字符的ASCII码值,而字符串常量除了要存储有效的字符外,还要存储一个结束标志‘\0‘。

3.说明下面的每个数据各属于哪一种(数值常量、字符常量、字符串、标识符、保留字、运算符、标点、非法数据)?25 18 -3.67 12.8 ―4‖‗4‘x1 ―x2‖―1949.10‖ cin K_name3ab ―float x ,y ― ; if +―\n‖ ? ;―sy1.cpp‖‗\32‘ \‘答:数值常量有:25,18,-3.67, 12.8字符常量有:‗4‘,\‘,‗\32‘字符串有:―4‖,―x2‖,―1949.10‖,―sy1.cpp‖, ―\n‖保留字:cin ,int,endl,if运算符:+标点:?非法数据:―float x ,y ― ; , 3ab变量:x1,K_name4.选择题(1)下列数据类型不是C++语言基本数据类型的是()。

A.字符型B.整型C.实型D.数组答案:D(2)在C++语言中,080是()。

A.八进制数B.十进制数C.十六进制数D.非法数答案:B(3)下列字符列中,可作为C++语言程序自定义标识符是()。

A.switchB.fileC.breakD.do答案:B(4) 运算符+、<=、=、% 中,优先级最低的运算符是()。

A. +B.<=C.=D.%答案:C(5) 下列字符列中,可以作为“字符串常量”的是()。

A. ABCB.″xyz″C.′uvw′D. ′a′答案:B(6) 设变量m,n,a,b,c,d均为0,执行(m = a==b)||(n=c==d)后,m,n的值是()。

A.0,0B. 0,1C. 1,0D. 1,1答案:C(7) 字符串‖vm\x43\\\np\102q‖的长度是()。

A. 8B. 10C. 17D. 16答案:A(8)在C++语言中,自定义的标识符()。

A.能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写C.能使用关键字并且区分大小写D.不能使用关键字并且区分大小写答案:D(9)设有代码“int a = 5;”,则执行了语句“a + = a - = a*a;”后,变量a的值是()。

A.3B. 0C. -40D. –12答案:C(10)设a为5,执行下列代码后,b的值不为2的是()。

A. b = a/2B. b = 6-(--a)C. b = a%2D. b = a < 3 ? 3: 2答案:C(11)下面的()均是C语言的整型常量。

A.0xffff 和611B.01b 和0xa1C.986.012 和0667D.2e4 和0x答案:A(12)数学公式yx ey写成C表达式,下面的()是正确的。

A.sqrt (abs(pow(x, y) + exp(y)))B.sqrt (abs(pow(y, x) + exp(y)))C.sqrt (fabs(pow(x, y) + exp(y)))D.sqrt (fabs(pow(y, x) + exp(y)))答案:D5.x为int类型,y为double类型,指出下列各表达式值的类型。

(1)1/3 int (2) 48L long(3) 5 % 3 int (4) x*3/y double(5) ‗x‘+20 int (6) (int )y int(7) y != 10 bool (8) x<1 || x>10 bool(9) x>10 ? x : sqrt (x) int或float (10) x && y bool(11) true bool (12) (char) (x+10) char(13) 1.0 /3 float (14) sizeof (float) int(15) x,y,x+y, double说明:(9)题,如果x>10成立,表达式值的类型为int,如果x>10不成立,表达式值的类型为float。

(15)题,为逗号表达式,x+y的值即为整个表达式的值,因而值的类型为double。

bool型在C++用int代替,true值为1,false值为0。

6. 写出下列算术表达式的值:(1) x+a%3*(int)(x+y)%2/4 x=2.5,a=7,y=4.7答:上述表达式=2.5+1*(int)7.2%2/4 = 2.5+1*7%2/4 = 2.5(2) (float)(a+b)/2+(int)x%(int)y a=2,b=3,x=3.5,y=2.5答:上述表达式=(float)5/2+3%2 = 2.5+1 = 3.57.设程序中有说明语句int a=20; double x=4.7; char r= ‘a‘;试求出下列每个表达式的值(假定各表达式互不影响)。

相关文档
最新文档