当前位置:文档之家› c语言顺序结构讲义

c语言顺序结构讲义

c语言顺序结构讲义
c语言顺序结构讲义

目录

第一章C语言概述 (2)

一、计算机语言 (2)

1、机器语言 (2)

2、汇编语言 (2)

3、高级语言 (2)

4、高级语言程序的执行原理 (3)

二、C语言历史 (3)

三、C语言的特点 (3)

四、简单的C语言 (5)

1、程序的结构 (5)

第三章数据类型、运算符与表达式 (7)

一、C语言的数据类型 (7)

1、基本类型 (7)

2、构造类型 (7)

3、指针类型 (7)

4、空类型 (7)

二、存储空间 (7)

二、常量 (8)

三、变量 (8)

四、整型数据 (9)

五、符点型数据 (11)

六、字符型数据 (12)

1、字符型常量 (12)

2、字符变量 (13)

3、字符串常量 (15)

七、变量赋值 (15)

八、各数据类型之间的混合运算 (16)

九、算术运算符和算术表达式 (17)

第四章顺序程序设计 (22)

一、C语句 (22)

1、C程序的语句 (22)

2、简单编程举例 (22)

二、数据的输入输出 (22)

1、printf()函数 (22)

2、格式字符 (23)

3、用scanf函数输入数据 (25)

第一章C语言概述

一、计算机语言

1、机器语言

面向机器编程

机器语言(machine language)是一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指指令系统它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。机器语言用指令代码编写程序。

2、汇编语言

面向机器编程

汇编语言(AssemblyLanguage)是面向机器的程序设计语言。也称为符号语言。用指令助记符来编写程序。汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。

3、高级语言

与计算机的硬件结构及指令系统无关,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述

各种算法,而且容易学习掌握。高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如目前流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,VC,易语言,中文版的C语言习语言等等,这些语言的语法、命令格式都不相同。但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。

4、高级语言程序的执行原理

编写程序—编译程序产生目标程序---执行程序

5、汇编语言程序的执行原理

汇编程序是系统软件中语言处理系统软件,汇编程序把汇编语言翻译成机器语言的过程称为汇编。

二、C语言历史

C语言兼具高级语言和汇编语言的优点,即可以编写系统软件也可以编写应用软件。

1960年出现ALGOL 60是一种面向问题的高级语言,不宜用于编写系统程序。是C语言的前身。

1963年英国剑桥大学推出了CPL,1967年英国剑桥大学的Martin Richards推出了BCPL简称B语言,编写了UNIX系统。

C语言保持了BCPL和B语言的优点。

三、C语言的特点

1. 简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。C 语言可以象汇编语言一样对位、字节和

地址进行操作, 而这三者是计算机最基本的工作单元。

2. 运算符丰富

共有种34个运算符

3. 数据结构丰富

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。

4. C是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

5. C语法限制不太严格、程序设计自由度大

一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。

6. C语言允许直接访问物理地址,可以直接对硬件进行操作

因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。

7. C语言程序生成代码质量高,程序执行效率高

一般只比汇编程序生成的目标代码效率低10へ20%。

8. C语言适用范围大,可移植性好

C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。

四、简单的C语言

1、程序的结构

(1)语句

每条语句后面必须以分号结尾

(2)注释语句

对程序语句进行解释,不参与编译与执行,用于帮助读者理解程序

单行注释://

多行注释:/* */

(3)结构

主函数和其它函数构成

函数是C程序的基本单位,容易实现模块化

(4)函数的结构

int aa(int a,int b) //首部

{ //函数体

}

(5)C程序的结构

#include //头文件

Void main() //主函数

{ //函数体

Printf(“This is a C program.\n”); //语句

}

一个C程序总是从main函数开始执行,main函数在程序的位置是任意的。

(4)语法要求

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

一、C语言的数据类型

1、基本类型

整形:int

字符型:char

浮点型:单精度、双精度

枚举类型

2、构造类型

数组类型

结构体类型:不同数据类型的数据存放在一起,但各是各的内存空间

共用体类型:不同数据类型放在一起,共用一个内存地址

3、指针类型

4、空类型

二、存储空间

1、局部变量存储在栈中

2、全局变量、静态变量(全局和局部静态变量)存储在静态存储区

3、new申请的内存是在堆中

4、字符串常量也是存储在静态存储区

补充说明:

1、栈中的变量内存会随着定义所在区间的结束自动释放;而对于堆,需要手动free,否则它就一直存在,直到程序结束;

2、对于静态存储区,其中的变量常量在程序运行期间会一直存在,不会释放,且变量常量在其中只有一份拷贝,不会出现相同的变量和常量的不同拷贝。

二、常量

1,1.2,-2.2,’a’

1、符号常量的定义

在程序的开头定义符号常量,符号常量一但定义,在程序的作用域内不能对其修改,除非到定义语句中修改。

#define PRICE 30

2、符号常量的使用

3、常量

const a;

三、变量

用于存储数据,并且存储的数据值可以变化

1、变量的命名规则(所有标识符的命名规则)

标识符:变量名,符号常量名,函数名,数组名。

规则:

(1)字母、数字、下划线组成

(2)不能以数字开头

(3)区分大小写,一般变量名用小写字母,符号常量名用大

写字母

(4)长度一般不要超过8个字符,根据不同的系统长度要求不同

(5)见名知意

2、变量定义和使用

所有的变量必须先定义后使用

数据类型变量名;

变量的定义与赋值及使用

int a,b;

int c;

a=5;

b=4;

int a=5,b=6;

四、整型数据

