《电大C++语言程序设计课程的程序分析练习题及答案资料参考答案【电大考试必备】.doc》由会员分享,可在线阅读,更多相关《电大C++语言程序设计课程的程序分析练习题及答案资料参考答案【电大考试必备】.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、电大C+语言程序设计课程的程序分析练习题徐孝凯 一、写出下列每个程序运行后的输出结果 1. #include #include void main() int x=20, y=6, z; char op=+; switch(op) case +: z=x+y; break; case -: z=x-y; break; default: cout操作符op出错,退出运行!;exit(1); cout”z=”zendl; 运行结果: 2. #include #include void main() char* a5=student,worker,cadre,soldier,apen; unsign
2、ed int n=strlen(a0); /求字符串a0的长度 for(int i=1;in) n=strlen(ai); coutnendl; 运行结果: 3. #include int WF(int x, int y) x=x+y; y=x+y; return x+y; void main() coutWF(8,5)endl; 运行结果: 4. #include const int N=9; void main() int aN=2,4,6,8,10,12,14,16,18; int s=0; for(int i=0; iN; i+) if(ai%3=0) s+=ai; cout”s=”s
3、endl; 运行结果: 5. #include void main() int* d=new int5; int i,s=0; for(i=0;i5;i+) di=2*i+1; for(i=0;i5;i+) s+=di; cout3*sendl; deleted; 6. #include void SB(char ch) switch(ch) case A: case a: cout优! ; break; case B: case b: cout良! ; break; case C: case c: cout通过! ; break; default: cout不通过!;break; void
4、main() SB(A); SB(c); coutendl; 运行结果: 7. #include void main() int a6=36,25,48,14,55,40; int x=a0; for(int i=1;ix) x=ai; cout”x=”xendl; 运行结果: 8. #include void main() int a6=32,53,27,19,12,45; for(int *p=a; pa+6; p+) if(*p%3=0) cout*p ; coutendl; 运行结果: 9. #include int* LG(int m) int* a=new int(m+5); re
5、turn a; void main() int n1=12; int *b=LG(n1); cout*bendl; delete b; 运行结果: 10. #include #include struct Worker char name15; int age; float pay; ; void main() Worker x; strcpy(x.name, WeiRong); x.age=45; x.pay=3275; coutx.name x.age x.payendl; 运行结果: 11. #include void main() int n=5, sum=0; while(n) su
6、m+=n; n-; cout”sum=”sumendl; 运行结果: 12. #include const int N=6; void main() int aN=76,83,54,62,40,65; int c1, c2; c1=c2=a0; for(int i=1;ic1) c1=ai; else if(aic2) c2=ai; coutc1 c2endl; 运行结果: 13. #include void main() int a8=4,8,15,16,20,30,48,62; int *p=a; while(pa+8) cout*p ; p+=3; coutendl; 运行结果: 14.
7、#include int LF(int x, int y) x=x+y; y=x+y; return x+y; void main() int x=5, y=8; coutLF(1,2) LF(3,4)endl; 运行结果: 15. #include class A int a,b; public: A() a=b=0; A(int aa, int bb) a=aa; b=bb; couta bendl; ; void main() A x,y(3,4); 运行结果: 16. #include void main() int n=4,y=1; while(n-) y*=3; couty=yen
8、dl; 运行结果: 17. #include void main() int a8=2,8,10,5,12,7,9,20; int c=0, i=0; while(i10) c+; i+; coutc=cendl; 运行结果: 18. #include void main() int a5=3,6,9,12,8; for(int *p=a; p8) cout*p ; 运行结果: 19. #include int LA(int a, int n) int s=0; for(int i=0;in;i+) s+=ai; return s; void main() int a5=5,2,8,6,4;
9、int b=LA(a,5); coutb=bendl; 运行结果: 20. #include struct AB char aa15; int bb; ; void main() AB a4=Apple,25,Peach,40,Pear,36,Tomato,62; for(int i=0;i4;i+) if(ai.bb40) coutai.aa ; coutendl; 运行结果: 21. #include void main() int s1=0; for(int i=1; i=5; i+) s1+=2*i; cout”s1=”s1endl; 输出结果: 22. #include void m
10、ain() int a6=6,9,12,18,15,20; int c=0; for(int i=0; i6; i+) if(ai%2=1) c+; coutc=cendl; 输出结果: 23. #include void main() int a34=1,2,7,8,5,6,11,15,9,20,3,4; int m=a00; for(int i=0;i3;i+) for(int j=0;jm) m=aij; coutmendl; 输出结果: 24. #include void main() int a=10, b=15, c; c=a+b; int b=a+20; c+=a+b; cout
11、cendl; 输出结果: 25. #include void main() int a8=6,19,4,12,20,5,18,25; int *p, s=0; for(p=a; pa+8;p+) if(*p10) s+=*p; coutsendl; 输出结果: 26. #include void main() int s=0; for(int i=1;i=8;i+=2) s+=i*i; couts=sendl; 输出结果: 27. #include void main() int i=1,s=0; while(s15) s+=i+; couti,sendl; 输出结果: 28. #includ
12、e void main() int a8=36,25,48,14,55,20,47,82; int c1=0, c2=0; for(int i=0; i8; i+) if(ai50) c1+; else c2+; coutc1 c2endl; 输出结果: 29. #include int LB(int *a, int n) int p=1; for(int i=0;in;i+) p*=*a; a+; return p; void main() int a5=1,2,3,4,3; coutLB(a,5)endl; 输出结果: 30. #include struct Worker char nam
13、e15; /姓名 int age; /年龄 float pay; /工资 ; void main() Worker x=wangfong,46,1640; Worker y, *p; y=x; p=&x; couty.age+10 pay*2endl; 输出结果: 31. #include void main() int n=5, sum=0; while(n) sum+=n*n; n-; coutsum=sumendl; 运行结果: 32. #include const int N=6; void main() int aN=76,83,54,62,40,65; int c1=0; for(
14、int i=0;i=60) c1+; coutc1=c1endl; 运行结果: 33. #include void main() int a8=4,8,15,16,20,30,48,62; int *p=a,s=0; while(pa+8) s+=*p; p+=3; coutsendl; 运行结果: 34. #include int a=10, b=15, c; void main() c=a+b; int b=a+20; c+=a+b; coutcendl; 输出结果: 35. #include void FF(int a, int n) int i,x; for(i=0; in/2; i+
15、) x=ai; ai=an-1-i; an-1-i=x; void main() int a8=6,19,4,12,20,5,18,25; FF(a,8); couta0,a1b) a=b; if(ac) a=c; return a; 函数功能: 2. double WA(double a, int n) double s=0; for(int i=0;in;i+) s+=ai; return s/n; 函数功能: 3. double SF(double x, int n) /n为大于等于0的整数 double p=1,s=1; for(int i=1;i=n;i+) p*=x; s+=p/(
16、i+1); return s; 函数功能: 4. double FI(double n) /n为大于等于1的整数 double x,y=0; for(int i=0; ix; y+=x; return y; 函数功能: 5. int WG(int a, int b) if(a0 & b0) return 1; else if(a0 & bnext; return n; 函数功能: 7. int SA(int a, int b) if(ab) return 1; else if(a=b) return 0; else return -1; 函数功能: 8. int LK(int a, int n
17、) float s=0; int i; for(i=0;in;i+) s+=ai; s/=n; int m=0; for(i=0;i=s) m+; return m; 函数功能: 9. int WD(int a, int n) int m=a0; for(int i=1;im) m=ai; return m; 函数功能: 10. bool WB(int a, int n, int x) for(int i=0;in;i+) if(ai=x) return true; return false; 函数功能: 11. int LJ(int a, int n) int k=0; for(int i=
18、1;iak) k=i; return ak; 函数功能: 12. 假定结构类型DNode中的data域为结点值域,next域为结点指针域。 void QB(DNode *f) /f指向单链表的表头结点 if(f=NULL) return; while(f!=NULL) coutdatanext; 函数功能: 13 int WC(int a, int n, int k) int c=0; for(int i=0;i=k) c+; return c; 函数功能: 14. bool SG(int x) /x为大于等于2的整数 int a=int(sqrt(x); /sqrt(x)为求x的平方根 in
19、t i=2; while(i=a) if(x%i=0) break; i+; if(i=a) return true; else return false; 函数功能: 15. 假定结构类型Worker中的name域表示姓名,age域表示年龄,pay域表示工资。 void QA(Worker a, int n) for(int i=0; iai.nameai.ageai.pay; 函数功能: 16. double FI(int n) /n为大于等于1的整数 double x,y=0; do cinx; y+=x*x; while(-n); return y; 函数功能: 17. bool WE
20、(int a, int b, int n) for(int i=0;in;i+) if(ai!=bi) break; if(i=n) return true; return false; 函数功能: 18. int LK(int a, int n) double s=0; int i,m=0; for(i=0;in;i+) s+=ai; s=s/n; for(i=0;i=s) m+; return m; 函数功能: 19. double FI(int n) /n为大于等于1的整数 double x,y=0; do cinx; y+=x; while(-n); return y; 函数功能: 2
21、0. bool WE(int a, int b, int n) for(int i=0;in;i+) if(ai!=bi) break; if(i=n) return true; return false; 函数功能: 21. int LK(int a, int n) double s=0; int i,m=0; for(i=0;in;i+) s+=ai; s=s/n; for(i=0;i=s) m+; return m; 函数功能:二、写出下列每个函数的功能(参考答案)评分标准:每题与参考答案的叙述含义相同者得8分,否则酌情给分。1. 求出a,b,c三个数中的最小值并返回。2. 求出数组a中
22、n个元素的平均值并返回。3. 计算出表达式的值并返回。4. 求出并返回从键盘上输入的n个实数之和。5. 若a和b都大于0则返回1,若a和b都小于0则返回-1,其他任何情况则返回0。6. 求出并返回f单链表的长度(即结点个数)。7. 比较两个整数a和b的大小,若ab则返回1,若a=b则返回0,若ab则返回-1。8. 求出数组a的n个元素中大于等于平均值的元素个数并返回。9. 从数组a的n个元素中求出最大值并返回。10.从数组a中顺序查找值为x的元素,若查找成功则返回真,否则返回假。11.求出数组a中n个元素的最大值并返回。12.遍历输出f单链表中的所有结点的值。13. 统计出数组a的n个元素中大于等于参数k的值的元素个数并返回。14. 判断x是否为一个素数(或质数),若是则返回真,否则返回假。15. 从键盘上输入n个Worker结构类型的记录依次保存到一维数组a的对应元素中。16.求出从键盘上输入的n个整数的平方和并返回。17. 判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回假。18.统计出数组an中大于等于其平均值的元素个数并作为函数值返回。19.求出从键盘上输入的n个整数的和并返回。20. 判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回假。21.统计出数组an中大于等于其平均值的元素个数并作为函数值返回。17