文档详情

《高级语言程序设计C++》平时作业..doc

发布:2017-01-24约6.64千字共15页下载文档
文本预览下载声明
一、分析程序,写输出结果 1. #includeiostream.h #includemath.h void main() {int m, k, i ; for( m=1; m=10; m+=2 ) { k = m/3; for( i=2; i=k; i++ ) if( m%i ) cout m ; } } 解:m 的取值为1,3,5,7,9 对应k的取值为0,1,1,2,3, 第二个for循环:只有当k=2和k=3时才执行, 当k=2,i=2,m%i等于1为真,输出m为7 当k=3,i=2,m%i等于1为真,输出m为9, i=3,m%i等于0为假,无输出 结果为: 7 9 2. #includeiostream.h void fun(); void main() {int i; for(i=1;i5;i++) fun(); coutendl; } void fun() { static int a; int b=2; a += 2 ; cout a+b \t; } 解:主函数循环4次调用fun(); fun()函数内定义了静态局部变量a,所以a的值会保持到下一次调用。 结果为: 4 6 8 10 3. #includeiostream.h int fun(int n) { if(n==0) return 1; return 2*fun(n-1); } void main() { int a=5; coutfun(a)endl; } 解:fun()函数用递归求出2的n次方, 结果为: 32 4. #includeiostream.h void main() { char *cp=word; for (int i=0 ; i4; i++ ) coutcp+i \t; } 解:主函数4次循环中, 第一次输出cp+i,此时cp指向“word”的第一个字符,所以输出“word”, 之后cp依次往后移一个位置,输出此位置及后面的字符 结果为: word ord rd d 二、.根据程序功能填空。 1. 程序把10个数存储到一维数组a中,并求该数组中最大值。 #includeiostream.h void main() { int max; int a[10]={76,55,95,87,85,83,65,90,77,85}; int *p= a ; max=*p; for( ; p a[10] ; p++) if( *pmax ) max= *p ; coutmax= maxendl; } 2.下面程序的功能是输出1至100之间每位数字的乘积大于每位数的和的数。例如,45两位数字的乘积为4×5=20,和为4+5=9。 #includeiostream.h void main() { int n, k=1, s=0, m; for(n=1; n=100; n++) { k=1; s=0; M=n ; while( m0 ) { k*=m%10; s+=m%10; m=m/10 ; } if(ks) coutn\t; } } 3.程序对输入的n求s = 1 + 1/23 + 1/33 + … + 1/n3 。 #includeiostream.h void main() {double s; int i, n; cout n= ; cinn; s = 0; for (i=1; in ; i++) s= s+1/(i*i*i) ; couts=sendl; } 4.函数create从键盘输入整数序列,以输入0为结束。按输入顺序建立一个以head为表头的单向链表。 struct node{int data; node * next;}; create( node *head ) {node *p, *q; p=new node; cinp-data; q=p; while(
显示全部
相似文档