编程练习题编程练习题与答案与答案 选择选择结构结构 2 2- -3 3 时间:时间: 20152015年年3 3月月2 26 6日日 ;; 题目量:题目量:6 6 难度:难度:D D 一、一、简单数列排序简单数列排序((codeupcodeup,,2162921629,原题,原题,,2525 日第日第 1 1 题升级题升级) 【提交:) 【提交:网站网站 ACAC 通过通过】】 1.1.题目描述:题目描述:现在需要找到三个数从大到小的顺序,请进行排序。 2 2 输入格式:输入格式:共一行,包含三个整数,用空格隔开; 3.3.输出格式:输出格式:共一行,包含三个整数,用空格隔开; 4.4.示例:示例: 输入:| |5 8 1 输出:| |8 5 1 5.5.要求:要求: 时间要求:1000 MS; 内存要求:32768 KB; 二、某月天数判断(二、某月天数判断(codeupcodeup,,2166321663,原题) 【提交:网站,原题) 【提交:网站 ACAC 通过】通过】 1.1.题目描述:题目描述:从键盘上输入年份和月份,输出这一年的该月有多少天。 2 2 输入格式:输入格式:共一行,两个整数,用空格隔开; 3.3.输出格式:输出格式:共一行,一个整数; 4.4.示例:示例: 输入:| |2015 3 输出:| |31 5.5.要求:要求: 时间要求:1000 MS; 内存要求:32768 KB; 三三、、判断一个数能否被判断一个数能否被 2 2、、3 3、、5 5 整数整数((codeupcodeup,,2166221662,原题,,原题,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,10~99,100~999,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.题目描述:题目描述:输入一个五位及五位以下的整数,即 0~99999,请按照输出:数据的位数,即 数据是几位数、 输出各位的数值 (用空格隔开) 、 倒序输出数值, 即按照个位, 十位……的顺序输出(用空格隔开) ; (另,原题未要求空格隔开) 2 2 输入格式:输入格式:共一行,一个整数(0~99999) ; 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.测试数据测试数据 (不提供,请在网站上进行测试) 二、某月天数判断(二、某月天数判断(codeupcodeup,,2166321663,原题),原题) 答案答案 1.1.源代码:源代码: #include int main() { int a,b; scanf(“%d %d“, if (b==2) { if ((a%4==0 else printf(“%d“,28); } if (b!=2) { if (b==1 || b==3 || b==5 || b==7 || b==8 || b==10 || b==12) printf(“%d“,31); else printf(“%d“,30); } return 0; } 2.2.测试数据测试数据 (不提供,请在网站上进行测试) 三、判断一个数能否被三、判断一个数能否被 2 2、、3 3、、5 5 整数(整数(codeupcodeup,,2166221662,原题,,原题,2525 日第日第 5 5 题升级)答案题升级)答案 1.1.源代码:源代码: #include int main() { int a; scanf(“%d“, if (a%2==0) { printf(“能被 2 整除“); //能被 2 整除 if (a%3==0) printf(“ 能被 3 整除“); //能被 2 整除,也能被 3 整除 if (a%5==0) printf(“ 能被 5 整除“); //能被 2 整除,也被 3 整除,还被 5 整除 } if (a%2!=0 //不能被 2 整除,能被 3 整除 if (a%5==0) printf(“ 能被 5 整除“); //不能被 2 整除,能被 3 整除,也被 5 整除 } if ((a%2!=0 //仅能被 5 整除 return 0; } 2.2.测试数据测试数据 (不提供,请在网站上进行测试) 四、数据分组问题( 《四、数据分组问题( 《CC 语言程序设计教程实验指导与习题解答》习题解答语言程序设计教程实验指导与习题解答》习题解答 4.34.36 6,原题,原题,,2525 日第日第 3 3 题升级)题升级) 答案答案 1.1.源代码:源代码: #include int main() { int a; scanf(“%d“, if (a=100) { if (a=1000) printf(“%d is queater than 1000\n“,a); else printf(“%d is 100 to 999\n“,a); } else { if (a #include int main() { int num,indiv,ten,hundred,thousand,ten_thousand,place; //分别代表个位, 十位,百位,千位,万位和位数 printf(“请输入一个整数(0-99999):“); scanf(“%d“, if (num9999) place=5; else if (num999) place=4; else if (num99) place=3; else if (num9) place=2; else place=1; printf(“%d\n“,place); //输出位数 ten_thousand=num/10000; thousand=(int)(num-ten_thousand*10000)/1000; hundred=(int)(num-ten_thousand*10000-thousand*1000)/100; ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10); switch(place) //分别输出各个数字与倒序输出 {case 5:printf(“%d %d %d %d %d“,ten_thousand,thousand,hundred,ten,indiv); printf(“\n%d %d %d %d %d\n“,indiv,ten,hundred,thousand,ten_thousand); break; case 4:printf(“%d,%d,%d,%d“,thousand,hundred,ten,indiv); printf(“\n%d %d %d %d\n“,indiv,ten,hundred,thousand); break; case 3:printf(“%d,%d,%d“,hundred,ten,indiv); printf(“\n%d %d %d\n“,indiv,ten,hundred); break; case 2:printf(“%d,%d“,ten,indiv); printf(“\n%d %d\n“,indiv,ten); break; case 1:printf(“%d“,indiv); printf(“\n%d\n“,indiv); break; } return 0; } 六、塔的高度( 《六、塔的高度( 《CC 程序设计》程序设计》 习题习题 4.124.12,原题简化),原题简化) 答案答案 1.1.源代码源代码:: #include #include int main() { int x,y; double h; scanf(“%d %d“, if (x*x+y*y=2500) { h=1000-(sqrt(x*x+y*y))*20; } else h=0; 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*NXY&CL*DY(2015 年 3 月 28 日 20:13:50)
展开阅读全文