C语言程序设计第五版 谭浩强著 第4章107

您所在的位置:网站首页 c程序设计第4版答案 C语言程序设计第五版 谭浩强著 第4章107

C语言程序设计第五版 谭浩强著 第4章107

2023-12-31 00:48| 来源: 网络整理| 查看: 265

1.什么是算术运算?什么是关系运算?什么是逻辑运算?

答:算术运算时数学里基础的加减乘数求余数等;关系运算时求两个或者多个变量或者表达式之间的关系;逻辑运算时将多个变量或者表达式链接起来的逻辑关系。

2.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?

答:C语言中将数值为1作为真,为0作为假,系统将值为非0的变量或表达式作为真,否则假。

3.写出下面各逻辑表达式的值。设a=3,b=4,c=5. (1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1 (4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c-1&&b+c/2

答:(1)0 因为b!=c;(2)1 因为a,b+c,b-c均非0;(3)1 因为||右侧为1 逻辑运算符||其中一个表示为1值则可以判定; (4)0 很明显第一个和第三个式子为假 &&其中一个为假 则判定;(5)1 &&前可以表示为0+5-1,后表示4+5/2均非0 。

4.有3个整数,由键盘输入,输出其中最大的数。

#include int main() {int a,b,c,z; scanf("%d%d%d",&a,&b,&c); if(a>b) z=a; else z=b; else z=c; printf("max=%d",z); }

5.从键盘输入一个小于1000的正整数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其检查是否为小于1000的正数。若不是,则要求从新输入。

#include #include int main() { int i,k; printf("请输入一个小于%d的整数i:",M); scanf("%d",&i); if (i>1000) {printf("输入的数不符合要求,请重新输入一个小于1000的整数i:\n"); scanf("%d",&i); } k=sqrt(i); printf("%d的平方根的整数部分是:%d\n",i,k); return 0; }

6.有一个函数: {x (x90){ printf("该同学的等级为:A"); } if(score>=80 && score=70 && score=60 && score=0&&score9999) place=5; else if(num>999) place=4; else if(num>99) place=3; else if(num>9) place=2; else place=1; printf("\n%d是%d位数\n",num,place); int ten_thousand,thousand,hundred,ten,indiv; ten_thousand=num/10000; thousand=(num-ten_thousand*10000)/1000; hundred=(num-ten_thousand*10000-thousand*1000)/100; ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10); printf("\n分别打印出每一位数字和逆序输出:\n"); switch(place) { case 5:printf("%d\t%d%d%d%d%d\n",num,ten_thousand,thousand,hundred,ten,indiv);break; case 4:printf("%d\t%d%d%d%d\n",num,indiv,ten,hundred,thousand);break; case 3:printf("%d\t%d%d%d\n",num,indiv,ten,hundred);break; case 2:printf("%d\t%d%d\n",num,indiv,ten);break; case 1:printf("%d\t%d\n",num,indiv);break; } }

10.企业发放的奖金根据企业的当年利润决定。当利润I低于或等于100000元时,奖金可提成10%;利润大于100000元,小于200000元(100000

#include main() { long i; float bonus,bon1,bon2,bon4,bon6,bon10; int c; bon1=10000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015; printf("请输入利润i:"); scanf("%ld",&i); c=i/100000; if(c>10) c=10; switch(c) { case 0:bonus=1*0.1;break; case 1:bonus=bon1+(i-100000)*0.075;break; case 2: case 3:bonus=bon2+(i-200000)*0.05;break; case 4: case 5:bonus=bon4+(i-400000)*0.03;break; case 6: case 7: case 8: case 9:bonus=bon6+(i-600000)*0.015;break; case 10:bonus=bon10+(i-1000000)*0.01;break; } printf("奖金是%10.2f",bonus); }

11.输入4个整数,要求按由小到大的顺序输出。

#include void main() { int a,b,c,d,t; printf("请输入四个整数:\n"); scanf("%d%d%d%d",&a,&b,&c,&d); if(a>b) { t=a;a=b;b=t; } if(a>c) { t=a;a=c;c=t; } if(a>d) { t=a;a=d;d=t; } if(b>c) { t=b;b=c;c=t; } if(b>d) { t=b;b=d;d=t; } if(c>d) { t=c;c=d;d=t; } printf("%d%d%d%d",a,b,c,d); }

12.有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为0)

#include main() { int h=10; float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4; printf("请输入一点(x,y):"); scanf("%f,%f",&x,&y); d1=(x-x1)*(x-x1)+(y-y1)*(y-y1); d2=(x-x2)*(x-x2)+(y+y2)*(y+y2); d3=(x+x3)*(x+x3)+(y-y3)*(y-y3); d4=(x+x4)*(x-x4)+(y+y4)*(y-y4); if(d1>1&&d2>1&&d3>1&&d4>1) h=0; printf("该点高度为h%d\n",h); }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3