导航菜单
首页 » 无极荣耀加盟 » 正文

出包女王-第三讲:C言语根底之次序结构,赋值、输入输出等(带你C入门)

本文约4900字,首要讲了5类C言语根底句子根底,赋值句子,输入输出句子以及其格局。从程序流程的视点来看,程序可以分为三种根本结构,即次序结构、分支结构、循环结构。这三种根本结构可以组成一切的各种杂乱程序。本问首要讲次序结构,后边将更新其他几种结构。

带你进入C言语的国际,入门C言语,一键ghost后边将继续更新。可以保藏学习。想了解C言语根底的运算符和算术表达式(强制类型转化、运算符及其优先级、算术表达式等)请点击该处跳转阅览。

本文全干货,新手必备,感谢你的阅览,祝你学有所成,日子愉快!


一、C出包女王-第三讲:C言语根底之次序结构,赋值、输入输出等(带你C入门)言句子子根本介绍

C句子可分为以下五类:

1.表达式句子

表达式句子:表达式句子由表达式加上分号“;”组成。履行表达式句子便是核算表达式的值。

其一般方法为: 表达式; 。

例如:
x=y+z; 赋值句子;
y+z; 加法运算句子,但核算成果不能保存,无实践含义;
i++; 自增1句子,i值增1。

2.函数调用句子

函数调用句子:由函数名、实践参数加上分号“;”组成。

其一般方法为:函数名(实践参数表);

履行函数句子便是调用函数体并出包女王-第三讲:C言语根底之次序结构,赋值、输入输出等(带你C入门)把实践参数赋予函数界说中的方法参数,然后履行被调函数体中的句子,求取函数值 (在后面函数中再具体介绍) 。

例如:
printf("C Program");调用库函数,输出字符串。

3.操控句子

操控句子:操控句子用于操控程序的流程,以完结程序的各种结构方法。它们由特定的句子界说符组成。C言语有九种操控句子。可分红以下三类:

1)条件判别句子:if句子、switch句子;

2)循环履行句子:do while句子、while句子、for句子;

3)转向句子:break句子、goto句子、continue句子、return句子。

4.复合句子

复合句子:把多个句子用括号{}括起来组成的一个句子称复合句子。

在程序中应把复合句子看成是单条句子,而不是多条句子。

例如:
{
x=y+z;
a=b+c;
printf(“%d%d”,x,a);
}

复合句子内的各条句子都有必要以分号“;”完毕,在括号“}”外不能加分号。

5.空句子

空句子:只要分号“;”组成的句子称为空句子。空句子是什么也不履行的句子。在程序中空句子可用来作空循环体。

例如
while(getchar()!='\n')
{
;
}

本句子的功用是,只要从键盘输入的字符不是回车则从头输入。这儿的循环体为空句子。

二、赋值句子

赋值句子是由赋值表达式再加上出包女王-第三讲:C言语根底之次序结构,赋值、输入输出等(带你C入门)分号构成的表达式句子。

其一般方法为: 变量 = 表达式;

赋值句子的运用中需求留意以下几点:

1.因为在赋值符“=”右边的表达式也可以又是一个赋值表达式,因而,下述方法:

变量=(变量=表达式);

是建立的,然后构成嵌套的景象。其打开之后的一般方法为:

变量=变量=…=表达式;

例如:

a=b=c=d=e=5;
依照赋值运算符的右接合性,因而实践上等效于:
e=5;
d=e;
c=d;
b=c;
a=b;

2.留意在变量阐明中给变量赋初值和赋值句子的差异。

给变量赋初值是变量阐明的一部分,赋初值后的变量与这以后的其它同类变量之间仍有必要用逗号距离,而赋值句子则有必要用分号完毕。

例如:int a=5,b,c;

3.在变量阐明中,不答应接连给多个变量赋初值。

如下述阐明是过错的:
int a=b=c=5
有必要写为
int a=5,b=5,c=5;
而赋值句子答应接连赋值。

4.留意赋值表达式和赋值句子的差异。

