-
阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】某娱乐类网站需要开发一个网络游戏项目。该项目采用三维动画软件完成游戏建模和美工制作,通过客户端程序与服务器进行交互操作。
-
阅读以下说明和Java代码,将应填入____处的语句或语句成分写在答题纸的对应栏内。
【说明】某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前30%的学生。【Java代码】
https://assets.asklib.com/psource/2016072810392893550.gif
-
已知以下程序段的运行结果为“654321”,则下划线所在位置应填入的代码是() #define N 6 int a[N]={1,2,3,4,5,6},i,t; for(i=0;i for(i=0;i
A . N/2
B . N
C . N/2+1
D . N+1
-
以下函数按每行8个输出数组中的数据 void fun( int *w,int n) { int i; for(i=0;i {_________________ printf(“%d”,w); } printf(“”); } 下划线处应填入的语句是
-
下面的程序对输入的每一个数字出现的次数进行计数,下划线处应填入的正确语句为( )。 #include \stdio.h\ main() {int i,ch, n[10]; for(i=0;i<10;++i) n[i]=0; while((ch=getchar())!=‘\\n’) if(ch>=‘0’ && ch<=‘9’) ________; for(i=0;i<10;++i) printf(\数字%d出现的次数是:%d\\n\,i,n[i]); }
-
下面的程序对输入的每一个数字出现的次数进行计数,下划线处应填入的正确语句为( )。 #include \stdio.h\ main() {int i,ch, n[10]; for(i=0;i<10;++i) n[i]=0; while((ch=getchar())!=‘’) if(ch>=‘0’ && ch<=‘9’) ________; for(i=0;i<10;++i) printf(\数字%d出现的次数是:%d\,i,n[i]); }
-
以下程序调用findmax函数返回数组中的最大值: findmax(int*a,int n) { int*p,*s; for(p=a,s=a;p-a<n;p++) if(______)s=p; return(*s); } main() {int x[5]={12,21,13,6,18}; printf("%d&92;n",findmax(x,5)); } 在下划线处应填入的是( )。
A.p>s
B.*p>*s
C.a[p]>a[s]
D.p-a>p-s
-
有以下程序fun(int *a,int n) { int i,j=0,p; p=j; for(i=j;i<n;i++) if(a[i]<a[p]) ____; return(p);}在下画线处应填入的是
A.i=p
B.a[p]=a[i]
C.p=j
D.p=i
-
下图是一个TST数字交换网络,每条输入(输出)线为每帧32时隙的PCM线路,输入侧T接线器采用输出控制方式(顺序写入、控制读出输),出侧T接线器采用输入控制方式(控制写入、顺序读出),S接线器采用输入控制方式。设有A用户占用PCM1的TS5发送话音信号a,经过TST网络选择内部时隙TS10送到B用户,B用户占用PCM7的TS21接 收话音信号。为实现A用户向B用户发送话音信号,请将应填入(n)处的十进制数字写在答题纸的对应栏内。
<img src='https://img2.soutiyun.com/ask/uploadfile/10167001-10170000/c6ce108f24a6c89089e84cef75b5f267.png' />
-
下图是一个程控交换机的结构图。该交换机带11个用户模块,每个用户模块的容量为 64用户,采用1条2M的双向PCM复用线连接到中央交换网络。该交换机带4个中继模块,每个中继模块采用1条2 M的双向PCM复用线连接到中央交换网络。音信号发生器通过1条2 M的PCM复用线连接到中央交换网络。请根据下面的提示信息,将应填入(n)处的字句写在答题纸的对应栏内。
(a)装置A可实现馈电、数模变换等功能,它是(1)电路;装置B可实现双音多频号码接收的功能,它是(2);音信号发生器内会存贮各种信号音的(3);装置D可实现同 步和码型变换等功能,它是(4)电路;装置E可实现呼叫处理、路由选择等功能,它是(5)。
(b)该交换机的用户模块可实现(6): 1的话务集中比,中央交换网络至少需支持(7)条2 MPCM复用线的输入。
(c)该交换机中有多个处理机完成不同的工作并管理不同的设备,用户处理机与中继处理机之间采用(8)分担工作方式,而不同用户处理机之间采用(9)分担工作方式。装置E通常采用双机备份工作方式,目的是(10)。
<img src='https://img2.soutiyun.com/ask/uploadfile/10167001-10170000/33e2630b41c767bde404d826681d3d9a.png' />
-
下面程序的功能是输出以下形式的金字塔图案: * *** ***** ******* main() { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++)printf(" "); for(j=1;j<=();j++)printf("*"); printf("\n"); } } 在下划线处应填入的是()。
A.i
B.2*-1
C.2*i+1
D.i+2
-
阅读下列说明和C++程序,将应填入(n)处的字句写在对应栏内。【程序1说明】 程序1中定义了数组的类模
阅读下列说明和C++程序,将应填入(n)处的字句写在对应栏内。
【程序1说明】
程序1中定义了数组的类模板,该模板使得对于任意类型的二维数组,可以在访问数组元素的同时,对行下标和列下标进行越界判断,并给出相应的提示信息(C++语言本身不提供对下标越界的判断)。
【程序1】
include < iostream. h >
template < class T > class Array2D;
template < class T > class Array2DBody {
friend (1);
T * tempBody;
int iRows, iColumns, iCurrentRow;
Array2DBody(int Rows,int Cols) {
tempBody =(2);
iRows = Rows;
iColumns = Cols;
iCurrentRow = -1;
}
public:
T& operator[ ] (int j){
bool row_ error, column_ error;
row_ error = column_ error = false;
try {
if (iCurrentRow < 0||iCurrentRow > = iRows)
row_ error = true;
if(j < 0||j > = iColumns)
column_error = true;
if(row_error = = true [ [ column_ error = = true)
(3);
}
catch(char) {
if (row_error = = true)
cerr < < "行下标越界"[" < < iCurrentRow < < "]";
if(colmnn_error = = true)
cerr< <"列下标越界[" < <j< <"]";
cout < < "\n";
}
return tempBody[ iCurrentRow * iColumns + j ];
}
~ Array2 DBody () { delete [ ] tempBody; } }; template < class T > class Array2D {
Array2DBody < T > tBody;
public:
Array2DBody < T > & operalor[ ] (int i) {
tBody, iCurreutRow = i;
(4);
Array2D(int Rows,int Cols): (5) {} };
void main()
{
Array2D <int> al (10,20 );
Array2D <double> a2(3,5);
int bl;
double b2;
b1=a1[-5][10];//有越界提示:行下标越界[-5]
b1=a1[10][15];//有越界提示:行下标越界[10]
b1=a1[1][4];//没有越界提示
b2=a2[2][6];//有越界提示:列下标越界[6]
b2=a2[10][20];//有越界提示:行下标越界[10]列下标越界[20]
b2=a2[1][4];//没有越界提示
}
-
请阅读以下说明和Socket程序,将应填入(n)处的字句写在对应栏内。 网络应用的基本模型是客户机/服
请阅读以下说明和Socket程序,将应填入(n)处的字句写在对应栏内。
网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。
一般发起通信请求的应用程序称为客户软件,该应用程序通过与服务器进程建立连接,发送请求,然后等待服务器返回所请求的,内容。服务器软件一般是指等待接收并处理客户机请求的应用程序,通常由系统执行,等待客户机请求,并且在接收到请求之后,根据请求的内容,向客户机返回合适的内容。
本题中的程序较为简单,客户机接收用户在键盘上输入的文字内容,服务器将客户机发送来的文字内容直接返回给客户机,在通信过程中服务器方和客户机方都遵守的通信协议如下:
由客户机首先发送请求,该请求由首部和内容两大部分组成,两个部分各占一行文字,通过行结束符“\n”隔离。
首部只有一个Length域,用于指定请求的内容部分的长度,首部的结构为:“关键词 Iength”+“”+数值+“\n”。
内容部分为一行文字,其长度必须与Length域的数值相符例如,客户机的请求为“Length 14\nilello,mybaby!”,服务器接收请求处理后返回文字“Hello,my babv!”。
[Socket程序]
服务器主程序部分:
include<stdio.h>
……/引用头文件部分略>
define SERVER_PORT 8080//服务器监听端口号为8080
define BACKLOG 5 /连接请求队列长度
int main(int argc,char *a rgv[]){
int listenfd,connfd//监听套接字、连接套接字描述符
struct sockaddr_in servaddr;//服务器监听地址
listenfd=(1);//创建用于监听的套接字
if(1istenfd<0){
fprintf(stderr,"创建套接字错误!")
exit(1);
} //套接字创建失败时打印错误信息
bzero(&servaddr. sizeof(servadd));//将地址结构置空
servaddr.sin_family=AF_INET;//设置地址结构遵循TCP/IP协议
servaddr.sln_addrs_addr=htonl. (2);//设置监听的IP地址为任意合法地址,并将该地址转换为网络字节顺序
servaddr.sin_port=(3);//设置监听的端口,并转化为网络字节顺序
if(bind (4)<0){
fprintf(stderr,”绑定套接字与地址!”);
exit(1);
} //将监听地址与用于监听的套接字绑定,绑定失败时打印错误信息
if(listen(listedfd,BACKlOG)<0){
fprintf(stderr,“转换套接字为监听套接字!”);
exit(1);
} //将用于监听的套接字由普通套接字转化为监听套接字
for(;;){
connfd=(5);
//从监听套接字的连接队列中接收已经完成的连接,并创建新的连接套接字
if(connfd<0){
fprintf(Stderr,"接收连接失败!");
exit(1);
} //接收失败打印错误信息
serv_respon(connfd);//运行服务器的处理函数
close(connfd);//关闭连接套接字}
dose(listenfd); //关闭监听套接字}
服务器通信部分:
include
<……//引用头文件部分略>
Void serv_respon(int sockfd){
Int nbytes;char bur[1024];
for(;;){
nbytes=read_requ(Sockfd,bUr,1024);
//读出客户机发出的请求,并分析其中的协议结构,获知请求的内容部分的长度,并将内容复制到缓冲区buf中,
if((6) )return;//如客户机结束发送就退出
else if(bytes<0){
fprintf(Siderr,"读错误情息:%S\n",strerror(errno));
return;
}//读请求错误打印错误信息
if(wnte-all(sockfd,buf,nbytes)<0)
//将请求中的内容部分反向发送回客户机
fprintf(siderr,"写错误信息:%s\n",strerror(errno));
}
}
int read_requ(int sockfd,char * buf int size){
Char inbuf[256];
int n;int i;
i=read_line(sockfd,inbUf,256);
//从套接字接收缓冲区中读出一行数据,该数据为客户请求的首部
if(1<O)return(i);
else if(i==0)return(0);
if(stmcmp(inbu,"",6)==0)
scanf((7),"%d",&n);//从缓冲区buf中读出长度信息
else{
sprintf(bur,"",14);
return(14);
}//取出首部Length域中的数值,该数值为内容部分的长度
return(read-all(sockfd,bur,n));//从接收缓冲区中读出请求的内容部分
}
int get-char(int fd,char * ch){
static int offset=0;
static int size=0;
static char buff[1024];
//声明静态变量,在get_char多次被调用期间,该变量的内存不释放
for(;size<=0 ||(8);){
size=read(fd,bur,1024);//一次从套接字缓冲区中读出一个数据块
if(size<0){
if(errno==EINTR){
size=0;
contine;
//EINT日表示本次读操作没有成功,但可以继续使用该套接字读出数i
}else
return(-1);
}
offset=0;//读出数据后,将偏址置为0
*ch:buf[offset++);//将当前的字符取出,并将偏址移向下一字符
return(1);
}
int read_line(int fd,char * buf,int msxlen){
int i, n;
Char ch;
for(i=0;i<(9)){
n=get_char(fd,&ch);//取出一个字符
if(n==1){
buff[i++]=ch//将字符加入字符串中
if((10) )break;
}else if(n<)return(-1);
else break;
}
buf[i]='\0';
return(i);
}
-
阅读下列程序说明和C++代码,将应填入(n)处的字句写在对应栏内。 [说明] ①定义私有数据成员code、en
阅读下列程序说明和C++代码,将应填入(n)处的字句写在对应栏内。
[说明]
①定义私有数据成员code、english分别用于表示考生的编号、英语成绩,它们都是int型的数据。
②完成成员函数void Student::inputinformation()的定义,该函数用于用户输入一个考生对象的信息,输入格式如下:
输入编号:
英语成绩:
计算机成绩:
③利用已实现的类Student的成员函数,完成函数void firstname(Student *A[],int uum)的定义,该函数根据考生信息A[],输出num个考生中总分最高者的编号及其相应的总分,在此不考虑总分相同的情况。
源程序文件test1.cpp清单如下:
include < iostream. h >
class Student
(1)
int computer;
int total;
public
void getinformation();
void computesum();
int getcode();
int gettotalscore();
~Student();
};
void Student: :getinformation()
{
(2)
cout <<"英语成绩:";
cin> >english;
cout <<"计算机成绩:";
cin > > computer;
void Student:: computesum ()
total = english + computer;
cout <<"编号" << code <<"总分:" <<total << endl;
int Student::getcode()
return code;
}
int Student:: gettotalscore ()
{
return total;
}
void firstname(Student * A[] ,int num)
{
(3)
tempsum = (* A[0] ). gettotalscore();
for(int i=1; i <num; i++)
{
if (((* A[i] ). gettotalscore() ) > tempsum)
{
tempcode = (* A[i] ). getcode();
tempsum = (* A[i] ). gettotalscore();
}
}
cout <<"总分最高者--" << tempcode <<":" << tempsum <<endl;
}
void main()
{
Student * A[3];
int i,n =3
for(i=0;i<n;i ++)
A[i] = new Student;
A[i] -> getinformation()
for(i=0;i<n;i ++)
{
A[i] -> computesum()
firstname (A,3 );
}
-
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【C++程序】include < stdio. h >include
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。
【C++程序】
include < stdio. h >
include < string. h >
define Max 1000
class Bank
{
int index;
char date [Max] [10]; // 记录交易日
iht amount[Max]; // 记录每次交易金额,以符号区分存钱和取钱
int rest[ Max]; // 记录每次交易后余额
static iht sum; // 账户累计余额
public:
Bank() {index =0;}
void deposit(char d[ ] , int m) //存入交易
{
strcpy (date [ index ], d);
amount[ index] = m;
(1);
rest[ index] = sum;
index++;
}
void withdraw (char d[ ], int m) //取出交易
{
strcpy(date[ index] ,d);
(2);
(3);
rest[ index] = sum;
index++;
}
void display();
};
int Bank:: sum = 0;
void Bank:: display () //输出流水
{
int i;
printf("日期 存入 取出 余额\n");
for (4)
{
printf(" %8s" ,date[i] );
if (5)
printf(" %6d" , -amount[i] );
else
printf("%6d ",amount[i] );
printf("% 6d\n" ,rest[i] );
} }
void main()
{
Bank object;
object. deposit ("2006.2.5", 1 00 );
object. deposit("2006.3.2" , 200);
object. withdraw("2006.4.1", 50);
object. withdraw("2006.4.5", 80);
object. display ();
}
本程序的执行结果如下:
日期 存入 取出 余额 2006.2.5 100 100
2006.3.2 200 300
2006.4.1 50 250
2006.4.5 80 170
-
"(专基)以下程序求7!当输入7后,则空白处应填入()include ""stdio.h""void main(){int quarter=1,i,n;scanf(""%d"",&n);while{quarter=quarter*n;n--; }printf(""quarter=%d\n"",quarter);}
A.n>=1
B.n<=1
C.n<=7
D.n>=7
-
阅读以下说明和java代码,将应填入(n)处的字句写在对应...
阅读以下说明和java代码,将应填入(n)处的字句写在对应栏内。
[说明]
本程序使用类来管理员工的通讯地址信息。已知程序的输出为:
输出记录:5
姓名:王丽华
街道地址:中华路15号
市:襄樊市
省:湖北省
邮政编码:430070
[Java代码]
public class Employee{
protected String (1);
protected String street;
protected String city;
protected String prov;
protected String post;
protected int no;
public Empbyee(){}
public Employee(String name,String street,String city,String prov,String post, (2) ){
this.name=name;
this.street=street;
this.city=city;
this.prov=prov;
this.post=post;
this.no=no;
}
public static void main(String[]args){
Employee emp=new Employee(“王华”,“中华路15号”,“武汉市”,“湖北省”,“430070”,1);
emp.changeName(“王丽华”);
(3) (“襄樊市”);
emp.changeNo(5);
(4);
}
void changeName(String name){this.name=name;}
void changeStreet(String street){this.street=street;}
void changeCity(String city){this.city=city;}
void changeProv(String prov){this.prov=prov;}
void changeNo(int no){(5);}
void display(){
System.out.println(“输出记录:”+this.no);
System.out.Println(“姓名:”+this.name);
System.out.println(“街道地址:”+this.street);
System.out.println(“市:”+this.city);
System.out.println(“省:”+this.prov);
System.out.println(“邮政编码:”+this.post);
}
}
-
第二题阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
对n个元素进行简单选择排序的基本方法是:第一趟从第1个元素开始,在n个元素中选出最小者,将其交换至第一个位置,第二趟从第2个元素开始,在剩下的n-1个元素中选出最小者,将其交换至第二个位置,依此类推,第i趟从n-i+1个元素中选出最小元素,将其交换至第i个位置,通过n-1趟选择最终得到非递减排序的有
-
函数子程序FJ求一组数的和。FUNCTION FJ(X,N)DIMENSION X(N)S=0.DO 10 K=1,NS=S+X(K)10 CONTINUE FJ=____END为了完整程序,在____处应填入()
A.0.0
B.S
C.X(N)
D.N
-
以下函数按每行8个输出数组中的数据:voifun(in*w,inn)ini;for(i=0;i<n;i++){printf("%d",w[i]);}printf("");}下画线处应填入的语句是()
A.if(i/8==0)printf(" ");
B.if(i/8==0)continue;
C.if(i%8==0)printf(" ");
D.if(i%8==0)continue;
-
基本操作题下面的程序是求菲波那契(Fibonacci)数列的前10项。已知该数列的前两项都为1,即F(1)=1,F(2)=1;而后面各项满足:F(n)=F(n-1)+F(n-2).请在程序的每条横线处填写一条语句,使程序的功能完整。注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。public class Fibonacci{ public static void m
-
已知n为7,m为10,按以下形式输出n、m及其和。 n=7,m=10,n+m=17 注意: 1. 程序的最后必须输出一个回车换行。 2. 语言选DEV C++
-
阅读程序。阅读下列C++程序,对每条语句进行注释,说明其作用(请粘贴源代码或屏幕截图,不要上传附件)。 include <iostream> using namespace std; class CTest { private: int x, y; public: CTest(int p1 = 0, int p2 = 0) { x = p1; y = p2; } CTest(CTest &p) { x = p.x; y = p.y; } void Show() { cout << x << “, “ << y << endl; } }; int main() { CTest obj1; obj1.Show(); CTest obj2(2, 5); obj2.Show(); CTest obj3(obj2); obj3.Show(); return 0; }