当前位置:文档之家› C语言程序设计教程

C语言程序设计教程

C语言程序设计教程
C语言程序设计教程

C语言程序设计教程

第一章程序设计基础知识

一、计算机程序:计算机的工作是用程序来控制的;程序是指令的集合,指令是计算机可以识别的命令。

二、程序设计语言:程序设计语言经历了从机器语言、汇编语言到高级语言这样一个发展过程。C语言属于高级语言,但由于它同时具有一些低级语言的特点所以,有人又把C语言称为中级语言。

1、机器语言:由计算机能识别的二进制指令来书写程序设计语言就是机器语言。机器语言是直接对计算机硬件产生作用的,所以不同型号的计算机的“机器语言”不一样。这样就出现了程序移植性差的问题。对人来说很难掌握、操作和学习。只有少数计算机专家或者专业技术人员才使用。

2、汇编语言:汇编语言是一种符号化的指令,如用机器语言10110110代表加法运算,而在汇编语言中用肋记符ADD来代表加法运算。这样一个英文单词虽然简洁、直观且好记,但汇编语言编写的程序要通过翻译才能执行,它的翻译过程就叫汇编过程。(源——目)。

3、高级语言:由接近人类的自然语言(或英语)编写的程序,称为高级语言。高级语言易学,易用,易懂,写出的程序更简洁。

例如:if(y<3) z=x+y;

用高级语言编写的程序不能被计算机立即执行,由编译方式或解释方式翻译成计算机识别的二进制语言。

4、C语言具有高级语言易学、易用、可移植强等优点,而且具有低级语言的执行效率高,可对硬件直接进行操作等优点。

5、C语言具备以下几方面的特点:

①简洁、紧凑,使用方便,灵活。易于学习和应用(32个关键字,9种控制语句)。

由ANSI标准定义的共32个:

auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if while static

注:关键字auto用于说明自动变量,通常不用;volatile(易变的)表示该变量不经过赋值,其值也可能被改变(例如表示时钟的变量、表示通信端口的变量等)。

auto :声明自动变量一般不使用

double :声明双精度变量或函数

int:声明整型变量或函数

struct:声明结构体变量或函数

break:跳出当前循环

else :条件语句否定分支(与if 连用)

long :声明长整型变量或函数

switch :用于开关语句

case:开关语句分支

enum :声明枚举类型

register:声明积存器变量

typedef:用以给数据类型取别名(当然还有其他作用)

char :声明字符型变量或函数

extern:声明变量是在其他文件正声明(也可以看做是引用变量)

return :子程序返回语句(可以带参数,也看不带参数)

union:声明联合数据类型

const :声明只读变量

float:声明浮点型变量或函数

short :声明短整型变量或函数

unsigned:声明无符号类型变量或函数

continue:结束当前循环,开始下一轮循环

for:一种循环语句(可意会不可言传)

signed:生命有符号类型变量或函数

void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)default:开关语句中的“其他”分支

goto:无条件跳转语句

sizeof:计算数据类型长度

volatile:说明变量在程序执行中可被隐含地改变

do :循环语句的循环体

while :循环语句的循环条件

static :声明静态变量

if:条件语句

九、种控制语句:

if语句

if-else语句

switch语句

while语句

do-while语句

for语句

goto语句

break语句

continue语句

②C语言是面向结构化程序设计的语言。

③C语言允许直接对位,字节和地址进行操作。

④数据类型丰富。

⑤C语言生成的目标代码质量高,程序执行效率高。

⑥语法限制不太严格,程序设计自由度大。

⑦运算符丰富(34种表达式)。

按优先级排序,空行表示优先级下降,01为最高,最先算

14~31均为双目,左结合

() 01.圆括号

[] 02.下标

-> 03.指针型结构成员

. 04.结构成员

! 05.逻辑非

~ 06.位非

++ 07.自增

-- 08.自减

- 09.取负

(类型) 10.类型转换

* 11.取内容

& 12.取地址

sizeof 13.求字节

…………………………………………………

此级(5~13)均为单目运算,且都为右结合

* 14.乘

/ 15.除

% 16.求余

+ 17.加

- 18.减

<< 19.左移

>> 20.右移

< 21.小于

<= 22.小于等于

> 23.大于

>= 24.大于等于

== 25.等于

!= 26.不等于

& 27.位与

^ 28.位异或

| 29.位或

&& 30.与

|| 31.或

?: 32.条件运算

……………………………………

此级(32)为三目运算,右结合

= 33.赋值运算

………………………………………………………………

另有10个扩展符+=,-=,*=,/=,%=,>>=,<<=,&=,^=,|=

, 34.逗号运算

6、C语言的产生,它是在B语言的基础上,改进其缺陷,发展出了C语言,其设计目标:

①保持BCPL和B的精练性及接近硬件特点。

②恢复这些语言失去的通用性。

1972年第一个C编译系统投入使用。

1973年unix操作系统用C改写。

1983年对C扩充,发展为C++。

7、C语言是面向过程的设计方法,C++是面向对象的设计方法

面向过程:就是不必了解计算机的内部逻辑,而是把精力主要集中在解题算法的逻辑和过程的描述上,使用过程语言编写程序,通过程序把解决问题的执行步骤告诉计算机

面向对像:既是一种认识世界的方法,又是一种程序设计方法,面向对象的观点认为,客观世界是由各种各样的实体,也就是对象组成,每种对象有自己的内部状态和运动规律,不同对象间的相互联系和相互作用就构成各种不同的系统,并进面构成整个客观世界,按照这样的思想设计程序,就是面向对象的程序设计。

三、计算机中的数据

1、计算机的所有工作,是对一些对高低电平信号表示的数据的处理。在计算机中数据是用统一的二进制数来表示的。因为计算机能识别的是高、低两种电平信号,我们用“0”和“1”这两个符号来表示。“1”表示高电平,“0”表示低电平。这些统一形式的二进制数,由特定的计算机程序解释成不同的文字,图像,声音等。

2、各种进制的转换与表示方法。

①二进制数基本符号:0、1 进位原则:逢二进一。

优点:易于物理实现,二进制数运算简单,机器可靠性高,通用性强。

缺点:对人来说可读性差。

进制基数进位原则基本符号

二进制 2 逢2进1 0 ,1

八进制8 逢8进1 0,1,2,3,4,5,6,7

十进制10 逢10进1 0,1,2,3,4,5,6,7,8,9

十六进制16 逢16进1 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

②十进制转换成二进制的方法是:整数以除2取余;小数以乘2取整的方法。

③八进制数与二进制数的转换方法是:每一位八进制数用三位二进制数表示。如:357=011101111

④十六进制数与二进制数的转换方法是:每一位十六进制数用四位二进制数表示。

例如:9B=1001 1011

⑤二进制、八进制、十六进制数转换成十进制数的方法是:各位数字与它的权相乘,其积相加。

例如:111=1*22+1*21+1*20=7

(3506.2)8=3*83+5*82+6*80+2*8-1=(1862.25)10

(0.2)16=2*16-1=(0.125)10

四、简单的C程序介绍

例如:①最简单的程序

#include /*包含头文件*/

void main() /*主函数*/

{printf(“This is a book\n”);

}

②求两数之和

#include /*包含头文件*/

void main() /*主函数*/

{

int a,b,sum; /*定义变量*/

a=123;

b=456; /* 给变量赋值*/

sum=a+b; /*求a与b的和*/

printf(“sum=%d\n”,sum); /*输出结果*/

}

说明:①函数是对程序的一个抽象概念,是组成C程序的基本构件。

②一个C程序总是从main()函数开始执行。

③语句以分号“;”结束。

④书写格式自由。

⑤用/*……*/做注释,要求注释占程序的50%。

第二章C语言基础

一、C语言的基本符号,标识符,保留字及C语言源程序的基本结构。

1、基本符号:C语言的基本符号共4类。

①26个英文字母(C语言中小写a—z和大写A—Z表示两个不同的字符)。

②阿拉伯数字(0—9)。

③下划线(____)。

④其他特殊符号:

,逗号 ()左右圆括号 <小于号 >大于号 %百分号 .圆点 !感叹号 &(与) ;分号 |竖线 []左右方括号 {}左右大括号

:冒号 /斜杠 *乘号 ?问号 “”双引号 ‘’单引号 ~波折号 =等号 #井号 +加号

2、标识符

在C 语言中,变量名、数组名、函数名和其他用户自定义的数据类型,统称为“标识符”。 用来标识,常量、变量、函数及文件的名字。 标识符的构成规则

①只能用英文字母(大小写皆可)、数字0—9和下划线组成。

②必须以字母(大小写皆可)或下划线开头。

