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

试题三(共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

}

简答题官方参考答案 (由简答题聘请的专业题库老师提供的解答)
查看官方参考答案
更多“试题三(共15分)阅读以下说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。【说明1】下面”相关的问题
第1题
试题五(共 15分) 阅读以下说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】

试题五(共 15分)

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

【说明】

已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastElement()、umberOfElement()以及removeLastElement()。四个方法的含义分别为:

void addElement(Object): 在列表尾部添加一个对象;

Object lastElement(): 返回列表尾部对象;

int numberOfElement(): 返回列表中对象个数;

void removeLastElement(): 删除列表尾部的对象。

现需要借助LinkedList来实现一个Stack栈类,C++代码1和C++代码2分别采用继承和组合的方式实现。

【C++代码 1】

class Stack :public LinkedList{

public:

void push(Object o){ addElement(o); }; //压栈

Object peek(){ return (1) ; }; //获取栈顶元素

bool isEmpty(){ //判断栈是否为空

return numberOfElement() == 0;

};

Object pop(){ //弹栈

Object o = lastElement();

(2) ;

return o;

};

};

【C++代码 2】

class Stack {

private:

(3) ;

public:

void push(Object o){ //压栈

list.addElement(o);

};

Object peek(){ //获取栈顶元素

return list. (4) ;

};

bool isEmpty(){ //判断栈是否为空

return list.numberOfElement() == 0;

};

Object pop(){//弹栈

Object o = list.lastElement();

list.removeLastElement();

return o;

};

};

【问题】

若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)? (5) (A. 继承 B. 组合)

点击查看答案
第2题
试题六(共 15分) 阅读以下说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】

试题六(共 15分)

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

【说明】

已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastElement()、umberOfElement()以及removeLastElement()。四个方法的含义分别为:

void addElement(Object): 在列表尾部添加一个对象;

Object lastElement(): 返回列表尾部对象;

int numberOfElement(): 返回列表中对象个数;

void removeLastElement(): 删除列表尾部的对象。

现需要借助LinkedList来实现一个Stack栈类, Java代码1和Java代码2分别采用继承和组合的方式实现。

【Java代码1】

public class Stack extends LinkedList{

public void push(Object o){ //压栈

addElement(o);

}

public Object peek(){ //获取栈顶元素

return (1) ;

}

public boolean isEmpty(){ //判断栈是否为空

return numberOfElement() == 0;

}

public Object pop(){ //弹栈

Object o = lastElement();

(2) ;

return o;

}

}

【Java代码2】

public class Stack {

private (3) ;

public Stack(){

list = new LinkedList();

}

public void push(Object o){

list.addElement(o);

}

public Object peek(){//获取栈顶元素

return list. (4) ;

}

public boolean isEmpty(){//判断栈是否为空

return list.numberOfElement() == 0;

}

public Object pop(){ //弹栈

Object o = list.lastElement();

list.removeLastElement();

return o;

}

}

【问题】

若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)? (5) (A. 继承 B. 组合)

点击查看答案
第3题
试题六(共 15分) 阅读以下说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】

试题六(共 15分)

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

【说明】

已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastElement()、

numberOfElement()以及removeLastElement()。四个方法的含义分别为:

void addElement(Object): 在列表尾部添加一个对象;

Object lastElement(): 返回列表尾部对象;

int numberOfElement(): 返回列表中对象个数;

void removeLastElement(): 删除列表尾部的对象。

现需要借助LinkedList来实现一个Stack栈类, Java代码1和Java代码2分别采用继承

和组合的方式实现。

【Java代码1】

public class Stack extends LinkedList{

public void push(Object o){ //压栈

addElement(o);

}

public Object peek(){ //获取栈顶元素

return (1) ;

}

public boolean isEmpty(){ //判断栈是否为空

return numberOfElement() == 0;

}

public Object pop(){ //弹栈

Object o = lastElement();

(2) ;

return o;

}

}

【Java代码2】

