当前位置:文档之家› C语言讲稿

C语言讲稿

C语言讲稿
C语言讲稿

第1章 C 程序概述

人与计算机交换信息是要用语言来交流的,这种语言称为计算机

语言。用计算机语言编写的代码称为程序。计算机的工作是受程

序控制的,而从计算机角度来说,程序是用某种计算机能理解并

执行的计算机语言来描述解决问题的方法步骤。

程序设计语言经历了从机器语言、汇编语言到高级语言这样一个

发展过程。

1.机器语言:计算机刚诞生时,还没有可以用来方便地指

挥计算机工作的程序,计算机程序是直接用它能识别的二进

制指令来书写的。这种程序设计语言就是机器语言。它直接

以计算机硬件产生作用的,所以不同型号的计算机的“机器

语言”又不一样,因此它被称为低级语言,很难被人掌握,

只有少数专业人员能使用。

2.汇编语言:实际上是一种符号化的机器语言。在汇编语

言中每条机器指令对应一个符号化的指令。如:用ADD代表

机器二进制的加法运算。因为加法用二进制的10110110的机

器语言代表,而用英文单词更简捷且好记多了。不过,用汇

编语言编写的程序要翻译成机器语言才能被计算机执行。且

也依赖于机器。

3.高级语言:由于汇编语言和机器语言都是面向机器的语

言,而且在程序的书写形式上很难直观地反映出程序设计者

的思路,因此人们发明了与人类的自然语言非常接近的高级

程序设计语言。高级语言不仅易学,易用,而且写出的程序

更加简练,同一个程序还可以用在不同型号的机器上。比如

说,我们要求两个数的和,在高级语言中可以用一个很简单

的语句C=A+B;来表示,但在汇编语言或者机器语言中,这

可能就是几条甚至几十条机器指令构成的一个实现加法的程

序,常人要读懂它也不是那么容易。

但是,用高级语言编写的程序不能被计算机直接理解和执行,而

必须先由这种语言的编译程序或者解释程序翻译成机器指令,然

后再让计算机执行机器指令。

C语言的历史

20世纪70年代初期出现的FORTRAN,ALGOL和PASCAL

语言是反映了结构化程序设计思想的高级语言,PASCAL它在

大学和研究所中流传较广曾为国内外计算机(应用)专业学生的

入门语言。

几乎同时与之诞生的C语言在美国的贝尔实验室中诞生,与

其它语言不同的是,C语言诞生之时,没有什么研究报告和语言

报告,而是在设计Unix操作系统时不断地得到更新和完善。因

此,人们把C语言程序称为程序员设计的语言,而把FORTRAN,

ALGOL和PRASCAL语言称为计算机科学家设计的语言。

Unix的早期版本是用汇编语言写的,而用C编写的Unix原

先的版本更易于理解、修改的扩充,更重要的是,具有良好的可

移植性。作为一个优秀的操作系统,Unix在世界范围内得到了

广泛的应用,它的设计者因此于是1983年获得了计算机科学的

最高奖——图灵奖。C语言是一门极具有生命力的程序设计语

言。由于C语言同时具有一些低级语言的特性,所以许多人把C

语言称为中级语言。要使用Unix,就必须掌握C语言,渐渐地

C语言已不完全依赖于Unix,成为程序员的首选语言之一,在

国内,许多高校将C语言作为第一门程序设计语言开设

1978年,贝尔实验室的 B.W.Kernighan和 D.M.Ritchie(简称

K&R)出版了“THE C PROGRAMMING LANGUAGE”一书,

建立了所谓的C语言的K&R标准,它一度成为C语言的事实

标准。目前,美国国家标准学会已对C语言标准化,称为ANSI

C 标准。ANSI C 标准和K&R标准是有一些差别的,本课程

是以ANSI C 标准为主再加上Borland公司Turbo C2.0的一

些扩充。

C语言本身也在发展,20世纪80年代中期,出现了面向对象的

程序设计的概念。贝尔实验室的 B.stroustrup博士借鉴了

Simula67中的类的概念。将面向对象的语言成份引入到C语言

中,设计出了C++语言,C++语言赢得了广大程序员喜爱,不同

的机器不同的系统几乎都支持C++语言,同时,C++语言也得到

了国际标准化组织(ISO)的认可。C/C++语言对新的形成的语

言也有较大的影响力。20世纪90年代中期以来,Internet日益

普及,用于Internet开发的JA V A语言渐为人们所熟知,事实上,

JA V A语言与C++语言极为相似,熟悉C++语言的程序员在很短

的时间内就能掌握JA V A。

C语言的特点:C 语言是目前最流行的、也是最优秀的

一种高级程序设计语言。它于1972年在美国的贝尔实验室问世,

后来历经发展和完善。它不仅具有高级语言的易学、易用、可移

植性强等优点,而且具有低级语言的执行效率高、可对硬件直接

进行操作等优点受到了广大计算机应用人员的喜爱,同时C语

言几乎任何一种机型、任何一种操作系统都支持C语言的开发。

总的来说,C语言具有以下几方面的特点:

1.比其它高级语言更接近硬件,比低级语言更接近算法,程序

易编、易读、易查错、易修改。可以说兼有高级语言和低级

语言的优点,允许直接对位、字节和地址进行操作。

2.数据类型和运算符十分丰富,程序设计和算法描述更为简单

和方便。

3.语法结构十分简单,语句数目少,简单易学。

4.C语言是面向结构化程序设计的语言,提供了完整的程序控

制语句(选择语句和循环语句),很适合结构化的程序设计方

法,生成的目标代码质量高。

5.它是一种模块化程序设计语言,适合大型软件的研制和调试。

它提供了大量的库函数供调用,简化了程序设计工作。

学习C语言所需的知识

1.弄清数据在内存中的表示方法,数据在计算机内部是用二进

制来表示的,为了便于问题描述,常常还用到十六进制和八

进制;

2.数制及转换(二进制、十进制、八进制、十六进制)

3.整数的原码、补码、反码表示

整数有正负之分,用一个二进制位作为符号位,一般总是最高位,

当符号位为“0”时为正数,符号位为“1”时为负数。如:用

16位来表示一个整数时有:

0000000000101011=+43

1000000000101011=-43

上述表示法,称为整数的原码表示法。

整数的反码表示法是:符号位作为“1”,绝对值部分正好与原码

相反(即0变为1,1变为0)

=1000000000101011

(-43)

(-43)反=1111111111010100

但在计算机内部整数大多数用补码表示,对符号位作为“1”,绝

对值部分却是反码的最低位加1得到的结果,因此

(-43)补=1111111111010101

对正整数而言,其原码、反码、补码均相同

对于补码的知识,是C语言的必备的知识

{float x, y ,z, a; /*定义四个存放实数的变量x, y, z, a*/

scanf(“%f,%f,%f,&x,&y,&z);/*输入三个实数并存放到变量x, y, z中*/

a=(x+y+z)/3; /*计算x, y, z的平均值存入变量a中

*/

printf(“%f\n”,a);} /*输出变量a中的三个实数的平均值*/