③标识符的长度因各个系统不同,最好不要超过8个字符。 ④不能以保留字作为标识符。

如:x y3 _imax ELSE X A_to_B (正确)。

7x int for break #No bad one re-input(不正确)。

3、保留字。

保留字又称关键字,它是C 语言系统中已定义的专用名字,共32个。主要是一些编辑C 语 言源程序会用到的类型名、命令名等。 4、C 语言的源程序结构

C 语言的源程序由一个或多个函数组成,每个函数完成一种指定的操作。所以又称为函数 式语言。 C 语言源程序结构示图 main() {

printf(“Hello!\n ”); }

①程序由示例函数组成,这些函数中必须有一个且只能有一个main()为名的函数,这个函数称为主函数,整个程序从主函数开始执行,该示例中只有一个主函数而无其他函数。

②main()后面的一对小括号是函数的标志,不能省略。

③printf 是C 语言的格式输出函数,它在屏幕上显示括号内双引号之间的字符串,其中“\n ”表示换行符,第三行末尾的分号,它是一个语句结束标志。

④第二行和第四行是一对大括号,在这里表示函数体的开始和结束,一个函数中所有语句都写在函数体中。

二、C 语言的基本数据类型

数据:是程序命令操作对象

数据类型:是指将数据数据根据表达形式的不同而划分的类别 1、数据类型可分为如下图类型:

2、常量:就是其值不发生变化的量,它相当于数学中的常数,在C 语言中常量分为一般常量和 符号常量两类。

一般常量的使用:

数据类型 基本类型

单精度型 空类型 整型

实型 字符型 枚举型 双精度型 构造型 数组型 结构型 联合型

例:int sum;

sum=10+15; /*10和15是常量*/

printf(“sum=%d”,sum);

字符常量的使用:

例:#define PI 3.14159 /*宏定义*/

main()

{int r;

float I,S;

r=10;

I=2*PI*r;

S=PI*r*r;

Printf(“周长=%f\n”,I);

Printf(“面积=%f\n”,S);

}

3、变量:是指程序在运行过程中,其值会发生改变的量。

4、变量的特性:

①变量的定义格式:(注:变量名的定义要有实际意义。)

变量类型+变量名

如:int clcks; int a=“b”;

float money;

double x;

②程序实例

#include

void main()

{ int num1,num2,sum;

num1=10;

num2=25;

sum=num1+num2;

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

num2=num1+3;

sum=num1+num2;

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

}

程序中的num1,num2和sum都是变量,它们的值在程序的运行过程中都发生了变化,变量定义之后,各变量的初值都是不确定的,num2的第一个确切值是25,当再次给num2赋值时,num2的值又变成了13,其它两个变量的变化情况类似。

5、常量的数据类型

①整型,即整数。又分为十进制整数,八进制整数和十六进制整数。

例:十进制整型常量:35 129

八进制整型常量:以O开头,如O34 (是零不是英文字母O)

十六时制整型常量:以ox或OX开头,如: ox9A OXFF

②实型:即是带小数点的十进制实数,又称浮点型。(分小数形式和指数形式)

例:十进制小数形式: 12.5 12.0 23.1

指数形式:如:1.25E+10 -2.3e-5(正确)

5E2.0 E-3 0.2E0(不正确)

③字符型:字符型常量的主特征是用单引号括起来的单个字符,如将1用单引号括起来,

此时代表一个字符,而非一个整数。

如:‘a’‘A’‘1’

④字符串型:此时“1”代表的是一个字符串型常量。 如:“abc ” “a ” “1”

说明:在C语言中,对于每个字符串常量系统都会自动在它的结尾处加上一个“字符 结束标志”,它是一个空字符串,ASCII 值为0,用转义字符“\0”表示。 6、变量的数据类型(又叫修饰符)

变量的数据类型可分为整型、实型和字符型。(以下的存储空间指的在16位机上) 变量类型 存储空间 数的范围

int (整型) 2字节 -32768——32767(215

-1)

long int (长整型) 4字节 -2147483647——2147483646 unsigned short int (无符号短整型) 2字节 0——65535(216

-1)

unsigned long int (无符号长整型) 4字节 0——4294967295(232

-1) float(单精度实型) 4字节 double(双精度实型) 8字节 char(字符型) 1字节 unsigned char(无符号字符型) 1字节

说明:①整型有四种类型,区别在于两方面,一是存储空间大小的区别,另外是无符号型变量,不能存储负数;

实型变量有两种,区别在于存储空间的大小;字符型变量有两种,存储空间都只有一个字节。 ②一个实型常量数缺省说明为double 类型,如表示float 型,则在实数后加f 或F(34.5F 、34.5f) ③定义变量时可一次定义一个变量,也可一次定义多个变量,但定义多个变量时只能定义同种类型的变量,

变量名之间用逗号隔开。

变量定义实例一

#include void main()

