C语言二.docx
《C语言二.docx》由会员分享,可在线阅读,更多相关《C语言二.docx(16页珍藏版)》请在冰点文库上搜索。
C语言二
C语言二
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0<repeat<10),做repeat次下列运算:
输入参数a,b,c,求一元二次方程a*x*x+b*x+c=0的根,结果保留2位小数。
输出使用以下语句:
printf("参数都为零,方程无意义!
\n");
printf("a和b为0,c不为0,方程不成立\n");
printf("x=%0.2f\n",-c/b);
printf("x1=%0.2f\n",(-b+sqrt(d))/(2*a));
printf("x2=%0.2f\n",(-b-sqrt(d))/(2*a));
printf("x1=%0.2f+%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
printf("x2=%0.2f-%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
输入输出示例:
括号内为说明
输入:
5(repeat=5)
000(a=0,b=0,c=0)
001(a=0,b=0,c=1)
024(a=0,b=2,c=4)
2.18.93.5(a=2.1,b=8.9,c=3.5)
123(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<stdio.h>
#include<math.h>
intmain(void)
{
intrepeat,ri;
doublea,b,c,d;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%lf%lf%lf",&a,&b,&c);
/*---------*/
}
}
#include<stdio.h>
#include<math.h>
intmain(void)
{
intrepeat,ri;
doublea,b,c,d;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%lf%lf%lf",&a,&b,&c);
/*---------*/
d=b*b-4*a*c;
if(a==0)
if(b==0)
if(c==0)
printf("参数都为零,方程无意义!
\n");
elseprintf("a和b为0,c不为0,方程不成立\n");
elseprintf("x=%0.2f\n",-c/b);
elseif(d>=0){
printf("x1=%0.2f\n",(-b+sqrt(d))/(2*a));
printf("x2=%0.2f\n",(-b-sqrt(d))/(2*a));
}
else
{printf("x1=%0.2f+%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
printf("x2=%0.2f-%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
}
}
}
程序填空,不要改变与输入输出有关的语句。
输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入输出示例:
括号内是说明
输入
Reold123?
输出
letter=5,blank=1,digit=3,other=1
#include<stdio.h>
intmain(void)
{
charc;
intblank,digit,i,letter,other;
blank=digit=letter=other=0;
for(i=1;i<=10;i++){
c=getchar();
/*---------*/
}
printf("letter=%d,blank=%d,digit=%d,other=%d\n",letter,blank,digit,other);
}
#include<stdio.h>
intmain(void)
{
charc;
intblank,digit,i,letter,other;
blank=digit=letter=other=0;
for(i=1;i<=10;i++){
c=getchar();
switch(c){
case'':
case'\n':
blank++;
break;
case'0':
case'1':
case'2':
case'3':
case'4':
case'5':
case'6':
case'7':
case'8':
case'9':
digit++;
break;
case'a':
case'b':
case'c':
case'd':
case'e':
case'f':
case'g':
case'h':
case'i':
case'j':
case'k':
case'l':
case'm':
case'n':
case'o':
case'p':
case'q':
case'r':
case's':
case't':
case'u':
case'v':
case'w':
case'x':
case'y':
case'z':
case'A':
case'B':
case'C':
case'D':
case'E':
case'F':
case'G':
case'H':
case'I':
case'J':
case'K':
case'L':
case'M':
case'N':
case'O':
case'P':
case'Q':
case'R':
case'S':
case'T':
case'U':
case'V':
case'W':
case'X':
case'Y':
case'Z':
letter++;
break;
default:
other++;
}
}
printf("letter=%d,blank=%d,digit=%d,other=%d\n",letter,blank,digit,other);
return0;
}
程序填空,不要改变与输入输出有关的语句。
查询水果的单价。
有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<stdio.h>
intmain(void)
{
intchoice,i;
doubleprice;
for(i=1;i<=5;i++){
printf("[1]apples\n");
printf("[2]pears\n");
printf("[3]oranges\n");
printf("[4]grapes\n");
printf("[0]Exit\n");
scanf("%d",&choice);
if(choice==0)
break;
else{
/*---------*/
printf("price=%0.1f\n",price);
}
}
}
#include<stdio.h>
intmain(void)
{
intchoice,i;
doubleprice;
for(i=1;i<=5;i++){
printf("[1]apples\n");
printf("[2]pears\n");
printf("[3]oranges\n");
printf("[4]grapes\n");
printf("[0]Exit\n");
scanf("%d",&choice);
if(choice==0)
break;
else{
switch(choice){
case1:
price=3.0;break;
case2:
price=2.5;break;
case3:
price=4.1;break;
case4:
price=10.2;break;
default:
price=0.0;break;
}
printf("price=%0.1f\n",price);
}
}
return0;
}
程序填空,不要改变与输入输出有关的语句。
输入一个正整数n,再输入n个学生的百分制成绩,统计各等级成绩的个数。
成绩等级分为五级,分别为A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59)。
输入输出示例:
括号内是说明
输入
5(n=5)
7754927360
输出
NumberofA(90-100):
1
NumberofB(80-89):
0
NumberofC(70-79):
2
Num
berofD(60-69):
1
NumberofE(0-59):
1
#include<stdio.h>
intmain(void)
{
inti,mark,n;
intna,nb,nc,nd,ne;
scanf("%d",&n);
na=nb=nc=nd=ne=0;
for(i=1;i<=n;i++){
scanf("%d",&mark);
/*---------*/
}
printf("NumberofA(90-100):
%d\n",na);
printf("NumberofB(80-89):
%d\n",nb);
printf("NumberofC(70-79):
%d\n",nc);
printf("NumberofD(60-69):
%d\n",nd);
printf("NumberofE(0-59):
%d\n",ne);
}
#include<stdio.h>
intmain(void)
{
inti,mark,n;
intna,nb,nc,nd,ne;
scanf("%d",&n);
na=nb=nc=nd=ne=0;
for(i=1;i<=n;i++){
scanf("%d",&mark);
if(mark>=90)na++;
elseif(mark>=80)nb++;
elseif(mark>=70)nc++;
elseif(mark>=60)nd++;
elsene++;
}
printf("NumberofA(90-100):
%d\n",na);
printf("NumberofB(80-89):
%d\n",nb);
printf("NumberofC(70-79):
%d\n",nc);
printf("NumberofD(60-69):
%d\n",nd);
printf("NumberofE(0-59):
%d\n",ne);
}
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0<repeat<10),做repeat次下列运算:
输入一个形式如"操作数运算符操作数"的表达式,对2个整数进行乘、除和求余运算。
输出使用以下语句:
printf("%d*%d=%d\n",x,y,x*y);
printf("%d/%d=%d\n",x,y,x/y);
printf("%dMod%d=%d\n",x,y,x%y);
printf("Invalidoperator!
\n");
输入输出示例:
括号内是说明
输入
4(repeat=4)
21*8
21/8
21%8
21!
8
输出
21*8=168
21/8=2
21Mod8=5
Invalidoperator
#include<stdio.h>
intmain(void)
{
charsign;
intx,y;
intrepeat,ri;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%c%d",&x,&sign,&y);
/*---------*/
}
}
#include<stdio.h>
intmain(void)
{
charsign;
intx,y;
intrepeat,ri;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%c%d",&x,&sign,&y);
switch(sign){
case'*':
printf("%d*%d=%d\n",x,y,x*y);break;
case'/':
printf("%d/%d=%d\n",x,y,x/y);break;
case'%':
printf("%dMod%d=%d\n",x,y,x%y);break;
default:
printf("Invalidoperator\n");break;
}
}
return0;
}
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0<repeat<10),做repeat次下列运算:
某城市普通出租车收费标准如下:
"起步里程3公里,起步费10元;超起步里程后10公里内,每公里租费2元,超过10公里以上的部分加收50%的回空补贴费,即每公里租费3元。
营运过程中,因路阻及乘客要求临时停车的,每5分钟按1公里租费计收。
运价计费尾数四舍五入,保留到元。
"。
编写程序,输入行驶里程(公里)与等待时间(分钟),计算并输出乘客
应支付的车费(元)。
输入输出示例:
括号内是说明
输入
3(repeat=3)
1.6252(行驶1.6公里,等待2分52秒)
3.1615(行驶3.1公里,等待6分15秒)
11.8230(行驶11.8公里,等待2分30秒)
输出
cost=10
cost=13
cost=31
#include<stdio.h>
intmain(void)
{
intrepeat,ri;
intminutes,seconds;
doublecost,mile;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%lf%d%d",&mile,&minutes,&seconds);
/*---------*/
printf("cost=%.0f\n",cost);
}
}
#include<stdio.h>
intmain(void)
{
intrepeat,ri;
intminutes,seconds;
doublecost,mile;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%lf%d%d",&mile,&minutes,&seconds);
mile+=((minutes+seconds/60.0)/5.0);
if(mile<=3.0)
{
cost=10.0;
}
else
{
if(mile<=10.0)
{
cost=10+(mile-3.0)*2.0;
}
else{
cost=10.0+7.0*2.0+(mile-10.0)*3.0;
}
}
printf("cost=%.0f\n",cost);
}
}