| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 594 人关注过本帖
标题:OK,笔试通过了,明天去面试,列出未作答的问题,一会一起讨论,没准明天会问这些 ...
只看楼主 加入收藏
suntea
Rank: 2
等 级:论坛游民
帖 子:59
专家分:88
注 册:2010-6-24
结帖率:100%
收藏
 问题点数:0 回复次数:3 
OK,笔试通过了,明天去面试,列出未作答的问题,一会一起讨论,没准明天会问这些
c++ 4种常用类型转换,是一个程序题,写3个类,然后用dynamic_cast<> static_cast<> 这些 反正是一点没答上来....

还有一个是现有一个数组,是否排序未知,写一个函数int find(int a[],int n)//n为数组元素个数

如果数组为升序return 1 降序 return 2 , 无序 return 3;


ps:
    笔试题,没有关于应用的问题,都是基础的基础,考你的就是看你细心不细心.
    记一道有题目,分享给大家,看起来非常简单的.
    #define DOUBLE(A) A+A
    main()
    {
        int Double(int a){return a+a;}
        cout<< DOUBLE(5)*2 << endl;
        cout<< Double(5)*2 << endl;
    }  

    问:输出的2个值是多少?

    不要直接用编译器写哦,先自己算好答案,在用编译器来验证,这样你会永远记住这个题的!

    Have fun everyone!
    See U later!
搜索更多相关主题的帖子: 笔试 作答 面试 
2010-07-14 19:07
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
带简单了。
dynamic_cast<> static_cast<>  一般是用在派生类跟基类的转换。

如果数组为升序return 1 降序 return 2 , 无序 return 3;
先看首元素在看尾元素。然后一个遍历就出来了。

int Double(int a){return a+a;}
        cout<< DOUBLE(5)*2 << endl;
        cout<< Double(5)*2 << endl;

考得无非就是宏替换。
A+A*2=15

是个写code的人都应该会。
2010-07-14 20:37
suntea
Rank: 2
等 级:论坛游民
帖 子:59
专家分:88
注 册:2010-6-24
收藏
得分:0 
关于 return 1 /  2/  3  的 那个find函数
程序代码:
#include <iostream>
using namespace std;


int find(int a[],int n)
{
    int big,small;
    big = small = 0;
    for(int i=0; i<n-1; i++)
    {
        if(a[i] >= a[i+1])
        {
            if(a[i]==a[i+1]) continue;
            else small++;
        }
        else big++;
    }
    if(big != 0&&small == 0) return 1;
    if(big == 0 && small != 0) return 2;
    return 3;
}
int main()
{
    int a[10] = {1,2,3,3,4,4,5,6,7,8};
    int b[5] = {5,5,3,4,7};
    int c[8] = {8,7,7,5,4,4,2,1};
    int i = find(a,10);
    cout<< "find(a,10) =" << i << endl;
    i = find(b,5);
    cout<< "find(b,5) =" << i << endl;
    i = find(c,8);
    cout<< "find(c,8) =" << i << endl;
    return 0;
}

 
2010-07-14 21:48
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>

int func(int buf[], int size)
{
    int i,ret=buf[0]<=buf[size-1]?1:0;
    for( i = 0 ; i < size-1; i++)
    {
    if( ret && buf[i] > buf[i+1]||!ret && buf[i] < buf[i+1])
        return 3;
    }
    return buf[0] <= buf[size-1] ? 1:2;
}

int main()
{
    int a[10] = {1,2,3,3,4,4,5,6,7,8};
    int b[5] = {5,5,3,4,7};
    int c[8] = {8,7,7,5,4,4,2,1};
    printf("%d\n",func(a,10));
    printf("%d\n",func(b,5));
    printf("%d\n",func(c,8));
    return 0;
}
2010-07-14 23:22
快速回复:OK,笔试通过了,明天去面试,列出未作答的问题,一会一起讨论,没准明天会 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025973 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved