天天看点

C语言学习之基础语法二

数据的输入和输出

1、字符输入函数

字符输入函数(getchar函数)是从标准输入设备上输入一个字符到计算机内部。

 函数调用格式:getchar();

说明:

  1. 须包含头文件stdio.h
  2. getchar是一个无参函数
  3. 一个getchar函数只能接收一个字符,在输入时,只有在用户键入“回车键”(Enter)后,输入才执行。

2、字符输出函数

  字符输出函数(putchar)是在标准输出设备上输出一个字符。

函数调用格式:putchar(ch);

Ch是函数参数,可以是字符型或整型的常量变量或表达式

#include <stdio.h>
void main()
{
	char c1,c2;
	c1='a';c2='B';
	putchar(c1);
	putchar(c2);
	putchar(c1-32);  //先进行ASCII码值的运算再输出
	putchar(c2+32);
}
           

程序运行结果:aBAb5

#include <stdio.h>
void main()
{
	putchar(getchar());
    putchar(getchar());
}
           

运行程序,输入:abEnter

输出结果:  ab

假如采用先输入字符a,按回车,在输入字符b,按回车。会发现第二个字符b无法显示在屏幕上,换句话说,第二个字符b没有输入到机器内部。原因在于“回车”也是字符。第一次输入a后的回车,机器把它当成第二个字符了。

3、格式输入函数

格式输入函数(scanf函数)的功能是从键盘上输入数据,该数据按指定的输入格式被赋给相应的输入项。包含在头文件stdio.h中

格式:scanf(“格式控制”,输入项表);

  其中:格式控制符规定数据的输入格式,必须用双引号括起来,其内容仅仅是格式说明。输入表项则由一个或多个变量地址组成(变量地址就是在变量名前加地址符“&”),当变量地址有多个时,各变量地址之间用逗号“,”隔开

格式控制5

格式说明符由%和类型说明符组成,用于指定输入数据的类型和宽度。在%和类型说明符之间也可以有附加的格式说明符

C语言学习之基础语法二
C语言学习之基础语法二

说明:

  1. scanf函数中的格式字符前可以用一个整数指定输入数据所占的宽度。但不可以对实型数据指定小数位指定小数位的宽度。
  2. 格式说明的个数应该与输入项的个数相同
  3. 在格式控制中不能出现转义字符。如:scanf("%d\n",&a)

从键盘输入数据

 当执行scanf函数输入数据时,用户从键盘输入时,最后一定要按下Enter键,scanf函数才能接收从键盘输入的数据。

1)输入数值数据

 当从键盘输入数值数据时,输入的数值数据之间需要间隔开,具体采用何种形式间隔,应与格式控制的形式相一致。

假设有是哪个整型变量a,b,c,有输入数据:

(1)scanf("%d%d%d",&a,&b,&c);

键盘输入时可采用两种方式(假设给a赋予1,b赋予2、c赋予3)

1   2  3Enter(数之间可以用空格或制表符分隔)

或1Enter

   2Enter

  3Enter

(2)scanf("%d,%d,%d",&a,&b,&c);

键盘输入为1,2,3Enter

(3)scanf("a=%d,b=%d,c=%d",&a,&b,&c);

键盘输入则为:

a=1,b=2,c=3Enter

一句话就是scanf()中的“”下有什么就键入什么

2)指定输入数据所占宽度

 在格式字符前加入一个整数,用来指定输入数据所占的宽度

3)忽略输入数据的方法

可以在格式字符和%之间加一个*号,它的作用是跳过对应的输入数据。

int a1,a2,a3;

scanf("%d%*d%d%d",&a1,&a2,&a3);

输入数据:1  2  3  4Enter

将把1赋给a1,跳过2,把2赋给a2,把4赋给a3.

4、格式输出函数

格式输出函数(printf函数)的作用是按格式控制所指定的格式,在标准输出设备上将输出项列表中的各项输出。

printf(“格式控制”,输出项表)

格式控制

要求每个输出项都必须用一个格式说明符指定其输出格式

C语言学习之基础语法二

在%和格式字符之间可以增加附加格式说明符,用于指定输出数据宽度和输出形式

C语言学习之基础语法二
#include <stdio.h>
void main()
{
	cahr a='a'
	int b=97;
	printf("%c,%d\n",a,a);
	printf("%c,%d\n",b,b);
	printf("%s\n","CHINA");
}
           

输出结果:

a,97

a,97

CHINA

注意:%s输出一个字符串常量或一个字符数组中存放的字符串,按照%s输出字符串时,是从第一个字符开始输出,遇到字符串结束标志‘\0’为止。

若定义int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为3.5

(float)(a+b)/2+(int)x%(int)y

#include <stdio.h>
void main()
{
	int x=10,y=10;
	printf("%d%d\n",x--,--y); //109
}
           
#include <stdio.h>
void main()
{
	int x=3,y=3,z=1;
	printf("%d%d\n",(++x,y++),z+2); //33
}
           

写出下面程序输入“1 2 3”后的运行结果

#include <stdio.h>
void main()
{
	int a,c;char b;
	scanf("%d%d%d",&a,&b,&c);
	printf("a=%d,b=%c,c=%d\n",a,b,c);//a=1,b= ,c=2(b赋值为空格)
}