1、整型常量

整数:十进制(123),八进制(0123),十六进制(0x123)

2、整型变量在内存中的存放形式

以二进制存储,一般分配2字节空间,VC++分配4字节。

原码,反码,补码

正数:

反码=原码按位取反

补码=原码

负数:

反码=将该数的绝对值按位取反

补码=反码+1

3、分类

(1)短整型:short int,在定义时int可以省略

Turbo C2.0 分配2个字节,VC++分配2个字节

(2)基本整型:int

Turbo C2.0 分配2个字节,VC++分配4个字节

(3)长整型:long int,在定义时int可以省略

Turbo C2.0 分配4个字节,VC++分配4个字节

(4)取值范围(turbo c/c++)

有符号无符号:数据默认为有符号,可以表示正负数,若只让表示正数需要定义时特殊指出,用unsingned标识符指出。

int a;

unsingned int a;

int、short:最高位为符号位,表示数据的为其余的15位,即范围为-215~215-1(-32768~32767)

unsingned int a;

16位全部用来表示数据,0~216-1(0~65535)

Long为32位,有符号-232~232-1(-2147483648~2147483647)

无符号0~232-1(0~4294967295)

4、定义与使用

int i;

i=10;

4、整型常量的使用

必须对号入座,根据变量的取值范围赋予范围内对应的值,不得超范围。

1234u(U)表示1234为无符号数,最高位也用于存数据

-1234u,将该数转换为补码,然后按无符号数存储

1234l(L)表示1234为long型

五、符点型数据

即为实数

1、浮点型常量(浮点型的数)表示形式

(1)十进制表

必须有小数点:12. 12.5 1.5 0.5

(2)指数形式(e,E)

规范化的表示:1.23e3

非规范化的表示:12.3e2

按指数形式输出时以规范化的形式输出。

2、浮点型变量在内存中的存放形式

占32位,以指数形式存放,将一个数分为小数部分和指数部分,一般用24位(包括符号位)表示小数,用8位表示指数部分。

3、分类

(1)float:32位有效数字6-7,-3.4*10-38~3.4*1038

(2)double:64位有效数字15-16,-1.7*10-308~1.7*10308

(3)long double:128位有效数字18-19 -1.2*10-4932~1.2*104932

4、浮点数运算的舍入误差

超过有效范围外的加减数是会被舍去

float a=12345678900;

float b=a+20;

结果a和b的结果相同,因为float型数据有效位只有6-7位,所以8位以后的数字不能保证正确。

float c=111111.111;//c中只能接受到7位小效数字,最后两位小数不起作用。

六、字符型数据

1、字符型常量

‘a’,’ A’

转义字符

\n:换行

\t:水平制表,跳到下一个TAB

\b:退格,前移一列

\r:将当前光标移到本行开头开始输出字符,或遇到\t则删除输出字符以后\t当中包括的列的字符

printf(" ab c\t de\rfg\n");

printf(" ab c\t de\r\tg\n");

printf("abc\tddd\rff\t\tggg\n");

printf("abc\tddd\rff\t\n");

printf("ffbbbbbbbbbbbbbbggg");

\’:代表一个单引号字符

\”:代表一个双引号字符

\ddd:1-3位八进制数所代表的字符

\xhh:1-2位十六进制数所代表的字符

printf("\101\n");

printf("\002\n");

printf("\003\n");

printf("\x30\n");

2、字符变量

char c1,c2;

一个字符变量中只能存储一个字符,在内存中占一个字节,0-255。以字符的ASCII码的二进制存储。和数值的存储结构相同,所以字符型变量可以与整型变量进行运算,输出可以互通。

注:C语言中默认将char指明为有符号数值,#include

void main()

{

char c1,c2;

char c3=130;

//10000010-01111101-01111110=(-126)

unsigned char c4=130;

c1=97;

c2=98;

printf("%c,%c\n",c1,c2);

printf("%d,%d\n",c1,c2);

c1=48;

c2=49;

printf("%c,%c\n",c1,c2);

printf("%x,%x\n",c1,c2);

c1=48;

c2=49;

printf("%c,%c\n",c1,c2);

printf("%o,%o\n",c1,c2);

c1=c1+1;

c2=c2+1;

printf("%c,%c\n",c1,c2);

printf("%o,%o\n",c1,c2);

printf("%d\n",c3);

printf("%d\n",c4);

}

3、字符串常量

"abc","a"

在内存中以 \0为结束符,会自动加一个\0,所以在内存中"a"占两个字符。

七、变量赋值

int a=10;

int b,c=10;

int d=2,e=3,f=5;

b=30;

八、各数据类型之间的混合运算

include

void main()

{

int a=10;

char b='a';

int c=10;

float i=12.5;

double d=20.5;

long e=10;

double x=a+b+c*i-d/e;

printf("%f",x);

}

九、算术运算符和算术表达式

1、基本算术运算符

+,-,*,/(整数/整数结果为整数,舍去小数部分),%(必须为整型数据参与运算),+(求正),-(求负)除%以外的所有算数运算操作数可以是任何类型

2、优先级与结合性

一般的算术运算都是自左至右结合,个别是自右至左结合

3、强制类型转换

(int)a;

#include

void main()

{

float x;

int i;

x=32767.0;

i=(int)x%3;

printf("x=%f,i=%d\n",x,i);

}

4、自增自减运算符

++i;

i++;

#include

void main()

{

int i=3;

printf("%d\n",i++);

printf("%d\n",i);

printf("%d\n",++i);

printf("%d\n",i);

}

void main()

