钱能c++程序设计教程(第二版)第三章答案[1]

合集下载

C++程序设计(第二版)钱能-第3章--数据类型

C++程序设计(第二版)钱能-第3章--数据类型

第3章数据类型3.9 练习3(Exercises 3)1.模仿程序f0302.cpp,打印整数-1234567的二进制位码。

解答:#include <iostream>using namespace std;int main(){long int l = -1234567;int* pa = (int*) &l;for(int i = 31; i >= 0; i--)cout << (*pa>>i & 1) << (i == 31 || i == 23 ? "-":"");cout << endl;return 0;}2.整型分long int、int、char、bool,浮点数分float、double、long double,试分别输出各类型的字节长度和位长,输出形式如:long int: 4 byte 32 bits解答:#include <iostream>using namespace std;int main(){long int a = 1;int b = 2;char c = 'A';bool d = 0;float e = 3;double f = 4;long double g = 5;cout << "long int:" << sizeof(a) << " byte " << 8*sizeof(a) << " bits" << endl;cout << "int:" << sizeof(b) << " byte " << 8*sizeof(b) << " bits" << endl; cout << "char:" << sizeof(c) << " byte " << 8*sizeof(c) << " bits" << endl;cout << "bool:" << sizeof(d) << " byte " << 8*sizeof(d) << " bits" << endl;cout << "float:" << sizeof(e) << " byte " << 8*sizeof(e) << " bits" <<endl;cout << "double:" << sizeof(f) << " byte " << 8*sizeof(f) << " bits" << endl;cout << "long double:" << sizeof(g) << "byte " << 8*sizeof(g) << " bits" <<endl;return 0;}3.定义一个数组,数据为:6,3,7,1,4,8,2,9,11,5.请创建一个向量,把数组的初值赋给它,然后对该向量求标准差(均方差):s=解答:#include <iostream>#include <vector>#include <cmath>using namespace std;int main(){int num[10] = {6, 3, 7, 1, 4, 8, 2, 9, 11, 5};vector<int> vnum(num, num+10);double ave, sum1 = 0, sum2 = 0, s;for(vector<int>::iterator it = vnum.begin(); it != vnum.end(); it++) {cout << *it << " ";sum1 += *it;}ave = sum1/10;for(int i = 0;i < 10;i ++)sum2 += pow((vnum[i] - ave), 2);s = sqrt(sum2/10);cout<<" 的标准差是:"<<s<<endl;return 0;}4.有一些日期,在文件abc.txt中,后面加*号的表示要加班的日期,试汇总每个月25号的天数,如果是加班日,则该天乘2。

c语言程序设计案例教程第二版答案

c语言程序设计案例教程第二版答案

c语言程序设计案例教程第二版答案篇一:C语言程序设计案例教程第3章参考答案C语言程序设计案例教程(第二版)廖湖声叶乃文周珺人民邮电出版社第三章习题参考答案习题3-1#include<tdio.h>#include<math.h>intmain(){inti,j,c=0;//c用来控制一行输出元素的个数for(i=2;i<100;i++)//判断从2到100之间那个数为素数{ for(j=2;j<=qrt(i);j++)//判断到i的平方根即可减少循环次数{ if(i%j==0)break;}if(j>qrt(i)){printf("%5d",i);c++;//每输出一个数计数器加1if(c%5==0)printf("\n");}}return0;}习题3-2#include<tdio.h>intmain(){inti,n;//n为从键盘上接收的数printf("请输入一个正整数:");canf("%d",&n);for(i=2;i<n;i++)//从2~n依次查找满足条件的数{if(n%i==0)//判断i是否为n的因子printf("%5d",i);}printf("\n");return0;}习题3-3#include<tdio.h>/某韩信点兵问题穷举法实例某/intmain(){intn;printf("假设韩信带兵在1000~10000人之间,则可能的人数为:\n");for(n=1000;n<10000;n++){if(n%5==1&&n%6==5&&n%7==4&&n%11==10)printf("%7d",n);}printf("\n");return0;}习题3-4#include<tdio.h>intmain(){inti,j,k,n;//i,j,k分别为水仙花数n的百位、十位、个位printf("所有的水仙花数为:");for(n=100;n<1000;n++)//对每个三位数进行分解、判断{i=n/100;j=n/10%10;k=n%10;if(n==i某i某i+j某j某j+k某k某k)//判断该三位数是否是其各位数立方和printf("%5d",n);}printf("\n");return0;}习题3-5#include<tdio.h>intmain()int=0,i=99;while(i>=1){=+i某(i+1)某(i+2);i=i-2;}printf("1某2某3+3某4某5+...+99某100某101=%d\n",);return0;}习题3-6#include<tdio.h>intmain(){inta,n,i,a,an;printf("请输入a和n的值:");canf("%d,%d",&a,&n);a=an=a;for(i=2;i<=n;i++)an=an某10+a;//计算第i项,即i个aa=a+an;//累加求和} printf("a+aa+aaa+...+aa...a=%d\n",a);return0;}习题3-7#include<tdio.h>intmain(){intn=1,i;printf("请输入猴子吃桃子的天数:");canf("%d",&i);while(i>1){n=(n+1)某2;i--;}printf("最初有%d个桃子\n",n);return0;}篇二:c语言程序设计教程(第2版)课后题及模拟题参考答案习题1.............................................................. .. (4)1-1填空题............................................................. . (4)1-2思考题............................................................. . (4)1-3编程题............................................................. . (5)习题2.............................................................. .. (6)2-1单选题............................................................. . (6)2-2思考题............................................................. (6)习题3.............................................................. .. (7)3-1选择题............................................................. . (7)题............................................................. (7)3-3编程题............................................................. (8)习题4.............................................................. .. (11)4-1单选题............................................................. . (11)4-2填空题............................................................. . (11)4-3编程题............................................................. (11)习题5.............................................................. .. (16)5-1单选题............................................................. (16)5-2填空题............................................................. (16)题............................................................. .. (16)习题6.............................................................. . (22)6-1单选题............................................................. . (22)6-2填空题............................................................. (22)6-3编程题............................................................. .. (22)习题7.............................................................. . (25)7-1单选题................... (25)7-2填空题............................................................. (25)7-3编程题............................................................. .. (25)习题8.............................................................. . (26)8-1单选题............................................................. (26)8-2填空题............................................................. (26)8-3编程题............................................................. .. (26)习题9............................................................... (30)9-1单选题.............................................................. . (30)9-2填空题.............................................................. . (30)9-3编程题.............................................................. (30)习题10............................................................. . (38)10-1单选题............................................................. .. (38)10-2填空题............................................................. . (38)10-3编程题............................................................. (38)习题11............................................................. .. (41)11-1单选题............................................................. (41)11-2填空题............................................................. (41)习题12............................................................. . (42)12-1单选题............................................................. (42)12-2填空题............................................................. . (42)实验篇............................................................. . (43)实验1熟悉ViualC++6.0可视化集成开发环境 (43)实验2顺序结构程序设计 (43)实验3选择结构程序设计 (43)实验4循环结构程序设计 (44)实验5函数............................................................. . (47)实验6数组............................................................. . (54)实验7指针............................................................. . (58)实验8结构体和共用体 (61)实验9文件............................................................. (63)实验10综合编程 (64)模拟试卷(一)参考答案 (65)模拟试卷(二)参考答案 (67)习题11-1填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{,}6./某,某/7.顺序结构,选择结构,循环结构8..c,.obj,.e某e1-2思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。

c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案一、简介C语言是一种广泛应用于科学计算、系统开发、嵌入式系统等领域的编程语言。

本文档为《C语言程序设计教程第二版》的课后答案,旨在帮助读者巩固所学知识。

二、基础知识回顾1. 数据类型和变量答案:C语言中常见的数据类型包括整型、浮点型、字符型和指针型等。

变量是用来存储数据的内存区域,通过给变量命名,我们可以在程序中使用这些变量。

2. 运算符和表达式答案:运算符用于进行操作,表达式是由变量、常量和运算符组成的可求值的结果。

C语言支持算术运算符、关系运算符、逻辑运算符等。

3. 控制结构答案:控制结构用于控制程序的流程,常见的控制结构有条件语句和循环语句。

条件语句可以根据判断条件的结果执行不同的语句块,循环语句可以重复执行一段代码。

4. 函数答案:函数是完成特定任务的一段代码,可以提高代码的可读性和复用性。

C语言中的函数由函数名、参数列表、返回值类型和函数体组成。

5. 数组和字符串答案:数组是相同类型数据的有序集合,可以通过下标访问数组中的元素。

字符串是由字符组成的数组,以空字符'\0'作为字符串的结束标志。