[例题3] 求三个实数的平均值,三个实数由键盘输入

/*定义一个名为avg的函数, 函数有三个形式参数x1,x2,x3,函数的返回值为实数

*/

float avg (x1,x2,x3)

float x1,x2,x3;

{

float a1;

a1=(x1+x2+x3)/3;

return(a1);

}

/*定义主函数*/

main()

{float x, y ,z, a;

scanf(“%f,%f,%f,&x,&y,&z);

a=ave(x,y,z); /*调用函数ave计算平均值存入变量a中

*/

printf(“%f\n”,a);

}

[例题4] 求三个整数的最大的最小值,三个数由键盘输入

/*定义一个名为max的函数, 其功能是返回三个形式参数中的最大值*/

int max(i1,i2,i3)

int i1,i2,i3;

{int m1;

if ((i1>=i2)&&(i1>=i3)) m1=i1;

if ((i2>=i1)&&(i2>=i3)) m1=i2;

if ((i3>=i1)&&(i3>=i2)) m1=i3;

return(m1);

}

/*定义一个名为min的函数, 其功能是返回三个形式参数中的最小值*/

int min(i1,i2,i3)

int i1,i2,i3;

{int m1;

if (i1<=i2)

if (i1<=i3)) m1=i1;

else m1=i3;

else if (i2<=i3) m1=i2;

else m1=i3;

return(m1);

}

/*主函数*/

main()

{int x, y ,z, a;

scanf(“%f,%f,%f,&x,&y,&z);

a=max(x,y,z);

printf(“max=%d\n”,a);

a=min(x,y,z);

printf(“min=%d\n”,a);

}

从上述三例中,可以看出:

●C程序由若干个函数构成的。每个C程序有且仅一个主函数,

该主函数的函数名规定为main。函数是C程序的基本单位。

●除主函数以外,可以没有其他函数如[例题2],也可以有一个

或多个其它函数如[例题3] [例题4]

●每个函数(包括主函数)的定义分为两部分:说明部分和函

数体。

●函数体中的数据说明语句,必须位于可执行语句之前。换句

话说,数据说明语句不能与可执行语句交织在一起。

●语句的最后总要有一个“分号(;)”,作为结束

●可以用‘/**/’作为“注释”用于说明该段程序的功能

●书写灵活,在一行可以写多个语句,一个语句也可写在多行

●C程序的执行总是从主函数开始,并在主函数中结束。主函

数的位置为任意的;即函数的定义次序不影响其引用次序。

其它函数总是通过函数调用语句来执行的,因此,一个C程

序实质上是一系列相互独立的函数的定义,函数之间只存在

引用和被引用的关系。

●主函数可以调用任何非主函数;任何非主函数都可以互相调

用,但是不能调用主函数。

●C语言编译系统区分字母大小写。C语言把大小写字母视为

两个不同的字符,并规定每条语句或数据说明均以分号(;)结

束。分号是语句不可缺少的组成部分

●一个C程序可以由一个文件组成,也可以由若干个文件组成。

每个文件中包含一个或多个函数。当一个C程序由多个文件

组成时,每个文件进行编译(生成.obj文件),再通过连接合

并成一个可执行文件(生成.exe文件),然后运行。

C语言的基本词法

C语言是一种计算机语言,也要先学基本字符,基本词类字符集

一、C语言的字符集

:在C语言程序中允许出现的所

有基本字符的组合称为C语言的字符集。C语言的字符集就是

ASCII字符集,它由数字、英文字母、图形符号以及转义字符四

部分组成。

1.数字(0~9)

2.大小写英文字母(52个)A~Z;a~z

3.键盘符号(33个)

4.转义字符:由“反斜杠字符(\)”开始后跟单个字符或若干

字符组成的,通常用来表示键盘上的控制代码或特殊符号,

如回车换行符,响铃符号等

二、保留字:

在C语言的程序中有特殊含义的英语单词称

为“保留字”,主要用于构成语句成份,进行存储类型和数据类

型定义的那些单词,有时也称为“关键字”;C语言的保留字只

能小写

C语言保留字如下:

Auto 自动extern 外部sizeof计算字节数break中止float 浮

点static 静态case情况for 对于struct 结构char字符goto转

向switch开关contiune继续int 整形typedef 类型定义const

常量if 如果union 共用default 缺省long 长整型unsigned 无

符号do 做register 寄存器void 空double 双精型return 返回

volatile可变的else 否则short短整型while当enum枚举

signed带符号

标识符:

标识符是用户自定义的一种字符序列,通常用来表

示程序中需要辩认的对象所取的名称,如符号常量、变量、数组、

函数标号等对象的名字的字符序列;

C语言规定,标识符是由字母或下划线(_)开头,后面跟零个或多

个字母、数字、下划线组成的一串符号。在Turbo C中,最长

的标识符可达32个字符;

正确的的标识符:sum I a2 a_2 _a2 _a_2

不正确的的标识符:2a (非字母或下划线的开头)

a? (含有非字母、数字、下划线的字符:?)

c.g (含有非字母、数字、下划线的字符:.)

a-2 (含有非字母、数字、下划线的字符:-)

#abc(含有非字母、下划线开头的字符:#)

C语言是区分大小写的如int 为保留字Int 则为标识符,原则

上用大写字母来表示常量标识符,而用小写字母表示变量和其他

类型标识符;

由于标识符主要是用来命名,所以用户应选取有意义的标识符,以

便在程序中能从标识符看出所标识的对象。增加程序的可读性

C语言规定用户选取的标识符不能是C语言规定的保留字

C语言规定所有的符号必须先定义/说明而后使用。

C程序的书写格式:

标识符的大小写是有区别的。如A和a 表示两个不同的变量,

C程序语句用分号(;)结束,分号是C语句的必要组成部分

C程序书写格式自由,一行内可以写几个语句,一个语句可以分

写在多行上。

在程序中可以对程序进行注释,注释部分必须用符号“/*和*/括

起来,但/**/要成对出现

C语言的词类

主要分为下列几种

常量

在程序中其值不发生变化的数据

变量

用来存放程序运行中变化的数据,如原始数据、中间结果、最终

结果等

运算符

用来表示简单加工计算的符号如加(+)减(—)乘(*)除(/)

函数调用

形如“函数名(实际参数表)”的式子,它代表调用指定函数后

获得的结果

表达式

用常量、变量、函数调用、运算符组成的式子。用来表示简单的

加工计算;

保留字

在程序或语句中,用于表示特定语法含义的英语单词

C语言的基本语句

(1)数据定义语句:用于定义程序中使用的各种能存放数据

的对象的名称和特性

(2)赋值语句:如“变量=表达式”的语句

(3)函数调用语句:如“函数名(实际参数表)”的语句

(4)表达式语句:

(5)流程控制语句:用于控制程序执行过程的语句

(6)复合语句:用花括号括住的若干个任意语句

(7)空语句:无任何操作的语句

(8)其他语句:包括编译预处理命令、类型定义语句等

第3章数据类型、运算符、表达式

