c语言程序设计课程教学大纲(公共课)

c语言程序设计课程教学大纲(公共课)
c语言程序设计课程教学大纲(公共课)

甘肃民族师范学院计算机专业课程教学大纲

C语言程序设计

一、说明

(一)课程性质

必修课

(二)教学目的

本课程是为本科生开设的计算机公共课,以培养学生程序设计能力为目的的基础课。本课程的任务是结合一般数值计算向学生介绍计算机程序设计的基本知识,使学生掌握C语言的基本语法,掌握程序设计的基本思想、基本概念和基本方法和技巧,并能运用所学的知识和技能对一般问题进行分析和程序设计,编制出高效的C语言应用程序;同时了解进行科学计算的一般思路,培养应用计算机解决和处理实际问题的思维方法与基本能力,为进一步学习和应用计算机打下基础。

(三)教学内容

计算机程序语言发展史,结构化程序设计的三种基本结构,函数,数组,指针。

(四)教学时数

60学时,40理论,20上机

(五)教学方式

多媒体授课

二、本文

第一章C语言程序设计基础

教学要点:

C程序的基本结构。上机环境,进行简单C程序的编写。

教学时数:

4学时(理论3学时,上机1学时)

教学内容:

第一节概述

程序设计语言的发展。C程序的基本结构。

第二节开发环境

上机环境,进行简单C程序的编写。

考核要求:

1.掌握编写C语言程序的基本步骤。

2. 掌握上机调试过程。

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

教学要点:

数据类型。表达式。输入输出函数。

教学时数:

12学时(理论8学时,上机4学时)

教学内容:

第一节数据类型

整型、实型、字符型、枚举型、构造类型、指针。

第二节常量与变量

第三节运算符与表达式

算术运算符及表达式、关系运算符及表达式、逻辑运算符及表达式、逗号运算符及表达式、条件运算符及表达式、赋值运算符及表达式。

第四节标准输入/输出

scanf()函数、printf()函数。

第五节数学函数

数学库头文件

第六节随机数发生器函数

rand()和srand()函数,对应的头文件“stdlib.h”。

考核要求:

1.理解数据结构、常量、变量的概念;

2.掌握各种运算符的优先级及结合方向;

3.熟练掌握数据的输入、输出方法;

4.了解其他数学函数及随机函数的使用方法。

第三章程序控制结构

教学要点:

结构化程序设计的三种基本结构:顺序结构、分支结构、循环结构;

教学时数:

14学时(理论9学时,上机5学时)

教学内容:

第一节程序的基本结构

顺序结构、分支结构、循环结构。

第二节语句

第三节顺序结构

第四节选择结构

单分支语句,双分支语句、多分支语句

第五节循环结构

while循环、do-while循环、for循环及goto构成的循环;

第六节结构化程序设计的方法

自顶向下、逐步细化及模块化的程序设计方法

考核要求:

1.熟练掌握程序设计的三种基本结构及语句;

2.了解结构化程序设计的方法。

第四章函数与预处理

教学要点:

函数及参数、返回值的概念,函数定义及调用方法;

教学时数:

12学时(理论8学时,上机4学时)

教学内容:

第一节函数的定义与声明

函数的定义和声明是两件不同的事情。函数的定义是指依照函数定义的格式,编写若干程序语句以实现函数的功能。函数的声明是指在函数定义好之后,在调用之前对函数的类型和参数的类型进行说明。

第二节函数调用

函数调用的一般形式为:函数名(实参表列)。

第三节函数返回类型与返回值

第四节函数的参数

第五节递归

在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。

第六节变量作用域

全局变量、局部变量。

第七节预处理

C提供的预处理功能有以下三种:1.宏定义2.文件包含3.条件编译。

考核要求:

1.熟练掌握函数的定义、调用的方法;

2.理解变量的作用域、存储类别等概念;

3.会用编译预处理。

第五章数组

教学要点:

数组变量在内存中的存放形式;一维数组、二维数据的定义和引用;字符串与字符数组。教学时数:

12学时(理论8学时,上机4学时)

教学内容:

第一节数组概述

数组变量在内存中的存放形式;

第二节一维数组

一维数组和二维数组变量的定义和数组元素的引用;字符串与字符数组的区别;

第三节二维数组

二维数组变量的定义和数组元素的引用;

考核要求:

1.熟练掌握数组变量在内存中的存放形式,数组中数据的处理方式;

2.熟练掌握数组与循环结构的配合使用,解决一批数的处理。

第六章指针

教学要点:

指针的概念,指针变量的定义与引用方法,握数组指针、函数指针等基本用法。

教学时数:

6学时(理论4学时,上机2学时)

教学内容:

第一节指针的概念

将地址形象化地称为“指针”。

第二节指针与函数

指针作为函数的参数,函数返回指针,指向函数的指针。

第三节指针与数组

字符指针,指向数组的指针,指针数组,指向指针的指针。

考核要求:

1.熟练掌握指针的含义与使用,函数之间的地址传送。

2.掌握数组指针、函数指针等基本用法。

