顺序结构

C++程序的基本结构有顺序结构、选择结构和循环结构。
每条语句按自上而下的顺序依次执行一次,这种自上而下依次执行的程序称为顺序结构程序。
C++中常用的顺序执行语句有3种:赋值语句、cin输入语句和cout输出语句。

一、赋值语句
赋值语句用于给变量提供数据,它是程序中使用最多语句之一。
赋值语句是由赋值表达式加上一个分号构成,其一般形式为:变量=表达式;

需注意以下几点:
1、在赋值符“=”右边的表达式也可以是一个赋值表达式,因此,下述形式“变量=(变量=表达式);”是成立的,从而形成嵌套的情形。其展开之后的一般形式为:变量=变量= … =表达式;
例如:a=b=c=d=e=5;
按照赋值运算符的右结合性,实际上等效于:e=5;d=e;c=d;b=c;a=b;

2、在进行赋值运算时,如果赋值运算符两边的数据类型不同,系统将会自动进行类型转换,即将赋值运算符右边的数据类型转换成左边的变量类型。当边的是整型而右边是实型时,将去掉小数部分并截取该整型对应的有效位数。

3、在变量说明中给变量赋初值和赋值语句的区别:给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其他同类变量之间必须用逗号间隔,而赋值语句必须用分号结尾。
在变量说明中,不允许连续给多个变量赋初值。如下述说明是错误的:int a=b=c=5;
必须写为:int a=5,b=5,c=5;而赋值语句允许连续赋值。

4、赋值语句与赋值表达式的区别:赋值表达式可以包含在其他表达式中,而赋值语句不可。
如:if ((a=b)>0) t=a;
不可写为:if ((a=b;)>0) t=a;

例1:分析执行如下程序后x、y、z的值。
#include<iostream>
using namespace std;
int main()
{ int x,y,z;
  x=(y=4)+(z=8);
  return 0;
}
分析:先将y赋值为4,z赋值为8,再计算表达式的值为12,将其赋给x。

例2:输入两个正整数a和b,试交换a、b的值(使a的值等于b,b的值等于a)
#include<iostream>
using namespace std;
int main()
{ int x,y,z;
  cout<<"Input x,y=";
  cin>>x>>y;
  z=x;x=y;y=z;
  cout<<"x="<<x<<"y="<<y<<endl;
  return 0;
}

二、cin输入语句
cin是由c和in两个单词组成的,代表C++的输入流,它们是在头文件iostream中定义的。
标准输入流cin是从标准输入设备键盘向内存流动的数据流。

格式1:cin>>变量;
功能:从键盘读取一个数据并将其赋值给变量;
说明:在使用cin输入的时候必须考虑后面的变量类型;如果你要求输入一个整数,在>>后面必须跟一个整型变量;如果要求一个字符,后面必须跟一个字符型变量。

格式2:cin>>变量1>>变量2>>变量3…;
说明:从键盘输入的数据的个数、类型与变量要一致;从键盘读取数据时,各数据之间要有分隔符,分隔符可以是一个或多个空格键、回车键等。

三、cout输出语句
标准输出流cout是从内存流向标准输出设备显示器。
格式1:cout<<表达式;
功能:把表达式的值输出到屏幕上,该表达式可以是各种基本类型的常量、变量或者由它们组成的表达式。输出时,程序根据表达式的类型和数值大小,采用不同的默认格式输出,大多数情况下可满足要求。若要输出多个数据,可以连续使用流插入运算符<<。

格式2:cin<<表达式1<<表达式2<<表达式3…;
功能:将变量式的内容一项接一项的输出到屏幕上。

注意:
1、输出字符串和输出变量的区别
当我输出字符串常量的时假,必须用双引号把字符串引起来,以便将它和变量名明显的区分开来。
下面两个语句是不同的:
cout<<"hello";  //输出字符串hello到屏幕上
cout<<hello;    //将变量hello中存储的内容输出到屏幕上

2、如何增强程序的可读性
在输出多个数据时可以通过插入空格符、换行符或其它提示信息将数据进行组织,以增强可读性。
如:
x=12
cout<<"he is "<<x<<" years old."  //注意x左右两边的字符串都留有空格

3、换行符的使用
cout不会自动在其输出内容的末尾加换行符,如果我们调用两次cout,两个句子是输出在同一行中的。
C++中换行符有两种写法:
样例一:
cout<<"First sentence.\n";
cout<<"Second sentence.\nThird sentence.";
将会产生如下输出:
First sentence.
Second sentence.
Third sentence.
样例二:
cout<<"First sentence."<<endl;
cout<<"Second sentence."<<endl;
将会输出:
First sentence.
Second sentence.