§3.1 C语言的数据类型:

数据类型是指数据的内在表现形式,即是数据在加工计算中的特

征就是数据类型。在C语言中,为解决具体问题,要采用各种

类型的数据,数据的类型不同,它所表达的数据范围、精度、和

所占据的存储空间均不同。在高级语言编写程序中,必须在程序

中做好两件事:一是描述数据,二是描述数据的加工方法,前者

是通过数据定义语句实现的,后者是通过若干执行语句,包括用

各种运算符构成的表达式来实现的

C语言常用的数据类型有(基本类型、构造类型、指针类型、空

类型)其中整型、实型、字符型称为基本类型。

整型

整型可分为四种:基本型、长整型、短整型和无符号型

1.基本型用int表示

2.长整型用long int或long表示

3.短整型用short int或short表示

4.无符号型无符号型的整数必须是正数或是零。

空类型

我们将整型和实型合称为“数值型”,把数值型和字符型合称为

“基本数据类型”

构造类型是指由若干个相关的基本类型数据组合在一起形成的

一种复杂的数据类型。

数组是由相同的数据组合而成:如若干个人的年龄的组合即为一

个数组

结构型是由不同的数据类型组合而成的:如人的姓名(字符串)、

性别(字符型)、年龄(整型)、基本工资(实型)组合在一起,构成一

个结构型数据。

共用型是若干个数据不同时使用时,让它们占用相同的内存区

域,以便节省内存,这些数据组合在一起就是“共用型”共用型

中的数据可以是同类型的数据也可以是不同类型的数据。

指针型是一种简单的数据类型,它是用来表示内存地址的。指针

类型的数据可以表示基本类型数据的地址,也可以表示结构类型

数据的首址的其中某个具体数据的地址。

枚举型是指在某个数据在程序运行过程中,只取固定的几个值,

就可以把这几个值列出来以后这个数据只能到这几个值中的某

一个

空类型是从语法完整性的角度给出的一种数据类型,表示该处不

需要具体的数据值,因而没有数据类型。

对每个数据都要在内存中(个别数据可能在寄存器中)分配若干

实型(浮点型)常量:实型常量也称为(浮点型)常量在C

语言中实型常量只使用十进制数它的书写方法有两种形式:一般

形式和指数形式。

一般形式的实数:它由整数、小数点、小数三部分组成,小数点

是必须的整数和小数可以省略如:12.345、

–1.2345 、0.618、.123、123.等

指数形式实数:由尾数、小写字母e或大写字母E、以及指数三

部分组成、字母e或大写字母E必须有。尾数

可以为整数也可以为实数,指数部分只能是整数

(可以有“+”“-”符号) 公式为:尾数×10指数如:

2.75e、36.E-5、.123E+4为合法指数形式,而

1234、.E-8 、e3 、8.75e3.3等都为不合法指数

形式

字符常量:是用两个单引号前后括住的单个字符来表示的,如:

‘b’、‘G’、‘%’、‘1’‘=’。

在C语言中字母是区分大小写的所以‘A’与‘a’是不同

的字符常量

在内存中每个字符常量都占有一个字节,具体存放的是该字

符对应的ASCII代码值

字符串常量:是用两个双引号前后括住的零个或多个字符来表

示的。如:“abc”、“12345”、“abCDEF”

字符串长度:一个字符串常量中所包含的字符个数称为该字符串

《C语言程序设计》第三章 C语言基础 课堂笔记

页眉内容 《C语言程序设计》第三章C语言基础课堂笔记 §3.1 基本字符集、关键字和标识符 一.基本字符集 字符是C的基本元素,C语言允许使用的基本字符集: 1.26个大写字母A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2.26个小写子母a b c d e f g h I j k l m n o p q r s t u v w x y z 3.10个阿拉伯数字0 1 2 3 4 5 6 7 8 9 4.其他字符!" # % & ' ( ) * + , - . / : < = > ? [ \ ] ^ _ { | } ~ 5.空格字符以及制表符合换行符等控制字符 二.关键字(P375,附录II) C中具有固定意义的字符串。 (1) C中的关键字共32个,必须用小写字母 (2) 关键字不可用于变量名、函数名等。 auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 三.标识符 标识符用于命名变量、类型、函数和其他各种用户定义的对象,是由字母、下划线和数字三种字符组成。 (1) 第一个字符必须为字母或下划线 (2) C对标识符的长度规定为任意,Turbo C区分32 个字符 (3) C区分大小写 (4) 不允许关键字作为标识符 §3.2 C数据类型

C语言程序设计读书笔记题目

读书笔记注意事项: 1、 读书笔记要求至少有六个题目,在一类、二类、三类题目中各选两题,具体题目选择由 学生自行选择。 2、 每个题目必须包含所选题目,以及具体题目的程序实现过程,要求每行语句后都需要有 程序解释,如:int a,b,c; /*定义三个变量a,b,c ,变量类型为整型*/。 3、 读书笔记要求全部手写,在17周由学习委员统一交给任课教师。 一、一类题目 1. 输入任意3个整数,求它们的平均值。 2. 输入任意4个整数,求它们的平均值。 3. 输入一个非负数,计算以这个数为半径的圆周长和面积。 4. 将从键盘输入的实型十进制数分离为整数部分和小数部分后输出。如输入 123.45,输出为:123.45=123+0.45 5. 输入3个字符,反向输出这3个字符和它们的ASCII 码。 6. 输入4个字符,反向输出这4个字符和它们的ASCII 码。 7. 输入任意一个3位数,将其各位数字反序输出(例如输入123,输出321)。 8. 求前n 项的累加和。如S=1+2+3+…+n 。 9. 求n !。如fac=1*2*3*…*n 。 10.输入三角形的边长,求三角形的面积(面积=sqrt(s(s-a)(s-b)(s-c)), s=(a+b+c)/2)。 11.输入一个华氏温度,要求输出摄氏温度,公式为:)(32f 95 c -=,输出前要有提示信息,输出结果保留小数点后两位。 12.求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并 按ASCII 码值,按从大到小的顺序输出这3个字符及其对应的ASCII 码值。 13.输入一个非负数,计算以这个数为半径的圆周长和面积。 14.输入两个字符,若这两个字符的序号(ASCII 码)之差为偶数,则输出它们 的后继字符,否则输出它们的前驱字符。 15.输入整数a 和b ,如果a 能被b 整除,就输出算式和商,否则输出算式、整 数商和余数。 二、二类题目 1. 输入一个3位数,判断是否是一个“水仙花数”。水仙花数是指3位数的各位 数字的立方和等于这个3位数本身。例如:153=1*1*1+5*5*5+3*3*3。 2. 试编写一程序,将所有3位数中是“水仙花数”的输出。

笔记排列组合C语言编程

排列组合 所谓排列,就是指从给定个数的元素中取出指定个数的元素进行排序。组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。排列组合的中心问题是研究给定要求的排列和组合可能出现的情况总数 排列组合的基本公式 A(n,m)=n(n-1)(n-2)……(n-m+1)=n!/(n-m) C(n,m)=A(n,m)/m!=n!/((n-m)!*m!) C(n,m)=C(n-1,m-1)+C(n-1,m) 排列实现 1.回溯实现 1)算法设计 应用回溯法产生排列A(n,m).设置一维a数组,a(i)在1—n中取值,出现数字相同时返回。 当i

