C语言程序设计教学大纲

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

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

一、课程说明

1.课程代码:304032071 304092061 404102031

2.总学时数:96,其中理论环节学时数64 ,实验实践环节学时数:32 。

3.学分:5

4.适用专业:计算机系相关专业(高职)

5.本课程的性质、地位和作用

C语言是目前广泛流行的通用程序设计语言,是计算机专业学生一门重要的专业基础课程,也是许多计算机专业人员和计算机爱好者学习程序设计语言的首选,可谓是编程第一课。本课程系统介绍了C语言程序设计的基本知识、基本数据类型和数据运算、程序控制结构、数组、函数、编译预处理、指针、结构体、文件等。通过本课程的学习,为后续的Java语言程序设计、数据结构、数据库及其应用、软件工程等课程打下必备的基础,并且培养计算机专业学生程序设计的基本方法与编程技巧,为以后从事应用软件开发提供一种实用的工具。

二、教学基本要求

1.本课程的目的、任务

C 语言程序设计是计算机及相关专业一门必修的基础课,是学习其他计算机课程的基础,也是计算机基础教育的重点课程之一。它既具有高级语言的特点,又具有低级语言的功能。本课程的目的在于向学生介绍 C 语言的基础知识,使学生了解 C 语言的基本概念及语法,准确掌握 C 语言数据类型的特点,熟练掌握 C 程序的编程方法,具有应用 C 语言解决实际问题的能力。通过学习养成良好的程序设计风格。并深刻理解面向传统的过程程序设计理念。

本课程的任务是通过教学和实践,使学生理解算法的概念、特征与描述;掌握C语言基本语法及其结构化程序设计方法并逐步形成正确的程序设计思想。能够使学生熟练地使用C语言进行程序设计并具备调试程序的能力,为后继课程及其他程序设计课程的学习和应用打下基础。

2.本课程的教学要求

通过本课程的学习,学生应达到下列基本要求:

1)熟练掌握C语言基本语句、语法、数据类型、运算符和表达式,熟练掌握顺序、选择、循环结构程序设计方法,掌握数组、函数、编译预处理、指针、文件、结构体等的使用,掌握排序、查找、遍历等常用的基本算法。

2)能够熟练地阅读、理解C程序并能使用C语言进行简单的应用程序设计。教学内容重点与难点:

大纲包括了本课程的主要内容,共分13章,其中的重点章节是程序的三种基本结构、函数、数组与指针,难点部分为函数与指针章节。

教材选编及依据:

教材:《C程序设计》第三版谭浩强著清华大学出版社。

说明:该教材为部级优秀教材和高校推荐教材。内容新颖、概念清晰、通俗易懂、层次配套、实用性强。

教学方法建议:

本课程是一门实践性很强的课程,为使学生能及时掌握课堂所授内容,巩固所学知识,应以在多媒体教室演示教学为主,老师可以边讲解边演示,有条件的甚至可以在计算机实验室进行在线教学,学生和老师一起边学习边实践。在每一单元结束时,均安排上机实验,同时配以相应的习题课,进行例课与习题分析。

三、学时分配

四、大纲内容

(一)教学大纲内容

第一章 C语言概述 (共3学时)

【教学目的与要求】:

了解 C 语言的背景和特点,初步理解C语言程序的结构和运行C语言程序的步骤,了解 C 语言程序设计的风格。

【教学重点与难点】:

C程序的结构形式;C环境、调试C程序的步骤与方法。

【教学内容】:

第一节 C语言出现的历史背景

第二节 C语言的特点

第三节简单的C语言程序介绍

分析C语言程序的特点。

第四节运行C程序的步骤与方法

Turbo C(或者VC++)集成开发环境下编辑、编译和运行C程序的基本操作方法。

第二章程序的灵魂——算法 (共3学时)

【教学目的与要求】:

掌握算法的概念,算法的特性和算法的表示;了解各种程序设计方法的特点,初步建立起程序设计的概念。