例3:求一位同学语、数、英三门功课的总分和平均分。
#include<iostream>
using namespace std;
int main()
{ float x,y,z,s,a;
  cin>>x>>y>>z;
  s=x+y+z;
  a=s/3;
  cout<<"s="<<s<<endl<<"a="<<a<<endl;
  return 0;
}

 

C语言版

C语言本身不提供输入输出语句,输入输出操作是由函数来实现的。在C的标准函数库中提供了一些输入输出函数。例如,printf函数和

scanf函数。在使用标准I/O库函数时,要用预编译命令“#include”将“cstdio”文件包括到用户源文件中。即 #include<cstdio>

stdio是standard input & output的缩写,它包含了与标准I/O库有关的变量定义和宏定义。

这里介绍几个最基本的输出输入函数,它们都以终端(即系统隐含指定的输出设备)为对象。

一、putchar函数(字符输出函数)

putchar函数的作用是向终端输出一个字符,例如
putchar(c);
输出字符变量c的值。c可以是字符型变量或整型变量。
例如:
#include<cstdio>
char a,b,c;
main()
{
   a='B';b='O';c='Y';
   putchar(a); putchar(b); putchar(c);
   return 0;
 }
运行结果:
BOY

也可以输出控制字符,如putchar('\n')输出一个换行符。如果将程序最后一行改为
putchar(a); putchar('\n'); putchar(b); putchar('\n'); putchar(c); putchar('\n');
则运行结果为:
B
O
Y

也可以输出其它转义字符,如:
putchar('\101')          (输出字符’A’)
putchar('\'')              (输出单引号字符’)

二、printf函数(格式输出函数)

printf函数的作用是向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据(putchar只能输出字符,而且只能是一个字符,

而printf可以输出多个数据,且为任意类型)。

1、printf函数的一般格式为
printf(格式控制,输出表列)
“格式控制”是用双引号括起来的字符串,也称“转换控制字符串”,它包含两种信息:

(1).格式说明,由“%”和格式字符组成,如%d,%f等,它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开

始的。
(2).普通字符,即需要原样输出的字符。
“输出表列”是需要输出的一些数据,可以是表达式。
例如:

printf("%d %d",a,b);
                |  |      |
      格式说明 输出表列

printf("a=%d b=%d",a,b);
                 |    |           |
            格式说明  输出表列

在上面双引号中的字符除了“%d”和“%d”以外,还有非格式说明的普通字符,它们按原样输出。如果a,b的值分别为3、4,则输出为
a=3 b=4

由于printf是函数,因此,“格式控制”字符串和“输出表列”实际上都是函数的参数。可以表示为
printf(参数1,参数2,参数3,......,参数n)
printf函数的功能是将参数2-参数n按参数1给定的格式输出。

2、格式字符
对不同类型的数据用不同的格式字符。有以下几种格式字符:
(1).d格式字符。用来输出十进制整数。有以下几种格式字符:
A %d,按整型数据的实际长度输出。
B %md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
例如:
printf("%4d,%4d",a,b);
若a=123,d=12345,则运行结果为:
_123,12345
C %lld,输出长整型数据。
例如:
long long a=135790;
printf("%lld",a);

(2).o格式符,以8进制数形式输出整数。由于是将内存单元中的各位的值(0或1)按八进制形式输出,因此输出的数值不带符号,即将

符号位也一起作为八进制数的一部分输出。
例如,
int  a=-1
printf("%d,%o",a,a);
运行结果:
-1,37777777777

(2).x格式符,以16进制数形式输出整数。同样不会出现负的十六进制数。
例如:
int  a=-1;
printf("%d,%x",a,a);;
运行结果:
-1,ffffffff

(3).c格式符,用来输出一个字符。如:
char c='a';
printf("%c",c);
输出字符'a',请注意:"%c"中的c是格式符,逗号右边的c是变量名,不要搞混。
一个整数,只要它的值在0-255范围内,也可以用字符形式输出,在输出前,将该整数转换成相应的ASCII字符;反之,一个字符数据也

可以用整数形式输出。

(4).s格式符,用来输出一个字符串。有几种用法:
A %s
例如:
printf("%s","CHINA");
输出"CHINA"字符串(不包括双引号)
B %ms,输出的字符串占m列,如字符串本身长度大于m,则突破m的限制,将字符串全部输出。或串长小于m,则左补空格。
C %-ms,如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
D %m.ns,输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
E %-m.ns,其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则m自动取n值,即保证n个字符正常输出。
例如:
printf("%.4s","CHINA");
运行结果:
CHIN
"%.4s"只指定了n,没指定m,自动使m=n=4,故占4列。

