第一章程序设计概述 1.1查找一些有关程序设计发展的资料,了解程序设计语言的发展过程。尤其是C语言 的发展过程 (略) 12了解算法概念,试着用教材上介绍的方法,描述日常生活中的几个例子 (略) 13查找资料,归纳一下计算机求解数学问题的算法类型 (略) 14查找资料,了解其他算法描述方法的特点 (略) 1.5结构化程序设计中讨论的三种基本结构是什么?有什么特点?为什么要提倡结构 化程序设计方法? (略) 16C程序的基本组成是怎样的?main函数在C程序中的作用如何? (略) 1.7熟悉 Trubo c2.0集成开发环境,了解系统的基本使用方法。 (略) 1.8参考本章例1.13的程序,编写一个程序,在屏幕上输出你的姓名。试着上机编 编译、运行你的程序 #include maino printf( My Name is: Your Name! \n); 1.9故意在上题的程序中制造一点错误,看看编译系统如何处理它们。 (略 1.10用1.33介绍的步骤,设计下面问题的算法: (1)用三角形的边长计算三角形的面积 解:问题的输入数据是三角形的三个边长,应使用浮点数,用变量a、b、c表示,输入方 法可以用键盘输入或指定确定值。输出是三角形的面积值,使用浮点数,用变量area 表示。输入输出数据的关系用数学公式描述为: area=ys*(s-a)*(s-b)*(s-c) 其中s=-(a+b+c) 使用顺序结构就可完成以上计算,算法如下: 开始 输入a、b、c 计算s=-(a+b+c) 计算area=sqrs*(s-a)*(S-b)*(s-C)
第一章 程序设计概述 1.1 查找一些有关程序设计发展的资料,了解程序设计语言的发展过程。尤其是 C 语言 的发展过程。 (略) 1.2 了解算法概念,试着用教材上介绍的方法,描述日常生活中的几个例子。 (略) 1.3 查找资料,归纳一下计算机求解数学问题的算法类型 (略) 1.4 查找资料,了解其他算法描述方法的特点。 (略) 1.5 结构化程序设计中讨论的三种基本结构是什么?有什么特点?为什么要提倡结构 化程序设计方法? (略) 1.6 C 程序的基本组成是怎样的?main 函数在 C 程序中的作用如何? (略) 1.7 熟悉 Trubo C2.0 集成开发环境,了解系统的基本使用方法。 (略) 1.8 参考本章例 1.13 的程序,编写一个程序,在屏幕上输出你的姓名。试着上机编辑、 编译、运行你的程序。 #include main() { printf("My Name is : Your Name!\n"); } 1.9 故意在上题的程序中制造一点错误,看看编译系统如何处理它们。 (略) 1.10 用 1.3.3 介绍的步骤,设计下面问题的算法: (1) 用三角形的边长计算三角形的面积。 解:问题的输入数据是三角形的三个边长,应使用浮点数,用变量 a、b、c 表示,输入方 法可以用键盘输入或指定确定值。输出是三角形的面积值,使用浮点数,用变量 area 表示。输入输出数据的关系用数学公式描述为: area= s *(s − a)*(s −b)*(s − c) 其中 s= ( ) 2 1 a + b + c 使用顺序结构就可完成以上计算,算法如下: 开始 输入 a、b、c 计算 s= ( ) 2 1 a + b + c 计算 area=sqrt( s *(s − a) *(s − b) *(s − c) )
输出area 结束 (2)对5个同学某学期的数学成绩,求出平均分,并找出成绩最高的同学是哪一位。 解:问题的输入数据是5个同学某学期的数学成绩,使用浮点数,用数组a5]表示,从键 盘输入。输出是平均分和最高分,使用浮点数,用变量 average和ma表示。求平均 分需要一个循环来实现每一个成绩的累加,循环中同时可通过比较找到最大值。 算法如下 开始 输入数组元素a[0]~a[4] average、max初值赋0 对数组元素下标i,从0~4循环,做下面操作 计算 average= average+a[il if (ai]>max)max=a[] 计算 输出aver 结束 l.11画出上题算法的流程图表示,试着写出它们的伪代码算法 (略 第二章数据类型、运算符与表达式 2.1C语言的基本数据类型有哪些?数据类型对数据表示和运算有什么约束? 略 22什么是标识符和关键字?有什么作用?语法组成如何?熟悉C语言的关键字(它 们只有32个) (略) 23常量和变量有何区别?常量和符号常量有何区别? (略) 24字符和字符串表示形式有何区别?“a’和“a”有什么不同?数字和数字字符有何 区别?1和‘1’有什么不同?空字符“\0’和空格字符’有何区别?它们的ASCI码 值有什么不同? (略) 2.5C语言变量机制实现的基础是什么?想一想变量的名字、地址、值、类型有什么关 系?变量有哪些基本操作? (略) 26C语言基本数据类型数据的字面量是如何描述的? (略) 27在教材的附录中查找ASCⅡ码编码信息,归纳以下ASCⅡ码编码方案的特点,常 用字符的大致编码顺序
输出 area 结束 (2)对 5 个同学某学期的数学成绩,求出平均分,并找出成绩最高的同学是哪一位。 解:问题的输入数据是 5 个同学某学期的数学成绩,使用浮点数,用数组 a[5]表示,从键 盘输入。输出是平均分和最高分,使用浮点数,用变量 average 和 max 表示。求平均 分需要一个循环来实现每一个成绩的累加,循环中同时可通过比较找到最大值。 算法如下: 开始 输入数组元素 a[0]~a[4] average、max 初值赋 0 对数组元素下标 i,从 0~4 循环,做下面操作 计算 average= average+a[i] if (a[i]>max) max= a[i] 计算 average= average/5 输出 average、max 结束 1.11 画出上题算法的流程图表示,试着写出它们的伪代码算法。 (略) 第二章 数据类型、运算符与表达式 2.1 C 语言的基本数据类型有哪些?数据类型对数据表示和运算有什么约束? (略) 2.2 什么是标识符和关键字?有什么作用?语法组成如何?熟悉 C 语言的关键字(它 们只有 32 个)。 (略) 2.3 常量和变量有何区别?常量和符号常量有何区别? (略) 2.4 字符和字符串表示形式有何区别?‘a’和“a”有什么不同?数字和数字字符有何 区别?1 和‘1’有什么不同?空字符‘\0’和空格字符‘ ’有何区别?它们的 ASCII 码 值有什么不同? (略) 2.5 C 语言变量机制实现的基础是什么?想一想变量的名字、地址、值、类型有什么关 系?变量有哪些基本操作? (略) 2.6 C 语言基本数据类型数据的字面量是如何描述的? (略) 2.7 在教材的附录中查找 ASCII 码编码信息,归纳以下 ASCII 码编码方案的特点,常 用字符的大致编码顺序
(略) 28在教材的附录中查找C语言对运算符优先级和结合方式的规定,体会什么场合需 要使用优先级?什么场合需要使用结合方式? (略) 29在教材的附录中查找关于C库函数的内容,熟悉C语言提供的主要数学函数的分 类和常用数学函数的使用方法 略) 2.10表达式求值中,C语言对类型如何处理?什么是自动类型转换?什么是强制类型 转换?如何转换? 211练习将下面各数用二进制、八进制和十六进制表示 (2)65 (3)-1 (4)-127 (5)150 (6)-l11 (7)2500(8)-1200(9)-540 (10)25000 (使用 windows系统的计算器工具可以帮助你快速完成上面计算) 解:二进制补码表示是理解整数运算溢出现象及各种整型数据类型转换方法和结果的基础。 计算机系的学生应该熟练掌握。 答案见下表: 十进制 八进制 十六进制 14 E 65 l10010 145 65 1111111111111111 177777 FFFF 127 11111110000001 177601 FFi 150 10010110 226 1111111110010001 177621 100l11000100 4704 9C4 200 llll0ll01010000 175520 FB50 111110111100100 7674 FDE4 25000 l10000110101000 60650 61A8 212指出下面字符序列中不合法的标识符 a X f-123 解:合法的标识符有 213写出下列数学表达式在C语言中相应的表达式表示 (1)-1200 (2)cXA+b
(略) 2.8 在教材的附录中查找 C 语言对运算符优先级和结合方式的规定,体会什么场合需 要使用优先级?什么场合需要使用结合方式? (略) 2.9 在教材的附录中查找关于 C 库函数的内容,熟悉 C 语言提供的主要数学函数的分 类和常用数学函数的使用方法。 (略) 2.10 表达式求值中,C 语言对类型如何处理?什么是自动类型转换?什么是强制类型 转换?如何转换? 2.11 练习将下面各数用二进制、八进制和十六进制表示: (1)14 (2)65 (3)-1 (4)-127 (5)150 (6)-111 (7)2500 (8)-1200 (9) -540 (10)25000 (使用 windows 系统的计算器工具可以帮助你快速完成上面计算) 解:二进制补码表示是理解整数运算溢出现象及各种整型数据类型转换方法和结果的基础。 计算机系的学生应该熟练掌握。 答案见下表: 十进制 二进制 八进制 十六进制 14 1110 16 E 65 1100101 145 65 -1 1111111111111111 177777 FFFF -127 1111111110000001 177601 FF81 150 10010110 226 96 -111 1111111110010001 177621 FF19 2500 100111000100 4704 9C4 -1200 1111101101010000 175520 FB50 -540 1111110111100100 176744 FDE4 25000 110000110101000 60650 61A8 2.12 指出下面字符序列中不合法的标识符: 4a1 def a_x_1 $usa x 123 0x56 f-123 num# age int 解:合法的标识符有: def a_x_1 age int 2.13 写出下列数学表达式在 C 语言中相应的表达式表示: (1) 24 4 5 1200 − (2)c× a b 2 2 +
(3)lnln(1035+2) 解:(1)1200(24-4*5)如果希望浮点数结果可考虑:1200(24-4*5.0) (2)c*sqrt(a*a+b*b) (3)log(og( power(10,3.5)+2) 2.14指出下面表达式计算中,哪些地方会发生类型转换?各个转换从什么类型转换到 什么类型?表达式计算的结果是什么? (1)2.5+2*7%2/4 (2)4°(2L+6.5)-12 (3)10/(5*3) (4)2*10.0(5*3) 解:(1)2.5+2*7%2/4结果:浮点数2.5,+运算发生类型转换,从整型转换到浮点型 (2)4+(2L+6.5)-12结果:浮点数22,+运算的2L从长整型转换到浮点型,*运算的4 从整型转换到浮点型,-运算的12从整型转换到浮点型 (3)10(5*3)结果:整数0,没有类型转换,均是整数运算 (4)2*10.0(5*3)结果:浮点数1.333/运算的第二个运算数从整型转换到浮点型 运算的2从整型转换到浮点型。 2.15设:a是int型变量,a=10,写出下面表达式运算后,a变量的值 (1 (3)a=a+=a*=a (4)a%=6 解:(1)130 (2)0 (3)0 (4)4 216设:x=2.7,a=8,y=4.5,计算下面表达式的值: y+a%5*(int)(x+y)/2%4 解:浮点数65 217写出程序运行结果。 main( t int x=5,y, z; printf("%d %d\n"x,y) z=++x*2; printf("%d %d\n"x, 2); 解:63 714 2.18写出程序运行结果。 maino
(3)lnln(103.5+2) 解:(1)1200/(24-4*5) 如果希望浮点数结果可考虑:1200/(24-4*5.0) (2)c*sqrt(a*a+b*b) (3)log(log(power(10,3.5)+2)) 2.14 指出下面表达式计算中,哪些地方会发生类型转换?各个转换从什么类型转换到 什么类型?表达式计算的结果是什么? (1) 2.5+2*7%2/4 (2) 4*(2L+6.5)-12 (3) 10/(5*3) (4) 2*10.0/(5*3) 解:(1)2.5+2*7%2/4 结果:浮点数 2.5,+运算发生类型转换,从整型转换到浮点型。 (2)4*(2L+6.5)-12 结果:浮点数 22,+运算的 2L 从长整型转换到浮点型,*运算的 4 从整型转换到浮点型,-运算的 12 从整型转换到浮点型。 (3)10/(5*3) 结果:整数 0,没有类型转换,均是整数运算。 (4)2*10.0/(5*3) 结果:浮点数 1.33333,/运算的第二个运算数从整型转换到浮点型, *运算的 2 从整型转换到浮点型。 2.15 设:a 是 int 型变量,a=10,写出下面表达式运算后,a 变量的值。 (1) a*=a+3 (2) a/=a+a (3) a-=a+=a*=a (4) a%=6 解: (1) 130 (2) 0 (3) 0 (4) 4 2.16 设:x=2.7,a=8,y=4.5,计算下面表达式的值: y+a%5*(int)(x+y)/2%4 解: 浮点数 6.5 2.17 写出程序运行结果。 main() { int x=5,y,z; y=8-x++; printf("%d %d\n",x,y); z=++x*2; printf("%d %d\n",x,z); } 解: 6 3 7 14 2.18 写出程序运行结果。 main()
a=(b=(c=3)*5)*2-3; printf("%od %d %d\n", a, b, c) 解:27153 第三章语句及控制结构 3.1C语言的语句是如何分类的?有什么特点?为什么说C语言是表达式语言?怎样区 分表达式和表达式语句?什么地方用表达式?什么地方用表达式语句? (略 3.2C语言提供了那些语句支持结构化程序设计? break和 continue语句的控制作用是 怎样的?使用goo语句对程序有什么影响? (略) 3.3C语言标准输入输出是如何工作的?查找其他关于程序设计语言的资料,C语言 把输入输出功能作为函数而不作为语言的基本部分有什么好处? 34什么是关系运算?什么是逻辑运算?C语言中如何表示“真”和“假”? (略) 3.5计算下面表达式的值。设a=1,b=2,c=3 (1)a=al=b?b: c (2)a>b?b+l:c+1 (3)(a=4)?a-:b- :(1)0关系运算符的优先级高于赋值运算符。 (3)1注意条件表达式的条件部分是一个赋值表达式 36写出满足下面条件的关系或逻辑表达式 (1)a在区间(3,10)内 (2)x是3的倍数 (3)x和y的和大于100且x大小于45 (4)a等于c或b不等于0 (5)a是小写字母 解:(1)a>3&&a100&&x>45 (4)a=cl‖b!=0 a,&&a<=‘z 3.7计算下面逻辑表达式的值。设a=0,b=1,c=2,d=4
{ int a,b,c; a=(b=(c=3)*5)*2-3; printf("%d %d %d\n",a,b,c); } 解: 27 15 3 第三章 语句及控制结构 3.1 C语言的语句是如何分类的?有什么特点?为什么说C语言是表达式语言?怎样区 分表达式和表达式语句?什么地方用表达式?什么地方用表达式语句? (略) 3.2 C 语言提供了那些语句支持结构化程序设计?break 和 continue 语句的控制作用是 怎样的?使用 goto 语句对程序有什么影响? (略) 3.3 C 语言标准输入输出是如何工作的?查找其他关于程序设计语言的资料,C 语言 把输入输出功能作为函数而不作为语言的基本部分有什么好处? 3.4 什么是关系运算?什么是逻辑运算?C 语言中如何表示“真”和“假”? (略) 3.5 计算下面表达式的值。设 a=1,b=2,c=3。 (1)a = a!=b?b:c (2)a>b?b+1:c+1 (3)(a=4) ? a--:b-- 解: (1)0 关系运算符的优先级高于赋值运算符。 (2)4 (3)1 注意条件表达式的条件部分是一个赋值表达式。 3.6 写出满足下面条件的关系或逻辑表达式。 (1)a 在区间(3,10)内。 (2)x 是 3 的倍数。 (3)x 和 y 的和大于 100 且 x 大小于 45。 (4)a 等于 c 或 b 不等于 0 (5)a 是小写字母 解: (1)a>3 && a100 && x>45 (4)a==c || b!=0 (5)a>=‘a’&& a<=‘z’ 3.7 计算下面逻辑表达式的值。设 a=0,b=1,c=2,d=4
(4)b>a&&c>b(5)a&&dc (6)!a&&b>c (7)(b>a)llcd 解: (1)0 (2)0 (3)0 (4)0 (5)0 (6)0 (7)0 (9)1 (11)0 (12) 3.8参考教材标准输入输出格式的规定,测试几组数据,看看执行情况如何。 (略 39写出下面程序的输出结果并上机验证 (1)#include for(i=0,x>5;y=++1) (2)#include inta=-13,b=-4, printf("%d printf("%d ",a%-b) 解:(1)8107162 (2)-111-1 3.10编写程序,从键盘上输入两个电阻的值,求它们并联和串联的电阻值,输出结果 保留两位小数。 解:本题的输入输出要求很明确,并联和串联的电阻值计算公式如下: R1+R2 并联电阻RP= 串联电阻RS=R+R2 R1*R2 用顺序结构即可完成题目要求的任务,程序如下: #includestdio h I float rl, r2, rp, rs printf("Input Rl and R2: " scanf (%f %f", &rl, &r2)
(1)a>=b (2)c-b==a (3)c!=d-b (4)b>a && c>b (5)a && d-c (6)!a && b>c (7)(b>a) || cd (10)(a||b) && cd 解: (1)0 (2)0 (3)0 (4)0 (5)0 (6)0 (7)0 (8)1 (9)1 (10)0 (11)0 (12)1 3.8 参考教材标准输入输出格式的规定,测试几组数据,看看执行情况如何。 (略) 3.9 写出下面程序的输出结果并上机验证。 (1) #include main() { int x=8, y=10,i; for (i=0;x>5; y=++i) printf(" %d %d ",x--,y); } (2) #include main() { int a=-13, b=-4; printf("%d ",a%b); printf("%d " ,-a % -b ); printf("%d ",-a%b ); printf("%d ",a%-b ); } 解: (1)8 10 7 1 6 2 (2)-1 1 1 -1 3.10 编写程序,从键盘上输入两个电阻的值,求它们并联和串联的电阻值,输出结果 保留两位小数。 解:本题的输入输出要求很明确,并联和串联的电阻值计算公式如下: 并联电阻 RP= 1* 2 1 2 R R R + R 串联电阻 RS=R1+R2 用顺序结构即可完成题目要求的任务,程序如下: #include main() { float r1,r2,rp,rs; printf("Input R1 and R2:"); scanf("%f %f",&r1,&r2);
rs=(r1+r2) rp= rs/(rl=r2) printf("RP=. 2f RS=%. 2f " rp, rs) 3.1编写摄氏温度、华氏温度转换程序。要求:从键盘输入一个摄氏温度,屏幕就显 示对应的华氏温度,输出取两位小数。转换公式:F=(C+32)×9/5 解:用顺序结构即可完成题目要求的任务,程序如下: #include<stdio. h float c, f: printf("Input C: canf (%f", &c) f=(c+32.0)*9.0/5.0 printf("F=%. 2f \n"f) 3.12编写程序,从键盘输入梯形的上下底边长度和高,计算梯形的面积。 解:用顺序结构即可完成题目要求的任务,梯形的面积=(a+b)*h,程序如下: #include<stdio. h main I float a, b, h printf( Input a, b, h scanf(%ff%", &a, &b, &h) s=(a+b)*h/2.0 printf( s=%. 2f \n", s) 3.13编写程序,从键盘上输入一行字符,并依次显示在屏幕上 解:用回车控制输入结束,用循环结构显示输入缓冲区的字符,程序如下: #includestdio h i char ch: while((ch=getchar ()!=\n') printf(%c", ch
rs= (r1+r2); rp= rs/(r1*r2); printf("RP=%.2f RS=%.2f ",rp,rs); } 3.11 编写摄氏温度、华氏温度转换程序。要求:从键盘输入一个摄氏温度,屏幕就显 示对应的华氏温度,输出取两位小数。转换公式:F=(C+32)×9/5 解:用顺序结构即可完成题目要求的任务,程序如下: #include main() { float c,f; printf("Input C:"); scanf("%f",&c); f= (c+32.0)*9.0/5.0; printf("F=%.2f \n ",f); } 3.12 编写程序,从键盘输入梯形的上下底边长度和高,计算梯形的面积。 解:用顺序结构即可完成题目要求的任务,梯形的面积= 2 1 (a+b)*h,程序如下: #include main() { float a,b,h,s; printf("Input a,b,h:"); scanf("%f%f%f",&a,&b,&h); s= (a+b)*h/2.0; printf("s=%.2f \n",s); } 3.13 编写程序,从键盘上输入一行字符,并依次显示在屏幕上。 解:用回车控制输入结束,用循环结构显示输入缓冲区的字符,程序如下: #include main() { char ch; while ((ch=getchar())!='\n') printf("%c",ch); }
3.14编写程序,从键盘输入一个字符,求出与该字符前后相邻的两个字符,按从小到 大的顺序输出这三个字符的 ASCII码 解: ASCIi码的大小关系与字符的大小关系一致,且相邻字符的ASCI码编码连续。用顺 序结构即可实现,程序如下 #includestdio. h> maino char ch. h=getchar printf(%c ASCII code is %d\n, ch-1, ch-1) printf("%c ASCII code is %d\n", ch, ch) printf( %c ASCII code is %d\n", ch+, ch+1) 3.15编写程序,从键盘输入某学生的四科成绩,求出总分和平均分,找出最高分和最 低分 解:寻找最高分和最低分的基本操作是比较当前分数和当前最高分及最低分的大小,需要 选择结构来实现,程序如下 #include fl 1. a2. a3. a4, aver, sum fl min, max printf(Enter 4 scores scanf("%f%f%f%f",&a1,&a2,&a3,&a4); min=al: max=al admin min=a2 else if (a2>max) if (a3max) max=a3 if (a4<min)
3.14 编写程序,从键盘输入一个字符,求出与该字符前后相邻的两个字符,按从小到 大的顺序输出这三个字符的 ASCII 码。 解:ASCII 码的大小关系与字符的大小关系一致,且相邻字符的 ASCII 码编码连续。用顺 序结构即可实现,程序如下: #include main() { char ch; ch=getchar(); printf("%c ASCII code is %d\n",ch-1,ch-1); printf("%c ASCII code is %d\n",ch,ch); printf("%c ASCII code is %d\n",ch+1,ch+1); } 3.15 编写程序,从键盘输入某学生的四科成绩,求出总分和平均分,找出最高分和最 低分。 解:寻找最高分和最低分的基本操作是比较当前分数和当前最高分及最低分的大小,需要 选择结构来实现,程序如下: #include main() { float a1,a2,a3,a4,aver,sum; float min,max; printf("Enter 4 scores :"); scanf("%f%f%f%f",&a1,&a2,&a3,&a4); min=a1;max=a1; sum=a1+a2+a3+a4; aver=sum/4; if (a2max) max=a2; if (a3max) max=a3; if (a4<min)
min-a. max=a4 rinf(aver=%. 2f sum=%. 2f\n", aver, sum) printf("min=%.2f max=%. 2f\n", min, max) 3.16编写程序,输入年份和月份,求该月的天数 解:需要判断输入的年份是否闰年,输入月份与该月天数的关系最好使用 switch结构,if 结构亦可完成。参考程序如下: #include<stdio. h i int year, month, day printf("Enter year& month: " canf( %d%d", &year, &month) if((year%4=0)&&(year%100!=0)|1(year%400=0) (if (month else 28 switch (month) case 12: day=31 case case 11: day=30
min=a4; else if (a4>max) max=a4; printf("aver=%.2f sum=%.2f\n",aver,sum); printf("min=%.2f max=%.2f\n",min,max); } 3.16 编写程序,输入年份和月份,求该月的天数。 解:需要判断输入的年份是否闰年,输入月份与该月天数的关系最好使用 switch 结构,if 结构亦可完成。参考程序如下: #include main() { int year,month,day; printf("Enter year & month:"); scanf("%d%d",&year,&month); if ((year%4==0)&&(year%100!=0)||(year%400==0)) { if (month==2) day = 29; else day = 28; } else { switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break; case 2: day=28; break; case 4: case 6: case 9: case 11: day=30;
printf("year=%d month=d day=%d \n", year, month, day) 3.17考察目前银行对整存整取存款不同期限的储蓄利率,计算存入本金和一定期限的 存款到期时的利息及利息与本金的和 当前整存整取年息利率参考:(%) 半年:2 年:225 二年:243 三年:2.70 五年:288 解:本题需要根据不同的存款期限决定计算利息使用的利率,需要选择结构,参考程序如 #include <stdio. h i double benjin, rate, rest double total int term printf( Enter benjin: printf(" \eNter term n0—half An 1--1 year "n2—2 An 3-3 years n5-5 scanf(%d",&term) switch (term) case0:rate=0.5*2.16*0.01 case1:rate=2.25*0.01; case2:rate=2.0*2.43*0.01; break case3:rate=3.0*2.7*0.01;
break; } } printf("year=%d month=%d day=%d\n",year,month,day); } 3.17 考察目前银行对整存整取存款不同期限的储蓄利率,计算存入本金和一定期限的 存款到期时的利息及利息与本金的和。 当前整存整取年息利率参考:(%) 半年: 2.16 一年: 2.25 二年: 2.43 三年: 2.70 五年: 2.88 解:本题需要根据不同的存款期限决定计算利息使用的利率,需要选择结构,参考程序如 下: #include main() { double benjin,rate,rest; double total; int term; printf("Enter benjin: "); scanf("%lf",&benjin); printf("\nEnter term:" "\n 0 -- half year" "\n 1 -- 1 year" "\n 2 -- 2 years" "\n 3 -- 3 years" "\n 5 -- 5 years\n"); scanf("%d",&term); switch (term) { case 0: rate=0.5*2.16*0.01; break; case 1: rate=2.25*0.01; break; case 2: rate=2.0*2.43*0.01; break; case 3: rate=3.0*2.7*0.01; break;