{

int i=3;

int j=3;

int k=3;

printf("%d\n",i+++j);

printf("%d\n",i);

printf("%d,%d\n",k,k++);

}

十、赋值运算符和赋值表达式

1、赋值运算符

优先级低于算术运算,结合性为:自右向左结合

a=3;

2、赋值的过程中会自动类型转换

(1)将float、double赋给int

int i=3.56;//结果i中存放3

(2)将int赋给float和double

数值不变,小数点后面补够有效位数,float为小数点后面补6位,double为16位。注根据不同的编译系统结果不同。

(3)char赋给int

第一种情况:系统将字符规定为无符号时,低八位存放数值,高八位补0。

第二种情况:系统将字符规定为有符号时,低八位存放数值,低八位最高位为0的话高八位补0,低八位最高位为1的话高八位补1。如果以数值输出时,将该数字的原

码计算出来,减1,各位取反,计算后为负数。

(4)将int,short,long赋给char

只将其低八位原封不动的赋给char

//了解

(5)带符号int赋给long

Int最高位为0,低16位放原数,高16位补0,最高位为1,低16位放原数,高16位补1。

反过来long赋给int截去高16位。

(6)将无符号数赋给有符号数

unsigned int a=65535;

int b;

b=a;

printf(“%d”,b);//b为-1

(7)将有符号数赋给无符号数

void main()

