软件水平考试(初级)程序员下午(应用技术)模拟试卷1
-
阅读以下说明和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);
}
}
-
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。
【说明】
设计一个评选优秀教师和学生的程序,其类结构如图6所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。
【程序】
#include<iostream.h>
#include<stdio.h>
enum boolean {False,True}
class base
{
protected:
char name[8];
public:
void getname() {cout<<"姓名:" ;cin>>name; }
void printname() {cout<<"姓名:"<<name<<endU3
virtual boolean isgood() =0;
}
class student:(1)
{
int num;
public:
void getnum()
cout<<"考试成绩:" cin>>num;
boolean isgood() {return (2);{
};
class teacher:(3) public base
int num;
public:
void getnum()
cout<<"每年发表论文数:" ;cin>>num;
boolean isgood() {return (4);}
};
void main()
base* p[50];
student * pstud;
teacher * ptech;
char ch;
int count =0;
do
cout<<"输入教师(t)或学生(s):"
cin>>ch;
if(ch =='s')
{
pstud = new student;
pstud ->getname();
pstud ->getnum();
p[count ++ ] = pstud;
}
else if(ch == 't')
{
ptech = newteacher;
ptech - >getname( )
ptech ->getnum();
p[count++]=ptech;
}
else
cout<<"输入错误<<endl;
cout<<"继续输入码(Y/n)";
cin>>ch;
} while(ch == 'y')
for(int i=0;i<count;i++)
{
if((5)) //若为优秀,则输出
p[i]->printname();
}
}
-
阅读以下应用说明及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
-
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内
【说明】
从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编写程序,其功能是:以行为单位把字符串中所有小写字母。左边的字符串内容移到该串的右边存放,然后把小写字母。删除,余下的字符串内容移到已处理字符串的左边存放。最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT(),把结果XX输出到文件 OUT5.DAT中。
例如:原文:You can create an index on any field.
you have the correct record.
结果:n any field.Yu can create an index
rd. yu have the crreet res
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
【函数】
#include "stdio.h"
#include "string.h"
#include "conio.h"
#include "ctype.h"
#include "mem.h"
unsigned char xx[50] [80]
int maxline=0;
int readdat(void);
void writedat(void)
/*将题目要求的字符串中所有小写字母o左边的字符串内容移到谊串的右边存放,即将串中“最后”一个字母o左右两侧的内容互换*/
void StrOR(void)
{
inti;
char*p1,* p2,t[80];
for(i=0;i<maxline;i++)
{ t[0]='/0';
p2=xx[i];
while(*p2) /*找到最后一个别'o'*/
{ if((1))p1=p2;
p2++;
}
strcat(t,p1+1);
*p1='\0';
strcat(t,xx[i]);
p1=xx[i];
p2=t;
while(*p2) /*删去字符'o'*/
{ if((2)) (3)=*p2;
p2++;
}
(4);
}
}
void main()
{
clrscr();
if(readdat())
{ printf("Can't open the file IN. DAT!\n");
return;
}
StrOR();
writedat();
}
int readdat(void)
{
FILE * fp;
int i=0;
char * p;
if((fp=fopen("in.dat","r" ))==NULL)
return 1;
while(fgets(xx[i],80, fp)!=NULL)
{ p=strchr(xx[i],'\n');
if(p)
*p=0;
i++;
}
maxline:(5);
fclose(fp);
return 0;
}
void writedat (void)
{ FILE * fp;
int i;
fp=fopen("in.dat',"w");
for(i=0;i<maxline;i++)
{ printf("%s\n",xx[i]);
fprintf(fp," %s\n",xx[i]);
}
fclose(fp);
}
}
}
-
阅读以下应用说明、属性设置及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。
【说明】
本应用程序的运行窗口如图2所示。
只要用户单击“闪烁”按钮,文字“欢迎光临”就会以0.3秒消失、0.3秒显示反复进行闪烁;单击“停止”按钮时,闪烁停止,恢复图示的初态。
在开发过程中,需要设置的属性如表1所示。
在开发过程中,需要编写的程序代码如下:
【程序】
Private Sub CmdF_Click( )
Timerl.(3)=True
Label. Visible = False
End Sub
Private Sub Timerl_Timer( )
(4)= not Label. Visible
End Sub
Private Sub CmdT_Click( )
Timer]. Enabled =(5)
Label Visible = true
End Sub
-
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
函数move(int*a,int n)用于整理数组a[]的前n个元素,使其中小于0的元素移到数组的前端,大于0的元素移到数组的后端,等于0的元素留在数表中间。
令a[0]~a[low-1)小于0(初始为空);a[low]-a[i-1]等于0(初始为空);a[i]~a[high]还未考察,当前考察元素为a[i]。a[high+1]~a[n-1]大于0(初始为空)。
【函数】
move(int*a ,int n)
{
int i,low,high,t;
low=i=0;high=n-1;
while((1))
if(a[i]<0)
{
t=a[i];a[i]=a[low];a[low]=t;
(2);i++;
}
else if((3))
{ t=a[i];a[i]=a[high];a[high]=t;
(4);
}
else (5);
}
-
阅读下列程序或函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【函数2.1说明】
函数stremp()是比较两个字符串s和t的大小。若s<t函数返回负数;若s=t函数返回0;若s>t,函数返回正数。
【函数2.1】
int strcmp(char * s,char * t)
{ while(* s&& *t &&(1)){
s++;t++;
}
return (2);
}
【程序2.2说明】
在n行n列的矩阵中,每行都有最大的数,本程序求这n个最大数中的最小一个。
【程序2.2】
#include<stdio.h>
#define N 100
int a[N] [N];
void main()
{ int row ,col,max,min,n;
/* 输入合法n(n<100),和输入n×n个整数到数组a的代码略*/
for (row =0;row<n;row++) {
for(max=a[row] [0],col=1;col<n;col++)
if((3))max=a[row][col];
if((4))min=max;
else if((5))min=max;
}
printf("The min of max numbers is %d\n",min);
}
-
阅读下列说明和流程图,将应填入(n)的语句写在对应栏内。
【流程图说明】
下面的流程(如图1所示)用N-S盒图形式描述了在一棵二叉树排序中查找元素的过程,节点有3个成员:data, left和right。其查找的方法是:首先与树的根节点的元素值进行比较:若相等则找到,返回此结点的地址;若要查找的元素小于根节点的元素值,则指针指向此结点的左子树,继续查找;若要查找的元素大于根节点的元素值,则指针指向此结点的右子树,继续查找。直到指针为空,表示此树中不存在所要查找的元素。
【算法说明】
【流程图】
将上题的排序二叉树中查找元素的过程用递归的方法实现。其中NODE是自定义类型:
typedef struct node {
int data;
struct node * left;
struct node * right;
}NODE;
【算法】
NODE * SearchSortTree(NODE * tree, int e)
{
if(tree!=NULL)
{
if(tree->data<e)
(4); //小于查找左子树
else if(tree->data<e)
(5); //大于查找左子树
else return tree;
}
return tree;
}