三、课后练习答案1. 编写一个C程序,计算并输出两个整数之和。

答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数之和为:%d\n", sum);return 0;}```2. 编写一个C程序,判断一个数是否为素数。

答案:```c#include <stdio.h>int isPrime(int num) {int i;for(i=2; i<=num/2; i++) {if(num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if(isPrime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}```四、总结本文对《C语言程序设计教程第二版》的课后习题进行了答案的整理,涵盖了基础知识回顾以及两个练习的答案。

c程序设计(第二版)课后习题答案

c程序设计(第二版)课后习题答案
2
C 语言程序设计(第二版) 课后习题参考答案
putchar(c2);//将变量 c2 的值输出 printf("\n"); printf("%c%c\n",c1,c2);//用 printf 输出 c1、c2 的值 printf("%d,%d\n",c1,c2);//输出 c1,c2 的 ASCII 码 } 第四章 【习题 4.5】 /*有三个整数 a,b,c,由键盘输入,输出其中最大的数,请编程序。*/ /*变量:三个整数 a、b、c,中间变量 t,最大值 max*/ #include<stdio.h> void main() { int a,b,c,t,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); t=a>b?a:b;//比较 a 与 b 的大小,将大者赋给中间变量 t max=t>c?t:c;//比较 t 与 c 的大小,将大者赋给最大值 max printf("the max is:\n"); printf("%d\n",max); } 【习题 4.6】 /*给出一百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。90 分以上为'A',80~89 分为 'B',70~79 分为'C',60~69 分为'D',60 分以下为'E'。*/ #include<stdio.h> void main() { int score; printf("please input the score:(0-100)\n"); scanf("%d",&score); if(score>=90&&score<=100) printf("A");//如果成绩大于 90 分,输出 A else if(score>=80&&score<=89) printf("B");//如果成绩在 80~89 之间,输出 B else if(score>=70&&score<=79) printf("C");//如果成绩在 70~79 之间,输出 C else if(score>=60&&score<=69) printf("D");//如果成绩在 60~69 之间,输出 D else printf("E");//成绩小于 60 分时,输出 E printf("\n"); } 【习题 4.7】 /*给一个不多于 5 位的正整数,要求:(1)求出它是几位数;(2)分别输出每一个数字;(3)按 逆顺序输出各位数字,例如原数为 321,应输出 123.*/ /*变量:正整数 x、万位数 a、千位位数 b、百位数 c、十位数 d、个位数 e*/ #include <stdio.h>

C程序设计(第二版)答案

C程序设计(第二版)答案

第三章3.3请将下面各数用八进制和十六进制(补码)表示:(1)10 (2)32 (3)75 (4)-617 (5)-111(6)2483 (7)-28654 (8)210033.5 字符常量与字符串常量有什么区别?3.6 写出以下程序运行的结果。

main( ){ char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c%c”,c4,c5);}3.7 要将”China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。

例如,字母”A”后面第4个字母是”E”,用”E”代替”A”。

因此,”China”应译为”Glmre”。

请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

3.8 例3.6能否改成如下:main( ){ int c1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);}3.9 求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.53.10 写出程序运行结果main( ){ int i,j,m,n;i=8;j=10;m=++I;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);}3.12写出下面表达式运算后a的值,设原来a=12。

设a和已定义为整型变量。

(1)a+=a (2)a-=2(3)a*=2+3 (4)a/=a+a(5)a%=(n%=2), n的值等于5 (6)a+=a-=a*=a第四章4.3 C语言为什么要把输入输出的功能作为函数,而不作为语言的基本部分?4.4 若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。

c语言程序设计教程第二版课后习题答案.doc

c语言程序设计教程第二版课后习题答案.doc

