您能发给我一些C语言习题吗?
追问:yingx999@yahoo.cn
追问:yingx999@yahoo.cn
答案:4.1分支结构
[目的及要求] 掌握if语句的使用和switch多分支选择结构的实现,并能熟练的进行应用。
程序1、任意输入一个年份,判断是否是闰年。闰年的条件是符合下面条件之一:
(1)能被4整除,但不能被100整除;
(2)能被4整除,又能被400整除。
程序2、输入三角形的三边长,求三角形的面积。
程序3、任意输入一个成绩,给出评语:
90-100:优秀; 80-89:良好; 60-79:及格; 0-59:不及格。
实训题目
1、用if语句实现菜单功能。
*************************************
* 1---成绩输入 *
* 2—成绩插入 *
* 3---成绩查询 *
* 4---成绩排序 *
* 5---成绩删除 *
* 6---成绩输出 *
* 0---退出 *
*************************************
请输入你的选择(0---6):
2、任意输入三个数据按从大到小的顺序输出。
3、编程实现:读入两个整型数据及一个运算符(+ - * /),计算表达式的值。
4、用switch语句实现菜单功能。
5、用switch语句编程实现:读入两个整型数据及一个运算符(+ - * /),计算表达式的值。
6、用switch开关语句实现猜词游戏。
4.2循环结构[目的及要求] 掌握循环语句for、while和do-while的使用和break和continue的功能,并能熟练的进行应用。
程序1、编程求1+2+3+···+100的和。
程序2、求1到100之间的奇数之和,偶数之积 。
程序3、把输入的一行字符原样输出,若是大写字母需要转换成小写的。
程序4、编写程序求 20+21+22+23+···+263 的和 。
程序5、从键盘上任意输入一个正整数,判断其是否为素数。
素数:除了1和它本身之外没有其他因子的数。换句话说只要有因子(除了1和它本身之外)则该数一定不是素数
实训题目
1、任意输入两个整数,求它们的最大公约数。
2、打印形状为直角三角形的乘法口诀。
3、输入一个包含有三个数字字符的字符串,把该字符串转换为整形数据输出。(如:输入字符串123,则输出整形数据123)
4.3数组的构造与应用[实训目的及要求] 数组是一种构造类型,在解决问题中使用非常普遍,通过本次实训内容,使学生对数组类型有一个系统的认识,并能灵活的在具体问题中进行应用。
程序1:一个班有30个同学,通过键盘输入成绩,并打印输出,每行输出10个同学的成绩。
程序2:一个班有n个同学,通过键盘输入成绩,并进行以下处理:
(1)求平均成绩;(数组求和)
(2)添加m个同学的成绩;(数组添加)
(3)把不及格同学的成绩更新为60分;(数组更新)
(4)求成绩的最高分和最低分,并记住对应元素的下标;(数组求极值)
(5)对成绩进行排序。(数组排序)
两种基本算法:
1.起泡法:将相邻两个数比较,小的调到前面。 2.选择法:将前面的数和后面的所有数依次进行比较,记住小数的下标,当比较完一遍,用前面的数和该小数进行交换。
程序3:对已经排好序的成绩数组进行以下操作:把一个新成绩按照顺序插入到数组的合适位置。(提高)。
算法分析:
1. 从键盘接收一个数据,存入变量m;
2. 根据变量m的大小进行定位,其对应下标为k;
3. 把score[9]到score[k]的元素依次后移,为新数据腾出空间;
4. 把m存入下标为k的空间中:score[k]=m;
5. 输出处理完后的新数组。
程序4:编程实现求一个3行4列整型数组的平均数。
算法分析:
1.定义一个二维数组a[3][4];
2.为数组赋值;
3.累加元素的和,存入变量s中;
4.求平均数ave=s/12;
5.输出平均数ave。
程序5:编程实现把一个三行三列的二维数组转置输出。
算法分析:
1.定义一个二维数组a[3][3];
2.为数组赋值;
3.交换a[i][j]与a[j][i]的值;
4.输出交换后的数组a。
程序6:某学习小组有4名同学,学习了5门课程,求每个同学的平均分和每门课程的平均分。
算法分析:
1.定义一个二维数组score[5][6](最后一行和最后一列存放平均数);
2.为数组赋值;
3.求行平均数,把平均数存入score[i][5]中(i=0-3);
4.求列平均数,把平均数存入score[4][j]中(j=0-4);
5.输出整个数组。
程序7:从键盘输入一行字符,要求删除第一次出现的某个字符(要删除的字符也由键盘输入)。
算法分析:
1.定义存放字符串的字符数组str和存放单个字符的字符变量ch;
2.输入字符串str和要删除的字符ch;
3.对要删除的ch定位;
4.从该位置开始,开始把后续字符依次前移;
5.检查字符串的结束标记。
程序8:编一程序,将两个字符串连接起来。
算法分析:
1.定位:第一个字符串的‘\0’的位置;
2.从‘\0’开始把第二个字符串的字符依次放入第一个字符串的后端,直至第二个字符串的‘\0’;
3.检验第一个字符串的末端是否有结束符’\0’,若没有,修正所得的字符串,在它的末端加上‘\0’。
程序9:有三个字符串(长度不超过20),要求找出其中最大者。
算法分析:
1.输入三个字符串,存入二维字符数组中;
2.先取前两个字符串比较,找出大的存入string 数组中;
3.用string和后续的依次进行比较,当出现比string的时更新string的值;
4.输出string中的字符串。
实训题目
1、从键盘输入20个整型数据,统计其中正数的个数,并计算它们的求和。
2、把1000之内的素数存放在数组中,并输出素数的个数和各个素数。
3、在第一题的基础上找出最大数和最小数并输出对应的下标。
4、任意输入10个数据,对其进行排序(用选择法小到大)。
5、在第4题的基础上,从键盘上接收一个数据,如果该数不存在,把该数按照顺序放在数组中,若存在则把和该数相等的元素删除。
6、某学习小组有4名同学,学习了5门课程,编程求出最高分和最低分及其对应的行号和列号。
7、输入一行字符,统计字母、数字、空格和其它字符的个数。
4.4 函数的应用
[实训目的及要求] 函数体现了程序设计的模块化思想,可以把复杂的问题简单化,并可实现代码共享。通过本次实训内容,使学生对函数的定义及应用能系统认识,并能熟练地在编程中体现出来。
程序1:利用自定义函数输出两个数中的大数。
程序2:编写以下功能函数,并写出main()函数。
(1)求两个数的和
(2)求两个数的差
(3)求两个数的积
(4)求两个数的商
程序3:用递归法计算n!(通过函数的递归调用计算阶乘)
算法分析:
递归数学模型
程序4:编写函数实现由小到大排序。
算法思路:
1.多个数据用数组存放,在主函数中接收数据。
2.把数据传送到用户自定义函数中。
3.在用户自定义函数中实现排序过程。
4.在主函数中输出排好序的数据。
实训题目
1、定义函数fun_a()判断某数是否为素数,若是素数返回值为1,不是则返回值为0。
2、编写一个加减乘除运算的小系统,当输入为0时退出,用函数实现各项功能。
*****************************
* 1---------加法 *
* 2---------减法 *
* 3---------乘法 *
* 4---------除法 *
* 0---------退出 *
*****************************
上一个:C语言怎嘛才能学好呢?
下一个:寻找两道有趣的C语言题