搜题
网友您好,请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
提问人:网友xiaowangxw 发布时间:2022-01-06
[主观题]

阅读以下说明和C程序,填充程序中的空缺,将解答填入答题纸的对应栏内。【说明】正整数n若是其平方数

阅读以下说明和C程序,填充程序中的空缺,将解答填入答题纸的对应栏内。

【说明】

正整数n若是其平方数的尾部,则称n为同构数。例如,6是其平方数36的尾部,

76是其平方数5776的尾部,6与76都是同构数。下面的程序求解不超过10000的所有

同构数。

已知一位的同构数有三个:1,5,6,因此二位同构数的个位数字只可能是1,5,6

这三个数字。依此类推,更高位数同构数的个位数字也只可能是1,5,6这三个数字。

下面程序的处理思路是:对不超过100 00的每一个整数a,判断其个位数字,若为1、

5或6,则将a转换为字符串as,然后对a进行平方运算,并截取其尾部与as长度相等

的若干字符形成字符串后与as比较,根据它们相等与否来断定a是否为同构数。

【C程序】

include<stdio.h>

include<stdlib .h>

include<string .h>

int myitoa (int, char*); ,/*将整数转换为字符串*/

/* right取得指定字符串尾部长度为ler gth的子串,返回所得子串的首字符指针*/

char *right (char*, int length);

int main ()

{

int a, t; int len;

char as [10], rs[20];

printf(”[1,10000]内的同构数:\r”);

for (a=l.a<=10000; a++) {

t= (1); /*取整数a的个位数字*/

if (t!=l&&t!=5&&t!=6) :ontinue;

len=myitoa (a, as)j /*数a转换为字符串,存入as*/

myitoa (a*a, rs); /*数a的平方转换为字符串,存入rs*/

/*比较字符串as与rs末尾长度为len的子争是否相等*/

if(strcmp(as,__(2) )**o) /*若相同则是同构数并输出*/

printf(“%s的平方为%s\n”,as,rs);

}

return O;

}

int myitoa (int num,char*s) /*将整数num转换为字符串存入s*/

{

int i,n=0;

char ch;

/*从个位数开始,取num的每一位数字转换为字符后放入s[]*/

while (num) {

s[n++] =(3) +’o&39;;

num=num/10.

}

s[n]=’\0 ‘;

for (i=0; i<n/2; i++){ /*将s中的字符串逆置*/

(4) ; s[i]= s [n-i-l];s[n-i-1]=ch;

}

return n; /*返回输入参数num的位数*/

}

char *right (char*ms, int length)

/*取字符串ms尾部长度为length的子串,返回所得子串的首字符指针*/

{

int i;

For(;*ms;ms++) /*使ms到达原字符串的尾部*/

for(i=0; i<length. (5) ; /*使ms指向所得子串的首部字符*/

return ms;

}

简答题官方参考答案 (由简答题聘请的专业题库老师提供的解答)
查看官方参考答案
更多“阅读以下说明和C程序,填充程序中的空缺,将解答填入答题纸的对应栏内。【说明】正整数n若是其平方数”相关的问题
第1题
阅读以下应用说明、图和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)空缺处的内容补充完整。

点击查看答案
第2题
阅读以下说明和C++代码,将解答写入对应栏内。 [说明] 类Stock的定义中有三处错误,分别在代码的

阅读以下说明和C++代码,将解答写入对应栏内。

[说明]

类Stock的定义中有三处错误,分别在代码的第04、06、10行。请补齐下述代码中的空缺(1)~(3),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。

[C++程序]

01 include<iostream.h>

02 using namespace std;

03 class Stock{

04 protected:

05 Stock(){shares=0; share_val=0.0;Output();}

06 Stock(int n=0,double pr=3.5): (1) {//初始化shares值为n

07 share_val=pr;

08 Output();

09 };

10 void~Stock(){};

11 void Output()(cout<<shares<<';'<<share val<<endl;}

12 public:

13 //成员函数

14 private:

15 //成员变量

16 int shares;

17 double share_val;

18 };

19

20 void main(){ //构造三个Stock对象a,b,C

21 Stock a(1);

22 Stock b;

23 Stock C;Stock();

24 //其他代码省略,且代码无输出

25 }

程序运行后的输出结果为:

1:3.5

(2)

(3)

