《C程序设计基础》 上机题库(39页).doc

上传人:1595****071 文档编号:35280419 上传时间:2022-08-21 格式:DOC 页数:40 大小:51.50KB
返回 下载 相关 举报
《C程序设计基础》 上机题库(39页).doc_第1页
第1页 / 共40页
《C程序设计基础》 上机题库(39页).doc_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《《C程序设计基础》 上机题库(39页).doc》由会员分享,可在线阅读,更多相关《《C程序设计基础》 上机题库(39页).doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-C+程序设计基础上机题库 说明: 本上机题库按内容分为四部分, 即程序设计初步、 函数、 数组、 指针, 其中每一部分又根据难度不同分为 A、 B、 C 三类。 第一部分 程序设计初步 一、 A 类程序设计题 1、 将用户输入的字母自动转换为大写字母后输出, 假定用户输入的字符均是字母。 2、 判断用户所输入的整数是否为偶数 3、 编程实现并输出两个数的大小判断, 将大数输出 4、 编程实现并输出两个数的和值 5、 将括号中的字符串分别按每行一个单词的方式分行显示。(This is a C+program)6、 编程计算并输出字符、 无符号整数与长整型数值在内存中所占字节数7、 定义三个变量

2、, 由用户指定其值, 并将值输出显示给用户8、 定义三个变量, 并完成初始化后输出显示给用户9、 完成9除3后的求余操作并输出结果 10、 编程计算表达式abc一1. 5+a11、 将China译成密码, 密码规律是: 用原字母后面第四个字母代替原来的字母, 例如,字母A后面第四个字母是E, 用E代替A。 因此China应译为Glmre。 请编写一程序, 用赋初值方法使c1, c2, c3, c4, c5这5个变量值分别为C、 h、 i、 n、 a, 经过去处,使c1, c2, c3, c4, c5分别为为G、 l、 m、 r、 e 12、 将一个用户输入的整数分别以十六进制、 八进制、 十进

3、制方式、 科学计数法输出。 13、 求矩形面积, 长、 宽值由用户指定 14、 运输公司对用户计算运费。 路程(s)越远, 每公里运费越低。 标准如下: s250km 没有折扣 250s500 2折扣 500s1000 5折扣 1000s2000 8折扣 2000s3000 10折扣 3000s 15折扣 设每公里每吨货物的基本运费为p(price的缩写) , 货物重为w(wright的缩写) , 距离为 , 折扣为d(discount的缩写) , 则总运费f(freight的缩写) 的计算公式为: f = p * w * s * (1 - d) 要求采用if语句嵌套完成。 15、 采用do

4、while循环结构完成1至100之间的奇数相加。 16、 用循环语句编程打印下列矩阵形式, 尽量使语句简捷, 注意第一列与第二列间距为一个Tab的位置, 其余宽度为两个空格:1 0 1 2 3 4 5 62 1 2 3 4 5 6 0 3 2 3 4 5 6 0 1 4 3 4 5 6 0 1 2 5 4 5 6 0 1 2 3 6 5 6 0 1 2 3 4 17、 编程求圆面积, 并输出结果。 其中圆半径以用户运行时指定 2 +bx+c=0的根。 18、 编程求一元二次方程ax19、 编程实现由底和高求三角形的面积。 20、 计算y, 其中y=(x+1) /(x-1) 21、 用for循环

5、语句编程打印下列矩阵形式, 尽量使语句简捷, 注意各列相距两个空格: (1, 1) (1, 2) (1, 3) (1, 4) (1, 5) (1, 6) (1, 7) (2, 1) (2, 2) (2, 3) (2, 4) (2, 5) (2, 6) (2, 7) (3, 1) (3, 2) (3, 3) (3, 4) (3, 5) (3, 6) (3, 7) (4, 1) (4, 2) (4, 3) (4, 4) (4, 5) (4, 6) (4, 7) (5, 1) (5, 2) (5, 3) (5, 4) (5, 5) (5, 6) (5, 7) (6, 1) (6, 2) (6, 3)