{

unsigned int a;

int b=-1;

a=b;

C语言顺序结构

第四章C语言顺序结构 4.1 C语句概述 一般来说,程序设计语言中的流程控制结构分为3种:顺序结构、选择结构和循环结构。 表达式语句由表达式加上分号“;”组成,其一般形式为:表达式; 函数调用语句由函数名、实际参数加上分号“;”组成。其一般形式: 函数名(实际参数表) 控制语句用于控制程序的流程,以实现程序的各种结构方式。C语言中共有9种控制语句,可以将其分为如下3类: 复合语句:把多个语句用{}括起来组成的一个语句称为复合语句。在程序中应把复合语句看成是单条语句,而不是多条语句。 空语句:只有分号“;”组成的语句。 4.2 赋值语句 赋值语句是表达式语句的一种,是由赋值表达式再加上分号构成的表达式语句,其一般形式为:变量=表达式; 注意在变量声明中给变量赋初值和赋值语句的区别。给变量赋初值是变量声明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。例如int a=1,b;是在变量声明中对变量a赋初值,其等效于如下两条语句; int a,b; /*定义整型变量a,b*/ a=1; /*为变量a赋值*/ 在变量声明中,不允许给多个连续变量赋初值。下列说明是错误的:int a=b=c=1;,必须写为int a=1,b=1,c=1; 4.3 格式输入输出 格式输入输出即向标准输出设备显示器输出数据的语句。 4.3.1 printf函数——格式输出 printf函数称为格式输出函数,其关键字最末一个字母“f”即为格式(format)之意。printf函数的功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。 printf函数调用的一般形式为: printf(“格式控制字符串”,输出列表) 其中,格式字符串用于指定输出格式,可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位等。例如:“%d”表示按十进制整型输出,“%f”表示按十进制浮点型输出,“%c”表示按字符型输出。 类型符类型意义 d 以十进制形式输出带符号整数(整数不输出符号)

C语言顺序结构

第四章C语言顺序结构 4、1 C语句概述 一般来说,程序设计语言中得流程控制结构分为3种:顺序结构、选择结构与循环结构。 表达式语句由表达式加上分号“;”组成,其一般形式为:表达式; 函数调用语句由函数名、实际参数加上分号“;”组成。其一般形式: 函数名(实际参数表) 控制语句用于控制程序得流程,以实现程序得各种结构方式。C语言中共有9种控制语句,可以将其分为如下3类: 复合语句:把多个语句用{}括起来组成得一个语句称为复合语句。在程序中应把复合语句瞧成就是单条语句,而不就是多条语句。 空语句:只有分号“;”组成得语句。 4、2 赋值语句 赋值语句就是表达式语句得一种,就是由赋值表达式再加上分号构成得表达式语句,其一般形式为: 变量=表达式; 注意在变量声明中给变量赋初值与赋值语句得区别。给变量赋初值就是变量声明得一部分,赋初值后得变量与其后得其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。例如int a=1,b;就是在变量声明中对变量a赋初值,其等效于如下两条语句; int a,b; /*定义整型变量a,b*/ a=1; /*为变量a赋值*/ 在变量声明中,不允许给多个连续变量赋初值。下列说明就是错误得:int a=b=c=1;,必须写为int a=1,b=1,c=1; 4、3 格式输入输出 格式输入输出即向标准输出设备显示器输出数据得语句。 4、3、1 printf函数——格式输出 printf函数称为格式输出函数,其关键字最末一个字母“f”即为格式(format)之意。printf函数得功能就是按用户指定得格式,把指定得数据显示到显示器屏幕上。printf函数就是一个标准库函数,它得函数原型在头文件“stdio、h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio、h文件。 printf函数调用得一般形式为: printf(“格式控制字符串”,输出列表) 其中,格式字符串用于指定输出格式,可由格式字符串与非格式字符串两种组成。格式字符串就是以%开头得字符串,在%后面跟有各种格式字符,以说明输出数据得类型、形式、长度、小数位等。例如: “%d”表示按十进制整型输出,“%f”表示按十进制浮点型输出,“%c”表示按字符型输出。 表4-1 d 以十进制形式输出带符号整数(整数不输出符号) f 以小数形式输出单、双精度实数

C语言实验二程序、总结 顺序结构与输入、输出方法

实验二顺序结构与输入/输出方法 一实验目的 1 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自增减运算 符的使用。 2 掌握C语言中赋值语句的使用。 3 掌握C语言中各种数据的输入/输出方法,能正确使用基本格式符。 二实验内容 1 输入下面的程序: #include main() { int i,j,m,n; i=8;j=10; printf("%d,%d,%d,%d\n",i,j,m,n); /* 第5行 */ m=++i; n=j++; /* 第6行 */ printf("%d,%d,%d,%d\n",i,j,m,n); /* 第7行 */ } 运行程序,分析第5行和第7行输出的不同。 调试分析:因为第五行的m,n没有赋初值,所以对应的m,n输出是乱的数字,第七行的m,n在第六行已赋初值,且i和j也相应的自加,结果如下图 ⑴将第6行按如下修改以后再运行,分析第5行和第7行输出的不同。 m=i++; n=++j; /* 第6行 */ 调试分析:m=i++是(m=i,i=i+1)。 n=++j;是(j=j+1,n=j)结果如 下图 ⑵在程序最后增加两行,记录并分析该行的输出。 i=j=8; /* 第8行 */ printf("%d,%d,%d,%d\n",i,++i,j,j++); /* 第9行 */ 调试分析:结果如下图

2 运行以下程序,并分析输出结果 #include main() { int a=-2; long b; float c; b=20000+20000; c=1.23e-1; printf("a=%d,%3d,%-3d,b=%Ld\n",a,a,a,b); printf("a=%o,%x,%u\n",a,a,a); printf("d=%f,%8.2f,%.2f\n",c,c,c); printf("d=%e,%8.2e,%g\n",c,c,c); printf("%c,%s,",'\072',"China"); printf("|-%5.2s|%5.2s|\n","China","China"); } 调试分析: 这个实验主要考察整型,长整型和浮点型等之间的输出,对浮点型小数点左右个数的考察,输出结果如下图 3 按格式要求输入、输出数据。 #include main() { int a,b; float x,y; char c1,c2; scanf("a=%d,b=%d",&a,&b); scanf("%f,%e",&x,&y); scanf("%c%c%c",&c1,&c1,&c2); /* 第8行 */ printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2); } 运行该程序,按如下方式在键盘上输入数据,写出输出的结果。 a=3,b=7 85,71.82 Aa 调试分析:主要是考察对输入输出的理解,以及输入输出要注意的问题,结果

c语言顺序结构程序设计练习题10道

c语言顺序结构程序设计练习题 1、编写程序:输入一矩形的长和宽,计算该矩形的面积。 2、编程:输入求的半径R,计算并输出球的体积。 3、编程:输入三个数,求出这三个数的和以及平均值,并在屏幕上输出。 4、编程:输入一个三位整数x(999=>x>=100),将其分解出百位、十位、各位,并求出各位之和以及各位之积 5、编程:已知三角形的三边a=3,b=4,c=5,求其面积s。(提示:假设有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:S=sqrt(p(p-a)(p-b)(p-c)),而公式里的p 为半周长:p=(a+b+c)/2。 6、编写一个C程序,输出以下信息: ************************** Very Good! ************************** 7、编写一个程序,输入a、b、c三个值,输出其中最大值. 8、写出程序运行的结果: main() { int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 9、写出程序运行的结果: main() { char a ,b, c1,c2; float x ,y; a = 3; b =7; x = 8.5; y = 71.82; c1 = ' A' ; c2 = 'a '; printf("a= %d b = %d/n",a,b); printf("x = %f y = %f",x,y); printf("c1= %c,c2 =%c",c1,c2); } 10、求ax2+bx+c=0方程的根,a,b,c由键盘输入,假设b2-4ac>0。

C语言(顺序结构)习题与答案

一、单选题 1、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序编译时出错。main() /*Beginning */ { int r; float s; scanf("%d",&r); s=π*r*r; printf("s=%f\n",s); } 出错的原因是()。 A.计算圆面积的赋值语句中使用了非法变量 B.存放圆半径的变量r不应该定义为整型 C.注释语句书写位置错误 D.输出语句中格式描述符非法 正确答案:A 解析: A、π这个符合不是C语言的合法标识符,应提前进行常量定义 2、有以下程序 main() { int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); } 程序运行后的输出结果是()。 A.12343514 B.12353514 C.12343513

D.12353513 正确答案:B 解析: B、m++ ++在m后,先使用m的值输出,后给m增1 ++m,++在m前,先给m的值增1后,再输出m 3、有定义语句:int b;char c[10]; ,则正确的输入语句是()。 A.scanf("%d%s",b,c); B.scanf("%d%s",&b,&c); C.scanf("%d%s",b,&c); D.scanf("%d%s",&b,c); 正确答案:D 解析: D、输入语句整型变量 b 需要取地址 &,c是数组名,本身就代表地址,所以不需要取地址符& 4、有以下程序 main() { int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是()。 A.123 456 789 B.m=123 n=456 p=789 C.m=123n=456p=789 D.m=123,n=456,p=789 正确答案:C 解析: C、输入语句中出现普通字符要按原样输入 5、有以下程序

c语言程序设计实验报告1--顺序结构

福建农林大学金山学院实验报告 系(教研室):专业:年级: 实验课程: C语言程序设计姓名:学号:实验室号:_ 计算机号:实验时间:指导教师签字:成绩: 实验1:顺序结构程序设计 一、实验目的和要求 1.了解Visual C++ DEV_C++的基本操作方法 2.掌握C程序设计的基本步骤:编辑、编译、连接和运行 3.掌握各种类型数据的输入输出方法 4.能够编写一个简单的程序 二、实验内容和原理 1. 输入并运行一个简单、正确的程序。 # include <> int main( ) { printf ("This is a c program!\n"); return 0; } 2. 要使下面程序的输出语句在屏幕上显示:A,B,34,则从键盘输入的数据格式应为AB34__________ 。 #include<> int main() { char a, b; int c;

scanf("%c%c%d",&a,&b,&c); printf("%c,%c,%d\n",a,b,c); return0; 问题1:要使上面程序的键盘输入数据格式为a=A,b=B,34,输出语句在屏幕上显示的结果也为A,B,34,则应修改程序中的哪条语句怎样修改 scanf( “a=%c,b=%c,%d”,&a,&b,&c ); 问题 2:要使上面程序的键盘输入数据格式为A,B,34,而输出语句在屏幕上显示的结果为“A”,“B”,34,则应修改程序中的哪两条语句怎样修改 scanf( “%c,%c,%d”,&a,&b,&c); printf(“\”%c\”,\”%c\”,%d\n”,a,b,c); 3、编程求一个圆的周长和面积。用scanf输入圆半径,输出保留两位小数。 4、输入一个华氏温度F,要求输出摄氏温度C。公式为 c=5/9(F-32),取两位小数。 5、编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf 函数输出这两个字符。 6. 计算定期存款本利之和。 设银行定期存款的年利率rate为%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital 均由键盘输入。(提示:pow为幂函数:pow(2,3)表示23)。 #include <> #include <> int main() { } 三、实验环境

C语言(顺序结构程序设计)习题与答案

1、一个C程序的执行是从( )。 A.本程序的main函数开始,到main函数结束。 B.本程序的main函数开始,到本程序文件的最后一个函数结束。 C.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 D.本程序文件的第一个函数开始,到本程序main函数结束。 正确答案:A 2、C语言规定:在一个源程序中,main函数的位置( )。 A.必须在系统调用的库函数的后面 B.必须在最开始 C.可以任意 D.必须在最后 正确答案:C 3、下面四个选项中,均是不合法的浮点数的选项是( )。 A.160. 0.12 e3 B.123 2e4.2 .e5 C.-e3 .234 1e3 D..18 123e4 0.

4、下面四个选项中,均是合法浮点数的选项是( )。 A.+le+1 5e-9.4 03e2 B.123e 1.2e-.4 +2e-1 C.-.60 12e-4 -8e5 D.-e3 .8e4 5.e-0 正确答案:C 5、下面正确的字符常量是( )。 A.'' B.'W' C."a" D.'\\'' 正确答案:B 6、下面四个选项中,均是不正确的八进制数或十六进制数的选项是( )。 A. 016 0x8f 018 B. 010 -0x11 0x16

7ff -123 D.oabc 017 0x8 正确答案:C 7、下面不正确的字符串常量是( )。 A."12\12" B."0" C."" D.'abc' 正确答案:D 8、在C语言中,要求运算数必须是整型的运算符是( )。 A./ B.= C.++ D.% 正确答案:D 9、若以下变量均是整型,且num=sum=7;则执行表达式 sum=num++,sum++,++num后sum的值为( )。 A.7 B.9 C.10 D.8 正确答案:D 10、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。

C语言习题:顺序、选择、循环

顺序结构程序设计 2.3.1 要点导读 () 与scanf()语句。 printf() 与scanf()语句是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出和输入操作。它们位于库文件中。 2.字符数据的输入输出。 最简单的字符输入输出函数是getchar()和putchar()。两者分别从键盘读一个字符或向显示屏写一个字符。 2.3.2 经典例题分析 1.下列程序运行后输出的结果是。 #include <> void main() 、 { int a=0,b=0; a=10; b=20; printf(“a+b=%d”,a+b); } 分析:printf( )是输出函数,它的括号内由两部分组成: 1)控制字符串,是用双引号括起来的字符串,它包括两种信息: (1) 格式说明。由”%”和格式字符组成,如:%d、%f、%c等。它的作用是将输出 的数据转换成指定的格式输出。 (2) 普通字符。需要原样输出的字符。 - 2)”输出表列”是需要输出的一些数据,可以是表达式。 题目中a的值是10,b的值是20,在 printf(“a+b=%d”,a+b); 格式说明输出表列 中,”a+b= “是普通字符,需原样输出。输出表列是一个表达式,它的结果以整型输出。 答案:a+b=30。 2.下列程序运行后输出的结果是。

#include <> void main() { int a=732; ) printf(“%d\n”,a); printf(“%2d\n”,a); printf(“%10d\n”,a); printf(“%-10d\n”,a); } 分析:d格式符,用来输出十进制整数。其中%d,按整型数据的实际长度输出。%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。 printf(“%d\n”,a);把a的值按原样输出:732。printf(“%2d\n”,a);结果占2列,但732占3列大于2列,所以按实际位数输出:732。printf(%10d\n”,a);结果占10列,但732占3列小于10列,所以左端补7个空格。printf(“%-10d\n”,a); 结果占10列,“-”表示把数值放到左端,732占3列小于10列,所以右端补7个空格。 答案:732 732 □□□□□□□732 /*□表示空格*/ , 732□□□□□□□ 3.已知char a=‘\103’;则语句printf(“%3d”,a);执行后的输出结果为(□表示空格)。 A)□67B)’c’C)67□D)103 分析:’\103’是一个转义字符,表示一个八进制数所代表的字符,转换为十进制为67。printf(“%3d”,a);把’\103’转换为十进制数输出,结果占3列。但67占2列,小于要求的3列,所以左补空格,即□67。 答案:C。 4.下列程序运行后结果是。 #include <> #define a void main() { printf(“%f\n”,a); @ printf(“%e\n”,a); printf(“%4.2f\n”,a); printf(“%3.1f\n”,a); printf(“%10.3f\n”,a); printf(“%-10.3f\n”,a); } 分析:f格式符,用来输出实数,以小数形式输出,小数点后输出6位。所以printf(“%f\n”,a);输出结果为。 %是指,要输出的数占m列,同时小数点保留n位(四舍五入),如果输出的数大于m,

C语言——顺序结构程序设计练习题

顺序结构程序设计习题 一、选择题:(以下各题□代表空格。) 1.以下程序运行的结果是: #include int main() {int m=5,n=10; printf(“%d,%d\n”,m++,--n); } A)5,9 B)6,9 C)5,10 D)6,10 2.以下程序运行的结果是: #include int main() {int a=201,b=012; printf(“%2d,%2d\n”,a,b); return 0 } A)01,12 B)201,10 C)01,10 D)20,01 3.有定义语句int a,b;若要通过语句scanf(“%d,%d,”&a,&b);使变量a得到数值6,变量b 得到数值5,下面输入形式,错误的是: A)6,5<回车> B)6,□□<回车> C)6 5<回车> D)6,<回车>5<回车> 4.设有如下程序: #include int main() {char ch1=’A’,ch2=’a’; printf”%c\n”,(ch1,ch2)); return 0; } 则以下叙述正确的是: A)程序的输出结果为大写字母A; B)程序的输出结果为小写字母a; C)运行时产生错误信息; D)格式说明符的个数少于输出项个数,编译出错。 5.以下程序运行的结果是: #include int main() {int x1=0xabc,x2=oxdef;

x2-=x1; printf(“%X\n”,x2); return 0; } A)ABC B)0XABC C)0X333 D)333 6.以下程序输出的结果是: #include int main() { printf(“\n*s1=%15s*”,”chinabeijing”); printf(“\n*s2=%-5s*”,”chi”); } A)*s1=chinabeijing□□□* S2=**chi* B)*s1=chinabeijing□□□* *s2=chi□□* C)*s1=*□□chinabeijing* *s2=□□chi* D)*s1=□□□chinabeijing* *s2=chi□□* 7.已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的描述是: A)整形变量的输出格式符只有%d一种; B)%x是格式符的一种,它可以适应与任何一种类型的数据; C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的 D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度。 8.以下C程序的运行结果是: #include int main() {long y=-43456; printf(y=%-8ld\n”,y); printf(y=%-08ld\n”,y); printf(y=%08ld\n”,y); printf(y=%+8ld\n”,y); return 0;

