C语言编程练习题与答案选择结构.pdf
编程练习题编程练习题与答案与答案 选择选择结构结构 2 2- -3 3 时间时间 20152015年年3 3月月2 26 6日日 题目量题目量6 6 难度难度D D 一、一、简单数列排序简单数列排序codeupcodeup2162921629,原题,原题2525 日第日第 1 1 题升级题升级) 【提交) 【提交网站网站 ACAC 通过通过 1.1.题目描述题目描述现在需要找到三个数从大到小的顺序,请进行排序。 2 2 输入格式输入格式共一行,包含三个整数,用空格隔开; 3.3.输出格式输出格式共一行,包含三个整数,用空格隔开; 4.4.示例示例 输入| |5 8 1 输出| |8 5 1 5.5.要求要求 时间要求1000 MS; 内存要求32768 KB; 二、某月天数判断(二、某月天数判断(codeupcodeup2166321663,原题) 【提交网站,原题) 【提交网站 ACAC 通过】通过】 1.1.题目描述题目描述从键盘上输入年份和月份,输出这一年的该月有多少天。 2 2 输入格式输入格式共一行,两个整数,用空格隔开; 3.3.输出格式输出格式共一行,一个整数; 4.4.示例示例 输入| |2015 3 输出| |31 5.5.要求要求 时间要求1000 MS; 内存要求32768 KB; 三三判断一个数能否被判断一个数能否被 2 23 35 5 整数整数codeupcodeup2166221662,原题原题,2525 日第日第 5 5 题升级题升级 【提交【提交网站网站 ACAC 通过通过 1.1.题目描述题目描述输入一个整数,如果这个数能被 2 整除,则输出“能被 2 整除” ;如果这个数 能被 3 整除,则输出“能被 3 整除” ;如果这个数能被 5 整除,则输出“能被 5 整除” 。输出的内容放在同一行上,且彼此之间用一个空格隔开。如果这个 数同时能被 2 或 3 或 5 整除,则先输出被 2 整除的情况,再输出被 3 整除的 情况,再输出被 5 整除的情况。 2 2 输入格式输入格式共一行,一个整数; 3.3.输出格式输出格式共一行,要求把所有能被整除的信息按顺序输出,空格隔开; 格式 能被 2 整除 能被 3 整除 能被 5 整除 4.4.示例示例 输入| |45 输出| |能被 3 整除 能被 5 整除 5.5.要求要求 时间要求1000 MS; 内存要求32768 KB; 四四、数据分组问题、数据分组问题 CC 语言程序设计教程实验指导与习题解答习题解答语言程序设计教程实验指导与习题解答习题解答 4.34.36 6,原题原题,2525 日第日第 3 3 题升级题升级) 【提交源代码】) 【提交源代码】 1.1.题目描述题目描述输入一个整数,将其值按照小于 10,1099,100999,1000 以上分类并输出。 2 2 输入格式输入格式共一行,包含一个整数; 3.3.输出格式输出格式共一行,语句格式为 1.数值 is 数值 to 数值;2.数值 is less than 10;3. 数 值 is qreater than 1000 4.4.示例示例 输入| |5 输出| |5 is less then 10 5.5.要求要求 时间要求1000 MS; 内存要求32768 KB; 五五求整数位数,逆序输出整数综合题求整数位数,逆序输出整数综合题 CC 程序设计程序设计 习题习题 4.94.9,原题,原题) 【提交源代码】) 【提交源代码】 1.1.题目描述题目描述输入一个五位及五位以下的整数,即 099999,请按照输出数据的位数,即 数据是几位数、 输出各位的数值 (用空格隔开) 、 倒序输出数值, 即按照个位, 十位的顺序输出(用空格隔开) ; (另,原题未要求空格隔开) 2 2 输入格式输入格式共一行,一个整数(099999) ; 3.3.输出格式输出格式共三行,第一行一个整数,第二、三行一个到五个整数不等; 4.4.示例示例 输入| |5862 输出| |4 | |5 8 6 2 | |2 6 5 8 5.5.要求要求 时间要求1000 MS; 内存要求32768 KB; 六、六、塔的高度塔的高度 CC 程序设计程序设计 习题习题 4.124.12,原题,原题简化简化 【提交源代码【提交源代码 1.1.题目描述题目描述有一个塔如图所示,半径 50 米,高度 1000m,要求输入任一坐标(x,y) , 输出该点高度,地面高度为 0 2 2 输入格式输入格式共一行,两个整数,代表 x、y(0 int main int a,b,c,d; scanf“d d d“, if ab ab 的情况 if ca printf“d d d“,c,a,b; cab else if ac acb else if bc printf“d d d“,a,b,c; abc else ab printf“d d d“,c,b,a; cba else if bc bca else if ac printf“d d d“,b,a,c; bac return 0; 2.2.测试数据测试数据 (不提供,请在网站上进行测试) 二、某月天数判断(二、某月天数判断(codeupcodeup2166321663,原题),原题) 答案答案 1.1.源代码源代码 include int main int a,b; scanf“d d“, if b2 if a40 else printf“d“,28; if b2 if b1 b3 b5 b7 b8 b10 b12 printf“d“,31; else printf“d“,30; return 0; 2.2.测试数据测试数据 (不提供,请在网站上进行测试) 三、判断一个数能否被三、判断一个数能否被 2 23 35 5 整数(整数(codeupcodeup2166221662,原题原题,2525 日第日第 5 5 题升级)答案题升级)答案 1.1.源代码源代码 include int main int a; scanf“d“, if a20 printf“能被 2 整除“; 能被 2 整除 if a30 printf“ 能被 3 整除“; 能被 2 整除,也能被 3 整除 if a50 printf“ 能被 5 整除“; 能被 2 整除,也被 3 整除,还被 5 整除 if a20 不能被 2 整除,能被 3 整除 if a50 printf“ 能被 5 整除“; 不能被 2 整除,能被 3 整除,也被 5 整除 if a20 仅能被 5 整除 return 0; 2.2.测试数据测试数据 (不提供,请在网站上进行测试) 四、数据分组问题( 四、数据分组问题( CC 语言程序设计教程实验指导与习题解答习题解答语言程序设计教程实验指导与习题解答习题解答 4.34.36 6,原题,原题2525 日第日第 3 3 题升级)题升级) 答案答案 1.1.源代码源代码 include int main int a; scanf“d“, if a100 if a1000 printf“d is queater than 1000n“,a; else printf“d is 100 to 999n“,a; else if a include int main int num,indiv,ten,hundred,thousand,ten_thousand,place; 分别代表个位, 十位,百位,千位,万位和位数 printf“请输入一个整数0-99999“; scanf“d“, if num9999 place5; else if num999 place4; else if num99 place3; else if num9 place2; else place1; printf“dn“,place; 输出位数 ten_thousandnum/10000; thousandintnum-ten_thousand*10000/1000; hundredintnum-ten_thousand*10000-thousand*1000/100; tenintnum-ten_thousand*10000-thousand*1000-hundred*100/10; indivintnum-ten_thousand*10000-thousand*1000-hundred*100-ten*10; switchplace 分别输出各个数字与倒序输出 case 5printf“d d d d d“,ten_thousand,thousand,hundred,ten,indiv; printf“nd d d d dn“,indiv,ten,hundred,thousand,ten_thousand; break; case 4printf“d,d,d,d“,thousand,hundred,ten,indiv; printf“nd d d dn“,indiv,ten,hundred,thousand; break; case 3printf“d,d,d“,hundred,ten,indiv; printf“nd d dn“,indiv,ten,hundred; break; case 2printf“d,d“,ten,indiv; printf“nd dn“,indiv,ten; break; case 1printf“d“,indiv; printf“ndn“,indiv; break; return 0; 六、塔的高度( 六、塔的高度( CC 程序设计程序设计 习题习题 4.124.12,原题简化),原题简化) 答案答案 1.1.源代码源代码 include include int main int x,y; double h; scanf“d d“, if x*xy*y2500 h1000-sqrtx*xy*y*20; else h0; printf“0.2f“,h; return 0; 2.2.测试数据测试数据 序号 输入 输出 1 0 0 1000.00 2 25 0 500.00 3 51 0 0.00 4 30 24 231.63 5 35 21 183.67 - HL*NXYCL*DY2015 年 3 月 28 日 201350