《C语言程序设计案例式教程》课件 第2章 C语言的基础知识_第1页
《C语言程序设计案例式教程》课件 第2章 C语言的基础知识_第2页
《C语言程序设计案例式教程》课件 第2章 C语言的基础知识_第3页
《C语言程序设计案例式教程》课件 第2章 C语言的基础知识_第4页
《C语言程序设计案例式教程》课件 第2章 C语言的基础知识_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章C语言的基础知识《C语言程序设计案例式教程(AI助学)》学习目标/Target掌握printf()函数与scanf()函数的用法,能够调用printf()函数、scanf()函数分别输出、获取各种类型的数据。

掌握关键字、标识符、常量、变量的用法,能够使用关键字、标识符定义变量。掌握基本的数据类型,能够定义基本数据类型的变量。学习目标/Target了解ASCII的编码机制,能够说出ASCII的编码机制及其特点。

掌握隐式类型转换,能够说出隐式类型转换的机制。了解显式类型转换,能够使用显式类型转换实现复杂的运算。章节概述/Summary通过对第1章的学习,读者对C语言已经有了初步认识,但在正式编写C语言程序之前,需要学习C语言的基础知识,包括关键字、标识符、常量、变量、数据类型等。本章将对C语言的基础知识进行详细讲解。目录/Contents010203【案例2-1】我爱C语言【案例2-2】计算圆的面积和周长【案例2-3】全国计算机等级考试信息的录入04【案例2-4】密码破译目录/Contents050607【案例2-5】混合运算【案例2-6】小明考试使用AIGC工具编写程序计算BMI【案例2-1】我爱C语言01本案例要求编写一个程序,在控制台输出“我爱C语言”。案例描述知识需求要想在控制台输出数据,需要使用输出函数,C语言中常用的输出函数为printf(),与printf()函数对应的是输入函数scanf()。printf()函数scanf()函数+掌握printf()函数的用法,能够调用printf()函数分别输出、获取各种类型的数据。学习目标知识讲解1.printf()函数知识讲解1.printf()函数printf()函数为格式化输出函数,其功能是按照用户指定的格式将数据输出到屏幕上。指定输出格式,以%开头,%符号后面跟各种格式控制字符printf("格式控制字符串",[输出列表]);知识讲解printf()函数为格式化输出函数,其功能是按照用户指定的格式将数据输出到屏幕上。printf("格式控制字符串",[输出列表]);格式控制字符串的具体形式:

"%标志][宽度][.精度][长度]类型"%c、%d、%3d、%.6f┄例如1.printf()函数知识讲解下面介绍格式控制字符的相关知识。1.printf()函数类型常用的格式控制字符标志宽度精度长度知识讲解printf()函数可以输出任意类型的数据,包括整型数据、字符型数据、浮点型数据等,常用的类型格式控制字符如表。1.printf()函数类型类型格式控制字符含义s输出字符串c输出单个字符d输出有符号十进制整型数据u输出无符号十进制整型数据知识讲解1.printf()函数类型类型格式控制字符含义o输出无符号八进制整型数据x输出无符号十六进制整型数据(小写)X输出无符号十六进制整型数据(大写)f输出单精度/双精度浮点型数据(默认输出6位小数)知识讲解1.printf()函数类型类型格式控制字符含义e输出用科学记数法表示的数据(e)E输出用科学记数法表示的数据(E)p输出变量地址知识讲解1.printf()函数类型类型应用示例一:printf("%c",'H'); printf("%s","Hello,world!\n");printf("%d",100);