C语言(顺序结构、分支和选择结构)

1. 求圆的面积和周长。 2. 输入三角形三边,判断其能否组成三角形,若能,则判断是直角三角形、等腰三角形、 等边三角形、斜三角形。 3. 输入三角形三边,若能组成三角形,则计算三角形的面积。 S=1/2(a+b+c) Area=))()((c s b s a s --- 4. 输入年份,判断其是否是闰年(判断方法,参看课本) 5. 计算圆柱体的体积和表面积 6. 计算如下分段函数 ?????<≤≤<≤=100 10100) log(0||x x x x x x y 7. 从键盘输入一个整数,输入是星期几(分别使用if 语句和switch 语句来实现) 8. 从键盘输入一个整数,输出季节(以北方为例3、4、5是春季,6、7、8是夏季,9、 10、11是秋季,12、1、2是冬季)(分别使用if 语句和switch 语句来实现) 9. 模拟计算器,输入两个数和一个运算符,实现加、减、乘、除的操作(分别使用if 语句 和switch 语句来实现) 10. 求一元二次方程的根 11. 从键盘输入学生成绩,给出其评语(优、良、中、合格、不合格)(分别使用if 语句和 switch 语句来实现) 12. 输入一个三位数,例如123,将其构造成一个新的三位数321后,输出。 13. 输出下三角的九九乘法表 14. 输出如下图形 15. 计算如下问题: ① 1+1/2+1/3+…+1/n ② 1-1/2+1/3-…+1/n(-1)n-1 ③ 1!+2!+3!+4!+5! ④ 1!-2!+3!-4!+5! ⑤ n +++++++++321321211 ⑥ 1)1(321321211+-+++-++++-n n * ** **** ***** ****** * ** **** ***** ****** **** **** **** **** * *** ***** ******* ********* * *** ***** *** *

C语言顺序结构及分支结构编程案例详解

C语言顺序结构及分支结构编程案例详解 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

顺序结构入门——及熟悉环境 1、 答案: #include<> int main() { printf("Good Morining\n"); return 0; } 2、已知某种铅密度为11340kg/m3 ,求厘米铅球有多少kg 这里要求:pi的取值为,小数用double表示,printf("%lf"输出) 输入格式:仅仅一个小数 输出格式:无 输出样例: 答案: #include <> #define midu 11340 int main() { double r = ; double v ; double weigh; weigh = v * midu; printf("%lf", weigh); } 3、两个数相加 输入两个整数 输出两个整数的和 比如输入:1 4 输出:5 答案: #include <> void main() { int a,b; int sum;

scanf("%d%d",&a,&b); sum = a+b; printf("%d\n",sum); } 4、输入两个整数a,b, 比如输入: 1 4 输出:-15 答案: #include <> void main() { int a,b; int sum; scanf("%d%d",&a,&b); sum = (a-b)*(a+b); printf("%d\n",sum); } 5、两个数相加后乘以5 输入:两个整数 输出:两个整数的和乘以5 比如输入: 1 4 输出:25 答案: #include <> void main() { int a,b; int sum; scanf("%d%d",&a,&b); sum = (a+b)*5; printf("%d\n",sum); } 6、 输入格式:仅仅一个小数 输出格式:仅仅一个小数 输入样例: 输出样例: 答案: #include <> #define midu 11340 void main ()

数据结构--顺序表的基本操作(C语言实现)

#include #include #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define OVERFLOW -2 #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedefint status ; typedefintElemType ; typedefstruct{ ElemType *elem; intlength,listsize; }SqList; status InitList(SqList&L)//初始化 { L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem) exit(OVERFLOW); L.listsize=LIST_INIT_SIZE; L.length=0; return OK; } status Build(SqList&L)//建立表 { inti,n; printf("请输入元素个数n和n个元素\n"); scanf("%d",&n); if(n>LIST_INIT_SIZE)//如果n大于当前空间 { L.elem=(ElemType *)realloc(L.elem,(n+LISTINCREMENT)*sizeof(ElemType)); if(!L.elem) exit(OVERFLOW); L.listsize=n+LISTINCREMENT; } for(i=0;i

C语言知识点总结完美版

C语言最重要的知识点总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、#define PI ;这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章 C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---?.obj---?.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!)

第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。 第五节:整数与实数 1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次) a、C语言中的八进制规定要以0开头。018的数值是非法的,八进制是没有8的,逢8进1。 b、C语言中的十六进制规定要以0x开头。 2)小数的合法写法:C语言小数点两边有一个是零的话,可以不用写。 在C语言中可写成1. 在C语言中可以写成.1。 3)实型数据的合法形式: a、就是合法的,且数据是×10-1。