【教学重点与难点】:

算法的概念、流程图、算法思想。

【教学内容】:

第一节算法的概念

第二节简单算法举例

第三节算法的特性

分析算法的五个特性

第四节怎样表示一个算法

重点介绍流程图,并分别用自然语言、N-S流程图、伪代码和计算机语言表示算法,分析3种基本结构和改进的流程图。

第五节结构化程序设计方法

第三章数据类型、运算符与表达式(共6学时)

【教学目的与要求】:

掌握C的数据类型,熟练掌握基本数据类型的定义,区分常量和变量概念以及定义形式;掌握各运算符,及运算符的优先级和结合性;掌握各种表达式类型的构成及书写。

【教学重点与难点】:

基本数据类型的理解、常用运算符的应用、C 语言表达式书写。

【教学内容】:

第一节C语言的数据类型

第二节常量与变量

重点区分符号常量和变量。

第三节整型数据

重点介绍整型数据的各种表示形式,整型变量,整型常量的类型。

第四节浮点型数据

重点介绍浮点数据的各种表示形式。

第五节字符型数据

重点介绍字符数据在内存中的存储形式及其使用方法和字

符串常量的特征。

第六节变量赋初值

第七节各类数值型数据间的混合运算

分析混合运算中的类型自动转换

第八节算术运算符和算术表达式

重点分析运算符的优先级和结合性、自增、自减运算。

第九节赋值运算符和赋值表达式

第十节逗号运算符和逗号表达式

第四章最简单的C程序设计——顺序程序设计(共6学时)

【教学目的与要求】:

了解C语句的特征,程序的三种基本结构,理解赋值语句和复合语句。掌握数据输入与输出的实现。

【教学重点与难点】:

C 语言的赋值语句、数据的输入输出及输入输出中常用的控制格式。

【教学内容】:

第一节C语句概述

第二节赋值语句

第三节数据输入输出的概念及在C语言中的实现

分析数据输入输出在C语言中的实现

第四节字符数据的输入输出

分析putchar函数和getchar函数格式特征。

第五节格式输入与输出

重点介绍printf函数和scanf函数,并重点介绍格式控制符。

第六节顺序结构程序设计举例

第五章选择结构程序设计(共8学时)

【教学目的与要求】:

掌握关系运算符和关系表达式、逻辑运算符和逻辑表达式的应用,掌握两

种分支语句的语法规则和功能,学会用分支方法进行简单分支程序设计,能使用分支语句编写程序。

【教学重点与难点】:

关系运算符与逻辑运算符及其组成的具有逻辑值的表达式书写和判断,两种分支语句的格式及基本应用。

【教学内容】:

第一节关系运算符和关系表达式

分析关系运算符及其优先级和结合性,关系表达式中逻辑值的判别。

第二节逻辑运算符和逻辑表达式

分析逻辑运算符及其优先级和结合性,逻辑表达式中逻辑值的判别。

第三节 if语句

if语句的3种形式,if语句的嵌套以及条件运算符。

第四节 switch语句

第五节程序举例

举例选择结构程序的设计,分析设计方法

第六章循环控制(共10学时)

【教学目的与要求】:

掌握三种循环语句的语法规则和功能,用循环方法进行简单循环程序设计,掌握循环的嵌套和三种循环的区别,掌握Break、Continue语句在循环语句中的作用。

【教学重点与难点】:

三种循环语句,break 与 continue 语句的作用。

【教学内容】:

第一节概述

第二节goto语句以及goto语句构成循环

第三节while语句

While语句——当型循环。

第四节do-while语句

Do-While语句——直到型循环。

第五节for语句

重点分析for语句的一般形式和特殊形式

第六节循环的嵌套

第七节几种循环的比较

第八节break语句和continue语句

第九节程序举例

重点分析三种循环替代环境

第七章数组(共10学时)