{unsigned int x; /*定义一个无符号的整型*/

float y,a; /*定义两个单精度实型,即浮点型*/ a=x*y;

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

在定义变量时,一次可以定义一个,也可以定义多个,中间用逗号隔开。如:

int i=1;(正确) int i,i=10;(错误) char a=‘m ‘,b=’n ’;(正确) float a=b=c=3.14(错误)

三、C 语言的运算符和表达式(34种) 1、赋值运算符和算术运算符y=3+6; 赋值运算符号是“=”。 作用是将赋值运算符右边的表达式的值赋给左边的变量。 算术运算符分为:

①一般运算符有加、减、乘、除,分别用+、-、*、/(%)来表示,运算符,它们的意义与数学

中的一样。

②特殊运算符。有取余(%),取整(/),自增(++),自减(--)。

说明:取余运算符“%”和取整“/”运算符的区别是,取余运算符只取余数,而取整运算符只取商。如果整数和整数用“/”符号,得到的商是整数,小数和小数用“/”符号,得到的商是小数。 如:8%5=3 8/5=1 8.0/5.0=1.6

自增运算符“++”其功能就是使变量值加1。 自减运算符“—”其功能就是使变量值减1。

自增运算符“++”和自减运算符“—”有两种形式。左增(++C ),右增(C++),左减(--C ) 右减(C--)。

例1:定义一个整型变量:

a=5,执行b=a++ b=++a b=--a b=a — b=5 a=6 b=6 a=6 b=4 a=4 b=5 a=4

整型 实型 字符型

例2:与k=n++完全等价的表达式

A、k=n,n=n+1

B、n=n+1

C、k=++n

D、k+=n+1

2、表达式:是由常量、变量、函数和运算符组合起来的式子,一个表达式有一个值及其类型。

如:a+b; (a*2)/c; (x+y)*8-(a+b)/7; (a=3*5,a*4),(a-10),(a+5);(值为:20)

它们总会计算出一个数值,这个数值可以是整型,浮点型或者是双精度型等,如果要将计算结果赋给一个变量,则要用到赋值表达式,赋值运算符为“=”,由“=”连接的式子称为赋值表达式。用逗号连接起来的叫逗号表达式,它按从左向右的计算方式,而整个表达式的值是最后一个表达式的值。

如:#include

main()

{int a=5,b=7,c=9;

int x,y;

float z;

x=a+b;

y=c/a;

z=(x+y)*(x/c);

printf(“x=a+b=>%d\n”,x);

printf(“y=c/a=>%d\n”,y);

printf(“z=(x+y)*(x/c)=>%f\n”,z);

}

3、关系运算符

C语言中的关系运算和数学中的关系运算一样,大于(>),等于(==),小于(<),大于或等于(>=),小于或等于(<=),不等于(!=)由这些运算符进行比较,结果用0表示假(Flase)

用1表示真(Ture),在实际应用中都是用正数表示真。在计算机中可以比较大小的有:数字,字符,字符串等。

数字比较比值的大小,字符的比较是比它们的ASCII码所对应的值,如:A>E结果为假,因为A 的ASCII 码值是65,而E的ASCII码值是69。字符串的比较就是比较对应位置的字符。

例如:“Jack”和Mary”比较,结果是“Jack”<“Mary”

4、逻辑运算符

逻辑运算符就是指数学中的与、或、非的运算,即平常所说的并且,或者、不是的关系。

&&与(并且)||或!非(不是)

如:xε[-2,9]=>(x>=-2)&&(x<=9)

xε[-2,9]表示,x属于-2到9之间的数。

Year%4==0&&year%100!=0||year%400==0

(8||10)>9=>真Ture (8&&90)>9=>假Flase

!(10>5)=>假flase !(10<5)=>真Ture

5&3=>真3:& 00000011

5:& 00000101

00000001 Ture

例:历年考题,若:char c=‘B’; if(c>=‘A’

所有运算符的优先级

①括号(包括大括号、中括号、小括号)高

②!非

③++ ,-- ,sizeof

④* ,/ ,%

⑤+ ,-

⑥== ,!= ,<= ,>= Y=X>12 ? X+10:X-12

⑦位运算

⑧&& 与

⑨|| 或

⑩?

○11赋值符号=

○12,逗号低

例如:若X、Y、Z为1,则表达式W=++X||++Y&&++Z后,X、Y、Z的值分别为

A、X=1,Y=1,Z=2

B、X=2,Y=2,Z=2

C、X=2,Y=1,Z=2

D、X=2,Y=1,Z=1(正确)

特例:不按优先级运算。当表达式为真时后面就不用计算叫断路。

四、数据的输入与输出

㈠、数据的输出

“数据输出”一般是指把程序的执行结果或提示语句输出到计算机屏幕上。C语言中没有“输出命令”,一切输出都是利用系统提供的输出函数来完成。

Printf 函数

Putchar 函数输出函数

Puts 函数

1、Printf函数(格式化输出函数)

使用格式:Printf(“输出格式”、“输出列表”);

Printf函数的全称是格式化输出函数,即按指定格式完成输出功能,它可向屏幕输出字符、字符串、数值、空行等。在中文操作系统下还可输出汉字。输出的内容可以是执行结果,也可以是提示语。

Printf(

例如:main( )

{int i=5;

float f=32.345;

Printf(“i=%3df=%5.1f\n”,i,f);

Printf(“End\n”);

}

i=%3d f=%5.1f 其中:i=和f=是普通字符,原样输出

% 3 d (表示整型) % 5 . 1 f (表示实型)

(精度)

引号符宽度类型符引号符宽度小数位数类型符

格式控制符完整的格式:

% - 0 m.n l/h 格式字符

%是格式说明的引导符号;

-减号是指定左对齐输出;

0指定空位填0;

m.n指定输出域宽及精度;

l/h输出长度的修正;

格式字符:指定输出的数据类型.

?、输出格式中的三种符号

①转换说明符②转义字符③普通字符

转换说明符用于对各输出项的输出形式进行控制。在Printf函数中,每个转换说明符与每个输出项是一一对应的。转换说明符以%打头,后面跟一个字符。

%c 单个字符%d 有符号十进制整数%f 实型数字(有误差值)

%s 字符串%x 无符号十六进制整数%% 输出%

%o 无符号八进制数%u 无符号十进制整数%e 以指数的形式输出实型数

%g 自动决定输出格式为e和f中较短的一种,不打印无效的0。

说明:格式字符要用小写。

转义字符是字符型常量的特例,以反斜杠打头,一些无法像一般字符那样明确地写出来,如键

盘上的回车、退格之类的专用符号,在C语言中可用转义字符来表示输出;逗号、反斜线、单引号、双引号之类的字符也必须以转义字符的形式才可以在屏幕上输出来。常用转义字符有以下几种:

\n 回车换行\b 退格\t(tab键) \r 回车不换行,光标到当前行的开始

\\ 反斜线\’单引号\”双引号\ddd 1到3位八进制数所代表的字符(01)8‘A’也可用‘\101’表示(82+1=65)

普通字符是指:输出格式中非转换说明符。其主要功能是输出一些说明字符,这些字符可以按实际形式输出到屏幕上。如果要输出汉字,可以把汉字写在“普通字符”中,程序运行时,汉字就可显示出来。?、输出项列表的三类输出项

①变量

②表达式

③字符数组名:当输出一个字符串数组时,在输出项列表中直接用数组名表示数组。对它的转

换说明符的是%s。如:

printf(“%s”,ch); /*ch为一个字符数组*/

例1:输出“Hello”printf(“Hello”)

例2:输出两个int整型变量a和b printf(“%d %d”,a,b)

例3:输出两个int整型变量a和b ,输出的值用空隔隔开并换行

printf(“%d %d \n”,a,b)

例4:两个int整型变量a和b ,a=2,b=3,请输出它们的平均值,并回车换行(两种方法)

printf(“%d \n”,float(a+b)/2)printf(“%d \n”,(a+b)/2.0)

例5:一个int变量a和char型变量b,请输它们的值(要求结果用逗号隔开并换行)

printf(“%d,%c\n”,a,b)

例6:一个int型变量a和char型变量b,请输出它们的值(输出时用反斜线隔开并换行)

printf(“%d \\ %c\n”)

2、 Putchar( )函数

格式:Putchar(输出项)

Putchar函数的作用是向屏幕上输出一个字符,其功能也可用带%c格式符的Printf函数来完成。

Putchar函数中的输出项可以是字符常量、变量或表达式,但不能是字符串。如:

putchar(‘a’)/*输出项为字符常量*/

putchar(ch)/*输出项为字符变量*/

putchar(‘A’+32)/*输出项为表达式*/

putchar(‘\n’)/*输出项为转义字符*/

也可表示为:

printf(“a”)/*输出项字符型常量*/

printf(“%c”,ch)/*输出项字符型变量*/

printf(“%c”,‘A’+32)/*输出项为表达式*/

printf(“/n”)/*输出项为转义字符*/

3、 Puts( )函数

格式:puts(输出项)

puts函数专门用于字符串的输出。输出项可以是字符串常量,字符型数组,还可以是符号常量。

例:#include

#define PREDEF “预定义符号常量”

void main( )

{char str[ ]=“这是初始化字符串”;

Puts(“这是直接使用字符串常量”);

Puts(PREDEF);

Puts(str);

}

这是直接使用字符串常量

结果是这是预定义符号常量

这是初始化字符串

㈡、数据的输入

许多程序都要进行数据输入,输入不同的数值,经过程序的运算,从而得到不同的输出结果。在C语言中,数据输入也是利用系统提供的函数来完成的。系统提供了scanf( )函数、getchar( ) 函数、gets( )函数。

例:#include

main( )

{int x;

Printf(“x=”);

Scanf(“%d”,& x); /*输入变量x的值*/

while(x!=0)

{if(x<0)

Printf(“x的绝对值|x|=%d\n”,- x);

else

Printf(“x的绝对值|x|=%d\n”,x);

Printf(“x=”);

Scanf(“%d”,& x); /*输入变量x的值*/

}

}

此程序在运行时可输入任意正负值,得到的都是绝对值。当输入0时,该程序结束。

1、 Scanf( )函数

格式:Scanf(“转换说明符”,变量地址列表);

“转换说明符”与printf()函数的一致

“变量地址”是通过变量名求地址得到

变量地址格式:&变量名

例一:scanf(“%d,”,&a); /*向变量中输入一个整型数值*/

printf(“%d”,a); /*输出变量的值*/

例二:scanf(“%d%c”,&a,&b);/*分别给变量a和b输入确切的值*/

printf(“%d,%c”,a,b);/*输出变量a和b的值*/

例三:scanf(“%s”,&c); /*向数组c输入确切的值*/

printf(“%s”,c); /*输出数组C中各元素的值*/

例四:读程序

#include

void main( )

{int a;

float b;

scanf(“%d%f”,&a,&b);

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

}

&a(得到两个字节空间的首地址)

&b(得到四个字节空间的首地址)

说明:输入数据的分隔是采用隐含的分隔符,空格,回车,Tab键。

作业题:

鸡兔同笼,设总头数为h,总脚数为f,求鸡兔各多少只?

分析:设鸡为x,兔为y

由题意得:x+y=h

2x+4y=f

用程序编写:

#include

void main( )

{int x,y,h,f;

printf(“请输入总头数和总脚数\n”);

scanf(“%d%d”,&h,&f);

x=2*h-f/2;

y=f/2-h;

if(f>2*h)

{printf(头%d,脚=%d\n”,h,f);

printf(“鸡=%d,兔=%d\n”,x,y);

}

else

printf(“你输入的值有误\n”);

}

2、getchar( )函数

getchar( )函数的功能是返回从键盘输入一的一个字符,它不带任何参数,通常把getchar() 函数放在赋值运算符”=”的右边,而赋值运算符左边是一个字符型变量,这样,从键盘上输入的一个字符,就可以存放在变量中。

例:#include

void main()

{char ch;

ch=getchar();

printf(“%c\n”,ch);

}

运行结果:得到从键盘输入的一个字符,不管你输入很多字符,都只会得到第一个字符。

3、gets()函数

格式:gets(字符数组名)

gets()函数专门用于输入字符串,其中函数参数规定了只能使用数组名而不能用其他。gets 函数将用户键入的换行符之前的所有字符存入字符数组中。

例:#include

void main()

{char ch[10];

int I;

gets(ch);

for(i=0;i<10;i++)

printf(“ch[%d]=%c”,i,ch[i]);

putchar(‘\n’);

}

第三章结构化程序设计

第一节结构化程序设计概念

一、程序的灵魂——算法。

著名计算机科学家沃思(Nikiklans wirth)提出:

数据结构+算法=程序

1、数据结构:是描述数据的类型组织形式。

2、算法:是描述对数据的操作步骤,是计算机求解某一问题而采用的具体方法、步骤。

3、两大类的计算机算法。

①数值运算算法(求数值解,应用成熟)

②非数值运算算法(事务管理,应用广泛)

4、算法的特性:有穷性,确定性,有效性等。

5、算法的描述:描述算法的方法有多种,总归纳为二类:

①文字②图形(符号)

第二节算法的描述方法

一、算法的常用描述方法(四种)

1、带序号的自然语言描述,易懂却不直观,不严格。

如:①0=>s ②1=>n ③s+n=>1……

2、流程图:灵活,自由,形象,直观,可表示任何算法,是描述算法的工具。

3、N—S图(盒图)特点:完全去掉了带箭头的流程线,算法的所有处理步骤都写在一个大矩形框

里(表示方法简单,符合结构化思想)

4、伪代码:用介于自然语言与计算机语言之间的文字及符号来描述算法。(方便,易懂)

100

例:计算s=∑n,写出其算法,(意思是求1

到100的累加和)。

N=1

一种:用自然语言描述:

①0=>s单元②1=>n单元③s+n=>s ④n+1=>n

⑤判断n<=100?为真转3,为假转6 ⑥输出s的值

二种:用流程图表示三种:用N—S图表示

输入/输出处理判断起止连接点流程线

A P

T F

A B

P

A

A

P

0=>s

1=>n

n<=100?

s+n=>s

n+1=>n

输出S的值

第四种:用伪代码描述。

0=>s 1=>n

if (n<=100) s+n=>s n+1=n printf s

三、结构化程序设计的概念方法及要点。

1、结构化程序设计:扔掉了最早的杂乱无章的程序写法,而采用了一种科学的程序设计方法,

称为结构化程序设计方法。C 语言程序设计是典型的结构化程序。 2、结构化程序设计的要点:

①要求程序清晰,可读性强。

②要求程序设计要按一定规范编写程序,而不能随心所欲地设计程序。 ③结构化程序设计方法规定了几种具有良好特性的“基本结构”,用它们作为构成程序的基本 单元。“基本结构”应具有以下特点。

㈠只有一个入口; ㈡只有一个出口;

㈢没有永远执行不到的语句; ㈣没有死循环。

④程序开发应当采取“自顶向下,逐步细化的模块化”的方法,即将一个大任务先分成若干子 任务,每个子任务就是一个模块,如果一个子任务还是太复杂,就再分为若干子任务,如此逐 层分解,逐步细化。 四、结构化程序的三种基本结构。

1966年提出三种基本结构,用这三种基本结构作为表示一种良好算法的基本单元,顺序结构,选择结构,循环结构。任何复杂的算法都是由这三种基本结构按一定规律组成。 1、顺序结构:

程序按语句从上到下的排列顺序依次排列,每条语句必须执行且只能执行一次。 例:a=3;

b=4; c=a+b;

操作步骤按书写的顺序执行。

2、选择结构:

①选择结构的特点:程序的流程是由多条支路构成的,在程序的第一次执行的过程中,根据不 同的情况,只有一条支路被选中执行,而其他支路上的语句被直接跳过。

②选择结构的表示方式:

用流程图表示: 用N —S 图表示 用伪代码表示 if(x!=0) y=sin(x)/x;

n<=100

结束

else

y=1;

是求分段函数

在C语言中,提供了解if语句和switch语句来实现选择结构。

㈠if语句

格式:

if(表达式)

语句;

if(表达式)

{语句;

……

}

例如:if(x>y)

z=x;

if(x>y)

{x=z;

x=x+1;

printf(“%d\n”,z);

}

功能:如果条件为真便执行语句,条件为假时跳过。

例:要求输入一个实数,然后用程序求出这个实数的绝对值。

#include

void main()

{float x,y;

printf(“输入一个实数\n”);

scanf(“%f”,&x);

y=x;

if(y<0)

y=-y;

printf(“%f的绝对值是=%f\n”,y);

}

㈡if else语句

格式:if(表达式)

语句1;

else

语句2;

功能:如果表达式为真,则执行语句1,否则执行语句2。

注:如果使用了复合语句,一定要用在括号括起来。

例1:(exp)?a++:b-- 它表达的意思是:当(表达式)的值为真时,求表达式a++的值,如果(表达式)的值为假,求表达式b—的值。该(表达式)要求不能等于0。如if(x)等价于if(x!=0)。例2:if(x>0)

{printf(“x是一个正数\n”);

x+=1;

}

else

printf(“x是一个负数\n”);

}

例3:#include

void main()

{int x,y;

printf(“请输入整数x的值”);

scanf(“%d”,&x);

printf(“请输入y的值”);

scnaf(“%d”,&y);

if(x>y)

printf(“x>y”\n);

else

{printf(“x可能比y小\n”);

printf(“x可能比y大\n”);

}

}

思考作业题:判断输入的数是奇数还是偶数。

㈢if……else……if语句

格式:if(表达式1)

语句1;

else if(表达式2)

语句2;

else if(表达式3)

语句3;

else

语句4;

功能:如果表达式1为真,则执行语句1,如果表达式2为真,则执行语句2,如果表达式3 为真,则执行语句3,如果3个表达式都不成立,则执行语句4。

例:该例是模拟商场的优惠购物,程序根据顾客购物的多少以及所购商品单价,计算顾客应付金额,计算中要进行优惠打折。(购物超过10件,按8折优惠,购物超过100件,按7折优惠)#include

#define RATE1 1.0f

#define RATE2 0.8f

#define RATE3 0.7f

void main()

{int num; /*商品的购买量*/

float prile,money; /*商品的单价和应付金额*/

printf(“请输入商品的购买量:”);

scanf(“%d”,&num);

printf(“请输入商品的单价:”);

scanf(“%f”,&prile);

if(num<10)

money=RATE1*prile*num;

else if(num<=100)

money=RATE2*prile*num;

else

money= RATE3*prile*num;

printf(“应付金额%f\n”,money);

}

作业题:①用其它方法写出此程序,②判闰年。

㈣if语句的嵌套

在if语句中又包含一个或多个if语句的情况称为if语句的嵌套。

格式:if(条件1)

if(条件2)

语句1;

else

语句2;

else

if(条件3)

语句3;

else

语句4;

例:根据x和y的值输出结果。

#include

void main( )

if(x>0)

if(y>0)

printf(“x和y都是正数”);

else

printf(“x大于0,y不大于0”);

else

if(y>0)

printf(“x不大于0,y大于0”);

else

printf(“x,y都不大于0”);

} 当给x输入一个12的值时,A正确

例二、输两个整型数比较它们的大小。如:mian()

#include {int x,y;

void main( ) scanf(“%d”,x) ;

{int x,y; y=x>12?x+10:x-12;

printf(“请输入x,y的值:\n”); printf(“%d\n”,y);

scanf(“%d%d”,&x,&y); }

if(x!=y) A、0;B、22;C、12;D、10

if(x>y)

printf(“x>y\n”);

else

printf(“x

else

printf(“x=y\n”);

}

例三、输入三个数,输出三个数中最大的数。

#include

void main( )

{int x,y,z,max;

printf(“请输入x,y,z的值\n”);

scanf(“%d%d%d”,&x,&y,&z);

if(x>y)

{if(x>z)

max=x;

}

else

{if(y>z)

max=y;

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

}

}

作业题:给三个数,按从大到小的顺序输出。(用复合语句)

㈤else与if的匹配问题。

每个if可能与一个else相匹配,也可能不与else相匹配,但每一个else都必须与一个if相匹配。

else与if的匹配规则

else总是与它上面最近的if配对,除非用花括号表示出其他选择。

如:if(n>6)

{if(n<12)

printf(“n大于6且小于12\n”);

}

else

printf(“n小于等于6\n”);

另外一种

if(n>6)

if(n<12)

printf(“n>6<12\n”);

else

printf(“n>12\n”);

㈥switch语句

格式:switch(表达式)

{case 常量表达式1:语句序列1; break;

case常量表达式2:语句序列2; break;

case常量表达式3:语句序列3; break;

case常量表达式4:语句序列4; break;

……

case常量表达式n:语句序列n; break;

[default:] 语句序列n+1;

}

注意:常量表达式的值必须是整型,字符型或者枚举型。

工作过程:首先计算switch语句括号中的表达式,然且往下搜索case标号,当表达式的值与某case后面的常量表达式的值相等时,程序从该case语句序列开始向下顺序执行,当程序在执行过程中遇到break语句,程序在此跳出switch结构,如果表达式的值与所有case 后的表达式的值都不相等,则出现两种情况,一是若switch结构中有default标号,则程序跳到default标号后执行语句序列;二是如果没有default标号,程序直接跳出

switch结构。

例:根据考试成绩的等级(a,b,c,d)编写程序。

#include

void main()

{char garde;

printf(“请输入成绩等级a,b,c,d”);

grade=getchar();

switch(grade)

{case ‘a’: printf(“优秀\n”); break;

case ‘b’: printf(“良好\n”); break;

case ‘c’: printf(“一般\n”); break;

case ‘d’: printf(“不及格\n”); break;

default: printf(“输入错误\n”);

}

printf(“程序运行结束,再见!!\n”);

}

要求学生用另外一种方法写程序。

例:省略部份break语句的例子。输出1998年的某月有多天?

#include

void main()

{int month,day;

printf(“请输入月份\n”);

scanf(“%d”,&month);

switch(month)

{case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12: day=31; break;

case 2: day=28; break;

case 4:

case 6:

case 9:

case 11: day=30; break;

default: day=-1;

}

if(day!=-1)

printf(“1998年%d月的天数%d天\n”,month,day);

else

printf(“你输入了无效的月份\n”);

}

作业题:输入0—6的数字以星期的方式输出。

3、循环结构

在C语言中,循环语句是由while语句、do while语句和for语句来实现的,为方便控制程序流程,C 语言还提供了break和continue两个循环辅助语句。

①while语句

格式:while(表达式)

语句;

工作过程:首先计算括号中的测试表达式,如果表达式的值为真,则执行循环体,循环体中的语句执行完后,返回while处,重新计算测试表达式和循环构成的循环结构,执行下

面的语句。依此循环,直到测试表达式的值为假时跳出while循环。

例一、输出0—9的整数。

#include

void main()

{int i;

i=0;

while(i<10)

{printf(“%d”,i);

i++;

}

}

例二、计算5的阶乘

#include

void main( )

{int i=10;

int s=1;

while(i>0)

{s*=i;

i--;}

printf(“%d”,s);

C语言程序设计教程 教学大纲

附件一 C语言程序设计 教学大纲

C语言程序设计 一、本大纲适用专业、层次、总课时 1.适用专业:计算机类 2.层次:大专 3.总课时:64学时 二、课程性质和任务 《C语言程序设计》是计算机应用专业的专业必修课程,主要任务是介绍C语言中的数据类型,运算,语句结构及其程序设计的基本方法。目的是使学生掌握一门高级程序设计语言,学会利用C语言解决一般应用问题,并为后续的专业课程奠定程序设计基础。《C语言程序设计》是一门实践性很强的课程,必须通过上机操作才能掌握所学的知识,所以要特别强调讲授与上机操作相结合,要保证学生有充分的上机条件。 三、课程的基本要求与目标 根据市场对高职网络人才培养规格的需求特点,本课程的总目标是:“以学生为主体,以学生的学习为中心”,通过课程的实施,帮助学生学会学习。使学生的知识、情感、技能得到全面发展,既为今后的专业课程学习打下良好的知识与技能基础,又培养良好的态度,为其将来从事专业活动和未来的职业生涯打下基础。课程内容以“学其所用,用其所学”突出高职教育特点,确保人才培养目标的实现。课程目标如下: (1)知识目标:要求学生掌握基本的程序编写技能。学会利用常见的C程序开发工具的使用,掌握开发环境的配置,掌握常见菜单命令的使用以及整个窗口的布局设置。掌握结构化或模块化程序设计技能,学会数组、函数、三大控制结构、结构体和共用体以及指针的使用。为软件后期维护和管理提供必要的技术支持。 (2)能力目标: C语言程序设计的课程开设是从学生的角度出发,注重培养学生良好的动手实践习惯,注重培养学生严谨的行事风格,尤其注重挖掘学生的潜质,注重培养与社会接轨,培养学生具有踏实工作作风,良好的观察和思考能力强以及团队合作能力。 (3)情感目标:学生提高自己的独立思考和判断能力,通过这种方式能够对工作任务进行有效分析和寻求解决方案;加强自身的程序设计实践能力;培养从事软件研发的职业素养。在学习过程中使学生学会利用网络资源与他人进行交流与

第5章-C语言程序设计(第2版)教材习题答案

【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。2011年10月第二版。ISBN:978-7-302-26972-4。售价:35元。 【答案版本】本习题答案为2012年2月修订版本。 一、选择题 1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。 A. while循环执行10次 B. 循环是无限循环 C. 循环体语句执行一次 D. 循环体语句一次也不执行 2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。 A. 运行程序段后输出1 B. 程序段执行无限次 C. 运行程序段后输出0 D. 程序段中的控制表达式是非法的 3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。 A. int a=1,b=2; while(b--); B. int a=1,b=2; do a++; while(a==b); C. int a=1,b=2; while(a=3); D. int a=1,b=2; do b-- while(b==0); 4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。 do{ printf(“%d\n”,i--); } while(i!=0); A. 0 B. 1 C. 5 D. 无限 5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。 A. 0 B. 5 C. 10 D. 无限 6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。 A. break语句用于循环体内,它将结束该循环 B. break语句用于开关语句,它结束该开关语句 C. break语句用于if语句的内嵌语句内,它结束该if语句 D. break语句在一个循环体内可使用多次 7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。 A. 循环体内可以包含有循环语句 B. 循环体内必须同时出现break语句和continue语句 C. 循环体内可以出现选择语句 D. 循环体可以是空语句 8. 以下不是死循环的是D)for(;(c=getchar()!=’\n’);)printf(“%c”,c);。 A. for(; ; x+=i); B. while(1) { x++; } C. for( i=10; ; i--) sum+=i; D. for( ; (c=getchar() )!=’\n’ ; ) printf( “%c”,c); 9. 执行语句”for(i=0;i++<3;);”后,变量i的值为C) 4。 A.2 B. 3 C. 4 D. 5 10.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C)循环4次。 A. 无限循环 B. 循环次数不定 C. 循环4次 D. 循环3次

