C语言详解(第五版)第三章程序设计项目答案
c语言程序设计第五版谭浩强习题答案第三章课后答案

c语⾔程序设计第五版谭浩强习题答案第三章课后答案第三章最简单的C程序设计 ----顺序程序设计1、假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。
计算公式为$p = (1+r)^n$ ,其中r为年增长率,n为年数,p为与现在相⽐的倍数。
题⽬解析:此题的关键主要是利⽤数学库math中pow函数进⾏计算,若不熟悉可以查阅帮助⽂档,查看pow函数的⽤法。
代码⽰例:#include<stdio.h>#include <math.h>int main(){Cfloat p, r, n;r = 0.07;n = 10;p = pow(1 + r, n);printf("p=%f\n", p);return 0;}运⾏结果:2、存款利息的计算。
有1000元,想存5年,可按以下5种办法存:(1)⼀次存5年期(2)先存2年期,到期后将本息再存3年期(3)先存3年期,到期后将本息再存2年期(4)存1年期,到期后将本息再存1年期,连续存5次(5)存活期存款,活期利息每⼀季度结算⼀次2017年银⾏存款利息如下:1年期定期存款利息为1.5%;2年期定期存款利息为2.1%;3年期定期存款利息为2.75%;5年期定期存款利息为3%;活期存款利息为0.35%(活期存款每⼀-季度结算⼀-次利息)如果r为年利率,n为存款年数,则计算本息的公式如下:1年期本息和: P= 1000* (1+r);n年期本息和: P= 1000* (1+n* r);存n次1年期的本息和: $P=1000* (1+r)^n$;活期存款本息和: P= 1000 *(1+$\frac{r}{4}$)$^{4n}$;说明: 1000*(1+$\frac{r}{4}$)是⼀个季度的本息和。
题⽬解析:理解题意很关键,其次就是利⽤数学库math中pow函数进⾏幂次⽅计算代码⽰例:#include<stdio.h>#include <math.h>int main(){float r5, r3, r2, r1, r0, p, p1, p2, p3, p4, p5;p = 1000;r5 = 0.0585;r3 = 0.054;r2 = 0.0468;r1 = 0.0414;r0 = 0.0072;p1 = p*((1 + r5) * 5); // ⼀次存5年期p2 = p*(1 + 2 * r2)*(1 + 3 * r3); // 先存2年期,到期后将本息再存3年期p3 = p*(1 + 3 * r3)*(1 + 2 * r2); // 先存3年期,到期后将本息再存2年期p4 = p*pow(1 + r1, 5); // 存1年期,到期后将本息存再存1年期,连续存5次p5 = p*pow(1 + r0 / 4, 4 * 5); // 存活期存款。
完整word版单片机C语言应用程序设计第五版马忠梅课后习题答案