C语言复习题顺序结构

C语言程序设计复习题_顺序结构 一、填空 1、结构化程序设计的三种基本结构是顺序结构、选择结构和循环结构。 2、C源程序的基本单位是函数。C程序的执行总是从main开始的。 3、程序的开发一般要经过编辑、编译、连接和执行等四个阶段。 4、C语言的注释以/*开始, 以*/结束。 5、复合语句以 { 开始, 以 } 结束。 6、仅有一个分号的语句称为空语句。 7、内存的基本单位是字节(byte), 包含8个二进制位(bit)。 8、预处理命令通常以#开始, 到行尾结束。 9、整数-15的8位二进制补码为。 10、整数-16的8位二进制补码为。 11、设double r = ; 则表达式4 / 3 * * r * r * r的值为。 12、若有定义:int m=5,y=2;则计算表达式y+=y-=m*=y后的y值是-16。 13、表达式8/4*(int)(int)*+)的数据类型是int。 14、下面的程序将输出15。 int a = 3, b = 4, c = 5; c = a-- * ++b; printf("%d\n", c); 15、下面的程序将输出9。 int a = 3, b = 4, c = 5; c = a++ * --b; printf("%d\n", c); 二、选择题 1、C程序由D组成。 A) 运算符B) 表达式C) 语句D) 函数 2、在Dev-c++环境下, C源程序文件的扩展名是B。 A) H B) C或CPP C) OBJ D) EXE 3、B是C关键字。 A) main B) return C) printf D) exit 4、C不是C关键字。 A) int B) for C) main D) register 5、D不是合法的C常量。 A) 0x3A B) 057 C) D) 6、B是合法的C常量。 A) 'ab' B) "AB" C) D) 058 7、A是合法的变量名。 A) _007 B) 8th C) you&me D) float 8、C不是合法的变量名。 A) _007 B) x8 C) short D) high 9、在Dev-c++环境中, double类型的数据需要占用D字节内存空间。 A) 1 B) 2 C) 4 D) 8 10、在Dev-c++环境中, float类型的数据需要占用C字节内存空间。

