




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计预处理命令和常用库函数预处理命令和常用库函数 工作任务:编写程序,设计如下所示菜单。工作任务:编写程序,设计如下所示菜单。*| -请输入(请输入(0-5)- | 1-信息录入信息录入 | 2-成绩计算成绩计算 | 3-成绩排序成绩排序 | 4-查询成绩查询成绩 | 5-修改成绩修改成绩 | 0-退退 出出 |*情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计1 预处理命令预处理命令 预处理命令主要包括文件包含、宏定义和条件编预处理命令主要包括文件包含、宏定义和条件编译,特征是行首以译,特征是行首以#开头。开头。1、文件包含命令
2、(、文件包含命令(# include)作用:将另外的文件包含到本文件中。作用:将另外的文件包含到本文件中。格式:格式:# include # include “包含文件名包含文件名”例如:例如:# include注:包含文件名可以是注:包含文件名可以是.c源文件或源文件或.h的源文件。的源文件。情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计2 常用的库函数常用的库函数2.1 输出函数输出函数printf()函数函数 一般格式:一般格式:printf(格式字符串格式字符串, 输出项表输出项表); 例如例如: printf(radius=%7.2fnlength=%f,area=%fn
3、, r, l, a); 格式字符串也称格式控制字符串或格式转换字符串,其格式字符串也称格式控制字符串或格式转换字符串,其中可以包含下列三种字符:中可以包含下列三种字符: (1) 格式指示符:例如格式指示符:例如“%f”, “%7.2f”,等,这些字符用等,这些字符用来控制数据的输出格式。来控制数据的输出格式。 (2) 转义字符:这些字符通常用来控制光标的位置。转义字符:这些字符通常用来控制光标的位置。 (3) 普通字符:除格式指示符和转义字符之外的其他字符,普通字符:除格式指示符和转义字符之外的其他字符,这些字符输出时原样输出这些字符输出时原样输出.情境情境1 1:学生成绩输入输出设计:学生成
4、绩输入输出设计格式指示符的一般形式为:格式指示符的一般形式为:%修饰符修饰符格式字符格式字符1、格式字符、格式字符printf函数中常用的格式字符如表函数中常用的格式字符如表9-1所示。所示。情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计表表9-1 常用的格式字符常用的格式字符 格式格式字符字符说说 明明举举 例例输出结果输出结果d带符号十进制整数格式带符号十进制整数格式printf(%d, 10 );10printf(%d, A );65u无符号十进制整数格式无符号十进制整数格式printf(%u, 10 );10printf(%u, A );65x或或X无符号十六进制整数格式无
5、符号十六进制整数格式printf(%x, 10 );aprintf(%x, A );41printf(%X,10);A情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计o无符号八进制整数格式无符号八进制整数格式printf(%o, 10 );12printf(%o, A );101c字符格式字符格式printf(%c, 10 );换行换行printf(%c, A );Af小数格式小数格式printf(%f, 1.2345);1.234500e或或E指数格式指数格式printf(%e, 1.2345);1.234500e+000printf(%E, 1.2345);1.234500E+0
6、00g或或G小数形式或指数形式,使输出小数形式或指数形式,使输出宽度最小,不输出无意义的宽度最小,不输出无意义的0printf(%g, 1.2345);1.2345printf(%g, 0.000001);1e-006printf(%G, 0.000001);1E-006%输出输出%printf(%);%s输出字符串输出字符串printf(%s, abcde);abcde情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计 2长度修饰符长度修饰符 长度修饰符长度修饰符“l”加在加在%号和格式字符之间。输出号和格式字符之间。输出长整型数据的时候,一定要加长度修饰符,否则,得长整型数据的时候
7、,一定要加长度修饰符,否则,得不到正确的显示结果。例如:不到正确的显示结果。例如: long x=7654321; printf(x=%ldn, x); 输出结果为:输出结果为:x=7654321。情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计 3宽度修饰和精度修饰宽度修饰和精度修饰 可以在可以在%号和格式字符之间加入形如号和格式字符之间加入形如“m.n”(m、n均为整数均为整数)的修饰。其中,的修饰。其中,m为宽度修饰,为宽度修饰,n为精度修为精度修饰。宽度修饰用来指定数据的输出宽度。饰。宽度修饰用来指定数据的输出宽度。精度修饰对精度修饰对不同的格式字符不同的格式字符,作用不同:
8、,作用不同:对于格式字符对于格式字符f,用来指,用来指定输出小数位的位数;定输出小数位的位数;对于格式字符对于格式字符e,用来指定输出,用来指定输出有效数字的位数;有效数字的位数;对于格式字符对于格式字符d,用来指定必须输出,用来指定必须输出的数字的个数。相关的例子如表的数字的个数。相关的例子如表9-2所示。所示。情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计表表9-2 宽度修饰和精度修饰示例宽度修饰和精度修饰示例 输出语句输出语句输出结果输出结果(表示空格表示空格)printf(%5d, 42);42printf(%5.3d, 42);042printf(%.3d, 42);04
9、2printf(%7.2f, 1.23456);1.23printf(%.2f, 1.23456);1.23printf(%10.2e, 1.23456);1.23e+000printf(%.2e, 1.23456);1.23e+000情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计 4左对齐修饰左对齐修饰 在指定了宽度修饰时,如果指定宽度小于数据需在指定了宽度修饰时,如果指定宽度小于数据需要的实际宽度,则数据左边补空格,补够指定的宽度,要的实际宽度,则数据左边补空格,补够指定的宽度,这种对齐方式称为这种对齐方式称为“右对齐右对齐”。当然,也可以在数据。当然,也可以在数据的右边补空格
10、来补够指定的宽度,这种对齐方式称为的右边补空格来补够指定的宽度,这种对齐方式称为“左对齐左对齐”。指定左对齐的时候,使用左对齐修饰符。指定左对齐的时候,使用左对齐修饰符“-”,例如语句:,例如语句: printf(%-7.2fn, 1.23456); 输出结果为输出结果为 1.23(右边补三个空格右边补三个空格)情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计使用说明:使用说明: (1) printf()函数可以输出常量、变量和表达式的值。函数可以输出常量、变量和表达式的值。但格式控制字符串中的格式指示符必须按从左到右的但格式控制字符串中的格式指示符必须按从左到右的顺序,与输出项表中
11、的每个数据一一对应,否则出错。顺序,与输出项表中的每个数据一一对应,否则出错。 (2) 格式字符格式字符x、e、g可以用小写字母,也可以用大可以用小写字母,也可以用大写字母。使用大写字母时,输出数据中包含的字母也写字母。使用大写字母时,输出数据中包含的字母也大写。除了大写。除了x、e、g格式字符外,其他格式字符必须用格式字符外,其他格式字符必须用小写字母,例如,小写字母,例如,“%f”不能写成不能写成“%F”。 (3) 格式字符紧跟在格式字符紧跟在%后面就作为格式字符,否后面就作为格式字符,否则 将 作 为 普 通 字 符 使 用则 将 作 为 普 通 字 符 使 用 ( 原 样 输 出原 样
12、 输 出 ) , 例 如 , 例 如 ,“printf(c=%c, f=%fn, c, f);”中的第一个中的第一个c和和f都是普都是普通字符。通字符。情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计2.2 输入函数输入函数scanf()函数函数 scanf()函数的功能是从计算机默认的输入设备函数的功能是从计算机默认的输入设备(一般一般指键盘指键盘)向计算机主机输入数据。向计算机主机输入数据。 scanf()函数的一般格式:函数的一般格式: scanf(格式字符串格式字符串, 输入项地址表输入项地址表); 例如:例如: scanf(“%d,%f, &i, &f);1. 格式指示符格
13、式指示符格式指示符的一般形式为格式指示符的一般形式为%【修饰符修饰符】格式字符格式字符scanf函数中使用的格式字符如表函数中使用的格式字符如表9-3所示。所示。情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计表表9-3 常用格式字符常用格式字符 格式字符格式字符说说 明明d输入十进制整数输入十进制整数o输入八进制整数输入八进制整数x输入十六进制整数输入十六进制整数u输入无符号十进制整数输入无符号十进制整数c输入一个字符输入一个字符f 和和e输入小数形式或指数形式的实型数据输入小数形式或指数形式的实型数据s输入字符串输入字符串情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计
14、 2宽度修饰宽度修饰 宽度修饰用来指定输入数据所占列数,例如:宽度修饰用来指定输入数据所占列数,例如: scanf(%3c,&ch1); 假设输入假设输入“abcdefg”,则系统将读取的,则系统将读取的“abc”中中的的“a”赋给变量赋给变量ch1。 3抑制修饰符抑制修饰符 抑制修饰符抑制修饰符“*”表示对应的数据读入后,不赋给表示对应的数据读入后,不赋给相应的变量,该变量由下一个格式指示符输入。例如:相应的变量,该变量由下一个格式指示符输入。例如: scanf(%2d%*2d%3d,&num1,&num2); 假设输入假设输入“123456789”,则系统将读取,则系统将读取“12”并赋并
15、赋值给值给num1;读取;读取“34”,但舍弃掉,但舍弃掉(“*”的作用的作用);读取;读取“567”并赋值给并赋值给num2。情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计 4长度修饰符长度修饰符 在输入长整型数据和双精度实型数据时,必须在输入长整型数据和双精度实型数据时,必须使用长度修饰符使用长度修饰符“l”,否则,不能得到正确的输入,否则,不能得到正确的输入值。例如:值。例如: long x; double y; scanf(%ld %lf, &x, &y);情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计使用说明使用说明: 调用调用scanf()函数输入数据时,要
16、注意以下几点:函数输入数据时,要注意以下几点: (1) 如果相邻两个格式指示符之间,不指定数据分如果相邻两个格式指示符之间,不指定数据分隔符隔符(如逗号、冒号等如逗号、冒号等),则相应的两个输入数据之间至,则相应的两个输入数据之间至少用一个少用一个空格空格分开,或者用分开,或者用Tab键键分开,或者输入一分开,或者输入一个数据后,按个数据后,按回车回车,然后再输入下一个数据。例如:,然后再输入下一个数据。例如: scanf(%d%d,&num1,&num2); 假设给假设给num1输入输入10,给,给num2输入输入20,则正确的,则正确的输入操作为输入操作为1020 或者:或者: 10 20
17、 情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计 (2) 格式字符串中出现的格式字符串中出现的普通字符普通字符(包括转义字符形包括转义字符形式的字符式的字符),务必,务必原样输入原样输入。例如:。例如: scanf(num1=%d,num2=%d,&num1,&num2); 假设给假设给num1输入输入10,给,给num2输入输入20,正确的输,正确的输入操作为入操作为 num1=10,num2=20 另外,另外,scanf()函数中,对于格式字符串内的转义函数中,对于格式字符串内的转义字符字符(如:如:n),系统并不把它当转义字符来解释,从而,系统并不把它当转义字符来解释,从而产
18、生一个控制操作,产生一个控制操作,而是将其视为普通字符,所以也而是将其视为普通字符,所以也要原样输入。要原样输入。例如:例如: scanf(num1=%d,num2=%dn,&num1,&num2); 情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计 (3) 输入数据时,遇到以下情况时系统认为该数据输入数据时,遇到以下情况时系统认为该数据输入结束。输入结束。 遇到空格,或者回车键,或者遇到空格,或者回车键,或者Tab键。键。 遇到输入域宽度结束。例如遇到输入域宽度结束。例如%3d,只取三列。,只取三列。 遇到非法输入。例如,在输入数值数据时,遇遇到非法输入。例如,在输入数值数据时,遇
19、到字母等非数值符号到字母等非数值符号(数值符号仅由数字字符数值符号仅由数字字符09、小、小数点和正负号构成数点和正负号构成)。情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计 (4) 使用格式说明符使用格式说明符“%c”输入单个字符时,空格输入单个字符时,空格和回车或和回车或tab等均作为有效字符被输入。例如:等均作为有效字符被输入。例如: scanf(%c%c%c,&ch1,&ch2,&ch3); printf(ch1=%c,ch2=%c,ch3=%cn,ch1,ch2,ch3); 假设输入:假设输入:AB ,则系统将字母,则系统将字母“A”赋值给赋值给ch1,空格赋值给,空格赋值
20、给ch2,“B”赋值给赋值给ch3。情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计3、单个字符的输入、单个字符的输入/输出函数输出函数 C语言还提供了语言还提供了putchar()和和getchar()函数,专门函数,专门用来输出用来输出/输入单个字符。输入单个字符。 每调用每调用putchar()函数一次,就向显示器输出一个函数一次,就向显示器输出一个字符,它的调用形式如下:字符,它的调用形式如下: putchar(ch); 其中,其中,ch是字符变量或是字符常量,是字符变量或是字符常量, 例如:例如: putchar(Y);情境情境1 1:学生成绩输入输出设计:学生成绩输入输出
21、设计 每调用每调用getchar()函数一次,就从键盘接收一个字函数一次,就从键盘接收一个字符,它的调用形式如下:符,它的调用形式如下: ch=getchar( ); getchar()函数是一个无参函数,但调用函数是一个无参函数,但调用getchar()函数时,后面的括号不能省略。函数时,后面的括号不能省略。getchar()函数从键盘函数从键盘接收一个字符作为它的返回值。接收一个字符作为它的返回值。 在输入时,空格、回车等都将作为字符读入,而在输入时,空格、回车等都将作为字符读入,而且,只有在用户输入回车键时,读入才开始执行。且,只有在用户输入回车键时,读入才开始执行。情境情境1 1:学生
22、成绩输入输出设计:学生成绩输入输出设计 【例例1】 以下程序先从键盘接收一个字符,然后显示在显以下程序先从键盘接收一个字符,然后显示在显示器上。示器上。 /*程序功能:单个字符的输入与输出程序功能:单个字符的输入与输出*/ #include “stdio.h” (必须加)(必须加) main( ) char ch; ch=getchar( ); putchar(ch); putchar(n); 情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计 3数据类型转换数据类型转换 在在C语言中,整型、实型和字符型数据间可以混语言中,整型、实型和字符型数据间可以混合运算合运算(因为字符数据与整型
23、数据可以通用因为字符数据与整型数据可以通用)。 如果一个运算符两侧的操作数的数据类型不同,如果一个运算符两侧的操作数的数据类型不同,则系统按则系统按“先转换,后运算先转换,后运算”的原则,首先将数据自的原则,首先将数据自动转换成同一类型,然后在同一类型数据间进行运算。动转换成同一类型,然后在同一类型数据间进行运算。 数据类型转换规则如图数据类型转换规则如图2-3所示。所示。情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计图图3-3 数据类型转换规则数据类型转换规则doublefloatlongunsignedintchar, short低高说明:说明: (1) 横向向左的箭头,表横向
24、向左的箭头,表示必须的转换。示必须的转换。 char和和short型必须转换型必须转换成成int型,型,float型必须转换型必须转换成成double型。型。 (2) 纵向向上的箭头,表纵向向上的箭头,表示不同类型的转换方向。示不同类型的转换方向。情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计 例如,例如,int型与型与double型数据进行混合运算,则先型数据进行混合运算,则先将将int型数据转换成型数据转换成double型,然后在两个同类型的数型,然后在两个同类型的数据间进行运算,结果为据间进行运算,结果为double型。型。 注意:注意:箭头方向只表示数据类型由低到高转换,不
25、要箭头方向只表示数据类型由低到高转换,不要理解为理解为int型先转换成型先转换成unsigned型,再转换成型,再转换成long型,型,最后转换成最后转换成double型。型。 除自动转换外,除自动转换外,C语言也允许强制转换。数据类型语言也允许强制转换。数据类型强制转换的一般格式为强制转换的一般格式为(要转换成的数据类型要转换成的数据类型)(被转换被转换的表达式的表达式)其中,当被转换的表达式是一个简单表达式其中,当被转换的表达式是一个简单表达式时,外面的一对原括号可以省略。时,外面的一对原括号可以省略。情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计例如:例如:(double)a
26、 /*将变量将变量a的值转换成的值转换成double型,等价于型,等价于(double)(a)*/(int)(x+y) /*将将x+y的结果转换成的结果转换成int型型*/(float)5/2 /*将将5转换成实型,再除以转换成实型,再除以2(=2.5),等价于,等价于(float)(5)/2*/(float)(5/2) /*将将5整除整除2的结果转换成实型的结果转换成实型(2.0)*/情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计练练 习习1、当运行以下程序时,在键盘上从第一列开始输入、当运行以下程序时,在键盘上从第一列开始输入9876543210 ,则程序的输出结果是:(,则程
27、序的输出结果是:( )main( ) int a; float b, c; scanf(“%2d%3f%4f”,&a,&b,&c); printf(“na=%d,b=%f,c=%fn”,a,b,c);情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计2、若变量、若变量x=5.16894;以下程序段的输出结果是:;以下程序段的输出结果是: printf(“%fn”,(int)(x*1000+0.5)/(float)1000);3、以下程序段的输出是:、以下程序段的输出是: float a=3.1415; printf( “|%6.0f | n” , a); printf( “|%10.5
28、f |n”, 12345.678); 情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计4、若有以下程序段,其输出结果是:、若有以下程序段,其输出结果是: int a=0 ,b=0, c=0; c=(a -=a-5), (a=b, b+3); printf( “%d, %d, %d”, a,b,c);情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计5、若变量已正确说明,要求语句、若变量已正确说明,要求语句scanf(“ a=%f,b=%f”,&a,&b);给给a赋值赋值3.12、给、给b赋值赋值9.0,则正确的输入形式是:则正确的输入形式是:情境情境1 1:学生成绩输入输出设计:学生成绩输入输出设计作业:作业: 1、编写程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年模具设计师资格考试长线规划试题及答案
- 电力安全用具课件
- 快速掌握游泳救生员考试试题及答案
- 医院服务礼仪培训医护礼仪培训资料课件
- 切实可行的2024年体育经纪人考试计划试题及答案
- 基础扎实的体育经纪人试题及答案
- 模具设计师的任务与职责分析试题及答案
- 2024篮球裁判员角色定位试题及答案
- 农作物种子繁育员考试中的常见误区和纠正试题及答案
- 2024年内蒙古自治区省考公务员考试结构化面试真题试题试卷答案解析
- 技术制作类科学教育活动的设计与组织指导课件
- 药事管理法律法规相关知识培训
- PQR-按ASME要求填写的焊接工艺评定报告
- 医院中央空调维保合同范本
- 劳动工伤起诉状
- 第4章-选区激光熔化工艺及材料课件
- 2023届高考写作指导:“寻找温暖”与“成为灯火”课件
- 2022年上海市工业技术学校招聘考试真题
- 临时用电演示文稿
- 部编版语文一年级下册第六单元大单元教学任务群设计
- JJG 646-2006移液器
评论
0/150
提交评论