《C语言程序设计个人作业》
一、作业目的
本次作业旨在巩固和加深学生对C语言程序设计的基本概念、语法规则和编程技巧的理解,提高学生的编程实践能力,培养学生的逻辑思维和问题解决能力。
二、作业内容
基础部分(必做)
(1)编写一个C语言程序,实现以下功能:
输入一个整数n(n≥2),判断该整数是否为素数;
如果是素数,输出“是素数”;
如果不是素数,输出“不是素数”。
(2)编写一个C语言程序,实现以下功能:
输入一个字符串,统计并输出该字符串中字母、数字、空格和其他字符的数量。
(3)编写一个C语言程序,实现以下功能:
输入一个整数数组,计算并输出该数组的平均值、最大值和最小值。
(4)编写一个C语言程序,实现以下功能:
输入一个整数n(n≥1),输出一个n行n列的杨辉三角。
提高部分(选做)
(1)编写一个C语言程序,实现以下功能:
输入一个整数n(n≥1),输出斐波那契数列的前n项;
输出斐波那契数列中第n项的值。
(2)编写一个C语言程序,实现以下功能:
输入一个整数n(n≥1),输出一个n行的“楼梯”图案,图案由星号(*)组成,每一行的星号数量依次递增。
(3)编写一个C语言程序,实现以下功能:
输入一个整数n(n≥2),输出一个n行的“倒三角”图案,图案由星号(*)组成。
(4)编写一个C语言程序,实现以下功能:
输入一个整数n(n≥1),输出一个n行的“菱形”图案,图案由星号(*)组成。
三、作业要求
代码规范
代码结构清晰,命名规范,具有良好的可读性;
注释清晰,对关键代码和算法进行说明;
遵循C语言编程规范,避免使用全局变量,合理使用函数;
代码中不得包含任何非法字符和注释。
功能实现
程序能够正确实现题目要求的功能;
对于输入数据的合法性进行判断,避免程序运行错误;
对于特殊情况(如输入为0、负数等)进行处理,避免程序崩溃。
性能优化
尽量减少不必要的计算和内存占用;
对于循环、递归等算法,尽量优化以提高程序运行效率。
四、作业提交
提交形式
作业以电子文档形式提交,文件名为“学号_姓名_作业名称.c”,例如:“123456_张三_基础部分1.c”;
作业文档中包含所有代码和必要的注释。
提交时间
作业提交截止时间为本周五晚上12点前。
提交方式
将作业文档发送至指定邮箱,邮件主题格式为“学号_姓名_作业名称”,例如:“123456_张三_基础部分1”;
作业提交后,请及时关注邮件回复,确认作业已收到。
五、作业评分标准
基础部分
每个题目满分10分,共40分;
代码规范、功能实现、性能优化各占一定比例。
提高部分
每个题目满分10分,共40分;
代码规范、功能实现、性能优化各占一定比例。
总评
作业总评满分为100分,基础部分和加强部分各占50%。
六、作业解析
基础部分
(1)素数判断
思路:从2开始,逐个判断每个整数是否为素数;
判断方法:对于每个整数i,从2到sqrt(i)逐个判断是否有因子;
优化:对于偶数,只需判断2是否为因子。
(2)字符串统计
思路:遍历字符串,对每个字符进行分类统计;
分类方法:利用switch语句,根据字符类型进行分类。
(3)数组操作
思路:遍历数组,计算总和、最大值和最小值;
优化:在遍历过程中,直接计算平均值。
(4)杨辉三角
思路:利用二维数组,逐行计算杨辉三角的值;
关键:每个数等于它左上方和右上方两个数的和。
提高部分
(1)斐波那契数列
思路:递归或循环计算斐波那契数列;
优化:使用循环而非递归,避免大量重复计算。
(2)楼梯图案
思路:逐行输出星号,每行星号数量依次递增;
关键:控制每行输出的空格和星号数量。
(3)倒三角图案
思路:逐行输出星号,每行星号数量依次递减;
关键:控制每行输出的空格和星号数量。
(4)菱形图案
思路:结合倒三角和正三角的绘制方法;
关键:控制每行输出的空格和星号数量。
七、作业反馈
作业提交后,老师将对作业进行批改,给出评分和反馈意见;
学生应根据反馈意见进行改进,以提高编程能力;
作业成绩将计入课程总评成绩,请同学们认真对待。
希望同学们能够通过本次作业,进一步提高C语言编程能力,为后续课程打下坚实基础。祝大家学习进步!