三、参考书目

1、姬涛、周启生. C语言程序设计.ISBN:北京:北京传媒大学出版社,2010.

2、谭浩强. C语言程序设计.ISBN:北京:高等教育出版社,2006.

3、王柏盛. C语言程序设计.ISBN: 7-04-013613-9.北京:高等教育出版社,.2004.

4、杨路明.C语言程序设计.ISBN:7-5635-0696-9.北京:北京邮电大学出版社.2005.

四、本课程使用教具和现代教育技术的指导性意见

本课程应该使用多媒体教学,程序设计课程在讲解过程中,及时对讲解内容进行演示,可以增加学习内容的直观性,帮助学生理解学习内容。本课程软件环境:TurboC或VC++6.0或TC2.0或win-TC 或TC3.0或CFREE。

五、课外学习

课外作业

1、目标

是按照教学要求,体现教学重点,紧密结合本课程教学目的、基本任务和各部分具体内容,安排选择、填空、程序填空、编程类作业题目,加深对所学知识的理解,使学生掌握编程知识技能,具备阅读、编程能力。作业题目:来源为章节后的习题。

2、作业内容

(1) 熟悉TurboC或vc++的上机环境

(2) 基本数据类型

(3) 运算符与表达式

(4) C顺序结构

(5) 选择结构

(6) 循环结构

(7) 流程控制的综合应用

(8) 函数的定义和调用

(9) 预处理命令

(10) 数组与字符串

(11) 指针

3、作业要求

书上做选择、填空、程序填空,作业本上做编程。

4、时间安排

每章理论课学习结束。

5、评价方式

在上机时对所做程序进行调试、运行。

实验部分

(一)基本要求

C语言程序设计课程是面向本科生的公共课,而本实验课程的学习目的在于加深对讲授内容的理解,熟练地掌握C语言的语法规则。通过编写程序和调试程序,在实验中提高动手能力。通过实验掌握编写

程序的思想方法,体会编程的技巧,加深编程语言的应用能力。

] (三)实验内容

实验1:数据的存储与运算

【实验目的】

1、掌握C语言基本数据类型(整型,实型,字符型)数据的常量表示、变量的定义和使用。

2、掌握常见格式控制字符对输出结果的控制作用。

3、掌握C语言算术、赋值、自增、自减运算符及相应表达式。

4、掌握不同类型数据之间的赋值规律。

5、了解强制数据类型转换以及运算符的优先级、结合性。

6、学会根据表达式,编写相应程序,验证表达式结果的方法。

【实验内容】

完成“源程序清单”中规定的程序题(4个)。

1、已知:a=2,b=3,x=3.9,y=2.3(a,b整型,x,y浮点),计算算术表达式(float)(a+b)/2+(int)x%(int)y

的值。试编程上机验证。

提示编程要点:

(1)先判断结果值类型,可设置一个此类型的变量用于记录表达式结果,本例用r存放结果;

(2)程序先给几个条件变量赋初值,然后将表达式赋值给变量r;

(3)最后打印变量r的值就是表达式的值。

您分析的表达式结果:。

2、已知:a=7,x=2.5,y=4.7(a整型,x,y浮点),计算算术表达式x+a%3*(int)(x+y)%2/4的值。试

编程上机验证。

您分析的表达式结果:。

3、已知:a=12,n=5(a,n整型),计算下面表达式运算后a的值。试编程上机验证。

(1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2) (6)a+=a-=a*=a

您分析的表达式结果:(1) (2) (3) (4) (5) (6) 。

4、分析下面程序结果,并上机验证。

main()

{

int i,j,m,n;

i=8; j=10;

m=++i;

n=j++;

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

}

您分析的表达式结果:。

【实验要求】

1、实验前认真预习,自行分析程序题的结果,体会本次实验的目的并了解实验要求。实验时仔细对比

程序实际运行结果,认真思考并回答实验小结和思考中的问题。

2、在Visual C++下完成“源程序清单”中规定的程序题。编辑、编译、运行程序并获得程序结果;

如果程序有错,记录编译、连接遇到的提示错误。仔细思考出错原因,并更正之。

3、编制的程序必须保存在D:\用户目录中。注:用户目录可以用学号或姓名拼音简写。

4、学生可以对实验程序进行修改、补充,以便上机完成自己需要的程序验证和测试。在完成实验要求

的工作外,要学会创造性的工作。

实验2:顺序结构程序设计

【实验目的】

1、掌握:使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。

2、初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。

【实验内容】

在Turbo C下完成程序题:

(1)根据商品原价和折扣率,计算商品的实际售价(结果精确到小数点后2位)

(2)根据圆柱体的半径和高,计算圆周长、圆面积、圆柱体表面积、圆柱体体积(结果精确到小数点后3位)

(3)输入三角形的三条边a,b,c,求三角形面积。

(4)已知分期还贷款的计算公式为p=d*r*(1+r)m/(1+r)m-1

编程:输入贷款数额月利率准备多少个月偿还清贷款,计算每月偿还的数额P

[提示]方法与上题类似,求指数运算时调用系统的pow数学函数

