软考初级程序员下午题(3)

试题四

4、阅读以下说明和C语言程序,将应填入______处的字句填写完整。

    [说明]

    计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:

    5

    4 1

    3 2

    3 1 1

    2 2 1

    2 1 1 1

    1 1 1 1 1

    共有7种划分。这种划分的程序如下。

    [程序]

    #include<stdio.h>

    int n[1000],m,k;

    void output_sum()

    {

    int j;

    for(j=0;n[j]!=0;j++)

    printf("%d\t",n[j]);

    printf("\n");

    }

    void sum(int i)

    {

    if(m-n[i]<n[i])

    { m=m-n[i];

    ______

    i++;

    n[i+l]=0;

    }

    else

    {

    ______

    m-=n[i];

    i++;

    }

    if(m!=n[i])

    syn(i);

    else

    output sum();

    if(n[i]>1)

    {

    n[i]--;

    ______

    }

    else

    {

    while((n[i]==1)&&(i>0))

    {

    i--;

    ______

    }

    if(i!=0)

    {

    ______

    sum(i);

    }

    }

    }

    void main()

    {

    int i;

    scanf("%d",&n[0]);

    m=k=n[0];

    for(i=1;i<=k;i++)

    n[i]=0;

    while(n[0]!=1)

    {

    n[0]--;

    i=0;

    sum(0);

    m=k;

    }

    }

试题五

5、阅读以下说明和C++代码,将应填入______处的字句填写完整。

    [说明]

    现需要统计某企业员工的月平均工资,即该企业本月发给员工的工资总和除以员工数。假设企业本月发给员工的工资总和为sumSalary,该企业的员工总数为employeeNumber,下面的程序代码计算该企业员工本月的平均工资,其中需要处理employNumber为0的情况。

    [C++代码]

    #include<iostream>

    using namespace std;

    class Department{

    protected:

    float average(float x,int y){

    if(y==0)throw ______;

    return x/y;

    }

    public:

    void caculate(void){

    float sumSalary;

    int employeeNumber;

    try{

    cout<<"请输入当月工资总和与员工数:"<<endl;

    cin>>sumSalary>>employeeNumber;

    float k=average(sumSalary,employeeNumber);

    cout<<"平均工资:"<<k<<endl;

    }

    ______(int e){

    if(e==0){

    cout<<"请重新输入当月工资总和与员工数:"<<endl;

    cin>>sumSalary>>employeeNumber;

    float k=average(sumSalary,employeeNumber);

    cout<<"平均工资:"<<k<<endl;

    }

    }

    }

    };

    void main(){

    try{

    ______;

    d.caculate();

    }

    ______(int e){

    if(e==0)

    cout<<"程序未正确计算平均工资!"<<endl;

    }

    }

    [问题1]

    程序运行时,若输入的员工工资总和为6000,员工数为5,则屏幕输出为:

    请输入当月工资总和与员工数:

    6000 5

    ______

    [问题2]

    若程序运行时,第一次输入的员工工资总和为6000,员工数为0,第二次输入的员工工资总和为0,员工数为0,则屏幕输出为:

    请输入当月工资总和与员工数:

    6000 0

    ______

    0 0

    ______

试题六

