当前位置:编程学习 > C/C++ >>

您能发给我一些C语言习题吗?

追问: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语言题

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,