注:变量名可以自由选择,以易于理解为原则;数据由键盘输入。

【实验要求】

1、实验前编制程序框图、编写源程序、准备测试数据。

2、实验测试数据要求从键盘输入。应尽力追求程序的完美。比如要求输入数据,应当显示提示字符串,

提示用户输入;输出时要求有文字说明。

3、在Turbo C下完成程序的编辑、编译、运行,获得程序结果。如果结果有误,应找出原因,并设法

更正之。

4、编制的程序必须保存在D:\用户目录中。注:用户目录可以用学号或姓名拼音简写。

实验3:选择结构程序设计

【实验目的】

1、掌握关系、逻辑运算符及其表达式的正确使用。

2、掌握if语句和switch语句的使用。

3、了解Turbo C程序调试的基本方法。

【实验内容】

在Turbo C下完成程序题:

1、有如下函数,要求输入x的值,求y的值。

|X|,X<0

Y= X2,0≤X<10

LogX,X≥10

2、输入1-7之间的任意数字,程序按照用户的输入输出相应的星期值。

3、某单位马上要加工资,增加金额取决于工龄和现工资两个因素:对于工龄大于等于20年的,如果

现工资高于2000,加200元,否则加180元;对于工龄小于20年的,如果现工资高于1500,加150元,否则加120元。工龄和现工资从键盘输入,编程求加工资后的员工工资。

【实验要求】

1、实验前绘制程序框图,编制源程序、准备测试数据。

2、在Turbo C下完成程序的编辑、编译、运行,获得程序结果。

3、实验中可以采用Turbo C程序调试基本方法协助查找程序中的逻辑问题。

实验步骤、过程

1、编辑、编译、运行程序题1,分别使用数据-5,0,5,10,100做测试。人工计算结果分别

是。

2、编辑、编译、运行程序题2,分别使用数据1,7,8做测试。

4、尝试跟踪程序题1运行。用F7或F8键单步跟踪程序,用^F7检查变量值,用F4可以将程序运行到

光标当前位置。

实验4:循环结构程序设计

【实验目的】

1、掌握while,do-while,for循环的语法结构与应用。

2、掌握while,do-while循环的区别。

3、掌握Turbo C单步执行调试程序的方法。

【实验内容】

完成程序题:

1、用三种循环结构,求1000以内奇数的和。

2、用while,do-while循环求i-10的连加和,i由用户输入。

3、有一堆零件(100-200个之间),如果以4个零件为一组进行分组,则多2个零件;如果以7个零

件为一组进行分组,则多3个零件;如果以9个零件为一组进行分组,则多5个零件。编程求解这堆零件总数。

提示:用穷举法求解。即零件总数x从100-200循环试探,如果满足所有几个分组已知条件,那么此时的x就是一个解。分组后多几个零件这种条件可以用求余运算获得条件表达式。

【实验要求】

1、实验前编制源程序、对第2个实验内容需要准备测试数据。

2、在Turbo C下完成程序的编辑、编译、运行。查看、分析程序结果。

实验5:一维数组

【实验目的】

1、理解一维数组的概念

2、掌握一维数组的定义、初始、数组元素引用。

3、掌握一维数组的输入/输出。

4、掌握与数组有关的算法。

【实验内容】

1、编制程序,求Fibonachi数列的前10项。

提示:Fibonachi的第1,2项分别为1,1。其后任何一项满足a i=a i-2+a i-1。

2、编写找出1-100之间能被7或11整除的所有整数,存放在数组a中,并统计其个数。要求以每行

排列5个数据的形式输出a数组中的数据。

3、对任意10个数进行排序*(升序)。

.【实验要求】

1、编制源程序,对于程序3输入测试数据。

2、在Turbo C下完成程序的编辑、编译、运行。查看、分析程序结果。

实验6:二维数组

【实验目的】

1、理解一维数组和二维数组的概念

2、掌握一维数组和二维数组的定义、初始、数组元素引用。

3、掌握一维数组和二维数组的输入/输出。

4、掌握与数组有关的算法。

【实验内容】

1、设有4x4的方阵,其中的元素由键盘输入。求出(1)主对角线上元素之和;(2)辅对角线上元素之积;(3)方阵中最大的元素。

提示:主对角线元素行、列下标相同;辅对角线元素行、列下标之和等于方阵的最大行号(或最大列号)-下标、行列号基于0。

[思考题]

1、检验并打印魔方矩阵

在下面的5×5阶魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后检验其是否为魔方矩阵,并将其按如下格式显示到屏幕上。

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

2、餐饮服务质量调查打分

