版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目二动力航天基本数据类型与简单程序设计-------------------------------------------《C语言程序设计》项目描述党的二十大报告指出,教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是第一生产力。我国航天科技实现跨越式发展,航天发射能力显著提升,航天强国建设迈出坚实步伐。本项目以中国航天为主线,通过命名宇宙飞船,加强对数据类型、标识符的认识;以庆祝“神州十七”发射圆满成功任务强化基本变量、常见常量知识内容;在理解掌握数据的格式化输入输出时,运用任务“你最喜欢的航天员”夯实输入输出格式、格式符等基础知识;最后以任务“计算宇宙飞船牵引力”将C语言中的运算符、表达式、常用的数学函数内容串联起来。从最简单的标识符命名开始,以程序设计为主线,由浅入深,由简单到复杂,结合实际,自然地、循序渐进地编写程序。项目目标了解C语言的基本数据类型,理解常量和变量的定义掌握赋值语句以及数据输入、输出语句的用法理解运算符、表达式及常用函数的用法掌握编写程序的思路方法,能够完成简单的程序的编写任务一命名宇宙飞船
——数据的表现形式任务描述中国空间站叫“天宫”,核心舱叫“天和”,货运飞船叫“天舟”,载人飞船叫“神舟”,实验舱叫“问天”、“梦天”,中国航天人把探索浩瀚宇宙的心愿都寄托在航天器美好的名字,中国航天起名充满“中式浪漫”诗意而唯美,阅读以下内容,用你所学知识为加点的数据设计标识符,并完成以下表格吗?语境数据数据类型类型标识符自定义标识符截至2024年3月,神舟十七号乘组太空出差日程过半,入驻空间站4个月来,他们先后进行了2次出舱活动,陆续开展了进行舱外载荷安装及空间站维护维修等相关工作。神舟十七号
3个月
2次
空间站
单击此处添加名称CLICKTOADDCAPTIONTEXT知识准备:2.1基本数据类型
2-2常用标准数据类型类型标识符名
称字节数范
围char字符型1-27~+27-1(-128~+127)short短整型2-215~+215-1(-32768~32767)int或long长整型4-231~+231-1(-2147483648~2147483647)float浮点型(实型)410-37~10+38(绝对值)double双精度浮点型810-307~10+308(绝对值)说明:在Dev-C++或visualc中,int同long,在winTC中,int等同short。如何衡量数据类型所占空间大小?bit,中文叫法:位Byte,中文叫法:字节Kilobyte(KB),中文叫法:KMegabyte(MB),中文叫法:兆Gigabyte(GB),中文叫法:GTerabyte(TB),中文叫法:T1TB==1,024GB1GB==1,024MB1MB==1,024KB1KB==1,024B1B==8b知识准备:2.1基本数据类型一个汉字,占两个字符(字节)知识准备:2.1基本数据类型一个汉字,占两个字符(字节)一个位有多大?只能是“0”或者“1”,这叫二进制。一个字节有多大?保存一个字符(英文字母、数字、符号);ASCII(美国标准信息交换码)编码(见P364附录A,常用字符与ASCII码对照表),可以表示0~255之间的正整数。知识准备:2.1基本数据类型4种类型修饰符:(1)signed——可以修饰int,char。eg:有符号整型
signedint。
int默认是有符号整数,char默认为无符号。(2)unsigned——可以修饰int,char
eg:无符号整型unsignedint。(3)long——可以修饰int,doubleeg:长整型为longint(4)short——可以修饰integ:短整型shortint类型修饰符可以与字符型或者整型数据配合使用知识准备:2.1基本数据类型单击此处添加名称CLICKTOADDCAPTIONTEXT知识准备:2.2标识符和关键字你认识以下事物或人吗?单击此处添加名称CLICKTOADDCAPTIONTEXT标识符又称为用户自定义标识符,是程序员用来表示各种程序元素而命名的符号。标识符命名规则:只能由英文字母、数字和下划线组成,且第一个字母必须是字母或下划线大小写是不同的字符,就是C c不能用关键字和保留标识符(比如标准库函数名字)作为自定义的标识符一个标识符中不允许有空格、+、-等其它符号长度任意=知识准备:2.2标识符和关键字单击此处添加名称CLICKTOADDCAPTIONTEXT关键字又称保留字,由C语言定义的,具有特定含义的单词。-每一个关键字都有一种特定含义,不能被赋予别的含义。都是小写专用,不能用来定义变量名或函数名等共32个,见表1-1知识准备:2.2标识符和关键字单击此处添加名称CLICKTOADDCAPTIONTEXTautobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile表1-1知识准备:2.2标识符和关键字单击此处添加名称CLICKTOADDCAPTIONTEXT任务实施语境数据数据类型类型标识符自定义标识符截至2024年3月,神舟十七号乘组太空出差日程过半,入驻空间站4个月来,他们先后进行了2次出舱活动,陆续开展了进行舱外载荷安装及空间站维护维修等相关工作。神舟十七号字符串stringShzh_174个月短整型shortT_42次短整型shortNm_2空间站字符串stringKongjzh注:其他满足命名规则的自定义标识符也可以使用。单击此处添加名称CLICKTOADDCAPTIONTEXT任务拓展判断以下标识符定义是否正确的:
myVariable9pinsMYVARIABLEia+ctesting1-2-3._myvariable$myvariable
name-scorex&yINTint任务二庆祝神州十七发射圆满成功
——数据的表现形式任务描述
2023年10月26日11时14分,搭载神舟十七号载人飞船的长征二号F遥十七运载火箭在酒泉卫星发射中心点火发射,约10分钟后,神舟十七号载人飞船与火箭成功分离,进入预定轨道,航天员乘组状态良好,发射取得圆满成功。为庆祝神舟十七号发射圆满成功,输出以下内容:庆祝神舟十七发射圆满成功!ILOVECHINA!神舟十七的发射是我国载人航天工程立项以来的第30次飞行任务,也是我国第12次载人飞行任务,本次载人发射的长二F火箭飞行可靠性指标提升至0.9896,安全性指标达0.99996。任务描述常量是指数据在程序的运行过程中不会发生改变的量。只能被引用,不能被重新赋值。C语言的常量可分为:整型常量实型常量字符型常量字符串常量符号常量知识准备:2.3.1常量和符号常量符号常量用一个标识符代表一个常量,它的值在作用域内不能改变,也不能被赋值。定义形式:#define标识符字符串注意:字符串后面不能有分号“#”:表示一条预处理命令“define”:是关键字“标识符”:是用户自己定义的知识准备:2.3.1常量和符号常量eg: #definePI3.1415926。此后,只要是在文件中出现的PI均可用3.1415926知识准备:2.3.1常量和符号常量整型常量又称为整数,整数有三种数值表现形式:十进制整型常量。没有前缀,其数码取值范围为0~9八进制整型常量。以0开头,数码取值范围为0~7。如0200,0754。089非法。十六进制整型常量。以0x开头,其数码取值范围为0~9,A~F或a~f,如0x80,0x8F。100用8进制表示为0144,用16进制表示为0x64二进制和十六进制最常用,八进制不常用知识准备:2.3.2整型常量098
0x2d
990x3H034100判断???知识准备:2.3.2整型常量格式字符含义
%d按十进制整数形式输出
%o按八进制无前缀整数形式输出
%x按十六进制无前缀整数形式输出
%#o按八进制有前缀整数形式输出
%#x按十六进制有前缀整数形式输出知识准备:2.3.2整型常量100=0144=0x64知识准备:2.3.2整型常量实型数据什么是实型常量知识准备:2.3.3实型(浮点型)常量实型(浮点型)常量
实型常量分float和double两类,默认是双精度(double)
在C语言中,实型常量有两种表示形式。知识准备:2.3.3实型(浮点型)常量(1)十进制小数形式组成:数字,小数点和+、-符号,小数点是必须有的,不能只有一个小数点。如果绝对值小于1,小数点前的0可以省略如:.123,1.,25.6,-72.8,99.,0.0等。小数形式:+、—0~9.知识准备:2.3.3实型(浮点型)常量指数形式(科学计数法):十进制数aEn阶码标志阶码(2)指数形式(科学记数法)一般形式:aEn(a表示十进制数,n表示指数)→a*10n字母e或E前后必须有数字,且后面的数字必须是整数,以及彼此之间不得有空格如:1.34E1.2.E2在非法的浮点数。知识准备:2.3.3实型(浮点型)常量小数形式-630.538.20.0314指数形式-6.305e+23.82e13.14e-2说明:(1)3.82e1中阶码的正号被省略;
(2)小数形式中,小数点前部分和后部分,均可省略。
如:2.0可写成2.,0.2可写成.2。知识准备:2.3.3实型(浮点型)常量格式字符含义
%f按小数形式输出浮点数
%e按科学记数法形式输出浮点数知识准备:2.3.3实型(浮点型)常量123.4=1.234*102科学记数法可表示为1.234E2;0.0123=1.23*10-2科学记数法表示为1.23E-2;知识准备:2.3.3实型(浮点型)常量字符常量指由一对单引号括起来的一个字符。’A’,’a’,’2’,'?','#'....特点:1、字符常量只能用单引号括出来,不能使用双引号或其他括号2、引号内只能是一个字符,不允许'ab','12'....3、数字被定义为字符型后,就不能参与数值运算,即'5'与5是不同的 ·转义字符:是一种特殊的字符型常量 -以反斜线“\”开头,后面跟着一个或多个字符 -主要用来表示控制代码,例如“\r回车”、“\n换行”等。★P21常用转义字符多用于输出语句知识准备:2.3.4字符常量标准ASCII码有128个字符,其中:(1)码值0~31为控制字符。例如,回车换行、文件结束标志、字符串结束标志等。(2)10个阿拉伯数字‘0’~‘9’的码值是连续的。(3)26个大写字母’A’~’Z’是连续的,26个小写字母’a’~’z’是连续的。知识准备:2.3.4字符常量字符ASCII码值二进制存储方式‘A’6501000001‘a’9701100001‘0’4800011000知识准备:2.3.4字符常量字符常量可以参与各种运算。例如:‘B’-‘A’=1‘a’-32=66‘c’<‘d’为true知识准备:2.3.4字符常量C语言阅读程序#include<stdio.h>intmain(){printf("C\tlanguage\tis\n");printf("ths\be\t\107od\'s\tLang\165age");return0;}请写出运行结果程序解读:\t表示水平制表,占位8列;\b表示退格,将当前位置移到前一列,用后面的字符将前面的字符替换掉。\107表示字符’G’\165表示字符’u’例知识准备:2.3.4字符常量C语言常用转义字符表:说明:转义字符'\‘'就
代表字符'’'八进制102十进制66对应字符B转义字符’\102'知识准备:2.3.4字符常量转义字符的使用#include<stdio.h>intmain(){ printf("\"china\"\n"); printf("My\tCountry.\n"); printf("Iamhap\160\x79.\n"); printf("Haya\b\b\b\bowareyou\n"); return0;}运行程序,输出结果为:知识准备:2.3.4字符常量知识准备:2.3.5字符串常量字符串常量是“”括起来的字符序列例如:”hello”,”123”等字符串“Hello”的长度为5(即字符的个数),但在内存中所占的字节数为6,即存放“Hello\0”。其在内存中的存储形式为:Hello\0‘a’“a”aa\0存储形式存储形式字符串常量在内存中的存储形式示例示例知识准备:2.3.5字符串常量格式字符含义
%c按字符形式输出
%s按字符串形式输出
知识准备:2.3.5字符串常量字符常量字符串常量使用’’单引号使用””双引号表示单个字符表示一个或多个字符可将其赋予一个字符串常量不能赋予一个字符常量占一个字节的内存空间占内存字节数等于字符串中字节数加1输出格式符为%c输出格式符为%s字符串常量与字符常量之间的区别常量知识准备:2.3.5字符串常量#include<stdio.h>main(){printf(“ch1=%c,ch2=%c\n”,'a','b');printf(“ch1=%d,ch2=%d\n”,'a','b');printf(“ch1=%d,ch2=%c\n”,'\101','\101');}ch1=a,ch2=bch1=97,ch2=98ch1=65,ch2=AASCII码表:十进制10对应换行→\012等价于\n知识准备:2.3.5字符串常量用char定义字符变量#include<stdio.h>main(){charc=’?’;//系统把“?”的ASCII代码赋给变量cprintf(”%d%c\n”,c,c);}输出结果是:63?知识准备:2.3.5字符串常量#include<stdio.h>main(){charc1,c2;c1='a';c2='b';c1=c1-32;c2=c2-32;printf(“c1=%c,c2=%c\n”,c1,c2);}c1=A,c2=B字符型与整数型相互转换知识准备:2.3.5字符串常量
变量:在执行过程中,其值可以改变的量称为变量
C语言中,变量必须先定义后使用知识准备:2.4变量变量的声明格式:
[修饰符]类型变量名1,变量名2,….;如:intx,y;//定义x,y两个整型变量floata,b,c;//定义a,b,c三个浮点型变量知识准备:2.4变量敲黑板:-一个类型后可以定义多个变量,之间用逗号隔开。-类型和变量名之间至少有一个空格。-最后一个变量名后必须有分号。-同一程序中,变量不允许重复定义。-变量定义在使用变量之前,一般放在函数体或语句块开头部分知识准备:2.4变量变量赋初值
定义变量后,在使用之前需要给变量一个初始值。
在C语言中,用赋值运算“=”给变量赋值。如果声明变量以后没有赋初值,则会产生一个“变量还未被初始化”的错误。知识准备:2.4变量变量赋值的一般格式:先定义后赋值。intr;r=1;定义变量的同时为其赋值。intr=1;知识准备:2.4变量intt;t=1;t=2;执行后变量的值为2,而不是1intx=y=z=10;intx=10.5;执行后,变量x的值是整数10
知识准备:2.4变量基本数据类型整型实型字符型变量+整型变量实型变量字符变量变量的分类知识准备:2.4变量1、定义了3个int型变量i、j、k和2个字符型变量c1、c2。inti,j,k;charcl,c2;2、定义两个单精度浮点型变量x1,x2;floatx1,x2;3、定义两个双精度变量z1,z2;doublez1,z2;4、观察以下程序,你能发现哪些问题floatx;doubley;x=123456.789;y=1.23456789E5;知识准备:2.4变量任务三你最喜欢的宇航员
——C语言输入/输出函数任务描述习近平总书记在党的二十大报告中强调:“加快建设国家战略人才力量,努力培养造就更多大师、战略科学家、一流科技领军人才和创新团队、青年科技人才、卓越工程师、大国工匠、高技能人才。”在中国航天事业中,涌现出一批优秀的航天人,截至2024年3月,我国已有18名航天员登上太空,中国飞天第一人杨利伟、第一位出舱航天员翟志刚、第一位漫步太空的中国女航天员王亚平,放牛娃聂海胜,11年艰苦训练杨洪波,航天英雄的每一步都见证着中国载人航天事业的进步。请你编程实现:输入你最喜欢的航天员的姓名,打印输出,并选择喜欢他的原因。任务描述视频来自bilibili网站任务描述任务分析本次任务需要输入航天员姓名,需要使用格式化输入字符串,使用scanf语句;打印名称,使用格式化输出printf语句。选择喜欢的原因,需要提供选项,用printf语句提示,再格式化输入字符。任务分析单击此处添加名称CLICKTOADDCAPTIONTEXT任务准备:2.5字符输入输出函数任务准备:2.5字符输入输出函数常用头文件:
stdio.h定义标准输入输出函数string.h定义字符串操作函数math.h定义sin、cos等数学函数#include<stdio.h>也可以写作:#include“stdio.h”也是成立的。任务准备:2.5字符输入输出函数标准输入输出函数:printf(格式输出)scanf(格式输入)putchar(输出字符)getchar(输入字符)puts(输出字符串)gets(输入字符串)最基本知识准备:2.5.1字符型输出putchar()单字符输出函数功能:从计算机向显示器终端输出一个字符一般形式为:putchar(c)→输出字符变量c的值
putchar(‘m’)→输出单个字符m知识准备:2.5.1字符型输出putchar()输出结果:open知识准备:2.5.1字符型输出putchar()/*例putchar(‘控制字符’)*/#include<stdio.h>main(){chara,b;a=‘O';b=‘k';putchar(a);putchar(‘\n’);putchar(b);}运行结果:Ok
/*例putchar()含有转义符*/#include<stdio.h>main(){chara;a='B';putchar('\101');putchar(a);}运行结果:AB知识准备:2.5.1字符型输入getchar()功能:用getchar函数向计算机输入一个字符一般形式:变量=getchar()1.getchar()函数没有参数2.getchar()只能接收一个字符chara;a=getchar();printf(”输入字符=%c”,getchar());tyhdjs输入字符=t知识准备:2.5.1字符型输入getchar()3.回车键表示结束输入。4.getchar()函数接收的字符可以赋给一个字符变量或整型变量,也可以只作为表达式一部分。例: a=getchar();putchar(a);等价于: putchar(getchar());知识准备:2.5.1字符型输入getchar()知识准备:2.6格式化输出函数知识准备:2.6格式化输出函数功能:按照指定的格式输出数据。按照输出内容要求不同,printf()有两种使用形式输出内容不含变量,也叫原样输出格式输出内容含有变量,也叫格式输出格式知识准备:2.6格式化输出函数1.原样输出格式一般形式: printf(“输出字符串”);格式输出格式功能:输出内容含有变量,按照指定格式输出表列中变量的值。printf(“a=%d\n”,a);printf(“a=%d\nb=%d\n”,a,b);printf(“sum=%d\n”,a+b);printf(“x=%d\n”,5);知识准备:2.6格式化输出函数知识准备:2.6格式化输出函数printf("a=
%d
b=
%f",a,b);函数名输出表列格式控制字符串格式字符格式字符普通字符普通字符注意:普通字符一定原样输出,如有空格或者逗号等都原样输出,格式字符要按照格式要求输出。知识准备:2.6格式化输出函数表2-10常见的输出格式字符格式字符功能说明%d按十进制整数形式输出%c按字符形式输出%s按字符串形式输出%o按八进制整数形式输出%x按十六进制整数形式输出%f(%e)按浮点形式(或指数形式)输出,默认为6位小数%m.nf按浮点形式输出,显示宽度不小于m,小数位数为n格式说明符在输出时对不同类型的数据要指定不同的格式声明一般形式:%[格式修饰符]格式说明符%d按十进制整数形式输出%ffloat单精度型形式输出知识准备:2.6.1d格式符d格式符(%d):输出有符号的十进制整数按十进制整型数据的实际长度输出,正数的“+”不输出。%nd:指定输出数据的域宽(所占列数为n)知识准备:2.6.1d格式符
printf(”%5d\n%5d\n”,12,-345);00012(12前面有3个空格)0-345(-345前面有1个空格)f格式符(%f):输出实数,以小数形式输出
%f:不指定数据宽度,根据数据实际情况决定数据列数0.333333floata=1;printf(”%f”,a/3);知识准备:2.6.2f格式符
%mf:指定数据宽度,即输出数据占m列00000.333333//0前4个空格
floata=1;printf(”%12f”,a/3);知识准备:2.6.2f格式符%-mf:输出数据占m列,并且输出的数据向左靠数据长度不超过m时,数据向左靠,右边补空格0.3333330000
//向左靠,3后面4个空格
floata=1;printf(”%-12f”,a/3);知识准备:2.6.2f格式符%m.nf:输出数据占m列,其中包括n位小数5.238005.2400005.2floata=5.238;printf(”%3.4f\n”,a);printf(”%5.2f\n”,a);printf(”%7.1f\n”,a);知识准备:2.6.2f格式符%-m.nf:输出数据占m列,其中包括n位小数,输出数据向左靠数据长度不超过m时,数据向左靠,右边补空格6.34506.3506.3000doublea=6.345;printf(”%-3.4f\n”,a);printf(”%-5.2f\n”,a);printf(”%-6.1f\n”,a);知识准备:2.6.2f格式符⑥float型数据只能保证6~7位有效数字double型数据能保证15位有效数字如果一个数据的有效数字超过7位,最好选用双精度型,以免丢失有效数据位数%ffloat单精度型%lfdouble双精度型知识准备:2.6.2f格式符⑦e格式符(%e):指数形式输出实数1.234560e+002floata=123.456;printf(”%e”,a);小数6位指数共5位小数点前必须有而且只有1位非零数字知识准备:2.6.2f格式符floata=123.456;printf(”%13.2e”,a);00001.23e+002//前面有4个空格
⑧“%m.ne”形式:指数形式输出实数,输出数据占m列,其中包括n位小数知识准备:2.6.2f格式符c格式符(%c):用来输出一个字符(字节)。值在0~255的整数。charch=’a’;printf(”%c”,ch);acharch=’a’;printf(”%5c”,ch);0000a//a前面有4个空格
一个整数,如果在0~127范围内,也可以用“%c”使之以字符的形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符。
inta=121;printf(”%c”,a);y//可看附录1知识准备:2.6.3C格式符知识准备:2.6.3C格式符一个整数,如果在0~127范围内,也可以用“%c”使之以字符的形式输出。
inta=121;printf(”%c”,a);y//可看附录1如果一个整数比较大(比如377),则把它最后一个字节的信息以字符形式输出。y(%c只考虑一个字节)inta=377;printf(”%c”,a);0000000101111001最后一个字节,对应十进制的121知识准备:2.6.3C格式符s格式符(%s):用来输出一个字符串有%s,%ms,%-ms,%m.ns,%-m.ns五种用法
#include<stdio.h>intmain(){printf(“%3s,%7.2s,%.4s,%-5.3s\n”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);return0;}运行结果:
CHINA,_____CH,CHIN,CHI__知识准备:2.6.4S格式符敲黑板格式说明决定最终输出的格式格式说明应与输出列表项个数相同,顺序一致除X、E、G可以大写外,其他格式字符都必须小写。如果需要输出“%”,可连续使用两个%%。格式说明与输出类型要匹配,否则输出结果可能不是原值floatf2=3.14;printf("%%f:%f\n",f2);%f:3.140000问:如何输出\n?printf(“\\n”);输出:\n知识准备:2.6.4S格式符功能:从键盘输入数据。(按格式输入数据赋给各输入项。)一般形式:scanf(“格式控制字符串”,参数地址表);例如:inta,b;scanf("%d,%d",&a,&b);知识准备:2.7格式化输入函数格式字符含义
%c接收一个字符型数据%s 接收一个字符串型数据
%d接收一个整型数据,直到遇到空格、Tab键或回车符
%f接收一个符点型数据(float)
%lf接收一个符点型数据(double)知识准备:2.7格式化输入函数敲黑板:
1.输入数据时,要根据格式控制字符串形式输入数据格式字符串中有空白符(回车、Tab、空格)或无任何间隔,则输入数据时必须用空格、Tab键或回车来分隔。例:scanf(“%d%d”,&a,&b); /*空格分隔*/或:scanf(“%d%d”,&a,&b); /*无任何分隔*/知识准备:2.7格式化输入函数例:scanf(“%d,%d”,&a,&b); 应输入:100,-50scanf(“x=%d,y=%d”,&a,&b); 应输入:x=100,y=-50scanf(“%d %d”,&a,&b); 应输入:100
-50知识准备:2.7格式化输入函数知识准备:2.7格式化输入函数2.格式控制字符串中有*格式(即%*d和%*s),表示跳过这个输入的数,把下个输入的数读入相应位置中。例:scanf(“%d,%*d,%d”,&x,&y);
输入:100,45,567系统将100赋给x,45被跳过,567赋给y。知识准备:2.7格式化输入函数3、使用scanf()时,往往先用printf()函数进行必要的提示。知识准备:2.7格式化输入函数4、输入实数时不能规定精度。例:scanf(“%4.1f”,&f);是非法的知识准备:2.7格式化输入函数5、以%c格式输入时,所有输入的字符(包括空白符和转义字符)都作为有效字符。空白符包括空格、回车和制表符Tab 知识准备:2.7格式化输入函数任务实施#include<stdio.h>main(){ charname[10]; charyy;
printf("请输入你最喜欢的航天员的名字:\n"); scanf("%s",&name);
printf("我最喜欢的航天员的名字是%s\n",name);
printf("你喜欢他的原因是?请选择\n");
printf("A、长得帅,长得好看\n");
printf("B、他有吃若耐劳的精神\n");
printf("C、他有大公无私的精神\n");
printf("D、他有精益求精的精神\n"); getchar(); scanf("%c",&yy);
printf("我最喜欢的航天员的原因选择%c\n",yy); printf("\n");} chara,b; a=getchar(); putchar(a); putchar('\n'); b=getchar(); putchar(b); putchar('\n');三行空格原因:输入h回车后,缓冲区有h和回车符两个字符,读取a后,执行到b=getchar();会先从缓冲区读取,读取回车符输出。那么,怎么清除回车符?任务拓展任务拓展
chara,b; a=getchar(); putchar(a); putchar('\n');
getchar(); b=getchar(); putchar(b); putchar('\n');原因:新加入的getchar()会先从缓冲区读取,读取回车符,这时缓冲区清空,再输入j回车,就输出字母h和j。任务四计算宇宙飞船牵引力
——运算符和表达式任务描述视频截取自找商生活宇宙飞船以v0=104m/s的速度进入分布均匀的宇宙微粒尘区,飞船每前进x长度(这里以m为单位),要与n=104个微粒相碰,假如每一个微粒的质量m=2×10-6kg,与飞船相碰后附在飞船上,为了使飞船的速度保持不变,飞船的牵引力应为多大?
公式
:F=nmv02/x利用C语言编程求出飞船的牵引力是多大。提示:请输入前进距离是多少?任务描述小数可以用浮点型数据表示用scanf语句提示输入行驶距离变量进行定义后便可使用最后用printf语句输出标识符命名规则任务分析运算符用于对常量和变量进行各种连接和运算的符号,是对数据的加工。+、-、*、/、>、<任务准备:2.8运算符和表达式是由常量、变量、函数和运算符组合起来的式子,
例如:d/(3*a+b)-6*c表达式任务准备:2.8运算符和表达式序号类别运算符1算术运算符*、/、%、+、-自增运算符++、自减运算符--2关系运算符>、〈、==、>=、〈=、!=3逻辑运算符&&、||、!4位运算符<<、>>、~、|、^、&5赋值运算符=、+=、-=、*=、/=、%=<<=、>>=、&=、^=、|=6条件运算符?:7逗号运算符,8指针运算符*、&9强制类型转换运算符(类型),如(int)、(double)等10分量运算符-〉、·、[]11其他运算符如函数调用运算符()等任务准备:2.8运算符和表达式优先级共15级运算符‘()’最高,为1级运算符‘,’最低,为15级结合性“从左到右”“从右到左”单目运算符、赋值运算符和条件运算符的结合方向从右到左任务准备:2.8运算符和表达式在计算表达式的值时,必须按运算符的优先级别高低次序执行,优先级高的优于优先级低的进行计算。如果一个运算对象两侧的运算符优先级别相同,则按照结合方向的原则进行处理。左结合性,“从左向右”:如算术运算符,x-y+z右结合性,“从右向左”:如赋值运算符,x=y=z任务准备:2.8运算符和表达式符号名称示例+加法运算符,或正值运算符2+3、+5-减法运算符,或负值运算符3-2、-5*乘法运算符2*3/除法运算符4/2%取模运算符,或称求余运算符5%2任务准备:2.8.1算术运算符1、基本运算符:+、-、*、/、%(求余)正常情况都为双目运算符,具有左结合性。除了“-”作为负值运算符时,是单目运算符,如-8。任务准备:2.8.1算术运算符“/”运算如果参与运算量均为整型,则结果也为整型,舍去小数。
例如:10/7=1,2/5=0;如果运算量中有一个实数,则结果为双精度实数
例5/2=2
-5/2.0=-2.5任务准备:2.8.1算术运算符“%”运算要求参与运算的量均为整型,结果为两数相除的余数例如:5%3=2例5%2=-5%2=1%10=
5%1=5.5%2例5%2=1
-5%2=-11%10=
1
5%1=
05.5%2()任务准备:2.8.1算术运算符2、算术表达式(1)日常里的数学表达式。单独的常量、变量、函数也是表达式。(2)书写时应注意与数学表达式的区别:a+b(a*2)/c(x+r)*8-(a+b)/7i++sin(x)+sin(y)(++i)-(j++)+(k--)x2+2x+1→x*x+2*x+1→(-b+sqrt(b*b-4*a*c))/2*a任务准备:2.8.1算术运算符敲黑板:(1)不能在表达式中使用C语言不允许的标识符例:将2πr写成2*π*r,C语言中没有π这个符号(2)凡是相乘的地方必须写*,不能将*省略或用圆点。(3)出现括号一律使用圆括号(),不能使用“[”和“]”或者“{”和“}”,注意用圆括号来保持运算顺序任务准备:2.8.1算术运算符任务准备:2.8.2自增自减运算符C语言符号含义类别结合性优先级表达式++自增运算符单目运算符从右到左2i++++i--自减运算符单目运算符从右到左2i----i自增自减运算符的作用是使变量的值自增1或自减1。任务准备:2.8.2自增自减运算符a=i++;a=i;i=i+1;a=++i;i=i+1;a=i;自增自减运算符前置与后置的区别:前置后置任务准备:2.8.2自增自减运算符靠加减,先加减再赋值;靠变量,先赋值后加减。任务准备:2.8.2自增自减运算符j=4,k=4j=4,k=3j=3;k=++j;j=3;k=j++;
a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;
c=20,a=4c=15,a=4任务准备:2.8.2自增自减运算符intj=5,k=5,m,n;m=j++;n=++k;printf(“m=%d,j=%d\n”,m,j);printf(“n=%d,k=%d\n”,n,k);m=5,j=6n=6,k=6
//等同于:m=j;j=j+1;//等同于:k=k+1;n=k;任务准备:2.8.2自增自减运算符敲黑板举例1、操作数只能是变量,不能是常量或表达式6--,++(a+b),++(-i)2、单目运算符都是右结合的m=-n++;相当于m=-(n++)3、多个运算符连续出现时,编译系统尽可能多的从左到右将字符组合成一个运算符。i+++j等价于(i++)+j,-i+++-j等价于-(i++)+(-j)任务准备:2.8.2自增自减运算符所谓赋值,就是将一个数据存入一个连续的具有若干存储单元的存储空间中,该存储空间有一个名字,就是前面介绍的变量名。
对一个变量进行定义后,这个变量如果没有进行赋值,它的值是不确定的。任务准备:2.8.3赋值运算符一般形式:
变量=表达式;功能:
首先计算赋值号“=”右边表达式的值,然后将结果值送给赋值号“=”左边的变量。
例如:
g=9.8;
g=10+20-9;“=”不是等号,而是赋值号。任务准备:2.8.3赋值运算符‘A’=a+1;3=x/2;a+b=12任务准备:2.8.3赋值运算符赋值运算符:“=”复合赋值运算符:a=8;//???a+=8;//???x%=y+4;//???a=a+8;x=x%(y+4);赋值表达式和赋值语句:a=b=5;b=5;a=b;任务准备:2.8.3赋值运算符charc1,c2; c1='a'; c2='b';任务准备:2.8.3赋值运算符任务准备:2.8.3赋值运算符赋值过程中的类型转换:有两种类型转换自动类型转换---系统自动完成强制类型转换---程序员控制完成任务准备:2.8.3赋值运算符如果赋值运算符两侧的类型不一致,但都是算术类型时,在赋值时要进行类型转换,它是由系统自动进行的。s和c的数据类型先转换为int型,然后再进行计算,结果为int型任务准备:2.8.3赋值运算符强制类型转换赋值时,“=”右侧表达式的类型转换为左侧变量的类型。强制类型转换的一般形式为
(类型名)(表达式)例如: (double)a(将a转换成double类型) (int)(x+y)(将x+y的值转换成int型) (float)(5%3)(将5%3的值转换成float型)任务准备:2.8.3赋值运算符shortcharintunsignedlongdoublefloat数据类型大小大的类型转换为小的类型时,要加上强制转换符,但可能造成精度降低或溢出,使用时要注意。任务准备:2.8.3赋值运算符任务准备:2.8.4逗号运算符功能:把两个表达式连接起来,组成一个表达式一般形式:表达式1,表达式2,表达式3,……,表达式n结合性:从左向右逗号表达式的值==表达式n的值任务准备:2.8.4逗号运算符a=3*5,a*4;//a=15,表达式值60a=3*5,a*4,a+5;//a=15,表达式值20任务准备:2.8.4逗号运算符x=(a=3,6*3)x=a=3,6*a//表达式值18,x=18//表达式值18,x=3x=(2,3,4);x=2,3,4;//表达式值4,x=4//表达式值4,x=2任务准备:2.8.5位运算符符号含义类别优先级格式结合性~取反单目运算符2~a右结合性<<左移双目运算符5a<<n左结合性>>右移双目运算符5b>>n左结合性&按位与双目运算符8a&b左结合性^安位异或双目运算符9a^b左结合性|按位或双目运算符10a|b左结合性位运算是指对操作数以二进制位(bit)为单位进行的数据处理。每一个二进制位只能存放一位二进制数”0”或”1”,因此位运算的运算对象是一个二进制数位的集合。运算符的求值规律ab~a~ba&ba^ba|b1100101100101101100110011000~运算,0变1,1变0;&运算,当两个对应位均为1时,结果为1,否则为0;^运算,当两个对应位相同时,结果为0,否则为1;|运算,当两个对应位均为0时,结果为0,否则为1;总结:任务准备:2.8.5位运算符在计算机中,数据是以二进制补码的形式进行存储,所以位运算的对象也是二进制的补码。正数的补码等于其本身。数值的表示方法位运算:正数:负数:十进制→二进制→位运算→十进制十进制→二进制→求补码→位运算→求原码→十进制任务准备:2.8.5位运算符原码:最高位为符号位,其余各位为数值本身的绝对值反码
正数:反码与原码相同负数:符号位为1,其余位对原码取反补码正数:原码、反码、补码相同负数:最高位为1,其余位为原码取反,再对整个数
加1任务准备:2.8.5位运算符原码反码补码+7000001110000011100000111-7100001111111100011111001任务准备:2.8.5位运算符正数:最高位为0原码=反码=补码负数:最高位为1反码=原码的高位不变,其它逐位取反补码=原码的反码+1总结:数值的表示方法任务准备:2.8.5位运算符最高位原码反码补码正数0原码=反码=补码负数1原码的高位不变,其它逐位取反原码的反码+1思考:已知一个负数的补码,怎么求这个数的原码?任务准备:2.8.5位运算符练习:数值的表示方法解析:原码补码位运算inta=11;charb=-11;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广西北海市第二中学(北京八中北海分校)临聘教师招聘2人备考题库含答案详解【完整版】
- 2026中煤财务公司招聘2人备考题库附答案详解(考试直接用)
- 2026河北邯郸市中西医结合医院选聘22人备考题库及参考答案详解(突破训练)
- 2026年上半年海南文昌市校园招聘事业单位人员38人备考题库(1号)附参考答案详解【轻巧夺冠】
- 2026中南大学湘雅医院江西医院高层次人才招聘备考题库附参考答案详解(综合题)
- 2026云南百大物业服务有限公司招聘备考题库带答案详解ab卷
- 2026广东梅州市人民医院第2批招聘43人备考题库【满分必刷】附答案详解
- 2026四川大学华西医院许艺苧研究员课题组博士后招聘备考题库附完整答案详解(易错题)
- 2026浙江宁波能源集团股份有限公司第一批招聘20人备考题库附答案详解(黄金题型)
- 2026北京公交集团校园招聘备考题库有完整答案详解
- 五小活动成果汇报
- DB61∕T 1916-2024 土石山区土地整治技术规程
- 2025年【大型双选会】中国恩菲工程技术有限公司春季校园招聘30人笔试历年参考题库附带答案详解
- 《互联网营销师(直播销售员)五级(初级)理论知识考核要素细目表》
- 内衣店新员工入职培训
- 电网检修培训课件下载
- 电器元件销售管理制度
- 三种方法评标计算(自带公式)
- 研究生导师培训讲座
- 《西藏自治区地质灾害危险性评估报告编制及审查技术要求(试行)》
- 3.2 工业的区位选择 课件 2024-2025学年高中地理鲁教版(2019)必修第二册
评论
0/150
提交评论