类型应用示例二:printf("%d%d%d\n",1,2,3);printf("%f\n%c\n",2.1,'a');以%c格式输出字符'H'以%s格式输出字符串"Hello,world!"以%d格式输出整数100使用3个%d输出三个整数1、2、3使用%f与%c输出2.1与字符'a'知识讲解printf()函数中的标志符用于规范数据的输出格式,例如左对齐、右对齐、填补空缺等,标志符有−、+、0、空格、#共5种。1.printf()函数标志标志符含义-用于控制左对齐。printf()函数输出的数据默认右对齐+当一个数为正数时,在前面加上“+”。默认正数不显示“+”0当右对齐时,用0填充数据左边的空缺。默认使用空格填充知识讲解1.printf()函数标志标志符含义空格当输出正数时,输出数据前面为空格;当输出负数时,在输出数据前面加上“-”#对“%c”“%s”“%d”“%u”等无影响对于“%o”格式,输出的数据加上八进制前缀0对于“%x”“%X”格式,输出的数据加上十六进制前缀0x知识讲解宽度是用十进制整数表示的输出数据的位数。若数据的实际位数大于定义的宽度,则按定义的宽度输出;若实际位数小于定义的宽度,不足的部分则以空格或0填充。1.printf()函数宽度宽度应用示例一:printf("%d\n",123);printf("%5d\n",123); printf("%10d\n",123); 按实际位数3输出设置宽度为5设置宽度为10知识讲解1.printf()函数宽度宽度应用示例二:printf("%d\n",123);printf("%-5d\n",123); printf("%010d\n",123); 添加-符号,左对齐输出添加0,左边以0填充知识讲解1.printf()函数精度精度格式以字符“.”开头,后面跟十进制整数,精度主要作用于浮点型数据,表示输出小数点后面的位数。如果不设置精度,默认输出小数点后6位。如果作用于整型数据,则表示按照一定宽度输出数据,左侧空缺填充0。在使用精度时,如果实际位数大于所定义的精度数,则截去超出的部分。知识讲解1.printf()函数精度精度应用示例:printf("%f\n",1.234567); printf("%.8f\n",1.234567); printf("%.3f\n",1.234567); printf("%.6d\n",123); 默认输出小数点后6位输出小数点后8位,后面填充0输出小数点后3位,截断超出的部分输出123的宽度为6,左侧填充0知识讲解1.printf()函数长度长度格式符包括h、l两种,h是short的简写,表示按短数据类型量输出;l是long的简写,表示按长数据类型输出。长度应用示例:printf("%d\n",123); printf("%hd\n",123); printf("%lf\n",1.23); 正常输出按短数据类型输出按长数据类型输出掌握scanf()函数的用法,能够调用scanf()函数分别输出、获取各种类型的数据。学习目标知识讲解2.scanf()函数知识讲解2.scanf()函数scanf()函数用于读取用户从键盘输入的数据,它可以灵活接收各种类型的数据,例如字符串、字符、整数、浮点数等。scanf()函数也可以通过格式控制字符控制输入的内容,但只支持类型格式控制字符(如d、c、f等),并不支持宽度、精度、标志等格式控制字符。知识讲解2.scanf()函数scanf()函数应用示例:inta;charc;floatf;scanf("%d",&a);scanf("%c",&c);scanf("%f",&f);接受一个从键盘输入的整型数据接受一个从键盘输入的字符类型数据接收一个从键盘输入的浮点型数据知识讲解2.scanf()函数使用scanf()函数获取输入的字符串,并将其存储到数组中示例:chararr[20]; scanf("%s",

arr);定义字符数组arr,大小为20获取输入的字符串,并将其存储到数组arr中知识讲解2.scanf()函数C语言中常见的终止符如表。终止符含义''空格'\t'水平制表符'\n'换行符'\v'垂直制表符'\f'换页符'\r'回车符知识讲解scanf()函数不安全,经常导致程序编译不通过。2.scanf()函数知识讲解解决办法1.添加#define_CRT_SECURE_NO_WARNINGS2.C11标准中的scanf_s()函数代替scanf()函数2.scanf()函数学习目标案例实现巩固前面所学知识,能够利用前面所学知识实现案例2-1。1.案例设计调用printf()函数分别输出“我”“爱”“C”“语”“言”5个汉字。本案例中可以实现的效果图如下。代码实现2.完整代码