赋值表达式是一种表达式,它可以呈现在任何答应表达式呈现的当地,而赋值句子则不能。

下述句子是合法的:
if((x=y+5)>0) z=x;
句子的功用是,若表达式x=y+5大于0则z=x。
下述句子是不合法的:
if((x=y+5;)>0) z=x;
因为x=y+5;是句子,不能呈现在表达式中。

三、数据输入输出

1.数据输入输出的概念及在C言语中的完结

1)所谓输入输出是以核算机为主体而言的。

2)本章介绍的是向规范输出设备显现器输出数据的句子。

3)在C言语中,一切的数据输入/输出都是由库函数完结的。因而都是函数句子。

4)在运用C言语库函数时,要用预编译指令#include将有关“头文件”包含到源文件中。

运用规范输入输出库函数时要用到“stdio.h”文件,因而源文件最初应有以下预编译指令:

#include< stdio.h >或#include ”stdio.h”,stdio是standard input &outupt的意思。

5)考虑到printf和scanf函数运用频频,体系答应在运用这两个函数时可不加

#include< stdio.h >或#include ”stdio.h”

2.字符数据的输入输出

(1)putchar函数(字符输出函数)

Putchar函数是字符输出函数,其功用是在显现器上输出单个字符,对操控字符履行操控功用不显现。一般方法:putchar(字符变量)

例如:
putchar(‘A’); (输出大写字母A)
putchar(x); (输出字符变量x的值)
putchar(‘\101’); (输出字符A) putchar(‘\n’); (换行)
例题:
#include
main()
{
char a='B',b='o',c='k';
putchar(a); putchar(b); putchar(b); putchar(c); putchar('\t');
putchar(a); putchar(b)出包女王-第三讲:C言语根底之次序结构,赋值、输入输出等(带你C入门);
putchar('\n');
putchar(b); putchar(c);
}

(2)getchar函数(键盘输入函数)

一般方法:getchar();一般把输入的字符赋予一个字符变量,如:

例如:
char c;
c = getchar();
例题:
#include
main()
{
char c;
printf("input a character\n");
c = getchar();
putchar(c);
}

四、printf函数(格局输出函数)

一般方法:printf(“格局操控字符串”,输出表列)。

其间格局操控字符串用于指定输出格局,由格局字符串和非格局字符串两种组成。非格局付出穿输出时原样打印。格局字符串以%最初,如:

打印方法:printf("%3.0f\t%6.1f\n",x,y);

例如:main()
{
int a=88,b=89;
printf("%d %d\n",a,b);
printf("%d,%d\n",a,b);
printf("%c,%c\n",a,b);
printf("a=%d,b=%d",a,b);
}

格局字符串

1)类型:类型字符用以表明输出数据的类型,其格局符和含义如下所示:

2)标志:标志字符为-、+、#、空格四种

- :成果左对齐,右边填空格
+:输出符号(正号或负号)
空格:输出值正时冠以空格,为负时用负号
# :对c,s,d,u类无影响;对o类,输出是加前缀0;对x类,输出是加前缀0x;对e,g,f类,当成果有小数时才给出小数点。

3)输出最小宽度:用十进制整数来表明输出最少位数。若实践位数少于界说宽度,则以空格或0补齐。

4)精度:格局符以“.”最初,后跟十进制整数。假如输出数字,则表明小数位数;假如输出字符,则表明字符的个数;若实践位大于界说位,则省去超越部分。

5)长度:格局符为h,l两种,h表明按短整型量输出,l表明按长整型两输出。

例如:main()
{
int a=15;
float b=123.1234567;
double c=12345678.1234567;
char d='p';
printf("a=%d,%5d,%o,%x\n",a,a,a,a);
printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);
printf("c=%lf,%f,%8.4lf\n",c,c,c);
printf("d=%c,%8c\n",d,d);
}

五、scanf函数(格局输入)

scanf函数称为格局输入函数,即按用户指定的格局从键盘上把数据输入到指定的变量之中。

