Y(A,B,C,D)=∑m(7,11)
第4题
第5题
(1)分析图示电路,写出函数F的逻辑表达式,用Σm形式表示;
(2)若允许电路的输入变量有原变量和反变量的形式,将电路改用最少数目的“与非”门实现;
(3)检查上述(2)实现的电路是否存在竞争一冒险现象?若存在,则可能在什么时刻出现冒险现象?
(4)试用增加冗余项的方法消除冒险(写出函数表达式即可)。
第6题
第7题
(1)应添加“#defineTRUE1”。
(2)应添加“classA1;”。
(3)应添加“friendboolfunc(A2&objl,Al&obj2);”。
(4)将“retllin”补充完整为“returnobjl.m_A2==TRUE&&obj2.m_A1==TRUE;”。
【解析】#define命令一般用一个指定的标识符(即宏
名)来代表一个字符串,其定义形式一般为“#define宏名(参数表)字符串”,因此第1处应添加“#defineTRUEl”。类声明格式为“class<类名>;”,故第2处应添加“class
A1;”。友元不是本类的成员函数,在它的函数体内可以通过对象名来访问类的私有成员和保护成员。友元函数是在类声明中由关键字friend修饰的非成员函数,第3处应添加“friendboolfune(A2&objl,Al&obj2);”。函数func返回变量m_A2和m_A1的逻辑与运算结果,因此第4处的语句应改为“returnobj1.m_A2==TRUE&&obj2.m_A1==TRUE;”。
【我提交的答案】:
【参考答案分析】:
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列撮作,将类的定义补充完整。
(1)利用define定义常量TRUE为1,定义常量FALSE为0,请在注释1后添加适当的语句。
(2)在类A2前增加A1的声明,请在注释2后添加适当的语句。
(3)在类Cl中声明友元函数boolrune(A2&a,A1&b),请在注释3后添加适当的语句。
(4)实现函数boolfunc(A2&obj1,Al&obj2)的功能,检查两个类的值都为TRUE,则返回TRUE,请在注释4后添加适当的语句。
注意:除在指定位置添加语句之外,不要改动程序中的其他内容。
试题程序:
#include(iostream.h>
//********1********
#
defineFALSE0
//********2********
classA2
{
private:
boolm_A2;
friendboolfunc(A2&objl,A1&obj2);
public:
A2
{
m_A2=FALSE。
}
public:
voidsetA2(booln)
{
m_A2=n;
}
};
elaSSA1
{
private:
boolm_A1;
//********3*********
public:
A1
{
m_A1=TRUE;
}
public:
voidsetAl(booln)
{
m_A1=n;
}
};
boolfunc(A2&objl,A1&obj2)
{
//********4********
return
}
intmain
{
A20bj0;
A10bj1;
cout<<fune(obj0,objl)<<endl;
obj0.setA2(TRUE);
objl.setAl(TRUE);
cout<<func(obj0,objl)<<endl;
return0;
}
这题我都看不懂
第8题
第9题
下面程序的功能是用指针变量作函数参数编程计算任意m×n阶矩阵的转置矩阵。要求用指向一维数组的指针变量即二维数组的行指针作函数参数。程序的运行结果如下: Please enter matrix: 1 2 3 4↙ 1 2 3 4↙ 1 2 3 4↙ The transposed matrix is: 1 1 1 2 2 2 3 3 3 4 4 4 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h> #define ROW 3 #define COL 4 void Transpose(int (*a)[COL], int (*at)[ROW], int row, int col); void InputMatrix(int (*s)[COL], int row, int col); void PrintMatrix(int (*s)[ROW], int row, int col); int main(void) { int s[ROW][COL];//s代表原矩阵 int st[COL][ROW];//st代表转置后的矩阵 printf("Please enter matrix:\n"); InputMatrix(s, ROW, COL);//输入原矩阵,s指向矩阵s的第0行,是行指针 Transpose(s, st, ROW, COL);//对矩阵s进行转置,结果存放于st中 printf("The transposed matrix is:\n"); PrintMatrix(st, COL, ROW); //输出转置矩阵,*st指向st的第0行,是行指针 return 0; } //函数功能: 对任意row行col列的矩阵a转置,转置后的矩阵为at void Transpose(____________,int (*at)[ROW], int row, int col) { int i, j; for (i=0; i <row; i++) { for (j="0;" j++) _____________________; } void inputmatrix(___________, int row, col) 输入矩阵元素 i, j; (i="0;" scanf("%d", ___________); 元素s[i][j] printmatrix(int ___________, 输出矩阵元素 printf("%d\t", *(*(s+i)+j)); printf(" \n");> A、第20行: int (*a)[COL] 第27行: *(*(at+j)+i) = *(*(a+i)+j) 第32行: int(*s)[COL] 第39行: *(s+i)+j 第44行: (*s)[ROW]
B、第20行: int *a[COL] 第27行: *(*(at+j)+i) = (*(a+i)+j) 第32行: int(*s)[ROW] 第39行: *(s+i)+j 第44行: *s[COL]
C、第20行: int (*a)[ROW] 第27行: *(at+j+i) = *(*(a+i)+j) 第32行: int(*s)[COL] 第39行: *(s+i+j) 第44行: (*s)[ROW]
D、第20行: int (*a)[COL] 第27行: *(*(at+j)+i) = *(*(a+i+j)) 第32行: int(*s)[ROW] 第39行: *(s)+i+j 第44行: (*s)[COL]
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!