C语言实验习题

C实验内容
实验一 基本数据处理
1.1 显示短句
在屏幕上显示一个短句“Programming is fun!”
1.2 求两个数的和与差
1.3 求平方根
输入1 个实数x,计算并输出其平方根(保留1 位小数)。
1.4 华氏温度转换为摄氏温度
输入华氏温度f,计算并输出相应的摄氏温度c(保留2 位小数)。c = 5/9(f-32).
1.5 大写字母转换成小写字母
输入一个大写英文字母,输出相应的小写字母。

实验二 分支结构
2.1 显示两级成绩
输入一个学生的数学成绩,如果它低于60,输出“Fail”,否则,输出“Pass”。
2.2 找最小值
输入四个整数,输出其中的最小值。
2.3 求三角形的面积和周长
输入三角形的三条边a, b, c,如果能构成一个三角形,输出面积area 和周长perimeter(保留2 位小数);否则,输出“These sides do not correspond to a valid triangle”。在一个三角形中,任意两边之和大于第三边。三角形的面积计算公式:
area*area = s(s-a)(s-b)(s-c) 其中:s = (a+b+c)/2
2.4 判断数的符号
输入整数x,若x 大于0,y=1;若x 等于0,y=0;否则,y=-1,最后输出y。
2.5 字母转换
输入一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的大写字母;否则,原样输出。

实验三 循环
3.1 求n!
读入1 个正整数 n (n<=50),计算并输出 n! 。
3.2 求1-1/3+1/5-1/7+??
读入1 个正实数eps,计算并输出1-1/3+1/5-1/7+??,直到最后一项的绝对值小于eps(保留6 位小数)。
3.3 求2/1+3/2+5/3+8/5+...
输入一个正整数n,输出 2/1+3/2+5/3+8/5 +...的前n 项之和,保留2 位小数。(该序列从第2 项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)
3.4 求a+aa+aaa+aa…a
输入2 个正整数a 和n, 求a+aa+aaa+aa?a(n 个a)之和。
3.5 判断素数
输入一个正整数m,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1 和自身整除的正整数,1 不是素数,2 是素数)。
3.6 统计字符
输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。

实验四 嵌套循环
4.1 求1 + 1/2! +....+ 1/n!
输入1 个正整数n,计算 s 的前n 项的和(保留 4 位小数)。s = 1 + 1/2! +....+ 1/n!
4.2 求各位数字的立方和等于它本身的数
输入2 个正整数m 和n(1<=m,n<=1000),输出m 到n 之间的所有满足各位数字的立方和等于它本身的数。
4.3 统计素数并求和
输入2 个正整数m 和n(1<=m,n<=500),统计并输出m 和n 之间的素数的个数以及这些素数的和。
4.4 统计单词
输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。
4.5 输出一个整数的各位数字
输入一个整数,从高位开始逐位输出它的各位数字



实验五 数组
5.1 交换最小值和最大值
输入一个10个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n 个数。
5.2 排序
输入一个正整数n (15.3 矩阵运算
读入 1 个正整数 n(1≤n≤6), 再读入 n 阶方阵 a , 计算该矩阵对角线元素的和。
5.4 找鞍点(选作)
输入 1 个正整数 n(1≤n≤6)和n 阶方阵a 中的元素,如果找到a 的鞍点(鞍点的元素值在该行上最大, 在该列上最小), 就输出它的下标, 否则,输出"NO"(设a 最多有1 个鞍点)。

实验六 函数
6.1 求 s=1 + 1/2! +....+ 1/n!
输入1 个正整数n,计算 s 的前n 项的和(保留 4 位小数)。要求定义并调用函数fact(n)计算n 的阶乘。
6.3 统计一个整数中数字的个数
读入1 个整数,统计并输出该数中2 的个数。
要求定义并调用函数countdigit(number,digit),它的功能是统计整数number 中数字digit的个数。例如,countdigit(10090,0)的返回值是3。
6.4 统计素数并求和
输入2 个正整数m 和n(1<=m,n<=500),统计并输出m 和n 之间的素数的个数以及这些素数的和(素数就是只能被1 和自身整除的正整数,1 不是素数,2 是素数)。要求定义并调用函数prime(m)判断m 是否为素数。
6.5 求完数
输入2 个正整数m 和n(1<=m,n<=1000),输出m 到n 之间的所有完数(完数就是因子和与它本身相等的数)。要求定义并调用函数factorsum(number),它的功能是返回number 的因子和。
6.6 求各位数字的立方和等于它本身的数
输入2 个正整数m 和n(1<=m,n<=1000),输出m 到n 之间的所有满足各位数字的立方和等于它本身的数。要求定义并调用函数is(number)判断number 的各位数字之立方和是否等于它本身。
6.7 将一个整数逆序输出
输入一个整数,将它逆序输出。要求定义并调用函数reverse(number),它的功能是返回number 的逆序数。例如reverse(12345)的返回值是54321。

实验七 指针
7.1 查找整数
定义一个函数 search(int *list,int n,int x),在数组list中查找元素x,若找到则返回相应下标,否则返回-1。
7.2 数据移动
教材P258 习题10.4
7.3 删除字符
编写一个函数delchar(char *s, char c),该函数将字符串s中出现的所有c字符删除。自己定义main函数,并在其中调用delchar(s,c)函数。
7.4 字符串复制
用字符指针定义函数strmcpy(char *s, char *t, int m),将字符串t中从第m个字符开始的全部字符复制到字符串s中去。
7.5 字符串连接
用字符指针实现函数strcat(s,t),将字符串t复制到字符串s的末端,并且返回字符串s的首地址。
7.6 字符串排序
教材P259 习题10.20

实验八 结构体和链表
8.1 计算时间差期
编写一程序,计算两个时刻之

间的时间差,并将其值返回。时间以时、分、秒表示,二个时刻的差小于24 小时。
8.2 成绩处理
输入一个正整数n,再输入n 个学生的学号和数学、英语、C语言成绩,要求
(1) 计算每一个学生的平均成绩。
(2) 输出平均成绩最高的学生的记录。
(3) 按平均成绩从高到低输出学生的成绩单(学号、数学、英语、计算机成绩和平均成绩)

8.3 成绩处理 (选作)
有两个单向链表,头指针分别为list1、list2,链表中每一结点包含姓名、工资基本信息,请编一函数,把两个链表拼组成一个链表,并返回拼组后的新链表。(参考习题11.8)

实验九 文件
9.1 统计字母、数字和字符
统计一个文本文件中字母、数字及其他字符各有多少个。
9.2 删除注释
将一个C 语言源程序文件中所有注释去掉后,存入另一个文件。
9.3 文件合并
文本文件a1.txt 和a2.txt 中包含若干从小到大排过序的整数,现要求把两个文件中的数据合起来,仍按从小到大顺序写入文件a3.txt 中,试编写相应程序。




相关文档
最新文档