首页 > 软考
题目内容 (请给出正确答案)
[主观题]

阅读下列程序说明和C程序,已知其输出为“1 2 3 4 5 6 7 8 9 10”。将应填入(n)处的字句写在对应栏内

阅读下列程序说明和C程序,已知其输出为“1 2 3 4 5 6 7 8 9 10”。将应填入(n)处的字句写在对应栏内。

[说明]

本程序包含的函数及其功能说明如下:

(1)函数first_insert()的功能是在已知链表的首表元之前插入一个指定值的表元;

(2)函数reverse_copy()的功能是按已知链表复制出一个新链表,但新链表的表元链接顺序与

已知链表的表元链接顺序相反;

(3)函数Print_link()用来输出链表中各表元的值;

(4)函数free_link()用来释放链表全部表元空间。

[程序]

include <stdio. h >

include <malloe. h >

typodef struct node {

int val;

struct node * next;

} NODE;

void first_insert(NODE * * p,int v)

{ NODE *q = (NODE *) malloe(sizeof(NODE));

q->val = v; q->next = *p; /* 为新表元赋值*/

* p =(1); }

NODE * reverse_copy(NODE * p)

{ NODE * u;

for(u=NULL; p!=NULL; p=p->next) first_insert((2));

return u;

}

void printlink(NODE * p )

{ for(;(3)) prinff("%d\t", p->val);

printf(" \n");

}

void free_link(NODE * p)

{ NODE * u;

while(p! =NULL) { u=p->next;free(p);(4); }

void main() { NODE * link1 , * link2;

int i;

link1 = NULL;

for(i=1; i<= 10; i+ + )first_insert(&linkl, i);

link2 = reverse_copy(link1 );

(5);

free_link(linkl ) ;free_link(link2); }

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“阅读下列程序说明和C程序,已知其输出为“1 2 3 4 5 …”相关的问题
第1题
阅读以下说明和C++代码。 [说明] 已知类SubClass的getSum方法返回其父类成员与类SubClass成员j的

阅读以下说明和C++代码。

[说明]

已知类SubClass的getSum方法返回其父类成员与类SubClass成员j的和,类 SuperClass中的getSum为纯虚拟函数。程序中的第23行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变量j的值,最后给出程序运行后的输出结果。

[C++代码]

阅读以下说明和C++代码。 [说明] 已知类SubClass的getSum方法返回其父类成员与类Su

点击查看答案
第2题
阅读以下应用说明、图和C++代码,根据要求回答问题1至问题3。 [说明] 已知以下C++程序运行时的输出

阅读以下应用说明、图和C++代码,根据要求回答问题1至问题3。

[说明]

已知以下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 }

请根据C++程序运行时的输出结果,将代码中(1)、(2)空缺处的内容补充完整。

点击查看答案
第3题
阅读以下说明C++代码,将应填入(n)处的字句写在对应栏内。[说明] 本程序实现了雇员信息管理功能,其

阅读以下说明C++代码,将应填入(n)处的字句写在对应栏内。

[说明]

本程序实现了雇员信息管理功能,其中封装了雇员信息及其设置、修改、删除操作。已知当输入为“Smith 31 2960.0”时,程序的输出是:

姓名:Smith 年龄:31 工资:2960

姓名:Smith 年龄:31 工资:3500

姓名:Mary 年龄:23 工资:2500

[C++程序]

include <iostream.h>

include <string.h>

class employee{

char *name; //雇员姓名

short age; //年龄

float salary;//工资

public:

employee();

void set_name(char *);

void set_age(short a) {age=a;}

void set_salary(float s) {salary=s;}

(1);

~ employee(){delete[] name;}

};