案例实现【案例2-2】计算圆的面积和周长02案例描述圆的面积公式:S=πr2圆的周长公式:L=2πr本案例要求编写程序计算圆的面积和周长,具体要求如下。(1)从键盘输入圆的半径。(2)计算圆的面积和周长并将结果输出到控制台。公式中的r表示圆的半径,π表示圆周率,对圆周率的计算是我国古代数学家祖冲之的杰出成就之一。魏晋时期,刘徽提出了计算圆周率的科学方法“割圆术”,计算出圆周率的值近似于3.1416。祖冲之在前人成就的基础上,经过长期的刻苦钻研,反复验算,最终计算出圆周率在3.1415926~3.1415927之间,并给出了圆周率的分数形式,这是当时全世界最精确的圆周率。案例描述知识需求用到常量与变量的相关知识。学习过的scanf()函数与printf()函数。圆半径输入输出变量类型为变量指定数据类型,并且要为变量命名,需要用到关键字与标识符。掌握关键字的用法,能够使用关键字定义变量。学习目标知识讲解1.关键字1.关键字关键字是指事先定义好并赋予了特殊含义的单词,也称作保留字。知识讲解autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifinlineintlongregisterrestrictreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile_Bool_Complex_Imaginary1.关键字知识讲解数据类型关键字关键字可分为5类控制语句关键字存储类型关键字其他类型关键字C99新增关键字1.关键字知识讲解数据类型关键字用于标识变量或函数返回值的类型。关键字作用char声明字符型变量或函数double声明双精度浮点型变量或函数enum声明枚举型变量或函数float声明单精度浮点型变量或函数int声明整型变量或函数long声明长整型变量或函数1.关键字知识讲解关键字作用short声明短整型变量或函数signed声明有符号类型变量或函数struct声明结构体类型变量或函数union声明共用体类型变量或函数unsigned声明无符号类型变量或函数void声明无返回值函数或无类型指针数据类型关键字1.关键字知识讲解控制语句关键字用于控制程序的结构和流程。关键字作用break跳出当前循环,执行循环后面的语句case用于定义switch语句的分支continue跳出当前循环,执行下一次循环default用于定义switch语句中的“其他”分支do用于定义do…while语句的循环体else用于定义条件语句的否定分支1.关键字知识讲解控制语句关键字关键字作用for用于定义for语句goto用于定义无条件跳转语句if用于定义条件语句return用于定义子程序(函数)的返回语句switch用于定义多条件分支选择语句while用于定义循环语句的循环条件1.关键字知识讲解存储类型关键字用于标识变量的存储类型。关键字作用auto声明自动变量,即由编译器根据上下文环境自动确定变量类型extern声明外部变量或函数register声明寄存器变量static声明静态变量或函数1.关键字知识讲解特殊关键字此外,还有一些具有特殊含义的关键字。关键字作用const声明只读变量sizeof计算数据、数据类型所占的内存空间typedef为数据类型取别名volatile使用volatile修饰的变量,在程序执行过程中可隐式地改变1.关键字知识讲解C99标准中新增的关键字此外,还有一些具有特殊含义的关键字。关键字作用inline定义内联函数restrict用于限定指针,其作用是告知编译器,该指针是访问其指向的对象的唯一途径_Bool声明布尔型变量或函数_Complex声明复数型变量或函数_Imaginary声明虚数型变量或函数掌握标识符的用法,能够使用标识符定义变量。学习目标知识讲解2.标识符知识讲解标识符在编写代码的过程中,经常需要定义一些符号来标记数据,例如变量名、方法名、参数名、数组名等,这些符号被称为标识符。2.标识符知识讲解2.标识符标识符要遵循一定的命名规范。

规范1:规范2:

