●试题五
阅读下列程序说明和C++代码,将应填入(n)处的字句写在答卷的对应栏内。
【说明】
①定义类Table的私有数据成员x和y,分别用于表示九九表中的两个乘数(x*y),它们都是int型的数据。
②完成类Table的成员函数print()的定义,该函数以"x*y=z"的格式打印出九九表中的一个乘法算式,请使用格式化输出函数printf实现。
③完成类Table9的成员函数print()的定义,该函数调用基类Table的print()函数,将九九表输出到屏幕。
④补充主函数,在屏幕上输出九九表,以便测试所定义的类的正确性。
源程序文件test8_3.cpp清单如下:
#include
#include
class Table
{
(1)
int z;
public:
void print(int x,int y,int z);
};
void Table::print (int x,int y,int z)
{
(2)
}
class Table9:public Table
{
public:
void print();
};
void Table9::print()
{
(3)
int x,y,z;
for (i=1;i<10;i++)
{
for(j=1;j
{
x=i;
y=j;
z=i*j;
Table::print(y,x,z);
}
printf("\n");
}
}
main()
{
//**4**
return 0;
}
●试题六
【说明】
下面是一个Applet程序,其功能是建立2个文本区域,一个为编辑区,一个为只读区;建立2个按钮,一个实现将编辑区中被鼠标选定的文本内容拷贝到只读区中,一个实现将只读区的全部文本内容清空。
程序运行结果如图3所示。
图3
import javA.awt.*;
import javA.applet.*;
/*
*/
public class ex3_6 extends Applet{
private Button okBtn, clearBtn;
private String strMessage;
private TextArea tArea1, tArea2;
public void init(){
strMessage = "Hello! Welcome to the test!\n" +
"Wish you good luck!";
tArea1 = new TextArea( 10, 25 );
(1) ;
tArea2 = new TextArea( 10, 25 );
(2) ;
okBtn = new Button( "Copy" );
clearBtn = (3) ;
add( tArea1 );
add( tArea2 );
add( okBtn );
add( clearBtn );
}
public boolean action( Event e, Object o ){
if( e.target == okBtn )
tArea2.setText( (4) );
else if( e.target == clearBtn )
(5) ;
return true;
}
}
ex3_6.html
code="ex3_6.class" width=800 height=400 >
●试题三
请补充函数fun(),该函数的功能是:只保留字符串中的大写字母,删除其他字符,结果仍保存在原来的字符串中,由全局变量m对删除后字符串的长度进行保存。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
int m;
void fun(char *s)
{
int i=0,j=0;
char *p=s;
while(*(p+i))
{
if(*(p+i)>=′A′&&*(p+i)<=′Z′)
{
(1) ;
}
(2) ;
}
s[j]=′\0′;
(3) ;
}
main()
{
char str[80];
clrscr();
printf("\nEnter a string:");
gets(str);
printf("\n\nThe string is:\%s\n",str);
fun(str);
printf("\n\nThe string of changing
is:\%s\n",str);
printf("\n\nThe length of changed string
is:\%d\n",m);
}
●试题五
阅读下列程序说明和C++代码,将应填入(n)处的字句写在答卷的对应栏内。
【说明】
①定义类Table的私有数据成员x和y,分别用于表示九九表中的两个乘数(x*y),它们都是int型的数据。
②完成类Table的成员函数print()的定义,该函数以"x*y=z"的格式打印出九九表中的一个乘法算式,请使用格式化输出函数printf实现。
③完成类Table9的成员函数print()的定义,该函数调用基类Table的print()函数,将九九表输出到屏幕。
④补充主函数,在屏幕上输出九九表,以便测试所定义的类的正确性。
源程序文件test8_3.cpp清单如下:
#include
#include
class Table
{
(1)
int z;
public:
void print(int x,int y,int z);
};
void Table::print (int x,int y,int z)
{
(2)
}
class Table9:public Table
{
public:
void print();
};
void Table9::print()
{
(3)
int x,y,z;
for (i=1;i<10;i++)
{
for(j=1;j
{
x=i;
y=j;
z=i*j;
Table::print(y,x,z);
}
printf("\n");
}
}
main()
{
//**4**
return 0;
}
●试题四
阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【程序4.1说明】
"背包问题"的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,...,wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。
如下程序均能求得"背包问题"的一组解,其中程序4.1是"背包问题"的递归解法,而程序4.2是"背包问题"的非递归解法。
【程序4.1】
#include
#define N 7
#define S 15
int w[N+1]={0,1,4,3,4,5,2,7};
int knap(int s,int n)
{ if(s==0)return 1;
if (s<0||(s>0& &n<1))return 0;
if( (1) )){
printf(″%4d″,w[n]);return 1;
}return (2) ;
}
main(){
if( knap(S,N))printf(″OK!\n″);
else printf(″N0!\n″);
}
【程序4.2】
#include
#define N 7
#define S 15
typedef struct {
int s;
int n:
int job;
} KNAPTP;
int w[N+1]={0,1,4,3,4,5,2,7};
int knap (int s,int n);
main( ) {
if (knap (S,N)) printf (″OK!\n″);
else printf (″NO!\n″);}
int knap (int s,int n)
{ KNAPTP stack[100],x;
int top,k,rep;
x.s=s;x.n=n;
x.job=0;
top=l;stack[top]=x;
k=0;
while( (3) ) {
x=stack [ top ];
rep=1;
while ( !k && rep ) {
if (x.s==0)k=1;/*已求得一组解*/
else if (x.s<0 || x.n<=0)rep=0;
else{x.s= (4) ;x.job=1;
(5) =x;
}
}
if(!k){
rep=1;
while(top>=1&&rep){
x=stack[top--];
if(x.job==1){
x.s+=w[x.n+1];
x.job=2;
stack[++top]=x;
(6) ;
}
}
}
}
if(k){/*输出一组解*/
while(top>=1){
x=stack[top--];
if(x.job==1)
printf(″%d\t″,w[x.n+1]);
}
}
return k;
}
●试题二
阅读下列程序和控制流图,将应填入(n)的字句写在答题纸的对应栏内。
【程序】
下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。
int GetMax(int n,int datalist[]){
int k=0;
for(int j=1;j
if(datalist[j]>datalist[k])
k=j;
return k;
}
【控制流图】
【问题1】
该程序的控制流图中A~E分别是什么?
【问题2】
计算控制流图的McCabe环路复杂性。
【问题3】
用基本路径覆盖法给出测试路径。
【问题4】
为各测试路径设计测试用例。
●试题一
阅读以下说明和流程图(如图1所示),回答问题1至问题4,将答案写在答卷的对应栏内。
【说明】
本流程图是将中缀表示的算术表达式转换成后缀表示。如中缀表达式
(A-(B*C+D)*E)/(F+G))
的后缀表示为
ABC*D+E*-FG+/
为了方便,假定变量名为单个英文字母,运算符只有+、-、*、/(均为双目运算符,左结合),并假定所提供的算术表达是非空且语法是正确的。另外,中缀表示形式中无空格符,但整个算术表达式以空格符结束。流程图中使用的符号的意义如下:
数组IN[]存储中缀表达式;
数组POLISH[]存储其后缀表达式;
数组S[]是一个后进先出栈;
函数PRIOR(CHAR)返回符号CHAR的优先级,各符号的优先级见表2:
【问题1】
填充流程图中①的判断条件。
【问题2】
写出子程序A的功能,并顺序写出实现该功能的操作
【问题3】
写出子程序B的功能,并顺序写出实现该功能的操作。
【问题4】
中缀表达式
(A+B-C*D)*(E-F)/G
经该流程图处理后的输出是什么?
【流程图】
图1
高级经济师考试试题精选练习(1)
高级经济师考试模拟练习题之单选题(1
高级经济师考试试题精选练习(2)
高级经济师考试试题精选练习(3)
高级经济师考试试题:经济法案例试题精
高级经济师考试模拟试题及答案
高级经济师考试试题及答案:单选练习题
高级经济师考试试题:经济法案例试题精
高级经济师考试模拟题及答案练习(1)
高级经济师考试模拟题及答案练习(2)