long s=0; printf(“input n (n<10):”); scanf(“%d”,&n); printf(“input m (10) a[i]++; else break; } printf(“\n s=%ld\n”,s); }

大一c语言考试试题

一、单项选择题(每小题2分,共50分) 1、一个C程序的执行是从___A__。 A、本程序的main函数开始,到main函数结束 B、本程序的main函数开始,到本程序文件的最后一个函数结束 C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 2、C语言程序的基本单位是___C___。 A、程序行 B、语句 C、函数 D、字符 3、请选出可用作C语言用户标识符的一组标识符___B___。 A、void B、a3_b3 C、For D、2a define_123-abcDO WORDIFasesizeof 4、假定x和y为double型,则表达式(x=2,y=x+5/2)的值是__C__。 A、、4 C、、 5、下列可以正确表示字符型常量的是___D__。 A、297 B、"a" C、"\n" D、'\t' 6、在C语言中,要求运算数必须是整型的运算符是__D__。 A、/ B、++ C、*= D、% 7、C语言中,复合语句的构成是将一系列语句置于__C__。 A、begin与end之间 B、方框号“[]”之间 C、花括号“{}”之间 D、圆括号“()”之间 8、有如下程序段,对应正确的数据输入是___A___。 floatx,y; scanf(”%f%f”,&x,&y); printf(”a=%f,b=%f”,x,y); A、<回车> B、,<回车> <回车> C、A=,B=<回车> D、回车> 9、以下程序段的输出结果是___D__。 inta=5678; printf(”%2d\n”,a); A、提示出错、无结果 B、56 C、78 D、5678 10、已知:charch='A';则下列表达式的值是__B__。 ch=(ch>='A'&&ch<='Z')?(ch+32):ch; A、A B、a C、Z D、z

十速单片机TM57MA15---C语言编程应用笔记 [兼容模式]

十速单片机TM57MA15 ---C语言编程应用笔记 Tomson.Liu Aug.17,2016 All for dream 一切为了梦想

一、端口设置的注意事项 1. PA7端口 PA7端口既可以作为复位端口,也可以作为普通IO口使用,作为普通IO口时,可作为的输入口。具体设置如下: INT2 PA7 端口作为INT2中断源时,只能是下降沿中断; https://www.doczj.com/doc/ce17811935.html,

一、端口设置的注意事项 2. PA7以外的端口 在设置单片机的端口方向时,如果将端口设置为施密特输入端口时,必须在初始化端口初始值时,将该端口置为高,否则端口输出为低电平,无法读取状态。 ------该单片机不像普通的51单片机,只需要设置端口方向后,就可以直接读取端口状态,而需要将端口初始化赋值为高,方可。 关于端口设置的描述,详见TM57MA15的datasheet中描述,如下:

二、寄存器使用时注意的事项 该单片机的内部寄存器分为F寄存器和R寄存器,由R寄存器只能写入,因此在程序中定义R寄存器变量时,该变量只能进行赋值,不能进行逻辑和算术运算。否则会出现一些意想不到的问题。另外对RAM中使用的关键变量,初始化时需要清零。RAM上电后,为不定态。在程序空间允许的情况下,上电后对使用的连续RAM空间进行清零操作。 三、端口初始化注意的事项 TM57MA15单片机,我公司有使用10Pin的小封装,该封装只有PA端口和PD0口。该单片机的标准封装为SOP-16,具有PA,PB和PD端口。10Pin的小封装,只是将未用引脚对外引出而已,芯片内部仍存在。因此初始化时,仍需对PB等未用的端口进行初始化,否则很难较低静态功耗。

c语言讲稿(ch7部分)

第七章函数 第一节软件的分层模块化 一、分层模块化主要思想 1、按功能将程序划分若干独立模块,模块之间具有层次关系,上层模块可调用下层模块。例: 一个简单学籍管理程序,经过需求调查和分析后,设计出如下模块结构: 2、对于模块的基本要求 ?每个模块功能单一。用三种基本结构构造模块内的程序代码段。 ?每个模块有名字 ?每个模块的接口参数应尽量简单 ?模块之间尽可能互相隔离(没有数据依赖性) ?除主模块由操作系统调用外,其它模块的调用一般应遵守:上级模块调用下级模块 3、模块化程序的开发 逐个模块进行设计、编码和调试 开发团队分工合作 4、c语言实现模块结构程序的支持机制(函数) 函数定义——模块 函数名——模块名 函数的形式参数——模块接口 函数调用——模块调用 第二节 C 语言函数简介 一、函数分类 1、根据定义分类 ?系统预定义函数(库函数) 不需用户定义,可多次调用 ?用户自定义函数 需要用户一次定义,可多次调用 2、根据参数分类 ?无参函数 定义和调用时均不带参数 ?有参函数 定义和调用时带一个以上的参数 3、根据返回值分类 ?有返回值函数 函数调用结束时带值返回到主调函数 ?无返回值函数

函数调用结束时不带任何值返回到主调函数 二、函数一般特性 1、函数的定义 在一个源程序中: 必须有一个也只能有一个main函数定义(函数名是规定的,函数体是自定义的)。 可以有多个相互独立的其它函数定义。 在一个函数定义的函数体中不允许出现另一个函数定义(嵌套定义)。 2、函数的调用 发出运行程序命令后操作系统调用执行main函数。在一个函数定义的函数体中可以调用另一个函数(嵌套调用),也可以调用函数自身(直接递归调用)。main函数也可以被其它函数调用(间接递归调用),但一般不这样做。 3、函数的返回 一个函数被调用后,一旦执行到return语句或函数体的最后一个“}”时,自动返回到主调函数处继续执行后续指令。函数返回时可以带值或不带值。 第三节函数的定义、调用和声明 一、函数定义(function definition) 1、函数定义格式 [存储类型] [函数类型] 函数名([const] [存储类型] 数据类型形参变量名1, . . .) { 变量声明序列 语句序列 } 下划线部分为形式参数表 特殊情况: 无参函数:形式参数表中只放一个void,或者为空 无返回值函数:函数类型为void 缺省情况: 函数类型缺省时为int,形参缺省时为void 2、函数类型 代表函数返回值类型。 允许:5种基本类型,指针类型,构造类型,void(无值) 3、形式参数(formal argument) ?所有形式参数都是变量,简称形参变量 ?形参变量的类型可以是:5种基本类型、指针类型、构造类型(结构,联合) ?函数体内不能再声明与形参变量同名的其他局部变量 ?形参变量的作用域为所在函数的函数体 ?形参变量只有在所在函数被调用期间才存在

C语言程序设计笔记