6、 (6, 4) (6, 5) (6, 6) (6, 7) 二、 B类程序设计题1、 实现用户输入的三个整数的排序 2、 实现在响玲后, 将字符串“Hello world” 输出 3、 实现任一字符和字符串长度的输出, 其中字符和字符串内容由编程者自定 4、 将括号内的字符串输出, (He said : I have done it. ) 5、 定义一个符号常量, 并在主函数中加以应用 6、 编辑实现计算并输出字符、 无符号整数与长整型数值在内存中所占字节数 7、 将用户输入的五个字母(大小写均可) 译成密码, 密码规律是: 用原字母后面第四个字母代替原来的字母, 例如, 字母A后面第四个字母是

7、E, 用E代替A。 要求: 字符由用户指定输入五个, 程序采用循环体完成, 增加对输入合法性进行判断 8、 使用scanf函数输入一个整数、 浮点数和字符, 并用printf输出 2+bx+c=0 的根, 其中 a、 b、 c 的值由用户指定 10、 根据用户输入的成绩, 判定其优良等级, 其中优是 85 分以上, 良是 75 至 84 之间,中是 65 至 74 之间, 及格是 60 至 64, 其余为不及格 11、 编写程序, 判断某一年是否为润年 12、 编写程序, 判断某整数是否为素数 13、 给出一个不多于5位的正整数, 要求: 求出它是几位数; 分别打印出每一位数字;按逆序打印各位

8、数字, 例如原数为321, 则输出123 14、 输入两个正整数m和n, 求其最大公约数和最小公倍数 15、 采用循环结构完成1至100之间的偶数相加。 16、 键盘输入正整数 n, 求出 n 与其反序数 x 之和并输出。 例如, 输入 2038, 输出应为: n + x = 2038 + 8302 = 10340。 17、 编程打印乘法九九表 * 1 2 3 4 5 6 7 8 9 - 1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 9 12 15 18 21 24 27 4 4 8 12 16 20 24 28 32 36 5 5 10

9、 15 20 25 30 35 40 45 6 6 12 18 24 30 36 42 48 54 7 7 14 21 28 35 42 49 56 63 8 8 16 24 32 40 48 56 64 72 9 9 18 27 36 45 54 63 72 81 19、 编程实现输入一个整数, 判断其能否被3、 5、 7整除, 并输出以下信息之一: (1) 能同时被3、 5、 7整除 (2) 能被其中两数(要指哪两个整除) (3) 能被其中一个数(要指出该数) 整除 (4) 不能被3、 5、 7整除 20、 编程输出以下格式的乘法九九表 * 1 2 3 4 5 6 7 8 9 - 1 1

10、2 2 4 3 3 6 9 4 4 8 12 16 5 5 10 15 20 25 6 6 12 18 24 30 36 7 7 14 21 28 35 42 49 8 8 16 24 32 40 48 56 64 9 9 18 27 36 45 54 63 72 81 22、 输入年份, 判断是否为闰年。 输入月号, 输出每月的天数 23、 输入三角形三边, 编写程序判断三角形的种类: 等腰三角形、 等边三角形或一般三角形。 24、 输入一个字符, 编写程序判断该输入字符的种类: 数字、 字母或其它。 25、 两个数的十、 一、 *和/的简易计算器程序。 26、 编程输入整数a和b, 若 大

11、于100, 则输出 百位以上的数字, 否则输出两数之和。 27、 给一个不多于5位的正整数, 要求: 求出它是几位数; 分别打印出每一位数字;按逆序打印出各位数字, 例如原数是321, 应输出123。 28、 若 a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b。 想得到以下的输出格式和结果, 请写出程序(包括定义变量类型和设计输出)。 a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.60 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765

12、 c1=a or 97(ASCII) c2=b or 98(ASCII) 29、 设圆半径r=1.5, 圆柱高h=3, 求圆周长, 圆面积, 圆球表面积, 圆球体积, 圆柱体积。 用scanf输入数据, 输出计算结果; 输出时要求有文字说明, 取小数点后2位数字, 请编写程序。 31、 用一个循环体结构求1!+2!+3!+19!+20! 三、 C 类程序设计题 1、 判断三角形是否成立, 并求其面积和周长5、 输入一行字符, 分别统计出其中英文字母、 空格、 数字和其它字符的个数 6、 输出所有的水仙花数, 所谓水仙花数是指一个 3 位数, 其各位数字的立方之和等于该数本身。 例如 153 是