【教学目的与要求】:

了解顺序存储的概念,理解数据顺序存储的意义、作用。掌握数组的定义和使用,掌握字符数组的定义、初始化和引用,掌握数组程序设计技巧。

【教学重点与难点】:

一维数组、二维数组的定义与引用,字符数组的定义与引用,常用字符串处理函数及字符处理函数,数组的应用。

【教学内容】:

第一节一维数组的定义和引用

一维数组的定义、引用、初始化和程序举例。

第二节二维数组的定义和引用

二维数组的定义、引用、初始化和程序举例。

第三节字符数组

字符数组的定义、初始化和引用,字符串和字符串结束标志,字符数组的输入输出,字符串处理函数,字符数组应用举例。

第八章函数(共12学时)

【教学目的与要求】:

掌握函数的定义和函数调用;区分形式参数和实在参数;学会调用函数及各种调用方法,初步分析传址与传值的区别。掌握变量存储类型。

【教学重点与难点】:

函数定义、函数调用、函数声明概念区分,函数的嵌套调用与递归调用,传址与传值,变量的存储类别与作用域。

【教学内容】:

第一节概述

第二节函数定义的一般形式

无参函数和有参函数定义的一般形式,空函数

第三节函数参数和函数的值

形式参数,实际参数和函数的返回值。

第四节函数的调用

函数调用的一般形式、方式,对被调用函数的声明和函数原型。

第五节函数的嵌套调用

第六节函数的递归调用

第七节数组作为函数参数

数组元素作函数实参(传值),数组名作函数参数(传址)。

第八节局部变量和全局变量

第九节变量的存储类别

重点分析动态存储方式与静态存储方式,分析用static声明局部变量的特征及终值的情况。

第十节内部函数和外部函数

第九章预处理命令(共4学时)

【教学目的与要求】:

理解预处理的概念及特点,掌握有参宏与无参宏的定义及使用,理解文件包含的意义及使用。

【教学重点与难点】:

有参宏、无参宏的定义与应用;文件包含的基本概念。

【教学内容】:

第一节宏定义

重点分析带参数的宏定义及简单函数的区别

第二节“文件包含”处理

第三节条件编译

第十章指针(共18学时)

【教学目的与要求】:

掌握指针的特点,意义,指针变量的声明与引用;区分指针的作用和意义,重点区分传值与传址的特征;掌握使用指针指向数组的应用;理解指向函数的指针、返回指针值的函数、多重指针的使用。

【教学重点与难点】:

指针与地址的基本概念,指针与变量的关系(传值与传址),指针与数组,指针与字符串,指针的应用。

【教学内容】:

第一节地址和指针的概念

第二节变量的指针和指向变量的指针变量

指针变量的定义、引用,指针变量作为函数参数(传递的两种形态)。

第三节数组与指针

重点分析指向数组元素的指针及指向数组名(首地址)的指针用作函数参数时的特点,多维数组与指针。

第四节字符串与指针

字符串的表示形式(指针与字符数组),字符指针作函数参数,分析使用字符指针变量和使用字符数组的特征。

第五节指向函数的指针

用函数指针变量调用函数,用指向函数的指针作函数参数。

第六节返回指针值的函数

第七节指针数组和指向指针的指针

重点分析指针数组的概念及简单应用,双重指针的特征。

第八节有关指针的数据类型和指针运算的小结

有关指针的数据类型和指针运算的小结,void指针类型。

第十一章结构体与共用体(共8学时)

【教学目的与要求】:

理解结构体的特点,定义和引入的意义,掌握结构体的定义、引用;掌握指向结构体的指针;使用链表建立动态数据结构的作用和意义;掌握指向结构体的指针和使用指向结构体的指针处理链表的方法;了解共同体。

【教学重点与难点】:

结构体的基本概念,结构体类型及变量的定义,结构体数组和用指针处理链表。

【教学内容】:

第三节概述