C语言程序设计笔记 1. 合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线开头。 2. 整型常量:用不带小数点的数字表示。 实型常量:用带小数点的数字表示。 字符型常量:用带有单引号的字符表示。 3. #define是一条预处理命令,又被称为宏定义命令,其功能是把命令格式中的标识符定义为其后的常量值。例如#define PI 3.14 一经定义,以后在程序中所有出现该标识符的地方均以该常量值代之。 习惯上符号常量的标识符用大写字母表示,变量标识符用小写字母表示,以示区别。 用#define进行定义时,必须用“#”号作为一行的开头,在#define命令行的最后不得加分号结束 4. 字符常量就是用一对单引号括起来的单个字符。 5. 注意switch语句中的default,代表所有case以外的情况,在不能找到符合的case并且存在default时就会执行default后的语句。 6. 在switch结构中,如果没有break出现,当遇到符合的case时将会自动执行其后的所有case和default中的语句。可见break在switch结构中的重要性。有了break的switch 语句才起到真正的分支作用。 7. 语句标号和goto语句的使用。Goto语句为无条件转向语句,必须与语句标号配合使用。语句标号必须是标识符。 8. 真值表。或门中,即“||”,有真就真,全假才假。与门中,即&&,有假就假,全真才真。 9. C语言中,不只是1表示逻辑真,而是所有非零都表示逻辑上的真值。 10.要时刻注意if语句与其后的表达式的关系,是包含还是无关。注意花括号。 11.要记住C语言中的运算符的优先级。 12. switch结构中,case于表达式之间一定要有空格,例如case 10,而不是case10. 13. 必要的时候case后面的语句可以省略不写,意为与后面的case合并选择。 14. switch和case后的括号中的用于匹配的表达式的类型必须相同。各个case后的值应该不同。 15 .关于牛顿迭代法解方程: 若是解隐函数方程,如x=cosx,可以让x1=0,应该令x2=cosx1。注意分析,满足方程的根无非就是要x和cosx相等,想办法构造循环让x自己运算自己就可以。 如果未达到精度要求,再将x2给x1,然后计算出一个新的x2,这样一轮一轮的来,总会找到符合要求的解,跳出循环,此时x1和x2都可以作为方程的解。 若是解一般方程,x2有公式, x2=x1-f(x1)/f`(x1)

湖北省计算机二级C语言考试讲课讲稿

湖北省计算机二级C 语言考试

1、计算机在实现工业自动化中的应用主要是进行(A) A、实时控制 B、数据处理 C、数值计算 D、人工智能 2、计算机的主频指的是(D) A、硬盘读写速度,用Hz表示 B、软盘读写速度,用Hz表示 C、显示器输出速度,用MHz表示 D、时钟频率,用MHz表示 3、复制活动窗口的信息到剪贴版,只需按下(C)键即可 A、[Alt+Esc] B、[Ctrl+Shift] C、[Alt+Print Screen] D、[Print Screen] 4、计算机中ROM的意思是(B) A、磁盘存储器 B、只读存储器 C、随机存储器 D、光盘存储器 5、在运行某程序时,如果存储器容量不够,可通过(D)来解决。 A、把软盘换成硬盘 B、把磁盘换成高密度磁盘 C、扩大硬盘容量 D、增加一个扩充存储卡(内存条) 6、在Windows,控制面板是以(B)的形式存在的 A、一个普通文件 B、一个系统文件夹 C、一个系统文件 D、几个系统文件集合在一起 7、微型计算机存储器系统中的Cache是(B) A、只读存储器 B、高速缓冲存储器 C、可编程只读存储器 D、可檫除可再编程只读存储器 8、一般主存储器和外存储器的区别在于(C) A、主存储器容量大,速度快,造价高;外存储器容量小,速度慢,造价低 B、主存储器容量小,速度慢,造价低;外存储器容量大,速度快,造价高 C、主存储器容量小,速度快,造价高;外存储器容量大,速度慢,造价低 D、区别仅仅是因为一个在计算机里,一个在计算机外 9、在智能ABC输入法中,将“计算机”编码输入为“jsuanj”,这属于(C) A、全拼输入 B、简拼输入 C、混拼输入 D、智能输入 10、在Windows 98的MS-DOS窗口中,按(B)键,可以在全屏幕与窗口方式之间切换。 A、[Alt+Shift] B、[Alt+Enter] C、[Alt+F8] D、[Ctrl+Shift] 11、二进制数1010100.100对应的十六进制数为(C) A、52.8 B、52.6 C、54.8 D、54.6 12、在3.5英寸软盘上有一个可移动滑块的透光孔是用于(B) A、防霉保护 B、写保护 C、读保护 D、驱动定位 13、在Windows 98中,不同驱动器之间的文件移动,应使用的操作为(C)

程序设计基础C备课笔记

《程序设计基础C》 第一课程序设计入门 一、问题->面向过程的程序设计思想+高级程序设计语言C语言的语法+集成开发环境(编辑+编译+链接+调试工具)+C语言函数库->可执行文件 例:已知一个圆的半径为3,求其面积。 #include main(){ printf("%f",3.14*3*3); } 二、冯诺依曼模型的组成和程序的执行过程 例:输入一个圆的半径,输出其面积。 半径radius、面积area、周长circumference[s?'k?mf?r?ns] 例:输入一个圆的半径,若其值大于0,则输出其面积,否则提示输入错误。 例:输入圆的半径,输出其面积。当输入值小于等于0时,程序结束。 三、VC6使用指导 1、单击Standard工具栏New Text File按钮,生成新的文本文件。 2、单击Standard工具栏Save按钮,保存文件,扩展名取.c。 3、单击Build Mini Bar工具栏Build按钮,构建程序(编辑Compile+链接Link)。会提示必须有项目,生成项目文件和工作区文件。 4、单击Build Mini Bar工具栏Execute Program按钮,执行程序。 5、执行exe文件。添加conio.h中的getch()函数。 4、双击dsw文件重新打开项目。 四、教学安排 第二课数据类型、运算符与表达式 一、数据类型 C程序中,每个数据都属于一个确定的、具体的数据类型。 数据区分类型的主要目的是便于对它们按不同方式和要求进行处理。 C语言提供的数据类型:P15。 二、整型 1、类型名 signed int=signed=int signed short int=short int=short signed long int = long int=long unsigned int=unsigned unsigned short int=unsigned short unsigned long int=unsigned long 各种类型所占位数: long int short 16位机32 16 16

C程序设计 读书笔记