在商业和科学研究中,人们经常需要对数据进行分析并将结果以直方图的形式显示出来。例如,一个公司的主管可能需要了解一年来公司的营业状况,比较一下各月份的销售收入状况。如果仅给出一大堆数据,这显然太不直观了,如果能将这些数据以条形图(直方图)的形式表示,将会大大增加这些数据的直观性,也便于数据的分析与对比。下面以顾客对餐饮服务打分为例,练习这方面的程序编写方法。假设有40个学生被邀请来给自助餐厅的食品和服务质量打分,分数划分为1~10这10个等级(1表示最低分,10表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。

Grade Count Histogram

1 5 *****

2 10 **********

3 7 *******

...

【实验要求】

1、编制源程序,对于程序3输入测试数据。

2、在Turbo C下完成程序的编辑、编译、运行。查看、分析程序结果。

实验步骤、过程

1、编辑、编译、运行程序题1,测试数据。

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

2、编辑、编译、运行程序题2。

3、编辑、编译、运行程序题3。

实验7:字符数组与字符串

【实验目的】

1、理解字符数组和字符串的概念。

2、掌握字符数组的定义、初始、数组元素引用、输入输出。

3、掌握字符数组的处理。

4、掌握常用字符串处理函数。

【实验内容】

1、编制程序:对键盘输入的字符串进行逆序,逆序后的字符串仍然保留在原来字符数组中,最后输出。

(不得调用任何字符串处理函数,包括strlen)

例如:输入hello world 输出dlrow olleh

2、编写程序:对键盘输入的两个字符串进行连接。(尽管我们知道strcat()可以简单完成此任务,本

题仍然规定不得调用任何字符串处理函数,包括strlen)。

例如:输入helloworld,输出helloworld

3、编写程序:对从键盘任意输入的字符串,将其中所有的大写字母改为小写字母,而所有小写字母改

为大写字母,其它字符不变。(不调用任何字符串处理函数)

例如:输入:Hello World!输出:hELLO wORLD!

4、编写程序:从键盘输入4个字符串(长度<20),存入二维字符数组中。然后对它们进行排序(假设

由小到大顺序),最后输出排序后的4个字符串。(允许使用字符串函数)

提示:字符串比较可以用strcmp函数实现,排序方法可以选择法或冒泡法。

【实验要求】

1、绘制框图、编制源程序,测试数据。

2、1-3题不得使用任何字符串处理函数,4题允许使用字符串处理函数。

3、在Turbo C下完成程序的编辑、编译、运行。查看、分析程序结果。

实验步骤、过程

1、编辑、编译、运行程序题1。使用数据:hello world做测试。

2、编辑、编译、运行程序题2。使用数据:helloworld做测试。

3、编辑、编译、运行程序题3。使用数据:Hello World做测试。

4、编辑、编译、运行程序题4。使用数据:SpanishChinaAmericaJapan做测试。

实验8:指针

【实验目的】

1、进一步理解指针概念。

2、掌握指针变量的定义、初始化以及通过指针变量对数据的访问。

3、掌握指针与一维数组的关系。

【实验内容】

1、运行下面程序,理解指针的概念。

main()

{

int a[10]={1,2,3,4,5,6,7,8,9,10};

int *p;

for(p=a; p

{ printf("address=%x\t",p);

printf("value=%d\n",*p);

}

printf("%d\t",p);

printf("%d\n",*p);

}

运行结果:

2、编写程序:输入一行文字,统计其中大写字母、小写字母、空格以及数字字符的个数。

【实验要求】

1、实验内容1,分析程序结果,通过实验仔细理解指针的含义(本题数组是为了提供一块有确定数值

的数据空间,便于观察),完成思考题。

2、实验内容2,实验前应编制源程序、准备测试数据。

3、在Turbo C下完成程序的编辑、编译、运行。

实验步骤、过程

1、编辑、编译、运行程序题1。

(1)观察指针变量值的变化规律以及指针变量指向的数据。

提示:地址值,从小到大,相差2-一个整数占用两个字节。地址用10进制输出太难看!

(2)修改指针变量值的输出格式,即把程序中的“printf("address=%d\t",p);”改为:

“printf("address=%x\t",p);”,重新运行程序,观察结果。这样是否更清楚,哦,16位地址值。从小到大,相差2-一个整数占用两个字节。

(3)最后一行数据是哪个单元的数据?画一张图看看!。

提示:是数组a最后一个单元下面的一个单元,它是一个随机数。可以读取这个单元,就像程序最后一

行“printf("%d\n",*p);”,但千万别向这个单元写数据!如*p=10;这个空间不知道被谁用的。

(4)将程序中所有int换成float,数据输出格式改为%f,观察指针变量值的变化规律,这次相邻地址值相差多少?理解指针类型的含义了吗?指针++是指针地址值+1吗?

提示:相差4。指针++即指针指向下面一个同类型的数据,由于指针类型为float,指向下一个数据,地址值应该增加4。

(5)只将程序中float *p;改为int *p;编译出现什么警告?

提示:指针类型不合适,用整型指针指向了浮点类型数据(浮点类型的数组元素),可见指针的类型应该是指向数据的类型一致。指针类型有时称为基类型,即指向数据的类型。

编辑、编译、运行程序题2,分别使用数据:“Hello World! 3.14 WB”做测试。

实验9:函数的定义、声明和调用

【实验目的】

1、掌握函数定义(返回、函数名、参数、函数体),调用。

2、掌握函数的声明

3、嵌套调用、递归调用。

4、掌握函数的传值、传址调用。

【实验内容】

1、编制函数fun,其功能是:删除一个字符串中指定的字符。

要求:原始字符串在主函数中输入,处理后的字符串在主函数中输出。

例如:输入“I am a teacher,you are a student”和‘e’输出“I am a tachr,you ar a studnt”。

2、编制函数sortstr,其功能是对多个字符串进行排序。

要求:欲排序的字符串在主函数中输入,排好序的字符串在主函数中输出。

3、掌握函数声明的使用。

【实验要求】

1、1、2题编制源程序和测试数据;在Turbo C下完成程序的编辑、编译、运行并分析程序结果。

2、3题按实验步骤完成,认真观察,仔细思考思考题。

实验步骤、过程

1、编辑、编译、运行程序题1。使用字符串:“I am a teacher,you are a student”以及字符‘e’

做测试。

2、编辑、编译、运行程序题2。使用数据:“Spanish”、“China”、“America”、“Japan”、“England”

做测试。

3、掌握函数声明的使用

(1)输入下面程序,编译、连接,如果没有输错,应该提示成功。运行获得正确结果100。

float fun(float f)

{

return f*f;

}

void main()

{

float k;

k=fun(10.0);

printf("%f\n",k);

}

(2)把fun函数移到main()函数之后,再次编译,提示错误:

Type mismatch in redeclaration of 'fun',(重新定义了fun,类型不一致)。

提示:移动一块程序可以用^KB,^KK定义要移动的块,然后移动光标到要移动的目标位置,^KV移动程序块。另外,^KC还可以复制一块程序,试试吧!

(3)在main()函数前增加函数声明float fun(float f);,再次编译,提示成功并能正确运行获得结果。

思考:在什么情况需要函数声明?

(四)考核要求

综合考虑学生平时课堂表现、完成实验情况给出实验成绩并计入平时成绩。

三、参考书目

1、姬涛、周启生. C语言程序设计.ISBN:北京:北京传媒大学出版社,2010.

2、谭浩强. C语言程序设计.ISBN:北京:高等教育出版社,2006.

3、王柏盛. C语言程序设计.ISBN: 7-04-013613-9.北京:高等教育出版社,.2004.

4、杨路明.C语言程序设计.ISBN:7-5635-0696-9.北京:北京邮电大学出版社.2005.

四、本课程使用教具和现代教育技术的指导性意见

用本课程软件环境:TurboC或VC++6.0多媒体教学,实验课是本课程重要的教学环节,其目的是使学生加深对讲授内容的理解,熟悉所用计算机系统的操作方法,学会上机调试程序;提高学生的动手能力和分析、解决问题的能力。

C语言程序设计(第二版)课后答案 丁亚涛

习题二 一、选择题 二、填空题 1.18 2.int float double 3.10 11 4.8 16 10 5.% 三、阅读题 1. 10,10,9,10 2. j=1, i=2 k=3,i=3 i=3,i=2 k=1,i=1 习题三 一、选择题 二、填空题 1. 从键盘上读入一个字符在屏幕上输出一个字符 #include 2. 按十进制整数形式输出,有符号 按16进制整数形式输出,没有符号 按十进制小数形式输出,输出的数据长度为7位,有2位小数 按字符形式输出一个字符 3. 按十进制整数形式输入数据 按十进制整数形式输入三位数据 跳过3位十进制数据 按字符形式输入一个字符 4. 分程序;; 5. 大写字母L 6. -1 三、阅读题 1. 6 6 6.00 6.00

2. x=127,x= 127,x=177,x=7f y=123.4567,y= 123.46,y=123,45670 3. 2,1 4. 1234 5. 4,3 6. -6,-6 习题四一、选择题 二、填空题 1. 非0 0 、 2. k==0 3. n%7==0&&n%==0 else 三、阅读题 1. a=1,b=0 2. c=1 习题五一、选择题 二、填空题 1. for语句 do-while 语句 while 语句 2. a=14,y=26 3. k=14,n=-1 4. 39 5. s=19 6. 22222 7. 10 8. 7 9. 8 10. 5,5 三、改错题

1. for( i=0;i<5;i++);for控制部分用分号分隔 2. int j=0;while(j<10){j++;i=j} 分号是多余的,否则会造成死循环 3. int s=1,i=1; while(i<5) {s*=i; i++; } 两条语句需要加上花括号 4. while(j<10);(分号不能少) 5. continue改为break 习题六 一、选择题 二、填空题 1. 20 0 19 2. 数组名 3. 越界 4. 6 5. j==k a[j][k]=1; a[j][k]=0; 三、阅读题 1. 6 5 4 3 2 1 2. aaa bbb ccc ddd 3. 2,2,1 习题七 一、选择题 二、填空题 1. 整个函数体内局部 2. 整型 3. k<=b return y;

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构 一、单项选择题 1、以下不是C语言的特点的是________。 A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化 2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。 A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行 3、以下不是二进制代码文件是________。 A)标准库文件 B)目标文件C)源程序文件 D)可执行文件 4、下面个选项组中,均属于C语言关键字的一组是________。 A)auto,enum,include B)switch,typedef,continue C)signed,union,scanf D)if,struct,type 5、下面四组字符串中,都可以用作C语言标识符的是________。 A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY 6、以下不属于流程控制语句的是_________。 A)表达式语句 B)选择语句 C)循环语句 D)转移语句 7、下面描述中,不正确的是________。 A)C语言的函数体由一系列语句和注释组成。 B)注释内容不能单独写在一行上。 C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。 D)scanf和printf是标准库函数而不是输入和输出语句。 8、下面描述中,正确的是________。 A)主函数的花括号必须有,而子函数中的花括号是可有可无的。 B)一个C程序行只能写一个语句。 C)主函数是程序启动时的唯一入口。 D)函数体包含了函数说明部分。 二、填空题 1、一个完整的C程序至少要有一个________函数。(主函数) 2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。(编译系统) 3、C语言是以________为基本单位、整个程序由________组成。(函数函数) 4、常用的标准库函数有数学函数、字符函数和字符串函数、动态分配函数、随机函数和________函数等几个大类。(输入输出) 5、标准库函数存放在________文件中。(函数库) 6、目标程序文件的扩展名是________。(.obj) 7、程序连接过程是将目标程序、________或其它目标程序连接装配成可执行文件。(库函数) 8、因为源程序是________类型文件,所以用具有文本编辑功能的任何编辑软件程序完成编辑。(文本)

