尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

分支和循环基础编程题练习2

分支和循环基础编程题练习2 1.写代码将三个整数数按从大到小输出。例如输入2 3 1输出3 2 1第一种方法首先输入三个数然后判断a是不是最大的如果是再判断b和c之间谁大;如果不是则判断b和c谁是最大的之后同理。代码如下int main() { /*写代码将三个整数数按从大到小输出。 例如 输入2 3 1 输出3 2 1*/ int a, b, c 0; scanf(%d %d %d, a,b,c); if (a b a c) { if (b c) { printf(%d %d %d\n, a, b, c); } else { printf(%d %d %d\n, a, c, b); } } else if (b a b c) { if (a c) { printf(%d %d %d\n, b, a, c); } else { printf(%d %d %d\n, b, c, a); } } else if (c a c b) { if (a b) { printf(%d %d %d\n, c, a, b); } else { printf(%d %d %d\n, c, b, a); } } else { printf(%d %d %d\n, a, b, c); } return 0; }第二种方法比较a和b的大小如果b大则交换a和b的值如果a大,再比较a和c的大小如果c大交换a和c的值之后再比较b和c的值如果c大交换b和c的值最后依次输出a,b,c。代码如下//方法二 int main() { int a, b, c 0; scanf(%d %d %d, a, b, c);////如果这里加上scanf会导致进入循环后输入的数据被丢弃导致程序无法执行 while (scanf(%d %d %d, a, b, c)!EOF) { if (a b) { int i a; a b; b i; } if (a c) { int i a; a c; c i; } if (b c) { int i b; b c; c i; } printf(%d %d %d\n, a, b, c); } return 0; }2.下面代码的执行结果是什么 #include stdio.h int main() { int x 3; int y 3; switch (x % 2) { case 1: switch (y) { case 0: printf(first); case 1: printf(second); break; default: printf(hello); } case 2: printf(third); } return 0; }A.secondthirdB.helloC.firstsecondD.hellothird答案解析switch语句时多分支的选择语句switch中表达式结果命中那个case就执行该case子项如果case子项后没有跟break语句则继续往下执行。关于该题解析请看以下注解#include stdio.h int main() { int x 3; int y 3; switch (x % 2) { // x%2的结果为1因此执行case1 case 1: switch (y) // y是3因此会执行case3而case3不存在那只能执行default { case 0: printf(first); case 1: printf(second); break; default: printf(hello); // 打印hello打印完之后内部switch结束此时外部case1结束 } // 因为外部case1之后没有添加break语句所以继续执行case2 case 2: // 打印third printf(third); // 外部switch结束 } return 0; }即先在内部switch的default位置打印hello紧接着在外部case2中打印third因此选择D3.KiKi想知道已经给出的三条边 aa、bb、cc 能否构成一个非退化三角形如果能构成判断三角形的类型等边三角形、等腰三角形或普通三角形。【名词解释】非退化三角形三条边长均大于 00 且任意两边之和均大于第三边的三角形。输入描述在一行上输入三个整数 a,b,c(0a,b,c10)a,b,c(0a,b,c10)表示三角形的三条边。输出描述在一行上输出一个字符串表示三角形的类型具体地∙ ∙如果三角形是等边三角形则输出 Equilateral triangle!Equilateral triangle!∙ ∙如果三角形是等腰三角形则输出 Isosceles triangle!Isosceles triangle!∙ ∙如果三角形是普通三角形则输出 Ordinary triangle!Ordinary triangle!∙ ∙如果不能构成非退化三角形则输出 Not a triangle!Not a triangle!。解题思路首先判断是不是等边三消息如果是则输出如果不是再判断是不是等腰三角形如果是则输出如果不是则后面类推代码如下#include stdio.h int main() { int a 0; int b 0; int c 0; while(~scanf(%d %d %d, a, b, c)) { if((abc) (acb) (bca)) { //三角形 if(ab bc)//等边三角形 { printf(Equilateral triangle!\n); } else if(((ab)(b!c)) || ((ac)(c!b)) || ((bc)(c!a)))//等腰 { printf(Isosceles triangle!\n); } else { printf(Ordinary triangle!\n); } } else { //不是三角形 printf(Not a triangle!\n); } } return 0; }4.计算1/1-1/21/3-1/41/5 …… 1/99 - 1/100 的值打印出结果解题思路1. 从上述表达式可以分析出a. 该表达式主要由100项基数项为正偶数项为负2. 设置一个循环从1~100给出表达式中的每一项1.0/i, 注意此处不能使用1否则结果全部为0然后使用flag标记控制奇偶项奇数项为正偶数项为负然后将所有的项相加即可代码如下#include stdio.h int main() { int i 0; double sum 0.0; int flag 1; for (i 1; i 100; i) { sum sum (1.0 / i) * flag;//如果不是double类型会导致后面计算结果都为0 flag -flag; } printf(%lf\n, sum); return 0; }5.编写程序数一下 1到 100 的所有整数中出现多少个数字9解题思路1. 给一个循环从1遍历到100拿到每个数据后进行一下操作2. a. 通过%的方式取当前数据的个位检测个位数据是否为9如果是给计数器加1b. 通过/的方式取当前数据的十位检测十位数据是否是9如果是给计数器加1循环一直继续直到所有的数据检测完所有9的个数已经统计在count计数中。代码如下#include stdio.h int main() { int i 0; int count 0; for (i 1; i 100; i) { if (i % 10 9) { count; } if (i / 10 9)//if前面不要加else不然轮到99时执行完前面的if就不会执行下个if了 { count; } } printf(%d\n, count); return 0; }6.打印1000年到2000年之间的闰年解题思路要求1000年到2000年之间的闰年只需要知道求解闰年的方法即可。闰年的条件如果N能够被4整除并且不能被100整除则是闰年或者N能被400整除也是闰年即4年一润并且百年不润每400年再润一次代码如下#include stdio.h int main() { int year 0; for(year1000; year2000; year) { if(((year%40)(year%100!0))||(year%4000)) { printf(%d , year); } } return 0; }
返回列表