C语言程序设计课程设计题目

1 一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2 成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式

进行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3 迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

C语言程序设计课程设计报告

C语言程序设计课程设 计报告 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目: C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C 语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式 ③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述

(完整版)C语言程序设计教程第五章练习题题目

单选题 1、关于数组的定义与初始化,下列哪一项是错误的() A.int arr[5] = {1,2,3,4,5}; B.int arr[] = {1,2,3,4,5}; C.int arr[5] = {1,2,3}; D.int arr[5] = {1,2,3,4,5,6}; 2、在定义数组int arr[10]后,下列选项中对arr的引用正确的是() A.arr[10] B.arr[6.3] C.arr(6) D.arr[0] 3、在C语言中,引用数组元素时,其数组下标的数据类型允许是() A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 4、若int arr[5] = {1,2,3}; 则arr[2]的值为() A.1 B.2 C.3 D.null 5、在执行int arr[][3] = {1,2,3,4,5,6}:语句后,arr[1][0]的值为() A.4 B.1 C.2 D.5 6、关于二维数组,下列选项能正确定义并赋初值的是() A.int n = 5,b[n][n]; B.int a[1][2] = {{1},{3}}; C.int c[2][] = {{1,2},{3,4}}; D.int a[3][2] = {{1,2},{3,4}}; 7、阅读下列程序段: char s[18] = "a book!"; printf("%.4s\n", s); 其输出结果为() A.a book! B.a book C.a bo D.a 8、阅读下列程序: int a[4][4] = { { 1, 3, 5, }, { 2, 4, 6 }, { 3, 5, 7 } }; printf("%d%d%d%d\n", a[0][0], a[1][1], a[2][2], a[3][3]);