c 语言程序设计教程第二版课后习题答案【篇一:c 语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2 .填空题(1)函数(2)主函数(main )(3)printf() ,scanf()第2 章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题(1)1(2)26 (3)6 ,4 ,2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0) (16)double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b)) (19)sqrt((x*x+y*y)/(a+b))第3 章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题(1)用;表示结束(2){ } (3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果(1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11)i=6 ,k=4 (12)1,-2 4 .程序填空(1)x:y ,u :z(2)m=n ,m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf( n”“,%2*l s f)(4)m%5==0 ,printf( “%n d”,k)(5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5 .编程题(1).#include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2). #includestdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3). #include stdio.h int main() {int y,m,d,flag,s=0,w,i; scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) { switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0) printf( 星期日\n); elseprintf( 星期%d\n,s); return 0; }(4).#include stdio.h int main() { float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01;printf(%f\n,r); return 0; } (5).#include stdio.h int main() { char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf( 输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) { printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; } printf(%u\n,t); return 0; }第4 章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2 .填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2 (5)求水仙花数(6)-5*5*5 (7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) ,x+y,x-y, z+y,z-y (2)x ,x*x+1(3)s=0 , a=a+b 5 .编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p;scanf(%u,s); } printf(%u\n,fun(s)); (2).return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsignedint p=0; void f2(float,float,float,float);【篇二:《c 语言程序设计》课后习题答案(第四版)谭浩强】t>1.1 什么是计算机程序 11.2 什么是计算机语言 11.3c 语言的发展及其特点 31.4 最简单的 c 语言程序 51.4.1 最简单的 c 语言程序举例 61.4.2c 语言程序的结构101.5 运行c 程序的步骤与方法121.6 程序设计的任务141-5 #include stdio.h int main( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n); return 0;}1-6#include stdio.h int main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c); max=a; if (maxb)max=b; if (maxc) max=c;printf(the largest number is %d\n,max); return 0;}第2 章算法——程序的灵魂162.1 什么是算法162.2 简单的算法举例172.3 算法的特性212.4 怎样表示一个算法222.4.1 用自然语言表示算法222.4.2 用流程图表示算法222.4.3 三种基本结构和改进的流程图262.4.4 用n?s 流程图表示算法282.4.5 用伪代码表示算法312.4.6 用计算机语言表示算法322.5 结构化程序设计方法34习题36第章最简单的 c 程序设计——顺序程序设计37 3.1 顺序程序设计举例373.2 数据的表现形式及其运算393.2.1 常量和变量393.2.2 数据类型423.2.3 整型数据443.2.4 字符型数据473.2.5 浮点型数据493.2.6 怎样确定常量的类型513.2.7 运算符和表达式523.3c 语句573.3.1c 语句的作用和分类573.3.2 最基本的语句——赋值语句593.4 数据的输入输出65 3.4.1 输入输出举例653.4.2 有关数据输入输出的概念673.4.3 用printf 函数输出数据683.4.4 用scanf 函数输入数据753.4.5 字符数据的输入输出78 习题823-1 #include stdio.h#include math.hint main() {float p,r,n;r=0.1; n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint 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 年期。

C语言 2版 课后答案 三章

C语言 2版 课后答案 三章
于 3,则左端补空格,如果变量实际位数大于 3,则按实际长度输出,不受限制。
ww ②%-3d 为左对齐输出变量,在输出变量时,如是变量实际位数小于 3,则在右端补空格,
否则按实际输出。

3

院 ★设有“int a=255,b=8;”,则“printf("%x,%o\n",a,b);”输出是___。

main() {

float r,l,area;
printf("Input a positive:");
scanf("%f",&r);
l=2*PI*r;
area=PI*r*r;
printf("l=%f\tarea=%f\n",l,area);
}
9 输入任意一个 3 位数,将其各位数字反序输出(例如输入 123,输出 321)。
坛 论
院 oddcount==2?printf("YES"):printf("NOT");
}

范 11 求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并按 ASCII 码值,
师 按从大到小的顺序输出这 3 个字符及其对应的 ASCII 码值。


绵 本题考查同学们对字符类型数据的认识,如果在 ASCII 范围内则即可以显示为字符,又可
答 #include"math.h" /*由于程序中使用了开平方函数 sqrt(),所以需要包含数学头文件*/
main()
n { c float a,b,c,s,area; . int ok=0; s printf("Input a,b,c:"); b scanf("%f,%f,%f",&a,&b,&c); b a+b>c?ok++:0; /*以下 3 条语句为判断是否输入的数据是否构成封闭三角形*/ u a+c>b?ok++:0; n b+c>a?ok++:0; m ok==3?(s=(a+b+c)/2,area=sqrt(s*(s-a)*(s-b)*(s-c)),printf("area=%f",area)):printf("error"); . getch(); www }

C程序设计教程——设计思想与实现习题解答钱能

C程序设计教程——设计思想与实现习题解答钱能

二#include <>void main(){ .#include <> #include <> doubleCylinder(double r, double h); voidmain(){double radius, height;cout <<"请输入圆柱体的半径和高:\n";cin >>radius >>height;double volume = Cylinder(radius, height);cout <<"该圆柱体的体积为" <<volume <<endl;}double Cylinder(double r, double h){return r*r*M_PI*h;}三(1) sqrt(pow(sin(x),)(2) (a*x+(a+x)/(4*a))/2pow(c,x*x)/sqrt(2*M_PI) n"; break; case 1: cout <<"只能被 7 整除.\n"; break; case 2: cout <<"只能被 5 整除.\n"; break; case 3: cout <<"可以被 5,7 整除.\n";break; case 4: cout <<"只能被 3 整除.\n"; break; case 5: cout <<"可以被 3,7 整除.\n"; break; case 6: cout <<"可以被 3,5 整除.\n"; break;case 7: cout <<"可以被3,5,7整除.\n"; break; }}#include <>void main(){int grade; cout <<"please input a number:\n"; cin >>grade; if(grade>100||grade<0)cout <<"错误的成绩.\n";else if(grade>=90)cout <<"A.\n"; elseif(grade>=80) cout<<"B.\n"; elseif(grade>=70) cout<<"C.\n"; elseif(grade>=60) cout<<"D.\n"; elsecout <<"E.\n";}四1#include <> #include <>void main(){double sum=1, t=-1, x; int i=1; cout<<"please input a value:\n"; cin >>x;do{ t*=(-1)*x/i; sum+=t;i++; }while(fabs(t)>1e-8);cout <<"sum=" <<sum<<endl;}2#include <>#include <> void main(){double sum=1, t=-1, x; cout<<"please input a value:\n"; cin >>x;int i=1; while(fabs(t)>1e-8){ t*=(-1)*x/i; sum+=t; i++; } cout<<"sum=" <<sum<<endl;3#include <> #include <>void main(){double sum=1, t=-1, x; cout<<"please input a value:\n"; cin >>x;for(int i=1; fabs(t)>1e-8; i++){t*=(-1)*x/i; sum+=t; } cout<<"sum=" <<sum<<endl;}#include <>void main(){long sum=0, t=1; for(int i=1;i<=15; i++){ t*=i; sum+=t; }cout <<"sum=" <<sum <<endl;}#include <>void main(){for(int i=1; i<=9; i++) for(int j=0; j<=9; j++) for(int k=0; k<=9; k++) if(i*i*i+j*j*j+k*k*k == 100*i+10*j+k)cout <<(100*i+10*j+k) <<"是水仙花数.\n";}#include <>void main(){for(int i=1; i<1000; i++){ int sum=0; for(int j=1; j<=i/2; j++) if(i%j==0) sum+=j;if(sum==i) cout <<i<<"是完数.\n";}#include <>void main(){float s=100,h=100;for(int i=1; i<10;i++){ s+=h; h/=2;}cout <<"共经过" <<s <<"米第 10 次反弹" <<h <<"米高.\n"; }#include <> void main(){ int peachs=1;for(int i=1;i<10; i++)peachs=(peachs+1)*2;cout <<"第一天共摘下" <<peachs <<"个桃子.\n"; }#include <> #include <>void main(){double x, a; cout <<"please input avalue:\n"; cin >>a; x = a/2;while(fabs((x-a/x)/2)>1e-7)x=(x+a/x)/2;cout <<a <<"的平方根是" <<x <<endl;}1#include <>void main(){for(int i=1; i<=10;i++){ for(int j=1; j<=10-i; j++)cout <<" "; for(int j=1; j<=2*i-1; j++) cout <<"#"; cout<<endl;}}2#include <>void main(){ for(int i=1; i<=8; i++){ for(intj=1; j<=i; j++) cout <<" ";for(int j=1; j<=18-i; j++)cout <<"#"; cout <<endl;}}1#include <> #include <>void main(){cout <<" *"; for(inti=1; i<=9; i++) cout<<setw(4) <<i;cout <<"\n-----------------------------------------\n"; for(int i=1; i<=9; i++){ cout <<setw(3) <<i; for(int j=1; j<=9; j++) cout <<setw(4) <<i*j; cout <<endl;}}2#include <> #include <>void main(){cout <<" *"; for(inti=1; i<=9; i++) cout<<setw(4) <<i;cout <<"\n-----------------------------------------\n"; for(int i=1; i<=9; i++){ cout <<setw(3) <<i; for(int j=1; j<=i; j++) cout <<setw(4) <<i*j; cout <<endl;}}3#include <> #include <>void main(){ cout <<" *";for(int i=1;i<=9; i++)cout <<setw(4)<<i;cout <<"\n-----------------------------------------\n";for(int i=1; i<=9; i++){ cout <<setw(3) <<i;if(i!=1)cout <<setw(4*i-4) <<" ";for(int j=i; j<=9; j++) cout<<setw(4) <<i*j; cout <<endl;}}#include <>void main(){ int n; long a=1, b=1, c=1, temp;cout <<"please input a value:\n";cin >>n; for(int i=4; i<=n;i++){ temp=a+c; a=b; b=c; c=temp;} cout << c <<endl;}五#include <> #include <>#include <> boolisprime(long n);void main(){.}.}(2) <<a[i] <<" boy has won.\n"; <<a[i] <<" boy has won.\n"; n";cout <<"please select following operation:\n"; cout <<"\t\tstop at once! ----- 1\n"; cout<<"\t\tinput again. ------- 2\n"; cout <<"\t\tas default values -- 3\n\n"; int sele=0; cin >>sele; switch(sele){ case 1: return false; case 2: sign=false; break; case 3: num=10; interval=3; return true;}(3)#include <> const size=10; voidfindmax(int* a, int n, int& pk); voidmain(){ int a[size];int n=0;cout <<"please input " <<size <<"datas:\n";for(int i=0; i<size; i++) cin >>a[i]; findmax(a,size,n); cout <<"the maximum is "<<a[n] <<endl<<"It's index is " <<n <<endl;}void findmax(int* a,int n,int& pk){ for(int i=1; i<n; i++)if(a[i]>a[pk])pk=i;}9_2#include <> #include <>int& put(int n); .put(9)=30;cout <<get(0) <<endl; cout<<get(1) <<endl;cout <<get(9) <<endl; put(12)=1; .}int& put(int n){if(n>=10){ cerr <<"range error in putvalue!\n";exit(1); }return vals[n];}int get(int n){if(n>=10){ cerr <<"range error in getvalue!\n"; exit(1); } return vals[n];}#include <>void Swap(char*& str1, char*& str2);void main(){char* ap="hello"; char* bp="howare you?"; cout <<ap <<endl <<bp<<endl; Swap(ap, bp); cout <<"交换以后:\n"; cout <<ap <<endl<<bp <<endl;}void Swap(char*& str1, char*& str2){ char* temp=str1;str1=str2;str2=temp;}一○#include <> structStudent{ intmathmidterm;int mathfinal;};void main(){Student s;cout <<"please input midterm and final math\n" <<"grade of a student:\n"; cin >> >>;cout <<"the average grade of midterm and final math is " << + / <<endl;}10_2#include <> #include<> struct Node{ charstr[20]; Node* next;};void Insert(Node*& head); voidmain(){Node* p;Node* x=new Node;strncpy(x->str,"hello",20);x->next = NULL; p =x; x=newNode;strncpy(x->str,"jone",20);x->next = p; p=x;x=new Node;strncpy(x->str,"good",20);x->next = p; p=x;x=new Node;strncpy(x->str,"better",20); x->next =p; p=x; cout <<"\n 插入之前:\n";for(Node* pT=p; pT; pT=pT->next) cout <<pT->str <<"->"; cout <<"0\n"; Insert(p);cout <<"\n 插入之后:\n"; for(Node*pT=p; pT; pT=pT->next) cout <<pT->str <<"->";cout <<"0\n";}void Insert(Node*& head){Node* p=new Node;strncpy(p->str,"marit",20);head->str[19]='\0';if(!head){ head = p;p->next = NULL; return; }if(!strcmp(head->str,"jone")){ p->next = head; head= p; return; } Node* sp;for(sp=head; sp->next&& strcmp(sp->next->str,"jone"); sp=sp->next); p->next = sp->next;sp->next = p;}10_3#include <> struct Node{char c;Node* next;};Node* reverse(Node* head);void main(){Node x[4]; for(int i=0; i<4;i++){ x[i].c='A'+i; cout <<x[i].c <<"->";x[i].next = &x[i+1]; } cout <<"NULL"<<endl; x[3].next = NULL; Node* head =reverse(x); for(Node* pH=head; pH;pH=pH->next) cout <<pH->c <<"->"; cout<<"NULL" <<endl;}Node* reverse(Node* head){Node* newHead=NULL; for(Node*pT=head; pT;pT=head){ head=head->next;pT->next = newHead; newHead = pT; }return newHead;}10_4 (1) #include <>struct Lnode{double data; Lnode*next;};void ShowList(Lnode* head){ for(Lnode* p=head; p; p=p->next) cout <<p->data <<endl;}void AddToEnd(Lnode* pnew, Lnode*& head) {if(!head)head=pnew; else{Lnode* p; for(p=head; p->next;p=p->next); p->next = pnew;}pnew->next=NULL;}Lnode* GetNode(){Lnode* item = new Lnode;if(item){ item->next=NULL;item->data=; }else cout<<"Nothing allocated\n"; return item;}void main(){Lnode* head=NULL; Lnode* temp; double d; cout <<"data? "; cin >>d; while(d>0&&(temp=GetNode())){ temp->data=d; AddToEnd(temp, head); cout <<"data? "; cin >>d; }ShowList(head);}(2) data?3 data? 5data? 7data? 6data? 4data? 8data? -3357648(3)#include <>struct Lnode{double data; Lnode*next;};void ShowList(Lnode* head); void AddToEnd(Lnode* pnew, Lnode*& head); Lnode* GetNode(); void DeleteList(Lnode* head); void main(){Lnode* head=NULL; Lnode* temp;double d; cout <<"data? "; cin >>d;while(d>0&&(temp=GetNode())){ temp->data=d; AddToEnd(temp, head);cout <<"data? "; cin >>d; }ShowList(head);DeleteList(head);}void ShowList(Lnode* head){ if(head){cout<<head->data<<endl;if(head->next)ShowList(head->next);n";();}11_3#ifndef DATE#define DATE #include<> class Date{ public:void Display(); void AddOneDay(); void SetDay(inty,int m,int d); protected: boolLegal(int y, int m, int d); boolIsLeapYear(int y); int year; intmonth; int day;};void Date::Display(){cout <<day <<"/" <<month <<"/" <<year <<endl;}void Date::AddOneDay(){if(Legal(year,month,day+1)) day++;else if(Legal(year,month+1,1))month++,day=1;else if(Legal(year+1,1,1))day=1,month=1,year++;}void Date::SetDay(int y, int m, int d){if(Legal(y,m,d))day=d, month=m, year=y;}bool Date::Legal(int y, int m, int d){if(y>9999||y<1||d<1||m<1||m>12)return false; int dayLimit=31;switch(m) case 4: case 6: case 9: case 11: dayLimit--; if(m==2) dayLimit = IsLeapYear(y) ? 29 : 28;return (d>dayLimit)? false : true;}bool Date::IsLeapYear(int y){return !(y%4)&&(y%100)||!(y%400);}#endif11_4 #include ""void main(){Time a;(3,32,48);();}11_5#include <> #include ""void main(){Stack sta;(10); (12); (14); cout<<() <<endl; cout <<()<<endl;}n";}n"; exit(1); } int result = head->a; Node* p = head; head = head->next; delete p; return result;}Constructing with a number: 20Display a number: 1Display a number: 20Destructing. Destructing.12_2 ,"Revere","CA","12290"); ();("Richard Voss"); ();}物质一三13_1生物有机物动物哺乳人动物类猿类猫科类...卵生动物植物非生物无机物13_2Ignore一四14_1Multi[0] is:0Multi[1] is:1 Multi[2]is:4 Multi[3] is:9Multi[4] is:16 Multi[5]is:25 Multi[6] is:36Multi[7] is:49 Multi[8]is:64Multi[9] is:81 Destroying..9Destroying..8Destroying..7Destroying..6 Destroying..5 Destroying..4 Destroying..3 Destroying..2 Destroying..1 Destroying..014_2#include <> #include <> class Vector{ public: Vector(ints=100); Vector(const Vector& v); int& Elem(int ndx); void Display(); voidSet(); ~Vector(); protected:int size; int* buffer;};Vector::Vector(int s){buffer=new int[size=s]; for(inti=0; i<size; i++)buffer[i]=i*i;}Vector::Vector(const Vector& v):size {buffer = new int[size]; for(inti=0; i<size; i++)buffer[i] = [i];}int& Vector::Elem(int ndx){if(ndx<0||ndx>=size){ cout<<"error in index" <<endl;exit(1);} return buffer[ndx];}void Vector::Display(){ for(int j=0; j<size; j++)cout <<buffer[j] <<endl;}void Vector::Set(){ for(int j=0; j<size; j++)buffer[j]=j+1;}Vector::~Vector(){ delete[]buffer; }void main(){Vector a(10); Vectorb(a); ();();}14_2.\n"; (6);cout <<"Creating boots from frisky\n"; CATboots(frisky);cout <<"frisky's age:" <<() <<endl; cout<<"boots'age:" <<() <<endl; cout <<"setting frisky to 7...\n"; (7);cout <<"frisky's age:" <<() <<endl;cout <<"boots'age:" <<() <<endl;}一五15_1 (1)Return\n"<<"1. Savings business\n"<<"2. Checking business\n\n"<<"select : "; cin >>sele;if(sele==1||sele==2) DoAccess(sele);if(sele==0) break; } Return\n"<<"1. Fetching\n"<<"2. Saving\n\n"<<"select : "; cin >>sele;if(sele==1||sele==2)if(s==1) DoSavings(sele);elseDoChecking(sele);if(sele==0) break; }Return\n"<<"1. Savings business\n"<<"2. Checking business\n"<<"3. Credit business\n\n"<<"select : "; cin >>sele;if(sele>=1 && sele <=3) DoAccess(sele); }Account* p=Account::First(); Return\n"<<"1. Fetching\n"<<"2. Saving\n\n" <<"select : ";cin >>sele; if(sele!=1 && sele!=2)continue; switch(type){ case1: DoSavings(sele); break; case 2:DoChecking(sele); break;case 3: DoCredit(sele); break;}}}void DoSavings(int access){unsigned aN; float val; if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val; } }}void DoChecking(int access){unsigned aN; floatval;if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val; } }}void DoCredit(int access){unsigned aN; floatval;if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val; } }}16_5#include <>#include "i:\c++答案\ch16\" #include "i:\c++答案\ch16\"#include "i:\c++答案\ch16\"#include "i:\c++答案\ch16\16_4\"#include ""void DoSavings(int access);void DoChecking(int access);void DoAccess(int type); voidDoCredit(int access);void DoFixed(int access);void main(){ int sele=1;while(sele){cout <<"\nbank management\n\n" <<"0. Return\n"<<"1. Savings business\n"<<"2. Checking business\n"<<"3. Credit business\n"<<"4. Fixed business\n\n"<<"select : ";cin >>sele;if(sele>=1 && sele <=4) DoAccess(sele);}Account* p=Account::First(); Return\n"<<"1. Fetching\n"<<"2. Saving\n\n"<<"select : "; cin >>sele;if(sele!=1 && sele!=2) continue;switch(type){case 1: DoSavings(sele); break; case 2: DoChecking(sele); break; case 3: DoCredit(sele); break; case 4: DoFixed(sele);}}}void DoSavings(int access){unsigned aN; float val; if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val; } }}void DoChecking(int access){unsigned aN; floatval;if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val; } }}void DoCredit(int access){unsigned aN; floatval;if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n"; cin >>aN >>val; } }}void DoFixed(int access){unsigned aN; floatval;if(access==2){ n";cout <<"\nplease input a account number and amount for fetching(input 0 for end):\n";cin >>aN >>val;}}}一七classA{ public:int GetpA(){ return pA; }void SetpA(int a){ pA=a; }private: int pA;};class B :public A{ public:void OnB(){}};class C :virtual public A, virtual public B{ public:Sc(){ /*use GetpA() and SetpA()... */ }};#include <>#include <>class Father{ public:Father(){ cout <<"father is created.\n"; }v oid DoWork(){ DriveACar(); } voidDoMannulWork(){ RepairTV(); }void DriveACar() { cout <<&typeid(*this).name()[6] <<" Drive a car.\n"; } protected:void RepairTV() { cout <<&typeid(*this).name()[6] <<" Repair a TV set.\n"; }};class Mother{ public:Mother(){ cout <<"mother is created.\n"; }void SingASong() { cout <<&typeid(*this).name()[6] <<" Sing a song.\n"; }void DoWork(){ SingASong(); } ame()[6] <<" Do mannul work.\n"; } n"; } void RepairTV(){ cout <<"boy "; Father::RepairTV(); } voidSingASong(){ cout <<"boy "; Mother::SingASong(); }void PlayPingPong() { cout <<&typeid(*this).name()[6] <<" Play pingpong.\n"; };};void main(){Father father;Mother mother;Boy boy;(); ();();(); ();();();();}n";return *this;}yuan-=( (jf< ?1:0); jf=(jf+%100;return *this;}RMB RMB::operator*(double d)const{double temp=(yuan+jf/*d; unsigned y= long(temp); unsigned j = ((temp-y)*1000+5)/10;return RMB(y,j);}RMB operator*(double d, const RMB& r){ return r * d; }void main(){RMB d1(1, 60);RMB d2(2, 50);RMB d3(0, 0); d3= d1 + d2; d1+= d3; d3 -= d2;();();}一九#include <> #include <>void main(){char str[128]; intcount=0; ifstreamfin(""); (str,sizeof(str));while(!()){ count++;(str,sizeof(str));}cout <<"the amount of lines of file is " <<count <<endl; }19_2#include <> #include<> class RMB{ public:RMB(double v =:yuan(v){ jf =(v-yuan)*100+; }operator double(){ return yuan+jf/; } voiddisplay(ostream& out){int n=1; .for(int x=yuan; x/10; x/=10) n++;if(n>5){ out <<"*******.**"; return; }double t=yuan+jf/;out <<setw(7-n) <<"" <<setiosflags(ios::fixed)<<setprecision(2) <<setw(n+3) <<t;}protected:unsigned int yuan;unsigned int jf;};ostream& operator <<(ostream& oo, RMB& d){(oo);return oo;}void main(){RMB rmb;cout <<"Initially rmb = " <<rmb <<"\n"; rmb=*rmb;cout <<"then rmb = " <<rmb <<"\n";}19_3#include <> #include <>void main(){ int n;char string[]="1 2 3 4 5 6 7 8 9"; istrstreams(string);while(!()){ s >>n;cout <<n<<" ";}cout <<endl;}19_4#include <> #include <>void main(){cout <<setiosflags(ios::uppercase); for(charch='A'; ch<='Z'; ch++){ cout <<ch <<" " <<hex<<(int)ch <<", "; if(ch=='I'||ch=='R') cout<<endl;} cout<<endl;}19_5#include <> #include <>#include <>#include <>class AddressBook{ public:AddressBook(char* n, char* p, char* h);virtual void Display(ostream& out);protected: char name[20]; char phone[10];char handp[15];};AddressBook::AddressBook(char* n, char* p, char* h) {strncpy(name, n, 19); name[19]=0; strncpy(phone, p,9); phone[9]=0;strncpy(handp, h, 14); handp[14]=0;}void AddressBook::Display(ostream& out){out <<setiosflags(ios::left) <<setw(20) <<name <<setw(10) <<phone <<setw(15) <<handp <<endl; }ostream& operator<<(ostream& out, AddressBook& a){(out);return out;}void main(){AddressBook a1("Dill Arnson", "8869533", ""); AddressBook a2("WelchShammas", "6695482", ""); AddressBook a3("Portel Braumbel", "5937221","");cout <<a1; cout<<a2; cout <<a3;}Dill Arnson 8869533Welch Shammas 6695482 Portel Braumbel 5937221二○20_1#include <> #include <>template<class T> Tmin(T& a, T& b){return a>b?b:a;}char* min(char* a, char* b){return (strcmp(a, b)>0 ? b: a);}void main(){cout <<min("Hello", "Good") <<endl; cout <<min(3,8) <<endl;}20_2 #include <>template<class T> classStack{ public: Stack();~Stack(){ delete[] stack; }void Push(T& n); T Pop(); private: static const int SIZE;T* stack; int tos;};template<class T>const int Stack<T>::SIZE = 100;template<class T> Stack<T>::Stack() :tos(0){stack = new T[SIZE];}template<class T> voidStack<T>::Push(T& n){if(tos==100) return;stack[tos++] = n;}template<class T> TStack<T>::Pop(){if(tos==0) return T(0);return stack[--tos];}void main(){Stack<int> ai; Stack<char>ac;Stack<float> af;int i[3]={3,5,7};(i[0]); (i[1]);(i[2]);char c[3]={'2','5','9'}; (c[0]);(c[1]); (c[2]);float f[2]={,}; (f[0]); (f[1]);cout <<() <<" "; cout <<()<<" "; cout <<() <<endl;cout <<() <<" "; cout <<()<<" "; cout <<() <<endl;cout <<() <<" ";cout <<() <<" " <<endl;}二一ch21_1 #include <>#include <>class String{ public: String(char*, int); i nt Length(){ return len; } class Range{ n";}n\n";}void main(){n";}#include <> classA{ public:class Error{};A(){n = new int;i nit();}private: int*n; void init(){. throw Error();}};void main(){try{ A a; } catch(A::Error&){ cout <<"error when initialize.\n";}}。

C#程序设计教程(第2版)课后习题 完全版

C#程序设计教程(第2版)课后习题 完全版

C#复习较完全版第一章.Net与C#一、选择题1.CLR是一种运行环境2.C#语言源代码文件的后缀名为CS3.构建桌面应用程序需要.NET提供的类库是Windows Form4.与C++等语言相比,C#中增加的一个类成员访问修饰符是internal5.C#中导入某一命名空间的关键字using6.C#中程序的入口方法名是Main……二、简答题1.简述C#、CLR和.NET之间的关系答:.NET是一个运行时平台,CLR是.NET框架的底层。

C#是.NET的核心开发语言2.简述C#语言的主要特性答:简单性(无指针);现代性(异常处理跨语言);面向对象(封装,继承和多态);类型安全性;版本处理技术;兼容性;灵活性3.什么是.NET框架?简述.NET框架的结构P3 图1-14.简述.NET应用程序的编译过程。

答:各种.NET应用程序,通过被编译成中间语言(IL),经过JIT(Just In Time)编译器再次将IL编译形成机器码。

5.常用的命令按钮、标签、文本框等控件在哪个工具箱中?答:“所有Windows窗体”。

6.C#可以开发哪些类型的应用程序?……7.简述控制台方式和Windows应用程序方式调试程序的优缺点,各自适合的场合答:一般来说控制台方式用于在dos状态下打印输出程序结果的,优点是程序执行效率较高,而windows应用程序一般用于开发窗体应用程序或者系统的,优点是功能比较强大,代码执行效率相对来说较慢。

第二章 C#编程基础一、选择题1.C#中的值类型包括三种,它们是简单类型、枚举类型、结构类型。

(C)2.枚举类型是一组命名的常量集合,所有整型都可以作为枚举类型的基本类型,如果类型省略,则约定为int 。

(C)3.C#的引用类型包括类、接口、数组、委托、object和string。

其中object(是所有值类型和引用类型的)根类。

(D)4.浮点常量有三种格式,0.618034,0.618034D,6.1834E-1浮点常数都属于double类型。

C程序设计教程第二版钱能学习笔记

C程序设计教程第二版钱能学习笔记

第一部分基础编程(The Basic Programming)概述(Introduction)1、过程化程序设计(Procedural Programming):程序(Programs):=算法(Algorithms)+数据结构(Structures)(大型软件主要是Struct 之间的组合)描述问题只需3种基本控制语句:顺序、选择、循环。

每个模块,其内聚性(aggregation)越强,外联型(association)越小,则模块独立性越好。

2、对象化程序设计(Objectified Programming):程序(Programs):=算法(Algorithms)+抽象数据类型(ADS:Abstract Data Structure)。

这里的程序便可形成一种称之为类(Class)的对问题的描述;程序(Programs):=(对象(Object),对象(Object),…)。

这样就适应问题跨度更大,抽象层析更高,编程模块更加灵活高效。

第1章基本编程语句(Basic Programming Statements)1、C++的基本编程语句包括:说明语句、复制语句、表达式语句和过程控制语句,其中过程控制语句又包括:顺序语句、选择语句和循环语句。

注:这里,不考虑跳转语句(goto),goto的使用,不太适合过程化的思想。

2、在C/C++中,要将计算的结果保存在存储空间就必须指出存储空间的位置:在C/C++中,存储数据的名称有两种:①成为变量(或常量),是C\ C++内部数据类型定义而产生的。

②对象(或常对象),由程序员定义的类(Class)而产生的。

说明语句又分为:声明(Declarative)和定义(Definition)如果要在之前的程序中使用该程序之后定义的变量、对象或函数,则应该在程序之前对之后的部分进行声明,或者在其他文件中使用,亦如此。

变量的初始化与赋值。

3、条件表达式:()?表达式1:表达式2是C/C++唯一的三元操作符,表示括号()中德条件满足,执行表达式1,不满足,执行表达式2。

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案第一章:C语言基础1. 以下为C语言的特点:- C语言是一种结构化编程语言,可以通过模块化的方式构建复杂的程序。

- C语言具有较高的可移植性,可以在不同的操作系统和硬件平台上运行。

- C语言提供了丰富的库函数,方便开发者进行程序开发。

- C语言对指针的支持较好,可以进行底层的内存操作。

2. C语言中的标识符规则:- 标识符由字母、数字和下划线组成,且第一个字符不能是数字。

- 标识符区分大小写,因此变量名"num"和"Num"是不同的。

- 标识符不能与关键字重名,如"if"、 "for"等。

- 标识符长度一般不超过32个字符。

3. 在C语言中,预处理指令的作用是在程序编译之前对代码进行处理,包括宏展开、文件包含等。

预处理指令以"#"开头,常见的预处理指令有:- #include:用于包含头文件,将头文件中的内容插入到当前文件中。

- #define:用于定义宏,将宏名称替换为指定的值或代码片段。

- #ifdef、#ifndef、#endif:用于条件编译,根据条件是否成立来选择性地编译代码。

4. C语言中的数据类型分为基本数据类型和派生数据类型两种。

基本数据类型包括整型、浮点型、字符型和布尔型,派生数据类型包括数组、指针、结构体和共用体。

5. C语言中的运算符主要分为算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符等。

算术运算符用于执行加减乘除等基本算术操作,关系运算符用于比较两个值的大小关系,逻辑运算符用于组合多个条件的判断结果,位运算符用于对二进制位进行操作,赋值运算符用于将右侧的值赋给左侧的变量。

第二章:C语言程序结构1. C语言程序结构由函数、语句和注释组成。

每个C语言程序至少包含一个main()函数,作为程序的入口。

2. 以下为C语言程序的基本结构:```c#include <stdio.h>int main() {// 程序代码return 0;}```3. C语言中的控制语句包括条件语句和循环语句。

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案【篇一:c语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main)(3)printf() , scanf()第2章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2.填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6(5)3.000000 (6)双精度(double)(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10)%10)*100+(m/100)*10+m%10(12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16)double (17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))第3章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2.填空题(1)用;表示结束(2){ }(3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0(5)上面未配对(6)default 标号(7)while , do while , for(8)do while(9)本次(10)本层 3.阅读程序,指出结果(1)yes(2)*(3)abother(4)28 70(5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12(11)i=6,k=4 (12)1,-2 4.程序填空(1)x:y , u:z(2)m=n , m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,k) (5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5.编程题(1). #include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2).#include stdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3).#include stdio.h int main() {int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) {switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0)printf(星期日\n); elseprintf(星期%d\n,s); return 0; }(4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } (5).#include stdio.h int main() {char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf(输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; }printf(%u\n,t); return 0; }第4章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行 3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5(7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) , x+y,x-y, z+y,z-y (2)x , x*x+1 (3)s=0 , a=a+b 5.编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p; scanf(%u,s); } printf(%u\n,fun(s)); (2). return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《c语言程序设计》课后习题答案(第四版)谭浩强】t>1.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运行c程序的步骤与方法121.6程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}1-6#include stdio.hint main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c);max=a;if (maxb)max=b;if (maxc)max=c;printf(the largest number is %d\n,max);return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用n?s流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的c程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c语句573.3.1c语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include stdio.h#include math.hint main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint 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); // 存活期存款。

《C汇编语言程序设计》课后答案(第二版)-2007

《C汇编语言程序设计》课后答案(第二版)-2007

附录:《IBM—PC汇编语言程序设计》习题参考答案第一章.习题1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。

(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=0 1.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216;(2) FFH表示的带符号数为-1,FFH表示的无符号数为255。

C程序设计(第二版)习题解答

C程序设计(第二版)习题解答

4.4 若 a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765, c1=’a’ ,c2=’b’ 。想得到以下的输出格式和结果,请写出程序(包括定义变 量类型和设计输出) 。 要求输出的结果如下: a=□3□□b=□4□□c=□5 x=1.200000,y=2.400000,z=-3.600000 x+y=□3.60□□y+z=-1.20□□z+x=-2.40 u=□51274□□n=□□□128765 c1=’a’ □or□97(ASCII) c2=’b’ □or□97(ASCII) 4.5 请写出下面程序的输出结果: #include "stdio.h" main( )
2
2 -2 0 2
-2
6.1 输入两个正整数 m 和 n,求其最大公约数和最小公倍数。 6.2 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
n个a aa aaa aa a 之值,其中 a 是一个数字。 6.3 求 S n a
例如:2+22+222+2222+22222(此时 n=5) ,n 由键盘输入。
IT 在线 单片机技术交流 单片机系统设计开发
IT 技术
40 万元<I≤60 万元时,高于 40 万元的部分按 3%提成;60 万元<I≤100 万元 时,高于 60 万元的部分按 1.5%提成;I>100 万元时,超过 100 万元的部分按 1%提成。从键盘输入当月利润 I,求应发奖金总数。 要求: (1)用 if 语句编程序; (2)用 switch 语句编程序。 5.9 输入 4 个整数,要求按由小到大的顺序输出。 5.10 有 4 个圆塔,圆心分别为(2,2) , (-2,2) , (-2,-2) , (2,-2) ,圆半 径为 1。这 4 个塔的高度为 10m,塔以外无建筑物。今输入任一点的坐标,求 该点的建筑高度(塔外的高度为零) 。

C语言程序设计(第二版)习题参考答案

C语言程序设计(第二版)习题参考答案

C语言程序设计(第二版)习题参考答案为了适应标题所需的字数限制,我将按照适当的格式和排版要求来回答C语言程序设计(第二版)习题的参考答案。

以下是部分习题的解答示例:1. 基本概念与语法1.1 变量和数据类型C语言中的变量用于存储不同类型的数据。

常见的数据类型包括整型、浮点型、字符型等。

例如,声明一个整型变量x并赋值为10的方法如下:```cint x = 10;```1.2 操作符和表达式C语言提供了丰富的操作符和表达式,用于进行数值计算和逻辑判断。

例如,使用逻辑与(&&)操作符可以判断两个条件同时成立的情况,示例如下:```cif (x > 0 && x < 100) {// 满足条件的代码```2. 流程控制2.1 分支结构流程控制中的分支结构用于根据条件来执行不同的代码块。

常见的分支结构有if语句和switch语句。

例如,使用if语句判断一个数的正负情况:```cif (x > 0) {printf("x是正数\n");} else if (x < 0) {printf("x是负数\n");} else {printf("x是零\n");}```2.2 循环结构循环结构用于多次执行相同的代码块。

常见的循环结构有for循环、while循环和do-while循环。

例如,使用for循环输出1到10的数字:for (int i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");```3. 函数和数组3.1 函数的定义和调用函数是一段完成特定功能的代码块,可以多次调用。

函数的定义包括函数名、参数列表和返回值类型。

例如,定义一个用于计算两个整数相加的函数:```cint add(int a, int b) {return a + b;}// 调用add函数int result = add(3, 5);printf("3 + 5 = %d\n", result);```3.2 数组的定义和使用数组是一种存储相同类型数据的集合。

钱能c++程序设计教程(第二版)第三章答案

钱能c++程序设计教程(第二版)第三章答案

读研需要c++,以前只学过C,根据网评,找了国内的钱能老师写的《c++程序设计教程(第二版)》,书上的例子比较不错,但是在网上一直没有下到完整的包括例子和习题的解答,于是我就突发奇想,一方面也是督促自己学习C++,想把书上和习题上的所有编程题目的答案都写出来,可以在VS2010上运行,供正在学习C++的同学参考。

现在看到第二章,以后会经常的更新答案,我也是新手,可能在编程风格和思路上有待提高,也有一些题目不知道该如何下手,路过的朋友知道的可以告诉我,我的邮箱是guosheng-14@,可以督促我继续写以后的答案。

实在VS2010上运行的,vc++6.0可能在头文件上有所区别。

第三章第一部分//3.3.2—浮点数表示#include<iostream>using namespace std;int main(){float f=19.2F;cout<<f<<endl;unsigned int* p=reinterpret_cast<unsigned int*>(&f);for(int i=31;i>=0;i--)cout<<(*p>>i&1)<<(i==31||i==23?"-":"");cout<<endl;}//3.4.2—字符操作函数相关#include<iostream>using namespace std;int main(){char* s1="Hello";char* s2="123";char a[20];strcpy(a,s1);cout<<(strcmp(a,s1)==0?"":"not ")<<"equal."<<endl;cout<<strcat(a,s2)<<endl;cout<<strrev(a)<<endl;cout<<strset(a,'c')<<endl;cout<<(strstr(a,"ell")?"":"not ")<<"find."<<endl;cout<<(strchr(a,'c')?"":"not ")<<"find"<<endl;}//3.4.3string函数相关#include<iostream>#include<string>using namespace std;int main(){string a,s1="hello",s2="123";a=s1;cout<<(a==s1?"":"not ")<<"equal."<<endl;cout<<a+s2<<endl;reverse(a.begin (),a.end());cout<<a<<endl;cout<<a.replace (0,9,9,'c')<<endl;cout<<(a.find("ell")?"":"not ")<<"find"<<endl;cout<<(a.find('c')?"":"not ")<<"find"<<endl; }//3.4.5string流+文件流#include<iostream>#include<sstream>#include<fstream>using namespace std;int main(){ifstream fin("original.txt");for(string s;getline(fin,s);){int a,sum=0;for(istringstream sin(s);sin>>a;sum+=a);cout<<sum<<endl;}}//3.5.2--sizeof()#include<iostream>using namespace std;int main(){int a[]={1,15,8,3,8,48,2,64,5};for(int i=0;i<sizeof(a)/sizeof(a[0]);i++)cout<<" "<<a[i];cout<<endl;}//3.5.3--初始化#include<iostream>using namespace std;int array1[5]={1,2,3};int array2[5];int main(){int array3[5]={2};int array4[5];cout<<"array1: ";for(int i=0;i<sizeof(array1)/sizeof(array1[0]);i++) cout<<array1[i]<<" ";cout<<endl;cout<<"array2: ";for(int i=0;i<sizeof(array2)/sizeof(array2[0]);i++) cout<<array2[i]<<" ";cout<<endl;cout<<"array3: ";for(int i=0;i<sizeof(array3)/sizeof(array3[0]);i++) cout<<array3[i]<<" ";cout<<endl;cout<<"array4: ";for(int i=0;i<sizeof(array4)/sizeof(array4[0]);i++) cout<<array4[i]<<" ";cout<<endl;}//3.5.4—二维数组#include<iostream>using namespace std;int main(){int a[2][3]={1,2,3,4,5};int b[2][3]={{1,2},4};cout<<"array1:"<<endl;for(int i=0;i<sizeof(a)/sizeof(a[0]);i++){cout<<" ";for(int j=0;j<sizeof(a[0])/sizeof(a[0][0]);j++) cout<<a[i][j]<<" ";cout<<endl;}cout<<"================================="<<endl;cout<<"array2:"<<endl;for(int i=0;i<sizeof(b)/sizeof(b[0]);i++){cout<<" ";for(int j=0;j<sizeof(b[0])/sizeof(b[0][0]);j++)cout<<b[i][j]<<" ";cout<<endl;}cout<<"================================="<<endl;}//3.6.2—文件流+向量#include<iostream>#include<fstream>#include<vector>using namespace std;int main(){ifstream fin("original.txt");vector<int> va;for(int a;fin>>a;)va.push_back(a);int s=0;for(vector<int>::iterator p1=va.begin();p1<va.end();p1++) {for(vector<int>::iterator p2=p1+1;p2<va.end();p2++) if((*p1)==(*p2))s++;}cout<<s<<endl;}//3.6.3二维向量#include<iostream>#include<sstream>#include<fstream>#include<vector>using namespace std;typedef vector<vector<int>> matrix;matrix input();void sort(matrix &a);void print(matrix &a);int main(){matrix a=input();sort(a);print(a);}matrix input(){matrix a;ifstream in("aa.txt");for(string s;getline(in,s);){vector<int> b;istringstream sin(s);for(int t;sin>>t;) b.push_back(t);a.push_back(b);}return a;}void sort(matrix &a){for(int i=0;i<a.size();i++){for(int j=i;j<a.size();j++){if(a[i].size()>a[j].size())a[i].swap(a[j]);}}}void print(matrix &a){for(int i=0;i<a.size();i++){for(int j=0;j<a[i].size();j++)cout<<a[i][j]<<" ";cout<<endl;}}//3.7.2指针类型#include<iostream>using namespace std;int main(){float f=34.5;int *p=reinterpret_cast<int *>(&f);cout<<"float:"<<endl;cout<<&f<<"=>"<<f<<endl;cout<<"======================"<<endl;cout<<"int:"<<endl;cout<<p<<"=>"<<*p<<endl;cout<<"======================="<<endl; }//3.7.3数组与指针#include<iostream>using namespace std;int main(){int a[6];for(int i=0;i<6;i++) a[i]=i*2;for(int *p=a;p<a+6;p++) cout<<*p<<" ";cout<<endl;}//3.7.5引用#include<iostream>using namespace std;int main(){int a=5;int &alias=a;cout<<&a<<" "<<a<<endl;cout<<&alias<<" "<<alias<<endl;int b=8;alias=8;cout<<&alias<<" "<<alias<<endl;}第二部分//1--二t进?制?码?#include<iostream>using namespace std;int main(){int f=-1234567;cout<<f<<endl;unsigned int* p=reinterpret_cast<unsigned int*>(&f);for(int i=31;i>=0;i--)cout<<(*p>>i&1)<<(i==31||i==23?"-":"");cout<<endl;}//2—字节,位长#include<iostream>using namespace std;int main(){cout<<"long int:"<<sizeof(long int)<<" byte "<<8*sizeof(long int)<<" bit"<<endl;cout<<"int:"<<sizeof(int)<<" byte"<<8*sizeof(int)<<" bit"<<endl;cout<<"char:"<<sizeof(char)<<" byte "<<8*sizeof(char)<<" bit"<<endl;cout<<"bool:"<<sizeof(bool)<<" byte "<<8*sizeof(bool)<<" bit"<<endl;cout<<"long double:"<<sizeof(long double)<<" byte "<<8*sizeof(long double)<<" bit"<<endl;cout<<"double:"<<sizeof(double)<<" byte "<<8*sizeof(double)<<" bit"<<endl;cout<<"float:"<<sizeof(float)<<" byte "<<8*sizeof(float)<<" bit"<<endl;}//3—均方差#include<cmath>#include<iostream>#include<vector>using namespace std;int main(){int a[]={6,3,7,1,4,8,2,9,11,5};vector<int> v(a,a+10);for(vector<int>::iterator i=v.begin();i<v.end();i++) cout<<*i<<" ";cout<<endl;double everage=0,sum=0;for(int i=0;i<v.size();i++) sum+=v[i];everage=sum/double(v.size());cout<<"eve: "<<everage<<endl;double item=0;for(int i=0;i<v.size();i++){item+=pow(v[i]-everage,2.0);}cout<<"s="<<sqrt(item/double(v.size()))<<endl;}//4—加班+文件流#include<fstream>#include<iostream>#include<sstream>#include<string>using namespace std;int main(){ifstream in("aa.txt");int days=0;for(string s;getline(in,s);){if(s.find("25")<s.size()){cout<<s<<((s.find("*")<s.size())?" 还是个加班日哦":"")<<endl;}}}//5—字符加密//我没有看懂“在32(‘’)~122(‘’)之间做模运算”是什么意思,只做了加数字部分的加密,求解答#include<iostream>#include<sstream>using namespace std;int main(){int a[7]={4,9,6,2,8,7,3},i=0;for(char ch;(ch=cin.get())!='\n';){ch+=a[(i++)/7];cout<<ch;}cout<<endl;}//6—运行结果#include<iostream>using namespace std;int main(){int sum[5]={0};int iArray[]={1,4,2,7,13,21,48,16,30};int size=sizeof(iArray)/sizeof(*iArray);int *iPtr=iArray;for(int n=0;n<size;++n)sum[3]+=iPtr[n];for(int n=0;n<size;++n)sum[2]+=*(iPtr+n);for(int n=0;n<size;++n)sum[1]+=*iPtr++;for(int n=0;n<size;++n)sum[0]+=iArray[n];for(int n=0;n<size;++n)sum[4]+=*(iArray+n);for(int i=0;i<5;i++)cout<<sum[i]<<endl;}//7—修改成#include<iostream>using namespace std;void myswap(int &a,int &b);int main(){int a=16,b=48;int &aa=a,&bb=b;cout<<"a="<<a<<",b="<<b<<endl;myswap(aa,bb);cout<<"after being swapped:"<<endl;cout<<"a="<<a<<",b="<<b<<endl;}void myswap(int &a,int &b){int item;item=a;a=b;b=item;}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章第一部分//3.3.2—浮点数表示#include<iostream>using namespace std;int main(){float f=19.2F;cout<<f<<endl;unsigned int* p=reinterpret_cast<unsigned int*>(&f);for(int i=31;i>=0;i--)cout<<(*p>>i&1)<<(i==31||i==23?"-":"");cout<<endl;}//3.4.2—字符操作函数相关#include<iostream>using namespace std;int main(){char* s1="Hello";char* s2="123";char a[20];strcpy(a,s1);cout<<(strcmp(a,s1)==0?"":"not ")<<"equal."<<endl;cout<<strcat(a,s2)<<endl;cout<<strrev(a)<<endl;cout<<strset(a,'c')<<endl;cout<<(strstr(a,"ell")?"":"not ")<<"find."<<endl;cout<<(strchr(a,'c')?"":"not ")<<"find"<<endl;}//3.4.3string函数相关#include<iostream>#include<string>using namespace std;int main(){string a,s1="hello",s2="123";a=s1;cout<<(a==s1?"":"not ")<<"equal."<<endl;cout<<a+s2<<endl;reverse(a.begin (),a.end());cout<<a<<endl;cout<<a.replace (0,9,9,'c')<<endl;cout<<(a.find("ell")?"":"not ")<<"find"<<endl;cout<<(a.find('c')?"":"not ")<<"find"<<endl; }//3.4.5string流+文件流#include<iostream>#include<sstream>#include<fstream>using namespace std;int main(){ifstream fin("original.txt");for(string s;getline(fin,s);){int a,sum=0;for(istringstream sin(s);sin>>a;sum+=a);cout<<sum<<endl;}}//3.5.2--sizeof()#include<iostream>using namespace std;int main(){int a[]={1,15,8,3,8,48,2,64,5};for(int i=0;i<sizeof(a)/sizeof(a[0]);i++)cout<<" "<<a[i];cout<<endl;}//3.5.3--初始化#include<iostream>using namespace std;int array1[5]={1,2,3};int array2[5];int main(){int array3[5]={2};int array4[5];cout<<"array1: ";for(int i=0;i<sizeof(array1)/sizeof(array1[0]);i++)cout<<array1[i]<<" ";cout<<endl;cout<<"array2: ";for(int i=0;i<sizeof(array2)/sizeof(array2[0]);i++)cout<<array2[i]<<" ";cout<<endl;cout<<"array3: ";for(int i=0;i<sizeof(array3)/sizeof(array3[0]);i++)cout<<array3[i]<<" ";cout<<endl;cout<<"array4: ";for(int i=0;i<sizeof(array4)/sizeof(array4[0]);i++)cout<<array4[i]<<" ";cout<<endl;}//3.5.4—二维数组#include<iostream>using namespace std;int main(){int a[2][3]={1,2,3,4,5};int b[2][3]={{1,2},4};cout<<"array1:"<<endl;for(int i=0;i<sizeof(a)/sizeof(a[0]);i++){cout<<" ";for(int j=0;j<sizeof(a[0])/sizeof(a[0][0]);j++)cout<<a[i][j]<<" ";cout<<endl;}cout<<"================================="<<endl;cout<<"array2:"<<endl;for(int i=0;i<sizeof(b)/sizeof(b[0]);i++){cout<<" ";for(int j=0;j<sizeof(b[0])/sizeof(b[0][0]);j++)cout<<b[i][j]<<" ";cout<<endl;}cout<<"================================="<<endl; }//3.6.2—文件流+向量#include<iostream>#include<fstream>#include<vector>using namespace std;int main(){ifstream fin("original.txt");vector<int> va;for(int a;fin>>a;)va.push_back(a);int s=0;for(vector<int>::iterator p1=va.begin();p1<va.end();p1++){for(vector<int>::iterator p2=p1+1;p2<va.end();p2++)if((*p1)==(*p2))s++;}cout<<s<<endl;}//3.6.3二维向量#include<iostream>#include<sstream>#include<fstream>#include<vector>using namespace std;typedef vector<vector<int>> matrix;matrix input();void sort(matrix &a);void print(matrix &a);int main(){matrix a=input();sort(a);print(a);}matrix input(){matrix a;ifstream in("aa.txt");for(string s;getline(in,s);){vector<int> b;istringstream sin(s);for(int t;sin>>t;) b.push_back(t);a.push_back(b);}return a;}void sort(matrix &a){for(int i=0;i<a.size();i++){for(int j=i;j<a.size();j++){if(a[i].size()>a[j].size())a[i].swap(a[j]);}}}void print(matrix &a){for(int i=0;i<a.size();i++){for(int j=0;j<a[i].size();j++)cout<<a[i][j]<<" ";cout<<endl;}}//3.7.2指针类型#include<iostream>using namespace std;int main(){float f=34.5;int *p=reinterpret_cast<int *>(&f);cout<<"float:"<<endl;cout<<&f<<"=>"<<f<<endl;cout<<"======================"<<endl;cout<<"int:"<<endl;cout<<p<<"=>"<<*p<<endl;cout<<"======================="<<endl; }//3.7.3数组与指针#include<iostream>using namespace std;int main(){int a[6];for(int i=0;i<6;i++) a[i]=i*2;for(int *p=a;p<a+6;p++) cout<<*p<<" ";cout<<endl;}//3.7.5引用#include<iostream>using namespace std;int main(){int a=5;int &alias=a;cout<<&a<<" "<<a<<endl;cout<<&alias<<" "<<alias<<endl;int b=8;alias=8;cout<<&alias<<" "<<alias<<endl;}第二部分//1--二t进?制?码?#include<iostream>using namespace std;int main(){int f=-1234567;cout<<f<<endl;unsigned int* p=reinterpret_cast<unsigned int*>(&f);for(int i=31;i>=0;i--)cout<<(*p>>i&1)<<(i==31||i==23?"-":"");cout<<endl;}//2—字节,位长#include<iostream>using namespace std;int main(){cout<<"long int:"<<sizeof(long int)<<" byte "<<8*sizeof(long int)<<" bit"<<endl;cout<<"int:"<<sizeof(int)<<" byte"<<8*sizeof(int)<<" bit"<<endl;cout<<"char:"<<sizeof(char)<<" byte "<<8*sizeof(char)<<" bit"<<endl;cout<<"bool:"<<sizeof(bool)<<" byte "<<8*sizeof(bool)<<" bit"<<endl;cout<<"long double:"<<sizeof(long double)<<" byte "<<8*sizeof(long double)<<" bit"<<endl;cout<<"double:"<<sizeof(double)<<" byte "<<8*sizeof(double)<<" bit"<<endl;cout<<"float:"<<sizeof(float)<<" byte "<<8*sizeof(float)<<" bit"<<endl; }//3—均方差#include<cmath>#include<iostream>#include<vector>using namespace std;int main(){int a[]={6,3,7,1,4,8,2,9,11,5};vector<int> v(a,a+10);for(vector<int>::iterator i=v.begin();i<v.end();i++) cout<<*i<<" ";cout<<endl;double everage=0,sum=0;for(int i=0;i<v.size();i++) sum+=v[i];everage=sum/double(v.size());cout<<"eve: "<<everage<<endl;double item=0;for(int i=0;i<v.size();i++){item+=pow(v[i]-everage,2.0);}cout<<"s="<<sqrt(item/double(v.size()))<<endl;}//4—加班+文件流#include<fstream>#include<iostream>#include<sstream>#include<string>using namespace std;int main(){ifstream in("aa.txt");int days=0;for(string s;getline(in,s);){if(s.find("25")<s.size()){cout<<s<<((s.find("*")<s.size())?" 还是个加班日哦":"")<<endl;}}}//5—字符加密//我没有看懂“在32(‘’)~122(‘’)之间做模运算”是什么意思,只做了加数字部分的加密,求解答#include<iostream>#include<sstream>using namespace std;int main(){int a[7]={4,9,6,2,8,7,3},i=0;for(char ch;(ch=cin.get())!='\n';){ch+=a[(i++)/7];cout<<ch;}cout<<endl;}//6—运行结果#include<iostream>using namespace std;int main(){int sum[5]={0};int iArray[]={1,4,2,7,13,21,48,16,30};int size=sizeof(iArray)/sizeof(*iArray);int *iPtr=iArray;for(int n=0;n<size;++n)sum[3]+=iPtr[n];for(int n=0;n<size;++n)sum[2]+=*(iPtr+n);for(int n=0;n<size;++n)sum[1]+=*iPtr++;for(int n=0;n<size;++n)sum[0]+=iArray[n];for(int n=0;n<size;++n)sum[4]+=*(iArray+n);for(int i=0;i<5;i++)cout<<sum[i]<<endl;}//7—修改成#include<iostream>using namespace std;void myswap(int &a,int &b);int main(){int a=16,b=48;int &aa=a,&bb=b;cout<<"a="<<a<<",b="<<b<<endl;myswap(aa,bb);cout<<"after being swapped:"<<endl;cout<<"a="<<a<<",b="<<b<<endl;}void myswap(int &a,int &b){int item;item=a;a=b;b=item;}。

相关文档
最新文档