问答题

编程题(20分) 【题目】 试定义一个类Array,将4行5列二维数组的各列前3个元素依次拼接成一个整数,再将该整数赋值给相应列的最后一个元素。例如, (1)私有数据成员: int a[4][5]; (2)公有成员函数。 Array(int b[][5],int n):构造函数,用二维数组b初始化数组a,参数n表示数组b的行数。 void val(int j):将成员数组a第j列的前3个元素依次拼接成一个整数赋值给第4个元素。 void fun():利用成员函数vaLl()依次处理数组a的各列,完成题目的要求。 void print():按矩阵形式打印数组a。 (3)在主函数中完成对该类的测试。 输出示例: 原数组: 1 2 0 4 1 16 11 21 0 2 2 0 3 1 3 0 0 0 0 0 处理后的数组: l 2 0 4 1 16 11 21 0 2 2 0 3 1 3 1162 2110 213 401 123 【要求】 源程序文件名必须为myfb.cpp,并放在T盘根目录下,供阅卷用。

【参考答案】

#include class Array{ int a[D][E]; ......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
改错题(20分) 【题目】 以下程序的功能是:根据字符串str中是否包含子串substr,决定如何将字符串str1插入到str的不同位置。插入方法是:如果str中包含子串substr,则将str1插入到str中首次出现的子串substr之后;否则,插入到str的尾部。 正确程序的输出如下: 原字符串:aabcd12345 子字符串:abcd 插入字符串:ABC 新字符串:aabcdABC12345 含有错误的源程序如下: #include #include char *find(char *str,char *substr) { unsigned lent=strlen(str); for(char *p1=str,*p2=substr;strlen(p1)>=len;p1++){ for(unsigned i=0;ilen) return p1+len; } return 0; } char *insert(char *str,char *substr,char *str1) { char p=find(str,substr); if(p) strcat(str,str1); else{ char *tmp=new char[strlen(str)+strlen(str1)+1]; strcpy(tmp,str1) strcat(tmp,p); strcpy(p,tmp); delete []tmp; } return str; } void main() { char *str=new char[80],substr[]= abcd ,str1[]= ABC ; strcpy(str, aabcdl2345 ); ’ cout<< 原字符串: <<str<< 子字符串: <<substr<< 插入字符串: <<str1<<endl; str=insert(str,substr,str1); cout<< 新字符串: <<str<<endl; delete []str; } 【要求】 1.把上述程序录入到文件myfa.cpp中,根据题目要求及程序中语句之间的逻辑关系对。程序中的错误进行修改。程序中的注解可以不输入。 2.改错时,可以修改语句中的一部分内容,增加少量的变量说明、函数原型说明或编译预处理命令,但不能增加其他语句,也不能删除整条语句。 3.改正后的源程序文件myfa.cpp必须放在T盘根目录下,供阅卷用。