C语言程序设计教程答案 杨路明 郭浩志

C语言程序设计教程 习题答案 总主编杨路明 主审郭浩志 文件摘自CSDN

习题1 1、算法描述主要是用两种基本方法:第一是自然语言描述,第二是使用专用工具进行算法描述 2、c语言程序的结构如下: 1、c语言程序由函数组成,每个程序必须具有一个main函数作为程序的主控函数。 2、"/*"与"*/"之间的内容构成c语言程序的注释部分。 3、用预处理命令#include可以包含有关文件的信息。 4、大小写字母在c语言中是有区别的。 5、除main函数和标准库函数以外,用户可以自己编写函数,程序一般由多个函数组成,这些函数制定实际所需要做的工作。 例如: void main() { int a,b,c,s; a=8;b=12;c=6; s=a+b*c; printf("s=%d\n",s); } 3、c语言的特点: 1、c语言具有结构语言的特点,程序之间很容易实现段的共享; 2、c语言的主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译成代码,以实现程序的模块化。 3、c语言运算符丰富,运算包含的范围很广; 4、c语言数据类型丰富。 5、c语言允许直接访问物理地址,即可直接对硬件进行操作,实现汇编语言的大部分功能; 6、c语言语法限制不太严格,程序设计自由度大,这样是c语言能够减少对程序员的束缚; 7、用c语言编程,生成的目标代码质量高,程序执行效率高,可移植性好; 4、合法标识符:AB12、leed_3、EF3_3、_762、PAS、XYZ43K2 不合法标识符:a*b2、8stu、D.K.Jon、if、ave#xy、#_DT5、C.D 5、F2:将当前编辑器中文件存盘 F10:调用主菜单 F4:程序运行到光标所在行 Ctrl+F9:当前编辑环境下,进行编译、连接且运行程序; Alt+F5:将窗口切换到DOS下,查看程序运行结果 6、 (1): ******************** welcome you very good ******************** (2): please input three number;5,7,8 max number is:8 7、main 8、User screen、Alt+F5

