高级语言程序设计-第04章C语言程序设计初步_第1页
高级语言程序设计-第04章C语言程序设计初步_第2页
高级语言程序设计-第04章C语言程序设计初步_第3页
高级语言程序设计-第04章C语言程序设计初步_第4页
高级语言程序设计-第04章C语言程序设计初步_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章C语言程序设计初步

一 C程序的语句二 赋值语句三 数据输出语句四 数据输入语句

一、C程序的语句C程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。C语句可分为以下五类:

1.表达式语句

2.函数调用语句

3.控制语句

4.复合语句

5.空语句1.表达式语句

表达式语句由表达式加上分号“;”组成。其一般形式为:

表达式;

执行表达式语句就是计算表达式的值。例如:

x=y+z;赋值语句。

y+z;加法运算语句,但计算结果不能保留,无实际意义。

i++;自增1语句,i值增1。

2.函数调用语句由函数名、实际参数加上分号“;”组成。其一般形式为:函数名(实际参数表);执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求出函数值(以后再详细介绍)。例如printf("CProgram");调用库函数,输出字符串。3.控制语句 控制语句用于控制程序的流程,以实现程序的各种结构方式。它们由特定的语句定义符组成。C语言有九种控制语句。可分成以下三类:(1)条件判断语句

if语句,switch语句(2)循环执行语句

dowhile语句,while语句,for语句(3)转向语句

break语句,goto语句,continue语句,return语句4.复合语句把多个语句用括号{}括起来组成的一个语句称复合语句。在程序中应把复合语句看成是单条语句.

例如

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

}

复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。5.空语句只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。例如

while(getchar()!='\n');

本语句的功能是,只要从键盘输入的字符不是回车则重新输入。这里的循环体为空语句。二、赋值语句

赋值语句是由赋值表达式再加上分号构成的表达式语句。其一般形式为:变量=表达式;

在赋值语句的使用中需要注意以下几点:

其展开之后的一般形式为:

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

例如:

a=b=c=d=e=5;

按照赋值运算符的右接合性,因此实际上等效于:

e=5;d=e;c=d;b=c;a=b;1.“=”右边的表达式可以又是一个赋值表达式,如:

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

2.注意变量赋初值和赋值语句的区别如下述说明是错误的:

inta=b=c=5;

必须写为

inta=5,b=5,c=5;

而赋值语句允许连续赋值。3.注意赋值表达式和赋值语句的区别下述语句是合法的:

if((x=y+5)>0)z=x;

下述语句是非法的:

if((x=y+5;)>0)z=x;

因为x=y+5;是语句,不能出现在表达式中。三、数据输出语句

在C语言中,所有的数据输入/输出都是由库函数完成的。因此都是函数语句。

1、printf函数

printf函数称为格式输出函数。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。

(在使用printf函数之前可以不包含stdio.h文件)

其中:格式控制字符串:格式字符串、非格式字符串格式字符串是以%开头,如“%d”、“%f”

非格式字符串在输出时原样照印。输出表列:给出各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。1)printf函数调用的一般形式

printf函数调用的一般形式为:

printf(“格式控制字符串”,输出表列)

Include<stdio.h>main(){inta=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);}本例中四次输出了a,b的值,但由于格式控制字符串不同,输出的结果也不相同。#8889#88,89#X,Y#a=88,b=892)格式字符串(1)d格式符输出十进制带符号整数(正数不输出符号)%d按实际长度输出int型数据%mdm:域宽,如数位<m,左端补空格如数位>m,输出实际位数%ld%mld输出长整型(long)数据,也可指定宽度例如:include<stdio.h> main(){inta,b;longd;a=123;b=12345;d=135790;printf("%4d,%4d\n",a,b);printf("%ld,%8ld\n",d,d);}(2)o格式符以八进制形式输出整数(long型用%lo),

将内存单元中的数值按8进制数输出。如:inta=-1;printf("%d,%o",a,a);

输出结果为:

-1,1777771111111111111111a(3)x格式符

以十六进制形式输出整数(用法同上)(4)u格式符

以十进制形式输出unsigned型整数

int型也可用%u输出

long型可用%lu输出如

unsignedinta=65535;intb=-2;printf("a=%d,%o,%x,%u\n",a,a,a,a);printf("b=%d,%o,%x,%u\n",b,b,b,b);结果为:

#a=-1,177777,ffff,65535#b=-2,177776,fffe,65534 #(5)c格式符

输出一个字符,可以指定宽度例如:c='a';printf("%3c\n",c);

#a #(6)s格式符

输出一个字符串%s%ms输出占m列,左补空格%-ms输出占m列,右补空格