C语言--2.顺序结构例题.总结及练习

C语言—2.顺序结构 序号: 第2章顺序结构流程及应用——知识小结

例题 Ex201 用编程的形式打印学生入学的姓名,性别,年龄,学号和入学成绩/*************************************************** 问题2.2(第25页):学生入学数据保存 知识点说明: 1)printf函数:用于屏幕输出信息; 2)字符串:用双引号作定界符的一串字符; 3)\n:转义字符(参考第24页表2-3),换行符; 4)格式化输出:(格式控制,输出项列表) - %d 输出项以十进制整数格式输出; - 要点:格式项要与输出项一一对应 ****************************************************/ #include "stdio.h" void main()

{ int iAge=20,iNum=201; /*变量定义及初始化*/ char chSex='m'; /*f:female(女);m:male(男)*/ float fScore,fMoney; fScore=580.5; /*变量赋值*/ printf("Tony's personal information \n"); /*屏幕输出:Tony's personal information,然后换行*/ printf("Name:Tony\n"); printf("ID:%d\n",iNum); /*屏幕格式化输出:ID:201*/ printf("Age:%d\nSex:%c\nScore:%f\n",iAge,chSex,fScore); /*屏幕格式化输出,年龄的信息*/ getch(); } Ex202 转义字符输出演示 /*************************************************** 问题2.3(第26页):转义字符输出 知识点说明: 1)转义字符:第24页表2-3列出各种转义字符的说明; 2)\t:后续输出的内容从下一个制表位开始; 3)\n:后续输出的内容从下一行开始(换行) ****************************************************/ #include "stdio.h" void main() { char ch1,ch2,ch3; ch1='n'; /*字符变量赋 值,单字符数据用单引号作定界符*/ ch2='e'; ch3='\167'; /*八进制数167代表的字符w*/ printf("%c%c%c\n",ch1,ch2,ch3); /*以字符格式输出*/ printf("%c\t%c\t%c\n",ch1,ch2,ch3);/*应用转义字符\t*/ printf("%c\n%c\n%c\n",ch1,ch2,ch3);/*应用转义字符\n*/ getch(); } Ex203 计算tom上半年与下半年奖学金之和 /*************************************************** 问题2.4(第27页):格式化输入 知识点说明: 1)scanf( )函数:用于接收键盘输入数据,(格式控制,输入项地址列表) - 格式控制,控制输入项的格式; - 输入项地址列表,指定输入的内容存放到何处; - 输入数据时,数据项之间,通过按空格键或回车键来分隔