C语言程序设计教程第一章练习题题目

单选题 1、下列语言中不属于计算机语言的三大类的是(C)。 A.机器语言 B.汇编语言 C.脚本语言 D.高级语言 2、下列说法中不正确的是(C) A.计算机语言大致可分为三大类,即机器语言、汇编语言和高级语言 B.C语言是一种通用的、过程式的编程语言,具有高效、灵活、可移植等优点 C.C语言属于汇编语言 D.高级语言比汇编语言更贴近于人类使用的语言,易于理解、记忆和使用 3、以下开发工具中不属于主流的开发工具的是(B) A.Visual Studio B.Xcode C.Code::Block D.Eclipse 4、下列选项是对主流开发工具的介绍,其中错误的是(B) A.Visual Studio支持C/C++、C#、F#、VB等多种程序语言的开发和测试 B.Code::Block是一个免费的跨平台IDE,支持C、C++和Fortan程序的开发 C.Eclipse是一种被广泛使用的免费跨平台IDE,最初由IBM公司开发 D.Vim是一款功能非常强大的IDE ( 和其他IDE不同的是,Vim本身并不是一个用于开发计算机程序的IDE,而是一款功能非常强大的文本编辑器,它是UNIX系统上Vi编辑器的升级版。) 5、下列选项中,不属于开发一个C语言应用程序的具体实现步骤的是(A) A.启动开发工具 B.添加源文件 C.编写代码 D.运行程序 6、下列选项中,关于main()函数叙述不正确的是(C) A.一个完整的C语言程序中,有且只能有一个main()函数 B.main()函数是程序的主入口,程序总是从main()函数开始执行 C.如果没有声明main()函数,程序将从第1行开始执行 D.main()函数可以有返回值,也可以没有返回值 7、下面程序中,合法的选项是(D) A.#includeint main() { printf("hello world\n"); return 0; } B.#includeint man() { printf("hello world\n"); return 0; } C.#includeint main() { printf("hello world\n") return 0; } D.#includeint main() { print("hello world\n"); return 0; } 8、下面程序中,运行结果为“1,2”的是(A) A.#includeint main() { int a = 1; int b = 2; printf("%d %d\n",a,b); return 0; } B.#includeint main() { int a = 1; int b = 2; printf("%d,"a); printf("%d\n",b); return 0; } C.#includeint main() { int a = 1, b = 2; printf("%d,,%d\n",a,b); return 0; }

C语言程序设计课程作业

C语言程序设计课程作业_A 一、单选题 1. (4分)设有以下定义int k=7, x=12;,则能使值为3的表达式是() ? A. x%=(k%=5) ? B. x%=(k-k%5) ? C. x%=k ? D. (x%=k)-(k%=5) 答案D 解析C语言程序设计/数据类型与运算/整型算术表达式 2. (4分)以下程序的输出结果是? #include main() { int x=020,y=0x20,z=20; printf('%d,%d,%d ', x,y,z); } ? A. 20,20,20 ? B. 32,16,20 ? C. 16,32,20 ? D. 20,32,20 答案C 解析C语言程序设计/数据类型及运算 3. (4分)C语言中while和do while循环的主要区别是( ) ? A. do-while的循环至少无条件执行一次

? B. while循环控制条件比do-while的循环控制条件严格 ? C. do-while允许从外部转入到循环体内 ? D. do-while的循环体不能是复合语句 答案A 解析C语言程序设计/循环程序设计/while语句与do-while语句 4. (4分)执行语句scanf('%d,%d',&m,&n);使m和n的值分别为1和2,正确输入是( ) ? A. 1 ? B. 1 2 ? C. 1,2 ? D. 12,2 答案C 解析C语言程序设计/顺序程序设计/整型数据的格式输入 5. (4分)sizeof(float)是( ) ? A. 一个双精度型表达式 ? B. 一个整型表达式 ? C. 一种函数调用 ? D. 一个不合法的表达式 答案B 解析C语言程序设计/数据类型与运算/实型变量存储 6.

C语言程序设计教程课后习题答案

第1章 1-3 CAB 4 .c .obj .exe 5 /* */ 6 ; 7 算法 8 ①中级语言:C语言具有高级语言的先进思想又能直接对存储器进行操作,能进行位运算,能实现汇编语言的大部分功能,生成目标代码质量高,程序执行效率高。 ②结构化语言:C语言用函数作为程序模块,以实现程序的模块化,语言简洁、紧凑,具有结构化的特点。 ③可移植性好:C语言不包含依赖硬件的输入输出机制,使C语言本身不依赖于硬件系统,可移植性好。 9 #include main( ) { ; } 10 #include “stdio.h” main() { printf(“This is my first C Program!”); } 第2章 1.yes 2.-3 3.2,1 4.1)a!=b||a<=c 2)x>=4||x<=-4 5.x>20&&x<30||x<-100 6.#include main() { int x; printf(“please input an integar:”); scanf("%d",&x); if(x%5==0&&x%7==0) printf("yes\n"); else printf("no\n"); } 7. #include main() { int year,month; printf("please input the year and month:"); scanf("%d%d",&year,&month);

switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:printf("this month have 31 days."); break; case 4: case 6: case 9: case 11:printf("this month have 30 days."); break; case 2:if(year%4==0&&year%100!=0||year%400==0) { printf("this month have 29 days."); break; } else { printf("this month have 28 days."); break; } } } 8. #include main() { float money; int year; printf("\nplease input the money and the year:"); scanf("%f%d",&money,&year); if(year==1) money+=money*0.00315*12*year; if(year==2) money+=money*0.00330*12*year; if(year==3||year==4) money+=money*0.00345*12*year; if(year>=5&&year<=7) money+=money*0.00375*12*year; if(year>=8) money+=money*0.00420*12*year; printf("the money is:%f",money); } 第3章

《C语言程序设计》课程设计

《C语言程序设计》课程设计 刘力斌 一、意义和目的 C语言是光信息科学与技术专业的重要专业基础课。在很多后续课程中,都要使用到C语言。 学生通过对C语言的学习,已经具备了使用C语言编写简单的应用程序的能力。为了加强程序设计基础,开设课程设计课,使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。 课程设计目的: 提高用程序设计解决实际问题的能力。 通过提出算法、指定输入输出来设计一个解决方案。 用C语言合理地开发两个简洁有效的程序代码来实现该设计。 测试程序是否工作且满足设计指标并评价其效率。 二、目标 完成本课程设计的学生应能在以下几方面证明你们的能力: A、分析问题。各种简单的与计算机有关的案例中所需要的输出结果,把大问题分解成小问题,使用自顶向下或类似设计方法给出模块化或计划。 B、提出算法执行特定任务。模块表示为算法,使用自顶向下或伪代码等设计手段将模块细化成更详细的成分,清楚地表明顺序、选择和重复等到控制结构。 C、把一个算法变为用C语言编写的结构化程序。 D、用合适的测试方法检查程序是否符合最初的要求,为不合适数据设计错误陷阱,并提供错误信息来帮助用户。 E、写出清晰的用户文档,确保用户或者通过遵循程序中的指示或者使用程序设计者编写的文档能成功地运行程序。 F、写出技术文档,对程序中主要标示符的含义或作用加以说明,并提供一个完整的程序流程图。 G、调试程序、测试数据过程成功。