『C程序设计』读书笔记 关键字:c语言 原作者姓名:loose_went 文章原出处:https://www.doczj.com/doc/ce17811935.html, 写在前面: 《C程序设计》可以说是一本再基础不过的编程书了,但每读一遍的感觉却都是不同的,可以说,每读一遍,都会有很多新的收获。真所谓老书再读,回味无穷啊!此笔记是《C程序设计》谭浩强编著,清华大学出版社出版。除了将书中的重点知识点记下来外,也加入了我对知识点的理解,我想这一点是读书笔记的重要性所在。 第一章概述第二章数据类型、运算符与表达式 第三章最简单的c程序设计第四章逻辑运算和判断选取控制 第五章循环控制第六章数组 第七章函数第八章预编译处理 第九章指针第十章结构体与共用体 第十一章位运算第十二章文件 第一章概述 1. C语言的特点 ①语言简洁、紧凑,使用方便、灵活。共有32个关键字,9种控制语句。 ②运算符丰富,公有34种运算符。 ③数据结构丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。 ④具有结构化的控制语句(如if…else、while、do…while、switch、for) ⑤语法限制不太严格,程序设计自由度大。 ⑥允许直接访问物理地址,能进行位(bit)操作,可以直接对硬件操作。 ⑦生成目标代码质量高,程序执行效率高。 ⑧可移植性好。 2. C语言的用途 C虽不擅长科学计算和管理领域,但对操作系统和系统实用程序以及对硬件进行操作方面,C有明显的优势。现在很多大型应用软件也用C编写。 Top of Page 第二章数据类型、运算符与表达式

1. C的数据类型 C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。 2.常量与变量 常量其值不可改变,符号常量名通常用大写。变量其值可以改变,变量名只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。否则为不合法的变量名。变量在编译时为其分配相应存储单元。 3.整型数据 整型常量的表示方法:十进制不用说了,八进制以0开头,如0123,十六进制以0x开头,如0x1e。整型变量分为:基本型(int)、短整型(short int)、长整型(long int)和无符号型。不同机器上各类数据所占内存字节数不同,一般int型为2个字节,long型为4个字节。 4.实型数据 实型常量表示形式:十进制形式由数字和小数点组成(必须有小数点),如:0.12、.123、123.、0.0等。指数形式如123e3代表123×10的三次方。 实型变量分为单精度(float)和双精度(double)两类。在一般系统中float型占4字节,7位有效数字,double型占8字节,15~16位有效数字。 5.字符型数据 字符变量用单引号括起来,如'a','b'等。还有一些是特殊的字符常量,如'\n','\t'等。分别代表换行和横向跳格。 字符变量以char 来定义,一个变量只能存放一个字符常量。 字符串常量是由双引号括起来的字符序列。这里一定要注意'a'和"a"的不同,前者为字符常量,后者为字符串常量,c规定:每个字符串的结尾加一个结束标志'\0',实际上"a"包含两个字符:'a'和'\0'。 6.数值型数据间的混合运算 整型、字符型、实型数据间可以混合运算,运算时不同类型数据要转换成同一类型再运算,转换规则: char,short -> int -> unsigned -> long -> double <- float 7.运算符和表达式 c运算符包括: 算数运算符(+ - * / % ) 关系运算符( > < == >= <= != )

C语言第章讲稿

第一章 C语言概述 本章要求: (1)C语句概述; (2)程序的三种基本结构; (3)赋值语句; (4)数据的输入与输出。 教学重点: 1.C语言的特点。 2.C语言的编程环境。 教学难点: 掌握编程环境的使用方法 教学方法: 采用多媒体教学的方法进行讲授,学生在教师指导下通过计算机进行操作练习。 课时数:4(讲授2节课,上机练习2节课) 1.1C语言的发展及特点 C语言的发展过程 1、C语言是国际上流行的、很有发展前途的计算机高级语言。C语言适合于作为“系统描述语言”。它既可以用来编写系统软件,也可以用来编写应用程序。 以前操作系统等系统软件主要采用汇编语言编写。汇编语言依赖于计算机硬件,程序的可读性、可移植性都比较差。为了提高可读性和可移植性,人们希望采用高级语言编写这些软件,但是一般的高级语言难以实现汇编语言的某些操作,特别是针对硬件的一些操作(如:内存地址的读写-直接硬

件、二进制位的操作)。人们设法寻找一种既具有一般高级语言特性,又具有低级语言特性的语言,C语言就在这种情况下应运而生。 2、C语言的发展见下图: ALGOL60 -> CPL -> BCPC -> B -> C -> 标准 C -> ANSI C -> ISO C ALGOL60:一种面向问题的高级语言。ALGOL60离硬件较远,不 适合编写系统程序。 CPL(Combined Programming language,组合编程语言):CPL 是一种在ALGOL60基础上更接近硬件的一种语言。CPL规模大, 实现困难。 BCPL(Basic Combined Programming language,基本的组合编 程语言):BCPL是对CPL进行简化后的一种语言。 B语言:是对BCPL进一步简化所得到的一种很简单接近硬件的 语言。B语言取BCPL语言的第一个字母。B语言精练、接近硬 注:最初Unix操作系统是采用汇编语言编写的,B语言版本的Unix是第一个用高级语言编写的Unix。在C语言诞生后,Unix很快用C语言改写,C语言良好的可移植性很快使Unix从PDP计算机移植到其它计算机平台,随着Unix的广泛应用,C语言也得到推广。从此C语言和Unix像一对孪生兄弟,在发展中相辅相成,Unix和C很快风靡全球。 3、从C语言的发展历史可以看出,C语言是一种既具有一般高级语言特性(ALGOL60带来的高级语言特性),又具有低级语言特性(BCPL带来的接近硬件的低级语言特性)的程序设计语言。C语言从一开始就是用于编写大型、

c语言学习笔记

网络通讯中数据大小端的问题: 大端模式:高位字节放在内存的低地址端,即该值的起始地址;低位字节排放在内存的高地址端。 小端模式:低位字节放在内存的低地址端,即该值的起始地址;高位字节放在内存的高地址端。 数组的名字是一个常量指针,如X【2】,X是一个常量指针,没有分配的内存。 数据存在存储空间,数值不存在。 在C语言里,指针可以访问到任何地方,但是对不应该访问的地址进行访问没有意义,也可能会禁止读写。 函数的接口类型,可变参数的类型和执行跳转: C语言的函数名可以看做一个地址常量(和数组一样)。 系统的堆栈:堆和栈的第一个区别就是申请方式不同:栈(英文名称是stack)是系统自动分配空间的,例如我们定义一个char a;系统会自动在栈上为其开辟空间。而堆(英文名称是heap)则是程序员根据需要自己申请的空间,例如malloc(10);开辟十个字节的空间。由于栈上的空间是自动分配自动回收的,所以栈上的数据的生存周期只是在函数的运行过程中,运行后就释放掉,不可以再访问。而堆上的数据只要程序员不释放空间,就一直可以访问到,不过缺点是一旦忘记释放会造成内存泄露。、 、 预处理操作: 宏定义:#define M 3; #define M(x,y) 2*x+y; 预处理对宏的处理,分为3类: 预处理“标识符”的展开; 预处理“标识符”的判断; 预处理“标识符”的文本替换。 #if 0 。。。。 #endif 用作代码注释。 基础类型重定义:一个C程序在PC上开发,逻辑验证正确后,下需要移植到某个嵌入式系统中,但是它们对应的int的位宽定义不同,目标系统是X86时,编译器将其看做32位,而目标系统为嵌入式系统的时候,编译器将其看作16位(对应的32位为long关键词)。这种情况,就需要进行基础类型的重定义: #define _TARGET_X86_SYSYTEM 0 #define _TARGET_DEV_SYSYTEM 1 #define _TARGET_SYSYTEM _TARGET_X86_SYSYTEM #if(_TARGET_SYSYTEM = _TARGET_X86_SYSYTEM) Typedef signed int _i32 Typedef unsigned int _u32 #elif(_TARGET_SYSYTEM = _TARGET_DEV_SYSYTEM)

