《C语言编程题目000》由会员分享,可在线阅读,更多相关《C语言编程题目000(15页珍藏版)》请在金锄头文库上搜索。
1、题 1. 统计字母的使用频率一、题目:统计字母的使用频率二、目的与要求1 目的:通过编写程序统计字母的使用频率,培养学生综合利用 C 语言进行程序设计的能力,熟悉字符串的操作方法,加强函数的运用,提高软件系统分析能力和程序文档建立、归纳总结的能力。2 基本要求:1)要求用 C 语言编程,在 Visual C+环境下调试完成;2)要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成;3)要求应用本课所讲授的程序设计语言知识来解决问题三、设计方法和基本原理1 课题功能描述本程序的功能,就是要统计英文字母的使用频率。2 问题详细描述为统计英文字母的使用频率,输入一个不包括空格的由英
2、文字母组成的字符串,长度不超过 200 个字符。统计 26 个英文字母的使用频率,不区分大小写。最后按使用频率从大到小输出字母(小写字母)和使用频率(出现的次数) 。3 问题的解决方案按照程序要求,本程序应采用模块化设计方法,设计几个功能模块。例如(仅供参考):l 将字符串中的大写字母转换为小写字母l 统计输入的字符串中字母的使用频率l 按使用频率从大到小进行排序主函数中控制输入、函数调用和输出。四、主要技术问题的描述根据三的分析,主要问题在于:1) 为统计字母的使用频率,定义一个长度为 26 的 int 数组存放所统计的各个字母的使用频率。2) 在统计字母的使用频率时,不要使用 if 语句或
3、 switch 语句,利用字母的 ASCII 码与数组元素下标之间的关系来求得。3) 按使用频率从大到小进行排序时,建议使用指针数组更为方便。五、创新要求实现程序功能后,可进行创新设计:1) 使用多文件,即主函数和各个函数分别存放在不同的.c 文件中,在头文件中进行函数原型声明。2) 读入一篇英文文档,并对其进行字母频率分析。题 2.指示灯控制问题描述: N 盏灯排成一排,从 1 到 N 按顺序依次编号。有 N 个人也从 1 到 N 依次编号。第一个人(1 号)将灯全部关闭。第二个人(2 号)将凡是 2 和 2 的倍数的灯打开。第三个人(3 号)将凡是 3 和 3 的倍数的灯做相反的处理(如果
4、该灯为打开的,则将它关闭;如果该灯为关闭的,则将它打开) 。以后的人都和 3 号一样,将凡是与自己编号相同的灯,以及是自己编号倍数的灯做相反处理。请编写程序实现。要求:程序中要显示每一个人所做工作的过程,例如:当第 i 个人操作时,则显示将 i 和 i 的倍数的灯做相反的处理过程;当第 N 个人操作之后,显示灯的最后状态。 (建议:采用图形法,显示每一盏灯,并为每一盏灯加边框,用不同的颜色显示开灯或关灯) 。 例如:当输入 N 为 7 时; 当第一个人操作时 则输出结果为: 第 1 盏灯是黑的 第 2 盏灯是黑的 第 3 盏灯是黑的 第 4 盏灯是黑的 第 5 盏灯是黑的 第 6 盏灯是黑的
5、第 7 盏灯是黑的 当第二个人操作时 则输出结果为: 第 1 盏灯是黑的 第 2 盏灯是亮的 第 3 盏灯是黑的 第 4 盏灯是亮的 第 5 盏灯是黑的 第 6 盏灯是亮的 第 7 盏灯是黑的 当第三个人操作时 则输出结果为: 第 1 盏灯是黑的 第 2 盏灯是亮的 第 3 盏灯是亮的 第 4 盏灯是亮的 第 5 盏灯是黑的 第 6 盏灯是黑的 第 7 盏灯是黑的 当第七个人操作时 则输出结果为: 第 1 盏灯是黑的 第 2 盏灯是亮的 第 3 盏灯是亮的 第 4 盏灯是黑的 第 5 盏灯是亮的 第 6 盏灯是亮的 第 7 盏灯是亮题 3.进制转换课程设计任务书一、题目:自然数的进制转换二、目
6、的与要求1 目的:通过编写对自然数进行不同进制转换程序,培养学生综合利用 C 语言进行程序设计的能力,熟悉字符串的操作方法,加强函数的运用,提高软件系统分析能力和程序文档建立、归纳总结的能力。2 基本要求:1)要求用 C 语言编程,在 Visual C+环境下调试完成;2)要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成;3)要求应用本课所讲授的程序设计语言知识来解决问题.三、设计方法和基本原理1 课题功能描述本程序的功能,就是实现自然数的十进制、二进制、八进制、十六进制转换。即根据用户选择的进制和输入的数据,转换得到该数所对应的十进制、二进制、八进制和十六进制数。2 问
7、题详细描述程序运行时,首先由用户选择输入数据所使用的进制,如:欢迎使用进制转换程序!1. 十进制2. 二进制3. 八进制4. 十六进制 0. 退出请选择输入数据的进制:用户选择后,再输入数据,如选择 3(八进制) ,则显示:请输入八进制数据:输入数据后,程序进行转换,最后输出该数所对应的十进制、二进制、八进制和十六进制数。如输出:转换结果:十进制 21809二进制 101010100110001八进制 52461十六进制 55313 问题的解决方案实际上,C 语言在输入输出时可直接输入或输出各种进制的数,本题目是为了提高学生的编程能力,所以要自己编程来实现数制的转换。根据问题的描述,使用字符数
8、组来存放输入的数据,转换后的数据也存放到字符数组中,按字符串进行输入和输出。注意:问题的解决方案有很多,下面给出的仅供同学们参考。按照程序要求,每次要将数据转换成各种进制,因此将输入数据(字符数组中)先转换成十进制数(long) ,再将其转换成各种进制并存入相应的字符数组中,最后输出。本程序应采用模块化设计方法,设计几个功能模块。例如(仅供参考):l 检验输入数是否合法(例八进制数中只能出现 07)l 将数据(字符数组中)转换成十进制数(long)l 将十进制数(long)转换成某种进制数据(字符数组中)还可以把这几个模块中都使用的字符与数字之间的转换作为独立模块,供上面的模块调用。例如(仅供
9、参考):l 字符转数字l 数字转字符主函数中控制输入、函数调用和输出。四、主要技术问题的描述根据三的分析,主要问题在于:1) 单个字符与数字的转换在字符转数字时, 09 只需减去0 即可,要考虑到af 和AF的转换(十六进制数) 。同样的,数字转字符时,要考虑到 1015 的转换与 09 不同。2) 将数据(字符数组中)转换成十进制数(long)时,采用的算法是:按当前数制的位权进行多项式展开相加,即得到对应的十进制数。3) 将十进制数(long)转换成某种进制数据(字符数组中)时,采用除留余数法:将十进制数除以转换进制的位权,保留余数(存到字符数组中) ,商继续除,直到商为零;然后将字符数组
10、中的内容求头逆序,即得到转换数据。其中求逆序也可用一个独立模块来实现。五、创新要求实现程序功能后,可进行创新设计:1) 使用多文件,即主函数和各个函数分别存放在不同的.c 文件中,在头文件中进行函数原型声明;2) 本程序实现的是自然数的不同进制的转换,可进一步实现带小数的转换;3) 实现负数的转换题 4.鸽笼原理一、题目:序列小游戏 二、目的与要求 1 目的: (1)让学生体会到鸽巢原理(或抽屉原理)的乐趣并使学生更加系统地理解和掌握 C 语言的函数间参数传递方法、数组和指针的应用等编程技巧。培养学生综合利用 C 语言进行科学计算,使学生将所学知识转化为分析和设计简单实际问题的能力,学会查资料
11、和工具书。 (2)提高学生建立程序文档、归纳总结的能力。2 基本要求: (1)要求用 C 语言编程,在 Visual C+环境下调试完成;(2)要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成;(3)要求应用本课所讲授的程序设计语言知识来解决问题.三、设计方法和基本原理 1 课题功能描述 任意给定 5 个数字,其中必定存在 3 个数字已经有序(或者升序,或者降序) ,找出这 5 个数字中最长的升序或降序序列。 例如:1,7,5,3,9。则1,7,9 ,1 ,5,9,1,3,9 都是最长的升序序列; 而7,5,3是最长的降序序列。 再如:1,3,2,5,7。最长的升序序列为
12、1,3,5,7 和1 ,2, 5,7。 2 问题的解决方案: 自动生成各种可能的序列,对于 5 个数字所有可能的序列为: 0,1,2,3、0,1,2,4、0,1,3,4、0,2,3,4、1,2,3,4 0,1,2、0,1,3、0,2,3、1,2,3 0,1,4、0,2,4、1,2,4 1,3,4 2,3,4、0,3,4 考察各种可能的序列是否升序或是降序,若是则打印; 四、创新要求 在基本要求达到后,进行创新设计,10 个数据,必定会有至少 4 个数据已经有序(或升序或降序) ,找出最长的升序或降序序列。题 5. 大数运算题目:两个大数的加减乘除编程计算两个大整数(每个大数最多包含 1000
13、位数字)的加减乘除运算结果(除不尽时只给出商的整数部分) 。输入:第一行包含了总的计算次数。接下来的每一行分别给出不同的两个大数。输出:输出结果中,对每一次计算都以Scenario #i:开始,其中的 i 是从 1 开始的第 i 次计算,紧接着按照“运算符:结果”的形式输出每种情况中两个数的加减乘除结果,对每一次计算都以一个空白行结束。输入样例:210000000000000 900000000000055 5样例输出Scenario #1:+:19000000000000-:1000000000000*:90000000000000000000000000/:1Scenario #2:+:6
14、0-:50*:275/:11题 6. 四则运算一、题目:四则运算二、目的与要求1 目的:通过编写四则运算程序,培养学生综合利用 C 语言进行程序设计的能力,熟悉字符串的操作方法,加强函数的运用,提高软件系统分析能力和程序文档建立、归纳总结的能力。2 基本要求:1)要求用 C 语言编程,在 Visual C+环境下调试完成;2)要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成;3)要求应用本课所讲授的程序设计语言知识来解决问题.三、设计方法和基本原理1 课题功能描述本程序的功能,就是实现数的加减乘除四则运算,如自动计算 3+5*8 的结果。2 问题详细描述程序运行时,首先提
15、示用户输入四则运算表达式(表达式中最多有 3 个运算符,数据范围为 1-100 的整数);输入结束后,程序自动进行计算并给出结果。如:输入 13-10+5/8 时输出 3.625。3 问题的解决方案注意:问题的解决方案有很多,下面给出的仅供同学们参考。该问题主要注意四则运算的优先级问题:乘除运算比加减运算优先级高,同级运算按从左到右的顺序运算。本程序应采用模块化设计方法,设计几个功能模块。例如(仅供参考):l 字符串解析函数(将输入字符串分解成数和运算符)l 将数据(字符数组中)转换成十进制数(long)l 判读是否存在高优先级运算符,若存在首先计算其运算结果并保存。l 同级运算按先后顺序进行。四、创新要求实现程序功能后,可进行创新设计:1) 使用多文件,即主函数和各个函数分别存放在不同的.c 文件中,在头文件中进行函数原型声明;2) 在程序中增加自动出题功能及自动批卷功能3) 不限定运算符个数4) 允许括号运算的存在。题 7. 约瑟夫问题基本要求 有 1 至 N 编号的 N 个人按顺时针方向围坐一圈,每人持有一个密码(正整数) ,一开始以正整数 m 作为报数上限值,从第一个人开始顺时针方向自 1 开始顺序报数