【C语言基础】赋值、输入与输出

1 语句及赋值语句

1.1 C语句分类

  • 表达式语句:表达式加分号。
  • 函数调用语句:函数名及其参数加上分号。如:printf("Hello world!");
  • 空语句:只有分号";"组成。
  • 控制语句
    • 条件判断语句:if语句,switch语句
    • 循环语句:while语句,do while语句,for语句
    • 转向语句:break语句,continue语句,goto语句,return语句
  • 复合语句:将多个语句用大括号{}括起来组成的语句。在程序中,应把复合语句看成是单条语句。括号}外不能加分号。

注:

  • 分号预示一条语句的结束,但并不是每条语句都需要分号作为结束标志。
  • if语句、for语句和while语句不需要分号。
  • 复合语句是唯一不用分号结尾的语句。

1.2 赋值语句

赋值表达式加分号所构成的表达式语句。

以下是错误的:

int a=b=c=10;

以下是正确的:

int a=10, b=10, c=10;
int a,b,c;
a=b=c=10;

2 字符及字符串的输入与输出

函数在头文件“stdio.h”中定义。

  • 字符输入函数:getchar。只能接收一个字符,得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,还可以作为表达式的一部分。如:putchar(getchar());
  • 字符输出函数:putchar。只能输出一个字符。输出的字符可以是字符型变量、整型变量或使用常量。
  • 字符串输入函数:gets
  • 字符串输出函数:puts

例1-getchar/putchar:

include <stdio.h>
main()
{
	printf("1 -->\n");
	putchar('A');
	putchar('\101');
	putchar('\n');

	printf("2 -->\n");
	char a, b, c;
	a = 'y';
	b = 'e';
	c = 's';
	putchar(a);
	putchar(b);
	putchar(c);
	putchar('\n');

	printf("3 -->\n");
	char m, n;
	m = getchar();
	n = getchar();
	putchar('\n');
	putchar(m);
	putchar(n);
	putchar('\n');
}

运行结果为:

例2-gets/puts:

#include <stdio.h>
main()
{
	char k[20];
	puts("Please input a string:");
	gets(k);
	puts("The input string is:");
	puts(k);    //等价于printf("%s\n", k)
}

运行结果为:

3 格式输入函数与输出函数

函数在头文件“stdio.h”中定义。

3.1 格式输出函数:printf

调用形式:printf(格式控制,输出表列)

如:

printf("%d, %d", a, b);
printf函数格式字符
格式字符功能
d,i

以有符号的十进制形式输出整数。

用法:

- %d:按整型数据的实际长度输出。

- %md:若数据位数小于指定输出宽度m,则左端补以空格;若大于m,则按实际位数输出。

- %1d:输出长整型数据。

u以无符号的十进制形式输出整数
o以八进制无符号形式输出整数。用法与%d类似。
x,X以十六进制无符号形式输出整数。x表示小写输出,X表示大写输出。用法与%d类似。
c以字符形式输出,只输出一个字符。
s

以字符串形式输出。

用法:

- %s:将字符串按实际长度输出。

- %ms:若字符串长度小于指定输出列数m,则左端补以空格;若大于m,则输出字符串全部。

- %-ms:若字符串长度小于指定输出列数m,则右端补以空格;若大于m,则输出字符串全部。

- %m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格(即右对齐)。m小于n时,m自动取n值。

- %-m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的左侧,右补空格(即左对齐)。m小于n时,m自动取n值。

f以小数形式输出
e,E

以指数形式输出。用e时,指数以e表示;用E时,指数以E表示。

用法:

- %e:按数据实际宽度和小数位数输出。

- %m.ne:输出的数据占m列,其中有n位小数。若数值长度小于m,则左端补空格。

- %-m.ne:输出的数据占m列,其中有n位小数。若数值长度小于m,则右端补空格。

注:指数符号"+"也算一位。

g,G根据数字的大小,自动选%f或%e格式输出,选用%f和%e中输出宽度较短的一种格式,不输出无意义的0。若以%e格式输出,则指数以大写表示。

3.2 格式输入函数:scanf

调用形式:scanf(格式控制,地址列表)

格式控制的一般形式:%[*][域宽][长度]类型

如:

scanf("%d, %d", &a, &b);
  • 地址列表中给出各变量的地址,地址是由地址运算符"&"后跟变量名所组成。
  • 用户在输入时,必须按照格式控制中的形式输入数据。如果格式控制中出现%d%d即两个%d之间无任何符号,则输入的两个数据之间可以一个或多个空白字符作为间隔,这些空白字符包括空格、换行、制表符(tab)。
  • 格式控制的一般形式中的“*”,是用来表示该输入项读入后不赋予的变量,即跳过该输入值。如:scanf("%d %*d %d", &a, &b); 当输入98 234 77时,98被赋值给a,77被赋值给b,234被跳过。
  • 格式控制的一般形式中的域宽应为正整数。如果输入的数据的宽度大于域宽,则只将相应域宽的数据赋值给变量。如:scanf("%5d", &a); 当输入12345678时,只把12345赋给变量a。
  • 格式控制的一般形式中的长度格式符为l和h,l表示输入长整型数据和双精度浮点数;h表示输入短整型数据。

scanf函数格式字符也printf函数的格式字符类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值