内容正文:
专题3:数据的输入与输出
《编程语言基础—C语言》课程
专题复习讲练测
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
考纲要求
一
掌握赋值语句的功能和格式,及语句中的类型转换
掌握数据输入输出函数的格式及其使用方法
掌握常用数学函数的功能及其使用方法
知识点梳理
二
知识点梳理
二
(1)概述
①作用:对一个变量进行赋值。
②功能:将一个数据存入一段连续的具有若干个存储单元的存储空间中,该存储空间有一个名字,即前面所学的“变量名”。在程序中通过变量名来使用这些存储空间,既可以通过变量名将某个数据存入,又可以通过变量名将已存入的数据读出。
③对一个变量进行定义后,这个变量如果没有赋值,那么它的值是不确定的,所以对变量进行操作之前,应该对该变量进行赋值。
1、赋值语句
知识点梳理
二
(2)赋值语句的格式与功能
①组成:赋值表达式和一个语句结束符(;)
②一般形式:变量=表达式;
③功能:先计算赋值号“=”右边表达式的值,然后将结果送给赋值号“=”左边的变量。要求“=”左边一定为变量,不能为常量或者表达式。
例1:g=9.8;
例2:g=10+20-9;
1、赋值语句
知识点梳理
二
(3)复合赋值运算符
1、赋值语句
+= -= /=
%= *= ^=
>>= <<= |=
知识点梳理
二
(4)赋值语句中的类型转换
①含义:当赋值语句(或赋值运算表达式)中“=”左边的变量与右边表达式的数据类型不一致时,C编译系统会自动实现数据类型的转换。
②转换原则:将赋值号“=”右边的表达式值的类型转换成与左边变量相同的类型后在赋值。
1、赋值语句
知识点梳理
二
(4)赋值语句中的类型转换
1、赋值语句
输出结果:a=350,c=94,x=350.000000
因为字符型在内存中仅占一个字节(8位),所以执行“c=a”之后,char型变量“c”无法装载int 型变量“a”中的数据,所以导致变量c中只能装变量a中的数值的低八位,而高位数据丢失一位。
(350)10=(1010 1111 0)2 取低八位得到(010 1111 0)2=(94)10
知识点梳理
二
(1)概述
C语言本身没有配备完整的输入/输出功能的语句,他的输入/输出功能是通过在程序中调用系统提供的标准库函数#include <stdio.h>为输入/输出库函数调用。
(2)字符输出函数putchar()
①函数putchar( )功能:把一个字符输出到显示器上。
②常用格式: putchar( c );
③其中,参数c可以是字符常量、变量或字符表达式,其功能是将参数c中的值作为ASCII码值,把该ASCII码值所对应的字符输出到显示器上。
2、数据的输出
知识点梳理
二
(2)字符输出函数putchar()
2、数据的输出
运行结果:
A
#
知识点梳理
二
(3)格式化输出函数printf()
①功能:按照指定的格式完成输出过程,向显示器输出信息。
②一般使用形式: printf (“输出格式串”,表达式表);
③其中,“输出格式串”包含格式符或非格式符。“格式符”是以“%”开头且后面跟一个字母。
2、数据的输出
知识点梳理
二
(3)格式化输出函数printf()
④printf( ) 函数的功能是凡遇格式符,就将对应的表达式的值按指定格式输出到显示器上,凡遇非格式符,则原样输出。
⑤输出格式串中的转换说明符与表达式的个数必须相同,它们按各自的先后顺序—一对应,如下图所示。
2、数据的输出
知识点梳理
二
(1)概述
数据的输入一般是以键盘为处理对象的,从键盘接收字符和数据。以一个字节的字符代码为单位来完成输入输出过程的。
(2)字符输入函数getchar()
①功能:接收从键盘上输入的字符,在程序中使用这个函数输入字符时,可以用一个变量来接收读取的字符。
②例:c=getchar( );//c为字符变量
执行上面的语句时,程序等待用户输入,当用户按下某个键时,变量c就得到了该键的代码值。
3、数据的输入
知识点梳理
二
(2)字符输入函数getchar()
③getchar( )函数只能接收一个字符,getchar( )函数得到的字符可以赋值给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。
3、数据的输入
知识点梳理
二
(3)格式化输入函数scanf()
①功能:按照指定的格式从键盘接收输入信息。
②一般格式:scanf(“格式串”,地址表 );
③使用:“格式串”中既可以含格式符,也可以含非格式符。
输入时,凡遇非格式符,要求原样输入,凡遇格式符,按指定格式输入数据。
3、数据的输入
格式符 功能说明
%c 接收一个字符型数据
%d 接收一个整数型数据,直到遇到空格、<tab>或回车符
%f 接收一个浮点型数据
知识点梳理
二
(3)格式化输入函数scanf()
④输入时,凡遇非格式符,要求原样输入,凡遇格式符,按指定格式输入数据,输入的数据存入对应地址的存储空间。
例如:scanf( “x=%d,y=%d”,&x,&y);//&x是变量x的地址,&y是变量y的地址。
⑤说明:
当scanf()函数有多个输入项时,我们在键盘输入的各项信息之间可以用空格、Tab、或回车作为分隔符。
scanf函数中的“格式控制”后面应为变量地址,而不是变量名。例: scanf(“%d,%d”,a,b);错误,必须加上&。
3、数据的输入
知识点梳理
二
(3)格式化输入函数scanf()
3、数据的输入
知识点梳理
二
(3)格式化输入函数scanf()
⑥在使用“%c”格式输入字符时,空格字符和转义字符都作为有效字符输入。
例1: scanf(“%c%c%c”,&c1,&c2,&c3); 输入:a□b□c<回车>
思考:
变量c1,c2,c3分别得到什么?
若使c1,c2,c3分别得到a,b,c应如何输入?
例2: scanf(“%d%c%f”,&a,&b,&e); 输入:1234a1230.36<回车>
思考:a,b,c分别得到什么值?
3、数据的输入
知识点梳理
二
(1)使用数学函数可以进行一些基本的数学运算。在使用数学函数之前,要求在程序开头包含头文件“math.h”。数学函数的参数类型和函数值类型均为实型。
即: #include <math.h>
4、常用数学函数
sqrt( x ) 求x的开平方根,x≥0。 log10( x ):求x的对数,以10为底,x>0。
pow( x,y ) :求 sin( x ):求x的正弦,x的单位为弧度
exp(x ):求 cos(x ): 求x的余弦,x的单位为弧度
abs(x):求x的绝对值,n为int整型数。 tan(x ): 求x的正切,x的单位为弧度
fabs(x):求x的绝对值,n为double型浮点小数。 rand():产生0~32767范围内的整数随机数
log( x ):求x的对数,以e为底,x>0。
知识点梳理
二
4、常用数学函数
知识点梳理
二
例1:从键盘输入一个3位数,然后将它反向输出。假设输入123,则输出321。
分析:根据题意,将输入的3位数(例如123)送入整型变量a中,只要将a除以10,将余数3输出,将商(整数)再除以10,再将余数2输出,最后将商1输出即可。
5、顺序结构程序设计
知识点梳理
二
例2:已知三角形的两边A、B及其夹角a,求第三边C及面积S。
分析:若𝜶值以角度值输入,则在计算前必须先将其转换成弧度,因为标准函数cos()和sin()参数必须是弧度。
5、顺序结构程序设计
真题练讲
三
【答案】C
1.(2013年湖南高考真题)单项选择题。有输入语句:scanf("a=%d,b=%d",&a,&b);为使变量a的值为1,b的值为2,正确的数据输入方式是( )
A.12↙
B.1,2↙
C.a=1,b=2↙
D.a=1 b=2↙
真题练讲
三
【答案】1
2.(2013年湖南高考真题)阅读程序,写出运行结果:_________
#include <conio.h>
#include <stdio.h>
main()
{int a=7,b=3,c=2;
int d=(a>b!=c);
printf("%d",d);
getch();
}
真题练讲
三
【答案】D
3.(2015年湖南高考真题)单项选择题。若有语句:
int a,b;scanf("%d;%d",&a,&b);如果把整数4赋给a,把整数5赋给b,应该输入( )
A.4 5
B.4,5
C.45
D. 4;5
真题练讲
三
【答案】B
4.(2023年湖南高考真题)单项选择题。若要用“scanf("%c%c",&c1,&c2)”为字符变量c1和 c2分别复制字符'A'和'B',则正确的输入是( )
A.字符'A'和'B'之间用逗号间隔
B.字符'A'和'B'之间不能有任何间隔
C.字符'A'和'B'之间可以用回车间隔
D.字符'A'和'B'之间用空格间隔
真题练讲
三
【答案】14
5.(2021年湖南高考真题)阅读程序,下列程序运行时,若输入:12345,则程序的输出结果是_________
#include <conio.h>
#include <stdio.h>
main()
{char a ,b;
scanf ("%c%*2c%c",&a,&b);
printf("%c%c
",a,b);
getch();
}
真题练讲
三
【答案】C
6.(2025年湖南高考真题)单项选择题。程序段{int a=3;printf("%d",(a&3));}的执行结果是( )
A.0
B.1
C.3
D.9
真题练讲
三
【答案】D
7.(2025年湖南高考真题)单项选择题。程序段{int x=11,y=12,z=1;printf("%d",(z==x,y));}的执行结果是( )
A.0
B.1
C.11
D.12
真题练讲
三
【答案】D
8.(2017年湖南三轮联考题)执行语句:printf(“%x”,-1);,则屏幕显示为( )
A.-1
B.1
C.-ffff
D.ffff
限时练习
四
1.(2016年湖南三轮联考题)以下程序的输出结果是:________
【答案】0.000000
void main()
{
float a;
a=1/100000000;
printf("%f",a);
getch(); }
限时练习
四
2.(2020年湖南一轮联考题)以下程序的输出结果是:________
【答案】n=4294966775
void main()
{
unsigned int n;
int i=-521;
n=i;
printf("n=%u
",n);
getch(); }
限时练习
四
3.(2016年湖南一轮联考题)以下程序的输出结果是:________
【答案】1
void main()
{
int a=5,b=-4;
printf("%d",a%b);
getch();
}
限时练习
四
4.(2018年湖南一轮联考题)以下程序的输出结果是:________
【答案】0,0,5
void main()
{
int a,b,c;
a=b=c=0;
c=(a-=a-5),(a=b,b+5);
printf("%d,%d,%d
",a,b,c);
getch(); }
限时练习
四
5.(2024年湖南三轮联考题)若有定义语句“inta=2024;”,则执行“printf("%3d",a);”输出的结果为( )
A.202
B.2024
C.20
D.编译出错
【答案】B
限时练习
四
6.(2024年湖南三轮联考题)若有定义语句“int a,b,c;”,执行“scanf("%2d%*2d%2d%3d",&a,&b,&.c);
printf("%c%c%c",a,b,c);”语句,且输入的数据为9798991011,则输出结果是( )
A.979899101
B. acd
C. ace
D.编译错误
【答案】C
限时练习
四
7.以下printf语句输出结果为3.14的是( )
A. printf("%f", 3.14);
B. printf("%d", 3.14);
C. printf("%c", 3.14);
D. printf("%s", 3.14);
【答案】A
【解析】%f是浮点型数据的格式化输出符。
限时练习
四
8.执行char ch; ch = getchar();,若输入abc并回车,ch的值是( )
A. 'a'
B. 'b'
C. 'c'
D. '
'
【答案】A
【解析】getchar每次仅读取一个字符,第一个字符为'a'。
限时练习
四
9.以下scanf语句能正确读取两个整数的是( )
A. scanf("%d%d", a, b);
B. scanf("%d %d", &a, &b);
C. scanf("%d%d", &a, b);
D. scanf("%d%d", a, &b);
【答案】B
【解析】scanf需传入变量地址,且格式控制与输入形式匹配。
限时练习
四
10.以下关于printf格式控制符的说法错误的是( )
A. %d用于输出十进制整数
B. %f用于输出浮点型数
C. %c用于输出字符
D. %s用于输出单个字符
【答案】D
【解析】%s用于输出字符串,单个字符用%c。
内容小结
五
内容小结
五
一、赋值语句
• 格式与功能:一般形式为“变量 = 表达式;”,作用是把表达式的结果赋给变量,完成数据的存储传递。
• 类型转换:当赋值号两边类型不同时,会发生自动或需要手动干预的类型转换。比如把浮点型数据赋给整型变量,可能会丢失小数部分。
二、数据的输出
• 字符输出函数putchar():用于输出单个字符,例如putchar('A');会在屏幕上显示字符A。
• 格式化输出函数printf():可按指定格式输出各种类型数据,像printf("%d %f", 123, 3.14);能输出整数123和浮点数3.14。
三、数据的输入
• 字符输入函数getchar():用于输入单个字符,如char ch = getchar();可获取用户输入的一个字符并存入ch。
• 格式化输入函数scanf():按指定格式输入数据到变量,例如scanf("%d %f", &num, &fNum);可接收用户输入的整数和浮点数,分别存入num和fNum。
四、常用数学函数
• 像求绝对值的abs()、求平方根的sqrt()、求幂的pow()等函数,使用时需要包含头文件math.h,能方便地进行数学运算。
五、顺序结构程序设计实例
• 顺序结构是程序最基本的结构,程序会按照代码书写的先后顺序依次执行。例如一个简单的计算并输出矩形面积的程序,会先输入长和宽,再计算面积,最后输出结果,每一步按顺序进行。
大鹏一日同风起,扶摇直上九万里。
——李白
$