employee::employee() { name="";

age=0;

salary=0.0;

void employee::set_name(char *n)

{ name=new char[strlen(n)+1];

(2) (name,n);

}

void employee::print()

{ cout<<"姓名":"<<name<<" 年龄:"<<agc<<" 工资:" <<salary<<endl;

}

void main()

{ char *na;

short ag=0;

float sa=0;

(3);

na=new char[10];

cin>>na>>ag>>sa;

emp.set_name(na);

emp.set_age(ag);

emp.set_salary(sa);

emp.print();

(4) (3500.0);

emp.print();

(5);

emp.set_name("Mary");

emp.set_age(23);

emp.set_salary(2500.0);

emp.print();

}

点击查看答案
第4题
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。[说明] 本程序使用类来管理员工的通讯

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。

[说明]

本程序使用类来管理员工的通讯地址信息。已知程序的输出为:

输出记录:5

姓名:王丽华

街道地址:中华路15号

市:襄樊市

省;湖北省

邮政编码:430070

[C++程序]

include < iostream, h >

include < string, h >

class employee.

{ protected:

char name[10];

char street[ 20 ];

char city[10];

char (1) [10];

char post[7];

int no;

(2):

(3) (char [] ,char [] ,char [] ,char [] ,char [] ,int);

void changename (char n [] ) { strcpy (name, n); }

void changestreet(char s[] ) { strcpy(street,s) ;}

void changecity (char c [] ) { strcpy (city, c ); }

void changeprov(char p [] ) { strcpy(prov,p); }

void changeno(int nnm) { (4);}

void display();

};

employee:: (3) (char n[] ,char s[] ,char c[] ,char p1[] ,char p2[] ,int nam)

{ strcpy(name,n);

strcpy (street, s);

strcpy (city, c);

strcpy (prov, p1 );

strcpy (post, p2 );

no = nam; }

void employee:: display() { cont< <"输出记录: "< <no< <endl;

cout< < "姓名: "< < name < < endl;

coot < < "街道地址: "< < street < < endl;

cout < < "市: "< < city < < endl;

cout< <"省: "< <prov < <endl;

cout < <"邮政编码: "< < post < < endl;

}

void main() { employee cmp("王华" ,"中华路15号" ,"武汉市","湖北省","430070", 1 );

emp. changename("五丽华" );

emp. changecity ("襄樊市" );

emp. changeno(5);

(5);

点击查看答案
第5题
阅读下列程序: char a[6]="Student",b[]="ABC"; strcpy(a,B) ; strcpy(b,"Beijing"); puts(A) ;

阅读下列程序:

char a[6]="Student",b[]="ABC";

strcpy(a,B) ;

strcpy(b,"Beijing");

puts(A) ;

puts(B) ;

其输出为(56)。

A.ABC Bei

B.Student ABC

C.ABC Beijing

D.Aac Student

点击查看答案
第6题
阅读下列算法说明和流程图1,回答问题1至问题3。 [算法说明] 某旅馆共有N间客房。每间客房的房间号、

阅读下列算法说明和流程图1,回答问题1至问题3。

[算法说明]

某旅馆共有N间客房。每间客房的房间号、房间等级、床位数以及占用状态分别存放在数组ROOM、RANK、NBED和STATUS中。房间等级值为1、2或3。房间的状态值为0(空闲)或1(占用)。客房是以房间(不是床位)为单位出租的。

本算法根据几个散客的要求预订一间空房。程序的输人为:人数M,房间等级要求R(R =0表示任意等级都可以)。程序的输出为:所有可供选择的房间号。

流程图1描述了该算法。

阅读下列算法说明和流程图1,回答问题1至问题3。 [算法说明] 某旅馆共有N间客房。每间客房的房间号

假设当前该旅馆各个房间的情况见表3。

阅读下列算法说明和流程图1,回答问题1至问题3。 [算法说明] 某旅馆共有N间客房。每间客房的房间号

当输入M=4,R=0时,该算法的输出是什么?

点击查看答案
第7题
●试题五 阅读以下程序说明和C程序,将应填入(n)处的子句,写在答卷纸的对应栏内。 【程序说明】 函

●试题五

阅读以下程序说明和C程序,将应填入(n)处的子句,写在答卷纸的对应栏内。

【程序说明】

函数int commstr(char *str1,char *str2,int *sublen)从两已知字符串str1和str2中,找出它们的所有最长的公共子串。如果最长公共子串不止1个,函数将把它们全部找出并输出。约定空串不作为公共子串。

函数将最长公共子串的长度送入由参数sublen所指的变量中,并返回字符串str1和str2的最长公共子串的个数。如果字符串str1和str2没有公共子串,约定最长公共子串的个数和最长公共子串的长度均为0。

【程序】

int strlen(char *s)

{char *t=s;

while(*++);

return t-s-1;

}

intcommstr(char)*str1,char *str2,int *sublen

{char*s1,*s2;

int count=0,len1,len2,k,j,i,p;

len1=strlen(str1);

len2=strlen(str2);

if(len1>len2)

{s1=str1;s2=str2;}

else{len2=len1;s1=str2;s2=str1;}

for(j=len2;j>0;j--)/*从可能最长子串开始寻找*

{for(k=0; (1) <=len2;k++)/*k为子串s2的开始位置*/

{for(i=0;s1[ (2) ]!='\0';i++;)/* i为子串s1的开始位置*/

{/* s1的子串与s2的子串比较*/

for(p=0;p<j)&& (3) ;p++);

if ((4) )/*如果两子串相同*/

{for(p=0);p<j;p++}/*输出子串*/

printf("%c",s2[k+p]);

printf("\n");

count++;/* 计数增1*/

}

}

}

if (count>0)break;

*sublen=(count>0)? (5) :0;

return count;

}