三、要求 参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而,反映出理解和运用本课程知识的水平和能力。 完成课程设计应提交如下文档: ①程序的总体设计和算法分析。 ②技术文档 ③用户文档 ④源程序代码清单。 ⑤测试数据和测试过程记录。 ⑥遇到的问题及解决方法分析。 四、选题 每人一个题,具体题目可以参考附录。 第一题:链表操作题(包括建立、插入、删除、打印等)(参考教材); 第二题:文件操作,具体题目最好是自拟。 如果选题确实有困难的同学,可参考后面参考题目来完成本课程设计(成绩要影响)。 五、评价 评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的一套文件中,严格检查以下各项任务完成情况: 1、课程设计文档是否齐全。 2、程序的用户文档 如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。 3、问题或任务的陈述(描述问题,而且问题是合理原始的、应当包括输 入、输出及其预期范围。)是否正确。 4、问题的解决方案采取由顶向下设计的形式,在适当的地方使用伪代 码,把整个解决方案划分成若干模块。 5、程序完成后的代码应当加以注解。最少应清楚指出每一个模块。 6、用于检查程序的测试数据,或者对一个控制程序给出测试的例程。测 试应考虑探索通过程序的几条路径,在合适的地方选择打印输出来。 7、程序的技术文档

C语言程序设计教程 清华大学出版社 陈明主编 第4章答案

第4章习题解答 一、选择题 1.在C语言中,函数返回值的类型最终取决于 A)函数定义时的函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主调函数所传递的实参类型D)函数定义时形参的类型 解析:函数返回值类型最终取决于定义函数时所定义的函数类型。 答案:A 2.设函数Fun()的定义形式为: void Fun(char ch, float x){} 则以下对函数Fun()的调用语句中,正确的是。 A)Fun("abc", ; B)t = Fun('D', ; C)Fun('65', ; D)Fun(32, 32); 解析:选项A中"abc"是字符串,与形参不匹配:由于Fun函数的返回值类型为void,所以选项B中进行了赋值操作是不正确的;在选项C中,'65'是不合法的字符形式,单引号中应该是单个字符。只有选项D才是合法的函数调用形式。 答案:D 3.有以下程序: /* 文件路径名:ex4_1_3\ */ #include <> /* 标准输入/输出头文件*/ int f1(int x, int y) { return x > y x : y; } int f2(int x, int y) { return x > y y : x; } int main(void) /* 主函数main() */ { int a = 4, b = 3, c = 5, d = 2, e, f, g; /* 定义变量*/ e = f2(f1(a, b), f1(c, d)); f = f1(f2(a, b), f2(c, d));/* 调用函数*/ g = a + b + c + d - e - f; /* 算术运算*/ printf("%d,%d,%d\n", e, f, g); /* 输出e,f,g */ return 0; /* 返回值0, 返回操作系统*/ } 程序运行后的输出结果是。 A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7 解析:函数f1用于求两个数中的最大数,而函数f2用于求两个数中的最小数。因此有:e=f2(f1(a,b),f1(c,d))=f2(f1(4,3),f1(5,2))= f2(4,5)=4; f=f1(f2(a,b),f2(c,d)) =f1(f2(4,3),f2(5,2)) =f1(3,2)=3; g=a+b+c+d-e-f=4+3+5+2-4-3=7。 答案:A

《C语言程序设计》课程设计教学大纲

《C语言程序设计》课程设计大纲 课程中文名称:C语言程序设计课程设计 课程英文名称:C language programming curriculum design 课程编号:090010031 适用专业:计算机、网络、信管、软件学时数:2周学分数:2 课程类别:必修应开课学期:第三学期 执笔者:安葳鹏审核人:基础教学部 批准人:高岩定稿日期:2013年5月7日 一、课程的目的和意义 《C语言程序设计》课程设计是在学习《C语言程序设计》课程之后进行的一个实践教学环节,学生运用所学的知识,在教师指导下,独立进行。课程设计的目的和意义是: 1、进一步加深对所学基本理论知识的理解和掌握,完善理论和实践的衔接;进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解; 2、针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。 3、掌握C语言的编程技巧和上机调试程序的方法。 4、掌握程序设计的常用算法,培养学生运用所学知识分析问题,解决问题的能力。 二、课程设计基本要求 1.独立、按时、按质、按量完成本课程设计; 2.充分理解并掌握相关理论,熟悉程序设计的控制结构以及设计流程; 3.完成课程设计后,将设计任务书、设计说明书按要求装订成册。 三、设计内容及任务 原则上,学生从以下题目中任选一题进行课程设计。在课程设计指导老师的指导下,也可以选择其他题目,但要保证工作量,并满足课程设计的相关要求。

1、人机猜数游戏 由计算机“想”一个四位数,请人猜这个四位数是多少。人输入这个四位数后,计算机首先判断这四个数中有几个猜对了,并且在猜对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数为止。请编程实现该游戏,游戏结束时,显示人猜一个数用了几次。 提示:用库函数random()产生一个随机数。 2、编一程序,实现将输入的一个无符号整数转换为二进制、八进制和十六进制表示,分别存入字符数组中并输出。(提示:算法采用模拟人工法。) 说明:计算机模拟人工是编程中常用的方法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。 3、计算分数的精确值。使用数组精确计算M/N(0

《C语言程序设计》课程标准

《C语言程序设计》课程标准 课程编码: 03012208 课程模块:专业必修课 学时: 90 课程类型: B类(理论+实践) 适用专业:计算机网络专业 1. 概述 C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。 C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复 杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实 现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软 件的开发,也适合于应用软件的开发。 本课程旨在使学生掌握程序设计的基本方法及思维,形成程序设计基本思想,掌握程序 调试的基本方法,使学生初步具备程序设计能力,为学生进一步学习其他专业课程和今后从 事网络技术工作打下坚实的基础。 1.1课程的性质 《C语言程序设计》是一门专业必修课,是学习其它工科课程的基础。掌握程序设计的 前提是掌握程序设计语言,C语言以其灵活性和实用性受到了广大计算机应用人员的喜爱。 一旦掌握了C语言,就可以较为轻松地学习后续的Java程序设计、数据库技术等程序设计 语言。本课程以程序设计思想为主线,介绍C语言的基本概念和程序设计的思想和方法, 培养学生运用C语言解决实际问题的能力。 前导课程:计算机文化基础等。 后继课程:Java程序设计、数据库技术、信息安全技术、网络操作系统等。 1.2课程设计理念 通过对多家IT企业的走访,我们了解到自学能力、动手能力、团队协作能力是现代企 业对人才的共同要求。因而我们也把培养具有这些能力的学生作为我们的课程目标,把对这 些能力的培养融入到平常的授课过程中。对以计算机网络、汽车电子等专业为代表的学生, 主要注重项目分析,流程图设计以及编程技巧和方法的培养,为进一步培养软件项目综合开 发和应用能力作准备。 1、基于工作过程,以职业能力培养为重点,与行业企业合作进行的课程开发与设计。 在课程的讲授过程中,采用任务驱动的模式,以案例教学为主。在学生掌握了相应知识 点后,再提出新的问题,要求学生通过修改已有的代码加以解决。在修改代码的过程中,既 培养了学生的自学能力,又锻炼了学生的动手能力。 另外,我们把企业中的一些要求带到了教学过程中。例如代码必须加注释,标识名必须 用英文单词等。 2、课程设计充分体现了职业性、实践性和开放性的要求。

《C语言程序设计实践教程》答案-完整版

4.2练习题 一、选择题 1.D 2.B 3.A 4.B和D 5.C 6.A 7.B 二、填空题 1.//或/* */ 2.主或main 3.函数首部和函数体4.编译和连接 5.分号 5.2练习题 一、选择题 1.A 2.D 3.B 4.B 5.C 6.C 7.D 8.A 9.B 10.B 11.D 12.B 13.A或B 14.C 15.B

17.D 18.D 19.C 20.D 21.B 22.A 23.D 24.C 25.C 26.B 27.C 28.D 29.A 30.B 二、填空题 1.102,10 2.#define 宏名字符串 3.1 4.n=1 5.-4 6.a=1,b= ,c=2 7.c=A 8.n1=%d\nn2=%d 9.a+b>c&&a+c>b&&b+c>a 10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.7 12.0 13.11110000 14.8,4 6.2练习题 一、选择题 1.A 2.C 3.D 4.C 5.A

7.A 8.D 9.B 10.C 11.A 12.A 13.C 14.B 15.正确答案为:12345678 二、填空题 1.10 2.y=1 x%i==0 3.屏幕中间输出一个由星号组成的菱形4.1 5.13 6.(cx=getchar())!=-1 front=cx; 7.m%n 8.4 9.*p px=&x py=&y 三、读程序,写结果 1.-1 2.3,1,-1, 3.a=16,y=60 4.x=12,y=4 5.59 7.2练习题 一、选择题 1.B 2.C 3.C 4.A 5.D

新编C语言程序设计教程(机械工业出版社-钱雪忠-吕莹楠)

新编C语言程序设计教程 习题及实验题部分答案 第1章 C 语言概述 1 习题 一、选择题 ADCDB CCBBA 二、简答题 1、什么是语言?语言分几类?各有什么特点? 语言: 语言是思维的载体。人和计算机打交道,必须要解决一个“语言”沟通的问题。如今人与计算机之间有许多种类的“语言”的。 语言分类: 机器二进制语言、汇编语言(低级)和高级语言(第三代、第四代、……) 各自特点: 1)机器二进制语言:用0、1两个数字编写的计算机能直接运行的程序的语言,机器语言执行效率高,但难编写、难懂、难移植。 2)汇编语言(低级):汇编语言的特点是使用一些“助记符号”来替代那些难懂难记的二进制代码,所以汇编语言相对于机器指令便于理解和记忆,但它和机器语言的指令基本上是一一对应,两者都是针对特定的计算机硬件系统的,可移植性差,因此称它们都是“面向机器的低级语言”。 3)高级语言:高级语言类似自然语言(主要是英语),由专门的符号根据词汇规则构成单词,由单词根据句法规则构成语句,每种语句有确切的语义并能由计算机解释。高级语言包含许多英语单词,有“自然化”的特点;高级语言书写计算式子接近于熟知的数学公式的规则。高级语言与机器指令完全分离,具有通用性,一条高级语言语句常常相当于几条或几十条机器指令。 2、汇编语言与高级语言有何区别? 高级语言程序要比汇编语言要易懂、明了、简短得多;高级语言与机器指令完全分离,具有通用性,一条高级语言语句常常相当于几条或几十条机汇编语言指令;高级语言要经过解释或编译来执行的,而汇编语言程序通过汇编程序来生成机器程序来执行的。 3、什么是程序? 完成某一特定任务的一组指令序列,或者说,为实现某一算法的指令序列称为“程序”。不同计算机语言有不同的计算机程序。 4、C语言中为何要加注释语句? 注释部分,起到说明语句或程序的作用。程序中应添加必要的注释,来增强程序的阅读与理解。注释用来向用户提示或解释程序的意义。

