阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。
【说明】
对20个数进行排序,可以利用选择法,即从后19个比较过程中,选择一个最小的与第一个元素交换,依次类推,即用第二个元素与后18个进行比较,并进行交换。
【函数】
define N 20
main()
{
int i,j,min,tem,a[N];
printf("please input twenty num:\n");
for(i=0;i<N;i)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
for(i=0;i<N;i)
printf(",",a[i]);
printf("\n");
for(i=0;(1);i)
{
min=(2);
for(j=(3);j<N;j++)
if((4))
min=j;
tem=a[i];
(5);
a[min]=tem;
}
printf("After sorted \n");
for(i=0;i<N;i++)
printf(",",a[i]);
}
第1题
阅读下列算法说明和算法,将应填入(n)处的语句写在对应栏内。
1. 【说明】
实现连通图G的深度优先遍历(从顶点v出发)的非递归过程。
【算法】
第一步:首先访问连通图G的指定起始顶点v;
第二步:从V出发,访问一个与v(1)p,再从顶点P出发,访问与p(2)顶点q,然后从q出发,重复上述过程,直到找不到存在(3)的邻接顶点为止。
第三步:回退到尚有(4)顶点,从该顶点出发,重复第二、三步,直到所有被访问过的顶点的邻接点都已被访问为止。
因此,在这个算法中应设一个栈保存被(5)的顶点,以便回溯查找被访问过顶点的未被访问过的邻接点。
第2题
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。
【说明】
以下程序的功能是设计一个栈类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); //item入栈
T pop( ); //出栈
int stackempty( ) const; //判断栈是否为
};
template < class T >
void stack <T >::push(const T &item)
{
if(top==(1))
{
cout <<"栈满溢出" <<endl;
exit(1);
}
top ++
s[top] = item;
}
template < class T >
T stack<T> ::pop()
{
T temp;
if(top==(2))
{
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] <<" ";
(3);
}
cout << endl <<"出栈序列";
while((4))
tout<<(5)<<" ";
cout< < endl;
}
第3题
),用户必须在其中做出响应,程序才能继续运行。请将以下该命令按钮的单击事件过程中的程序代码填写完整。
Private Sub CmdHelp_C1ick()
(10)
End Sub
第4题
阅读以下说明和Java代码,将解答写入对应栏内。
【说明】
下面程序的功能是显示已定义的一个3行3列的二维数组每行的元素,并求所有元素的和并输出。请在程序的每条横线处填写一个适当的语句,使程序的功能完整。
public class Arrayt
(1) static (2) main(String args[])
{
int sum=0;
int [][] = t {11,12,13}, {21,22,23},{31,32,33}};
for(int i=0; (3) i++)
{
System. out. print("b["+i+"]:");
for(int j=0;(4) j++)
System. out. print(b[i] [j] +" ");
(5)
}
System. out. println ();
}
System. out. println("sum="+sum);
}
}
第5题
阅读以下应用说明及Visual Basic部分程序代码,将应填入(n)处的字句写在对应栏内。
【说明】
该应用程序是用来修改文本框中的字体属性,其运行窗口如图4所示。
窗口由1个标签(Labell)、1个文本框(txtPassage)和4个选择框(chkFont,chkltalic,chkSize,chkColor)组成。程序运行后,用户在文本框内输入一段文字,然后按需要单击各选择框,用以改变文本的字体、字型、颜色及大小。
文本框的Mulitine属性已经设为True。当不选择“黑体”时,文字应是“宋体”。当不选择“大小16”时,字号为9。当不选择“紫色”时,字色为黑色。当不选择“斜体”时,文字采用正常字型。
【程序代码】
Private Sub chkFont Click( )
If (1) Then
txtPassage. FontName ="黑体"
Else
txtPassage. FontName ="宋体"
End If
End Sub
Private Sub (2) ()
If chkColor. Value = 1 Then
txtPassage. ForeColor = QBColor(13)
Else
txtPassage. ForeColor = QBColor (0)
End If
End Sub
Private Sub chkltalic_Click()
If chkltalic. Value = 1 Then
txtPassage. Fontl talic =(3)
Else
txtPassage. Fontltalic=(4)
End If
End Sub
Private Sub chkSize Click( )
If (5) Then
txtPassage. Font. Size = 16
Else
txtPassage. Font. Size = 9
End If
End Sub
第6题
阅读下列程序说明和C++程序,将应填入______处的语句写在答题纸的对应栏内。
[程序8说明]
程序用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额。职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于。结束。
假设个人所得税法规定:个人收入所得,按月计税,以每月收入总额减除免税金额800元后的余额作为该月的月应纳税所得额。适用税率如表2-1所示。
上表表明,个人收入所得税是按照超额累计的税率来征收的。
设一个人的月应纳税所得额为K(元),用下面的公式计算其应缴纳的个人所得税额S(元):
若0<K≤500,则S=K×5%;
若500<K≤2000,则S=500×5%+(K-500)×10%;
若2000<K≤5000,则S=500×5%+1500×10%+(K-2000)×15%;
若5000<K≤20000,则S=500×5%+1500×10%+3000×15%+(K-5000)×20%,
……
例如,某人某月收入总额为4100元,减去800元后,应纳税所得额为3300元,其应缴纳的个人所得税额为500×5%+1500×10%+1300×15%=370元。
[程序8]
include<stdio.h>
define MaxNum 50
define BASE 800 / * 免税金额基数 * /
int paylevel[]={0,500,2000,5000,20000,40000,60000,80000,100000,1000001};
int taxPrate[]={5,10,15,20,25,30,35,40,45}; / * 税率表 * /
typedef struct{
int Id; / * 职工的工号 * /
long Salary; / * 职工的工资 * /
}Info;
/ * 查找工号为Id的职工在数组employee中的下标,返回值为0表示没有 * /
int find(int Id,Info employee[],iht m){
int j;
employee[O].Id=Id;
for(j=m; (1) ;j--);
return j;
}
void main(vpid)
{Info employee[MaxNUm+1);
long Wage;
double sum=0,K,S;
int i,j,N=0,Code;
scanf(“%d %Id”,&Code,&Wage); / * 读入职工号、工资或薪金 * /
while(Code>0){
i=find(Code,employee,N);
if(i>0)employee[i].Salary+=Wage;
else {(2)
employee[N].Id=Code;employee[N].Salary=Wage;
}
scanf(“%d %”,&Code,&Wage);
}
for(i=1;i<=N;i++){
K=(3); / * 计算月应纳税所得额 * /
S=0; / * 月应纳税额赋初值 * /
if(K>0){
for(j=1;j<=9;j++)
if( (4) ) / * 月应纳税所得额超过第j级 * /
S=S+(Paylevel[j]-paylevel[j-1])*taxPrate[j-1]/100;
else{S=S+( (5) )*taxPrate[j-1]/100;break;}
}
printf(“职工%d应缴纳的个人所得税额:%10.2If\n”,employee[i].ld,S);
sum+=S;
}
printf(“全体职工个人所得税总额:%10.2If\n”,sum);
}
第7题
阅读下列函数说明和C函数,将应填入______处的语句写在答题纸的对应栏内。
[函数2.1说明]
函数palindrome(char s[])的功能是:判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样,称该字符串是回文字符串,例如,“LEVEL”是回文字符串,而“LEVAL”不是。
[函数2.1]
int palindrome(char s[])
{
char *pi, *pj;
pi=s;pj=s+strlen(s)-1;
while(pi<pj&& (1) ) {
pi++;pj--;
}
if( (2) ) return-1;
else return 0;
}
[函数2.2说明]
函数f(char *str,char del)的功能是:将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。
例如,若str的值为“33123333435”,del的值为“3”,调用此函数后,将输出3个子字符串,分别为“12”,“4”和“5”。
[函数2.2]
void f(char *str,char del)
{
int i,j,len;
len=strlen(str);
i=0;
While(i<len){
While( (3) )i++; /* 忽略连续的标志字符 */
/* 寻找从str[i]开始直到标志字符出现的一个子字符串 */
j=i+1;
while(str[j]!=del &&str[j]!'\0')j++;
(4) ='\0'; /* 给找到的字符序列置字符串结束标志 */
printf("%s\t",&str[i]);
(5);
}
}
第8题
阅读以下说明和C语言函数。
[说明]
函数change(int num)的功能是对四位以内(含四位)的十进制正整数num进行如下的变换:将num的每一位数字重复一次,并返回变换结果。例如,若num=5234,则函数的返回值为55223344,其变换过程可描述为:
(4*10+4)*1+(3*10+3)*100+(2*10+2)*10000+(5*10+5)*1000000=55223344
[C语言函数]
long change(int num)
{
ind,m=num;
long result mul;
if (num<=0||(1) /*若num不大于0或num的位数大于4,则返回-1*/
retum-1;
mul=1;
(2)
while(m>0){
d=m%10;
m=(3);
result=result+( (4) ) *mul;
mul=(5);
}
return result;
}
第9题
如果以下3*3矩阵沿顺时针方向旋转90°后所形成的矩阵就是原来的矩阵:
其中,位于*处的元素需要考生填写
请完整地写出该矩阵。
第10题
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。
【说明】
找一个最小的自然数,使它等于不同的两组三个自然数的三次幂之和,即找最小的x,使得:x=a*a*a+b*b*b+c*C*c+d*d*d+e*e*e+f*f*f,其中,a、b、c、d、e、f者是是自然数,a≤b≤C≤d≤e≤f; [a,b,c]!=[d,e,f)
【C++程序】
include<stdio.h>
define N 100
void main ()
{
int i,j,il,ih,i0,j0,k0,il,j 1,k1;
int j1[N],jh[N];/*第i层平面的行的变化范围,自jl[i]至jh[i]*/
int k[N][N];/*第i层平面中,对应行j,当前的列号值为k[i][j]*/
int p[N], min;/*p[i]=i*i*i*/
i1=1;j1=1;k1=1;/*首先只局限下三角棱体的顶点*/
i1=1;ih=1;/*预置i的变化范围初值i1<=i<=ih*/
j1[1]=1;jh[1]=1;/*对应i层平面的行的变化范围*/
k[i1][j1[i1>=1;/*第i层平面中,对应行的列的初值*/
p[1]=1;
do
{
min=p[i1]+p[j1]+p[k1];
i0=i1;j0=j1;k0=k1;
if ( i1==ih ) /*当前候选者在ih平面, 则ih增1*/
{
ih++;
(1);
/*为ih平面设定j的变化范围和对应k值*/
j1[ih]=1;jh[ih]=1;k[ih][1]=1;
}
if ( i1==i1&&j 1==i1&&k1==i1 )
i1++;/*在i1平面最下角点找到候选者,i1增1*/
else
{
if ( k1==1&&jh[i1]<i1 )
{/*在第一列找到候选者, i1平面的行的上界增1*/
(2);
k[i1][jh[i1>=1;
}
if( k1==j1&&j1[i1]<i1 )
else
(3);/*调整i1平面当前行的列号*/
}
i1=i1;/*预定最上平面的最小行的当前列为下一个候选者*/
j1=j1[i1];
k1=k[i1][j1];
for ( i=i1;i<=ih;i++ ) /*寻找最小值所在平面号、行号和列号*/
{
for ( j=j1[i];j<=jh[i];j++ )
if ( p[i]+p[j]+p[k[i][j><(4))
{
i1=i;j 1=j;k1=k[i][j];
}
}
}while ( p[i1]+p[j1]+p[k1]!=min&&(5));
if ( p[i1]+p[j1]+p[k1]==min )
printf ( "%4d=%2d^3+%d^3+%dA3=%2d^3+%d^3+%d^3\n",min,i0,j0,k0,i1,j1,k1 );
else printf ( "The %d is too small.\n",N );
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!