《最新C语言拓展训练编程题》由会员分享,可在线阅读,更多相关《最新C语言拓展训练编程题(16页珍藏版)》请在金锄头文库上搜索。
1、精品资料C语言拓展训练编程题.选择结构(1) 编程判断输入整数x的正负性和奇偶性。(2) 已知银行整存整取存款不同期限的月息利率分别为: 063% 期限一年 066% 期限=年 月息利率= 069% 期限三年 075% 期限五年 084% 期限八年 要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。(3) 通过键盘输入字符,将输入的字符分为控制、数字、大写字母、小写字母和其他字符等五类。(4) 简单计算器。请编写一个程序计算表达式:datal op data2的值。其中op为运算符+、*、。(5) 输入年份year和月month,求该月有多少天。判断是否为闰年,可用如下C语言表
2、达式:year%4=0 & year%100!=0 | year%400=0。若表达式成立(即表达式值为1),则year为闰年;否则,表达式不成立(即值为0),year为平年。(6) 对输入的行、单词和字符进行计数。我们将单词的定义进行化简,认为单词是不包含空格、制表符(t)及换行符的字符序列。例如:“a+b+c”,认为是1个单词,它由5个字符组成。又如:“xy abc”,为2个单词,6个字符。(7) 从键盘输入任意的字符,按下列规则进行分类计数。第类 0,1,2,3,4,5,6,7,8,9第=类 +,*,%,=第三类 其它字符当输入字符时先计数,然后停止接收输入,打印计数的结果。(8) 输入
3、10个整数,求其中正数的个数及平均值,精确到小数点后两位。(9) 已知一个首项大于0的等差数列的前四项和为26,前四项的积为880,求此数列。 (10) 输入a、b、c、d四个整数,求最小值min和最大值max。 (11) 编写程序,输入三角型的三条边长,求其面积。注意:对于不合理的边长输入要输出数据错误的提示信息。循环结构(1) 从键盘输入十个整数,求这十个整数之和。(2) 从键盘中读入一系列字符,直到输入字母“a”时才停止。(3) 对输入的行和字符进行计数一行是以一个回车符(n)作为行结束标记的,这样在程序中可以通过搜索n对行进行计数。当输入CTRL+D时表示文件输入结束,停止计数。(4)
4、 输出如下图所示的下三角形乘法九九表。 1 2 3 4 5 6 7 8 9 - - - - - - - - - - - - - - - - - - - - - -1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 649 18 27 36 45 54 63 72 81 (5) 求1到10的阶乘的和。(6) 输入一个正整数,要求以相反的顺序输出该数。例如输入12345,输出位54321。 (7) 求555555的约数中最大的三位数是多少?(8) 输入10个整数,求
5、其中正数的个数及平均值,精确到小数点后两位。(9) 输入n值,打印下列高为n的等腰三角形。 * * * * * 当n=6时(10) 输入n值,请编程输出如下图形(例n=3时)。 * * * * * * * *(11) 编程打印数字金字塔。 l 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 1 2 3 4 5 6 5 4 3 2 1 1 2 3 4 5 6 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 (12) 编程输出下列高度为n的图形。
6、 1 3 6 10 15 21 2 5 9 14 20 4 8 13 19 7 12 18 11 17 16当n=6时(13) 请输入n值,编写程序输出下列图形(例如n=5)。 1 2 3 4 5 1 1 2 3 4 1 1 1 2 3 1 1 1 1 21 1 1 1 1 (14) 求下列算式的值:SUM=1+ 12+ 13+ 14+ 1999+ 11000(15) 求下式的值:(16) 编写-个程序,读入一个整数N;若N为非负数,则计算N到2*N之间的整数和;若N为一个负数,则求2*N到N之间的整数和。利用for和while写出两个程序。(17) 100匹马驮100担货,大马一匹驮 3担,
7、中马一匹驮 2担,小马两匹驮 1担。试编写程序计算大、中、小马的数目。(18)求解爱因斯坦数学题。有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶,若每步跨7阶,最后才正好一阶不剩。请问,这条阶梯共有多少阶?数组(1) 反向输出有5个元素的int数组中各元素的值。(2) 在一个二维数组中形成并输出如下矩阵: 1 1 1 1 1 2 1 1 l 1A= 3 2 1 l l 4 3 2 1 1 5 4 3 2 1(3) 求矩阵A(2 3)的转置矩阵B(3 2)。 1 2 3 1 4A= B= 2 5 4 5 6 3 6(4
8、) 某班期终考试科目为高等数学(MT)、英语(EN)和物理(PH),有30人参加考试。为评定奖学金,要求统计并输出一个表格,表格内容包括学号、各科分数、总分和平均分,并标出三1课均在90分以上者(该栏标志输出为“Y”,否则为“N”),表格形式如下: N0 HT EN PH SUM V 90-1 97 87 92 276 92 N 2 92 91 90 273 91 Y 3 90 81 82 253 84 N 可以将学生的学号和各科成绩放在数组a304中,然后进行统计处理。(5) 有一个3 4的矩阵,求其中的最大元素的值。(6) 编写程序实现将字符串str2拷贝到字符串strl。(7) 输入英文
9、的星期几,查找星期表后输出对应的数字。具体的算法是:若发现与表中 某项相同,则输出该字符串在表中的位置(序号):若查到表尾仍不相同,则输出错误信息。设星期表的内容如下图所示。0sunday1monday2tuesday3wednesday4thursday5friday6saturday(8) 给定某年某月某日,将其转换成这一年的第几天并输出。(9) 如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数)。如407=43+03+73就是一个阿姆斯特朗数。试编程求1000以内的所有阿姆斯特朗数。(10) 写出下面给出的数组说明中所定义的数组的数组名、类型、维数、数组体积,
10、并给出各数组元素在计算机中占用存储单元的情况。 int x4=1,2,3,4; float y34=1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8; int z223=1,2,3,4,5,6,7,8,9,10,11,12; int i23= ,4,5,6, j222= ,3,4, ,7,8; char c110=”Happy”,c2 3=”*”,”*”,”*”;(11) 设某班50人,写一程序统计某一单科成绩各分数段的分布人数,每人的成绩随机输入,并要求按下面格式输出统计结果(”*”表示实际分布人数)。 0 一一 39 * 40 一一 49 * 50 一一 59 * 90 一一
11、 100 *(12) 输入=维数组a35,打印其中最小值和最大值及其对应的行列位置。(13) 输入55的数组,编写程序实现: (a)求出对角线上各元素的和; (b)求出对角线上行、列下标均为偶数的各元素的积;(c)找出对角线上其值最大的元素和它在数组中的位置。 (14) 简单的密码加密程序。其加密过程是先定义一张字母加密对照表。输入 输出 输入 输出 a d i a b w k bc k ; cd : w ee I将需要加密的一行文字输入加密程序,程序根据加密表中的对应关系,可以很简单地将输入的文字加密输出,对于表中未出现的字符则不加密。 (15) 使用二维数组输入”BASIC”,”ADA”,”Pascal”,”C”,”Fortran”,将它们按从小到大的顺序排列后输出。 (16) 已知某运动会上女子百米运动员决赛成绩。要求编写程序,按成绩排序并按名次输出排序结果,包括名次、运动员号、成绩三项内容。 (17) 将矩阵A23的六个元素送入矩阵A32中,使其顺时针旋转90度。例: 1 2 3 4 1 a= b= 5 24 5 6