点击查看答案
第3题
阅读以下程序说明和C++程序,将程序段中(1)~(5)空缺处的语句填写完整。【说明】 以下【C++程序】实现一

阅读以下程序说明和C++程序,将程序段中(1)~(5)空缺处的语句填写完整。

【说明】

以下【C++程序】实现一个简单的小型复数类MiniComplex,该复数类能进行输入、输出、复数的加法、减法、乘法和除法运算,还可以进行复数的相等比较。

【C++程序】

ifndef H_MiniComplex

define H_MiniComplex

include <iostream>

using namespace std;

class MiniComplex{

public: //重载流插入和提取运算符

(1) ostream&operator<<(ostream &osObject,const MiniComplex&complex){

osObject<<"("<<complex.realPart<<"+"<<complex.imagPart<<"i"<<")";

return osObject;

}

(2) istream&operator>>(istream&isObject, MiniComplex&complex){

char ch;

isObject >>complex.realPart>>ch>>complex.imagPart>>ch;

return isObject;

}

MiniComplex(double real=0,double imag=0); //构造函数

MiniComplex operator+(const MiniComplex&otherComplex)const; //重载运算符+

MiniComplex operator-(const MiniComplex&otherComplex)const; //重载运算符-

MiniComplex operator*(const MiniComplex&otherComplex)const; //重载运算符*

MiniComplex operator/(const MiniComplex&otherComplex)const; //重载运算符/

bool perator==(const MiniComplex&otherComplex)const; //重载运算符==

private :

double (3);

double imagPart;

};

end if

include "MiniComplex.h"

bool MiniComplex::operator==(const MiniComplex&otherComplex)const{

return(realPart==otherComplex.realPart&&imagPart==ortherComplex.imagPart);

}

MiniComplex::MiniComplex(double real,double imag){

realPart== real; imagPart==imagPart;

}

MiniComplex MiniComplex::operator+(const MiniComplex&otherComplex)const{

MiniComplex temp;

temp.realPart = realPart+ortherComplex. realPart;

temp.imagPart = imagPart +ortherComplex. imagPart;

return temp;

}

(4)

{ MiniComplex temp;

temp.realPart= realPart-ortherComplex. realPart;

temp.imagPart = imagPart-ortherComplex. imagPart;

return temp;

}

MiniComplex MiniComplex::operator*(const MiniComplex&otherComplex)const{

MiniComplex temp;

temp.realPart = (realPart*ortherComplex. realPart)-(imagPart *ortherComplex.imagPart);

temp.imagPart = (realPart*ortherComplex. imagPart)+(imagPart *ortherComplex.realPart);

return temp;

}

MiniComplex MiniComplex::operator/(const MiniComplex&otherComplex)const{

MiniComplex temp;

float tt;

tt=1/(ortherComplex.realPart*ortherComplex.realPart+ortherComplex.imagPart *ortherComplex. imagPart);

temp.realPart=((realPart*ortherComplex, realPart)+(imagPart *ortherComplex. imagPart))*tt;

temp.imagPart =((imagPart *ortherComplex. realPart)-(realPart*ortherComplex. imagPart))*tt;

return temp;

}

include <iostream>

include <MiniComplex.h>

using namespace std;

