计算机C语言程序结构和语法规则

上传人:ali****an 文档编号:110007689 上传时间:2019-10-28 格式:DOC 页数:16 大小:122KB
返回 下载 相关 举报
计算机C语言程序结构和语法规则_第1页
第1页 / 共16页
计算机C语言程序结构和语法规则_第2页
第2页 / 共16页
计算机C语言程序结构和语法规则_第3页
第3页 / 共16页
计算机C语言程序结构和语法规则_第4页
第4页 / 共16页
计算机C语言程序结构和语法规则_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《计算机C语言程序结构和语法规则》由会员分享,可在线阅读,更多相关《计算机C语言程序结构和语法规则(16页珍藏版)》请在金锄头文库上搜索。

1、16C语言C语言程序结构和语法规则一、C语言程序的基本结构下面通过几个简单的示例,介绍C语言程序的基本构成和书写格式,使读者对C语言程序有一个基本的了解。在此基础上,再进一步了解C语言程序的语法和书写规则。 【例1.1】求三个数的平均值的C语言程序。 /*功能:求三个数的平均值*/main() /* main()称为主函数*/float a,b,c,ave; /* 定义a,b,c,ave为实型数据*/a=7;b=9;c=12;ave=(a+b+c)/3; /*计算平均值*/printf(ave=%fn,ave); /* 在屏幕上输出ave的值 */程序运行结果:ave=9.333333【例1.