public class Stack {

private (3) ;

public Stack(){

list = new LinkedList();

}

public void push(Object o){

list.addElement(o);

}

public Object peek(){//获取栈顶元素

return list. (4) ;

}

public boolean isEmpty(){//判断栈是否为空

return list.numberOfElement() == 0;

}

public Object pop(){ //弹栈

Object o = list.lastElement();

list.removeLastElement();

return o;

}

}

【问题】

若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)? (5) (A. 继承 B. 组合)

点击查看答案
第4题
试题六(共15分) 阅读以下说明和 Java 代码,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏

试题六(共15分)

阅读以下说明和 Java 代码,将应填入 (n) 处的语句或语句成分写在答题纸的对

应栏内。

【说明】

某数据文件 students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的

数据全部读入对象数组,按分数从高到低进行排序后选出排名前 30%的学生。

【Java代码】

import java.io.*;

class Student {

private String sNO; //学号

private int Credit; //分数

public int getCredit(){

return Credit;

}

public String toString() {

return "sNO = " + this.sNO + ", Credit = " + this.Credit;

}

Student(String sNO, int Credit){

(1) = sNO;

(2) = Credit;

}

}

public class SortStudent {

void sort(Student[] s) { //Sort the array s[] in decending order of Credit

for (int i = 0; i < s.length-1; i++) {

for (int j = i+1; j < s.length; j++) {

if (s[i]. (3) < s[j]. (4) ) {

Student tmp = s[i];

s[i] = s[j];

s[j] = tmp;

}

}

}

}

public static void main(String argv[]) {

Student[] testStudent = new Student[size];

try {

BufferedReader in = new BufferedReader(new FileReader("students.txt"));

boolean done = false;

int i = 0;

while (!done) {

String s = in.readLine(); //每次读取一个学生的学号和成绩

if (s != null) {

String tmp[] = s.split(",");

testStudent[i++] = (5) (tmp[0], Integer.parseInt(tmp[1]));

} else

done = true;

}

in.close();

(6) = new SortStudent();

ss.sort(testStudent);

System.out.println("top 30%:");

for (int j = 0; j < size * 0.3; j++)

System.out.println(testStudent[j]);

} catch (IOException e) {

System.out.println("io error!");

}catch (NumberFormatException e) {

System.out.println("not a number!");

}

}

(7) int size = 100; //学生总数

}

点击查看答案
第5题
试题六(共15分)阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】某发

试题六(共15分)

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

【说明】

某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图6-1所示的类图。

试题六(共15分)阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明

【java代码】

class invoice{

public void printInvoice(){:

System.out.println ("This is the content of the invoice!");

}

}

class Decorator : extends Invoice {

protected Invoice ticket;

public Decorator(lnvoice t){

ticket = t;

}

public void printinvoice(){

if(ticket != NULL)

(1);

}

}

class FootDecorator extends Decorator{

public FootDecorator(lnvoice t){

super(t);

}

public void printinvoice (){

Systent.out.println("This is the header of the invoice! ");

(2) ;

}

}

class FootDecorator extends Decorator {

public FootDecorator(invoice t):{

super(t);

}

public void printlnvoice(){

(3) ;

Systent.out.println("This is the header of the invoice! ");

}

}

Class test {

public static void main(string[] args){

Invoice t =new invioce();

Invoice ticket;

Ticket= (4) ;

Ticket. Printinvoice();

Systent.out.println(“--------------“)

Ticket= (5) ;

Ticket. Printinvoice();

}

}

程序的输出结果为:

This is the header of the invoice!

This is the content of the invoice!

This is the footnote of the invoice!

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

This is the header of the invoice!

This is the footnote of the invoice!

点击查看答案
第6题
试题五(共15分) 阅读以下说明和 C++代码,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内。

试题五(共15分)

阅读以下说明和 C++代码,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内。

【说明】

某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前 30%的学生。

【C++代码】

#include <iostream>

#include <fstream>

#include <string>