第一章单片机由哪几部分组成?、80511可P2P0和个8位并行I/O口(其中8位中央处理器CPU、片内振荡电器及其时钟电路,4,个中断优先级)个中断源(具有2位定时器/计数器,5用于外部存储器的扩展),2个16 全双工串行口,布尔处理器。
单片机有多少个特殊功能寄存器?它们可以分为几组,各完成什么主要功能?、80512 表P7 1-3个特殊功能寄存器,在物理上是分散在片内各功能部件中,在数218051单片机内部有答:中,以便能使用统一的直接寻址方式80H~FFH学上把它们组织在内部数据存储器地址空间来访问。
这些特殊功能寄存器颁在以下各个功能部件中:主要完;DPH两个8位寄存器组成)PSW、SP、DPTR(由DPL和(1)CPU:ACC、B、成运算和逻辑判断功能;完成中断管理IP、IE;(2)中断系统:完成定时或者计数功能、TH1;TCOM、TL0、TH0、TL1(3)定时器/计数器:TMOD、口带有可选的纵向拓展I/O完成I/O口功能,其中部分P1P0、、P2、P3(4)并行I/O口:功能。
主要完成数据的串行发送和接收SBUF、PCON5)串行口:SCON、(、决定程序执行顺序的寄存器是哪几个?它是几位寄存器?是否为特殊功能寄存器?它的3 内容是什么信息?它的内容是下一条将要执行的不是特殊功能寄存器,它是16位寄存器,是程序计数器PC,程序的地址的用途是什么?它由哪几个特殊功能寄存器组DPTRDPTR是什么特殊功能寄存器?4、成?位)和8DPL (数据指针低是16位数据指针寄存器,它由两个8位特殊功能寄存器DPTR位地址,作地址寄存器用,可寻址外部16DPTR用于保存DPH(数据指针高8位)组成,数据存储器,也可寻址程序存储器。
线?它们和单片机对外的地址总线和数据总线有什么关系?地址的引脚有多少I/O5、8051 总线和数据总线各是多少位?线可以在外扩存储器时分时复根I/OP0口8I/O8051单片机的40个引脚中有32根口线,和P3.6位地址总线,P2口作为高8用作为外部存储器的低8位地址总线和8位数据总线,位。
C语言程序设计课后各章节习题答案

main()
{
float x,y,d;
printf("Input x,y:");
scanf("%f,%f",&x,&y);
d=sqrt((x-2)*(x-2)+(y-2)*(y-2));
if(d>1)printf(ntf("inside");
}
12有一函数
x-1 -5<x<0
y= x x=0
x+1 0<x<8
编写一程序,要求输入x的值,输出y的值。分别用不嵌套的if语句,嵌套的if语句,switch语句编写。
答使用不嵌套的if语句程序如下:
main()
{
int x,y;
printf("Input x:");
scanf("%d",&x);
答main()
{
int x,a,b,c;
printf("Input number:");
scanf("%d",&x);
a=x/100;/*变量a中记录x的百倍数字*/
b=x/10%10;/*变量b中记录x的十位数字*/
c=x%10;/*变量c中记录x的个位数字*/
if(a*a*a+b*b*b+c*c*c==x)
if(m==2)
d=28+f;
else
d=31-(m==4)+(m==6)+(m==9)+(m==11);
printf("%d-%d is %d days.\n",y,m,d);
C语言 第三章 顺序结构程序设计期末测试习题与答案

B.scanf(“%dV%dV%d”,&a,&b,&c);
C.scanf(“%d,%d,%d”,&a,&b,&c);
D.scanf(“%2d%3d%4d”,a,b,c);
参考答案:C
5、若int a,b; double x;
以下不合法的scanf函数调用语句是( )。
参考答案:C
17、以下程序段的输出结果是
int a=1234;
printf("a=%2d\n",a);
A.提示出错、无结果
B.a=34
C.a=1234
D.a=12
参考答案:C
18、下列关于printf()函数说法错误的是( )。
A.printf()函数是库函数,必须使用#include命令将其包含进来
printf(" %d %d\n",(++x ,y++),z+2);}
运行该程序的输出结果是( )。
A.4 2
B.33
C.4 3
D.3 4
参考答案:B
24、下列程序的输出结果是( )。
main()
{ double d=3.2; int x ,y ;
x=1.2 ; y=(x+3.8)/5.0;
printf("%d \n", 7.3);}
A.3
B.3.07
C.0
D.3.2
参考答案:C
25、以下程序的输出结果是( )。
main( )
{
inmp;&!b||!c;
c语言程序设计第五版习题答案

c语言程序设计第五版习题答案1. 基础语法练习1.1 写一个程序,要求用户输入两个整数,然后计算并输出这两个整数的和。
```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);int sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```1.2 写一个程序,要求用户输入一个字符,然后判断该字符是否为数字字符('0'-'9')。
```c#include <stdio.h>int main() {char ch;printf("请输入一个字符:");scanf(" %c", &ch); // 注意空格if (ch >= '0' && ch <= '9') {printf("该字符是一个数字字符。
\n");} else {printf("该字符不是一个数字字符。
\n");}return 0;}```2. 控制流程练习2.1 写一个程序,找出1~100之间所有能被7整除的数,并输出它们的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 7 == 0) {printf("%d ", i);sum += i;}}printf("\n这些数的和为:%d\n", sum); return 0;}```2.2 写一个程序,打印如下图案:```***************``````c#include <stdio.h>int main() {for (int i = 1; i <= 5; i++) {for (int j = 1; j <= i; j++) {printf("*");}printf("\n");}return 0;}```3. 数组和字符串练习3.1 写一个程序,输出一个5x5的矩阵,矩阵元素由用户输入。
C语言程序设计(第2-3章)习题答案(魏为民)

习题2参考答案一、基础题1.若二维数组a有m列,则在a[i][j]前的元素个数为:A)j*m+i B)i*m+jC)i*m+j-1 D)i*m+j+1B2.在C语言中(以16位PC机为例),五种基本数据类型存储空间长度的排列顺序是:A) char<int<long int<=float<doubleB) char=int<long int<=float<doubleC) char<int<long int=float=doubleD) char=int=long int<=float<doubleA3.在C语言的变量类型说明中,int,char,float等类型的长度是:A) 固定的B) 由用户自己定义的C) 任意的D) 与机器字长有关的D4. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f的数据类型是:A) int型B)float型C) double型D)不确定C5.C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符:A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字或下划线中的任意一种C6.设a=1,b=2,c=3,d=4,则表达式a<b?a:c<d?a:d的值是:A) 4 B) 3 C) 2 D) 1D7.以下程序的输出结果是:main(){ int a=12, b=12;printf("%d,%d\n",--a,++b);}A) 10,10 B) 12,12 C) 11,10 D) 11,13D8.若有代数式(3ae)/(bc),则下面不正确的C语言表达式是:A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*3C9.已知x=43,ch='A',y=0,则表达式(x>=y&&ch<'B'&&!y)的值是:A) 0 B) 语法错C) 1 D) "假"C10.下面程序的输出结果是:main(){ int a=-1, b=4, k;k=(a++<=0)&&(!(b--<=0));printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,3B11.已知字母A的ASCII码为十进制的65,下面程序的输出是:main(){ char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值A12.下面程序的输出的是main(){ int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D) 不确定的值C二、程序设计题1.从键盘上输入一个小写字母,编程输出其对应的大写字母以及它们的十进制ASCII码。
c语言程序设计第三章答案

c语言程序设计第三章答案第三章:运算符与表达式一、算术运算符在C语言中,算术运算符用于在表达式中执行各种数学运算。
常见的算术运算符有加法运算符(+)、减法运算符(-)、乘法运算符(*)和除法运算符(/)等。
1. 加法运算符(+)加法运算符用于将两个操作数相加,并返回它们的和。
例如,表达式a + b将返回a和b的和。
2. 减法运算符(-)减法运算符用于从第一个操作数中减去第二个操作数,并返回它们的差。
例如,表达式a - b将返回a和b的差。
3. 乘法运算符(*)乘法运算符用于将两个操作数相乘,并返回它们的积。
例如,表达式a * b将返回a和b的积。
4. 除法运算符(/)除法运算符用于将第一个操作数除以第二个操作数,并返回它们的商。
例如,表达式a / b将返回a除以b的商。
二、关系运算符关系运算符用于比较两个操作数并返回一个布尔值(真或假)。
常见的关系运算符有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)等。
1. 大于运算符(>)大于运算符用于检查第一个操作数是否大于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a > b将返回真或假。
2. 小于运算符(<)小于运算符用于检查第一个操作数是否小于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a < b将返回真或假。
3. 大于等于运算符(>=)大于等于运算符用于检查第一个操作数是否大于或等于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a >= b 将返回真或假。
4. 小于等于运算符(<=)小于等于运算符用于检查第一个操作数是否小于或等于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a <= b 将返回真或假。
5. 等于运算符(==)等于运算符用于检查两个操作数是否相等。
C语言程序设计第三章 (2)

举例 int a=10; short b=100 int short b=100; unsigned int short b=100; long d=212365; int long d=212365; unsigned int long d=212365;
练习题
练习
• char c; 等价 • c=65; 是否等价于c= 'A' • printf(“%d %c”,c,c);输入的结果是多少呢?
65 A
注意:
• • • • • int a; char b; a=65; b=‘A’; 不等价,所占内存空间不同。 问变量a 的值和变量b的值是否等价。
练习题
price ?abc int name float name age 8ab year a%d 以上哪些是正确的标识符,哪些不是?
price name age year a b 都是 正确的标识符 ?abc int float 8ab a%d 不能是 标识符
练习题
下列选项中,不能用作标识符的是( )
设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数
A)(a+b)*h/2
ab 式_______________ h 2
计算结果不相符的是( ) B)(1/2)*(a+b)*h
B
C)(a+b)*h*1/2 D)h/2*(a+b)
2014-3-16
自加、自减运算符P53 自加运算(i++, ++i) 相同点:++i 和 i++的作用都等同于i=i+1 不同点:++i是先给i=i+1,然后再引用i的值。 i++是先引用i的值,然后i=i+1 自减运算(i- -, - -i) 相同点:- -i 和 i- -的作用都等同于i=i-1 不同点:- -i是先给i=i-1,然后再引用i的值。 i--是先引用i的值,然后i=i-1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
scanf("%lf",&time); a=deceleration(initial_velocity,final_velocity,time); t=deceleration_time(initial_velocity,a); printf("The deceleration is %.2f unit.",a); printf("The deceleration time is %.2f unit.",t); system("pause"); return 0; } double deceleration(double initial_velocity,double final_velocity,double time) {double a; a=(final_velocity-initial_velocity)/time; return(a); } double deceleration_time(double initial_velocity,double a) {double t; t=fabs(initial_velocity/a); return(t); } 9.计算每个容器的开销和所有容器总共的开销。要求:用户显示指令函数和计算表面积的函 数。 #include<stdio.h> #include<stdlib.h> #include<math.h> #define PI 3.14159 double each_area(double radius,double height); double each_cost(double unit_price,double radius,double height); double gross_cost(double quantity,double unit_price,double radius,double height); int main(void) {double each_area(double,double); double each_cost(double,double,double); double gross_cost(double,double,double,double); double radius,height,unit_price; double quantity; printf("Please enter the radius of the subface >>"); scanf("%lf",&radius); printf("Please enter the height of the container>>"); scanf("%lf",&height); printf("Please enter the price of the material>>"); scanf("%lf",&unit_price); printf("Please enter the quantity of the container >>"); scanf("%lf",&quantity); printf("The surface of each container is %.2f .\n",each_area(radius,height)); printf("The container each cost %.2f dollars.\n",each_cost(unit_price,radius,height)); printf("The gross cost %.2f dollars.\n",gross_cost(quantity,unit_price,radius,height));
double meter_velocity(double,double); double time,kilometers,minutes,seconds; printf("please enter the length of race>>"); scanf("%lf",&kilometers); printf("please enter the time of race>>"); scanf("%lf%lf",&minutes,&seconds); time=minutes*60+seconds; printf("the velocity of candidate is %.2f mps.\n",meter_velocity(kilometers,time)); /*一个函数只能返回一个数值。*/ printf("the velocity of candidate is %.2f fps.\n",mile_velocity(kilometers,time)); system("pause"); return 0; } double mile_velocity(double kilometers,double time) {double velocity,miles; miles=kilometers*3282/5280; velocity=miles/time; return(velocity); } double meter_velocity(double kilometers,double time)
double scale(double x,int n);
int main(void)
{double scale(double,int);
double num_1; int n=2; printf("Please enter x>>"); scanf("%lf",&num_1); printf("The rounded x is %.2f.",scale(num_1,n)); system("pause"); return 0; } double scale(double num_1,int n) {double y,rounded_x;
int main(void)
{double time(double,double,double);
/*必须要有*/
double height(double,double,double);
/*必须要有*//
double theta,distance,velocity,a,b;
printf("The theta of elevation is>>");
printf("Please enter the terms duration of loan>>");
scanf("%lf",&terms);
printf("Please enter the initial_payment>>");
scanf("%lf",&initial_payment);
temp=1+monthly_interest_rate;
a=time(theta,distance,velocity);
/*赋值将函数转化为变量*/
b=height(a,theta,velocity);
/*赋值将函数转化为变量*/
printf("The time is %f seconds and the height is %f ft.",a,b);
system("pause");
c 语言详解(第五版)第三章程序设计项目答案
1.假设买一辆车首付为 500dollar。请计算月供。
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main(void)
{double capital_sum,monthly_interest_rate,initial_payment,temp,payment,terms;
return 0;
}
double time(double theta,double distance,double velocity)
/*数据类型一定要写好*/
{double time;
time=distance/(velocity*cos(theta));
return(time);
}
double height(double a,double theta,double velocity)
{double velocity; velocity=kilometers/time; return(velocity); } 7.买房子,5年的开销。 #include<stdio.h> #include<math.h> #include<stdlib.h> double feul_cost(double x); double property_tax(double initial_payment,double tax_rate); int main(void) {double x,tax_rate,initial_payment; printf("Please enter the feul cost per year>>"); scanf("%lf",&x); printf("Please enter the property rate per year>>"); scanf("%lf",&tax_rate); printf("Please enter the initial payment>>"); scanf("%lf",&initial_payment); printf("The feul cost of five years is %.2f dollars\n",feul_cost(x)); printf("The property tax of five years is %.2f dollars\n",property_tax(initial_payment,tax_rate)); system("pause"); return 0; } double feul_cost(double x) {return(x*5); } double property_tax(double initial_payment,double tax_rate) {