《 C 语言程序设计》作为专业基础课,要真正体现“专业”“基础”的特点,有两个方面的内容要在课程中落实,一是 C 语言本身的语法与程序结构,二是通过该门课程的学习掌握一定的算法与常用子程序的编程实现,为后续课程课程打好基础。该门课程中的内容都是程序设计的基本内容,其中课程中的重点仍然是通过多种方法比如编程练习、阅读程序掌握选择、循环、数组、函数、指针与文件以及结构体的用法。
我试行性地进行课程教学目标能力模块的划分,通过列出每一个单元内容的能力要求并将此能力要求落实在相应的编程实践中。
能力要求:
a) 能够正确定义、输入、输出并使用常用数据类型:整型、实型、字符型
b) 掌握五种基本算术运算符的使用:+、-、*、/、%,知道优先级与结合性
c) 掌握逻辑运算符和关系运算符、条件运算符的使用
d) 能够正确使用 printf() 和 scanf() 进行各种数据正确格式的输入输出
e) 编写简单顺序结构程序
基础能力落实:
1) 输入一个字母 , 输出其对应的 ASCII 码 .
2) 输入一个小写字母 , 输出其对应的大写字母 .
3)从键盘输入一个四位数,编程计算该四位数的各位和并输出。
4)教材 p.41 页习题, 5 , 6 , 7 , 9 , 10 (关于数据类型、运算符、表达式的练习题,其他类似题目均可)
5)教材 p.57 页习题 4 , 5 , 6 , 7 (关于格式化输入输出的练习题,其他类似题目均可)
进阶能力落实:
1 )输入一个十进制数,输出其对应的八进制数据。
2 )输入一个圆的半径,分别求圆的周长,面积和体积。
能力要求:
a) 能够使用 if 语句编写条件选择程序
b) 能够使用嵌套 if 语句和 switch 语句编写多分支选择结构程序
基础能力落实:
1 )判断一个数的正、负,输出相应信息
2 )判断一个数的奇偶,输出相应信息
3 )在主函数中输入整型数据 n, 判断该数是否能被 3 整除,如果能被 3 整除,输出“ yes ” , 否则输出“ no ”
4 )将数学式子写成程序语言,如 80<=x<=90
5 )编程求解分段函数,根据程序写出分段函数的数学表达式
6 )从键盘输入三个数,按照从小到大(或从大到小)的顺序输出
7 )判断一个年份是否闰年
8 )对一个百分制的成绩给出相应的等级(如 90 分以上 A , 80 分以上 B 等)
9 )从键盘输入两个整数,输出大数(用条件表达式求解)
10 ) p.75 习题, 6 , 9 , 10 (阅读程序的训练,类似题目均可)
进阶能力落实:
1 )从键盘上输入一个数,判断其是否为水仙花数。
2 ) 求一元二次方程的根
3 )编程实现以下功能,读入两个数( d1,d2 )和一个运算符 (o) ,计算 d1 o d2 的值。
4 )输入一个数,判断是否能被 3 , 5 , 7 整除,并输出同时被几个整除。
能力要求:
a) 掌握 for 、 do-while 、 while 语句结构
b) 能够使用 for 、 do-while 、 while 编写循环结构程序
c) 使用 for 、 do-while 、 while 编写多重循环语句
基础能力落实 :
1 )求 1 + 2 + 3 + …+100 的和存入变量 sum 中,并将 sum 打印出来。
2 )编程计算 200 300 的偶数和并将和打印输出
3 )计算正整数 1 - n 中的奇数之和及偶数之和
4 )从 5 - 100 之间找出能被 5 或 7 整除的数(或类似求 1 - 100 之间不能被 8 整除的数)
5 )判断一个循环语句能执行多少次(补充类似练习)
6 )打印 99 乘法表(二重循环)
7 )求 Fibonacci 数列的前 20 个数。该数列的生成方法为: F1 = 1 , F2 = 1 , Fn=Fn-1+Fn-2 (n>=3), 即从第 3 个数开始每个数等于前 2 个数之和。(每行输出 4 个数)
8 )编程输出所有“水仙花数”:所谓水仙花数是指一个三位十进制数,该数的各位数字立方之和,等于该数本身。(例如, 153 是一个水仙花数,因为 1*1*1 + 5*5*5 + 3*3*3 = 153 )
9 )求出 3 ~ 100 之间的所有素数,并按每行 5 个数打印输出
10 ) 求满足条件 12+2+3+……..n<1000 的 n 的最大值 .
11 )编写一个具有加、减、乘、除四则运算功能的程序,要求能反复多次操作,当输入“#”运算符时退出( switch—case 语句应用)。
12 )教科书 p.95 页 2 , 4 , 7 , 14 , 15 题(阅读循环程序的练习,或类似习题)
进阶能力落实:
1 ) 编写一个只要输入 4 位数的年份和该年的元旦是星期几,就可打印全年日历的程序(可作思路开发练习时讲解)。
2 )试编写程序,求一个数任意次方的最后三位数,要求 x,y 从键盘上输入。
3 ) 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
4 ) 编写程序,从键盘上输入 6 名学生 4 门课的成绩,分别统计出每个学生的平均成绩。
5 ) 用牛顿迭代法计算从键盘上输入的自变量 x 的平方根。
6 )用穷举法解百马百担问题。
能力要求:
a) 掌握一维数组的使用
b) 能够进行二维数组的定义、初始化、输入、输出、引用等操作
c) 进行字符串、字符数组操作,熟悉常用字符串处理函数
基础能力落实:
1 )有一 12 个元素的整型数组 b ,从键盘输入数据 , 请以每行 4 个数据各个数据之间空两格的形式输出 b 数组的 12 个元素
2 )由键盘输入一个字符串,如果字符串中的字符是英文字母,则进行大小写转换,其它字符不变。输出转换后的字符串。
3 )定义一个整型数组 a[10] ,将数组 a[10] 中的 10 个元素按逆序重新存放。
4 )用数组方法求 Fibonacci 数列的前 20 个数。该数列的生成方法为: F1 = 1 , F2 = 1 , Fn=Fn-1+Fn-2 (n>=3), 即从第 3 个数开始每个数等于前 2 个数之和。(每行输出 4 个数)
5 )对从键盘输入的一个字符串中的大英字母及数字进行计数。
6 ) 有一个 3 行 3 列的矩阵,请将其在屏幕上输出。
7 )将一个 2*3 的矩阵转置为 3*2 的矩阵
8 )在一个三行三列的矩阵中求出数值最大的元素及其行/列下标并打印输出。
9 ) 不使用库函数实现两个字符串的复制和连接
10 ) 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
11 ) 项目单 1