6、阅读以下说明和Java代码,将应填入______处的字句填写完整。

    [说明]

    现需要统计某企业员工的月平均工资,即该企业本月发给员工的工资总和除以员工人数。假设企业本月发给员工的工资总和为sumSalary,该企业的员工总数为employeeNumber,下面的程序代码计算该企业员工本月的平均工资,其中需要处理employNumber为0的情况。

    [Java代码]

    import java.util.Scanner;

    public class JavaMain{

    static float average(float x,int y)throws Exception{

    if(y==0)throw new Exception(______);

    return x/y,

    }

    static void caculate() throws Exception{

    float sumSalary;

    int employeeNumber;

    Scanner sc=new Scanner(______);

    try{

    System.out.println("请输入当月工资总和与员工数:");

    sumSalary=sc.nextFloat();    //从标准输入获得工资总和

    employeeNumber=sc.nextlnt();   //从标准输入获得员工数

    float k=average(sumSalary,emptoyeeNumber);

    System.out.println("平均工资:"+k);

    }

    ______(Exception e){

    if(e.getMessage().equalslgnoreCase("zero")){

    System.out.println("请重新输入当月工资总和与员工数:");

    sumSalary=sc.nextFloat();

    employeeNumber=sc.nextlnt();

    float k=average(sumSalary,employeeNumber);

    System.out.println("平均工资:"+k);

    }

    }

    }

    public static void main(String[] args){

    try{

    caculate();

    }

    ______(Exception e){

    if(e.getMessage().equalslgnoreCase("zero"))

    System.out.println("程序未正确计算平均工资!");

    }

    }

    }

    [问题1]

    程序运行时,若输入的员工工资总和为6000,员工数为5,则屏幕输出为:

    请输入当月工资总和与员工数:

    6000 5

    ______

    [问题2]

    若程序运行时,第一次输入的员工工资总和为6000,员工数为0,第二次输入的员工工资总和为0,员工数为0,则屏幕输出为:

    请输入当月工资总和与员工数:

    6000 0

    ______

    0 0

    ______

答案:

试题四答案

4、(1)n[i+1]=m;   (2)n[i+1]=n[i];   (3)sum(i);   (4)m+=n[i];   (5)n[i]--;

[解析] 本题考查C语言中计算n的合数方法的实现。

    题目要求计算n的合数,我们首先来了解一下什么是n的合数。在正整数n的所有不同的划分中,将最大加数n1不大于m的划分个数记作q(n,m)。可以建立q(n,m)的如下递推关系。

    (1)q(n,1)=1,n≥1

    当最大数n1不大于1时,任何正整数只有一种划分形式,就是全1。

    (2)q(n,m)=q(n,n),m≥n

    最大加数n1实际上不能大于n。因此,q(1,m)=1。

    (3)q(n,n)=1+q(n,n-1)

    正整数n的划分由n1=n的划分和n1≤n-1的划分组成。

    (4)q(n,m)=q(n,m-1)+q(n-m,m),n>m>1

    正整数n的最大加数n1不大于m的划分由n1=m的划分和n1≤m-1的划分组成。要想求出所有解,只有递归到最底层即全为1为止。

    知道了上述特性,下面我们来看代码。在代码中首先声明一个数组和两个全局变量k,m。结合程序可以看出,其中数组n[i]中存放的是当前划分的最大加数,而m中存放的是当前被划分的数。程序代码中有三个函数,一个主函数、一个output_sum()函数和一个sum()函数,函数output_sum()的功能很简单,就是输出一次划分结果,在sum()函数中被调用。

    经过分析不难发现,函数sum()的作用是实现整数的划分。在函数体中,首先是一个条件判断语句,其作用是判断当前被划分的数m是否小于当前最大加数的两倍,如果条件成立,说明数被划分为两个数后,其最大加数大于另一个数,而另一个数应该存放在数组中。此时执行语句m=m-n[i]来求出另一个数,接下来应该是保存这个数到数组中的下个位置,第1空就用来完成这个任务,因此,答案为“n[i+1]=m;”。

    第2空所在的位置是条件不成立的情况下运行的语句,条件不成立,说明数被划分为两个数后,其最大加数小于另一个数,数可以有更大的最大加数,因此,将当前的最大加数保存到数组中的下个位置,此空答案为“n[i+1]=n[i];”。

    第3空也在一个条件选择语句下面,此条件语句用于判断当前最大加数是否大于1,如果大于1,则需要接着划分,因此要调用函数sum(),其参数是i,所以此空答案为“sum(i);”。

    第4空是条件不成立即当前最大加数为1的情况下执行的语句,当最大加数为1时,说明递归到了最底层,此时,递归应该往回走了,这需要还原当前最大划分数m(为这个数的其他划分做准备),因此,这个空的答案为“m+=n[i];”。

    第5空是在条件i!=0为真的情况下执行的语句,如果条件为真,说明递归还没有回到最上层,应该求当前被划分数在当前最大加数变小后的其他划分情况,因此,此空答案为“n[i]--;”。

