程序设计基础课后答案第四章

上传人:博****1 文档编号:562759289 上传时间:2022-11-25 格式:DOC 页数:28 大小:91.50KB
返回 下载 相关 举报
程序设计基础课后答案第四章_第1页
第1页 / 共28页
程序设计基础课后答案第四章_第2页
第2页 / 共28页
程序设计基础课后答案第四章_第3页
第3页 / 共28页
程序设计基础课后答案第四章_第4页
第4页 / 共28页
程序设计基础课后答案第四章_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《程序设计基础课后答案第四章》由会员分享,可在线阅读,更多相关《程序设计基础课后答案第四章(28页珍藏版)》请在金锄头文库上搜索。

1、C+程序设计基础课后答案-第四章4.1 阅读下列程序,写出执行结果1#include void main() int i, conut=0, sum=0 ; float average ; int a = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;for( i=0; i10; i+ ) if( ai % 2 = 0 ) continue ; sum += a i ; conut + ; average = sum / conut ;cout conut = conut t average = average endl ; 2.#include void main() int

2、 a9 = 1, 2, 3, 4, 5, 6, 7, 8, 9 ; int *p = a , sum = 0 ; for( ; pa+9; p+ ) if( *p % 2 = 0 ) sum += *p ; cout sum = sum endl ; 3const int n = 5 ; #include #include void main() int ann= 0 , i, j, k ; for( k=1 , i=0 ; i= 0; j- , k+ )aji - j = k ; for( i=0 ; in ; i+ ) for( j=0; jn ; j+ ) cout setw( 3 )

3、aij ; cout endl ; 4int f(int ,int); #include void main() int a = -1, 3, 5, -7, 9, -11 ; cout f( a, 6 ) endl ; int f( int a, int size ) int i, t=1 ; for( i=0 ; i0 ) t *= ai ; return t;5int f( int 3, int, int ) ; #include void main() int a3 = 0, 1, 2, 3, 4, 5, 6, 7, 8 ; cout f( a, 3, 3 ) endl ; int f(

4、 int a3, int row, int col ) int i, j, t=1 ; for( i=0; irow; i + ) for( j=0; jcol; j+ ) aij + ;if( i = j ) t *= aij ; return t ; 6#include void test1( int *a1 ) a1 = new int( 5 ) ; cout *a1 = *a1 endl ; void test2(int * & a2) a2 = new int( 5 ) ;cout *a2 = *a2 endl ; void main() int *p = new int( 1 )

5、; test1( p ) ; cout test1: *p1 = *p endl ; test2( p ) ; cout test2: *p2 = *p endl ; 7#include void main() char s = abccda ; int i ; char c ; for( i = 1 ; ( c=si ) != 0; i + ) switch( c ) case a : cout % ; continue ; case b : cout $ ; break ; case c : cout * ; break ; case d : continue ; cout # endl

6、; 8#include void main() char *str = c+, basic, pascal ; char *p ; int i ; p = str ; for( i=0 ; i3 ; i+ ) cout *( p+i ) endl ; 9#include void main() char s1 = Fortran , s2 = Foxpro ; char *p , *q ; p = s1 ; q = s2 ; while( *p & *q ) if ( *p = *q ) cout *p ; p + ; q + ; cout endl ; 10#include #include

7、 void main() char str10 = vb, pascal, c+ , s10 ; strcpy( s , ( strcmp( str0 , str1 ) 0 str0 : str1 ) ) ; if( strcmp( str2, s ) 0 ) strcpy( s, str2 ) ; cout s i,j的下标变换公式,并用程序验证之。4有以下函数void query() int *p; p=new int3;/ delete p; p=new double5; / delete p;出现了编译错误。请分析错误的原因,并把上述程序补充完整,上机验证你的判断。5有以下程序根据输入

8、值,调用函数create建立并初始化动态数组,令ai=i。该程序运行后,主函数不能返回期望值。请分析程序的错误原因并修改之。#include void create(int *, int);void main() int *a, len; cinlen; create(a,len); for( int i = 0; ilen; i+ ) cout ai ; cout endl; delete a;void create(int *ap, int n) ap=new intn; for(int i=0; in; i+) api=i;1数组说明语句要向编译器提供什么信息?请写出一维数组、二维数组说

9、明语句的形式。【答案】数组说明语句要向编译器提供数组名(标识符),数组元素的类型、数组长度(元素的个数)等信息。一维数组说明语句为: 类型 数组名表达式二维数组说明语句为: 类型 数组名表达式1 表达式22数组名、数组元素的区别是什么?归纳一维数组元素地址、元素值不同的表示形式。若有说明int aa 3, *pa=aa;请使用aa或pa,写出3个以上与aa2 等价的表达式。【答案】数组名是一个标识符,执行代码中代表数组的地址,即指向数组起始位置的指针;而数组元素是下标变量,性质相当于普通变量。对一维数组aa第i个元素的地址可以表示为: &aai aa+i;对一维数组aa第i个元素的值可以表示为

10、: ai *(a+i);与aa2等价的表达式:*(aa+2) *(&a2) *(pa+2) pa23要把一维数组 int am*n 的元素传送到二维数组 int bmn 中,即在程序中要执行bij=ak;请写出ki,j的下标变换公式,并用程序验证。【答案】转换公式 i=k/n j=k%n验证程序:#include using namespace std;int main() const int M=3,N=4;int k,aM*N=1,2,3,4,5,6,7,8,9,10,11,12,bMN;int i,j;coutarray a:endl;for(k=0;kM*N;k+)bk/Nk%N=ak;for(k=0;kM*N;k+) coutakt;coutendl;cout*After convert*endl;coutarray b:endl;for(i

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号