规范3:规范4:标识符只能由字母、数字和下划线组成。标识符不能以数字开头。标识符不能使用关键字。标识符区分大小写,如add、Add和ADD是不同的标识符。知识讲解2.标识符VS合法标识符area√DATE√_name√lesson_1√不合法标识符3a×ab.c×long×abc#×知识讲解2.标识符尽量尽量做到见名知意,例如使用age标识年龄、使用length标识长度。最好采用英文单词或其组合,避免使用汉语拼音命名。尽量避免出现仅靠大小写区分的标识符。虽然ANSIC中没有规定标识符的长度,但建议标识符的长度不超过8个字符。知识讲解2.标识符标识符命名方式有两种:驼峰命名法和下划线命名法。驼峰命名法下划线命名法指在使用多个英文单词组成标识符时,混合使用大小写字母来区分各个英文单词指使用下划线连接标识符的各组成部分掌握常量的用法,能够熟练使用整型常量、实型常量等C语言中的常量。学习目标知识讲解3.常量知识讲解3.常量常量又称常数,它是指在程序运行过程中,其值不可改变的量。例如123、2.6等。常量可以分为整型常量、实型常量、字符型常量、字符串常量和符号常量。知识讲解3.常量整型常量是整数类型的常量,又被称为整常数。常用的整型常量表示形式有二进制、八进制、十进制、十六进制。整型常量二进制整数:二进制整数以0b或0B开头,如0b100、0B101011。八进制整数:八进制整数以0开头,如0112、056。十进制整数:十进制整数与数学中的书写方式相同,如2、−158、0。十六进制整数:十六进制整数以0x或0X开头,如0x108、−0X29。知识讲解3.常量实型也称为浮点型,实型常量又被称为实数或浮点数,也就是数学中的小数。实型常量采用十进制表示,有两种形式:十进制小数形式和十进制指数形式。实型常量十进制小数形式:由数字和小数点组成。十进制指数形式:又称为科学记数法,因为计算机在输入、输出数据时无法表示上标,所以规定以字母e或E表示以10为底的指数。知识讲解3.常量C语言中用单引号(‘’)将字符引起来作为字符常量。字符常量普通字符:用单引号引起来的单个字符。转义字符:用单引号引起来的包括反斜线(\)的一串字符。知识讲解3.常量字符串常量是用一对双引号("")引起来的字符序列。例如"hello"、"123"、"itcast"等。字符串的长度等于字符串中包含的字符个数,例如,字符串"hello"的长度为5。字符串常量字符常量使用单引号界定,末尾没有'\0'字符;字符串常量使用双引号界定,它的末尾会隐含'\0'字符。字符常量通常是单个字符,字符串常量可以包含0个或多个字符。知识讲解3.常量C语言中可以用标识符来表示常量,这种常量称为符号常量。符号常量在使用前必须定义下。符号常量#define标识符常量表示预处理指令关键字知识讲解3.常量将圆周率(此处取3.14)用PI表示,可写成如下形式。符号常量#definePI3.14知识讲解3.常量符号常量符号常量特点1.符号常量的标识符通常使用大写字母。2.符号常量在定义后的代码中使用时,其值不能改变,也不能被再次赋值。掌握变量的用法,能够熟练C语言中常用的变量。学习目标知识讲解4.变量知识讲解除了常量,程序中还可以使用一些数值可以变化的量。用标识符T记录一天中不同时刻的温度值,与常量不同,标识符T的值是可以不断改变的,因此T被称为变量。例4.变量知识讲解变量在程序中经常使用,被存储在内存单元中。为了访问、使用和修改内存单元中的数据,用标识符来标识存储数据的内存单元,这些用于标识内存单元的标识符被称为变量名,内存单元中存储的数据被称为变量的值。4.变量知识讲解变量定义示例:intx=0,y=0;变量数据类型变量名变量值4.变量知识讲解执行运算:y=x+3;4.变量学习目标案例实现巩固前面所学知识,能够利用前面所学知识实现案例2-2。案例实现(1)定义一个float类型的变量radius表示圆半径。(2)调用scanf()函数从键盘输入半径值。(3)使用圆面积和周长计算公式计算出圆面积和周长。π取3.14。(4)调用printf()函数将计算出的圆面积和周长输出到控制台。1.案例设计案例实现2.完整代码本案例中可以实现的效果图如下。代码实现【案例2-3】全国计算机等级考试信息的录入03案例描述1994年,教育考试中心面向社会推出了国家计算机等级考试(NCRE),目的是以考促学,普及计算机知识。→表明我国经济、信息技术正在飞速发展。计算机等级考试考生不受年龄、职业、学历等背景的限制,任何人均可根据自己学习情况和实际能力选考相应的级别和科目。→体现了我们社会主义价值观中的公正原则。计算机等级考试采用全国统一命题、统一考试的形式,考生交卷之后由考点汇总至教育部考试中心评阅,教育部考试中心评阅完毕之后,将成绩汇总发回各省,由各省主考部门公布成绩。案例描述本案例要求要录入今年计算机考生的结果信息。为保护考生个人信息,只录入学号、分数、级别、是否通过这4项信息。本案例要求编写一个程序,从键盘录入考生的结果信息。案例需求分析学号分数级别是否通过学号可定义为整型变量。分数可定义为浮点型变量。级别可以使用字符表示。可以使用_Bool类型变量表示。掌握基本的数据类型,能够熟练使用字符型变量。学习目标知识讲解1.字符型知识讲解字符类型用关键字char表示,即使用char定义字符类型变量。字符类型变量用于存储一个单一字符,每个字符变量都会占用1个字节。为字符类型变量赋值时,需要用一对英文半角格式的单引号(‘’)把字符括起来。1.字符型知识讲解字符类型变量定义示例:charch1='A';定义字符变量ch1,其值为字符'A'charch2='3';

