C语言答案第3章

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

C语言答案第3章

第3章3.1请从以下的四个选项中选择1个正确答案:(1)以下叙述中错误的是(C)A.C语句必须以分号结束;B.复合语句在语法上被看作一条语句;C.空语句出现在任何位置都不会影响程序运行;D.赋值表达式末尾加分号就构成赋值语句。(2)以下叙述中错误的是(D)A.C程序中的#include和#define行均不是C语句;B.除逗号运算符外,赋值运算符的优先级最低;C.C程序中,j++;是赋值语句;D.C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算。(3)以下叙述中正确的是(A)A.C程序中注释部分可以出现在程序中任意合适的地方;B.花括号"{"和"}"只能作为函数体的定界符;C.构成C程序的基本单位是函数,所有函数名都可以由用户命名;D.分号是C语句之间的分隔符,不是语句的一部分。3.2结构化程序设计所规定的三种基本控制结构是那三种,请分别画出三种结构的执行流程图。(1)顺序结构(2)选择结构(3)循环结构(当型循环)循环结构(直到型循环)3.3有如下if条件语句:if(a=d)*/x=3;}elseif(c=b)&&(c=b)&&(c>=d))*/x=5;3.4读程序写结果(1)从键盘输入58#includevoidmain(){inta;scanf("%d",&a);if(a>50)printf("A=%d",a);if(a>40)printf("B=%d",a);if(a>30)printf("C=%d",a);}运行结果:A=58B=58C=58(2)#includevoidmain(){intx=10,y=20,t=0;if(x==y)t=x;x=y;y=t;printf(“%d,%dn”,x,y);}运行结果:20,0(3)#includevoidmain(){intp,a=5;if(p=a!=0)printf("%dn",p);elseprintf("%dn",p+2);}运行结果:n1(4)#includevoidmain(){inta=4,b=3,c=5,t=0;if(avoidmain(){inti,m=0,n=0,k=0;for(i=9;i<=11;i++)switch(i/10){case0:m++;n++;break;case10:n++;break;default:k++;n++;}printf("%d%d%dn",m,n,k);}运行结果:132(6)#includevoidmain(){intn=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x-=3;printf("%dn",x);}运行结果:-4(7)#includevoidmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}nprintf("%d%dn",a,b);}运行结果:21(8)#includevoidmain(){inta=3,b=4,c=5,t=99;if(bvoidmain(){intn='c';switch(n++){default:printf("error");break;case'a':case'A':case'b':case'B':printf("good");break;case'c':case'C':printf("pass");case'd':case'D':printf("warn");}}运行结果:passwarn3.5以下程序所表示的分段函数是(④)#includevoidmain(){intx,y;printf("Enterx:");scanf("%d",&x);y=x>=0?2*x+1:0;printf("x=%d:f(x)=%d",x,y);}①0(x≤0)②0(x≥0)f(x)=f(x)=2x+1(x>0)2x+1(x<0)③2x+1(x<0)④0(x<0)f(x)=f(x)=0(x≥0)2x+1(x≥0)3.6编程序计算下面的分段函数x-1(x<0)y=x(x=0)nx+1(x>0)#includevoidmain(){intx,y;scanf("%d",&x);if(x<=0)if(x<0)y=x-1;elsey=x;elsey=x+1;printf("y=%d",y);}3.7编程序计算下面的分段函数0(x=a或x=-a)y=(-aa)#include#includevoidmain(){intx,a;doubley;scanf("%d%d",&x,&a);if(x==a||x==-a)y=0;elseif(x>-a&&xvoidmain(){charc;c=getchar();if(c>='a'&&c<='u')nc+=5;elseif(c>='v'&&c<='z')c-=21;putchar(c);}3.9输入一个自然数,判断它是奇数还是偶数。#includevoidmain(){inti;printf("Inputanaturalnumber:");scanf("%d",&i);if(i%2==0)printf("evenn");elseprintf("oddn");}3.10编程实现将输入的字符进行大小写互换。#includevoidmain(){charch;scanf("%c",&ch);if(ch>='A'&&ch<='Z')ch+=32;elseif(ch>='a'&&ch<='z')ch-=32;printf("%c",ch);}3.11编程判断一个5位数是否是回文数(例如12321即为回文数,个位与万位相同,十位与千位相同)。#includevoidmain(){longunits,tens,kilobit,myriabit,x;scanf("%ld",&x);myriabit=x/10000;kilobit=x%10000/1000;tens=x%100/10;units=x%10;if(units==myriabit&&tens==kilobit)/*个位等于万位并且十位等于千位*/printf("thisnumberisahuiwenn");elseprintf("thisnumberisnotahuiwenn");n}3.12输入一个不多于5位的正整数,要求:①求它是几位数;②分别输出每一位数字;③按逆序输出各位数字。例如原数为321,应输出123。#include#includevoidmain(){longintnum;intindiv,ten,hundred,thousand,ten_thousand,place;printf("请输入一个整数(0-99999):");scanf("%ld",&num);if(num>9999)place=5;elseif(num>999)place=4;elseif(num>99)place=3;elseif(num>9)place=2;elseplace=1;printf("位数=%dn",place);printf("每位数字为:");indiv=num%10;ten=num/10%10;hundred=num/10/10%10;thousand=num/10/10/10%10;ten_thousand=num/10/10/10/10%10;switch(place){case5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);printf("n反序数字为:");printf("%d%d%d%d%dn",indiv,ten,hundred,thousand,ten_thousand);break;case4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);printf("n反序数字为:");printf("%d%d%d%dn",indiv,ten,hundred,thousand);break;case3:printf("%d,%d,%d",hundred,ten,indiv);printf("n反序数字为:");printf("%d%d%dn",indiv,ten,hundred);break;case2:printf("%d,%d",ten,indiv);printf("n反序数字为:");printf("%d%dn",indiv,ten);nbreak;case1:printf("%d",indiv);printf("n反序数字为:");printf("%dn",indiv);break;}}3.13编写程序实现功能:读入两个运算数(data1和data2)及一个运算符(op),计算表达式data1opdata2的值,其中op可以为+、-、*、/、%五个符号中的任一种。#include#includevoidmain(){floatdata1,data2,data3;charop;printf("nTypeinyourexpression:");scanf("%f%c%f",&data1,&op,&data2);switch(op){case'+':data3=data1+data2;break;case'-':data3=data1-data2;break;case'*':data3=data1*data2;break;case'/':if(data2==0){printf("nDivisionbyzero!");exit(1);/*终结程序*/}elsedata3=data1/data2;break;case'%':(int)(data3=(int)data1%(int)data2);/*注意%运算符只能用于整形数*/break;}printf("Thisis%6.2f%c%6.2f=%6.2fn",data1,op,data2,data3);}3.14某个自动加油站有x(90号)、y(93号)、z(97号)三种汽油,单价分别为5.8、6.2、6.6(元/升),也提供了“自己加”或“协助加”两个服务等级,可以使用户得到5%或10%的优惠。请编程实现油款计算,用户输入加油量v(升),汽油品种k(对应x-90号、y-93号、z-97号)和服务类型s(a-自动、m-自己、h-协助),输出应付款m。#includenvoidmain(){floatv,r1,r2,m;chark,s;scanf("%f%c%c",&v,&k,&s);switch(k){case'x':r1=5.8;break;//90号case'y':r1=6.2;break;//93号case'z':r1=6.6;break;//97号}switch(s){case'a':r2=0;break;case'm':r2=0.05;break;case'h':r2=0.1;break;}m=r1*(1-r2)*v;printf("%f",m);}
查看更多

相关文章

您可能关注的文档