大连东软期末C语言考试题库20131208总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.用链表改版上述小组作业,使其可以实现与用结构体类似的功能。