C程序设计 2009春学期 上机练习M2-M8参考答案
40015 求最小值
输入一个正整数repeat (0 输入一个正整数n, 再输入n个整数,输出最小值。 输入输出示例:括号内是说明 输入 3 (repeat=3) 4 -2 -123 100 0 4 -9 -1 1 -8 3 5 3 1 输出 min = -123 min = -9 min = 1 #include 第5周(M5) 30001 求一元二次方程的根 输入一个正整数repeat (0 输入参数a,b,c,求一元二次方程a*x*x+b*x+c=0的根,结果保留2位小数。 输出使用以下语句: printf(\参数都为零,方程无意义!\\n\printf(\和b为0,c不为0,方程不成立\\n\printf(\ printf(\printf(\printf(\sqrt(-d)/(2*a)); printf(\sqrt(-d)/(2*a)); 输入输出示例:括号内为说明 输入: 5 (repeat=5) scanf(\ min=x; for(i=1;i 40018 求a+aa+aaa+aa…a 提示: 第i项通项: tn = a + a * 10 + a * 100 … +a * 10^( n-1) = t(n-1) + a * 10^(n-1) 11 C程序设计 2009春学期 上机练习M2-M8参考答案 0 0 0 (a=0,b=0,c=0) 0 0 1 (a=0,b=0,c=1) 0 2 4 (a=0,b=2,c=4) 2.1 8.9 3.5 (a=2.1,b=8.9,c=3.5) 1 2 3 (a=1,b=2,c=3) 输出: 参数都为零,方程无意义! a和b为0,c不为0,方程不成立 x = -2.00 x1 = -0.44 x2 = -3.80 x1 = -1.00+1.41i x2 = -1.00-1.41i #include 30002 求分段函数的值 输入一个正整数 repeat (0 输入一个整数 x,计算并输出下列分段函数 sign(x) 的值。 -1 x < 0 x = 0 x > 0 y = sign(x) = 0 1 输入输出示例:括号内是说明 输入 3 (repeat=3) 10 (x=10) 0 (x=0) -98 (x=-98) 输出 sign(10) = 1 (x = 10时 y = 1) 意义!\\n\ } else{ printf(\和b为0,csign(0) = 0 (x = 0时 y = 0) sign(-98) = -1 (x = -98时y = -1) #include C程序设计 2009春学期 上机练习M2-M8参考答案 else y=-1; 五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59),如果输入不正确的成绩,显示\。 输出使用以下语句: printf(\printf(\printf(\printf(\printf(\ printf(\ 输入输出示例:括号内是说明 输入 6ABCDEj (repeat=6,输入的五级成绩分别为A、B、C、D、E和无效的字符j) 输出 90-100 80-89 70-79 60-69 0-59 Invalid input #include printf(\ } } 30003 分类统计字符 输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。 输入输出示例:括号内是说明 输入 Reold 123? 输出 letter = 5, blank = 1, digit = 3, other = 1 #include 30004 显示五级记分制成绩所对应的百分制成绩区间(使用switch) 输入一个正整数 repeat (0 输入五级制成绩(A-E),输出相应的百分制成绩(0-100)区间,要求使用switch语句。 if(c==' ') blank ++; else else else other ++; if(c>='0'&&c<='9') digit ++; if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) letter ++; char ch; int repeat, ri; scanf(\ for(ri = 1; ri <= repeat; ri++){ ch = getchar(); switch(ch){ case'A': printf(\ break; case'B': printf(\ break; case'C': printf(\ break; case'D': printf(\break; 13 C程序设计 2009春学期 上机练习M2-M8参考答案 } case'E': printf(\break; printf(\ printf(\ printf(\ printf(\ printf(\ scanf(\ if(choice == 0) break; else{ switch (choice){ case 1: price= 3.00; break; default: } printf(\ break; return 0; } 30005 显示水果的价格(使用switch) 查询水果的单价。有4种水果,苹果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),单价分别是3.00元/公斤,2.50元/公斤,4.10元/公斤和10.20元/公斤。 在屏幕上显示以下菜单(编号和选项),用户可以连续查询水果的单价,当查询次数超过5次时,自动退出查询;不到5次时,用户可以选择退出。 当用户输入编号1~4,显示相应水果的单价(保留1位小数);输入0,退出查询;输入其他编号,显示价格为0。 输入输出示例:括号内是说明 输入 3 (oranges的编号) 0 (退出查询) 输出 [1] apples [2] pears [3] oranges [4] grapes [0] Exit price = 4.1 [1] apples [2] pears [3] oranges [4] grapes [0] Exit #include printf(\30007 求三角形的面积和周长 输入一个正整数 repeat (0 输入三角形的3条边 a, b, c,如果能构成一个三角形,输出面积 area 和周长 perimeter(保留2位小数);否则,输出\。 在一个三角形中,任意两边之和大于第三边。三角形面积计算公式:area = (s(s-a)(s-b)(s-c))^0.5 ,其中s = (a+b+c)/2 输出使用以下语句: printf(\perimeter); printf(\triangle\\n\ 输入输出示例:括号内是说明 14 C程序设计 2009春学期 上机练习M2-M8参考答案 输入 2 (repeat=2) 5 5 3 1 4 1 输出 area = 7.15, perimeter = 13.00 These sides do not correspond to a valid triangle #include 输入输出示例:括号内是说明 输入 5 (repeat=5) 1010.87 (salary=1010.87) 32098.76 (salary=32098.76) 800 (salary=800) 4010 (salary=4010) 2850 (salary=2850) 输出 tax = 8.04 tax = 6249.75 tax = 0.00 tax = 474.00 tax = 200.00 #include 30008 计算个人所得税 输入一个正整数 repeat (0 输入一个职工的月薪 salary,输出应交的个人所得税 tax(保留2位小数)。 计算公式:tax = rate * (salary - 850) 当 salary ≤850 时,rate = 0 当 850 < salary ≤ 1350 时,rate = 5% 当 1350 < salary≤ 2850 时,rate = 10% 当 2850 < salary ≤ 5850 时,rate = 15% 当 5850 < salary 时,rate = 20% 15