using namespace std;

class Student {

private:

string sNO; //学号

int credit; //分数

public:

Student(string a,int b) { sNO = a; credit = b;}

Student(){}

int getCredit();

void out();

};

(1) ::getCredit() {

return credit;

}

(2) ::out() {

cout << "SNO: " << sNO << ", Credit=" << credit << endl;

}

class SortStudent {

public:

void sort(Student *s, int n);

SortStudent(){}

};

void SortStudent::sort(Student *s,int n) {

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

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

if(s[i]. (3) < s[j]. (4) ) {

Student temp = s[i]; s[i] = s[j]; s[j] = temp;

}

}

}

}

int main(int argc, char* argv[])

{

const int number = 100; //学生总数

ifstream students;

students.open("students.txt");

if(!students.is_open()) {

throw 0;

}

Student *testStudent = (5) [number];

int k = 0;

string s;

while (getline(students,s,'\n')) { //每次读取一个学生的学号和成绩

Student student(s.substr(0,s.find(',')), atoi(s.substr(s.find(',')+1).c_str()));

testStudent[k++] = student;

}

students.close();

(6) ;

ss.sort(testStudent,k);

cout <<"top 30%: "<<endl;

for(k = 0; k < number * 0.3; k++) {

testStudent[k].out();

}

delete []testStudent;

return 0;

}

点击查看答案
第7题
试题二(共15分)阅读以下说明、C程序代码和问题1至问题3,将解答写在答题纸的对应栏内。【说明1】设在

试题二(共15分)

阅读以下说明、C程序代码和问题1至问题3,将解答写在答题纸的对应栏内。

【说明1】

设在某C系统中为每个字符型数据分配1个字节,为每个整型(int)数据分配4个字节,为每个指针分配4个字节,sizeof(x)用于计算为x分配的字节数。

【C代码】

#include <stdio.h>

#include <string.h>

int main()

{ int arr[5]={10,20,30};

char mystr[]="JustAtest\n";

char *ptr= mystr;

printf("%d%d%d\n", sizeof(int),sizeof(unsigned int),sizeof(arr));

printf("%d%d\n",sizeof(char),sizeof(mystr));

printf("%d%d%d\n",sizeof(ptr),sizeof(*ptr),strlen(ptr));

return 0;

}

【问题1】(8分)

请写出以上C代码的运行结果。

【说明2】

const是C语言的一个关键字,可以用来定义“只读”型变量。

【问题2】(4分)

(1)请定义一个“只读”型的整型常量size,并将其值初始化为10;

(2)请定义一个指向整型变量a的指针ptr,使得ptr的值不能修改,而ptr所指向的目标变量的值可以修改(即可以通过ptr间接修改整型变量a的值)。

注:无需给出整型变量a的定义。

【问题3】(3分)

某C程序文件中定义的函数f如下所示,请简要说明其中static的作用,以及形参表“const int arr[]”中const的作用。

static int f(const int arr[])

{

/*函数体内的语句省略*/

}

点击查看答案
第8题
试题三(共15分) 阅读以下说明,回答问题 1 至问题4,将解答填入答题纸的对应栏内。 【说明】 某企业委

试题三(共15分)

阅读以下说明,回答问题 1 至问题4,将解答填入答题纸的对应栏内。

【说明】

某企业委托软件公司设计企业管理系统,该系统涉及企业的许多商业机密,对软件安全性、可靠性、易用性等方面提出了较高的要求。

【问题 1】(3 分)

为了达到预期的安全性,测试人员采用了静态代码安全测试、动态渗透测试、程序数据扫描三种方法对系统进行安全性测试。

其中,

(1) 对应用系统进行攻击性测试,从中找出系统运行时所存在的安全漏洞;

(2) 在早期的代码开发阶段完成;

(3) 通过内存测试来发现缓冲区溢出类的漏洞。

【问题 2】(6 分)

