《C语言程序设计与实验指导》-3_第1页
《C语言程序设计与实验指导》-3_第2页
《C语言程序设计与实验指导》-3_第3页
《C语言程序设计与实验指导》-3_第4页
《C语言程序设计与实验指导》-3_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

本章目录3.1C语句概述3.2数据的输入输出格式3.3字符数据输入输出3.4程序举例3.1C语句概述C语言的语句是C源程序的重要组成部分,用来向计算机系统发出操作指令。一个实际的程序应当包含若干语句。C语言的语句可以分为以下五大类。(1)表达式语句:一个表达式后面加一个分号就构成了一个表达式语句。例如:sum=a+b;/*赋值表达式加分号构成赋值语句*/x=1,y=2;/*逗号表达式加分号构成逗号表达式语句*/(2)函数调用语句:函数调用语句由一个函数调用加一个分号构成。例如:printf("ThisisaCprogram.");其中printf是C语言标准输出函数3.1C语句概述(3)空语句:只有一个分号(;)的语句称为空语句,空语句在语法上占一个语句位置,但它什么也不做。它经常被用作循环语句中的循环体(循环体是空语句,表示循环体什么也不做。)例如:for(i=0;i<=1000;i++);(4)复合语句:用花括号{}将多个语句组合在一起称为复合语句,又称为语句块(block)。例如:

{ t=a;a=b;b=t;}3.1C语句概述(5)控制语句:控制程序执行顺序,实现基本结构的语句,有下面九种:①if-else语句 (条件语句)②switch语句 (多分支选择语句)③for语句 (循环语句)④while语句 (循环语句)⑤do-while语句 (循环语句)⑥continue语句 (结束本次循环语句)⑦break语句 (终止执行循环语句或switch语句)⑧goto语句 (转向语句)⑨return语句 (函数返回值语句)3.2数据的输入输出格式C语言本身不提供输入输出语句,而是由C语言标准函数库中的输入输出函数来实现的。C语言标准函数库中包含的常用输入输出函数有:格式输出函数printf()、格式输入函数scanf()、单个字符输出函数putchar()、单个字符输入函数getchar()等。使用标准输入输出库函数时,要用预编译命令“#include”将有关头文件“stdio.h”包括到用户的源文件当中。即:

#include<stdio.h>

或#include“stdio.h”stdio是standinput&output的缩写,它包含了与标准I/O库有关的变量定义和宏定义以及对函数的声明。3.2.1printf函数printf函数的功能是向终端输出一个或多个任意类型的数据。一般格式是:printf(“格式控制”,输出列表)如:printf(“a=%d,b=%c\n”,a,b)1.格式控制格式控制制也称“控制字符串”,是由双引号括起来指定串。它由格式说明、控制字符和普通字符三部分组成。(1)格式说明由“%”字符开始后面跟有各种格式字符。以说明输出数据的类型、形式、长度、小数位数等格式。3.2.1printf函数

表3.1常用printf函数格式说明及应用举例3.2.1printf函数

3.1常用printf函数格式说明及应用举例(续)3.2.1printf函数(2)控制字符(也称转义字符)常用控制字符如下表所示。表3.2常用控制字符3.2.1printf函数

(3)普通字符除格式说明和控制字符之外,其他字符均属普通字符,打印时按原样输出。例如:

inta=3,b=4;printf(“a=%d,b=%d\n”,a,b);

其中“a=”、“b=”

和“,”都是普通字符。输出结果是:

a=3,b=4如果格式控制里面只有普通字符,并且没有后面的输出列表,那么输出结果即是按照双引号里的普通字符原样输出。3.2.1printf函数2.输出列表输出列表就是程序需要输出的各数据,可以是常量、变量或者表达式,它们之间要用逗号分隔,以上printf("a=%d,b=%d\n",a,b);语句中的a,b就是输出列表。表达式可以由变量组成,也可以由常量组成。3.2.1printf函数3.附加说明符在格式说明中,为了满足用户的高级需求,可以在%与格式字符之间插入集中附加说明符。表3.3附加说明符意义3.2.1printf函数

表3.4各种输出格式下的输出结果3.2.1printf函数

表3.4各种输出格式下的输出结果3.2.1printf函数4.使用printf函数时的注意事项

(1)格式控制中必须含有与输出项一一对应的输出格式说明,类型必须匹配。若格式说明与输出项的类型不一一对应匹配,则不能正确输出,且编译时不会报错。若格式说明个数少于输出项个数,则多余的输出项不予输出;若格式说明个数多于输出项个数,则将输出一些毫无意义的乱码。(2)如果要输出%符号,则可以在格式控制中用%%表示。例如:printf("%.2f%%\n",12.5);则输出结果为12.50%。(3)printf函数的输出格式为自由格式,是否在两个数之间留逗号、空格或回车等,完全取决于格式控制。例如:k值为1234,f值为123.456,则printf("%d%f\n",k,f);输出结果为:1234123.456000,无法分辨数字的含义。3.2.2scanf函数

