大连东软期末C语言考试题库20131208总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大连东软期末C语言考试题库(20131208总结)
C语言编程练习题
1.从键盘上输入两个整型数据a和b的值,计算它们的加、减、乘、除结果,并将结果输出在屏幕上。

2.从键盘上输入两个float类型数据a和b的值,计算它们的加、减、乘、除结果,并将结果输出在屏幕上。

3.从键盘上输入两个double类型数据a和b的值,计算它们的加、减、乘、除结果,并将结果输出在屏幕上。

4.从键盘上输入两个字符型数据a和b的值,将它们输出在屏幕上。

5.定义两个整型变量分别表示长方形的长和宽,从键盘上输入长和宽的值,将这两个值显示在屏幕上,并将长方形的面积和周长也显示在屏幕上。

6.定义一个浮点型变量表示圆的半径,从键盘上输入该半径值,计算出圆的面积并输出在屏幕上。

7.求任意半径的球体积。

球体积的计算公式为:
πr3。

v=4
3
8.定义一个浮点型变量表示一个人的身高(以厘
米为单位),计算并输出其黄金分割点的位置在哪?
9.从键盘输入三角形的三边长a、b、c(假定输入保证了它们能构成三角形),用公式求该三角形的面积。

求三角形面积的公式:area=sqrt(s*(s-a)*(s-b)*(s-c)),其中s=(a+b+c)/2。

10.用“*”符号在屏幕上输出一个“∟”形形状。

显示形状类似下图:
*
*
*
*
*
*
*
* * * * * * * * * *
11.用“*”符号在屏幕上输出一个“∠”形形
状。

显示形状类似下图:
*
*
*
*
*
* *
* * * * * * * * *
12.用“*”符号在屏幕上输出一个“△”形形
状。

显示形状类似下图:
*
* *
* *
* *
* *
* *
* *
* * * * * * * * * * * * * * * * * * 13.从键盘上输入一个秒数,将其转换成对应的小时数、分钟数和秒数。

例如,输入5000,则
输出应为“ 1小时 23分钟 20秒 ”。

14. 从键盘上输入一个天数,将其转换成对应的年数、月数和天数(假设每年均为360天,每月均为30天)。

例如:输入1000,则输出应为“ 2年 9个月 10天 ”。

15. 大连东联路从联合路入口到南关岭出口全长11.3公里,全程限速70公里/小时,编写程序,计算从联合路到南关岭最短的时间是多少分钟多少秒?
16. 从键盘上输入一个华氏温度,利用公式计算其摄氏温度。

