问答题【说明】某学期成绩管理系统的“增、删、改数据表中的记录”对话框如图1-19所示。图1-19对话框中共定义了6个标签、6个文本框、4个命令按钮和1个Data数据控件。其中Data数据控件是VisualBasic的标准控件。利用它能方便地创建应用程序与数据库之间的连接,并实现对数据资源的访问。【添加】(cmdAdd)按钮用于向学生成绩数据表添加一条空记录:【修改】(cmdEdit)按钮用于修改当前所显示的一条数据记录:命令按钮【删除】(cmdDelete)用于删除当前显示的一条数据记录;单击【退出】(cmdExit)按钮,系统将退出图1-19所示的对话框。表1-13是学生成绩表结构的示例;表1-14是学生成绩表的示例。图1-19将表1-14数据库中的记录信息显示到相应的文本框中。要在各文本框(txtStu(i),i=0,1,2,3,4,5)中显示Data数据控件所连接的数据表中的数据,必须将文本框与Data数据控件进行绑定。表1-13学生成绩表结构字段名类型大小 字段名类型大小班级Text6语文Integer2(默认)学号Text8数学Integer2(默认)姓名Text10英语Integer2(默认) 表1-14学生成绩示例表班级学号姓名语文数学英语AA40001张薇958690BB40001谢新677181AA40002刘红948986CC40001张斌788886………………【VisualBasic程序】PrivateSubForm_Load()Fori=0To5txtStu(i).Locked=TrueNextiEndSubPrivateSubcmdAddClick()cmdEdit.Enabled=NotcmdEdit.Enabled(1)Fori=0To5txtStu(i).Locked=NottxtStu(i).LockedNextiIfcmdAdd.Caption="添加"Then(2)Datal.Caption="新记录"cmdAdd.Caption="保存"cmdExit.Caption="取消"txtStu(0).SetFocusElseDatal.Recordset.Update(3)cmdAdd.Caption="添加"EndIfEndSubPrivateSubcmdEdit_Click()cmdAdd.Enabled=NotcmdAdd.EnabledcmdDelete.Enabled=NotcmdDelete.EnabledFori=0To5txtStu(i).Locked=NottxtStu(i).LockedNextiIfcmdEdit.Caption="修改"ThenDatal.Recordset.EditcmdEdit.Caption="保存"cmdExit.Caption="取消"Else(4)cmdEdit.Caption="修改"EndIfEndSubPrivateSubcmdDelete_Click()answer=MsgBox("确实删除该记录吗?",vbYesNo+vbQuestion,"警告")Ifanswer=vbYesThenDatal.Recordset.Delete(5)IfDatal.Recordset.EOFThen(6)EndIfEndIfEndSubPrivateSubcmdExit_Click()IfcmdExit.Caption="退出"ThenEndElse(7)cmdAdd.Enabled=TruecmdEdit.Enabled=TruecmdDelete.Enabled=TrueFori=0To5txtStu(i).Locked=NottxtStu(i).LockedNexticmdExit.Caption="退出"cmdAdd.Caption="添加"cmdEdit.Caption="修改"(8)EndIfEndSubPrivateSubDatal_Reposition()Datal.Caption="第"&(9).AbsolutePosition+1&"条记录"EndSub1.【问题1】请根据【说明】和图1-19的显示结果,从以下备选答案中为(1)~(9)空缺处选择正确的答案。(以下部分选项可重复选择)【备选答案】A.Datal.RefreshB.Datal.Recordset.UpdateC.Datal.RecordsetD.Datal.Recordset.CancelUpdateE.Datal.Recordset.AddNewF.Datal.Recordset.MoveNextG.Datal.Recordset.MoveLastH.cmdDelete.Enabled=NotcmdDelete.Enabled
问答题[说明]某订单管理系统的部分UML类图如图3-21所示。图3-21某订单管理系统的部分分类图在图3-21中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,OrdeItem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。各个类的部分属性和方法说明如表3-16所示。{{B}}表3-16某订单管理系统各个类的部分属性和方法说明表{{/B}}类成员说明ProductListArrayListproductsProductStringcode产品编号Stringdescription产品描述doubleprice产品单价Booleanequals(Objectobject)若两个产品相同则返回true,否则返回falseOrderItemProductproduct订单项中的产品intquantity产品的订购数量ProductgetProduct()获取订单项中的产品OrderArrayList(OrderItem)items订单中饮食的订单项OrderListArrayList(Order)Orders订单voidaddOrder(OrderOrder)向订单列表中添加新订单intgetNumberOfOrders()获取订单列表中的订单总数SalesSystemProductListcatalog产品目录OrderListsales订单列表voidstatistic()依次统计产品目录中每个产品的订购总量,并打印出每个产品的编号、说明、订购总量和订购金额可以使用类java.util.ArrayList<E>来实现对象的聚集关系,如图3-21所示OrderList与Order之间的聚集关系。For...each循环提供了一种遍历对象集合的简单方法。在for...each循环中,可以指定需要遍历的对象集合及用来接收集合中每个元素的变量,其语法如下:for(用来接收集合中元素的变量:需要遍历的对象集合)如果要使用for-each循环来遍历对象集合,那么包含该对象集合的类必须实现接口java.util.Iterable<T>。[Java程序7-1]和[Java程序7-2]分别给出了类OrderList和方法statistic的Java代码。[Java程序7-1]importjava.util.*.publicclassOrderList{{U}}(1){{/U}}{privateArrayList<Order>orders;publicOrderList(){this.orders=newArrayList(Order)"();}publicvoidaddOrder(Orderorder){this.orders,add(order);}publicIterator<Order>iterator(){return{{U}}(2){{/U}};}publicintgetNumberOfOrders(){returnthis.orders,size();}}[Java程序7-2]importjava.util.*;publicclassSalesSystem{privateProductListcatalog;privateOrderListsales;privatestaticPrintWriterstdOut=newPrintWriter(System.out,true);publicvoidstatistic(){for(Productproduct:{{U}}(3){{/U}}{intnumber=0;for(Orderorder:{{U}}(4){{/U}}{for({{U}}(5){{/U}}:order){if<product.ecluals(item.getProduct()))number+=item.getQuantity();}}stdOut.println(product.getCode()+""+product.getDescription()+""+number+""+number*product.getPrice());}}//其余的方法未列出}
问答题【说明】下面流程图的功能是:在已知字符串A中查找特定字符串B,如果存在,则输出B串首字符在A串中的位置,否则输出-1。设串A由n个字符A(0),A(1),…,A(n-1)组成,串B由m个字符B(0),B(1),…,B(m-1)组成,其中n≥m>0。在串A中查找串B的基本算法如下:从串A的首字符A(0)开始,取子串A(0)A(1)…A(m-1)与串B比较;若不同,则再取子串A(1)A(2)…A(m)与串B比较,依次类推。例如,字符串“CABBRFFD”中存在字符子串“BRF”(输出3),不存在字符子串“RFD”(输出-1)。在流程图中,i用于访问串A中的字符(i=0,1,…,n-1),j用于访问串B中的字符(j=0,1,…,m-1)。在比较A(i)A(i/1)…A(i+m-1)与B(0)B(1)…B(m-1)时,需要对A(i)与B(0)、A(i+1)与B(1)、…、A(i+j)与B(j)等逐对字符进行比较。若发现不同,则需要取下一个子串进行比较,依此类推。【流程图】
问答题阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
[说明]
下面的代码运行时,从键盘输入一个四位数(各位数字互不相同,可以有0),取出组成该四位数的每一位数,重组成由这四个数字构成的最大四位数max4和最小四位数min4(有0时为三位数),计算max4与min4的差值,得到一个新的四位数。若该数不等于6174,则重复以上过程,直到得到6174为止。
例如,输入1234,则首先由4321-1234,得到3087;然后由8730-378,得到8352;最后由8532-2358,得到6174。
[C代码]
#include<stdio.h>
int difference(int a[])
( int t,i,j,max4,min4;
for(i=0; i<3; i++){/*用简单选择排序法将a[0]~a[3]按照从大到小的顺序排列*/
t=i;
for(j=i+1; ______; j++)
if(a[j]>a[t]) ______;
if(t!=i){
int temp=a[t]; a[t]=a[i]; a[i]=temp;
}
}
max4=______;
min4=______;
return max4-min4;
}
int main()
{ int n,a[4];
printf("input a positive four-digit number:");
scanf("%d",
while(n!=6174){
a[0]= ______; /*取n的千位数字*/
a[1]=n/100%10; /*取n的百位数字*/
a[2]=n/10%10; /*取n的十位数字*/
a[3]= ______; //取n的个位数字*/
n=difference(a);
}
return 0;
}
问答题【说明】喜迎2008年北京奥运会!以下【C程序】能将一个给定汉字(例如,奥运会的“会”字)的点阵逆时针旋转90°,并输出旋转前后的点阵数据及字形。图1-15是汉字“会”字的16×16点阵字形,用数字0表示空白位置,用数字1表示非空白位置,“会”字的第1行即可表示成如下的0,1序列:0000000100000000如果把它看做一个字的16个位,“会”字的第1行可以用十六进制数0100来表示。同理,“会”字的第2行可以用十六进制数0240表示,第3行可以用十六进制数0420表示……依此类推,用16个双字节整型数即可存放一个汉字点阵字形。“会”字的点阵数据及字形如图1-15的左半部分所示。将一个汉字逆时针旋转90°,就是把该汉字点阵的最右列作为旋转后新点阵的第1行,次最右列作为旋转后新点阵的第2行……依此类推来形成一个旋转后的点阵字形。图1-15的右半部分就是将“会”字逆时针旋转90°后的点阵数据和字形(提示:读者可将书本顺时针旋转90°,以查看旋转90°后的点阵字形)。在【C程序】中,数组old存放着“会”字的16个双字节整型点阵数据。函数turnleft能将该点阵数据逆时针旋转90°,旋转后的点阵数据存放在数组new中。函数display能将旋转前后的点阵数据加以编辑,用字符“.”表示值为0的位,用字符“x”表示值为1的位,从而将旋转前后的点阵按行输出其十六进制的数据和字形,如图1-15所示。【C程序】#include<stdio.h>#defineEMPTY'.'#defineNONEMPTY'x'#defineLEFT0#defineRIGHT1main()staticunsignedold[16]=0x0100,0x0240,0x0420,0x0810,0x1004,0x23c2,0x4001,0x8ff8,0x0100,0x0200,0x0400,0x0800,0xl000,0x2004,0x7ffe,0x0001;unsignednew[16];turnleft(old,new);display(old,new);turnleft(old,new)unsignedold[],new[];introw,k;for(row=0;row<16;row++)for((1);k<16;k++)new[row]|=((old[k]>>(2))display(old,new)unsigned*old,*new;charout[2][17],letter[2];introw,col;letter[O]=EMPTY;letter[1]=NONEMPTY;out[LEFT][16]=out[RIGHT][16]=(4);for(row=0;row<16;row++,old++,new++)for(col=0;co1<16;++col)out[LEFT][col]=letter[((5))out[RIGHT][col]=letter[((6))printf("/n%4x%s",*old,printf("%4x%s",*new,
问答题【说明】
本程序用古典Eratosthenes;筛选法求从2起到指定范围内的素数。如果要找出2~10中的素数,开始时筛中有2~10的数,然后取走筛中最小的数2,宣布它是素数,并把该素数的倍数都取走。这样,第一步以后,筛子中还留下奇数3、5、7、9;重复上述步骤,再取走最小数3,宣布它为素数,并取走3的倍数,于是留下5、7。反复重复上述步骤,直到筛中为空时,工作结束,求得2~10中的全部素数。
【代码】
# include <stdio.h>
# define MAX 22500
/*程序中用数组sieve表示筛子,数组元素sieve[i]的值为1时,表示数i在筛子中,值为-1时表示数i已被取走*/
main()
{ unsigned int i, range, factor, k;
int sieve[MAX];
printf("please input the range:");
scanf("%d", /* range 指出在多大的范围内寻找素数*/
for(i=2; i<=range; i++)
{{U}} (1) {{/U}};
factor=2;
while (factor<=range)
{ if({{U}} (2) {{/U}}) /* 筛中最小数是素数 */
{ printf("%d/t", factor);
k=factor;
while (k<=range) /*移走素数的倍数 */
{ {{U}} (3) {{/U}};
k={{U}} (4) {{/U}};
}
}
{{U}} (5) {{/U}};
}
}
问答题
问答题(5)
问答题试题八(15 分,每空3 分)
阅读以下说明和C++程序,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
下面程序的功能是计算并输出某年某月的天数。
[C++程序]
#include
using namespace std;
(1) Month{Jan, Feb, Mar, Apr,May,Jun, Jul, Aug, Sep,Oct,Nov,Dec};
class Date{
public:
Date(int year, Month m_month){
(2) = year;
if(m_month Dec) month = Jan;
else month = m_month;
};
~Date(){};
bool IsLeapYear(){
return ((year % 4 == 0
};
int CaculateDays(){
switch( (3) ){
case Feb:{
if( (4) ) return 29;
else return 28;
}
case Jan: case Mar: case May: case Jul: case Aug: case Oct:
case Dec: return 31;
case Apr: case Jun: case Sep: case Nov: return 30;
}
};
private:
int year;
Month month;
};
void main(){
Date day(2000,Feb);
cout << day. (5) ();
}
问答题[说明]下面的流程图用于统计一个英文句子中单词的个数N。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。[流程图]
问答题【说明】 函数print(BinTreeNode*t; DateType DateType int i, top; top = 0;//置空栈 while(t! = NULL ST[top]. ptr = t; ST[top]. tag = 0; (2) ; if(t!= Null (3) ;i ++) printf("%d" ,ST[top]. ptr ->data); else while( (4) ) top--; if(top>0) ST[top]. tag = 1; (5) ;
问答题从下列3道试题(试题5至试题7)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。阅读以下应用说明及VisualBasic程序代码,根据要求回答问题1至问题4。[说明]某文件管理系统的图片浏览器如图3-19所示。运行程序时,用户只要通过驱动器列表框、目录列表框和文件列表框,选择文本文件所在的驱动器、文件夹及相应的文件名后,在图像框中将显示出相应的文件图像。在开发过程中,假设驱动器列表框名为drvFile,目录列表框名为dirFile,文件列表框名为filFile,选择文件类型组合框名为cboFile,图像框名为IMGonClick=over(this)title=放大Show。图3-19图片浏览器[VisualBasic程序]PrivateSubForm_Load()IMGonClick=over(this)title=放大Show.Stretch=TruecboFile.Addltem"位图文件(*.bmp)"cboFile.Addltem"图标文件(*.ico)"cboFile.Addltem"图元文件(*.wmf)"cboFile.Addltem"JPEG文件(*.jpg)"cboFile.Addltem"GIF文件(*.gif)"cboFile.ListIndex=0{{U}}(1){{/U}}EndSubPrivateSubdrvFile_Change(){{U}}(2){{/U}}EndSubPrivateSubdirFile_Change(){{U}}(3){{/U}}EndSubPrivateSubcboFile_Click(){{U}}(4){{/U}}Case0filFile.Pattern="*.bmp"Case1filFile.Pattern="*.ico"Case2filFile.Pattern="*.wmf"Case3filFile.Pattern="*.jpg.Case4filFile.Pattern="*.gif"EndSelectEndSubPrivateSubfilFile_Click()If{{U}}(5){{/U}}ThenIMGonClick=over(this)title=放大Show.Picture=LoadPieture(filFile.Path+filFile.FileName)ElseIMGonClick=over(this)title=放大Show.Picture=LoadPicture({{U}}(6){{/U}}+"/"+{{U}}(7){{/U}})EndIfEndSub
问答题[说明] 函数Printprime(int UpBound)的功能是输出1到UpBound以内的全体素数。[函数2.1] void PrintPrime(int UpBound) printf("2," ); for(i=3; i<UpBound; i+ =2) int k = sqrt(i); for(j=3; j<= k; (1) ) /*检查i是否有3到k以入的奇因数*/ if( (2) ) break; fi( (3) ) printf("%d", i); [函数2.2说明] 递归函数invert(int a[],int k),int k)的功能是将数组a中的前k个元素逆置。[函数2.2] void invert(int a[ ], int k) int t; if ( (4) ) invert( (5) ); t=a[0]; a[0] =a[k-1]; a[k-l]=t;
问答题【说明】
以下程序的功能是设计一个栈类stack<T>,并建立一个整数栈。
【程序】
#include < iostream. h >
#include < stdlib. h >
const int Max =20; //栈大小
template < class T >
class stack{ //栈元素数组
T s[Max]; //栈顶下标
int top;
public:
stack( )
{
top =-1; //栈顶初始化为-1
}
void push( const T //item入栈
T pop( ); //出栈
int stackempty( ) const; //判断栈是否为
};
template < class T >
void stack <T >::push(const T
exit(1);
}
top ++
s[top] = item;
}
template < class T >
T stack<T> ::pop()
{
T temp;
if(top=={{U}} (2) {{/U}})
{
cout <<"栈为空,不能出栈操作" < < endl;
exit(1);
}
temp =s[top];
top --;
return temp;
}
template < class T >
int stack < T >:: stackempty( ) const
{ return top == -1;
{
void main( )
{
stack <int> st;
int a[] ={1,2,3,4,5};
cout <<"整数栈" <<endl;
cout <<"入栈序列:" <<endl;
for(int i=0;i<4;i ++)
{
cout <<a[i] <<" ";
{{U}} (3) {{/U}};
}
cout << endl <<"出栈序列";
while({{U}} (4) {{/U}})
tout<<{{U}} (5) {{/U}}<<" ";
cout< < endl;
}
问答题【说明】请完成下列Java程序。程序的执行结果是生成一个具有一个TextField类型的对象in、Button类型的对象btn和Label类型的对象out图形用户界面,程序的功能是计算用户输入数的平方,如图3所示。注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。【程序】importjava.awt.*;importjava,awt.event.*;publicclasssquarepublicstaticvoidmain(Stringargs[])(1)classAppFrameextendsFrameTheAdapterTestlistener=newTheAdapterTest();TextFieldin=newTextField(5);Buttonbtn=newButton("计算");Labelout=newLabel("用于显示计算结果");publicAppFrame()setLayout(newFlowLayout());add(in);add(btn)add(out);btn.addActionListener(newBtnActionAdapter());addWindowListener(listener);setSize(400,100);show();classBtnActionAdapterimplements(2)publicvoidactionPerformed((3))Strings=in.getText();doubled=(4)doublesq=d*d;out.setText(d+"的平方是:"+sq);classTheAdapterTestextendsWindowAdapterpublicvoidwindowCIosing((5))System.exit(1)
问答题[说明]某种传感器的输出值Ratio依赖于环境温度temp(-40℃≤temp≤50℃)。对一组环境温度值(ITEMS个),已经测量得到了相应的Ratio值(如表4-10表格所示)。表4-10粗略地描述了曲线Ratio(temp)。表4-10曲线Ration(temp)的列表值环境温度temp传感器的输出值Ratio-40℃0.20-20℃0.60-10℃0.800℃1.0010℃1.1730℃1.5050℃1.80校正系数K是Ratio的倒数,因此也依赖于环境温度temp。在数据处理中,需要用更多的列表值细致地描述曲线K(temp),如表4-11所示。表4-11曲线K(temp)的列表值环境温度temp校正系数K-40℃5.00-39℃4.55-38℃4.17-37℃3.85…………-20℃1.67-19℃1.61……^-10℃1.25-9℃1.22…………-19℃0.56在表4-11中,各温度值所对应的K值是对表4-10进行线性插值再求倒数得到的,具体的计算方法如下。1)根据temp值,在表4-10中用二分法查找;2)若找到相应的温度值,则按相应的Ratio值求倒数得到K值;3)若没找到相应的温度值,则可确定temp所在的温度区间[Tp1,Tp2],同时获得了相应的Ratio1和Ratio2,再按如下公式计算K值:在程序中,当temp高于50℃或低于-40℃C时,设定K=0。[C程序]#includetypedefstructintTemp;/*环境温度*/doubleRatio;/*传感器的输出值*/CURVE;#defineITEMS7doubleGetK(intTemp,CURVE*p,intn)/*用二分法在n个元素的有序表p中查找与Temp对应的传感器输出值*/intlow,high,m;doubleStep;low=0;high=n-1;if((Temp<p->Temp)||(Temp>(p+high)->Temp))return0.0;/*超出温度范围时返回0.0*/while(low<=high)m=(1);if(Temp==(p+m)->Temp)return(2);if(Temp<(p+m)>Temp)high=m-1;elselow=(3);p+=high;Step=((4))/((p+1)->Temp-p->Temp);return1.0/(p->Ratio+Step*((5));voidmain()intDegree;doublek;CURVECurve[ITEMS]=-40,0.2,-20,0.60.,-10,0.8,0,1.0,10,1.17,30,1.50,50,1.8;printf("环境温度校正系数/n");for(Degree=-40;Degree<=50;Degree++)k=GetK(Degree,Curve,ITEMS);printf("%3d%4.2f/n",Degree,k);
问答题[说明]下面的流程图实现了正整数序列{K(1),K(2),…,K(n)}的重排,得到的新序列中,比K(1)小的数都在K(1)的左侧,比K(1)大的数都在K(1)的右侧。以n=6为例,序列{12,2,9,13,21,8}的重排过程为:{12,2,9,13,21,8}→{2,12,9,13,21,8}→{9,2,12,13,21,8}→{8,9,2,12,13,21}[流程图]
问答题试题四(共15分)阅读以下应用说明以及用VisualBasic编写的程序代码,将应填入(n)处的字句写在答题纸的对应栏内。[应用4.1]设应用程序的运行窗口内有一个文字标签(Label)以及一个框架,其中有三个复选框(chk1,chk2,chk3),各个复选框单击事件过程的程序代码如下:PrivateSubchk1_Click()Label.fontBold=chk1.ValueEndSubPrivateSubchk2_Click()Label.fontItalic=chk2.ValueEndSubPrivateSubchk3_Click()Label.fontUnderLine=chk3.ValueEndSub三个复选框chk1、chk2、chk3的功能分别是:(1)。[应用4.2]设应用程序的运行窗口内有两个文本框Txt1和Txt2,其初始内容为空。在Txt1文本框中输入一个数值,当光标离开此文本框(例如进入文本框Txt2)时,执行的程序代码如下:PrivateSubTxt1_LostFocus()dimxasdoublex=Val(Txt1.Text)Ifx100ThenTxt1.Text=""MsgBox$("请重新输入!")Txt1.SetFocusElseTxt2.Text=Txt1.TextEndIfEndSub该程序代码的功能是:若在文本框Txt1中输入的数值小于0或大于100,当光标离开此文本框时,(2);否则,将其值复制到文本框Txt2中。[应用4.3]在下面的应用中,当窗口内发生Click事件时,窗口内将显示如图4-1所示的杨辉三从下角形(每一行都是二项式展开的系数)。请完善程序代码。图4-1PrivateSubForm_Click()Dimi,j,cAsInteger,StrTempAsStringDima(9)AsIntegera(0)=0:a(1)=1:StrTemp=Str(a(1))+Space(3)CurrentX=(ScaleWidth-TextWidth(StrTemp))/2PrintStrTempForj=2To9a(j)=1Forc=j-1To2Step-1a(c)=(3)Next(4)=""Forc=1TojStrTemp=StrTemp&Str((5))&Space(5-Len(Str(a(c))))NextCurrentX=(ScaleWidth-TextWidth(StrTemp))/2PrintStrTempNextEndSub
问答题【说明】【C程序1】用回溯算法来产生由0或1组成的2m个二进位串,使该串满足以下要求。视串为首尾相连的环,则由m位二进制数字组成的2m个子序列,每个可能的子序列都互不相同。例如,如果m=3,在串11101000首尾相连构成的环中,由3位二进制数字组成的每个可能的子序列都在环中恰好出现一次,它们依次是111,110,101,010,100,000,001,011,如图2-14所示。【C程序2】是求“背包问题”的一组解的递归算法程序。“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为W1,W2,…,Wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。【C程序1】#defineN1024#defineM10intb[N+M-1]intequal(intk,intjintm)inti;for(i=0;i<m;i++if(b[k+i](1))return0;return1;intexchange(intk,intm,intv)while(b[k+m-1)==v)b[kncm--i]=!v(2);(3)=v;returnk;init(ihtv)intkfor(k=0;K=N+M-1;k++)b[k]=v;main()intm,v,k,n,j;printf('Enterm(l<m<10),vv=0,v=1)/n");scanf("%d%d,n=0x01<<m;init(!v);k=0;while((4)<n)for(j=0;j<k;j++)if(equal(k,j,m))k=exchange(k,m,v)j=(5);for(k=0;k<n;k++)print("%d/n",b[k]);【C程序2】#include<stdio.h>#defineN7#defineS15intw[N+1]=0,1,4,3,4,5,2,7;intknap(intS,intn)if(S==0)return1;if(s<0||(s>0if((6)))printf("4d",w[n]);return1;return(7)main()if(knap(S,N)printf("OK:/n");elseprintf("NO!/n")
问答题[说明] 已知以下C++程序运行时的输出结果如下。 1:1 1:1 1:1 [C++程序] 01 #include <iostream> 02 using namespace std; 03 class Stock 04 protect: 05 (1) ; 06 Stock(int n, int pr=1) 07 shares = n; share_val=pr; 08 ; 09 void ~Stock() ; 10 public: 11 //成员函数 12 void output() 13 (2) << shares << ":" << share_val << endl; 14 15 private: 16 //成员变量 17 int shares; 18 int share_val; 19 ; 20 21 void main() 22 Stock a(1);a.output 23 Stock b;b.output 24 Stock c = Stock ();c.output 25 1. [问题1] 请根据C++程序运行时的输出结果,将代码中(1)、(2)空缺处的内容补充完整。