13、一个水仙花数, 因为 153=13+53+33 9、 两个乒乓球队进行比赛, 各出 3 人。 甲队为 A、 B、 C3 人, 乙队为 X、 Y、 Z3 人。 已抽签决定比赛名单。 有人向队员打听比赛名单, A 说他不和 X 比, C 说他不和 X、 Z比, 请编程找出 3 对赛手名单。 10、 编程求所有的 3 位素数, 且该数是对称的。 所谓对称是指一个数, 倒过来还是该数,例如, 375 不是对称, 因为倒过来后变成 573。 11、 编程求解母牛问题。 若一头母牛, 从出生起第四个年头开始每年生一头母牛, 按这规律, 第 n 年时有多少头母牛? n 为用户在运行时指定的数值。 12、 百

14、钱买百鸡问题: 雄鸡 7 元/只, 母鸡 5 元/只, 小鸡 1 元/3 只. 花 100 元钱, 买100 只鸡, 如果雄鸡、 母鸡和小鸡都必须有, 则雄鸡、 母鸡和小鸡应各买几只? 13、 一球从 100m 落下, 每次落地后反跳回原高度的一半, 再落下。 编程求它在第 10 次落地时, 共经过多少 m? 第 10 次反弹多高? 第二部分 函数 一、 A 类程序设计题 1、 编写一个求梯形面积的函数, 在主函数中调用 2、 编写函数, 求sinh(x) 的值, sinh(x) =(ex-e-x) /2 3、 已知三角形的三边, 求三角形面积, 将其编写成一个函数。 4、 编写一个函数实现1

15、0个数的最大值函数 5、 编写一个函数来检验输入的一个字符是大写字母还是小写字母英文字母。 6、 使用函数重载的方法定义两个重名函数, 分别求出整型数的两点间距离和浮点型数的两点间距离。 7、 编写函数将华氏温度转换为摄氏温度, 公式为C=(F-32) *5/9; 并在主函数中调用。 8、 编写一个函数来检验输入的一个字符是0-9。 9、 利用重载编写求整数绝对值和求实数绝对值两个函数。 10、 使用静态局部变量, 编写一个函数计算13的阶乘。 11、 重载求平方的函数, 实现求整数、 单精度浮点数和双精度浮点数的平方值。 12、 完成函数, 参数为两个 unsigned short int

16、型数, 返回值为第一个参数除以第二个参数的结果, 数据类型为 short int; 如果第二个参数为 0, 则返回值为-1。 在主程序中实现输入输出。 13、 编写一个函数求长方体的体积, 长方体的长、 宽、 高的默认值分别为 30、 20、 10。在主函数中进行输入输出。 14、 编写程序求 的值, 其中arctan用如下形式的级数计算: (编写函数) 直到级数某项绝对值不大于 10-15 为止; 和 x 均为 double 型。 15、 编写三个名为 add 的重载函数, 分别实现两整数相加、 两实数相加和两个复数相加的功能。 16、 求方程b02=+0cbxax的根, 用三个函数分别求当

17、042 acb、042= acb和42 ac是的根, 并输出结果。 从主函数输入系数。 17、 写一个判别素数的函数, 从主函数输入一个整数, 输出是否为素数的信息。 18、 定义一个带参数的宏, 求三角形的周长。 在主程序中, 使用它 19、 定义一个参数的宏, 求梯形的面积。 在主程序中, 使用它 20、 编写带默认参数的函数, 求 2 个或 3 个整数中的最大数。 并在组程序中实现 二、 B 类程序设计题1、 编写两个函数, 输入的整数按字符串形式逆序输出, 要求分别用递归算法和非递归算法实现。 如: 输入 12345, 输出: 5 4 3 2 1 2、 编写一个函数, 要求键盘输入正整

18、数 n, 求出 n 与其反序数 x 之和并输出。 例如,输入 2038, 输出应为: n + x = 2038 + 8302 = 10340。 3、 编写函数利用数组名作参数计算数组 arr34所有元素的和 4、 编写函数利用递归的方法计算 x 的 n 阶勒让德多项式的值。 该公式如下: 5、 利用全局变量并编写函数统计数组中奇数和偶数的个数。 6、 利用函数调用求组合数 。=ini1 7、 在主程序中, 输入 n, 用递归方法编写函数, 求 1+2+3+n 8、 在主程序中, 输入 n, 用递归方法编写函数求 n! 9、 将一个整数的各个位上的数字加起来(用函数完成) , 并输出结果。 10