%m.ns输出占m列,取字符串左端n个字符,左补空格%-m.ns输出占m列,取字符串左端n个字符,右补空格

例如:printf("%3s,%7.2s,","CHINA","CHINA");printf("%.4s,%-5.3s\n","CHINA","CHINA");

输出结果为:#CHINA,CH,CHIN,CHI #(7)f格式符

输出实数(单精度、双精度)%f输出整数部分和6位小数注意:输出的不一定全是有效数字%m.nf输出数据占m列,n位小数,左补空格%-m.nf输出数据占m列,n位小数,右补空格例如:floatx,y;x=111111.111;y=222222.222printf("%f\n",x+y); printf("%5.4f\n",x+y);

结果为:#333333.328125 #333333.3281 #(8)e格式符(9)g格式符自学

main(){inta=15;floatb=138.3576278;doublec=35648256.3645687;chard='p';printf("a=%d,%5d,%o,%x\n",a,a,a,a);printf("b=%f,%5.4f\n",b,b,b);printf("c=%f,%8.4f\n",c,c);printf("d=%c,%8c\n",d,d);}#15,15,17,f#138.357627,138.3576#35648256.364568,35648256.3645#p,p#

2、putchar函数

putchar函数其功能是在显示器上输出单个字符。其一般形式为:

putchar(字符变量)

例如:putchar('A');输出大写字母Aputchar(x);输出字符变量x的值

putchar('\n');换行对控制字符执行控制功能,不在屏幕上显示。使用本函数前必须要用文件包含命令:

#include<stdio.h>#include<stdio.h>main(){chara='B',b='o',c='k';putchar(a);putchar(b);putchar(b);putchar(c);putchar('\t');putchar(a);putchar(b);putchar('\n');putchar(b);putchar(c);}四、数据输入语句

C语言的数据输入也是由函数语句完成的。本节介绍函数scanf和getchar。

1、scanf函数

scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。(在使用scanf函数之前可以不包含stdio.h文件)其中:格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的(&a、&b)。

5671)scanf函数的一般形式

scanf函数的一般形式为:

scanf(“格式控制字符串”,地址表列);

main(){inta,b,c;printf(“inputa,b,c:\n”);/*在屏幕上输出提示*/scanf(“%d%d%d”,&a,&b,&c);/*注意&的用法!*/printf("a=%d,b=%d,c=%d",a,b,c);}由于没有非格式字符在“%d%d%d”之间作输入时的间隔,输入时用一个以上的空格或回车键作为间隔。如:

#789

或#7#8#9思考:如scanf改成:scanf(“%d,%d,%d”,&a,&b,&c);如何输入?2)格式字符串%后面所跟的字符

格式字符字符意义

d 输入十进制整数

o 输入八进制整数

x 输入十六进制整数

f或e 输入实型数(用小数形式或指数形式)c 输入单个字符

s输入字符串

3)附加格式字符串

字符说明

l用于输入长整型数如%ld、%lo、%lx、 %lu及double型数据如%lf、%leh用于输入短整型数据

m(正整数)指定输入数据所占宽度*表示本输入项在读入后不赋给相应的变量说明:1.“*”符用以表示该输入项读入后不赋予相应的变量,即跳过该输入值。如scanf("%d%*d%d",&a,&b);

当输入为:123时,把1赋予a,2被跳过,3赋予b。2.宽度用十进制整数指定输入的宽度(即字符数)。例如:

scanf("%5d",&a);

输入:12345678

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

scanf("%4d%4d",&a,&b);

输入:12345678

将把1234赋予a,而把5678赋予b。3.scanf函数中没有精度控制,如:

scanf("%5.2f",&a);

是非法的。不能企图用此语句输入小数为2位的实数。4.长度格式符为l和h,l表示输入长整型数据(如%ld)

和双精度浮点数(如%lf)。4)使用scanf函数还必须注意以下几点:

a.scanf中要求给出变量地址,如给出变量名则会出错。如scanf("%d",a);

是非法的,应改为

scanf("%d",&a);b.在输入多个数值数据时,若格式控制串中有其它字符,则在输入时就输入与这些字符相同的字符;

scanf("%d,%d",&a,&b)

应输入3,5

如没有非格式字符作输入数据之间的间隔则可用空格、TAB或回车作间隔。c.在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。例如:

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

输入为:

def

则把‘d’赋予a,空格赋予b,'e'赋予c。只有当输入为:

def

时,才能把'd'赋于a,'e'赋予b,'f'赋予c。如果在格式控制中加入空格作为间隔,如

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

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

d.在输入数据时,遇以下情况认为数据结束:遇空格、回车、TAB

遇宽度结束遇非法输入,如:

scanf("

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论