(5).f格式符,用来输出实数,以小数形式输出。有以下几种用法:
A %f,不指定字段宽度,由系统自动指定,使整数部分全部如数输出,并输出6位小数。
B %m.nf 指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。
C %-m.nf 与 %m.nf 基本相同,只是使输出的数值向左端靠,右端补空格。

(6).e格式符,以指数形式输出害数。可用以下形式:
A %e,不指定输出数据所占和宽度和数字部分小数位数,由系统自动指定给出6位小数,指数部分占5位(如e+002),其中“e”占一位

,指数符号占一位,指数占3位。数值按标准化指数形式输出(即小数点前必须有而且只有一位非零数字)。
例如:
printf("%e",123.456);
运行结果:
1.234560e+002
也就是说用%e格式输出的实数共占13列宽度。
B %m.ne和%-m.ne m、n和'-'字符含义与前相同。此处n指数据的数字部分(又称尾数)的小数位数。若f=123.456,则
printf("%.2e",f)
运行结果:
1.23e+002

(7).g格式符,用来输出实数,它根据数据的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的零。若

f=123.456,则
printf("%f %e %g",f,f,f);
运行结果:
123.456000 1.234560e+002 123.456
用%f格式输出占10列,用%e格式输出占13列,用%g格式时,自动从上面两种格式中选择短者(现为%f格式更短),故占10列,且按%f格

式用小数形式输出,最后三个小数位“0”为无意义的0,不输出。

补充说明:如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,例如:
printf("%f%%",1.0/3);
运行结果:
0.333333%

三、getchar函数(字符输入函数)

此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。getchar函数没有参数,其一般形式为:getchar()
函数值就是从输入设备得到的字符。例如:

#include<cstdio>
char c;
main()
{
   c=getchar();
   putchar(c);
   return 0;
 }
在运行时,如果从键盘输入字符'a',则输出的值为'a'。

请注意,getchar()只能接收一个字符。getchar函数得到的字符可以赋给一个字符变量或整形变量,也可以不赋给任何变量,作为表达

式的一部分。上例可改为:

#include<cstdio>
char c;
main()
{
   putchar(getchar());
   return 0;
 }

四、scanf函数(格式输入函数)
getchar函数只能用来输入一个字符,scanf函数可以用来输入任何类型的多个数据。

1、一般形式
scanf(格式控制,地址表列)
“格式控制”的含义同printf函数,“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。例如:

#include<cstdio>
int a,b;
main()
{
   scanf("%d%d",&a,&b);
   return 0;
 }

&a中的“&”是“地址运算符”,&a指a在内存中的地址。
输入数据时,在两个数据之间以一个或多个空格间隔,也可以用回车键。注意,不能用逗号作两个数据间的分隔符。

2、格式说明
和printf函数中的格式说明相似,以%开始,以一个格式字符结束,中间可以插入附加的字符。

说明:
(1).可以指定输入数据所占列数,系统自动按它截取所需数据。例如:
scanf("%3d%3d",&a,&b);
输入 123456
系统自动将123赋给a,456赋给b。也可用于字符型
scanf("%3d%3d",&a,&b);
输入 123456
系统将第一个字符赋给a,第四个字符赋给b。
(2).%后的‘*’附加说明符,用来表示跳过它相应的数据。例如:
scanf("%c%*2c%c",&a,&b);
如果输入 1234 系统将1赋给a,4赋给b,中间的“23”被跳过不赋给任何变量。在利用现成的一批数据时,有时不需要其中某些数据,

可以用此法“跳过”它们。
(3).输入数据时不能规定精度,例如:
scanf("%7.2f",&a);
是不合法的。
(4).如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。例如:
scanf("%d,%d",&a,&b);
输入时应用如下形式:
3,4
如果是 scanf("%d  %d",&a,&b);
输入时两个数据间应空二个或更多的空格字符。
如果是 scanf("a=%d,b=%d,c=%d",&a,&b,&c);
输入应用以下形式:
a=12,b=24,c=36
这种形式为了使用户输入数据时添加必要的信息以帮助理解,不易发生输入数据的错误。
(5).在输入数据时,遇以下情况时该数据认为结束:
A 遇空格,或按回车键
B 遇宽度结束,如“%3d”,只取3列
C 遇非法输入,例如:
scanf("%d%c%f",&a,&b,&c)
若输入 1234a123o.26
则a=1234;b='a';c=123

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值