为了方便用户使用本系统,测试人员对软件的易用性进行了测试。功能易用性测试是软件易用性测试的一个方面,它包括业务符合性、功能定制性、业务模块的集成度、数据共享能力、约束性、交互性和错误提示等。

其中, (

4) 是测试界面风格、表格设计、数据加密机制等是否符合相关的法律法

规及使用人员的习惯;

(5) 是测试数据库表的关联和数据重用程度;

(6) 是测试关

键操作前是否有明确提示。

(4)~(6)的备选答案:

A.业务符合性测试 B.业务模块的集成度测试 C.约束性测试

D.功能定制性测试 E.数据共享能力 F.错误提示测试

【问题 3】(3 分)

为了验证系统的可恢复性,测试人员从自动恢复和人工恢复两个方面着手测试。自动恢复需验证数据恢复、 (7) 和 (8) 等机制的正确性;需人工干预的系统恢复还需 (9) ,确定其是否在可接受的范围内。

(7)~(9)的备选答案:

A.重新初始化 B.数据备份 C.重新启动

D.关闭系统 E.界面刷新 F.估计平均修复时间

G.估计平均故障时间

【问题 4】(3 分)

技术员小张选择以下三个实例对系统进行测试:

A.输入错误的密码

B.手工拔下客户端的网线,在许可的时间范围内再插上

C.关闭服务器电源,判断备份机器是否能够正常启动

其中, (10) 进行的是可恢复性测试; (11) 进行的是安全测试; (12) 进行的是故障转移测试。

点击查看答案
第9题
试题六(共15分)阅读以下说明和Java代码,填补Java代码中的空缺(1)~(6),将解答写在答题纸的对应栏

试题六(共15分)

阅读以下说明和Java代码,填补Java代码中的空缺(1)~(6),将解答写在答题纸的对应栏内。

【说明】

己知某公司按周给员工发放工资,其工资系统需记录每名员工的员工号、姓名、工资等信息。其中一些员工是正式的,按年薪分周发放(每年按52周计算);另一些员工是计时工,以小时工资为基准,按每周工作小时数核算发放。

下面是实现该工资系统的Java代码,其中定义了四个类:工资系统类PayRoll,员工类Employee,正式工类Salaried和计时工类Hourly,Salaried和Hourly是Employee的子类。

【Java代码】

abstract class Employee{

protected String name; //员工姓名

protected int empCode; //员工号

protected double salary; //周发放工资

public Employee(int empCode, String name){

this.empCode= empCode;

this.name= name;

}

public double getSalary(){

return this.salary;

}

public abstract void pay();

}

class Salaried (1) Employee{

private double annualSalary;

Salaried(int empCode, String name, double payRate){

super(empCode, name);

this.annualSalary= payRate;

}

public void pay(){

salary= (2) ;//计算正式员工的周发放工资数

System.out.println(this.name+":"+this.salary);

}

}

class Hourly (3) Employee{

private double hourlyPayRate;

private int hours;

Hourly(int empCode, String name, int hours, double payRate){

super(empCode, name);

this.hourlyPayRate= payRate;

this.hows= hours,

}

public void pay(){

salary= (4) ;//计算计时工的周发放工资数

System.out.println(this.name+":"+this.salary);

}

}

public class PayRoll{

private (5) employees[]={

new Salaried(l001,"Zhang San", 58000.00),

//此处省略对其他职工对象的生成

new Hourly(1005,"Li", 12, 50.00)

};

public void pay(Employee e[]){

for (int i=0;i<e.length; i++){

e[i].pay();

}

}

public static void main(String[] args)

{

PayRoll payRoll= new PayRoll();

payRoll.pay((6) );

double total= 0.0;

for (int i=0;i<payRoll.employees.length; i++){//统计周发放工资总额

total+=payRoll.employees[i].getSalary();

}

System.out.println(total);

}

}

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

1. 搜题次数扣减规则:

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

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

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

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

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

订单号:

遇到问题请联系在线客服

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

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

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

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

简答题官方微信公众号

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