定义定义变量ch2,其值为字符'3'

ASCII使用编号65来表示字符'A',因此变量ch1存储的是整数65,而不是字符'A'本身。同理,字符型变量ch2存储的是字符'3',其对应的ASCII编号51。1.字符型知识讲解字符变量可以存储由普通字符,也可以存储转义字符。转义字符对应字符对应的ASCII值\t水平制表符9\n换行符10\r回车符13\"双引号34\'单引号39\\反斜线921.字符型知识讲解在程序中定义转义字符示例:charch2='\n’;反斜线“\”将字符n转义,其功能为换行charch4='\\';

如果要使用字符“\”,则需要使用它自身进行一次转义1.字符型掌握基本的数据类型,能够熟练使用整型变量。学习目标知识讲解2.整型知识讲解整型数据就是一个不包含小数部分的数。在C语言中,根据数值的取值范围,可以将整型定义为短整型(shortint)、基本整型(int)和长整型(longint),longint也可简写为long。整型数据可以被修饰符signed和unsigned修饰。signed修饰:有符号的整型。unsigned修饰:无符号的整型。2.整型知识讲解VSsignedunsigned无符号整型可以存放的正数范围比有符号整型的大一倍。例如,int的取值范围是-231~231-1,而unsignedint的取值范围是0~232-1。默认情况下,整型数据都是有符号的,因此signed修饰符可以省略。2.整型知识讲解整型的修饰符、占用空间及其取值范围。修饰符数据类型占用空间取值范围signed

shortint16位(2字节)-32768~32767(-215~215-1)int32位(4字节)-2147483648~2147483647(-231~231-1)longint32位(4字节)-2147483648~2147483647(-231~231-1)unsigned

shortint16位(2字节)0~65535(0~216-1)int32位(4字节)0~4294967295(0~232-1)longint32位(4字节)0~4294967295(0~232-1)2.整型VS注意:整型数据在内存中占的字节数与所选择的操作系统有关,例如,在16位操作系统中,int类型占2个字节,而在32位和64位操作系统中,int类型占4个字节。目前,常用的操作系统为64位,本书的内容以64位操作系统为准。知识讲解2.整型VS小提示字节(Byte)是计算机分配内存的最小单位。计算机存储单位包括位、字节、千字节、兆字节、吉字节、太字节。位;一个二进制数(0或1)占1位。字节:1B=8bit;一个英文字母占一个字节。千字节:1KB=1024B。兆字节:1MB=1024KB。吉字节:1GB=1024MB。太字节:1TB=1024GB。知识讲解2.整型掌握基本的数据类型,能够熟练使用浮点数。学习目标知识讲解3.浮点数3.浮点数浮点类型又称实型,是指包含小数部分的数据类型。C语言中的浮点数主要包括float(单精度浮点数)和double(双精度浮点数)两种。double类型变量所表示的浮点数比float类型变量更精确。类型名占用空间取值范围float32位(4字节)-3.4×1038~-1.2×10-38,0,1.2×10-38~3.4×1038double64位(8字节)-1.7×10308~-2.3×10-308,0,2.3×10-308~1.7×10308知识讲解知识讲解浮点数在内存中分3部分存储:符号位、小数位和指数位。浮点数3.14159存储在内存内存存储3.浮点数知识讲解在定义浮点类型变量时,可以在float类型变量所赋值的后面加上大写字母“F”或小写字母“f”,在double类型变量所赋值后面加上大写字母“D”或小写字母“d”。浮点型变量定义示例:floatf1=123.4f; floatf2=123.4; doubled2=199.3d; doubled1=100.1;