格式输入函数scanf的功能是从键盘向程序中的变量输入一个或若干个任意类型的数据。一般格式为:

scanf(“格式控制”,地址列表)如:scanf(“%d,%d\n”,&a,&b);1.格式控制格式控制与printf基本相同,由格式说明、附加说明字符和普通字符三部分组成。其中的格式说明,也与printf函数的格式说明类似,以“%”字符开始,以一个格式字符结束,中间可以插入附加说明符。在格式控制字符串中若有普通字符,则从键盘输入时要原样输入。3.2.2scanf函数

表3.5scanf函数格式字符及作用3.2.2scanf函数

表3.6scanf函数附加格式说明符及作用3.2.2scanf函数2.地址列表用逗号分隔的若干接收输入数据的变量地址。变量地址由地址运算符“&”后跟变量名组成,变量地址间用逗号隔开。如:#include<stdio.h>voidmain(){inta,b,c;

scanf(“%d%d%d”,&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);}运行时按以下方式输入a,b,c的值:3ㄩ4ㄩ5↙(输入a,b,c的值,用空格间隔)a=3,b=4,c=5(输出a,b,c的值)注:输入数据时,在两个数据之间以一个或多个空格间隔,也可以用Enter键、Tab键分隔,不能用逗号作为两个数据的分隔符。下面输入均为合法:①3ㄩ4ㄩ5↙②3↙45↙③3(按Tab键)4↙5↙如下面的输入不合法:3,4,5↙3.2.2scanf函数3.使用scanf函数时应注意的问题(1)地址列表中的各个参数都是变量地址,而不是变量名。(2)若格式控制字符串中除了格式说明以外还有其他普通字符,则输入数据时应在对应位置输入与这些字符相同的字符。(3)在输入数据时,遇到下列情况,输入数据认为结束:遇空格或按“回车”或“跳格”(Tab)键或遇非法输入时。(4)在输入数据时,遇到指定的宽度时数据输入结束,如“%3d”,则只取3列;(5)长度格式符为l和h,l表示输入长整型数据(%ld)和双精度实数(%lf),h表示输入短整型数据。如果要输入double型的数据必须要使用%lf或%e。如果a,b为double型变量,则用scanf输入a,b的值时,输入时要使用%lf。(6)对于实型数据,使用scanf函数输入时不能规定其精度。(7)在用“%c”格式输入字符时,空格字符、回车符和控制字符都将作为有效的字符输入。(8)如果在%后有一个“*”附加说明符,表示跳过它指定的列数。3.3字符数据输入输出—3.3.1putchar函数功能:向终端(显示器)输出一个字符,一般格式为:

putchar(c);

其中c可以是字符型或整型的常量、变量或表达式。如果c是字符型,则输出相应字符,如果c为整型,则输出ASCII码值等于参数c的字符。举例:

putchar(“a”)/*输出结果为:a*/putchar(97)/*输出结果为:a*/用putchar()函数也可以输出屏幕控制字符,如putchar(‘\n’)的作用式输出一个换行符,使输出的当前位置移到下一行的开头。putchar()函数还可输出转义字符。例如:

putchar(‘\101’);/*输出结果为字母:a*/putchar(‘\\’’);/*输出结果为单引号:’

*/putchar(‘\\”’);/*输出结果为双引号:”

*/3.3.2getchar函数功能:从键盘(或系统默认的输入设备)输入一个字符,一般格式为:

ch=getchar();例如:

charx;x=getchar();putchar(x);

运行结果:

A↙(通过键盘输入’A’,按回车键)

A(输出变量x的值’A’)使用getchar函数时应注意一下问题:(1)getchar()函数没有参数。(2)该函数只能接收一个字符。(3)使用函数前需加上文件包含命令:#include<stdio.h>。例3.1设有以下程序:#include<stdio.h>voidmain(){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}3.4程序举例3.4程序举例若运行时从键盘输入数据:abc<回车>defg<回车>,则输出结果是()。A)abcdB)abdeC)abefD)abfg【解析】:本题中,将a赋给c1,b赋给c2,c赋给c3,将回车符赋给c4,将d赋给c5,将e赋给c6。因此,本题的输出结果是abde。3.4程序举例例3.2编写程序,输入某位同学3门课的成绩,计算该生的总分及平均成绩。保留平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。#include<stdio.h>voidmain(){ ints1,s2,s3,sum=0, floatave; printf("请输入3整数个成绩:"); scanf("%d,%d,%d",&s1,&s2,&s3);

sum=s1+s2+s3; ave=sum/3.0; printf("总和=%d,平均值=%.1f\n",sum,ave)}程序运行情况:请输入3整数个成绩

温馨提示

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

评论

0/150

提交评论