第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语言程序设计教程(第二版)》习题答案

2 第1章程序设计基础知识 一、单项选择题(第23页) 1-4.CBBC 5-8.DACA 二、填空题(第24页) 1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言7.有穷性8.直到型循环9.算法10.可读性11.模块化12.对问题的分析和模块的划分 三、应用题(第24页) 2.源程序: main() {int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */ printf("cock hen chick\n"); for(i=1;i<=20;i++) for(j=1;j<=33;j++) for(k=1;k<=33;k++) if (i+j+k*3==100&&i*5+j*3+k==100) printf(" %d %d %d\n",i,j,k*3);} 执行结果: cock hen chick 4 18 78 8 11 81 12 4 84 3.现计算斐波那契数列的前20项。 递推法源程序: main() {long a,b;int i; a=b=1; for(i=1;i<=10;i++) /*要计算前30项,把10改为15。*/ {printf("%8ld%8ld",a,b); a=a+b;b=b+a;}} 递归法源程序: main() {int i; for(i=0;i<=19;i++) printf("%8d",fib(i));} fib(int i) {return(i<=1?1:fib(i-1)+fib(i-2));} 执行结果: 1 1 2 3 5 8 13 21 3 4 55 89 144 233 377 610 987 1597 2584 4181 6765

C语言详解(第五版)第二章程序设计项目答案