scanf函数的一般方法为:scanf(“格局操控字符串”,地址表列);

其间,格局操控字符串的效果与printf函数相同,但不能显现非格局字符串,也便是不能显现提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。

例如:&a, &b 别离表明变量a和变量b的地址。

这个地址便是编译体系在内存中给a,b变量分配的地址。变量的值和变量的地址这两个不同的概念应差异开来,变量的地址是C编译体系分配的,变量的地址和变量值的联系如下:

在赋值表达式中给变量赋值,如:a = 567

则,a为变量名,567是变量的值,&a是变量a的地址。

但在赋值号左面是变量名,不能写地址,而scanf函数在本质上也是给变量赋值,但要求写变量的地址,如&a。这两者在方法上是不同的。&是一个取地址运算符,&a是一个表达式,其功用是求变量的地址。

例:main()
{
int a,b,c;
printf("input a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
}

1.格局字符串

格局字符串的一般方法为:%[*] [输入数据宽度] [长度] 类型

其间有方括号[]的项为任选项。各项的含义如下:

1)类型:表明输入数据的类型,其格局符和含义如下表所示。

2)“*”符:用以表明该输入项,读入后不赋予相应的变量,即越过该输入值。

如: scanf("%d %*d %d", &a, &b);

当输入为:1 2 3时,把1赋予a,2被越过,3赋予b。

3)宽度:用十进制整数指定输入的宽度(即字符数)。

如:scanf("%5d", &a);输入:12345678

只把12345赋予变量a,其余部分被截去。

如:scanf("%4d%4d", &a, &b);输入:12345678

将把1234赋予a,而把5678赋予b。

4)长度:长度格局符为l和h,l表明输入长整型数据(如%ld) 和双精度浮点数(如%lf)。h表明输入短整型数据。

2.运用scanf函数还有必要留意以下几点:

1)scanf函数中没有精度操控,如:scanf("%5.2f",&a);是不合法的。不能妄图用此句子输入小数为2位的实数。

2)scanf中要求给出变量地址,如给出变量名则会犯错。如 scanf("%d",a);是不合法的,应改为scnaf("%d",&a);才是合法的。

3)在输入多个数值数据时,若格局操控串中没有非格局字符作输入数据之间的距离则可用空格,TAB或回车作距离。C编译在碰到空格,TAB,回车或不合法数据(如对“%d”输入“12A”时,A即为不合法数据)时即以为该数据完毕。

4)在输入字符数据时,若格局操控串中无非格局字符,则以为一切输入的字符均为有用字符。

例如:scanf("%c%c%c",&a,&b,&c);输入为:d e f

则把'd'赋予a, ' '赋予b,'e'赋予c。只要当输入为:def 时,才能把'd'赋于a,'e'赋予b,'f'赋予c。

假如在格局操控中参加空格作为距离,如:scanf ("%c %c %c",&a,&b,&c);

则输入时各数据之间可加空格。

例:出包女王-第三讲:C言语根底之次序结构,赋值、输入输出等(带你C入门)main()
{
char a,b;
printf("input character a,b\n");
scanf("%c%c",&a,&b);
printf("%c%c\n",a,b);
}

5)假如格局操控串中有非格局字符则输入时也要输入该非格局字符。

例如:scanf("%d,%d,%d",&a,&b,&c);

其间用非格局符“ , ”作距离符,故输入时应为:5,6,7

又如:scanf("a=%d,b=%d,c=%d",&a,&b,&c);

则输入应为:a=5,b=6,c=7

6)如输入的数据与输出的类型不一致时,尽管编译可以经过,但成果将不正确。

例:
main()
{
int a;
printf("input a number\n");
scanf("%d",&a);
printf("%ld",a);
}
main()
{
long a;
printf("input a long integer\n");
scanf("%ld",&a);
printf("%ld",a);
}
比较一下:输入:1234567890

因为输入数据类型为整型,而输出句子的格局串中阐明为长整型,因而输出成果和输入数据不符。

二维码