C++习题集
更新时间:2024-01-28 11:13:01 阅读量: 教育文库 文档下载
- c蛋白反应高是什么意思推荐度:
- 相关推荐
第一章 C++语言概述
一、简答题
1. C++的单词包含那几种?
2. 一个标识符中的首字符必须是什么字符?其余位置上的字符必须是什
么字符?
3. 数值常量、字符常量、字符串常量和标识符在表示上各有什么区别? 4. C++语句分为哪几类?
5. #include命令的格式和功能各是什么?使用尖括号和双引号在含义
上有什么区别?
6. 你已经知道了那几个系统头文件?
7. cout和cin 标识符的含义是什么?他们后面分别使用什么运算符?
各运算符的作用是什么?
8. 上机运行一个程序需要经过那些阶段?
二、填空题
1. 程序中的预处理命令是指以______字符开头的命令。
2. 一条简单语句是以______字符作为结束符的,一条复合语句是分别
以______字符和______字符作为开始符和结束符的。
3. 空白符是______符、______符、和______符的统称。
4. 在#include命令中所包含的头文件,可以是______头文件,也可以
是______头文件。
5. 使用#include命令可以包含一个头文件,也可以包含一个______文
件。
6. 一个函数定义由______和______两部分组成。 7. 一个程序中必须有一个名为______的函数。
8. 函数头与______语句一样都能够提供出函数的参数和返回类型等信
息。
9. 若一个函数的定义处于调用它的函数之前,则在程序开始可以省去
该函数的______语句。
10. 一个函数的函数体就是一条______。
11. C++头文件和源程序文件的扩展名分别为______和______。 12. 程序文件的编译错误分为______和______两类。
13. 当使用______保留字作为函数类型时,该函数不返回任何值。 14. 当函数参数表用______保留字表示时,则表示该参数表为空。 15. 从一条函数原型语句”int fun1(void);”可知,该函数的返回类型
为______,该函数带有______个参数。
16. 当执行cout语句向C++显示输出屏幕输出一个数据项的值时,若该
值的显示宽度(即所占显示位置的字符数)为n,则显示该值后光标将从原位置后移______个字符显示位置。
17. 当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光
标从当前位置移动到______的开始位置。
18. 当执行cin语句时,从键盘上输入每个数据后必须输入一个______
符,然后才能接着输入下一个数据。
三、写出下列程序运行结果,此题又作为上机实验题
1. #include
void main() {
int x,y; x=5;y=6;
cout<<”x+y=”< } 2. #include int cube(int); void main(void) { cout<<”cube(3)=”< cout<<”cube(8)=”< int cube(int x) { return x*x*x; } 3. #include #include”abc.h” void main() { double a,b,c; double averageValue; a=2;b=3;c=4; averageValue=AVE(a,b,c); cout<<”averageValue;”< cout<<”averageValue:”< 其中abc.h文件的内容如下: double AVE(double x,double y,double z) { return (x+y+z)/3; } 4. #include #include”example.h” void main() { int a,b,c; cout<<”请输入3个整数:” cin>>a>>b>>c; cout<<”最大值:”< 其中example.h文件的内容如下: int max_value(int a,int b,int c); int min_value(int a,int b,int c); 这两个函数的定义(又称为函数的实现或具体实现)被保存在另一个程序文件中,它将被编译后连接到主文件中产生出可执行文件。该程序文件的内容如下: int max_value(int a,int b,int c) { if(a int min_value(int a,int b,int c) { if(a>b) a=b;// 若a大于b则将b的值赋给a if(a>c) a=c;// 若a大于c则将c的值赋给a return a; } 请读者自行假定用于输入的3个整数。 第二章 数据类型和表达式 一、简答题 1. C++数据分为哪四种大的类型?在大的整数类型中又分为哪四种类 型? 2. 整数类型分为哪三种类型,每种类型的长度各是多少? 3. 实数类型分为哪三种类型,它们的类型长度各是多少? 4. 单精度和双精度分别表示多少位有效数字? 5. 每一种C++具体类型的关键字是什么? 6. 哪四种保留字能够用来修饰int 保留字成为类型关键字?哪两种保 留字能够用来修饰char保留字成为类型关键字? 7. 整型常数具有哪三种不同进制的表示?如何区分它们? 8. 一个整数后缀L或U分别具有什么含义? 9. 转义字符序列中的首字符是什么字符? 10. 实数具有哪两种表示方法?一个浮点数具有那些成分?什么叫规格 化浮点数? 11. 定义符号常量和变量的语句有什么异同? 12. #define命令的作用是什么? 13. 一个C++运算符具有哪三种属性? 14. 左值和非左值(又称右值)有什么区别? 15. 在程序文件中使用系统数学函数或随机函数时,各需要通过#include 命令引入哪个头文件? 16. 一个表达式是否必须有一个值,在什么情况下它没有值? 17. 执行一个函数调用的大致过程是什么?函数运算的优先级如何? 二、填空题 1. 数据类型int,char,bool,float,double的类型长度分别为______、 ______、______、______和______。 2. 短整型、整型和长整型的最简关键字分别为______、______和 ______。 3. 常数-4.205,1200和6.7E-9分别具有______、______和______位 有效数字。 4. 数值常量46、0173和0x62对应十进制值分别为______、______ 和______。 5. 字符常量 ’k’,’\\n’,’\\\\’,’/052’和’\\xA2’对应的数值 分别为______、______、______、______和______。 6. 字符串”It \\’s\\40an\\40apple.\\n”中包含有______个字符。 7. 枚举类型中的每个枚举值都是一个______,它的值是一个______, 值的类型为______。 8. 实数340.0和0.027E8对应的规格化浮点数分别为______和______。 9. 常数100,-25,3.62,1E5和-4.73f的数据类型分别为______、 ______、______、______和______。 10. 若x的值为10,则x+=5的值和运算后的______的值相同,等于 ______。 11. 若x=5,y=10,则计算y*=++x表达式后,x和y的值分别为______ 和______。 12. 若x=25,则计算y=x++表达式后,x和y的值分别为______和______。 13. 假定x和ch分别为int 型和char型,则sizeof(x)和sizeof(ch) 的值分别为______和______。 14. 假定x=64,y=88,则x<<2和y>>2的值分别为______和______。 15. 假定x是一个逻辑量,则x&&true的值与______的值相同,x||false 的值也与______的值相同。 16. 假定x是一个逻辑量,则x&&!x的值分别为______和______。 17. 假定x=10,则表达式x<=10?20:30的值为______。 18. 假定x=10.5,y=-4.6,则表达式floor(fabs(x+y))的值为______。 19. 表达式sqrt(81)和pow(6,3)的值分别为______和______。 20. 随机函数rand() 的值在______至______区间内。 bx+121. 数学算式(1+x)sin48°和axe对应的算术表达式分别为______和 ______。 三、试指出下列各表达式值的类型 假定a为int型,x为double型, 1. 327 2. -1.5e6 3. 42.0f 4. 48L 5. 0372 6. 0xabc 7. 1/3 8. 1%3 9. 1.0%3 10. a*3/x 11. a*(a+x) 12. 1+a*a 13. a+=3 14. x*=2 15. ‘x’ 16. ‘x’+20 17. true 18. ++a 19. short(a) 20. bool(x) 21. (unsigned int)(0256) 22. x=a++ 23. sizeof(bool) 24. char(a+10) 25. abs(x) 26. fabs(a) 27. floor(x) 28. ceil(a) 29. exp(4)+2 30. rand() 31. rand()/100 32. floor(log(x)) 33. pow(a,4) 34. a>10?x:sqrt(x) 35. a>100 36. x!=10 37. a&&x 38. a<1||a>10 39. !x 40. !(a==0) 四、试求出下列每个表达式的值(各表达式互不影响) 已知a=20,x=4.7,r=’a’, 1. a++ 2. ++r 3. a%5 4. a/5 5. r 6. 1+a/3%4 7. a/8.0 8. r+=4 9. x=2*(x+5)-1 10. char(a+30) 11. 10*sizeof(int) 12. (a<<3)+5 13. a>0 14. a==1 15. a++&&r!=’a’ 16. ++a&&r==’a’ 17. a||x<=10 18. a==r||a==floor(x) 19. a=(r>’A’?a+10:a-10) 20. a=(r<’A’?a+10:a-10) 21. x=(a++,r++) 22. x=(a++,r++,50) 23. x=pow(3,5) 24. x=fabs(-26.5)+4 25. a=abs(a)%8-10 26. floor(x+0.5) 27. ceil(x-0.5) 28. ceil((x-=0.5)-0.5) 五、把下列数学算式或不等式表示成C++表达式 1. 2x(1+x2/3) 2. (1+ex)/(1-ex) 3. (-b+(b2-4ac)1/2)/2a 4. 1/(3xln(2x+k)) 5. sin3(x+π/4)/(3+cos3(x-π/4)) 6. 1/7(1+ex+1) n 7. 0<=x<=20 8. ax-by!=c 9. 4x+7y-2=3ab 10. |2x2+1|/|3x+2|<-5同时3x+2!=0 11. age>=55或者pay>=820 12. place=”江苏”同时sex=”女” 13. ‘a’<=ch<=’z’或者’A’<=ch<=’Z’ 14. s[0]=’0’同时(s[1]=’x’或者s[1]=’X’) 六、写出下列每个程序运行后的输出结果并自行上机验证 1. #include enum race{Black,White,Yellow}; void main() { race ra; ra=Black;cout< 2. #include #define PI 3.14159 const int R=10 void main() { double p,s; p=2*R*PI; cout<<”p=”< 3. #include void main() { int i=0,j=1,k; k=i+=j; cout< cout< cout< 4. #include void main() { cout< cout< 5. #include const int w=30; void main() ’; { int x,y; x=w<<2;y=w>>2; cout< cout< cout< 6. #include void main() { int x=10,y=-1; cout<<((x>y)&&(y<0))<<’ ’; cout<<((x>y)||(y<0))<<’ ’; cout<<((x<=y)&&(y>=0))<<’ ’; cout<<((x<=y)||(y>=0))<<’ ’; cout<<((x==y)&&y)<<’ ’; cout<<((x==y)||y)<<’ ’; } 7. #include void main() { int x=5,y=10,k; (k=x)+=y;cout< cout< } 8. #include #include double x=15.72; double y,z; y=ceil(x);z=floor(x); cout< 七、编写下列程序 1. 已知一个三角形中三条边的长度分别为a,b和c,利用计算公式(s(s-a)(s-b)(s-c))1/2 求出三角形的面积,其中s=(a+b+c)/2,假定a,b和c的值由键盘输入,并确保任何两边的长度大于第三条边。 2. 假定一所大学2001年招生人数为3000人,若以后每年平均比上一年计划扩招10%,则2006年将计划招生多少人? 3. 已知有4个整数为a,b,c,d,试计算出它们的算术平均值和几何平均值。 4. 已知x=2a/2(a+b)sina,y=2b/3(a+b)cosb,试根据从键盘上输入的a和b的值分别计算出x和y的值。 八、上机实验题 1. 让计算机随机出10道两位整数加法题供用户计算,每道题10分,计算完成后打印出得分。 #include #include const N=10; void main() { srand(time(0)); int x,y,z,c=0; for(int I=1;I<=N;I++) { x=rand()?+10; y=rand()?+10; cout< cout<<”得分:”< 2. 打印出0°-90°之间每隔5°的正弦值和余弦值。 #include const double RAD=3.14159/180; void main() { int I=0; while(I<=90) { cout< ; ’ } 3. 把从键盘上输入的一个正整数按数字位的相反次序输出。 #include int num,rem; cout>>num; do{ rem=num; num/=10; cout< 4. 打印出a-f中每个大小写字母所对应的ASCII码。 #include void main() { char c1=’A’,c2=’a’; for(int I=1;I<=6;I++) { cout< 5. 从键盘上输入两个整数,由用户回答他们的和、差、乘和取余运算的结果,并统计出正确答案的个数。 #include void main() { int x,y,z,c=0; cout<<”输入两个整数:”; cin>>x>>y; cout< cout<<”答对”< 第三章 流程控制语句 一、填空题 1. 流程控制类语句包括______、______和______三类语句。 2. 跳转类语句包括______、______、______和______四种。 3. 选择类和循环类中的每一种语句都属于______语句。 4. 在switch语句中,每个语句标号所含关键字case后面的表达式必须是 ______。 5. 在嵌套的if语句中,每个else关键字与它前面最接近的______关键字 相配套。 6. 作为语句标号使用的C++保留字case和default只能用于______语句 中。 7. 执行switch语句时,在进行作为条件的表达式求值后,将从某个标号 位置起向下执行,当碰到下一个标号位置时(停止/不停止)______执行。 8. 任何______语句都可以改写位具有同样功能的if 语句来实现。 9. 在for 语句中,假定循环体被执行次数为n,则<表达式1>共被计算 ______次,<表达式2>共被计算______次,<表达式3>共被计算______次。 10.执行for 和while循环时,每次是先进行______的判断,然后再执行______, 执行do循环时则相反。 11.continue语句只能使用在______类语句中,break语句中既可以使用在 ______类语句中,也可以使用在______语句中。 12.for语句中<表达式2>是在每次执行______之前被计算,而<表达式3>是在 每次执行______之后被计算。 13.在所有结构性语句中,只有____________语句的最后必定是以分号结束的, 而其余语句的最后一个字符可能是分号,也可能是______。 14._____语句的循环体至少被执行一次,______和______语句的循环体可能不 会被执行。 15. 若for循环的”头”为 “for(int i=0;i<10;i++)”,并且在循环体 中不会修改i的值,则循环体将被重复执行______次后正常结束。 16. 若while循环的”头”为”while(i++<=10)”,并且i的初值为0, 同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。 17. 当do循环的”尾”为”while(i++<=10)”,并且i的初值为0,同时 在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。 18. 当在程序中执行到______语句时,将结束本层循环类语句或switch 语句的执行。 19. 当在程序中执行到______语句时,将结束所在循环语句中循环体的 一次执行。 20. 在程序中执行到______语句时,将结束所在函数的执行过程,返回 到调用该函数的位置。 二、写出下列每个程序运行后的输出结果并上机验证 1. #include void main() { int a=2,b=5,c=4; if(a+b>10)c=a*b;else c=3*a+b; if(c<=20) cout< a=a+b;b=a+b;c=a+b+c; cout<<”a,b,c=”< 2. #include void main() { int x=5; switch(2*x-3) { case 4: cout< cout<<”switch end.”< 3. #include #include int I,x,y; for(i=0;i<6;i++) { cin>>x; if(x<0)y=1; else if(x<10) y=x*x+3; else if(x<60) y=4*x-5; else y=int(sqrt(x)); cout< 假定从键盘上输入的6个常数为:36,-5,73,192,6,44。 4. #include void main() { int s0,s1,s2,x; s0=s1=s2=0; for(int i=0;i<12;i++) { cin>>x; switch(x%3){ case 0: s0+=x;break; case 1: s1+=x;break; case 2: s2+=x;break; } } cout< 定 从 键 盘 上 输 入 的 为:36,25,20,43,12,70,66,34,28,15,32,55 5. #include const int N=5; void main() { int I,p=1,s=0; for(i=1;i p=p*I; s=s+p; cout< 6. #include const int M=20; void main() { int c2,c3,c5; 个 整 数 ‘< c2=c3=c5=0; for(int i=1;i<=M;i++) { if(i%2==0) c2++; if(i%3==0) c3++; if(i%5==0) c5++; } cout< 7. #include void main() { int I,j; for(i=0;i<5;i++) { for(j=I;j<5;j++) cout<<’*’; cout< 8. #include void main() { for(int i=1,s=0;i<30;i++) { if(i%2==0||i%3==0)continue; cout< cout< 9. #include const int T=6; void main() { int I,j,k=0; for(i=1;i<=%;i+=2) for(j=2;j<=T;j++) if(i+j==T) cout<<’+’; else if(i*j==T) cout<<’*’ else k++; cout< } 10. #include void main() { int a,b,c=0; for(a=1;a<6;a++) for(b=6;b>1;b--) { if((a+b)%3==2){c+=a+b;cout<20) break; } cout<<”c=”< 11. #include const int B=2; void main() { int p=1,s=1; while(s<50) ‘< p*=B; s+=p; } cout<<”s=”< } 12. #include void main() { int x,y; int i=2,p=1; cout<<”请输入两个整数x和y:”; cin>>x>>y; do{ while(x%i==0&&y%i==0) { p*=I; x/=I; y/=I; } i++; }while(x>=i&&y>=i); cout<<”x和y的最小公倍数:”< 假定从键盘上输入的两个整数为24和88。 三、指出下列每个程序的功能并上机验证 1. #include double f1(int n) { double sign=1,s=1; for(int i=2;i<=n;i++) { s+=sign/(i*i); sign*=-1; } return s; } void main() { int a; cin>>a; cout< 2. #include void main() { double a,x,y; cin>>a; do{ cin>>x; if(x==-1)break; if(x<0)y=a*x+5; else if(x<=20) y=3*x*x-2*a+1; else y=a*a+x*x; cout< 3. #include #include double f1(double a,double b,char op) { switch(op){ case ‘+’: return a+b; case ‘-’: return a-b; case ‘*’: return a*b; case ‘/’: if(b==0) { cout<<”divided by 0!”< else return a/b; default : cout<<”operator error!”< exit(1); } } void main() { double x,y; char op; cout<<”请输入两个实数和一个运算符:”; cin>>x>>y>>op; cout< 4. #include #include int x1,x2; cin>>x1; x2=int(sqrt(x1)); for(int i=1;i<=x2;i++) if(x1%i==0) cout< 5. #include void main() { int I,p=1,s=0; int N; cout<<”输入一个正整数:”; cin>>N; for(i=1;i<=N;i++) { p*=I; s+=p; } cout< 6. #include double f1(double x,int n) { double p1,p2,p3,s; p1=s=x;p2=p3=1; if(n==0) return s; for(int i=1;i<=n;i++) { p1*=x*x; p2*=2*i*(2*i+1); p3*=-1; s+=p3*p1/p2; } return s; } void main() { double x,y; int n; cout<<”输入一个实数:”; cin>>x; cout<<”输入一个正整数:”; cin>>n; y=f1(x,n); cout<<”y=”< 7. #include void main() { int I,j; for(i=1;i<=5;i++) { for(j=1;j<=9;j++) if(j<=5-i||j>=5+i) cout<<’ else cout<<’*’; cout< 8. #include int f1(int a,int b) { int r; while(b!=0) ; ’ { r=a%b; a=b;b=r; } return a; } int f2(int a,int b) { int i=2,p=1; do{ while(a%i==0&&b%i==0) { p*=i;a/=I;b/=i; } i++; }while(a>=i&&b>=i); return p*a*b; } void main() { int a,b; cout<<”输入两个正整数:”; cin>>a>>b; cout< 9. #include #incldue { int z; cout< if(x+y==z) return 1;else return 0; } void main() { int a,b,c=0; srand(time(0)); for(int i=0;i a=rand() +1; b=rand() +1; c+=ff(a,b) } cout<<”得分:”< 10. #include #include double a,b,c; cout<<”输入一元二次方程的二次项系数、一次项系数和常数 项:”< cin>>a>>b>>c; double d=b*b-4*a*c; if(d<0.0) { cout<<”此方程没有实根!”< double x1,x2; if(d==0.0) x1=x2=-b/(2*a); else { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); } cout<<”此方程的两个根为:”< 四、编写下列程序 1. 某城市为鼓励节约用水,对居民用水量作如下规定:若每人每月用水量 不超过2吨,则按0.3元收费;若大于2吨但不超过4吨,则其中2吨按0.3元收费,剩余部分按每吨0.6元收费;若超过4吨,则其中2吨按0.3元收费,再有2吨按0.6元收费,剩余部分按每吨1.2元收费。试根据一户居民的用水量和该户人口数计算出应交纳的水费。 2. 某班级学生进行百米跑测试,规定成绩在12秒以内(含12秒)为优秀, 在12秒以上至15秒为达标,在15秒以上为不达标,编一程序,从键盘上输入每个人的成绩,分别统计出成绩为优秀、达标和不达标各多少人?各占学生总数的百分比是多少? 3. 计算1+3+32+... +310的值。 4. 求满足不等式22+42+? +n2<1000的最大n值。 5. 求出从键盘上输入的10个整数中的最大值。 6. 已知6<=a<=30,15<=b<=36,求满足不定方程2n+5b=126的全部整数组 解。如(13,20)就是一个整数组解。 7. 假定有100名中小学生参加义务植树活动,共植树100棵,其中高中生 每人值3棵,初中生每人植两棵,小学生每两人植1棵。并且已知参加植树的高中、初中和小学生的人数均不小于10人,问他们各为多少人? 8. 已知y=1+(1/2)x+(1/3)x2+?+(1/10)x9,求每取一个值时所对应的y 值,其中x的每个值由键盘输入,直到输入终止标准-100为止。 9. 在输出窗口中显示出如下图形: *********** ********* ****** *** * 第三章 函数 一、填空题 1. 一个函数调用表达式能够作为左值的条件是:函数的返回值必须是______ 类型。 2. 假定一个函数的数组参数说明为char a[],则等价的指针参数说明为 ______。 3. 假定一个函数的二维数组参数说明为int w[][N],则等价的指针参数说明为 ______。 4. 假定一个参数说明为const int a,则在函数体中______(能够/不能够)改 变a的值。 5. 假定一个参数说明为const char *p,则在函数体中______(能够/不能够) 改变p所指向的存储空间的内容,但______改变p指针的内容。 6. 假定一个参数说明为int &x,则进行函数调用时,它是对应______的别名。 7. 一个函数带有函数声明时,则参数的默认值应该在______(函数定义/函数 声明)中给出。 8. 在进行函数调用时,将把______传送给非引用参数,把实参的______传送 给引用参数。 9. 函数执行中对引用参数的访问实际上就是对相应______的访问。 10. 当函数的返回类型为void 时,在函数体中可以使用______语句,否则必须 使用______语句返回一个值。 11. 当实参为一个数组名时,对应的形参必须是______类型或______类型。 12. 变量的四种作用域分别为______、______、______和______。 13. 不同作用域范围内的变量______(能够/不能够)同名。 14. 当一个函数的非引用参数为a,假定它对应的实参也为a,则在函数体中对a 的访问与对应的实参a______(有关/无关)。 15. 当一个函数的引用参数为a,假定它对应的实参也为a,则在函数体中对a 的访问与对应的实参a______(有关/无关)。这两个变量的作用域______ (相同/不同)。 16. 当一个函数的引用参数为a,假定它对应的实参为b,则它们对应的作用域 ______(相同/不同),访问它们的存储空间______(相同/不同)。 17. 在函数定义的第一层复合语句内______(能够/不能够)定义与形参同名的 变量,因为它们作用域______(相同/不同)。 18. 函数的形参和函数体内的变量______(可以/不可以)与全局域或文件域的 对象同名。 19. 在两个嵌套的不同作用域内若分别定义有同名对象,当在内层作用域访问 这个对象时,将访问的是在______(内层/外层)定义的对象,除此之外将访问的是在______(内层/外层)定义的对象。 20. 在一个程序文件中定义的函数,若要在另一个程序文件中访问,则必须在 该文件开始给出一条该函数的______对其进行说明。 21. 在一个函数体中可以使用函数调用表达式调用其他函数,也可以调用 ______。 22. 在函数体中又调用自身函数称为______调用,该函数称为______函数。 23. 当两个函数的函数名______,但参数的个数或对应参数的类型______时, 则称为重载函数。 24. 当一个函数为void f(int ,char=’a’),另一个函数为void f(int),则它 们______(是/不是)重载函数,在一个程序中______(可以/不可以)同时定义这两个函数。 25. 一个函数模板中的类型参数所对应的具体类型由调用该函数模板的______ 决定。 26. 当在同一个程序中存在一个普通函数是一个函数模板的重载函数时,则与 函数调用表达式相符合的______将被优先调用执行。 27. 当一个函数调用表达式只能与一个函数模板相符合时,将首先根据函数模 板生成一个______,然后再调用它执行。 28. 在函数定义的参数表中,也可以使用函数参数,假定一个函数参数说明为 int &ff(int[],int),则等价的函数指针说明为______。 二、给出下列程序运行后的输出结果并上机验证 1. #include void main() { int a=10,b=20; cout< cout< cout< 2. #include int a=5; void main() { int a=10,b=20; cout< { a+=i;b+=a; } cout< cout< 3. #include int f1(int x,int y) { x=x+y;y=x+y; cout<<”x=”< void main() { int x=5,y=8; int z=f1(x,y); cout<<”x=”< 4. #include void f2(int&x,int&y) { int z=x;x=y;y=z; } void f3(int *x,int *y) { int z=*x;*x=*y;*y=z; } void main() { int x,y; x=10;y=26; cout<<”x,y=”< cout<<”x,y=”< cout<<”x,y=”< cout<<”x,y=”< 5. #include void f4(int a[],int n,int &s) { s=0; for(int i=0;i void main() { int a[5]={2,7,5,4,9}; int b[10]={4,8,6,9,2,10,7,12,6,15}; int x; f4(a,5,x); int y=x; f4(b,8,x); y+=x; f4(b+3,5,x); cout< 6. #include int x=5; void f5(int a); int f6(int x); void main() { int x=3; f5(x); f5(x+4); cout< void f5(int a) { a+=x; cout< int f6(int x) { x*=3; return x+1; } 7. #include #include a=new char[n]; strcpy(a,”motion”); char *b=new char[n]; strcpy(b,”telephone”); return b; } void main() { char *p1; char *p2=f7(p1,12); cout< 8. #include const N=15; int f8(char a[][N],int m) { int c=0; for(int i=0;i { int j=0; while (a[i][j]) { if(a[i][j]>=’0’&&a[i][j]<=’9’) c++; j++; } } return c; } void main() { char b[4][N]={“12ab3”,”70542”,”abc25”,”x+y=26”}; int c1=f8(b,4); int c2=f8(b+2,2); cout< 9. #include int f9(int x) { cout< if(x<=0){cout< void main() { int x=f9(6); cout< 10. #include const N1=8,N2=6; int average(int a[],int n) { int s=0; for(int i=0;i double average(double a[],int n) { double s=0; for(int i=0;i void main() { int a[N1]={3,6,5,10,8,2}; double b[N2]={3.2,5,6.2,5.6,4.9,8.4}; int v1;double v2; v1=average(a,N1); v2=average(b,N2); cout<<”v1=”< 11. #include const N=10; template bool insert(DataType a[],int &n,DataType x); template void print(DataType a[],int &n); void main() { int a1[N]={25,48,50,82,66,43}; char a2[N]=”student”; char *a3[N]={“File”,”Edit”,”Insert”,”Project”}; int b1=6,b2=7,b3=4; int n=75;char ch=’w’;char *p=”Build”; insert(a1,b1,n); insert(a2,b2,ch); insert(a3,b3,p); print(a1,b1); print(a2,b2); print(a3,b3); } template bool insert(DataType a[],int&n,DataType x) { if(n<0){cout<<”操作失败!”< cout<<”操作成功!”< template for(int i=0;i { cout< 12. #include void fun10(int *a[],int m,int n) { int i,j; for(i=0;i a[i][j]=(i+1)*(j+1); } void main() { int m1,n1; cout<<”输入矩阵的行数和列数:”; cin>>m1>>n1; int **b=new int *[m1]; fun10(b,m1,n1); for(int i=0;i for(int j=0;j 二、指出下列每个函数的功能 1. int fun1(int n) { int p=1,s=0; for(int i=1;i<=n;i++) { p*=i;s+=p; } return s; } 2. #include #include double fun2(doble x,double y,char op) { switch(op) { case ‘+’: return x+y; case ‘-’: return x-y; case ‘*’: return x*y; case ‘/’: if(fabs(y)<1.0E-6) { cout<<”除数为0,退出运行!”< return x/y; default: cout<<”运算符非法!”< 3. void fun3(int a[],int n) { int i,j,x; for(i=1;i { x=a[i]; for(j=i-1;j>=0;j--) if(x 4. void fun4(double&x,doble&w,int n) { cout<<”输入一个实数:”; cin>>x; double y=1; w=0; for(int i=1;i<=n;i++) { y*=x;w+=y/i; } } 5. void fun5(char *a,const char *b) { while(*b) *a++=*b++; *a=0; } 6. int fun6(int n) { if (n==0)return 1; else return 2*fun6(n-1); } 7. template int fun7(DT&x,DT&y) { if(x>y) return 1; else if(x==y) return 0; else return -1; } 8. template bool fun8(T a[],int n,T key) { for(int i=0;i if(a[i]==key) return true; return false; } 9. #include #include void fun10(int *&a,int n) { srand (time(0)); int i; a=new int[n]; for(i=0;i 10. void fun10(int **&a,int m,int n) { int I,j; a=new int *[m]; for(i=0;i cout<<”输入”< 三、编写下列程序 1. 编写一个函数,求出一维整形数组a[n]中所有元素的平方之和。 int fun1(int a[],int n); 2. 编写一个函数,分别求出一维整型数组a[n]中所有奇数元素的个数和 所有偶数元素的个数。 void fun2(int a[],int n,int&c1,int&c2); 3. 编写一个函数,从一个二维整型数中查找具有最大值的元素,由引用参 数row和col带回该元素的行号和列号。 void fun3(int a[][N],int m,int&row,int&col);//N为常量 4. 编写一个函数,求出由指针a所指向的字符串中包含的每种十进制数字 出现的次数,把统计结果保存在由指针b所指向的整型数组中。 void fun4(char *a,int *b); 5. 编写一个递归函数过程,求出两个自然数m和n的最大公约数。 int fun5(int m,int n); 6. 编写一个递归函数过程,求出两个自然数m和n的最小公倍数。 int fun6(int m,int n,int b=2); 7. 编写一个程序,求出二元一次方程组{a11x+a12y=a13;a21x+a22y=a23} 的解,其中方程组的系数用一个实数二维数组保存。要求编写出一个主函数和两个普通函数,一个普通函数用于从键盘上向数组输入数据,另一个普通函数用于救出以该数组为系数矩阵的对应方程组的解,并由引 用参数x和y返回所求的两个根,还有当方程组有惟一解时返回真,否则返回假。程序中的主函数用来定义一个二维实型数组,依次调用这两个普通函数,并且输出所求得的解。 提示:方程的两个根x0和y0分别为: x0=(a13a22-a12a23)/(a11a22-a12a21) y0=(a11a23-a13a21)/(a11a22-a12a21) 当a11a22-a12a21!=0时有惟一解。
正在阅读:
C++习题集01-28
分析化学计算题10-15
2015年国家电网公司运行分公司第二批高校毕业生招聘公告04-16
牵引供电跳闸原因分析及查找06-05
会计基础练习题及答案4(考前自我总结)09-10
骄傲的我作文400字07-06
全国计算机二级C选择题题库第35套04-01
争吵作文800字07-06
装饰工程有限公司设计部管理制度与工作流程08-26
思想政治课程与教学论11-06
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- C++
- 习题集
- 2012年灌云中专学生军训安全应急预案
- liminary1138学习手记
- 注册税务师考试典型题解解析《税务代理实务》第二章
- 2018年中国无人机市场分析及发展研究报告目录
- 安徽建筑大学法律与政治学院 2014届法学专业
- 2014年经济学知识:分析生产要素的最佳组合所利用的分析工具解析
- 第二届节能减排大赛获奖作品 - 图文
- 2016年下半年内蒙古综合法律知识:国际经济法的渊源考试试题
- 六(上)体健教案
- 高危儿保健干预方案
- 嘉兴市塑料布企业名录2018版326家 - 图文
- 发展党员会议记录(支部用)
- 县林业工作情况汇报
- 实验一、叠加原理和戴维南定理
- 年产5万吨碳五、碳九冷聚石油树脂融资投资立项项目可行性研究报告(中撰咨询)
- 为什么对外承包工程风险管理很重要
- 人工养殖的参营养价值怎么样
- 关于调整xx公司职工工资方案的请示(4) - 图文
- 运动会方队解说词
- 最新北师大版小学五年级数学下册全册完整教案(2017.2)