Ch3-简单的C程序设计nullnullCh3 简单的C程序设计内容提要内容提要字符输入输出函数
格式输入输出函数C语言中的语句C语言中的语句变量声明语句
int x, y;
表达式语句
i++;
i = i + 1;
空语句
;
复合语句
{t = x; x = y; y = t;}
控制语句顺序结构程序的基本操作顺序结构程序的基本操作如何在程序中给变量赋值?
赋值表达式语句
赋值表达式;
Total = m * pow(1+r, n);
如何进行数据的输入输出?
输入:从标准输入设备上输入数据到计算机内存
输出:将计算机内存中的数据送到标准输出设...
nullnullCh3 简单的C程序设计内容提要内容提要字符输入输出函数
格式输入输出函数C语言中的语句C语言中的语句变量声明语句
int x, y;
达式语句
i++;
i = i + 1;
空语句
;
复合语句
{t = x; x = y; y = t;}
控制语句顺序结构程序的基本操作顺序结构程序的基本操作如何在程序中给变量赋值?
赋值表达式语句
赋值表达式;
Total = m * pow(1+r, n);
如何进行数据的输入输出?
输入:从
输入设备上输入数据到计算机内存
输出:将计算机内存中的数据送到标准输出设备
C语言中输入输出操作通过调用标准库函数来实现
#include "stdio.h"
在当前目录和TC指定的目录中找该文件
#include
在由TC指定的文件目录中找该文件复合语句复合语句在什么情况下使用复合语句?
条件语句和循环语句在语法上只允许带一条语句
当分支和循环中需要进行多项操作时{
t=x;
x=y;
y=t;
}被当作一条语句来处理例3.1例3.1main()
{
int a = 0;
{
int a = 1;
printf("In: a = %d\n", a);
}
printf("Out: a = %d\n", a);
} In: a = 1
Out: a = 0空语句空语句空语句有什么作用?
什么也不做,只表示语句的存在
自顶向下程序设计时用在那些未完成的模块中main()
{
DataInitialze();
DataProcess();
DataOutput();
}DataInitialze()
{
;
}字符输入输出函数字符输入输出函数字符输出函数
putchar(ch)
输出一个字符ch
字符输入函数
getchar()
无参数
函数值为从输入设备接收的字符例3.2#include
main()
{
char ch;
printf("Press a key and then press Enter:");
ch = getchar();
printf("You pressed ");
putchar(ch);
putchar('\n');
}Press a key and then press Enter:311A↙You pressedA例3.2格式输出函数格式输出函数格式输出函数
printf(格式控制字符串, 输出项表列);
输出若干个任意类型的数据
printf("a=%d b=%f", a, b); 函数名输
出
表
列普通字符printf格式字符d 以带符号十进制整数输出
o 以八进制无符号整数输出(无前导0)
x 以十六进制无符号整数输出(无前导0x)
u 以十进制无符号整数输出
c 以字符形式输出单个字符
s 输出一个字符串
f 以小数形式输出浮点数(6位小数)
e 以标准指数形式输出(6位小数)
g 选用%f,%e中输出宽度较小的一种格式printf格式字符printf附加格式说明符l 长整型整数,加在d、o、x、u前
L long double型数,加在f、e、g前
m 表示数据占用的最小宽度
数据宽度大于m,按实际宽度输出
数据宽度小于m时,补空格
n 对实数表示输出n位小数
对字符串表示最多输出的字符个数
- 改变输出内容的对齐方式
缺省为右对齐printf附加格式说明符例3.8#include
main()
{
float f1 = 100.15799, f2 = 12.55, f3 = 1.7;
int n1 = 123, n2 = 45, n3 = 6;
printf("printf WITHOUT width or precision
specifications:\n");
printf("%f\n%f\n%f\n", f1, f2, f3);
printf("%d\n%d\n%d\n", n1, n2, n3);
printf("printf WITH width and precision
specifications:\n");
printf("%5.2f\n%6.1f\n%3.0f\n", f1, f2, f3);
printf("%5d\n%6d\n%3d\n\n", n1, n2, n3);
}例3.8格式输入函数格式输入函数格式输入函数
scanf(格式控制字符串, 地址表列);
scanf("%d,%f”, &a,&b);格式输入函数格式输入函数常见错误
scanf("%d,%f\n”,&a,&b);
scanf("%d,%f”,a,b);
scanf("%7.2f",&a);scanf格式字符d 以带符号十进制形式输入整型数据
o 以八进制无符号形式输入(无前导0)
x 以十六进制无符号形式输入(无前导0x)
c 以字符形式输入单个字符
s 输入字符串,以非空字符开始,遇第一个
空白字符结束
f 以小数形式输入浮点数
e 以标准指数形式输入
scanf格式字符scanf附加格式说明符l 加在d、o、x、u前:输入长整型
加在f、e 前:输入双精度型
L 加在f、e 前:输入long double型
h 加在d、o、x 前:输入短整型
m 表示数据占用的宽度
* 本输入项在读入后不赋给相应的变量scanf附加格式说明符格式输入函数格式输入函数输入数据时,遇以下情况时该数据认为结束
遇空格、回车、TAB 键
遇宽度 :%3d
遇非法输入例3.9#include
main()
{
int a, b;
printf("Please input a and b:");
scanf("%2d%*2d%2d", &a, &b);
printf("a=%d, b=%d, a+b=%d\n",a,b,a+b);
}Please input a and b:a=12, b=56, a+b = 68123456↙例3.9例3.9#include
main()
{
int a, b;
printf("Please input a and b:");
scanf("%2d%*2d%2d", &a, &b);
printf("a=%d, b=%d, a+b=%d\n",a,b,a+b);
}Please input a and b:a=12, b=5, a+b = 1712345a↙例3.9输入数据的格式控制——例3.10#include
main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("a = %d, b = %d\n", a, b);
}问题1:当要求程序输出结果为
a = 12, b = 34
时,用户应该如何输入数据? 12 34↙输入数据的格式控制——例3.10输入数据的格式控制——例3.10#include
main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("a = %d, b = %d\n", a, b);
}问题2:当限定用户输入数据以逗号为分隔符,即输入数据格式为: 12, 34↙
时,应修改程序中的哪条语句?怎样修改? scanf("%d,%d", &a, &b); 输入数据的格式控制——例3.10输入数据的格式控制——例3.10#include
main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("a = %d, b = %d\n", a, b);
}问题3:语句scanf("%d %d", &a, &b);修改为scanf("a = %d, b = %d", &a, &b);
时,用户应该如何输入数据?a = 12, b = 34↙输入数据的格式控制——例3.10输入数据的格式控制——例3.10#include
main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("a = %d, b = %d\n", a, b);
} 问题4:限定用户输入数据为以下格式为
1234↙
同时要求程序输出结果为a = 12, b = 34scanf("%2d%2d", &a, &b); 输入数据的格式控制——例3.10输入数据的格式控制——例3.10#include
main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("a = %d, b = %d\n", a, b);
} 问题5:限定用户输入数据为以下格式为
12↙
34↙
同时要求程序输出结果为a = "12", b = "34"scanf("%d%d", &a, &b);
printf("a = \"%d\", b = \"%d\"\n", a, b);输入数据的格式控制——例3.10输入数据的格式控制——例3.10#include
main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("a = %d, b = %d\n", a, b);
}问题6:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入scanf("%d%*c%d", &a, &b); 输入数据的格式控制——例3.10C格式符存在的问题及其解决—例3.11#include
main()
{
int data1, data2, sum;
char op;
printf("Please enter the expression
data1 + data2\n");
scanf("%d%c%d",&data1, &op, &data2);
printf("%d%c%d = %d\n",
data1, op, data2, data1+data2);
}Please enter the expression data1 + data2 第1次测试12 + 3↙12 3129 = 3141 C格式符存在的问题及其解决—例3.11C格式符存在的问题及其解决—例3.11#include
main()
{
int data1, data2, sum;
char op;
printf("Please enter the expression
data1 + data2\n");
scanf("%d%c%d",&data1, &op, &data2);
printf("%d%c%d = %d\n",
data1, op, data2, data1+data2);
}Please enter the expression data1 + data2 第2次测试12 3↙12 3 = 15 C格式符存在的问题及其解决—例3.11C格式符存在的问题及其解决—例3.11#include
main()
{
int data1, data2, sum;
char op;
printf("Please enter the expression
data1 + data2\n");
scanf("%d%c%d",&data1, &op, &data2);
printf("%d%c%d = %d\n",
data1, op, data2, data1+data2);
}Please enter the expression data1 + data2 第3次测试12+3↙12+3 = 15 C格式符存在的问题及其解决—例3.11C格式符存在的问题及其解决—例3.12#include
main()
{
int a;
char b;
float c;
printf("Please input an integer:");
scanf("%d", &a);
printf("integer: %d\n", a);
printf("Please input a character:");
scanf("%c", &b);
printf("character: %c\n", b);
printf("Please input a float number:");
scanf("%f", &c);
printf("float: %f\n", c);
}Please input an integer:希望得到的运行结果12↙Please input an character :a↙Please input a float number:3.5↙integer:12character :afloat number:3.500000C格式符存在的问题及其解决—例3.12C格式符存在的问题及其解决—例3.12#include
main()
{
int a;
char b;
float c;
printf("Please input an integer:");
scanf("%d", &a);
printf("integer: %d\n", a);
printf("Please input a character:");
scanf("%c", &b);
printf("character: %c\n", b);
printf("Please input a float number:");
scanf("%f", &c);
printf("float: %f\n", c);
}Please input an integer:结果好像很奇怪嘛!12↙Please input an character :a↙Please input a float number:3.5↙integer:12float number:3.500000C格式符存在的问题及其解决—例3.12C格式符存在的问题及其解决—例3.12#include
main()
{
int a;
char b;
float c;
printf("Please input an integer:");
scanf("%d", &a);
printf("integer: %d\n", a);
printf("Please input a character:");
scanf("%1s", &b);
printf("character: %c\n", b);
printf("Please input a float number:");
scanf("%f", &c);
printf("float: %f\n", c);
}Please input an integer:程序修改后得到的运行结果12↙Please input an character :a↙Please input a float number:3.5↙integer:12character :afloat number:3.500000C格式符存在的问题及其解决—例3.12再回头来看例3.10,想以任意分割符输入加法算式,可能吗?#include
main()
{
int data1, data2, sum;
char op;
printf("Please enter the expression
data1 + data2\n");
scanf("%d%1s%d",&data1, &op, &data2);
printf("%d%c%d = %d\n",
data1, op, data2, data1+data2);
}12+3↙12 + 3↙12↙
+↙
3↙再回头来看例3.10,想以任意分割符输入加法算式,可能吗?本章回顾本章回顾字符输入函数getchar()
字符输出函数putchar()
格式输入函数scanf()
格式输出函数printf()
格式控制问题——难点
本文档为【Ch3-简单的C程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。