c语言复习题讲课讲稿

一、(01)在while(x)中的(x)与下面条件等价的是( D ) A) x==0 B)x==1 C) x!=1 D)x!=0(02)C语言中,运算对象必须是整型数的运算符是( A )A)%B)/ C)< D)! (03)以下选项中合法的用户标识符是( B ) A)long B)_2Test C)3Dmax D)A.dat (04)以下选项中属于C语言的数据类型的是( C ) A)复数型B)逻辑型

C)双精度型D)集合型(05)设x,y,z和k都是int型变量,则执行表达 式:x=(y=4,z=16,k=32)后,x的 值为(C ) A)4 B)16 C)32D)52 (06)设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y; 后,y的值为( C ) A)不定值B)4 C)3D)1 (07)以下程序的输出结果是( C )main( ) { int a = 1,b = 2,m = 0,n = 0,k;

k = (n = b>a) || (m = a

(10)以下程序的输出结果是(小数点后只写一位) ( A ) main ( ) { double d ; float f ; long l ; int i ; i = f = l = d = 20 / 3 ; printf ( “%d %ld %f %f \n”, i , l , f , d );} A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0 (11)有以下程序,程序运行后的输出结果是( D ) main()

C语言程序设计学习笔记(3)

第三部分 1.标识符 标识符要求: (1)标识符是由字符、数字、下划线组成,但必须是以字母、下划线开头,不能以数字开头。 (2)标识符必须区分大小写 (3)标识符的长度不能超过8位。 (4)不能用C语言系统中的关键字作为标识符(if while)。预定义标识符(printf scanf )。用户定义标识符 2.常量 在程序运行过程中,其值不能被改变的量称为常量。

#include "stdio.h" #define PI 3.14159 main() { float r,s; r=5.0;

s=PI*r*r; printf("s=%f\n",s); } 3.变量 变量代表一个有名字的、具有特定属性的一个存储单元。它用来存放数据,也就是存放变量的值。在程序运行期间,变量的值是可以改变的。 变量必须先定义后使用,在定义时指定该变量的名字和类型。一个变量应该有一个名字,以便被引用。请注意区分变量名和变量值。例如a=3,a是变量名,3是变量的值。即存放在变量a的内存单元中的数据,变量名实际上是一个名字代表的一个存储地址。在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。 n 其值可以改变的量称为变量 n 变量有一个名字,即标识符 n 变量在存储器中占据一定的存储单元 n 变量占据存储空间的大小由其类型决定 n 程序中的变量参与计算时,从这个变量所占据的存储单元里取出存储的数据的值 n 变量要“先定义,后使用”

整型数据的分类 分类: 1)signed有符号整型:int基本整型、short短整型、long长整型 2)unsigned无符号整型:unsigned无符号基本整型、unsigned short 无符号短整型、unsigned long长整型 注意:若要表示一个长整型常量,则应该在一个证整型常量后面加一个字母后缀l或者L。例如:long i; i=32768l 无论是短整型还是长整型,都别识别为有符号整数,无符号整数应该在数字末尾加上“u”

C语言讲稿

第1章 C 程序概述 人与计算机交换信息是要用语言来交流的,这种语言称为计算机 语言。用计算机语言编写的代码称为程序。计算机的工作是受程 序控制的,而从计算机角度来说,程序是用某种计算机能理解并 执行的计算机语言来描述解决问题的方法步骤。 程序设计语言经历了从机器语言、汇编语言到高级语言这样一个 发展过程。 1.机器语言:计算机刚诞生时,还没有可以用来方便地指 挥计算机工作的程序,计算机程序是直接用它能识别的二进 制指令来书写的。这种程序设计语言就是机器语言。它直接 以计算机硬件产生作用的,所以不同型号的计算机的“机器 语言”又不一样,因此它被称为低级语言,很难被人掌握, 只有少数专业人员能使用。 2.汇编语言:实际上是一种符号化的机器语言。在汇编语 言中每条机器指令对应一个符号化的指令。如:用ADD代表 机器二进制的加法运算。因为加法用二进制的10110110的机 器语言代表,而用英文单词更简捷且好记多了。不过,用汇 编语言编写的程序要翻译成机器语言才能被计算机执行。且 也依赖于机器。 3.高级语言:由于汇编语言和机器语言都是面向机器的语 言,而且在程序的书写形式上很难直观地反映出程序设计者 的思路,因此人们发明了与人类的自然语言非常接近的高级

程序设计语言。高级语言不仅易学,易用,而且写出的程序 更加简练,同一个程序还可以用在不同型号的机器上。比如 说,我们要求两个数的和,在高级语言中可以用一个很简单 的语句C=A+B;来表示,但在汇编语言或者机器语言中,这 可能就是几条甚至几十条机器指令构成的一个实现加法的程 序,常人要读懂它也不是那么容易。 但是,用高级语言编写的程序不能被计算机直接理解和执行,而 必须先由这种语言的编译程序或者解释程序翻译成机器指令,然 后再让计算机执行机器指令。 C语言的历史 20世纪70年代初期出现的FORTRAN,ALGOL和PASCAL 语言是反映了结构化程序设计思想的高级语言,PASCAL它在 大学和研究所中流传较广曾为国内外计算机(应用)专业学生的 入门语言。 几乎同时与之诞生的C语言在美国的贝尔实验室中诞生,与 其它语言不同的是,C语言诞生之时,没有什么研究报告和语言 报告,而是在设计Unix操作系统时不断地得到更新和完善。因 此,人们把C语言程序称为程序员设计的语言,而把FORTRAN, ALGOL和PRASCAL语言称为计算机科学家设计的语言。 Unix的早期版本是用汇编语言写的,而用C编写的Unix原 先的版本更易于理解、修改的扩充,更重要的是,具有良好的可 移植性。作为一个优秀的操作系统,Unix在世界范围内得到了

C语言程序设计复习资料讲课讲稿

