金山WPS暑期实习招聘笔试题
int x = 18 / 7 * 3; x变量的数值为:_____
你觉得你的思维特点:_____
以下程序的输出结果是:_____std::cout << "0" << std::endl;
c++是否是大小写敏感的:_____
int * p = new int[10];和上述语句匹配的释放语句是:_____
const int x = 0x20;printf("%d", x);以上代码片段的输出是:_____
以下哪个不是c++关键字:_____
请编写一段代码测试以下函数执行的正确性: void unique(std::vector & v); 这个函数的职责是去除传入数组中的重复元素。 提示1:函数返回结果不一定是依照某种顺序的; 提示2:请尽可能多的考虑各种可能出现bug的情况组合; 提示3:你编写的代码应当返回一个int值,返回0表示测试通过,返回1表示出现错误。 int com(const void* a,const void* b) { return (*int*)a-*(int*)b; } int test(std::vector &v) { unique(v); qosrt(v.begin(),v.size(),sizeof(int),com); for(int i=0;i if(v[i]==v[i+1]) return 0; return 1; }
参考答案:
无
printf("5432" + 1);上述代码的输出结果是:_____
请实现这么一个函数:传入一个int值,在屏幕输出类似LED显示屏效果的字母拼图, 例如: 输入1234567890,输出: 提示:请注意每个字符的固定宽度和高度,两个数字间保留一个空格。 函数签名:void LEDprint(int num); #define HEIGHT 7 void LEDprint(int num) { int a[14]; int i=0; while(num) { a[i]=num%10; i++; num/=10; } for(int j=0;j { for(int k=i-1;k>=0;k--) { static int m=0; switch(a[k]) { case 0: switch(j) { case 0: case 6: printf(“---”); break; case 1: case 2: case 3: case 4: case 5: printf(“| |”); break; } break; case 1: switch(j) { case 0: case 6: printf(“ ”); break; case 1: case 2: case 3: case 4: case 5: printf(“ |”); break; } break; case 2: switch(j) { case 0: case 3: case 6: printf(“---”); break; case 1: case 2: printf(“ |”); break; default: printf(“| ”); } break; case 3: switch(j) { case 0: case 3: case 6: printf(“---”); break; default: printf(“ |”); break; } break; case 4: switch(j) { case 0: printf(“ ”); break; case 1: case 2: printf(“| |”); break; case 3: printf(“---|”); break; default: printf(“ |”); break; } break; case 5: switch(j) { case 0: case 3: case 6: printf(“---”); break; case 1: case 2: printf(“| ”); break; default: printf(“ |”); break; } break; case 6: switch(j) { case 0: case 6: printf(“---”); break; case 1: case 2: printf(“| ”); break; case 3: printf(“|---”); break; default: printf(“ |”); } break; case 7: switch(j) { case 0: printf(“---”); break; default: printf(“ |”); } break; case 8: switch(j) { case 0: case 6: printf(“---”); break; case 3: printf(“|--|”); break; default: printf(“| |”); break; } break; case 9: switch(j) { case 0: case 6: printf(“---”); break; case 3: printf(“--|”); break; case 1: case 2: printf(“| |”); break; default: printf(“ |”); break; } break; } } m++; if(m==2) { printf(“ ”); m=0; } printf(“\n”); } }
参考答案:
无
一个工程由如下文件组成: head1.h head2.h src1.cpp src2.cpp main.cpp 最终编译结果为xxx.exe(或者xxx,如果在linux下的话) 请写出你熟悉的某种编译器将这5个文件转换为最终结果xxx.exe(或xxx)的详细过程。写出每一个步骤,并作相关的解释,如果你熟悉某编译器的话,请写出这个编译器每一步用到的命令行。
参考答案:
无
实现如下函数: void printInChinese(int num); 这个函数输入一个小于100000000(一亿)的正整数,并在屏幕上打印这个数字的中文写法。 例如: 17 -> 一十七 120 -> 一百二十 201 -> 二百零一 1074 -> 一千零七十四 65536 -> 六万五千五百三十六 1010101 -> 一百零一万零一百零一 提示:请注意‘零’的处理。 扩展:如果需要处理通用简化习惯,你将怎么处理,例如: 17 -> 十七 120 -> 一百二 void printInChinese(int num) { char* wei[]={“”,”十”,”百”,”千”,”万”,”十”,”百”,”千”}; char* num1[]={“零”,”一”,”二”,”三”,”四”,”五”,”六”,”七”,”八”,”九”}; int a[9]; int i=0; int tmp,flag=0; while(num) { a[i]=num%10; num/=10; i++; } for(int j=i-1;j>=0;j--) { if(a[j]==0) if(flag==0) { flag=1; tmp=j; } else { if(flag==1) { if(tmp-j>=4) //中间零数超过四位 printf(“万”); printf(“零”); flag=0; tmp=0; } printf(“%s%s” ,num1*a*j++, wei*j+); } } } //对于特殊情况的考虑 需要考虑在十位和十万位开头 且为1的情况。 末尾的情况稍微复杂点 可以考虑先将所有要输出的数据缓存,然后根据末尾0的情况适当输出。 已知完全弹性碰撞公式如下: 其中m1 m2为小球质量,v1 v2为原始速度,v1' v2'是碰撞后的速度。 struct ball_t { double m; // 质量 double v; // 速度,速度为正表示球体往x轴正方向运动 double pos; // 在x坐标轴的位置 }; 请实现以下函数: void progress(ball_t & b1, ball_t & b2, double leftWall, double rightWall, double t); 这个函数输入两个球的当前状况(包括质量,速度,在x轴的位置),以及左右墙壁的位置,输出两个球在t秒钟后的状况(包括质量,速度,在x轴的位置)。 特殊说明:球体碰撞墙面也是完全弹性碰撞,即球体速度变为原本的负数。
参考答案:
无
对你的合作伙伴你最不能接受的缺点是:_____
你觉得你的能力特点是:_____
char x[] = "hello"sizeof(x)的结果为:
int * p = new int;以下那行语句是合法的:_____
你最喜欢的做事方式:_____
std::vector x;x.resize(10);sizeof(x)的结果为:_____
购买评价 (6.0)分