试题五答案

5、(1)0或y    (2)catch    (3)Department d

    (4)catch    (5)平均工资:1200.0

    (6)请重新输入当月工资总和与员工数:

    (7)程序未正确计算平均工资!

[解析] 本题考查C++程序设计语言中结构化异常的错误处理机制。

    要正确解答该题目,需要掌握C++中tty...catch...finally与exception的概念与用法。

    一般而言,try语句块中编写正常工作的语句,catch语句块中主要编写用于处理异常情况发生时的语句,而finally块中则包含不论是否发生异常都需要执行的语句。

    本题中,Department类包含了一个受保护的方法average用于计算参数x除以y的值,在计算的过程中,如果y等于0。则会抛出一个异常,空1处仅仅根据average本身无法判断异常的值与类型。因为Department类的caculate方法调用了average方法,并且在使用的过程中,需要捕获average方法产生的异常,空2处首先需要填写关键字catch,另外因为其捕获的异常类型为整型,因此,空1处应该抛出一个整型值,但在代码的逻辑判读中,判断的是e是否为0的情况,因此空1处应该抛出0或者y值。

    main方法中又使用了Department类的caculate方法,在使用变量d之前必须声明和定义,所以空3处应该为Department d。空4处仍然填写catch关键字。

    若输入的数据为6000和5,则整个程序能够计算出其平均值为1200,并且输出caculate中的输出语句,结果为“平均工资:1200.0”。若输入的数据为6000和0,则程序中caculate方法中的catch语句会首先捕获到average抛出的异常,要求重新输入数据,并再次调用average方法,由于输入的数据为0和0,所以average会再次抛出异常,这个异常将由。main方法中的catch捕获。

试题六答案

6、 (1)"zero"(不区分大小写)    (2)System.in    (3)catch

    (4)catch    (5)平均工资:1200.0

    (6)请重新输入当月工资总和与员工数:

    (7)程序未正确计算平均工资!