C语言程序设计复习资料 一、选择题 下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。 1、不合法的整数是(B )。 A)0x35 B)43.6 C)0532 D)-346 2、下列合法的字符常量是(D )。 A)“f”B)x C)65 D)‘\Xab’ 3、设有整型变量x,单精度变量y=5.5,表达式x=float(y*3+((int)y%4))执行后,x的值为(A )。 A)17B)17.500000 C)17.5 D)1.5 4、在C语言中,负整数在内存中以( A )形式释放。 A)补码B)BCD码C)反码D)十进制数 5、在C语言中,要求参加运算的数必须是整数的运算符是(C )。 A)/ B)!C)%D)= = 6、(D)是C语言中非法的数据类型关键字。 A)float B)singed C)integer D)Char 7、现已定义整形变量int i=1;执行循环语句while(i++<5);后i的值为(b)。 A)1 B)5 C)6 D)以上三个答案都不正确 8、下列语句的输出结果是(D )。 printf(“%f\n”,(float)(2+4)/2); A)有语法错误不能通过编译B)3 C)3.0 D)3.000000 12、定义a为整型,下列表达式a=3>6的运行后,a的值为(A )。 A)0 B)1 C)3 D)表达式错误 13、如果a=1,b=2,c=3,d=4,则条件表达式a>b?a:c>d?c:d的值为(D )。 A)1 B)2 C)3 D)4 14、对于条件表达式(M)?(a++):(a--),其中的表达式M等价于(C )。 A)M= =0 B)M= =1 C)M!=0 D)M!=1 15、在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是(D )。 A)(2>x>-2)||(4>x>8) B)((x<=-2)||(x>=2)||((x>4)||(x>=8)) C)(x<2)&&(x>=-2)&&(x>4)&&(x<8) D)(x>-2)&&(x>4)||(x<8)&&(x<2) 16、已知字母a的ASC||的十进制代码为97,则执行下列语句后输出为(C )。 Char a=‘a’; a--; printf(“%d,%c\n”,a+‘2’-‘0’,a+‘3’-‘0’); A)a,c B)a—运算不合法,故有语法错误C)98,c D)格式描述和输出项不匹配,输出无定值 18、C语言中,逻辑“真”等价于(C )。 A)大于零的数B)大于零的整数C)非零的数D)非零的整数 19、下列语句中,符合语法的语句式(D )。 A)a+b=3 B)a=7 C)a=c+b+3=6; D)a=8,b=a+7; 20、若x为float型变量,则以列程序段结果是(B )。 x=1234.6789;

《C语言程序设计笔记》 (61)

共用型和枚举型简介 枚举型 1.枚举类型的定义 enum 枚举类型名{取值表}; 例如,enum weekdays {Su,M,Tu,W,Th,F,Sa}; 2.枚举变量的定义──与结构变量类似 (1)间接定义 例如,enum weekdays workday; (2)直接定义 例如,enum [weekdays] {Su,M,Tu,W,Th,F,Sa } workday; 3.说明 (1)枚举型仅适应于取值有限的数据。 例如,根据现行的历法规定,1周7天,1年12个月。 (2)取值表中的值称为枚举元素,其含义由程序解释。 例如,不是因为写成“Sun”就自动代表“星期天”。事实上,枚举元素用什么表示都可以。(3)枚举元素作为常量是有值的──定义时的顺序号(从0开始),所以枚举元素可以进行比较,比较规则是:序号大者为大! 例如,上例中的Sun=0、Mon=1、……、Sat=6,所以Mon>Sun、Sat最大。 (4)枚举元素的值也是可以人为改变的:在定义时由程序指定。 例如,如果enum weekdays {Sun=7, Mon=1,Tue, Wed, Thu, Fri, Sat};则Sun=7,Mon=1,从Tue=2开始,依次增1。 定义已有类型的别名: 除可直接使用C提供的标准类型和自定义的类型(结构、共用、枚举)外,也可使用typedef 定义已有类型的别名。该别名与标准类型名一样,可用来定义相应的变量。 定义已有类型别名的方法如下: (1)按定义变量的方法,写出定义体; (2)将变量名换成别名; (3)在定义体最前面加上typedef。 [案例10.9] 给实型float定义1个别名REAL。 (1)按定义实型变量的方法,写出定义体: float f; (2)将变量名换成别名: float REAL; (3)在定义体最前面加上typedef: typedef float REAL; 说明:用typedef只是给已有类型增加1个别名,并不能创造1个新的类型。就如同人一样,除学名外,可以再取一个小名(或雅号),但并不能创造出另一个人来。

《C程序设计语言》读书笔记及课后答案

通过一周多的学习,大体看完了《C程序设计语言》这本书,这是我的笔记。 (一)读这本书的目标是什么? (1)、读完后必须深入了解C的语法以及内涵,并且达到熟练应用。 (2)、通过练习习惯一种编程风格,深入理解指针,数组,结构体以及内存分配。 (3)、通过练习锻炼逻辑思维能力 (4)、学完后编程要上一个层次,自己能够编写出有用的C代码。 (二)这本书哪个部分是我要重点看的? (1)、指针、数组、结构体 (2)、内存分配 (3)、输入输出及接口问题 (三)读这本书我有什么收获? 3、1 对于本书的感受 这是一本经典的C语言书籍,与其他语法书不同的是所有语法都是用例题来讲的,通过例子理解并练习语法,另外这本书的习题比较难做,不是简单的考语法,而是一些有意义的习题。通过做练习发现还是有所收获的。本书中与Linux联系密切,用C重写了许多简化版的Shell命令如:grep,ls,cat,sort,tail,cp等等。 3、2 收获: 因为本来就有C语言的基础知识,所以对于语法问题基本没有多学新的知识,但是仍然对以下几点有了新的了解: 1)、位字段,不管是通过直接设置位字段还是用以前的位计算,都有新的了解与认识。 2)、指针。建立了“指针为大”的思想,对于应用指针进行类型转换以及运算 都有了新的认识。比如:int a=5,char* p, p=(char)&a,*p = ‘c’;建立这样的过 程对于更加复杂的指针转换就理解了。 3)、结构体。通过第六章对于二叉树以及哈希表的应用深入了解结构体, 并且通过调试程序观察递归过程,同时对递归有了一定的理解。 4)、内存分配malloc函数,通过第八章的学习对malloc函数的内部进行分析, 理解了动态内存管理机制。 3.3 学习的程度以及那些地方存在不足: 对于C的基本语法已经差不多了,但是否达到了当初的目标即在编程方面上一个层次,这我并不敢确定,因为到现在为止这本书上的习题有些我都没有搞定,又看了一下以前的有关C的东西是觉得已经好了许多了,最起码对于很麻烦的程序不再感到畏惧了。另外觉得自己对于某些问题还是没有理解透彻,比如说输入输出时的缓冲机制,比如说指针与结构体的灵活运用,比如说如何能够运用模块化的思想把一个大的问题逐步细分,通过一个一个的小模块(函数)逐步解决,这些有的是与逻辑思维有关,有些是与某方面的专业知识有关,有些是单纯与C有关,比如说有关缓冲与内存的知识要了解操作系统,另外编译原理也要知道,这些我以前都没有学过,以后会找机会补一补。当然随着进一步的学习与应用,会逐渐的熟练或理解某一些知识点。另外因为时间的原因,对于许多练习没有真正的从各个方面去思考,只是做出来就完了,也没有返回去再仔细考虑每一道习题的意义以及对于我的收获。 所以还有待以后有时间在对某些知识点进行学习。 习题是本书的重点,也用了不少时间,其中有些是通过对章节内容的学习后自己做出来的(S),有些是参考别人的,参考的原因主要有: (A)对题目不理解,不明白具体要做到什么程度。

相关主题
文本预览
相关文档 最新文档