施进超

导航

我的程序段

1)写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

C++:
#include <iostream>
#include <cmath>
#include <cstring>
#define N 100

using namespace std;

int main()
{
    char a[N];
    int sum = 0, len = 0;

    while (gets(a))
    {
        len = strlen(a);
        for (size_t i = len - 1; i >= 0; i--)
        {
            if (a[i] >= 'A' && a[i] <= 'F')
            {
                sum = ((a[i] - 55) * pow(16, len - i - 1));
            }
            else if (a[i] >= '0' && a[j] <= '9')
            {
                sum = ((a[i] - 48) * pow(16, len - i - 1));
            }
        }
        cout << sum << endl;
        sum = 0;
    }
    return 0;
}

2)考虑下面的代码段是否会通过编译,如果通过,输出结果是什么?

/**
 * JDK 1.8
 */

public class Meno {
    public static void main(String[] args) {
        m();
    }
    public static void m(int ... a) {
        System.out.println("1");
    }
    public static void m(short ... b) {
        System.out.println("2");
    }
    public static void m(long ... a) {
        System.out.println("3");
    }
    public static void m(byte ... a) {
        System.out.println("1");
    }
}

答案:通过编译,1。
结论:m()的重载方法可变参数类型越小,执行的优先级越高。

posted on 2019-05-22 22:24  jinzhaoshi  阅读(96)  评论(0编辑  收藏  举报