第四节定义结构体类型变量的方法

分析定义结构体类型变量的三种方法。

第三节结构体变量的引用

第四节结构体变量的初始化

第五节结构体数组

结构体数组的定义、初始化和应用举例。

第六节指向结构体类型数据的指针

重点分析指向结构体变量的指针的特点,指向结构体数组的指针,用结构体变量和指向结构体的指针作函数参数。

第七节用指针处理链表

链表概述,简单链表,处理动态链表所需的函数,重点分析动态链表的建立、输出、删除和插入,对链表的综合操作。

第八节共用体

第九节枚举类型

第十一节用typedef定义类型

第十二章位运算 (共2学时)

【教学目的与要求】:

了解位运算符和位运算。

【教学重点与难点】:

位运算。

【教学内容】:

第一节位运算符和位运算

按位与(&),按位或( | ),取反(~),左移运算符(<<),右移运算符(>>)。

第二节位运算举例

第十三章文件(共6学时)

【教学目的与要求】:

掌握C文件操作的一般使用方法。

【教学重点与难点】:

文件的基本概念;文件的打开、关闭、常用读写方法。

【教学内容】:

第一节C文件概述

第二节文件类型指针

第三节文件的打开与关闭

分析文件的打开(fopen函数)与关闭(fclose函数)第四节文件的读写

分析fprintf函数和fscanf函数,fputc函数和fgetc函数等有关文件读写的函数。

第五节文件的定位。

第七节文件输入输出小结

(二)实验大纲内容

【实验说明】:

本课程使用C语言进行程序设计的教学,是学生通过一门语言的学习得到程序设计的基本训练,进而为学习其它计算机语言进行程序设计打好基础。

程序设计是一门实践性很强的课程,既要掌握概念,了解和熟悉C程序的构

成,并能够动手自己编写程序,又要实际上机进行程序的调试和运行。为此,开设《C语言程序设计》实验课是非常必要的,通过实验煅练学生的实际动手能力,提高学生的编程和程序调试能力。

根据教学计划,《C语言程序设计》实验课时为32课时,具体分配如下:

【基本实验项目】:

实验一 C语言程序设计初步

一、实验目的

本实验涵盖教学内容前四章,主要目的是:

1. 了解所用的计算机系统的基本操作方法,学会独立使用该系统。掌握在集成环境中编辑、编译、连接和运行C语言程序的方法。

2. 掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。

2

3. 学会使用有关算术运算符,以及包含这些运算符的表达式。特别是自加(++)和自减(--)运算符的使用。

4. 掌握数据的输入输出方法,能正确使用各种格式转换符。

5. 通过运行简单的C程序,初步了解C程序的特点。

二、实验基本内容

1、学习Turbo C工作环境,。

2、输入程序、并进行编译和运行。了解所用的系统是用什么命令进行编

译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的?并了解如何在运行时向程序变量输入数据。

调试C语言程序上机的步骤。

(1)编辑:启动TC环境,输入书上例题1.2。按F10键在主菜单下用光标移动键移动亮条到File/Save处,按回车键屏幕弹出对话框,输入

要编辑的程序名称为“m1.c”。

(2)编译与连接主程序:执行“compile/compile to OBJ”命令,对源程序进行编译,然后再执行“compile/link exe file”命令,进行连

接,生成可执行文件。也可直接按下Ctrl+F9键,一次完成编译与连

接。

(3)改正程序中的语法错误;

(4)运行程序:按F10键回主菜单,用光标移动键将亮条移到“Run”菜单选项回车或按下“Ctrl+F9”键,即可运行可执行文件。

(5)用Alt+F5观察输出结果。

3.输入并运行以下程序。

main()

{ char c1,c2;

c1=97;c2=98;

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

}

(1)在此基础上加入以下printf语句,并运行。

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

(2)将第二行改为以下语句,并运行。

int c1,c2;

(3)将第三行改为以下语句,并运行。