19、、 编写一个函数, 求出数组中最大元素的下表 11、 分别利用非递归和递归的方法编写函数求斐波那契数列第 n 项。 k + 212、 编程计算 1k + 3k + + nk, 用带两个参数的函数实现 13、 input 函数输入 10 个整数, 并求出它们的最大值、 最小值和总和。 主函数 main 调用 input 函数, 并输出这 10 个整数的最大值、 最小值和总和。 14、设计一个递归函数, 计算一个整数的各位数字之和。 15、 用内联函数实现求出一维数组的最大值。 在主函数中输入数组元素值, 调用求最大值函数, 并输出数组最大值。 16、 用弦截法, 求方程 ( )17、 用牛顿迭代

20、法, 求方程在 1 附近的根,080316523=2x+=xxxxf的根, 用函数实现 43=+x02+x, 用函数实现 18、 编写函数, 计算, 当最后一项小于 0. 00001 时, 累加结束。 x 在主函数中, 通过从键盘输入 19、 编无参函数, void print() , 并结合使用全局变量 k 与 n, 使每调用一次该函数,总显示出 k 行 “+”符号来, 且每行均显示连续的 n 个 “+”符号。 并编制主函数 main,对该函数进行具体调用。 20、 编写两个数的最大公约数的函数, 在主程序中调用 三、 C 类程序设计题 1、 编写函数 prime, 用来判断某个整数是否为素

21、数。 而后编写主函数 main, 输入任意一个大于 4 的偶数 d, 找出满足 d=d1+d2 的所有数对, 其中要求 d1 与 d2 均为素数(通过调用 prime 来判断素数)。 如偶数 80 可以分解为: 7+73、 13+67、 19+61、37+43。 2、 编写一个函数求满足以下条件的最大的 n: 12+22+32+n2+=xxxxs83 d2) ; 它负责计算出两个日期的间隔天数并返回。 其中的 y1、 m1、 d1 表示第一个日期的年、 月、 日; 而 y2、 m2、 d2 表示第二个日期的年、 月、 日。 而后编制主函数,对 dif 进行调用, 以验证它的正确性。 4、 在主

22、程序中提示输入 n,编写函数用递归的方法求 1+2+n 的和。 5、 编写一个将 x 进制正整数 n 化为 10 进制数并输出结果的函数(x 为 2 或 8), 具有如下原型: void ChgXTo10 (int n, int x) ; 并编写主函数对它进行调用来验证其正确性。 6、 编写判断勾股数的函数。 打印出 100 内的所有的勾股数。 勾股数就是满足 x2+y2=z2的自然数。 最小是勾股数 5, 4, 3。 7、 编写一个函数 countk(long k, count10), 求出证书 k 中数字 0 到 9 出现的次数, 并计入 count10中。 8、 编写求最大公约数和最小公

23、倍数的函数, 输入 m, n(要求输入数均大于 0), 输出它们的最大公约数和最小公倍数。 其中, 写最小公倍数的函数时, 要求调用求最大公约数的函数 9、 寻找四位数的超级素数。 超级素数的定义为: 若一个素数从低位到高位依次去掉一位数后仍然是素数, 则此数为超级素数。 例如, 数 2333 是素数, 且 233、 23、 2 均是素数, 所以 2333 是一个超级素数, 用定义函数的方式实现。 主程序中, 输入位数。 10、 汉诺塔问题。 有三根柱子 A、 B、 C。 设 A 柱上有 n 个盘子, 盘子的大小不等, 大的盘子在下, 小的盘子在上, 如下图所示。 要求将 A 柱上的 n 个盘