int main(){

MiniComplex numl(23, 34),num2(56, 35);

cout<<"Initial Value of num1="<<num1<<"\n Initial Value of num2="<<num2<<end1;

cout<<num1<<"+"<<num2<<"="<<num1+num2<<end1; //使用重载的加号运算符

cout<<num1<<"-"<<num2<<"="<<num

点击查看答案
第4题
阅读以下技术说明和Java代码,将Java程序中(1)~(5)空缺处的语句填写完整。[说明] 类Queue表示队列,

阅读以下技术说明和Java代码,将Java程序中(1)~(5)空缺处的语句填写完整。

[说明]

类Queue表示队列,类中的方法如表4-12所示。

阅读以下技术说明和Java代码,将Java程序中(1)~(5)空缺处的语句填写完整。[说明] 类Qu

类Node表示队列中的元素;类EmptyQueueException给出了队列中的异常处理操作。

[Java代码]

public class testmain { //主类

public static viod main (string args[]) {

Queue q= new Queue;

q.enqueue("first!");

q.enqueue("second!");

q.enqueue("third!");

(1) {

while(true)

system.out.println(q.dequeue());

}

catch((2) ) { }

}

public class Queue { //队列

node m_firstnode;

public Queue(){m_firstnode=null;}

public boolean isempty() {

if (m_firstnode= =null)

return true;

else

return false;

}

public viod enqueue(object newnode) { //入队操作

node next = m_firstnode;

if (next = = null) m_firstnode=new node(newnode);

else {

while(next.getnext() !=null)

next=next.getnext();

next.setnext(new node(newnode));

}

}

public object dequeue() (3) { //出队操作

object node;

if (is empty())

(4)

else {

node =m_firstnode.getobject();

m_firstnode=m_firstnode.getnext();

return node;

}

}

}

public class node{ //队列中的元素

object m_data;

node m_next;

public node(object data) {m_data=data; m_next=null;}

public node(object data,node next) {m_data=data; m_next=next;}

public void setobject(object data) {m_data=data; }

public object getobject(object data) {return m_data; }

public void setnext(node next) {m_next=next; }

public node getnext() {return m_next; }

}

public class emptyqueueexception extends (5) { //异常处理类

public emptyqueueexception() {

system. out. println ("队列已空!" );

}

}

点击查看答案
第5题
阅读以下应用程序说明和C程序,将C程序段中(1)~(6)空缺处的语句填写完整。 【说明】 某大学征询学生

阅读以下应用程序说明和C程序,将C程序段中(1)~(6)空缺处的语句填写完整。

【说明】

某大学征询学生意见,从各学院预选的n(n≤60)位优秀大学生中,评选出“十佳大学生”。以下【C程序】对各位学生选票进行相关的统计、排序等处理。

(1)各学院预选的优秀大学生按1,2,…顺序连续编号,每个编号用两个字符表示,即01,02,…。

(2)所回收的选票按以下格式存于文件source中,每行字符串对应一张选票。其中,姓名占10个字符,学院名称占30个字符,大学生编号占20个字符。

(3)对应名次的大学生编号可以有空缺,但必须用00表示。

(4)若编号超出规定范围,或编号重复出现,按照废票处理。

(5)按选票中所列“十佳大学生”顺序给出各名大学生的得分。评分标准如下:

一 二 三 四 五 六 七 八 九 十

15 12 9 7 6 5 4 3 2 1

(6)按各位大学生得分数由高到低顺序排队,并按以下格式列出“十佳大学生”排行表。

名次 大学生编号 合计得分 合计得票数

若得分相同,则得票数多的在前;若得分和得票数都相同,则编号小的在前。

以下【C程序】中所应用到的函数fopen、fclose和fgets都是I/O程序库中的函数。

【C程序】

include <stdio. h>

define n 60

long int tn[n], td[n], score[n+1][10], order[n];

char s[80];

int mark[]=(15,12,9,7,6,5,4,3,2,1);

FILE *fp, *fopen();

Main()

{ int c, g, k, I, j, b[10];

long int e, d, t, tt, dd;

char * p;

for(i=0; i<=n; i++)

for(j=0; j<10; j++)

score[i][j]=0;

fP=fopen("source", "r"); /*以读方式打开文件source*/

p=fgets(s, 80, fp); /*读fp所指文件的下一行字符串于s*/

while(*p){

g=l; k=0; p+=40;

while(k<10){

c=((*p++)-'0')*10+((*p++)-'0');

b[k++]=c)

if(c<=n){

if(c)

{ i=0;

While((1) );

If((2) ){g=0; break;}

}

else{g=0; break;}

}

If(g)

For(i=0; i<k; i++)

If(b[i])

(3);

p=fgets(s, 80, fP);

}

Fclose(fp); /*关闭fp所指文件*/

For(i=1; i<n; i++){

For(t=0, d=0, j=0; j<10; j++){

t +=(e=score[i][j]);

d +=e * mark[j];

}

tn[i-1]=t; td[i-1]=d; order[i-1]=i;

}

For(i=0; i<n-1; i++){

k=i;

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

if(

点击查看答案
第6题
阅读以下技术说明及Java程序,将Java程序中(1)~(5)空缺处的语句填写完整。【说明】 用创建Thread类的

阅读以下技术说明及Java程序,将Java程序中(1)~(5)空缺处的语句填写完整。

【说明】

用创建Thread类的子类的方法实现多线程,判断一个数是否是素数。如果是,打印“是素数”,如果不是,则打印“不是素数”;如果没有参数输入,显示“请输入一个命令行参数”。

【Java程序】

import java.io.* ;

public class TestThread{ //Java Application主类

public static void main(Sting args[ ]){

if (args length<l) { //要求用户输入一个命令行,否则程序不能进行下去

system.out.println("请输入一个命令行参数");

system.exit(0) ;

} //创建用户Thread子类的对象实例,使其处于NewBorn状态

primeThread getPrimes = new primeThread (Integer.parseInt(args[0]));

getPrimes.start () ; //启动用户线程,使其处于Runnable状态

while(getPrimes.isAlive()&& getPrimes.ReadyToGoOn() ) {

system.out.println("Counting the prime number..\n"); //说明主线程在运行

try {

Thread. sleep (500); //使主线程挂起指定毫秒数,以便用户线程取得控制权,

//sleep是static的类方法

}

Catch(InterruptedException e) { //sleep方法可能引起的异常,必须加以处理

return ;

}

} //while循环结束

System.out.println ("按任意键继续……") ; //保留屏幕,以便观察

try {

(1);

}

Catch(IOException e) { }

} //main方法结束

}

class primeThread extends Thread {

//创建用户自己的Thread子类run()中实现程序子线程操作

boolean m_bContinue=true; //标志本线程是继续

int m_nCircleNum ; /循环的上限

prime Thread(int Num){ //构造函数

m_nCircleNum =Nam;

}

boolean ReadyToGoOn () { //判断本线程是否继续执行

return ((2) );

}

public void run () {

//继承并重载父类Thread的run ()方法,在该线程被启动时自动执行

int number =3;

boolean flag=true;

while (true) { //无限循环

for((3); i++) //检查number是否为素数

if(number %i==0)

(4);

system, out. println (flag);

if (flag) //打印该数是否为素数的信息

system,out.print in (number+ "是素数") ;

else

sys rem.out.print In (number+ "是素数") ;

number++ ; &nb

点击查看答案
第7题
阅读以下应用说明、图和C++程序,将C++程序中(1)~(6)空缺处的语句填写完整。【说明】 以下【C++程序】用

阅读以下应用说明、图和C++程序,将C++程序中(1)~(6)空缺处的语句填写完整。

【说明】

以下【C++程序】用于实现两个多项式的乘积运算。多项式的每一项由类Item描述,而多项式由类List描述。类List的成员函数主要有:

createList():创建按指数降序链接的多项式链表,以表示多项式:

reverseList():将多项式链表的表元链接顺序颠倒:

multiplyList(ListL1,ListL2)计算多项式L1和多项式L2的乘积多项式。

【C++程序】

include <iostream.h>

class List;

class Item {

friend class List;

private:

double quot ;

int exp ;

Item *next;

Public:

Item(double_quot,int_exp)

{ (1) ;}

};

class List{

private:

Item *list;

Public:

List(){

list=NULL:

}

void reverseList();

void multiplyList(List L1,List L2);

void createList();

};

void List::createList()

{ Item *p,*U,*pre;

int exp;

double quot;

list = NULL;

while (1) {

cout << "输入多项式中的一项(系数、指数) :" << endl;

cin >> quot >> exp:

if (exp<0 )

break ; //指数小于零,结束输入

if (quot=0 )

continue;

p = list;

while ((2) ) { //查找插入点

pre = p;

p = p->next;

}

if (p != NULL && exp = p->exp ) {

p->quot += quot;

continue ;

}

u =(3);

if (p == list)

list = u;

else

pre->next = u;

u ->next = p;

}

}

void List::reverseList()

{ Item *p, *u;

if (list==NULL )

return;

p = list ->next;

list -> next = NULL;

while (p != NULL) {

u = p -> next;

p ->next = list;

list = p;

p = u;

}

}

void List::multiplyList (List L1, List L2 )

{ Item *pL1,*pL2,*u;

int k, maxExp;

double quot;

maxExp =(4):

L2.reverseList();

list=NULL;

for (k = maxExp;k >= 0;k-- ){

pL1 = L1.list;

while (pL1 != NULL && pL1 -> exp > k )

pL1 = pL1 ->next;

pL2 = L2.1ist;

while (pL2 NULL &&(5))

pL2 = pL2 -> next;

quot = 0.0;

while (pL1 != NULL && pL2 != NULL){

if(pL1->exp+pL2->exp==k) {

(6)

pL1 = pL1 -> next;

pL2 = pL2 -> next;

} else if (pL1 -> exp + pL2 -> exp > k )

pL1 = pL1 -> next;

else

pL2 = pL2 -> next;

}

if (quot !=0.0 ) {

u = new item(quot, k );

u -> next = list;

list = u;

}

}

reverseList ();

L2. reverseList ():

}

void main()

{ List L1,L2,L;

点击查看答案
第8题
阅读以下说明和Java程序代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 在下面的Java程序

阅读以下说明和Java程序代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

在下面的Java程序代码中,类SalesTicket能够完成打印票据正文的功能,类 HeadDecorator与FootDecorator分别能够完成打印票据的台头和脚注的功能。

已知该程序运行后的输出结果如下所示,请填补该程序代码中的空缺。

这是票据的台头!

这是票据正文!

-------------------

这是票据的脚注!

这是票据的台头!

这是票据的脚注!

【tava程序代码】

public class SalesTicket {

public void printTicket() {

System. out. println ("这是票据正文 ! ");

}

}

public class Decorator extends SalesTicket{

SalesTicket ticket;

public Decorator(SalesTicket t) {

ticket = t;

}

public void printTicket(){

if(ticket != null)

ticket.printTicket();

}

public class HeadDecorator extends Decorator{

public HeadDecorator(SalesTicket t) {

(1)

}

public void printTicket() {

System. out.println("这是票据的台头! ");

super.printTicket();

}

}

public class FootDecorator extends Decorator{

public FootDecorator(SalesTicket t) {

(2);

}

public void printTicket() {

super, printTicket ();

System. out.println ("这是票据的脚注!");

}

}

public class Main {

public static void main(String[] args) {

T = new HeadDecorator((3));

T=(4);

System.out.println("------------------------------------");

T = new FootDecorator((5));

T.printTicket ();

}

}

点击查看答案
第9题
试题三(共15分)阅读以下说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。【说明1】下面

试题三(共15分)

阅读以下说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。

【说明1】

下面的函数countChar(char *text)统计字符串text中不同的英文字母数和每个英文字

母出现的次数(英文字母不区分大小写)。

【C代码1】

Int countchar(char*text)

{

int i,sum=O; /*sum保存不同的英文字母数*/

char *ptr;

int c[26]={0}; /*数组c保存每个英文字母出现的次数*/

/*c[0]记录字母A或a的次数,c[1]记录字母B或b的次数,依此类推*/

ptr=(1); /* ptr初始时指向字符串的首字符*/

while (*ptr) {

if (isupper (*ptr) )

c[*ptr一’A’]++;

else &39;

if (islower (*ptr) )

c[*ptr一’a’]++;

(2); /*指向下一个与字符*/

}

for (i=0. i<26; i++ )

If(3)sum++;

return sum;

}

【说明2]

将下面C代码2中的空缺补全后运行,使其产生以下输出。

f2: f2:f2:2

f3: f3:1

【C代码2]

include <stdio . h>

int fl (int (*f) (int)) .

int f2 (int) ;

int f3 (int) ;

int main ()

{

Printf(“%d\n”,f1(4))

Printf(“%d\n”,f1(5))

return 0;

}

int fl(int (*f) (int) }

{

int n=O;

/*通过函数指针实现函数调用,以返回值作为循环条件*/

While(6) n++

return n;

}

int f2 (int n)

{

printf ("f2: ") ;

return n*n-4;

}

int f3 (int n)

{

printf ("f3: ") ;

return n-1

}

点击查看答案
第10题
阅读下列说明和C++代码,请回答问题1至问题3。【说明】 已知下列程序运行时的输出应为: 1:1 1:1 1:1【

阅读下列说明和C++代码,请回答问题1至问题3。

【说明】

已知下列程序运行时的输出应为:

1:1

1:1

1:1

【C++程序】

01 include <iostream>

02 using namespace std;

03 class Stock{

04 protect:

05 (1) {};

06 Stock(iht 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 }

请补齐下述代码中的空缺1和2。

点击查看答案
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)

订单号:

遇到问题请联系在线客服

请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示:请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

- 微信扫码关注简答题 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注简答题 -
请用微信扫码测试
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

简答题
下载APP
关注公众号
TOP