C语言程序设计课程教学大纲

C语言程序设计课程教学大纲 第一部分大纲说明 1. 课程性质、任务与目的 《C语言程序设计》是中央电大计算机科学与技术专业(专科起点本科)的一门专业基础课。主要任务是介绍C语言中的数据类型、数据表示、运算规则、语句定义、函数调用、程序结构、文件使用、编程方法等内容。目的是使学生能够利用一种计算机程序设计语言编写出解决较简单的数值计算和数据处理问题的程序,为学习后续课程奠定程序设计和算法设计的基础。 2. 与其他课程的关系 学习《C语言程序设计》课程需要了解计算机基本组成,并具有对计算机进行基本操作的技能。本课程的后续课程为《数据结构》、《操作系统》、《数据库》等。 3. 课程教学特点 《C语言程序设计》是一门知识性和实践性都很强的课程,必须在学习中掌握C语言的语法规则,并在上机实践中体会和加深理解,通过实际的上机操作训练,还能够学习到书本上学不到的知识和技能,提高自己进行程序设计和开发的实际能力。 4. 教学主要内容 (1) 介绍C语言上机操作环境、程序基本结构,系统函数的使用; (2) 介绍常用输入输出函数的作用; (3) 介绍C语言基本数据类型、常量、变量、运算符、数学函数、表达式等的表示与含义; (4) 介绍各种分支语句、循环语句的流程控制功能及相应的程序设计方法; (5) 介绍一维数组和二维数组的定义与作用,字符串数组的特殊存储格式与作用; (6) 介绍指针的定义和运算,变量存储空间的动态分配,数组名的指针含义;

(7) 介绍用户函数的定义与调用,值参数和指针参数的使用,变量的作用域,递归函数; (8) 介绍结构和联合类型的定义与应用,结构链表的建立和使用; (9) 介绍文件的概念,文件的打开和关闭,字符文件和字节文件的处理操作。 (10) 介绍利用C语言编写解决实际问题的程序设计思路和方法。 5. 教学基本要求 本课程教学内容包括了解、理解和应用三个层次,并且逐步递进,具体含义如下: (1) 了解层次:记忆C语言中的基本概念和语法规则; (2) 理解层次:掌握C语言中的每个语法成分和语句的定义格式、含义及作用; (3) 应用层次:利用C语言,结合实际解决问题的需要,能够分析和编写程序。 第二部分媒体使用和教学过程建议 1.课程学分和学时 本课程为4学分、72学时、第一学期开设。电视、实验和面授辅导学时各为20、27和25学时。课程中各章内容及学时分配如下表所示。 序号内容电视学时实验学时面授学时 一C语言概述 2 2 2 二数据类型与表达式 3 2 3 三流程控制语句 3 4 3 四数组和字符串 2 4 3 五指针 2 4 3 六函数 3 4 4 七结构与联合 3 4 3 八文件 2 3 4

C语言程序设计课程设计大全

C语言课程设计 一、课程设计目的 ◆进一步巩固和复习C 程序设计的基础知识。 ◆培养学生结构化程序、模块化程序设计的方法和能力。 ◆提高学生调试程序的技巧和软件设计的能力。 ◆提高学生分析问题、解决问题以及综合利用C 语言进行程序设计的能力。◆了解软件的编制过程。 ◆树立团队合作精神 二、课程设计内容 设计要求 可自己选定一信息管理方面的题目,最多5人一组。 题目一:职工信息管理系统设计 https://www.doczj.com/doc/841269310.html,/view/76e2ddceda38376baf1fae81.html 职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能: 系统以菜单方式工作 职工信息录入功能(职工信息用文件保存)--输入 职工信息浏览功能--输出 查询和排序功能:(至少一种查询方式)--算法 按工资查询 按学历查询等 职工信息删除、修改功能(任选项) 题目二:图书信息管理系统设计 https://www.doczj.com/doc/841269310.html,/view/6751448ad0d233d4b14e69c2.html 图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能: 系统以菜单方式工作 图书信息录入功能(图书信息用文件保存)--输入 图书信息浏览功能--输出 查询和排序功能:(至少一种查询方式)--算法 按书名查询 按作者名查询 图书信息的删除与修改(可选项) 题目三:学生信息管理系统设计 https://www.doczj.com/doc/841269310.html,/view/1423e5e8e009581b6bd9eb62.html 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能: 系统以菜单方式工作 学生信息录入功能(学生信息用文件保存)---输入

C语言程序设计课程总结

本课程总结 姚琳主编(第二版) 第一章C语言程序设计概述 目的:初步了解C语言程序,学会使用C语言环境编辑运行C程序。 要求:掌握程序设计语言、程序、算法的概念,了解算法的特点,熟悉算法的设计步骤,掌握用流程图表达算法的方法。了解C语言程序的结构特点,掌握在Turbo C集成环境下编辑、运行简单C语言程序的方法。 教学重点:C语言程序的结构特点;在VC集成环境下运行C程序 教学难点:算法设计和算法描述。 一.算法: 算法:就是解决问题的方法。 计算机算法可分为两类别: 数值运算算法 —求数值解,用在科学计算。 非数值运算算法 —求非数值解,用在事物处理。 数值运算算法 例如:已知三角形的底a等8,高h等14,求三角形的面积s。 则 数值运算算法为: 1、a=8 a的值等于8 2、h=14 h的值等于14 3、s=a*h/2 计算面积S

非数值运算算法 例如从湛江乘火车去北京开会,其算法为: 1、买火车票 2、按时到车站 3、登上火车 4、到北京站后乘电车到会场 5、参加会议 二.C语言的特点: 1·C语言简洁、紧凑,使用方便、灵活。 5·语法限制不太严格,程序设计自由度大。 6·C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 3·数据结构类型丰富。 4·具有结构化的控制语句。 7·生成目标代码质量高,程序执行效率高。 8·与汇编语言相比,用C语言写的程序可移植性好。 2·运算符丰富。共有34种。C把括号、赋值、逗号等都作为运算符处理。 三.C语言的基本结构 (1)函数是组成C程序的基本单位,一个C的源程序有且只有一个main函数,但可以有若干个其它的函数。 (2)一个函数由两个部分组成: 函数的首部:函数的第一行,包括函数名、函数类型、函数参数(形参)名、参数类型等。 函数体:由声明和执行两部分组成。 (3)一个C程序总是从main函数开始执行的,不管main函数在整个程序中的位置如何。 (4)C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多

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