C语言详解(第五版)程序设计项目答案第二章 1.编写一个程序,以每英里0.35的费率计算一个售货员的里程偿还金。程序中要求与用户进行如下方式的交互。 #include #include int main(void) {float mile_1,mile_2,miles,consume,payment; printf("MILEAGE REIMBURSEMENT CALCULATOR\n"); printf("Enter begainning odometer reading>\n"); scanf("%f",&mile_1); printf("Enter endding odometer reading>\n"); scanf("%f",&mile_2); printf("Enter consume per mile>\n"); scanf("%f",&consume); miles=mile_2-mile_1; payment=miles*consume; printf("You traveled%f miles.At%f per mile,your reimbursement is%f",miles,consume,payment); system("pause"); return(0); } 2.编写一个程序,用于辅助设计水力发电大坝。提示用户输入大坝高度,以及水流量。如果水由重力所做的功有90%转化为电能,测算会有多少M瓦的功率。 #include #include int main(void) {double density,weight,gravitational_acceleration, efficiency,height,water_flow_rate,work,electricity_power; printf("Please type in the density of water>"); scanf("%lf",&density); printf("Please type in the gravitational_acceleration>"); scanf("%lf",&gravitational_acceleration); printf("Please type in the height of the water>"); scanf("%lf",&height); printf("Please type in the efficiency of the transformation\nfrom water to electricity>"); scanf("%lf",&efficiency); printf("Please type in the water_flow_rate>"); scanf("%lf",&water_flow_rate); weight=density*water_flow_rate; work=weight*height*gravitational_acceleration; electricity_power=work*efficiency/1000000; printf("The electric energy production is%fW",electricity_power); system("pause"); return0; }

51汇编语言程序设计