计算公式如下:)32(95-=f c 。

17. 反推上面的公式,从键盘上输入一个摄氏温度,计算其对应的华氏温度。

18. 已知某位同学的英语、高数和C 语言成绩(分别从键盘上输入),计算并输出该生的总分和各科平均分(小数点后保留一位)。

19. 从键盘上输入两个整数,将它们的值交换后再输出。

20. 从键盘上输入一成绩,判定其是否及格,若及格,在屏幕上显示congratulation ,若不及格,则在屏幕上显示:failed 。

21.输入一个数,输出它的绝对值。

22.输入两个整数,输出其中较大者【输入三个数,怎么输出其中的最大者?】。

23.输入3个整数,按从小到大的顺序输出。

24.从键盘上输入三角形的三边a,b,c,判断能否构成三角形,若能,计算并输出该三角形面积,若不能,则给出相应的提示。

25.从键盘上输入三角形的三边长,判断该三角形的形状(等边、等腰、一般等)。

26.编写程序,从键盘上输入一个字符,若该字符是大写字母,在屏幕上输出对应的小写字母。

若不是大写字母,请给出相应提示:“这不是一个大写字母”。

27.编写程序,从键盘上输入一个字符,若该字符是大写字母,在屏幕上输出对应的小写字母。

若不是大写字母,请给出相应提示:“这不是一个大写字母”。

28.编写程序,从键盘上输入一个字符,若该字符是小写字母,在屏幕上输出对应的大写字母。

若不是小写字母,请给出相应提示:“这不是一个小写字母”。

29.编写程序,从键盘上输入一个字符,若该字
符是数字字符,在屏幕上输出对应的整数数字。

若不是数字字符,请给出相应提示:“这不是一个数字字符”。

30. 大连出租车的白天(6点至22点)运价规定为:三公里内起步价为8.0元,三公里以外每公里的运价为2.0元。

编写程序,从键盘上输入乘车里程数,计算出车费(车费以元为单位,四舍五入),并输出在屏幕上。

31. 大连出租车的运价规定为:白天(6点至22点):三公里内起步价为8.0元,三公里以外每公里的运价为2.0元。

晚上(22点至6点):三公里内起步价为10.0元,三公里以外每公里的运价为2.4元。

编写程序,从键盘上输入乘车时间及乘车里程数,计算出车费(车费以元为单位,四舍五入),并输出在屏幕上。

32. 求一个三位整数的各个数位上的数值。

(四位整数呢?五位整数呢?任意位的整数呢?)
33. 已知有如下分段函数⎪⎩⎪⎨⎧=-≠-=)1(12)1(11)(2
x x x x x f ,从键
盘上输入x 的值,计算并输出f(x)的值。

34. 编写程序,计算以下分段函数的值,并将结果输出在屏幕上。

35. y
=
{x 2+2x −3 (x ≥30)
3x 2−x 3 ( −5≤x <30)(x +5)2+4x +2 (x <−5) 36. 输入存款金额m 、存期year 和年利率rate ,根据公式计算存款到期时的利息interest ,输出时保留2位小数。

利息计算公式为:m rate m erest year -+=)1(int 。

37. 输入x ,计算并输出下面分段函数f(x)的值。

开方可调用sqrt 库函数,求幂可调用pow 库函数。

调用方法:x 的平方根=sqrt( x);),(b a pow a y b ==。

要调用这两个函数,需要包含
math.h 头文
件。

⎪⎩⎪⎨⎧><+--++=)0()0(17)5(2)1()(23x x x x x x x x f
38. 输入两个正整数m 和n (m<=n ),求
∑=n m i i 1,输
出时保留4位小数。

39. 输入一个正整数n ,计算1+1/3+1/5+…的前n 项之和。

40. 输入一个正整数n ,计算1-1/4+1/7-1/10+1/13-1/16+…的前n 项之
和。

41. 输入一个正整数n ,计算
1-2/3+3/5-4/7+5/9-6/11+…的前n 项之和。

42. 输入实数x 及正整数n ,计算n x 。

(注意:不
允许调用pow 库函数)
43. 统计100-999之间有多少个满足下列要求的整数:其各位数字之和等于5。

输出数的个数,同时,再计算出满足条件的整数的和。

44. 找出200以内的所有完数,并输出其因子。

一个数若恰好等于它的各因子之和,即称其为完数,如6=1+2+3,其中1、2、3为因子,6为因子为和。

(注:要求输出时按哪下格式连同完数的因子一同输出)
6=1+2+3
28=1+2+4+7+14

45. 根据下式求π的值,直到某一项小于8
10-。

46. )
12(...53!...9753!4753!353!23!112+⨯⨯⨯⨯++⨯⨯⨯+⨯⨯+⨯++=i i π
47. 输入一个整数n ,要求将其逆向输出。

例如,输入4172,输出为2714。

48. 输入两个正整数a 和n ,求
a+aa+aaa+…+aa …a(n 个a)之和。

49. 验证哥德巴赫猜想:任何一个不小于6的偶数均可以表示为两个奇素数之和。

例如:6=3+3,8=3+5,…,24=5+19。

编写程序,将6-100之间的偶数都表示成两个素数之和,打印时一行打印5组。

素数就是只能被1和自身整除的正整数。

50. 任意输入一个正整数,输出其各位数字重排后最大的整数。

例如,输入2017,输出为7210。

51. 计算并输出y=1000...102101100++++的值。

(可调用sqrt 库函数)
52. 某客户为购房办理商业贷款,选择了按月等额本息还款法,计算公式如下,在贷款本金(loan )和月利率(rate )一定的情况下,住房贷款的月还款额(money )取决于还款总月数(month)。

客户打算在5-30年的范围内选择还清贷款的年限,为了便于选择,他想查看一下每个还款年限对应的月还款额。

请你编写程序,帮他打印一张“还款年限-----月还款额”对照表(月还款额保留2位小数)。

计算公式为:1)1()1(-++⨯=month month
rate rate rate loan money (注:最新5年期以上
贷款年利率为6.55%)
53. if 、switch 题:输入月薪salary ,输出应缴的个人所得税tax (保留2位小数)。

按照2011年实行的最新的个人所得税法,计算公式为:tax=rate(salary-3500)-deduction 。

当salary<=3500时,rate=0,deduction=0; 当3500<salary<=5000时,rate=3%,deduction=0;
当5000<salary<=8000时,rate=10%,deduction=105;
当8000<salary<=12500时,rate=20%,deduction=555;
当12500<salary<=38500时,rate=25%,deduction=1005;
当38500<salary<=58500时,rate=30%,deduction=2755;
当58500<salary<=83500时,rate=35%,deduction=5505;
当83500<salary 时,rate=45%,deduction=13505;
54. 从键盘上输入10个成绩,求其平均成绩。

55. 编写程序,用公式 +-+-=7
1513114π
求π的近似值,直到最后一项的绝对值小于10-6为止。

56.编写程序,求任意整数的各个数位上的数字之和,如输入整数67401,结果为18(因为1+0+4+7+6=18)。

57.编写程序,输出100-999之间所有的“水仙花”数。

如371是水仙花数,因为13+73+33=371。

58.编写程序,求s=1+2+3+4+…+100的和。

59.编写程序,求s=1+2+3+4+…+n的和。

60.编写程序,求s=m+(m+1)+(m+2)+(m+3)+…+n的和。

61.编写程序,求n!。

62.编写程序,求满足1+2+3+4+…+n<1000时n 的最大值及其和值。

63.编写程序,求s=1+2+4+5+7+8+10+…+100的值。

64.统计100-999之间有多少个满足下列要求的整数:其各位数字之和为5。

编写程序,输出这些整数,并计算它们的和。

65.读入一批正整数(以零或负数结束),求其中奇数的和。

66.输入一个正整数n,然后再输入n个整数,
输出这n个整数中的最小数。

67.皮球从h米的高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,如此反复。

编写程序,计算皮球在第n次反弹落地时,在空中经过的路程是多少米?第n次反弹的高度是多少米?
68.黑洞数,又称“Kaprekar问题”。

从键盘上输入任意一个数字不全相同的三位数,经有限次“重排求差”操作,总会得到495.最后所得的495即为三位黑洞数。

所谓“重排求差”操作即组成该数的数字重排后的最大数减去最小数。

例如,对于192:第1次重排求差得:921-129=792;第2次,得:972-279=693;第3次,得:963-369=594;第4次,得954-459=495.三个数字相同,则转换一次后即得0。

编写程序,输出任意三位数的重排求差过程。

69.韩信点兵。

韩信在点兵的时候为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:按从1至5报数,最后一个士兵报数为1;再按从1至6报数,最后一个士兵报数为5;再按从1至7报数,最后一个士兵报数为4;再按从1至11报数,最后一个士兵报数为10.
编写程序,计算韩信有多少兵?
70.编写程序,在屏幕上输出2-n间所有的素数,n从键盘上输入。

素数是指只能被1和自身整除的整数,最小的素数是2。

71.银行换零钱。

假定你拿1张百元钞票到银行换零,要求是必须换成若干张20元、10元和5元。

请编写程序,找出所有可能的找零组合,如1张20元,5张10元,6张5元。

72.36块砖,36人搬,男搬3,女搬1,小孩2人抬一块。

编写程序,输出所有可能的男、女、小孩组合。

73.编写程序,找出200以内的所有完数,并输出其因子。

一个数若恰好等于它的各因子之和,即称其为完数。

例如:28=1+2+4+7+14,其中1、2、4、7、14均为28的因子,则28是一个完数。

74.编写程序,输出任意偶数的质因子。

例如:500=2*2*5*5; 612=2*2*3*3*17。

75.利用泰勒展开式e x=1+x
1!+x2
2!
+x3
3!
+
⋯,−∞<x<∞计算常量e的值(精确到小数点后10位)。

76.从键盘上输入一个数组的10个元素,逆序输出各元素。

77.从键盘上输入一个数组的10个元素,逆序存储各元素后,再顺序输出。

78.从键盘上输入一个数组的10个元素,将每个元素依次向后移一个位置,最后一个元素移动到第一个元素的位置。

(反向移动?)
79.将数组中的一个元素删除。

80.往一个按升序排好的数组中插入一个新元素,使其仍然保持升序。

81.输出数组中最大(小)值(下标)。

82.计算并输出数组中所有元素的和(或平均值)。

83.输出数组中比平均值大(或小)的元素。

84.把该数组中所有的奇数(或偶数)存储到另一数组中,并计算奇数的个数。

85.输入一个新数,查询该数是否在数组中,若在,输出其下标,若不在,给出相应提示。

86.自定义函数,实现strlen的功能。

87.自定义函数,实现strcpy的功能。

88.自定义函数,实现strcat的功能。

89.自定义函数,实现strcmp的功能。

90.自定义函数,求一个字符串中满足要求的子串。

函数原型为:”char * substring( const char *str, int start, int length) “,返回值为得到的新串的首地址,str为要查找子串的源字符串,start为子串在原串的起始位置,length为待求子串的长度。

若求子串不成功,则返回空串。

91.计算Fabonacci数列的前n项,n从键盘上输入。

Fabonacci数列的形式为:
11 2 3 5 8 13 21 34 …
92.打印杨辉三角,如下所示:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
提示:杨辉三角形有以下特点:
(1)只有下半三角形有确定的值;
(2)第一列和对角线上的元素值都是1,其他元
素值均是前一行同一列元素与前一行前一列元素之和。

93.随机生成一个M行N列的二维数组,完成以下任务:
(1)按矩阵形式输出该数组的全部元素
(2)求数组中的最大(或最小)值
(3)求每一行的最大(或最小)值
(4)给定一个i,j下标值,计算围绕元素[i][j]的其它元素的和。

(注意边界上的元素)
(5)将该数组所表示的矩阵转置
94.求一个二维数组的鞍点。

所谓鞍点,即该位置上
的元素在该行上最大,在该列上最小。

也可能没有鞍点。

95.求一个M*N的矩阵和一个N*M的矩阵相乘的结果。

96.编程求两个3×4 (3行4列)矩阵之和。

然后输出。

矩阵元素的值从键盘输入。

97.统计一个字符串在另一个字符串中出现的次数。

例如:字符串“abc”在字符串
“*abc12ababcab”中出现的次数为2。

98.编写程序实现如下功能:
将字符串中所有的字母‘n’都改成大写‘N’,并输出处理后的字符串。

99.编写程序实现如下功能:
将字符串中的字母‘n’都删掉,并输出处理后的字符串。

100.编写程序实现如下功能:
将字符串中的指定字符序列都删掉,并输出处理后的字符串。

例如:字符串“abcababcababca”删除“abc”字符序列后的串为“ababa”。

101.编写程序实现如下功能:
将字符串中所有的小写字母都改成对应的大写字母(或者将大写字母改成对应的小写字母),并输出处理后的字符串。

102.编写程序实现如下功能:
将字符串中的每个单词的首个字母变成大写字母,并输出处理后的字符串。

103.从键盘输入一个字符串,统计其中大写字母的个数、小写字母的个数以及空格的个数。

104.从键盘输入一个字符串,统计其中每个英文字母的个数(不区分大小写、或区分大小写)。

例如:输入“This is a test string.”,则输出应为(区分大小写的情况):
a------1 e------1 h------1 i------3
g-----1 n------1 s------3 t------3
T------1
105.判断字符串是否回文。

是回文,返回1,不是,则返回0.
106.字符串替换函数。

(在字符串str中查找是否有子串source,若有,将其替换为target
子串。

替换成功返回1,替换不成功返回0.
int strReplace( char * str, char *source, char * target)
107.在字符串str中查找是否有字符source,
若有,将其替换为字符target。

替换成功返回1,替换不成功返回0.
int strReplace( char * str, char source, char target)
108.从键盘输入5个字符串,按升序排序后输出。

109.识别字符串中的整数并转换为数字形式。

(华为笔试题)
问题描述:识别输入字符串中所有的整数,统计整数个数并将这些字符串形式的整数转换为数字形式整数。

要求实现函数:
void take_num( const char *str, int *n, unsigned int *outArray)
【输入】str : 输入的字符串
【输出】n: 统计识别出来的整数个数
outArray:识别出来的整数值,其中outArray[0]是输入字符串中从左到右第一个整数,outArray[1]是第二个整数,依此类推。

【返回】无
(1)不考虑字符串中出现的正负号(+、-),即所有转换结果为非负整数(包括0和正整数)(2)不考虑转换后整数超出范围情况,即测试用例中可能出现的最大整数不会超过unsigned int可处理的范围
(3)需要考虑’0’开始的数字字符串情况,比如”00035”,应转换为整数35;”000”应转换为整数0;”00.0035”应转换为整数0和35(忽略小数点:mmm.nnnnnn当成两个整数mmm 和nnnnnn来识别)
(4)输入字符串假定不会超过100字节。

【示例】
输入:ab00cd+123fght456-25 3.005fgh
输出:n=6
outArray={0, 123, 456, 25, 3, 5}
小组作业:开发一个学生成绩管理系统
要求:建议每位同学完成一个完整的成绩管理系统,有问题,由组长组织在一起讨论,小组内展示成果。

以下给出具体说明。

函数原型:
序号函数原型说明功能及形式参数说明
1 void displayMenu( ) 显示菜单
2 int login( ) 验证口令。

成功返回1,否则返回0
3 int inputScore(int score[ ], int length) 输入学生成绩到数组中。

如果某个学生的
成绩输入为-1,则表示输入结束。

score为
成绩数组,length为该数组的最多元素个
数;返回值为实际输入的学生个数
4 void outputScore(int score[ ], int length) 输出数组中的学生成绩。

score为成绩数组,
length为实际存储的学生个数
5 int queryScore(int score[ ], int length, int
xScore) 查询成绩。

score为成绩数组,length为实际存储的学生个数,返回值为最高成绩的下标
6 void sortScore(int score[ ], int length) 对每个学生的成绩进行排序。

score为成绩
数组,length为实际存储的学生个数
运行效果说明:
系统运行画面如下所示:
运行程序可执行文件,根据菜单的提示,选择要使用的功能。

如选择1,则表示要对学生成绩进行录入,根据提示,录入若干个学生的成绩,若想结束录入,根据提示输入结束标记(-1)即可。

选择2,就会把刚才录入的所有成绩显示出来。

若要查找某个学生的成绩,则选择3,输入要查找的成绩,就会把查找结果显示出来。

若要对所有输入的学生成绩进行排序,则选择4,即可把所有成绩按照由低到高的顺序显示出来。

110.用一维数组的完成上述小组作业。

111.用二维数组改版本上述小组作业,使其可以管理多门课程的成绩。

112.用指向一维数组的指针改版一维数组的成绩管理。

113.用结构体改版上述小组作业,使其可以管理学生的学号、姓名、多门课程的成绩,以及其他相关信息,并能够将信息存储到文件中,也能从文件中读取已存储了的信息。

114.用链表改版上述小组作业,使其可以实现与用结构体类似的功能。

相关文档
最新文档