[解析] 本题考查Java程序设计语言中结构化异常的错误处理机制。

    要正确解答该题目,需要掌握Java中try...catch...finally与exception的概念与用法。

    一般而言,try语句块中编写的是正常工作的语句,catch语句块中主要编写的是用于处理异常情况发生时的语句,而finally块中包含不论是否发生异常都需要执行的语句。

    本题中,JavaMain类包含了一个静态的方法average,用于计算参数x除以y的值,在计算的过程中,如果y等于0,则会抛出一个异常,空1处仅仅根据average本身无法判断异常所包含的信息。因为caculate方法调用了average方法,并且在使用的过程中,需要捕获average方法产生的异常,空3处首先需要填写关键字catch,另外因为其捕获异常后判断其值为"zero",因此,空1处应该填写一个字符串"zero"。空2处需要构造一个扫描器对象,该对象需要一个输入流作为参数,因此可以使用System.in。main方法中调用了caculate方法,空4处仍然填写catch关键字。

    程序运行的过程中,若输入的数据为6000和5,则整个程序能够计算出其平均值为1200,并且执行caculate中的输出语句,结果为“平均工资:1200.0”。若输入的数据为6000和0,则程序中caculate方法中的catch语句会首先捕获到average抛出的异常,要求重新输入数据,并再次调用average方法,由于输入的数据为0和0,所以average会再次抛出异常,这个异常将由main方法中的catch捕获。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 软考初级程序员考试是计算机行业的一项重要认证,通过该考试可以证明考生具备初级程序员的技能和知识水平。其中,考生需要掌握多项技能和知识,包括编程语言、数据结构、数据库等基础知识,以及软件开发的流程、框架和工具。 在考试中,经常会出现一些实际应用场景,要求考生根据目要求,进行编程和分析,并输出相应的结果。其中,Word文档是一种常用的文档格式,考生需要掌握Word文档的基本操作,能够使用VBA等语言进行编程,并能够完成一些实际应用。 具体来说,软考初级程序员的Word文档目,可能包括以下内容: 1.使用VBA语言编写宏,实现一些常见的操作,例如:复制、粘贴、替换、格式化等操作。 2.使用VBA语言编写代码,生成表格,并实现数据的读取、插入、删除等操作。 3.使用VBA语言编写代码,实现Word文档的自动化生成,例如:生成报告、生成信函等。 4.能够使用Word文档中的高级功能,例如:段落样式、页眉页脚、插图等功能,完成一些实用操作。 总的来说,软考初级程序员的Word文档目,旨在考察考生掌握VBA语言的基本知识,以及能否独立完成一些实际应用。因此,考生需要认真学习Word文档的基础知识,并多进行练习,熟悉操作方法,并能够灵活应用到实际工作中。 ### 回答2: 软考初级程序员真题Word文档是一份质量非常高的学习资料,对于计算机专业学生或IT从业人员来说是一份非常有价值的参考资料。这份Word文档主要包含了软考初级程序员考试的真题试卷和答案解析,全面地涵盖了软考初级程序员考试的各个方面,既有基础理论知识的应用,也有实际操作的考核内容。 首先,这份Word文档的试数量非常多,包含了大量的真题试卷,考生可以通过练习这些试,快速掌握软考初级程序员考试的考试要点和考试难度。通过练习这些试,考生不仅可以更好地理解软考初级程序员考试的考点,还能够提升自己的解能力和应试技巧。 其次,这份Word文档对于考试的答案解析非常详细,不仅告诉考生正确答案,还解释了为什么这是正确的答案。这样的方法,让考生能够更深入地理解目背后的考点和知识点,真正做到“学以致用”。 最后,这份Word文档所涉及的知识点非常广,包括Java、Python、数据库、网络等方面,完整地呈现了软考初级程序员考试的知识要求。通过学习这些知识点,考生可以更加全面地了解软件开发的不同领域,从而为将来的工作打下更加坚实的基础。 综上所述,软考初级程序员真题Word文档是一份非常有价值的学习资料,对于希望进入计算机行业的学生和在IT行业工作的从业人员来说,是必备的学习工具。 ### 回答3: 软考程序员们拿到认证资格的机会之一,因此许多初级程序员都关注和备考软考初级程序员考试。在软考初级程序员考试中,Word文档是一种经常使用的应用软件。以下我将分享一些软考初级程序员真题中涉及Word文档的问和备考策略。 首先,软考初级程序员考试中的Word文档问主要包括以下几个方面: 1. 如何实现多级列表、编号和段落格式化? 2. 如何设计和使用表格? 3. 如何插入和编辑图片? 4. 如何设置页眉页脚、页码和文档保护? 5. 如何进行批量操作和邮件合并? 针对这些问,备考策略可以从以下几个方面入手: 1. 熟练使用Word文档基础操作,掌握快捷键,提高操作效率。 2. 理解Word文档的基本结构,如分节、分栏、段落、样式等。 3. 熟悉Word文档的高级功能,如多级列表、编号、段落格式化等。 4. 学会设计和使用表格,掌握常用的表格操作技巧。 5. 熟悉Word文档中图片的插入、编辑和格式化,掌握基本的图片处理技巧。 6. 熟练掌握Word文档的页眉页脚、页码和文档保护等高级功能。 7. 学会进行批量操作和邮件合并,提高工作效率。 总之,备考软考初级程序员考试不仅需要掌握计算机语言和软件开发技术,还需要熟练掌握各种常用应用软件的操作技巧。希望以上策略能够帮助备考的程序员们更好地应对Word文档问

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值