版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序设计基础 上机题库 说明: 本上机题库按内容分为四部分, 即程序设计初步、 函数、 数组、 指针, 其中每一部分又根据难度不同分为 A、 B、 C 三类。 第一部分 程序设计初步 一、 A 类程序设计题 1、 将用户输入的字母自动转换为大写字母后输出, 假定用户输入的字符均是字母。 2、 判断用户所输入的整数是否为偶数 3、 编程实现并输出两个数的大小判断, 将大数输出 4、 编程实现并输出两个数的和值 5、 将括号中的字符串分别按每行一个单词的方式分行显示。(This is a C+program)6、 编程计算并输出字符、 无符号整数与长整型数值在内存中所占字节数7、 定
2、义三个变量, 由用户指定其值, 并将值输出显示给用户8、 定义三个变量, 并完成初始化后输出显示给用户9、 完成9除3后的求余操作并输出结果 10、 编程计算表达式a×b÷c一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
4、语句嵌套完成。 15、 采用do 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)
5、/(x-1) 21、 用for循环语句编程打印下列矩阵形式, 尽量使语句简捷, 注意各列相距两个空格: (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,
6、 1) (6, 2) (6, 3) (6, 4) (6, 5) (6, 6) (6, 7) 二、 B类程序设计题1、 实现用户输入的三个整数的排序 2、 实现在响玲后, 将字符串“Hello world” 输出 3、 实现任一字符和字符串长度的输出, 其中字符和字符串内容由编程者自定 4、 将括号内的字符串输出, (He said : "I have done it". ) 5、 定义一个符号常量, 并在主函数中加以应用 6、 编辑实现计算并输出字符、 无符号整数与长整型数值在内存中所占字节数 7、 将用户输入的五个字母(大小写均可) 译成密码, 密码规律是: 用原字母后面
7、第四个字母代替原来的字母, 例如, 字母A后面第四个字母是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
9、8 12 16 20 24 28 32 36 5 5 10 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、 编程输出以下格式的乘法九
10、九表 * 1 2 3 4 5 6 7 8 9 - 1 1 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、 两个数的十、 一、 *和
11、/的简易计算器程序。 26、 编程输入整数a和b, 若 大于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
12、 z+x=-2.40 u= 51274 n= 128765 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 位
13、数, 其各位数字的立方之和等于该数本身。 例如 153 是一个水仙花数, 因为 153=13+53+33 9、 两个乒乓球队进行比赛, 各出 3 人。 甲队为 A、 B、 C3 人, 乙队为 X、 Y、 Z3 人。 已抽签决定比赛名单。 有人向队员打听比赛名单, A 说他不和 X 比, C 说他不和 X、 Z比, 请编程找出 3 对赛手名单。 10、 编程求所有的 3 位素数, 且该数是对称的。 所谓对称是指一个数, 倒过来还是该数,例如, 375 不是对称, 因为倒过来后变成 573。 11、 编程求解母牛问题。 若一头母牛, 从出生起第四个年头开始每年生一头母牛, 按这规律, 第 n 年时
14、有多少头母牛? n 为用户在运行时指定的数值。 12、 百钱买百鸡问题: 雄鸡 7 元/只, 母鸡 5 元/只, 小鸡 1 元/3 只. 花 100 元钱, 买100 只鸡, 如果雄鸡、 母鸡和小鸡都必须有, 则雄鸡、 母鸡和小鸡应各买几只? 13、 一球从 100m 落下, 每次落地后反跳回原高度的一半, 再落下。 编程求它在第 10 次落地时, 共经过多少 m? 第 10 次反弹多高? 第二部分 函数 一、 A 类程序设计题 1、 编写一个求梯形面积的函数, 在主函数中调用 2、 编写函数, 求sinh(x) 的值, sinh(x) =(ex-e-x) /2 3、 已知三角形的三边, 求三
15、角形面积, 将其编写成一个函数。 4、 编写一个函数实现10个数的最大值函数 5、 编写一个函数来检验输入的一个字符是大写字母还是小写字母英文字母。 6、 使用函数重载的方法定义两个重名函数, 分别求出整型数的两点间距离和浮点型数的两点间距离。 7、 编写函数将华氏温度转换为摄氏温度, 公式为C=(F-32) *5/9; 并在主函数中调用。 8、 编写一个函数来检验输入的一个字符是0-9。 9、 利用重载编写求整数绝对值和求实数绝对值两个函数。 10、 使用静态局部变量, 编写一个函数计算13的阶乘。 11、 重载求平方的函数, 实现求整数、 单精度浮点数和双精度浮点数的平方值。 12、 完成
16、函数, 参数为两个 unsigned short int 型数, 返回值为第一个参数除以第二个参数的结果, 数据类型为 short int; 如果第二个参数为 0, 则返回值为-1。 在主程序中实现输入输出。 13、 编写一个函数求长方体的体积, 长方体的长、 宽、 高的默认值分别为 30、 20、 10。在主函数中进行输入输出。 14、 编写程序求 的值, 其中arctan用如下形式的级数计算: (编写函数) 直到级数某项绝对值不大于 10-15 为止; 和 x 均为 double 型。 15、 编写三个名为 add 的重载函数, 分别实现两整数相加、 两实数相加和两个复数相加的功能。 16
17、、 求方程b02=+0cbxax的根, 用三个函数分别求当042> acb、042= acb和42< ac是的根, 并输出结果。 从主函数输入系数。 17、 写一个判别素数的函数, 从主函数输入一个整数, 输出是否为素数的信息。 18、 定义一个带参数的宏, 求三角形的周长。 在主程序中, 使用它 19、 定义一个参数的宏, 求梯形的面积。 在主程序中, 使用它 20、 编写带默认参数的函数, 求 2 个或 3 个整数中的最大数。 并在组程序中实现 二、 B 类程序设计题1、 编写两个函数, 输入的整数按字符串形式逆序输出, 要求分别用递归算法和非递归算法实现。 如: 输入 123
18、45, 输出: 5 4 3 2 1 2、 编写一个函数, 要求键盘输入正整数 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
19、、 将一个整数的各个位上的数字加起来(用函数完成) , 并输出结果。 10、 编写一个函数, 求出数组中最大元素的下表 11、 分别利用非递归和递归的方法编写函数求斐波那契数列第 n 项。 k + 212、 编程计算 1k + 3k + + nk, 用带两个参数的函数实现 13、 input 函数输入 10 个整数, 并求出它们的最大值、 最小值和总和。 主函数 main 调用 input 函数, 并输出这 10 个整数的最大值、 最小值和总和。 14、 设计一个递归函数, 计算一个整数的各位数字之和。 15、 用内联函数实现求出一维数组的最大值。 在主函数中输入数组元素值, 调用求
20、最大值函数, 并输出数组最大值。 16、 用弦截法, 求方程 ( )17、 用牛顿迭代法, 求方程在 1 附近的根,080316523=2x+=xxxxf的根, 用函数实现 43=+x02+x, 用函数实现 18、 编写函数, 计算, 当最后一项小于 0. 00001 时, 累加结束。 x 在主函数中, 通过从键盘输入 19、 编无参函数, void print() , 并结合使用全局变量 k 与 n, 使每调用一次该函数,总显示出 k 行 “+”符号来, 且每行均显示连续的 n 个 “+”符号。 并编制主函数 main,对该函数进行具体调用。 20、 编写两个数的最大公约数的函数, 在主程序
21、中调用 三、 C 类程序设计题 1、 编写函数 prime, 用来判断某个整数是否为素数。 而后编写主函数 main, 输入任意一个大于 4 的偶数 d, 找出满足 d=d1+d2 的所有数对, 其中要求 d1 与 d2 均为素数(通过调用 prime 来判断素数)。 如偶数 80 可以分解为: 7+73、 13+67、 19+61、37+43。 2、 编写一个函数求满足以下条件的最大的 n: 12+22+32+n2<1000 3、 编制具有如下原型的函数 long dif(int y1, int m1, int d1, int y2, int m2, int () 1111132>
22、;+=xxxxs83 d2) ; 它负责计算出两个日期的间隔天数并返回。 其中的 y1、 m1、 d1 表示第一个日期的年、 月、 日; 而 y2、 m2、 d2 表示第二个日期的年、 月、 日。 而后编制主函数,对 dif 进行调用, 以验证它的正确性。 4、 在主程序中提示输入 n,编写函数用递归的方法求 1+2+n 的和。 5、 编写一个将 x 进制正整数 n 化为 10 进制数并输出结果的函数(x 为 2 或 8), 具有如下原型: void ChgXTo10 (int n, int x) ; 并编写主函数对它进行调用来验证其正确性。 6、 编写判断勾股数的函数。 打印出 100 内的
23、所有的勾股数。 勾股数就是满足 x2+y2=z2的自然数。 最小是勾股数 5, 4, 3。 7、 编写一个函数 countk(long k, count10), 求出证书 k 中数字 0 到 9 出现的次数, 并计入 count10中。 8、 编写求最大公约数和最小公倍数的函数, 输入 m, n(要求输入数均大于 0), 输出它们的最大公约数和最小公倍数。 其中, 写最小公倍数的函数时, 要求调用求最大公约数的函数 9、 寻找四位数的超级素数。 超级素数的定义为: 若一个素数从低位到高位依次去掉一位数后仍然是素数, 则此数为超级素数。 例如, 数 2333 是素数, 且 233、 23、 2
24、均是素数, 所以 2333 是一个超级素数, 用定义函数的方式实现。 主程序中, 输入位数。 10、 汉诺塔问题。 有三根柱子 A、 B、 C。 设 A 柱上有 n 个盘子, 盘子的大小不等, 大的盘子在下, 小的盘子在上, 如下图所示。 要求将 A 柱上的 n 个盘子移到 C 上, 每一次只能移一个盘子。 在移动过程中, 可以借助于任一根柱子, 但必须保证三根柱子上的盘子都是大的盘子在下, 小的盘子在上。 要求编一个程序打印出移动盘子的步骤。 11、 编写一个排序函数用选择法对一批整数按从大到小的次序进行排序。 在主函数内输入数据, 调用排序函数对数据排序, 输出排序结果。 12、 寻找并输
25、出 11999 之间的数 m, 它满足 m、 m2 和 m3 均为回文数。 回文: 各位数字左右对称的整数, 用定义函数的方式实现。 主程序中, 输入范围(两个参数)。 13、 输出所有的“水仙花数”, 所谓“水仙花数” 是指一个 3 位数, 其各位数字的立方之和等于该数本身。 例如, 153 是一个水仙花数, 因为 153 = 13 + 53 +33。 用函数来判断时否是“水仙花数”。 14、 一个数如果恰好等于它的因子之和(这里的因子不包括这个数本身), 这个数就称为“完数”。 例如, 6 的因子为 1、 2、 3, 而 6 = 1+2+3, 因此 6 是“完数”。 编程求出 1000 以
26、内的所有完数, 并按下面格式输出其因子: 6, its factors are 1, 2,3。 用函数来判断时否是“完数”。 15、 用户任意输入一个年份以及该年的 1 月 1 日是星期几, 而后任意指定某一天(再输入该年的任意一个月份日期), 由程序计算出这一天是星期几。 注意, 2 月份闰年为29 天, 非闰年为 28 天; 可被 4 整除而不可被 100 整除的年份、 或者可被 400 整除的年份均为闰年。 思考: 利用元年元月元日(即 1 年 1 月 1 日) 是星期一的已知事实, 可对程序进行改造, 让用户仅输入一个表示日期的年月日, 则程序就应计算出那一天是星期几。 主程序中输入一
27、个年份以及该年的 1 月 1 日是星期几, 而后任意指定某一天(再输入该年的任意一个月份日期) 16、 编一个返回真假值(布尔值) 的函数 p, 其函数原型为: bool p(int x) ; 具有如下功能: 若正整数 x 的各位数字之积等于 x2-10x-22 的话, 返回 true, 否则返 false。并编主函数, 通过调用 p, 找出 1000 以内的满足上述关系的所有 x。 17、 编写具有如下原型的函数: bool f(long x) ; 其功能为: 若整数 x 仅由偶数字(0、2、 4、 6、 8) 组成时(如 x=26480), 函数返回 true, 否则返回 false(如当
28、 x=22034时)。 并编制主函数对它进行调用。 18、 编写具有如下函数原型的递归与非递归两种函数 myMin, 负责求出 a 数组中前 n 个整数中的最小者并返回该值。 并编制主函数, 通过调用它来验证其正确性。 int myMin(int a, int n) ; 提示: 递归函数中, n 等于 1 时最小者即为 a 数组的第 1 个元素(即 a0), 递归出口; 当 n 大于 1 时, 首先通过递归调用来求出 a 数组的前 n-1 个元素中的最小者tmp, 则函数返回值应为如下表达式之值: “an-1<tmp?an-1: tmp”。 19、 输入两个二进制正整数(两个非“0” 即
29、“1” 的字符串), 而后输入一个运算符( “+”、“-”、“*”、“/”), 按int 型整数运算方式求出这两个二进制整数的运算结果并输出。 提示: 设计将 2 进制数化为 10 进制数、 以及将 10 进制数化为 2 进制数的函数“int Chg2To10(char a) ; ” 和“ void Chg10To2(int n, char result) ; ”,而后在主函数中通过调用 Chg2To10 先将两个输入串转化为 10 进制数, 而后对这两个 10 进制数进行指定运算, 再将运算结果通过 Chg10To2 转化为 2 进制数(结果在result) 而后输出。 20、 编
30、写一个将 x 进制正整数化为 10 进制数并输出结果的函数, 具有如下原型: void ChgxTo10(char a, int x) ; 参数 a 中放的是 x 进制正整数的各位数字字符(如 x可为 2 或 8 或 16 等), 要将其化为 10 进制数并输出。 并编写主函数对它进行调用以验证其正确性。 第三部分 数组 一、 A 类程序设计题 1、 求一个4x4矩阵对角线元素之和。 2、 用数组的方法求Fibonacci数列的值(要求输出前20个数)。 3、 将一个3x4矩阵转置(行列互换) 存放。 4、 将一个数组中的数按逆序存放, 例如原来的顺序为8, 7, 6, 4, 2, 要求改为2
31、, 4, 6,7, 8。 5、 用选择法对 10 个整数进行降序排序。 6、 用冒泡法对 10 个整数进行升序排序。 7、 编写一个简单程序, 要求: (1) 从键盘上输入 8 个整数放入数组 a8中(用 for 循环实现); (2) 求出数组元素的最大值及数组的平均值。 8、 求 3×4 矩阵中每一列元素的最大值并输出。 9、 求 4×4 矩阵中每一行元素的最小值并输出。 10、 某班有 30 个学生, 进行了数学考试, 编写程序将考试成绩输入一维数组, 并求数学的平均成绩及不及格学生的人数。11、 有一个3x4矩阵, 求出最大元素, 以及其所在的行号和列号。 12、 从
32、键盘上输入10个实数, 然后按输入顺序的逆序输出这10个数。 13、 从键盘输入 10 个整数, 找出其中最大值和最小值。 14、 输入 10 个学生的姓名、 学号和成绩, 将其中不及格者的姓名、 学号和成绩输出。 15、 输入字符串 s, 统计出 s 中共出现了多少个数字字符。 二、 B 类程序设计题1、 对一个已按由小到大排好顺序的整型数组, 若从键盘输入一个数 x, 现要查询该数是否在此整型数组中, 若存在则删除该数, 否则显示“不存在” 信息。 2、 对一个已按由小到大排好顺序的整型数组, 若从键盘输入一个数 x, 现要将该数插入到该数组中, 使其插入后整个数组排序规律不变。 3、 编
33、写一程序, 要求从键盘上输入 10 个整数放入一个数组中(用 for 循环实现), 并编 写求最大值的函数 max, 在主程序调用这个函数实现输出数组中 10 个整数的最大值, 要求用数组名作为函数参数。 4、 输入一个 4 行 4 列的二维数组, 编程实现: (1) 求出其中的最大值和最小值及其对应的行列位置; (2) 求出对角线上各元素之和。 5、 用筛选法求 100 之内的素数。 6、 对一个整形数组进行由小到大排序。 要求: 用函数调用实现排序过程。 7、 将一个数组中的元素按逆序存放。 要求: 用函数调用实现。 8、 编写一个 strlen 函数, 它能对一个字符串测出其长度, 函数
34、返回值就是字符串的长度(说明: 长度不包括字符串结束标志0)。 9、 设有5 行5 列的数组b, 其元素bij=2*i+3*j-8(i、 j = 0, 1, 2, 3, 4)。 编写程序实现: (1) 求第4 行的5 个元素之累加和。 (2) 求第5 列的5 个元素之平均值。 (3) 求主对角线( “” 状对角线) 以及反斜对角线( “/” 状对角线) 上各有多少个负数。、 10、 不用 strcat 函数, 将两个字符串连接起来。 11、 打印出以下的杨辉三角形(要求打印出 10 行)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 12、 对于一个
35、二维数组, 分别求各行、 各列及所有元素之和。 13、 有一行电文, 已按如下规律译成密码: 第 1 个字母变成第 26 个字母, 第 i 个字母变成第(26-i+1) 个字母非字母字符不变。 要求将密码译回原文, 并打印出密码和原文。 14、 有一篇文章, 共有 3 行文字, 每行有 80 个字符。 要求分别统计出其中英文大写字母、小写字母、 数字、 空格以及其他字符的个数。 15、 输入 n 个字符串, 把其中以字母 A 打头的字符串输出。 16、 编写一个程序, 将字符数组 S2 中的全部字符拷贝到字符数组 S1 中。 不用 strcpy 函数。 拷贝时, 0 也要拷贝过去, 0 后面的
36、字符不拷贝。 17、 按照如下方式从头到尾逐字符地对输入字符串 is 进行处理, 以生成输出字符串 os 并作为结果输出: (1) 若 is 的当前字符不是数字字符, 则将该字符复制到结果串 os 中; (2) 若 is 的当前字符是一个数字字符, 且假设其大小值为 n, 则将该数字字符替换为n+1 个相关字母存放到结果串 os 中: 字符 0 替换为 1 个 a, 字符 1 替换为 2 个 b, 字符 2 替换为 3 个 c, . . . , 字符 9 替换为 10 个 j。 例如: 当输入字符串为“s1k02” 时, 输出字符串应为“sbbkaccc” ; 输入的 is 为“abc5uf2
37、0t” 时, 输出字符串 os 应为“abcffffffufcccat” 。 18、 假设对整型数组 a、 b、 t 已按下述方式进行了说明并对 a 赋了初值: int a8=2, 33, -6, 5, -82, 30, 99, 21 , b8, t88; 编程序实现: (1) 挑选 a 中的某些数按如下顺序依次放入数组 b 中: 先挑选所有负数放入 b; 再挑选所有正数中是 3 的倍数的奇数放入 b; 最后将 b 的其它元素(即尚未被赋予 a 元素值的那些元素) 均置为 0。 ( 2) 将 a 数组中的 8 个数依次赋给 t 数组的首列各元素( 即: t00=a0 ;t10=a1; . .
38、. ) , 将 b 数组中的 8 个数依次赋给 t 数组的末列(第 8 列) 各元素,并将其它各列的 tij赋值为 i-j+3。 (3) 在屏幕上输出 a、 b、 t 各数组元素的具体值。 19、 将输入的 2 进制数(一个非“0” 即“1” 的字符串) 化为 10 进制数并输出结果。 20、 编写程序, 在有序的数组中查找某数, 若该数在此数组中, 则输出它所在的位置,否则输出 no found。 21、 定义一个含有 30 个元素的数组, 按顺序分别赋予从 2 开始的偶数, 然后按顺序每 5 个数求一个平均值, 放在另一个数组中并输出。 22、 在 5 行 5 列的二维数组中查找第一次出现
39、的负数。 23、 输入字符串 s, 求 s 中相邻字母对(比如 ab) 出现的次数。 24、 定义数组 int a46、 b46、 c46, 并完成以下操作: (1) 从键盘上输入数据给数组 a、 b。 (2) 将数组 a 和数组 b 各对应元素作比较, 如果相等, 则数组 c 的对应元素为 0; 若前者大于后者, 则数组 c 的对应元素为 1; 若前者小于后者, 则数组 c 的对应元素为-1。 (3) 输出数组 c 各元素的值。 25、 在电视歌手大奖赛时, 有 10 个评委评分。 从键盘输入 10 个评委给某歌手的评分,要求找出 10 个评委中哪一个给了最低分, 哪一个给了最高分。 去掉一
40、个最低分并去掉一个最高分后剩下的八个评分的平均值为该歌手的最后得分, 求该歌手的最后得分。 26、 输入 10 个整数, 判断它们是否为素数。 要求: 编写一个函数 int prime(int m) 来判断形参变量 m 是否为素数, 如果是素数则返回 1, 否则返回 0。 27、 输入一段英文, 将其格式化后输出。 格式化的要求是: (1) 每一个单词首字母大写, 其余字母小写; (2) 所有标点符号(. , ! ?) 均改为句号; (3) 非英文字母作为非法字母去除。 如输入: i am a 54stuDe#Nt12, right? 则输出: I Am A Student. Right. 2
41、8、 有 4 个学生 5 门课程的成绩存放在数组 score45中, 编写两个函数分别求第 m个学生 5 门课程的平均成绩和第 n 门课 4 个学生的平均成绩, 主函数中只实现数据的输入和输出, 其中 m 和 n 的值也在主函数中输入。 三、 C 类程序设计题 1、 用冒泡排序法对输入的 10 个数进行降序排序并存入数组中。 然后输入一个数, 查找该数是否在数组中存在, 若存在, 打印出该数在数组中对应的下标值。 2、 输入一个 4x5 的二维数组, 请编程实现如下转换。 原矩阵 转换后矩阵 3、 从键盘输入 20 个数, 要求写一函数实现逆序处理, 并按每行 5 个数输出。 4、 写一函数,
42、 使输入的一个字符串按逆序存放, 要求在主函数中输入、 输出字符串, 函数中实现数据的逆序处理。 5、 输入 n 个字符串, 要求按由小到大顺序输出。 6、 采用函数的递归编程, 实现求一个整型数组 20 个元素中的最大值 。 递归函数原型为:int max(int a, int n) 。 最后编制主函数, 对 max 函数进行调用, 以验证其正确性。 7、 从键盘输入两个字符串 a 和 b, 要求不用库函数 strcat 把串 b 的前五个字符连接到串a 中; 如果 b 的长度小于 5, 则把 b 的所有元素都连接到 a 中。 a00 a01 a02 a03 a04 a10 a11 a12
43、a13 a14 a20 a21 a22 a23 a24 a30 a31 a32 a33 a34 a34 a33 a32 a31 a30 a24 a23 a22 a21 a20 a14 a13 a12 a11 a10 a04 a03 a02 a01 a00 8、 编程序, 实现如下功能: (1) 按如下方式说明数组x 与y const int k=8; int xk, yk; (2) 键盘输入k 个整数到数组x 中。 (3) 计算x 中k 个数的平均值ave 及大于平均值的元素个数n 并输出。 (4) 将数组x 中的k 个数放入数组y 中, 但不重复放(一个数只放一次), 而后输出y的这些有效元
44、素。 例如, 程序执行后的输入输出界面可设计为: x=? 23 55 -6 0 23 23 0 -12 ave=13.25 n=4 y= 23 55 -6 0 -129、 编写程序, 实现 str=str1+str2 的操作, 此处运算符“+” 表示将二个字符串 str1、str2 连接成一个字符串 str。 用键盘将二个字符串输入字符数组 str1 与 str2 中, 连接后的字符串存放在字符数组 str 中, 并输出连接后的字符串 str。 (1) 用 C+提供的字符串处理函数完成上述要求。 (2) 不用 C+提供的字符串处理函数完成上述要求。 10、 输入一行字符, 统计其中有多少个单词
45、。 11、 输入 3 个字符串, 找出其中最大者。 12、 找出一个二维数组中的鞍点, 即该位置的元素在该行上最大, 在该列上最小(也可能没有鞍点)。 13、 给出年、 月、 日, 计算该日是该年的第几天。 14、 有 15 个数按由大到小的顺序存放在一个数组中, 输入一个数, 要求用折半查找法找出该数是数组中的第几个元素的值。 如果该数不在数组中, 则打印出“无此数”。 15、 输入一个字符串, 把其中的字符按逆序输出。 如输入 LIGHT, 则输出 THGIL。 (1) 用字符数组方法; (2) 用 string 方法。 16、 编程序, 输入正整数 m, 它代表人民币的 m 元。 试求取
46、这样一个方案, 使用最少张数的人民币纸币(如 k 张) , 凑成上述的钱数 m, 并输出求取结果。 注意, 目前共有 7 种元以上面值的人民币纸币, 其面值分别为: 100, 50, 20, 10, 5, 2, 1。 程序执行后的输入输出交互界面可设计为: m=? 192 1(100) 1(50) 2(20) 1(2) => k=5 17、 编程序, 输入任意一个十进正整数 N, 而后将其转换为二进制整数后输出。 例如,程序执行后的显示结果为: Input positive N: 86 86_2=1010110 第四部分 指针 一、 A 类程序设计题 1、 编写函数int length(
47、char *str) 返回字符串str的长度。 在main函数中调用该函数。 2、 编写函数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
48、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、 编写函数int arrMin(int *a, int n) 返回数组a中值最小的元
49、素的下标。 形参n表示数组中元素的个数。 在main函数中调用该函数。 10、 编写函数void arrSort(int *a, int n) 将数组a的值按升序排列。 形参n表示数组中元素的个数。 在main函数中调用该函数。 11、 编写函数int fun(int *arr, int n) 将有序数组arr压缩成各元素互不相同的有序数组, 即相同数只保留一个, 多余的被删除。 形参n表示原数组中元素的个数; 函数返回压缩后的数组元素的个数。 在main函数中调用该函数。 二、 B 类程序设计题 1、 编写函数char maxChar(char *str) 返回字符串str中ASCII码最大的字符(如字符串"program"中字符' r' 的ASCII码最大)。 若字符串str为空, 则返回' 0' 。 在main函数中调用该函数。 2、 编写函数void fun(char *str) 将字符串str按字符的ASCII码值的升序重新排列(如将字符串"program"处理成"agmoprr")。 在main函数中调用该函数。 3、 编写函数void fun(char *str)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江凯航物产有限公司招聘31人备考题库及参考答案详解一套
- 2026福建三明市清流县新任教师招聘5人备考题库带答案详解(满分必刷)
- 2026上海市闵行区华漕学校教师第二批招聘备考题库带答案详解(考试直接用)
- 2026广东深圳市罗湖区启智幼教集团招聘1人备考题库附答案详解(夺分金卷)
- 施工现场照明与通风方案
- 2026江西萍乡市融资担保集团有限公司招聘员工4人备考题库(夺冠)附答案详解
- 施工现场人员出入管理方案
- 2026广西北海市产业投资有限责任公司招聘4人备考题库含答案详解【预热题】
- 2024小学教学能手笔试内部密押卷附全题型答案详解
- 2023中科大入学笔试保送生专项真题及答案解析
- 1.3“开元盛世”与唐朝经济的繁荣 课件(内嵌视频) 2025-2026学年统编版七年级历史下册
- 初中英语语法填空专项练习含答案解析
- 2026年人教版三年级下册数学全册教学设计(春改版教材)
- 华为班组长培训课件
- 工程项目竣工资料归档与移交规范
- 电力线路巡检报告模板
- 劳务合同2026年合同协议
- 高中数学资优生导师培养模式与教学资源整合研究教学研究课题报告
- 鼾症科普宣传课件
- 有趣的汉字小故事
- 中国特发性颅内压增高诊断与治疗专家共识(新版)课件
评论
0/150
提交评论