第四章MCS-51汇编语言程序设计 重点及难点: 单片机汇编语言程序设计的基本概念、伪指令、单片机汇编语言程序的三种基本结构形式、常用汇编语言程序设计。 教学基本要求: 1、掌握汇编语言程序设计的基本概念; 2、掌握伪指令的格式、功能和使用方法; 3、掌握顺序结构、分支结构和循环结构程序设计的步骤和方法; 4、掌握常用汇编语言程序设计步骤和方法。 教学内容 §4.1汇编语言程序设计概述 一、汇编语言的特点 (1)助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。 (2)使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。 (3)汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。 (4)汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用;但是掌握了一种计算机系统的汇编语言后,学习其他的汇编语言就不太困难了。 二、汇编语言的语句格式 [<标号>]:<操作码> [<操作数>];[<注释>] 三、汇编语言程序设计的步骤与特点 (1)建立数学模型 (2)确定算法 (3)制定程序流程图 (4)确定数据结构 (5)写出源程序 (6)上机调试程序 §4.2伪指令 伪指令是程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。 MCS- 51常见汇编语言程序中常用的伪指令:

第四章MCS-51汇编语言程序设计91 1.ORG (ORiGin)汇编起始地址命令 [<标号:>] ORG <地址> 2.END (END of assembly)汇编终止命令 [<标号:>] END [<表达式>] 3.EQU (EQUate)赋值命令 <字符名称> EQU <赋值项> 4.DB (Define Byte)定义字节命令 [<标号:>] DB <8位数表> 5.DW (Define Word)定义数据字命令 [<标号:>] DW <16位数表> 6.DS (Define Stonage )定义存储区命令 [<标号:>] DW <16位数表> 7.BIT位定义命令 <字符名称> BIT <位地址> 8.DA TA数据地址赋值命令 <字符名称> DATA <表达式> §4.3单片机汇编语言程序的基本结构形式 一、顺序程序 [例4-1]三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、5414和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。 MOV R0 ,# 52H ;被加数的低字节地址 MOV R1 ,# 55H ;加数的低字节地址 MOV A ,@ R0 ADD A ,@ R1 ;低字节相加 MOV @ R0 , A ;存低字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;中间字节带进位相加 MOV @ R0 , A ;存中间字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;高字节带进位相加 MOV @ R0 , A ;存高字节相加结果 CLR A

C语言程序的设计习题参考答案(第二版_杜友福)

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。 4. 求1×2×3×…×10的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

C语言程序设计学习指导(第2版) 1-6

第一章概述 一、选择 1.C 2.B 3.C 4.D 5.D 6.A 7.B 8.C 9.A 10.B 11.C 12.D 13.B 14.B 第二章数据类型 一、选择 1.D 2.A 3.C 4.D 5.A 6.B 7.A 8.B 9.A 10.D 11.B 12.C 13.C 14.D 15.C 16.B 17.D 18.A 19.C 20.B 21.B 22.D 23.A 24.B 25.B 26.B 27.C 第三章运算符和表达式 一、选择 1.A 2.D 3.D 4.D 5.D 6.A 7.C 8.C 9.B 10.B 11.C 12.C 13.A 14.A 15.A 16.A 17.B 18.C 19.C 20.D 21.A 22.A 23.C 24.C 25.A 26.B 27.D 28.A 29.B 30.C 31.D 32.D 33.D 34.B 35.A 36.A 37.B 38.C 39.D 40.B 41.B 42.C 43.B 第四章输入和输出 一、选择 1.C 2.D 3.C 4.C 5.C 6.B 7.B 8.C 9.D 10.D 11.D 12.D 13.B 14.A 15.B 16.B 二、编程 1.double fun(double m) { float n; n=(5.0/9.0)*(m-32); return n; } 2. char fun(char c) {c=c+32; return c;} 3.double fun(int m) { double y=0; y=sin(m)*10; return(y); } 4.float fun ( float h ) {return (long)( h * 100 + 0.5 )/ 100.0;}

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

