大连东软期末C语言考试题库(20131208总结).docx
《大连东软期末C语言考试题库(20131208总结).docx》由会员分享,可在线阅读,更多相关《大连东软期末C语言考试题库(20131208总结).docx(9页珍藏版)》请在冰点文库上搜索。
C语言编程练习题
1.从键盘上输入两个整型数据a和b的值,计算它们的加、减、乘、除结果,并将结果输出在屏幕上。
2.从键盘上输入两个float类型数据a和b的值,计算它们的加、减、乘、除结果,并将结果输出在屏幕上。
3.从键盘上输入两个double类型数据a和b的值,计算它们的加、减、乘、除结果,并将结果输出在屏幕上。
4.从键盘上输入两个字符型数据a和b的值,将它们输出在屏幕上。
5.定义两个整型变量分别表示长方形的长和宽,从键盘上输入长和宽的值,将这两个值显示在屏幕上,并将长方形的面积和周长也显示在屏幕上。
6.定义一个浮点型变量表示圆的半径,从键盘上输入该半径值,计算出圆的面积并输出在屏幕上。
7.求任意半径的球体积。
球体积的计算公式为:
v=43πr3。
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.从键盘上输入一个华氏温度,利用公式计算其摄氏温度。
计算公式如下:
。
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.已知有如下分段函数,从键盘上输入x的值,计算并输出f(x)的值。
34.编写程序,计算以下分段函数的值,并将结果输出在屏幕上。
35.y=x2+2x-3(x≥30)3x2-x3(-5≤x<30)(x+5)2+4x+2(x<-5)
36.输入存款金额m、存期year和年利率rate,根据公式计算存款到期时的利息interest,输出时保留2位小数。
利息计算公式为:
。
37.输入x,计算并输出下面分段函数f(x)的值。
开方可调用sqrt库函数,求幂可调用pow库函数。
调用方法:
x的平方根=sqrt(x);。
要调用这两个函数,需要包含math.h头文件。
38.输入两个正整数m和n(m<=n),求,输出时保留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,计算。
(注意:
不允许调用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.根据下式求的值,直到某一项小于。
46.
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=的值。
(可调用sqrt库函数)
52.某客户为购房办理商业贷款,选择了按月等额本息还款法,计算公式如下,在贷款本金(loan)和月利率(rate)一定的情况下,住房贷款的月还款额(money)取决于还款总月数(month)。
客户打算在5-30年的范围内选择还清贷款的年限,为了便于选择,他想查看一下每个还款年限对应的月还款额。
请你编写程序,帮他打印一张“还款年限-----月还款额”对照表(月还款额保留2位小数)。
计算公式为:
(注:
最新5年期以上贷款年利率为6.55%)
53.if、switch题:
输入月薪salary,输出应缴的个人所得税tax(保留2位小数)。
按照2011年实行的最新的个人所得税法,计算公式为:
tax=rate(salary-3500)-deduction。
当salary<=3500时,rate=0,deduction=0;
当3500当5000当8000当12500当38500当58500当8350054.从键盘上输入10个成绩,求其平均成绩。
55.编写程序,用公式求π的近似值,直到最后一项的绝对值小于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.利用泰勒展开式ex=1+x1!
+x22!
+x33!
+…,-∞76.从键盘上输入一个数组的10个元素,逆序输出各元素。
77.从键盘上输入一个数组的10个元素,逆序存储各元素后,再顺序输出。
78.从键盘上输入一个数组的10个元素,将每个元素依次向后移一个位置,最后一个元素移动到第一个元素的位置。
(反向移动?
)
79.将数组中的一个元素删除。
80.往一个按升序排好的数组中插入一个新元素,使其仍然保持升序。
81.输出数组中最大(小)值(下标)。
82.计算并输出数组中所有元素的和(或平均值)。
83.输出数组中比平均值大(或小)的元素。
84.把该数组中所有的奇数(或偶数)存储到另一数组中,并计算奇数的个数。
85.输入一个新数,查询该数是否在数组中,若在,输出其下标,若不在,给出相应提示。
86.自定义函数,实现strlen的功能。
87.自定义函数,实现strcpy的功能。
88.自定义函数,实现strcat的功能。
89.自定义函数,实现strcmp的功能。
90.自定义函数,求一个字符串中满足要求的子串。
函数原型为:
”char*substring(constchar*str,intstart,intlength)“,返回值为得到的新串的首地址,str为要查找子串的源字符串,start为子串在原串的起始位置,length为待求子串的长度。
若求子串不成功,则返回空串。
91.计算Fabonacci数列的前n项,n从键盘上输入。
Fabonacci数列的形式为:
11 2 3 5 8 13 21 34 …
92.打印杨辉三角,如下所示:
1
11
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.从键盘输入一个字符串,统计其中每个英文字母的个数(不区分大小写、或区分大小写)。
例如:
输入“Thisisateststring.”,则输出应为(区分大小写的情况):
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.
intstrReplace(char*str,char*source,char*target)
107.在字符串str中查找是否有字符source,若有,将其替换为字符target。
替换成功返回1,替换不成功返回0.
intstrReplace(char*str,charsource,chartarget)
108.从键盘输入5个字符串,按升序排序后输出。
109.识别字符串中的整数并转换为数字形式。
(华为笔试题)
问题描述:
识别输入字符串中所有的整数,统计整数个数并将这些字符串形式的整数转换为数字形式整数。
要求实现函数:
voidtake_num(constchar*str,int*n,unsignedint*outArray)
【输入】str:
输入的字符串
【输出】n:
统计识别出来的整数个数
outArray:
识别出来的整数值,其中outArray[0]是输入字符串中从左到右第一个整数,outArray[1]是第二个整数,依此类推。
【返回】无
(1)不考虑字符串中出现的正负号(+、-),即所有转换结果为非负整数(包括0和正整数)
(2)不考虑转换后整数超出范围情况,即测试用例中可能出现的最大整数不会超过unsignedint可处理的范围
(3)需要考虑’0’开始的数字字符串情况,比如”00035”,应转换为整数35;”000”应转换为整数0;”00.0035”应转换为整数0和35(忽略小数点:
mmm.nnnnnn当成两个整数mmm和nnnnnn来识别)
(4)输入字符串假定不会超过100字节。
【示例】
输入:
ab00cd+123fght456-253.005fgh
输出:
n=6
outArray={0,123,456,25,3,5}
小组作业:
开发一个学生成绩管理系统
要求:
建议每位同学完成一个完整的成绩管理系统,有问题,由组长组织在一起讨论,小组内展示成果。
以下给出具体说明。
函数原型:
序号
函数原型说明
功能及形式参数说明
1
voiddisplayMenu()
显示菜单
2
intlogin()
验证口令。
成功返回1,否则返回0
3
intinputScore(intscore[],intlength)
输入学生成绩到数组中。
如果某个学生的成绩输入为-1,则表示输入结束。
score为成绩数组,length为该数组的最多元素个数;返回值为实际输入的学生个数
4
voidoutputScore(intscore[],intlength)
输出数组中的学生成绩。
score为成绩数组,length为实际存储的学生个数
5
intqueryScore(intscore[],intlength,intxScore)
查询成绩。
score为成绩数组,length为实际存储的学生个数,返回值为最高成绩的下标
6
voidsortScore(intscore[],intlength)
对每个学生的成绩进行排序。
score为成绩数组,length为实际存储的学生个数
运行效果说明:
系统运行画面如下所示:
运行程序可执行文件,根据菜单的提示,选择要使用的功能。
如选择1,则表示要对学生成绩进行录入,根据提示,录入若干个学生的成绩,若想结束录入,根据提示输入结束标记(-1)即可。
选择2,就会把刚才录入的所有成绩显示出来。
若要查找某个学生的成绩,则选择3,输入要查找的成绩,就会把查找结果显示出来。
若要对所有输入的学生成绩进行排序,则选择4,即可把所有成绩按照由低到高的顺序显示出来。
110.用一维数组的完成上述小组作业。
111.用二维数组改版本上述小组作业,使其可以管理多门课程的成绩。
112.用指向一维数组的指针改版一维数组的成绩管理。
113.用结构体改版上述小组作业,使其可以管理学生的学号、姓名、多门课程的成绩,以及其他相关信息,并能够将信息存储到文件中,也能从文件中读取已存储了的信息。
114.用链表改版上述小组作业,使其可以实现与用结构体类似的功能。