为一个float类型的变量赋值,后面可以加上字母f为一个float类型的变量赋值,后面可以省略字母f为一个double类型的变量赋值,后面可以加上字母d为一个double类型的变量赋值,后面可以省略字母d3.浮点数掌握基本的数据类型,能够熟练使用布尔型。学习目标知识讲解4.布尔型知识讲解4.布尔型_Bool,称为布尔类型,是C99新增关键字。_Bool类型的变量用于表示一个布尔值,即逻辑值true和false。在C语言中,使用数值0表示false,用1表示true,_Bool类型只占1字节存储空间。知识讲解_Bool类型变量定义示例:_Boolb1=10;_Boolb2=NULL; _Boolb3=0; _Boolb4=-28; _Boolb5="";

为_Bool类型的变量赋值为10,b1的值为1,即true为_Bool类型的变量赋值为NULL,b2的值为0,即false为_Bool类型的变量赋值为0,b3的值为0,即false为_Bool类型的变量赋值为-28,b4的值为1,即true为_Bool类型的变量赋值为空字符串,b5的值为1,即true4.布尔型学习目标案例实现巩固前面所学知识,能够利用前面所学知识实现案例2-3。案例实现(1)定义int类型的变量id表示学号。(2)定义float类型的变量score表示分数。(3)定义char类型的变量rank表示级别。(4)定义_Bool类型的变量pass表示是否通过。(5)在输入数据时,调用scanf()函数,输出数据时调用printf()函数。设计思路1.案例设计案例实现2.完整代码本案例中可以实现的效果图如下。

代码实现【案例2-4】密码破译04案例描述第一次世界大战期间,德军截获了俄军的一份明码电报,内容是俄军沙门索罗夫军团的行动计划。起初怀疑其真实性,但经侦察确认无误,遂迅速调动兵力,在坦能堡对孤立无援的俄军实施包围。经过四天激战,俄军第二集团军几乎被歼灭——约12万人,约9万人员被俘,约3万人员伤亡或失踪,指挥官萨姆索诺夫兵败自杀。此役成为因通信泄密导致惨败的经典战例。背景故事结论:密码很重要案例描述本案例要求编写一个程序,实现简单密码破译。假如我们在接收报文时,接到4个数字:117、110、100、111,请编写一个程序破译出这些数字要表达的含义。知识需求在C语言中,字符与数字之间可以进行转换,这是因为计算机使用特定的整数编码来表示对应的字符,计算机使用的英文字符整数编码机制有多种,但常用的英文字符编码为ASCII码。A65ASCII编码了解ASCII的编码机制,能够说出ASCII的编码机制及其特点。学习目标知识讲解ASCIIASCII知识讲解ASCII码:规定了把英文字母、数字、标点、字符转换成计算机能识别的二进制数的规则。ASCII表上的数字0~31分配给了控制字符,用于控制打印机等一些外围设备。非打印控制字符打印字符数字32~126分配给了打印字符,这些字符可以在控制台输出显示。ASCII码表一共收录了128个字符,大致可分为两部分:非打印控制字符、打印字符。127代表DELETE命令学习目标案例实现巩固前面所学知识,能够利用前面所学知识实现案例2-4。1.案例设计知识讲解定义4个int类型的变量接收这4个数据。010203123对照ASCII码表将其转换为字符。将字符组合输出,即可获取报文含义。2.完整代码知识讲解本案例中实现的效果图如下。

