1、《C语言程序设计》自学指导书 自学学时:64学时 推荐教材:《C语言程序设计》 宝明等主编,人民邮电,2009年1月第1版 参考资料: 1、《C程序设计》(第三版) 谭浩强主编,清华大学 2、《C语言程序设计教程》 明主编,交通大学 3、《C语言程序设计教程》 基温主编,高等教育 4、《C语言程序设计》 何钦铭等主编,科技 考核方式:平时作业×30%+笔试(闭卷)×70% 第一章 C语言概述 一、本章自学容与要求: 1、了解C语言的发展与特点。 2、理解和掌握C语言源程序书写规则。 3、掌握C语言源程序在Turbo C、Visual C++或者C-
2、Free环境中的上机步骤。 二、重点与难点: 本章重点在于了解并掌握C语言程序的上机操作步骤,难点在于把握C语言源程序的结构和书写规则。 三、学习方法指导: 选择并熟悉一个C语言程序运行环境,掌握C语言程序的编辑、编译、连接和运行等步骤。 四、典型例题介绍: 1、C语言的程序由 一 个主函数和 若干 个子函数组成。程序的执行总是从 主 函数开始,不管它放在哪个位置。 2、简述C语言程序的开发和运行步骤。 答:C语言程序的开发和运行步骤包括编辑、编译、连接和运行等几个步骤,如下图所示。 编辑 start f.c 编译 语法错? f.obj 连接、运
3、行 逻辑错? f.exe end Source Object Executable 有 有 无 无 五、复习思考题: 教材C语言概述章节习题。 第二章 C语言程序设计基础 一、本章自学容与要求: 1、熟悉C语言的3种基本数据类型(整型、实型、字符型)常量的表示和变量的定义与使用。 2、掌握标准格式输入输出函数和字符输入输出函数的使用。 3、了解各种常用运算符与表达式,掌握各类数据的混合运算规则。 4、掌握赋值运算特点和复合赋值表达式等。 (1)数据类型 了解C语言的数据类型分类,掌握常用的3种基本数据类型——整型、实型和字符型。 (2)常
4、量与变量 a、常量与变量的概念 b、3种基本数据类型常量的表示 c、3种基本数据类型变量的定义与输入输出 (3)运算符与表达式 a、了解各种常用的运算符与运算特点,注意与数学中的运算区别 b、掌握表达式的概念与其表达式的求值 (4)数据运算 注意数据在运算过程中类型的转换。 二、重点与难点: 重点:3种基本数据类型常量和变量的使用,各种类型数据混合运算规则和常用运算符的运算特点。 难点:各种类型数据的混合运算以与根据要求进行格式输入和输出。 三、学习方法指导: 通过上机实验,掌握C语言基本数据类型与运算以与格式输入输出函数的使用。 四、典型例题介绍: 1、若有以下
5、类型说明语句: int a; char ch1; float b; 则表达式 a+ch1-b的结果的类型是( D )。 A. char B. int C. float D. double 2、 下面正确的字符常量是( B )。 A. “x” B. ‘y’ C. ‘/\” D. ‘’ 3、 在C语言中,要求运算对象或运算量必须是整型的运算符是( D )。 A. / B. * C. != D. % 4、 设a,b都是整型变量,为了使a=4,b=8。函数scan
6、f(“a=%d,b=%d”,&a,&b)执行时,正确的数据输入是( C )。 A. a=4 b=8 B. a=4,8 C. a=4,b=8 D. a=b=4,8 5、设a,b都是整型变量,且a=5,b=10,则函数printf(“%d,%d\n”,a++,++b)的输出结果是( B )。 A. 5,10 B. 5,11 C. 6,10 D. 6,11 6、字符串常量是用一对 双引号 括起来的字符序列。 7、设x是int型变量,且x=10,则表达式x*=3+4的值是 70 ,表达式
7、x/=x+x的值是 0 。
8、下面程序的输出结果是什么?
#include
8、掌握关系运算和逻辑运算的特点。 3、利用if语句和switch语句进行选择结构程序的设计。 4、掌握循环结构的基本概念,利用3种循环语句进行循环结构程序设计。 (1)算法与程序 a、了解算法的概念 b、掌握算法的流程图表示 (2)三种基本结构 a、了解结构化程序设计的特点 b、掌握正确的逻辑表达方式 c、熟练掌握if语句和switch语句的使用 d、了解三种循环语句的特点,掌握用循环实现一些常用算法 二、重点与难点: 重点:逻辑表达式的组织;条件语句的格式和功能;循环语句的格式、功能以与特点。 难点:算法的概念;建立正确逻辑思维能力,合理进行选择结构和循环结构程序设计
9、
三、学习方法指导:
复习相关的数学知识,通过习题和上机实验初步掌握C语言程序设计。
四、典型例题介绍
1、程序填空。编程计算1到100之间的奇数之和与偶数之和。
#include
10、 printf("sum of odds is %d\n", odd_sum -101);
}
2、程序填空。从键盘上输入两个正整数x,y,求它们的最大公约数。例如:如果从键盘上输入24,36,程序的输出应为:最大公约数是 : 12。
#include
11、 {
x = y;
y = t ;
t = x % y;
}
printf("最大公约数是: %d",____y___);
}
3、编程,统计1~500之间能被2和3整除的数的个数。
#include
12、否则输出“无效的边长!”。
三角形面积计算公式为:area=,其中s=(a+b+c)/2。
#include
13、无效的边长!”);
}
5、编写程序,输入一个整数,求它的各位数字之和与位数。例如,34的各位数字之和是7,位数是2;-123的各位数字之和是6,位数是3。
#include
14、",s);
}
6、使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6。
……
#include
15、
7、中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何?
#include
16、 cock, hen, chicken);
}
}
8、编程,求S=1!+3!+5!+…+11!。
#include
17、
*****
***
*
9、编程,打印输出以下图形:
#include
18、or(i=3;i>=1;i--) /* 控制输出后3行*号 */ { for(j=1;j>=4-i;j++) printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); printf("\n"); } } 10、按如下形式打印九九乘法表的一部分。 1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
19、
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
#include
20、解一些常用的算法,如排序、查找等。 3、了解二维数组的定义和应用。 4、理解字符型数组的意义和引用,熟悉常用的字符串函数。 (1)数组的概念 a、了解数组在程序设计中的作用 b、理解数组的概念,把握其特点 (2)一维数组 a、了解一维数组的定义与初始化 b、理解常用的排序、求最大(小)值等算法 c、掌握利用循环语句访问一维数组元素的方法 (3)二维数组 a、了解二维数组的定义与初始化 b、理解二维数组表示矩阵进行的相关计算 c、掌握利用二重循环语句访问二维数组元素的方法 (4)字符数组 a、了解字符、字符串和字符数组的联系与区别 b、掌握字符数组的定义与初始化
21、
c、掌握常用的字符串处理函数的用法
(5)数组应用举例
a、熟悉数组应用的特点
b、理解常用的算法,如排序、查找、求最大(小)值与统计等
二、重点与难点:
重点:数组的定义,赋初值以与数组与循环语句相结合进行的程序设计。
难点:数组的存储形式,数组名的使用,尤其是字符数组的引用。
三、学习方法指导:
复习第三章容,通过习题和上机实验,掌握数组与循环结构紧密结合的程序设计特点。
四、典型例题介绍:
1、编程,用冒泡排序对10个整数进行降序排列。
#include
22、输入10个整数到数组a中*/
printf ("Input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf ("\n");
/*用冒泡排序法对数组a中的10个数进行降序排序*/
for(i=1; i<10; i++)
for(j=0; j<=9-i; j++) /* a[0]到a[9-i]围的数进行一趟冒泡排序 */
if(a[j] 23、个整数*/
printf ( "The sorted numbers are:\n");
for(i=0;i<10;i++)
printf("%d _ _",a[i]);
}
2、编程,用选择排序对10个整数进行升序排列。
#include