c语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题 答 案 篇一: c 语言程序设计教程_李含光_ 郑关胜_ 清华大学 出版社习题答案习题答案[完美打印版]】1.单项选择题 (1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数 (2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案 1.单项选择题 1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题 (1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15) (x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/ (a+b)) 第 3 章习题参考答案 1.单项选择题 1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题 (1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1 (4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果 (1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11) i=6 ,k=4 (12)1,-2 4 .程序填空 (1)x:y ,u :z (2)m=n ,m !=0 ,m=m/10 (3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计习题参考答案!(第二版--杜友福)

C语言程序设计习题参考答案!(第二版--杜友福)

C语言程序设计习题答案 习题一 C语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1(3)机器语言P1(4)汇编程序P2 (5)高级语言P2(6)编译程序P3(7)解释程序P3(8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S流程图最大的区别是什么?

答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。 输入三个数给a,b,c 如果a

4. 求1×2×3×…×10的值。 5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 Y 3X (X<1) 输入一个数给x X<=1 Yes no

《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

《汇编语言程序设计》考核方式

考核方式与要求 期末总成绩构成:期末开卷考试60% + 平时作业10% + 实验和实验报告30%。 1、试卷考核方式与要求 “汇编语言程序设计”的课程要求是使学生具有一定的程序设计能力。虽然课程是通过80x86微处理机来开展教学的,但学习的重点不仅仅是学会80x86指令的语法和规范,更重要的是通过多读程序、多练习编写程序来掌握程序设计的基本方法和技术,要求学生在工作中遇到其他机型,都应该能利用所掌握的方法和技术顺利解决实际问题。因此,我们在教学过程的各个环节,特别是具有指挥棒作用的考核环节中,着重体现了“能力培养是首位”的指导思想。 为此,汇编课一直实行多元化考核方式,在考核评分上,平时练习和上机实验占40%,期末考试占60%。期末考试实行开卷考试,这样学生平时学习的关注点就会放在分析问题和编程实现的方法上,有利于学生开阔思路,发挥自身创造力。每年设计开卷考试的考题是有一定难度的,教师必须非常熟悉课程的知识点、重点和难点,以及体现这些知识和能力水平的多种题目类型。 2、实验方式与要求 实验的目标为:加强课堂上相关理论和技术学习的有效性;提高学生上机编程和调试的能力;培养学生科学实践的理念和独立分析问题、解决问题的能力。其设计思想是:实验内容兼顾基础性和综合性,实验题目由简单→复杂,程序功能由单一→综合,实验安排有基本要求题+自选题,实验题类型有验证型和自主创新设计型。 √实验课组织形式: 1.系教学实验室按课程要求负责上机环境配置及实验设备管理; 2.以班为单位组织上机实验,并将上机时间安排表发至每位同学; 3.每单元实验课安排一位助教(助博)负责实验指导和答疑; 4.学生每做完一个实验即可提交老师验收,老师将实验运行结果记录下来作为实验成 绩的依据。验收时教师要注意发现比较突出的好的实验例题(完成时间短、程序运行效率高); 5.要求提交实验报告,根据实验报告及实验运行结果的记录,评出实验成绩,实验成 绩一般占总成绩的30%。 √教师指导方法: 1.大课集体指导。每学期实验前教师安排一次实验指导课,讲解实验方法和实验要求; 2.每次实验课都安排助教(助博)进行个别或集体的实验指导和答疑; 3.对具有共性的、问题比较多的实验,主讲教师在课堂上再进行集体指导; 4.每学期对实验中出现的问题,对照实验题目进行分析、总结,以利于以后的教学。 5.对于实验中有创新点的学生,还可以请他上讲台为同学们介绍他的设计思路,引发大家展开讨论。

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案 习题1 1-1 填空题 1.函数 2.主函数main(),主函数main() 3.主函数main() 4.函数首部,函数体 5.{, } 6./*, */ 7.顺序结构,选择结构,循环结构 8..c, .obj, .exe 1-2 思考题 1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。 2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法 3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。 1-3 编程题 1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。 #include "stdio.h" main() { float a, b, h, s; a=10; b=20; h=5; s=(a+b)*h/2; printf("s=%f\n" , s ); } 2. 编写程序显示如图1.11所示信息。 图1.11 显示信息 #include "stdio.h" main()

{ printf("******************************\n"); printf("* hello world *\n"); printf("******************************\n"); } 习题2 2-1 单选题 1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题 1.2.000000 2.1,0.5 3.9,2 4.6 5.100,d 6.(1)20 (2)0 (3)60 7. (1)10,6,4 (2)6,9,15 (3)3,60,83 8. 55 习题3 3-1 选择题 1-5BDABC 6-10ADCAC 11-12BB 3-2 填空题 1. 3 2.0261 3.0x10 4. 2, 1 互换a,b的值 5. 6.6 6.–003 8.7 7. 5.0,4,c=3 8.i=10,j=20 9.(1) 65 (2) 65,A (3) 56.123400,123.456001 (4) 3.141600 (5) 8765.432

河北工业大学汇编语言知识程序设计实验

汇编语言程序设计实验 网络*** *** 实验一 顺序与分支程序设计 一 、实验目的 1) 掌握顺序程序设计方法。 2) 掌握分支程序的结构及分支程序的设计,调试方法。 2) 学习数据传送及算术和逻辑运算指令的用法。 3) 熟悉在pc 机上建立、汇编、连接、调试和运行汇编语言程序的过程。 二、实验内容 1.实验六 从键盘上接收一位十进制数x ,计算y 值,并以十六进制形式显示出来,y 按下列公式计算。 ???????===-=+=) 6(2/) 5()4(2) 3(22 2 2X X X X X X X X X X Y 2..实验七 实验内容:从键盘上接收两个一位十六进制数x 和y ,然后再输入一个a-d 之间的一个字符,按下列要求计算。 a) 当输入字符为a ,则计算x+y ,并以十六进 制形式显示出来 b) 当输入字符为b ,则计算|x-y|,并以十六进制形式显示出来 c) 当输入字符为c ,则计算x*y ,并以十六进制形式显示出来 d) 当输入字符为d ,则计算x/y ,并以十六进制形式显示出来 三、实验代码 实验六 DATE SEGMENT X DB ?

DATE ENDS ;数据段 CODE SEGMENT ASSUME CS:CODE,DS:DATE START:MOV AX,DATE ;代码段 MOV DS,AX ;初始化ds寄存器 MOV AH,1 INT 21H ;读文件到缓冲区 CMP AL,33H ;比较指令 JB L0 ;A

相关文档
最新文档