代码实现【案例2-5】混合运算05案例描述本案例要求编写一个程序,获取从键盘输入的char类型数据、int类型数据、float类型数据,并对这3个数据进行相加运算,输出运算结果。知识需求在计算机程序中,一般参与运算的数据类型相同,但是不同类型的数据也可以参与运算。在运算时,不同类型的数据会自动进行类型转换,以保证表达式能够正确执行。数据类型的自动转换通常称为隐式类型转换。charintfloat?掌握隐式类型转换,能够说出隐式类型转换的机制。学习目标知识讲解隐式转换隐式转换知识讲解隐式类型转换是指编译器自动进行的类型转换。隐式类型转换可分为两种:算术转换、赋值转换。赋值转换算术转换隐式转换知识讲解算术转换算术转换:进行算术运算(加、减、乘、除、取余以及符号运算)时,不同类型数招必须转换成同一类型的数据才能运算。转换规则:以表达式中最大类型(占内存最大)为主,将其他类型都转换为该类型。隐式转换知识讲解算术转换如果表达式中有多个占内存大小相同的数据类型,则转换规则如下。213如果表达式中存在int类型与float类型占用的内存大小相同且最大,则以float类型为准,将其他类型数据都转换为float类型。如果表达式中存在long类型与float类型占用的内存大小相同且最大,则以float类型为准,将其他类型数据都转换为float类型。如果表达式中存在int类型与long类型占用的内存大小相同且最大,则以long类型为准,将其他类型数据都转换为long类型。隐式转换知识讲解赋值转换赋值转换:在赋值类型不同时,即变量的数据类型与所赋值的数据类型不同,系统会将“=”右边的值转换为变量的数据类型再将值赋给变量。隐式转换知识讲解赋值转换赋值转换示例:inta=10.2;编译器在赋值时会将10.2转换为int类型的10再赋值给a,a最终的结果为10。VS注意:将浮点数赋给整型变量,在进行类型转换时会直接将小数点和小数位省略,不进行四舍五入。正因如此,将精度较大的类型的数据转换为精度较小的类型的数据时,会造成数据精度损失,所以最好不要将精度较大的类型的数据赋给精度较小的类型的变量。隐式转换知识讲解学习目标案例实现巩固前面所学知识,能够利用前面所学知识实现案例2-5。1.案例设计案例实现先定义char、int、float数据类型的变量。010203123调用scanf()函数从键盘输入数据。调用printf()函数输出3个变量的相加和。2.完整代码案例实现本案例中实现的效果图如下。代码实现

【案例2-6】小明考试06案例描述小明参加本学期期末考试,试卷中有一道题目如下。将从键盘输入的指定类型的数据强制转换为其他类型的数据后输出。例如,从键盘输入char类型数据、int类型数据和float类型数据,将char类型数据和int类型数据相加后,将结果强制转换为float类型的数据后输出。请帮助小明完成本题作答。知识需求在进行不同类型数据的运算时,可能会发生隐式类型转换,但在编程过程中,很多情况下事先并不知道运算结果的类型,因此要获取指定类型的结果,需要强制转换结果类型。charintfloatint?了解显式类型转换,能够使用显式类型转换实现复杂的运算。学习目标知识讲解显示类型转换知识讲解显式类型转换是指使用强制类型转换运算符,将一个变量或表达式的结果转化成所需的类型,也称为强制类型转换。(数据类型)(表达式)强制类型转换示例:intx=10;floatf=1.2;doubled=3.75;x=(int)(f+d); f=(double)(x)+d;显示类型转换将f+d的结果强制转换为int类型,再赋给变量x将x强制转换为double类型并与d相加,再将结果赋给f知识讲解显示类型转换对于数据类型转换,如果由低字节数据类型向高字节数据类型转换,一般不会出现错误;但如果由高字节数据类型向低字节数据类型转换,则可能会因数据截断造成精度损失。float、double类型与int类型的转换浮点型整型舍弃浮点数的小数部分,只保留整数部分整型浮点型数值不变,只将形式改为浮点形式,小数点后补0知识讲解显示类型转换float类型与doub

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论