c1=300;c2=400;

分别写出三次运行结果。

4.输入一个程序并编译和运行。

a)清空编辑窗口,输入下面的程序编译运行。

main()

{ int a,b,c;

int max(int x,int y);

printf(“input a &b:”);

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

c=max(a,b);

printf(“max=%d”,c);

}

int max(int x,int y)

{ int z;

if(x>y) z=x;

else z=y;

return(z);

}

b)将程序第2行改为:

int a;b;c;

5.输入以下的程序:

main()

{int x=1,y=1,z=1;

y=y+z;

x=x+y;

pritnf(“%d\n”,x

printf(“%d\n”,x

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

pritnf(“%d\n”,y);

x=3;

y=z=4;

printf(“%d\n”,(x>=y>=x)?1:0);

printf(“%d\n”,z>=y&&y>=x);

}

运行并分析结果。

6.编程题

(1)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar 函数和printf函数输出这两个字符。上机运行此程序,比较putchar和printf 函数输出字符的特点。

(2)试编写程序,从键盘输入一个大写字母,要求改用小写字母输出。

实验二基本的控制结构程序设计

一、实验目的

本实验涵盖教学内容5、6两章,其目的:

1.了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。

2.学会正确使用逻辑运算符和逻辑表达式。

3.熟练掌握if语句和switch语句。

4.熟悉掌握用while语句,do-while语句和for语句实现循环的方法。

5.结合程序掌握一些简单的算法。

6.进一步学习调试程序。

二、实验基本内容

1. 写出下列程序的运行结果。

(1) #include "stdio.h"

main ( )

{ int x=5,y=3;

char op;

printf ("Enter a operator: ");

scanf ("%c",&op);

if (op= =′+′)

printf ("%d+%d=%d",x,y,x+y);

else

if (op= =′-′)

printf ("%d-%d=%d",x,y,x-y);

}

(2) #include "stdio.h"

main ( )

{int magic=456;

int guess;

scanf ("%d",&guess);

if (guess= =magic)

printf ("RIGHT!");

else

guess>magic?printf(“HIGH"):printf ("LOW");

}

(3) main ( )

{int i, j;

i=j=2;

if (i= =1)

if (i= =2)

printf ("%d",i=i+j);

else

printf ("%d",i=i-j);

printf ("%d",i);

}

(4) main ( )

{int x=3;

switch(x)

{case 1:

case 2:printf ("x<3\n");

case 3:printf ("x=3\n");

case 4:

case 5:printf ("x>3\n");

default:printf ("x unknown\n");

}

}

2. 下面的程序中有几处错误,请改正并上机调试出正确的结果

(1)将输入的数字逆序输出。

main( )

{int i , num;

scanf ("%d",&num);

while (num != 0 );

i= num % 10;

printf ("%d",i);

num = num / 10;

}

printf ("/n");

}

(2)从键盘输入6名学生5门成绩,分别统计出每个学生的平均成绩。

main( )

{int i, j;

float g , sum = 0, ave ;

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

{ for (j = 1 ;j <= 5 ;j++) ;

scanf ("%f", &g );

sum = sum +g ;

ave = sum / 5;

}

printf (" %d %f /n " , i, ave );

}

3. 根据程序的功能填空,使程序完整。

(1)求两个正数的最大公约数。

main( )

{ int i m, n;

scanf ("%d%d",&m ,&n);

if (m < n) (1)

while (r != 0)

(2)

printf (" %d",(3));

}

(2)鸡兔共有30只,脚共有90个,计算鸡兔各有多少只。

main()

{int x,y;

(1)

for (x=1;x<=9;x++ )

{

y= x – 30;

if ((2))

printf ("%d %d",x, y );

}

}

4. 阅读下面的程序,写出程序的运行结果并上机验证。

(1)main ( )

{ int i,j=4;

for (i=j;i<=2*j;i++)

switch(i/j)

{case 0 :

case 1 :printf ("*");break;

case 2 :printf ("#");

}

}

(2)当输入为"qwert? "时,它们的执行结果各是什么?

#include "stdio.h"

main( )

{char c;

c=getchar ();

while (c!=′?′)

{ putchar (c);

c=getchar ();

}

}

(3)#include "stdio.h"

main ( )

{ char c;

while ((c=getchar ())!=′?′)

putchar (++c);

}

5. 编程题:

(1)给学生写评语,若学生成绩在60~69分,则打印“及格”,70~89分打印“良好”,90~100分打印“优秀”,60分以下打印“不及格”,请分别用if-else 语句和switch语句编程。

(2)有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?

(3)找出1~1000之间的所有水仙花数。所谓水仙花数是指一个3位数的立方和恰好等于该数本身。例如:153就是一个水仙花数,因为153=13+33+53。

实验三数组

一、实验目的

1、掌握一维数组和二维数组的定义、赋值和输入输出和方法。

2、掌握字符数组和字符串函数的使用。

3、掌握与数组有关的算法(特别是排序算法)。

二、实验基本内容

1.阅读下面程序,改正下列程序中的错误并上机运行该程序。

(1)main( )

{int a[5]={2, 4, 6, 8,10}, i;

for (i=1;i<=5;i++)

printf ("%d\n" , a[i]);

}

(2)main( )

{int a[10], i;

scanf ("%d", &a);

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

printf ("%d , ", a[i]);

printf ("\n");

}

(3)main( )

{char str[14 ]= "China\nShanghai";

puts(str);

}

2.下面程序的功能是将字符串s中所有的字符a删除,请在程序的下划线处填入适当的内容以使程序完整。

main ( )

{ char s[80];

int i, j;

gets(s);

for (i=j=0;s[i]!= ′\0′;i++)

if (s[i]!=′a′) ;

s[j]=′\0′;

puts(s);

}

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、用筛选法求100之内的素数。解: #include #include int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0; for (i=2;i int main() {int i,j,min,temp,a[11]; printf("enter data:\n"); for (i=1;i<=10;i++)

{printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("The orginal numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); for (i=1;i<=9;i++) {min=i; for (j=i+1;j<=10;j++) if (a[min]>a[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf("\nThe sorted numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return 0; } 3、求一个3×3的整型矩阵对角线元素之和。解: #include int main() { int a[3][3],sum=0; int i,j; printf("enter data:\n"); for (i=0;i<3;i++) for (j=0;j<3;j++) scanf("%3d",&a[i][j]); for (i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum);

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;

完整word版单片机C语言应用程序设计第五版马忠梅课后习题答案

第一章单片机由哪几部分组成?、80511可P2P0和个8位并行I/O口(其中8位中央处理器CPU、片内振荡电器及其时钟电路,4,个中断优先级)个中断源(具有2位定时器/计数器,5 用于外部存储器的扩展),2个16 全双工串行口,布尔处理器。单片机有多少个特殊功能寄存器?它们可以分为几组,各完成什么主要功能?、80512 表P7 1-3个特殊功能寄存器,在物理 上是分散在片内各功能部件中,在数218051单片机内部有答:中,以便能使用统一的直接寻址方式80H~FFH学上把它们组织在内部数据存储器地址空间来访问。这些特殊功能寄存器颁 在以下各个功能部件中:主要完;DPH两个8位寄存器组成)PSW、SP、DPTR(由DPL和(1)CPU:ACC、B、成运算和逻辑判断功能;完成中断管理IP、IE;(2)中断系统:完成 定时或者计数功能、TH1;TCOM、TL0、TH0、TL1(3)定时器/计数器:TMOD、口带有可选的纵向拓展I/O完成I/O口功能,其中部分P1P0、、P2、P3(4)并行I/O口:功能。主要完成数据的串行发送和接收SBUF、PCON5)串行口:SCON、(、决定程序执行顺序的寄存器是哪几个?它是几位寄存器?是否为特殊功能寄存器?它的3 内容是什么信息?它的内容是下一条 将要执行的不是特殊功能寄存器,它是16位寄存器,是程序计数器PC,程序的地址的用途是什么?它由哪几个特殊功能寄存器组DPTRDPTR是什么特殊功能寄存器?4、成?位)和8DPL (数据指针低是16位数据指针寄存器,它由两个8位特殊功能寄存器DPTR位地址,作地址寄存器用,可寻址外部16DPTR用于保存DPH(数据指针高8位)组成,数据存储器,也可寻址程序存储器。线?它们和单片机对外的地址总线和数据总线有什么关系?地址的引脚有多少I/O5、8051 总线和数据总线各是多少位?线可以在外扩存储器时分时复根I/OP0口8I/O8051单片机的40个引脚中有32根口线,和P3.6位地址总线,P2口作为高8用作为外部存储器的低8位地址 总线和8位数据总线,位。16位,数据总线为8P3.7分别作为外部存储器的写和读控制线。地址总线单片机堆栈的最大容量不能超过多少字8051、什么是堆栈?堆栈指针SP的作用是什么? 6 节?堆栈是数据寄存器的一部分,这一部分数据的存取是按照先入后出、后入先出的原则进行的。堆栈指针SP在启用堆栈之前是用来决定堆栈的位置。如在8051芯片复位后,SP的值为07H,则决定了堆栈从08H开始设置。修改SP值可以使堆栈设置在内部RAM的其它部分。在堆栈启 用之后,SP指向堆栈顶部,即由SP来决定数据读出和存入堆栈的地址。8051单片机内部用作 数据区的RAM的容量为128个字节,前8个字节要用来作为工作寄存器R0-R7。堆栈可以从08H开始设置直到7FH,共120个字节。但这只是最大可能的容量。一般情况下,内部RAM还要分出一部分作一般的数据区,或者还要用其中的位寻址区来用于位操作,等等。所以,8051 的堆栈区是比较小的,使用时要注意到这个限制。 8、8051内部RAM低128字节可分为几个区域?其中通用寄存器区的字节地址范围为多少?如何实现寄存器组的切换?可位寻址区的字节地址和位地址范围分别为多少? 8051内部RAM的低128字节可以分为通用寄存器区、位寻址区、便签(工作或者堆栈RAM)1 中的个字节。设置PSW区和特殊功能寄存器区。通用寄存器区的地址从00H到1FH共3212816个字节RS1可以切换当前通用寄存器组。位寻址区地址从20H到2FH共位RSO和127. 0到位,占用地址8051单片机对外有几条专用控制线?其功能是什么?9、,高电位有效,当有条专用控制线。它们是复位信号线RST一般的说法是8051单片机有4,低电平有效,当此复位信号从此线输入时,使单片机复位。访问外部存贮器控制信号EA先使用片单片机全部使用外部指令存贮器,而当此控制线为高电平时,控制线为低电平时,1000H(地址为,在4KB范围之外,才使用指令存贮器FFFFH内的4KB指令存贮器(0000H-)和外部地址锁存器允PSEN-FFFFH)。另有两条输出控制:外部程序存贮器的读选通信号。前者是低电平有效,在读外部程 序存贮器时使用。后者是高电平有效,在锁存ALE许信号P0口输出的低8位地址时使用。端必须怎样处理?为什么?10、8031的/EA为有效时,/EA访问内部ROM,当端是访问外部程序

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、因为源程序是________类型文件,所以用具有文本编辑功能的任何编辑软件程序完成编辑。(文本)

C语言程序设计(谭浩强)第四版-课后答案

第一章程序设计和C语言【第15页】 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6 #include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; }

3-2-1 #include #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次 printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和 return 0; } 3-2-2 #include #include int main() {double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次

第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章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100;

a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。 #include <> main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** *

《C语言程序设计》课后习题答案(第四版)谭浩强

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67 3.4.3用printf函数输出数据68 3.4.4用scanf函数输入数据75 3.4.5字符数据的输入输出78 习题82 3-1 #include #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } 3-2-1 #include #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;

《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语言程序设计第五版课后练习题答案

课后练习题答案 Chapter 1 1.1×√×√√×√××√ 1.2b c 1.3ad 1.4semicolon printf math、h \n Chapter 2 2、1 ×√××√√×√××√× 2、2 typedef 255 external const Chapter 3 3、1 ×√××√√×××√√√ 3、2 integer modula 6 logical sizeof paratheses typeconversion precedence 3、3 F F T F F F 3、4 F T T T F 3、5 (b) (c) 3、6 0 -2 7 10、25 false 3 3 1 3、10 0 1 1 1 1 3、11 d } 100 3、12 110 111 3、13 1 3、14 200 3、15 x<=y 3、16 TRUE 3、19 2 1 4 3、20 -40 40 Chapter 4 4、1 ×√√√√√××√√√× 4、2 %hd %x ctype、h %l %*d [^] blank 6 - %e 4、4 (a) scanf(“%d %c %d”, &a, &b, &c); (b)scanf(“%d %f %s”, &a, &b, &c); (c) scanf(“%d-%d-%d”, &a, &b, &c); (d) scanf(“%d %s %d”, &a, &b, &c);

4、5 (a)10x1、230000 (b)1234x 1、23 (c)1234 456、000000 (d) “123、40 ” (e) 1020 1222(乱码) 4、7 (a)1988 x (b)乱码 (c)120 乱码 (d)乱码 x 4、8 (a)1275 -23 5、740000 (b) 1275 -235、740000 (c) 0 0、000000 (d) 1275xxxx-235、74 (e)Cambridge (f)1275 Cambridge 4、10 1988 无无 Chapter 5 5、1 √×√××××××√ 5、2 && switch break if-else x=y 5、4 (a)x = 2; y = 0; (b) x = 1; y = 0; 5、5 (a) if (grade <= 59) if (grade >= 50) second = second + 1; (b) if (number > 100) printf(“out of range”); else if (number < 0) printf(“out of range”); else sum = sum + number; (c) if (T > 200) printf(“admitted”); else if (M > 60) {if (M > 60) printf(“admitted”);} else printf(“not admitted”); 5、6 F T F T 5、8 (a) x > 10 (b) (x != 10)||(y ! = 5) || (z >= 0) (c) (x + y != z) || (z > 5) (d) (x > 5) || (y != 10) || (z >= 5) 5、9 (a) x = 5; y = 10; z = 1 (b) x = 5; y = 10; z = 1 (c) x = 5; y = 0; z =0 (d) 无变化 5、10 (a) x= 0; y = 2; z = 0; (b) x = 1; y = 2; z = 0; 5、12 8 5、13 Delhi Bangalore END 5、14 2 4 4 8 5、15 0 0 2 5、16 25 5、17 Number is negative 5、18 ABC

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; }

C语言程序设计第四版第七章答案-谭浩强

第七章函数 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; } return(t); } minbeishu(m,n) int m,n; {int j; if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); return j; } main() {int a,b,max,min; printf("enter two number is: "); scanf("%d,%d",&a,&b); max=maxyueshu(a,b); min=minbeishu(a,b); printf("max=%d,min=%d\n",max,min); } 7.2求方程的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 #include"math.h" float yishigen(m,n,k) float m,n,k; {float x1,x2; x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m); printf("two shigen is x1=%.3f and x2=%.3f\n",x1,x2); } float denggen(m,n) float m,n; {float x; x=-n/(2*m); printf("denggen is x=%.3f\n",x); }

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语言程序设计》基本知识点

《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.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

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;}

相关文档
最新文档