2、2】输出两个数中的较大值的C语言程序。/*功能:输出两个数中的较大值 */main() /*主函数*/int num1,num2,max; /*定义num1、num2、max为整型变量*/scanf(%d,%d,&num1,&num2); /*由键盘输入num1、num2的值*/printf(max=%dn,max(num1,num2); /*在屏幕上输出调用max的函数值*/*用户设计的函数max()*/int max(int x,int y) /* x和y分别取num1和num2传递的值*/if(xy) return x; /* 如果xy,将x的值返回给max */else return

3、y; /* 如果xy不成立,将y的值返回给max */程序运行情况:5,8(“”表示按回车键,以下相同)max=8在以上两个示例中,【例1.1】所示的C语言程序仅由一个main()函数构成,它相当于其他高级语言中的主程序;【例1.2】所示的C语言程序由一个main()和一个其他函数max()(用户自己设计的函数)构成,函数max()相当于其他高级语言中的子程序。由此可见,一个完整的C语言程序结构有以下两种表现形式:(1)仅由一个main()函数(又称主函数)构成,如图1-1(a)所示。(2)由一个且只能有一个main()函数和若干个其他函数结合而成,如图1-1(b)所示。其中,自定义函数由用户

4、自己设计。图1-1 C语言程序结构示意图结合以上示例,可以看出C语言程序结构有以下基本特点:(1)C语言程序是由函数(如:main函数和max函数)组成的,每一个函数完成相对独立的功能,函数是C语言程序的基本模块单元。main是函数名,函数名后面的一对圆括号“()”是用来写函数的参数的。参数可以有,也可以没有(本程序没有参数),但圆括号不能省略。(2)一个C语言程序总是从main()函数开始执行。主函数执行完毕,程序执行结束。(3)C语言编译系统区分字母大小写。C语言把大小写字母视为两个不同的字符,并规定每条语句或数据说明均以分号(;)结束。分号是语句不可缺少的组成部分。(4)主函数main(

5、)既可以放在max()函数之前,也可以放在max()函数之后。习惯上,将主函数main()放在最前面。(5)C语言程序中所调用的函数,既可以是由系统提供的库函数,也可以是由设计人员自己根据需要而设计的函数。例如,在【例1.2】中,printf()函数是C语言编译系统库函数中的一个函数,它的作用是在屏幕上按指定格式输出指定的内容;max()函数是由用户自己设计的函数,它的作用是计算两个数中的较大值。二、C语言程序的书写规则(1)C源程序是由一个主函数和若干个其它函数组成的。(2)函数名后必须有小括号,函数体放在大括号内。(3)C程序必须用小写字母书写。(4)每句的末尾加分号。(5)可以一行多句。

6、(6)可以一句多行。(7)可以在程序的任何位置加注释。一个完整的语言程序,是由一个main()函数(又称主函数)和若干个其它函数结合而成的,或仅由一个main()函数构成。例1.3 仅由main()函数构成的语言程序。main() printf(“This is a C program.n”);程序运行结果:This is a C program. 例1.4 由main()函数和1个其它函数max()构成的语言程序。int max(int x, int y) return( xy ? x : y ); main() int num1,num2;printf(“Input the first i

7、nteger number: ”);scanf(“%d”, &num1);printf(“Input the second integer number: ”);scanf(“%d”, &num2);printf(“max=%dn”, max(num1, num2);程序运行情况: Input the first integer number:6 Input the second integer number:9max=9 运算符与优先级、表达式一、运算符运算符包括下面这些类型:1、算术运算符(,*,):依次为加,减,乘,除,求余数。除最后两种是单目运算符外,其它几种都是双目运算符。前四种运算

8、较简单,不再展开叙述,最后三种运算的定义如下:Op1 op2 表示:oPlint(oP1op2)*op2,其中ina(a)表示取a的整数部分(a的小数部分总非负)。Op+ 表示 op = op +1;Op- 表示 op = op -1;2 关系运算符(,=, ,) 依次为取反,按位与,按位或,按位异或,右移位,左移位,无符号右移位5 赋值运算符() 赋值操作符,它将等号右边数据的值赋值给左边的变量。6 条件运算柠(?:)条件运算符为三目运算符,其“般格式为:ab?a:b7 扩展运算符(十, * , /= ,|,)扩展运算符都是由一个双目运算符和一个等号连在一起组成(注意它们之间不能用空格隔开)

9、,以“+”为例说明这类扩展运算符的用法:A += B; 表示A A+B 其它类似。8 其他运算符,如豆号运算符“,”,分量运算符“ ”。再如实例运算符“instanceof”,内存分配运算符“new”,强制类型转换运算符“(类型)”,方法调用运算符“()”,取数组元素运算符“ ”。比如,设t是类Thread的一个实例。分量运算符:tname 表示类的实例的调用,又叫点问,(意指通过点的操作符访问类的实例对象)二、运算符的优先级优先顺序依次为(1级最优先,余下类推)第1级: ()纪2级:+ - ! instanceof第3级:new第4级:* %第5级:+ -第6级: = =第8级:= !第9级

10、:第10级:第11级:!第12级:纪14级:?:第13级:|第15级: + - * /第16级: ! = =记住这些优先次序是困难的,个较好的方法是使用括号(),比如:ab & bc & ca 可以用括号写为 (ab) & (bc) & (ca) 这样即清晰易懂,也不易出错。三、表达式表达式是由操作数和运算符按一定的语法形式组成的符号序列。个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值。表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。表达式的类型由运算以及参与运算的操作数的类型决定,可以是简单类型,也可以是复合类型,如下面的例子所示:布尔型表达式: x&y|z;整型表达

11、式:num1十num2;http:/ int m,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);printf(%d%d%dn,m,n,p);若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 A)m=123n=456p=789B)m=123 n=456 p=789C)m=123,n=456,p=789D)123 456 789(2) 有以下程序main() int m=0256,n=256;printf(%o %on,mn,n);程序运行后的输出结果是A) 0256 0400 B) 0256 256 C) 256 400 D)

12、400 400 (3) 有以下程序main() int a=666,b=888;printf(%dn,a,b);程序运行后的输出结果是A) 错误信息 B) 666 C) 888 D) 666,888 (4) 有以下程序main( )int x=102,y=012; printf(“%2d,%2dn”,x,y); 执行后输出结果是A) 10,01 B) 02,12 C) 102,10 D) 02,10(5) 有以下程序main() int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(%d %d %3.1f %3.1fn,

13、a,c,f,x);程序运行后的输出结果是A) 1 65 1 6.5 B) 1 65 1.5 6.5C) 1 65 1.0 6.5 D) 2 65 1.5 6.5(6) 有定义语句:int x,y;, 若要通过scanf(%d,%d,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A) 11 12回车B) 11,12回车C) 11,12回车 D) 11,回车12回车(7) 设有如下程序段:int x=2002,y=2003;printf(%dn,(x,y);则以下叙述中正确的是A) 输出语句中格式说明符的个数少于输出项的个数,不能正确输出B) 运行时产生出错信息C) 输出值为2002D) 输出值为2003(8)若有以下程序段(n所赋的是八进制数)int m=32767,n=032767printf(%d,%o/n,m,n);执行后输出结果是A) 32767,32767 B) 32767,032767C) 32767,77777 D) 32767,077777(9)若有以下程序段

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 教育学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号