c语言作业题目 下载本文

内容发布更新时间 : 2024/9/20 6:05:10星期一 下面是文章的全部内容请认真阅读。

C语言程序设计作业

Exercise 1----Branch

1、P69 4.3 编写程序计算平面上两点间的距离。

2、P69 4.4 编写程序判断在一个平面上两个平行于坐标轴的矩阵是否相交。 3、输入三个整数a,b,c,请输出最大数和最小数,中间用一个空格隔开。 提示:分别设max和min分别表示最大数和最小数。

4、输入三角形的三条边a,b,c。如果构成三角形,那么就计算三角形的面积并输出,否则输出“Not triangle”。

1/2

提示:海伦公式:令s=(a+b+c)/2,面积:area=(s(s-a)(s-b)(s-c))。

Exercise 2—branch and Loop

1、P82 5.1下面的代码段意欲实现:如果x=0,则什么也不做,除非y=0时调用exit(1);否则置x=x+y。你认为这段代码能否完成上述功能?若不能,请给出一个实现方案。 if(x==0) if(y==0) exit(1); else

x=x+y;

2、P82 5.2 任意给出一个三位十进制整数,若该数中有且仅有两个数码相同,则输出该数。如:输入323,输出323;如:输入111,输出No。请编写程序。 3、P82 5.3 用switch-case语句编程计算y的值:

cos(x+3.0) 0<=x<10 y= cos2(x+7.5) 10<=x<20

cos4(x+4.0) 20<=x<30

4、输入n个整数,求n个数的和。

提示:输入的第1行是一个整数n(1<=n<=1000),表示有多少个数求和;第2行以后是n个整数,每个整数之间用空格或回车隔开。每个整数的范围都在[-100000,100000]之内。

Exercise 3--Loop

1、P69 4.5 编写程序求一个十进制正整数x在二进制下的位数。

2、在歌星大奖赛中,有10个评委为参赛选手打分,打分的原则是:最低给1分,最高给100分。选手最后的得分为:去掉一个最高分和一个最低分后,其余8个分数的平均值。请编写一个程序计算一个选手的得分。

3、P102 6.2 有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…,求出这个序列有前20项之和。 4、P102 6.3 分别用循环语句编程输出下面的两个菱形图案:

* A *** BBB ***** CCCCC ******* DDDDDDD ********* EE E EE E EEE ******* F F F F F FF ***** GGGGG *** HHH

* I

Exercise 5--Loop

1、P102 6.4 编程求出3000以内的全部亲密数。所谓亲密数是指:如果整数A的全部因子(不包括自身)之和等于B,且整数B的全部因子(不包括自身)之和也等于A,则A和B被称为亲密数。

2、P102 6.5 编程求出所有的水仙花数。所谓的水仙花数是指一个三位的十进制整数,其各位数字的立方和等于该数本身。如153=13+53+33,所以它是一个水仙花数。

3、P102 6.7 数3025平均分为两段,即30和25,使之相加后求平方,即(30+25)2,恰好等于3025本身。编程求出具有这样性质的全部四位数。

4、P82 5.5 三个等差数列的数,首尾两项之和为中项的5倍,后两项之和为第一项的8倍,编程求此3个数。

Exercise 6--Function

1、P158 8.1 编写程序,将十进制正整数转换成十六进制字符串逆序输出。要求用到函数进行转换。 2、P158 8.2 用函数方法编程输出十进制数n以内的所有素数。 3、下面的程序存在什么错误?为什么?

#include float f(float,int); int main() {

float x = 3.14;

static int y = f(x,3); printf(\

}

float f(float x,int y) {

return x+y;

}

4、用函数求解级数:

y=1+1/x+1/x2+1/x3+?直到某一项1/xn ≤10-6时为止。

Exercise 7-Array

1、写一函数digit(n,k) ,它把数n从右边起的第k位数字的值给出来,其中n为正整数,若n的位数不足k,则返回值0。

2、P129 7.1 编写程序,输入一个十进制整数,并将其转转换成十六进制数输出。不允许使用%x输出。 3、P129 7.2 从键盘上输入一个正整数,判断其是否是回文数。所谓回文数是指顺序读与反序读都是一样的数,如121,25852。

4、P129 7.4 编程求数列:f1=f2=1;fn=3*fn-1+2*fn-2(n>2)的第10项以及前10项之和。

Exercise 8-Point and Struct

1、P129 7.6 从键盘上输入两个字符串,若不相等,将短的字符串连接到长的字符串的末尾并输出新的字符串,要求不使用字符串函数。

2、P129 7.8 有10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生的数据,要求打印出3门课程的总平均成绩,以及最高平均分的学生的数据(包括学号、姓名、3门课的成绩、平均成绩)。

3、P187 9.5 编写一个函数实现从长度为n的源字符串中的第m个字符开始截取k(m+k

4、有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数,报到m的人退出圈子,下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。请按退出顺序输出退出圈子的人的编号。

Exercise 8- comprehensive problems 1、数字塔

有多个输入测试用例,每一个用例一行,是一个0~9的整数,输入为0时则结束。屏幕显示如下:

样例输入 样例输出

2 case 1: 1 222 3

case 2:

1 222 33333 0 end

―――――――――――――――――――――――――――――――――――――――

2、魔术师的猜牌术。魔术师手拿13张迭在一起的黑桃牌,牌面朝下。对观众说:我不看牌,只数数就可以猜到每张牌是什么。接着,魔术师将最上面的那张牌数为1,把它翻过来正好是黑桃A,将黑桃A放在桌子上,然后按顺序从上到下数手上的余牌,第二次数1、2,将第一张牌放在这迭牌的下面,将第二张牌翻过来,正好是黑桃2,也将它放在桌子上,第三次数1、2、3,将前面两张依次放在这迭牌的下面,再翻第三张牌正好是黑桃3。这样依次进行将13张牌全翻出来,准确无误。问魔术师手中的牌原始顺序是怎样安排的?请用函数实现。

3、P187 9.6有一个班4个学生5门课程,要求: (1)计算每一门课程的平均分。

(2)找出两门课程不及格的学生,输出他们的学号,姓名,全部成绩和平均成绩。 (3)找出平均成绩在90分以上或全部成绩在85分以上的学生。 分别编写3个函数实现上述要求,要求使用结构数组。

4、请编写一个程序,可以将英语规则名词由单数变成复数(用函数实现),已知规则如下: (1)以字母y结尾,则将y改成i,再加上es; (2)以s,x,ch,sh结尾,则加es; (3)以元音o结尾,则加es; (4)其他情况直接加s。

要求用键盘输入英语规则名词,屏幕输出该名词的复数形式。

以下为选做题

P44-45 习题2.7、2.11、2.12、2.13、2.14、2.15