24、子移到 C 上, 每一次只能移一个盘子。 在移动过程中, 可以借助于任一根柱子, 但必须保证三根柱子上的盘子都是大的盘子在下, 小的盘子在上。 要求编一个程序打印出移动盘子的步骤。 11、 编写一个排序函数用选择法对一批整数按从大到小的次序进行排序。 在主函数内输入数据, 调用排序函数对数据排序, 输出排序结果。 12、 寻找并输出 11999 之间的数 m, 它满足 m、 m2 和 m3 均为回文数。 回文: 各位数字左右对称的整数, 用定义函数的方式实现。 主程序中, 输入范围(两个参数)。 13、 输出所有的“水仙花数”, 所谓“水仙花数” 是指一个 3 位数, 其各位数字的立方之和等于

25、该数本身。 例如, 153 是一个水仙花数, 因为 153 = 13 + 53 +33。 用函数来判断时否是“水仙花数”。 14、 一个数如果恰好等于它的因子之和(这里的因子不包括这个数本身), 这个数就称为“完数”。 例如, 6 的因子为 1、 2、 3, 而 6 = 1+2+3, 因此 6 是“完数”。 编程求出 1000 以内的所有完数, 并按下面格式输出其因子: 6, its factors are 1, 2,3。 用函数来判断时否是“完数”。 15、 用户任意输入一个年份以及该年的 1 月 1 日是星期几, 而后任意指定某一天(再输入该年的任意一个月份日期), 由程序计算出这一天是星

26、期几。 注意, 2 月份闰年为29 天, 非闰年为 28 天; 可被 4 整除而不可被 100 整除的年份、 或者可被 400 整除的年份均为闰年。 思考: 利用元年元月元日(即 1 年 1 月 1 日) 是星期一的已知事实, 可对程序进行改造, 让用户仅输入一个表示日期的年月日, 则程序就应计算出那一天是星期几。 主程序中输入一个年份以及该年的 1 月 1 日是星期几, 而后任意指定某一天(再输入该年的任意一个月份日期) 16、 编一个返回真假值(布尔值) 的函数 p, 其函数原型为: bool p(int x) ; 具有如下功能: 若正整数 x 的各位数字之积等于 x2-10x-22 的话

27、, 返回 true, 否则返 false。并编主函数, 通过调用 p, 找出 1000 以内的满足上述关系的所有 x。 17、 编写具有如下原型的函数: bool f(long x) ; 其功能为: 若整数 x 仅由偶数字(0、2、 4、 6、 8) 组成时(如 x=26480), 函数返回 true, 否则返回 false(如当 x=22034时)。 并编制主函数对它进行调用。 18、 编写具有如下函数原型的递归与非递归两种函数 myMin, 负责求出 a 数组中前 n 个整数中的最小者并返回该值。 并编制主函数, 通过调用它来验证其正确性。 int myMin(int a, int n)

28、; 提示: 递归函数中, n 等于 1 时最小者即为 a 数组的第 1 个元素(即 a0), 递归出口; 当 n 大于 1 时, 首先通过递归调用来求出 a 数组的前 n-1 个元素中的最小者tmp, 则函数返回值应为如下表达式之值: “an-1 k=5 17、 编程序, 输入任意一个十进正整数 N, 而后将其转换为二进制整数后输出。 例如,程序执行后的显示结果为: Input positive N: 86 86_2=1010110 第四部分 指针 一、 A 类程序设计题 1、 编写函数int length(char *str) 返回字符串str的长度。 在main函数中调用该函数。 2、 编

29、写函数int num(char *str) 返回字符串str中非数字的个数。 在main函数中调用该函数。 3、 编写函数void strTrim(char *str) 去掉字符串str首部与尾部的空格。 在main函数中调用该函数。 4、 编写函数int strFind(char *str, char c) 在字符串str中查找指定字符c; 如果有该字符, 则返回该字符在字符串中第一次出现的位置; 否则返回0。 在main函数中调用该函数。 5、 编写函数int count(char *str, char c) 返回字符串str中字符c出现的次数。 在main函数中调用该函数。 6、 编写函数void strExcept(char *str, char c) 删除字符串str中的字符c。 在main函数中调用该函数。 7、 编写一个程序, 该程序根据键盘输入的一个正整数建立一个动态数组, 然后为该动态数组的元素赋值, 接着显示动态数组的值并删除该动态数组。 8、 编写函数int arrMax(int *a, int n) 返回数组a的元素的最大值。 形参n表示数组中元素的个数。 在main函数中调用该函数。 9

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