C语言第四章顺序结构复习题

顺序结构程序设计复习题 一.选择题 1.已有定义:int a,b; float x,y;,以下正确的赋值语句是:() a) a=1,b=2, b) y=(x%2)/10; c) x*=y+8; d) a+b=x; 2. 有以下程序: main() { int y=1111; printf(“y=%6d\n”,y); printf(“y=%+06d\n”,y); } 程序运行的结果是:() a) y= 1111 b) y= 1111 c) y=1111 d) y= 1111 y=001111 y=+01111 y=+01111 y=1111 3. 有以下程序: main() { int y=456; printf(“*y=%7o*\n”,y); printf(“*y=%-7o*\n”,y); printf(“*y=%07o*\n”,y); } 程序运行的结果是:() a) *y= 710* b) *y= 456* *y=710 * *y=456 * *y=0000710* *y=0000456* c) *y=710* d) *y=456* *y=-710* *y=-456* *y=0710* *y=0456* 4. 有以下程序: main() { float y=3.667; printf(“*%f*\n”,y); printf(“*%7.2f*\n”,y); printf(“*%8.0f*\n”,y); } 程序运行的结果是:() a) *3.667000* b) *3.667000* * 3.67* *3.667 * * 4* *4.000000* c) *3.667* d) *3.667000* *3.667000* *3.67* *3.667000* *4.000000* 5. 已有定义:double a,b;,若要求按输入方式(此处*代表一个空格)**1.0**2.0<回车> 分别给a,b输入1,2,则能正确进行输入的语句是() a) scanf(“%f%f”,&a,&b);

c语言顺序结构程序设计基础练习练习题复习10道.doc

精品文档 c语言顺序结构程序设计练习题 1、编写程序:输入一矩形的长和宽,计算该矩形的面积。 2、编程:输入求的半径R,计算并输出球的体积。 3、编程:输入三个数,求出这三个数的和以及平均值,并在屏幕上输出。 4、编程:输入一个三位整数x(999=>x>=100),将其分解出百位、十位、各位,并求出各位之和以及各位之积 5、编程:已知三角形的三边a=3,b=4,c=5,求其面积s。(提示:假设有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:S=sqrt(p(p-a)(p-b)(p-c)),而公式里的p 为半周长:p=(a+b+c)/2。 6、编写一个C程序,输出以下信息: ************************** Very Good! ************************** 7、编写一个程序,输入a、b、c三个值,输出其中最大值. 8、写出程序运行的结果: main() { int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 9、写出程序运行的结果: main() { char a ,b, c1,c2; float x ,y; a = 3; b =7; x = 8.5; y = 71.82; c1 = ' A' ; c2 = 'a '; printf("a= %d b = %d/n",a,b); printf("x = %f y = %f",x,y); printf("c1= %c,c2 =%c",c1,c2); } 10、求ax2+bx+c=0方程的根,a,b,c由键盘输入,假设b2-4ac>0。 习题

C语言顺序结构及分支结构编程案例(详解)

顺序结构入门——及熟悉环境 1、输出Good Morining 答案: #include int main() { printf("Good Morining\n"); return 0; } 2、已知某种铅密度为11340kg/m3 ,求9.8厘米铅球有多少kg 这里要求:pi的取值为3.141592657,小数用double表示,printf("%lf"输出) 输入格式:仅仅一个小数 输出格式:无 输出样例:5.588431 答案: #include #define midu 11340 int main() { double r = 0.049; double v ; double weigh; v = 4.0/3*3.141592657*r*r*r; weigh = v * midu; printf("%lf", weigh); } 3、两个数相加 输入两个整数 输出两个整数的和 比如输入:1 4 输出:5 答案: #include void main()

{ int a,b; int sum; scanf("%d%d",&a,&b); sum = a+b; printf("%d\n",sum); } 4、输入两个整数a,b,计算(a-b)*(a+b) 比如输入: 1 4 输出:-15 答案: #include void main() { int a,b; int sum; scanf("%d%d",&a,&b); sum = (a-b)*(a+b); printf("%d\n",sum); } 5、两个数相加后乘以5 输入:两个整数 输出:两个整数的和乘以5 比如输入: 1 4 输出:25 答案: #include void main() { int a,b; int sum; scanf("%d%d",&a,&b); sum = (a+b)*5; printf("%d\n",sum); } 6、已知某种铅密度为11340kg/m3 ,求输入球的直径(厘米数),求铅球有多 少kg。 输入格式:仅仅一个小数 输出格式:仅仅一个小数 输入样例:9.8 输出样例:5.588431

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