点击查看答案
第8题
阅读下面的程序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。已知下面程
序的功能是:从键盘任意输入一个年号,判断它是否是闰年。若是闰年,输出“Yes”; 否则输出“No”, 已知符合下列条件之一者是闰年:(1) 能被4整除, 但不能被100整除;

(2)能被400整除。

阅读下面的程序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。已知下面程序的功能是

点击查看答案
第9题
阅读下列程序说明和C程序,把应填入其中(n)处的字句,写在对应栏内。【程序说明】 已知某二叉树的前序

阅读下列程序说明和C程序,把应填入其中(n)处的字句,写在对应栏内。

【程序说明】

已知某二叉树的前序遍历和中序遍历序列,可以得到该二叉树的结构。本程序实现了根据这两个遍历序列生成一棵链接表示的二叉树。

构造二叉树的算法要点是:由前序遍历序列,该序列的第一个元素是根结点元素。该元素将中序遍历序列分成左、右两部分,那些位于该元素之前的元素是它的左子树上的元素,位于该元素之后的元素是它的右子树上的元素。对于左、右子树,由它们的前序遍历序列的第一个元素可确定左、右子树的根结点,参照中序遍历序列又可进一步确定子树的左、右子树元素。如此递归地参照两个遍历序列,最终构造出二叉树。

两个遍历序列作为主函数main()的参数。为简单起见,程序假定两个遍历序列是相容的。主函数调用函数restore()建立二叉树。函数restore()以树(子树)的前序遍历和中序遍历两序列及序列长为参数,采用递归方法建立树(子树)。函数postorder()实现二叉树的后序遍历序列输出,用来验证函数restore()建立的二叉树。

【程序】

include(stdio.h>

include<stdlib.h>

define MAX 100

typedef struct node{

char data;

struet node * llink,*rlink;

}TNODE;

charpred[MAX],inod[MAX];

TNODE * restore (Char*,char*,int);

main(int argc,Char* *argv)

{

TNODE * root;

if(argc<3)exit(0);

strcpy(pred,argv[1]);

strcpy(inod,argv[2]);

root=restore(pred,inod,strlen(pred))postorder(root);

printf("\n\n");

}

TNODE * restore(Char * ppos,char * ipos,int n)

{ /*参数包括前序遍历序列数组和中序遍历数组*/

TNODE * ptr;

Char * rpos;

int k;

if(n <=0)return NULL;

ptr= (TNODE *)malloc(sizeof(TNODE));

ptr→data=(1);

for (2) rpos=ipos;rpos <ipos+n;rpos++ )

if(*rpos== * ppos)break;

k =(3);

ptr→llink = restore(ppos+1, (4),k);

ptr→rlink = restore (5) + k,rpos + 1,n-1-k);

return ptr;

}

postorder(TNODE *ptr)

{ if(ptr==NULL)return;

postorder(ptr→llink);

postorder(ptr→rlink);

prinft("%c",ptr→data);

}

点击查看答案
第10题
阅读以下说明、Java代码,将应填入(n)处的字句写在对应栏内。【说明】 本程序输出10000之内的所有完全

阅读以下说明、Java代码,将应填入(n)处的字句写在对应栏内。

【说明】

本程序输出10000之内的所有完全数。完全数是指等于其所有因子和(包括1,但不包括这个数本身)的数。例如:6=1×2×3,6=1+2+3,则6是一个完全数。

【程序】

public class PerfectNum

{

Public static void main(String args[])

{

int count=1;

for(int i=1; i<10000; i++)

{

int y=0;

for(int j=1; j<i; j++)

if((1))

y=(2)

if((3))

{

System.out.print((4) +String.valueOf('\t'));

(5)

If(count%3==0)

System.out.printin();

}

}

}

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改