NOWOER.OM /++ 程师能 评估. 单项选择题 1. 下 描述正确的是 int *p1 = new int[10]; int *p2 = new int[10](); p1 和 p2 申请的空间 的值都是随机值 p1 和 p2 申请的空间 的值都已经初始化 p1 申请的空间 的值是随机值,p2 申请的空间 的值已经初始化 p1 申请的空间 的值已经初始化,p2 申请的空间 的值是随机值 2. 下 的程序可以从 0...n-1 中随机等概率的输出 m 个不重复的数 这 我们假设 n 远 于 m knuth(int n, int m) srand((unsigned int)time(0)); for (int i = 0; i < n; i++) if ( ) cout << i << endl; ( ); rand()%(n-i)<=m m-- rand()%(n-i)<m m-- rand()%(n-i)>=m m++ rand()%(n-i)>m m++ 3. 以下 prim 函数的功能是分解质因数 括号内的内容应该为? void prim(int m, int n) if (m >= n) while ( ) n++; ( ); prim(m, n); cout << n << endl;
NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 5 12 0 随机值 5. unsigned char *p1; unsigned long *p2; p1=(unsigned char *)0x801000; p2=(unsigned long *)0x810000; 请问 p1+5= 什么? p2+5= 什么? 801005 810005 801010 810014 801005 810014 801010 810015 6. 在 32 位机器中, 如下代码 : void example(char acwelcome[]) printf("%d",sizeof(acwelcome)); return; void main()
NOWOER.OM char acwelcome[]="welcome to Huawei Test"; example(acwelcome); return; 的输出是? 0 4 23 24 7. 下 关于虚函数和函数重载的叙述不正确的是 虚函数不是类的成员函数虚函数实现了 ++ 的多态性函数重载允许 成员函数, 虚函数则不 函数重载的调 根据参数的个数 序列来确定, 虚函数依据对象确定 8. 处理 a.html 件时, 以下哪 伪代码可能导致内存越界或者抛出异常 () int totallank = 0; int blanknum = 0; int taglen = page.taglst.size(); for(int i = 1; i < taglen-1; ++i) //check blank while(page.taglst[i] == "<br>" && i < taglen) ++totallank; ++i; E if(totallank > 10) F blanknum += totallank; G totallank = 0; 注意 : 以下代码中 taglen 是 html 件中存在元素的个数,a.html 中 taglen 的值是 15,page.taglst[i] 取的是 a.html 中的元素, 例如 page.taglst[1] 的值是 <html> a.html 的 件如下 : <html> <title>test</title> <body> <div>aaaaaaa</div> </body> </html> <br> <br> <br>
NOWOER.OM <br> <br> E F G E F G 9. void Func(char str_arg[100]) printf("%d\n",sizeof(str_arg)); int main(void) char str[]="hello"; printf("%d\n",sizeof(str)); printf("%d\n",strlen(str)); char*p=str; printf("%d\n",sizeof(p)); Func(str); 32 位系统下下 程序的输出结果为多少? 5 5 4 4 6 5 4 4 6 5 6 4 5 5 5 100 10. 下 程序运 后的结果为 : char str[] = "glad to test something"; char *p = str; p++; int *p1 = reinterpret_cast<int *>(p); p1++; p = reinterpret_cast<char *>(p1); printf("result is %s\n", p); result is glad to test something
NOWOER.OM result is ad to test something result is test something result is to test something 11. 设已经有,,,4 个类的定义, 程序中,,, 析构函数调 顺序为? c; void main() *pa=new (); b; static d; delete pa; 12. 若 char 是 字节,int 是 4 字节, 指针类型是 4 字节, 代码如下 : class Test public: Test():m_chata( \0 ),m_nata(0) virtual void mem_fun() private: char m_chata; int m_nata; static char s_chata; ; char Test::s_chata= \0 ; 问 : (1) 若按 4 字节对 sizeof(test) 的值是多少? (2) 若按 1 字节对 sizeof(test) 的值是多少? 请选择正确的答案 16 4 16 10 12 9 10 10
NOWOER.OM 13. 在 Java 中, 以下关于 法重载和 法重写描述正确的是? 法重载和 法的重写实现的功能相同 法重载出现在 关系中, 法重写是在同 类中 法重载的返回值类型必须 致, 参数项必须不同 法重写的返回值类型必须相同或相容 ( 或是其 类 ) 14. 下列给定程序中, 函数 fun 的功能是 : 求 ss 所指字符串数组中 度最短的字符串所在的 下标, 作为函数值返回, 并把其串 放在形参 n 所指的变量中 ss 所指字符串数数组中共有 M 个字符串, 且串 于 N 请在程序的下画线处填 正确的内容并将下画线删除, 使程序得出正确的结果 试题程序 #define M 5 #define N 20 int fun(char(* ss)[n], int *n) int i, k = 0, len = N; for (i = 0; i < ; i++) len = strlen(ss[i]); if (i == 0) *n = len; if (len * n) *n = len; k = i; return ( ); main( ) char ss[m][n] = "shanghai", "guangzhou", "beijing", "tianjing", "chongqing"; int n, k, i; printf("\nthe originalb stringsare:\n"); for (i = 0; i < M; i++) puts(ss[i]); k = fun(ss, &n); printf("\nthe length of shortest string is: % d\n", n); printf("\nthe shortest string is: % s\n", ss[k]); N < k N > k M < k M > k
NOWOER.OM 15. 写出下 程序的输出结果 class public: void Func() printf( "Func called\n" ); virtual void Func() printf( "Func called\n" ); ; class : public public: void Func() ::Func(); printf( "Func called\n" ); virtual void Func() printf( "Func called\n" ); ; void main( void ) b; *pa; pa = &b; *pa2 = new ; pa->func(); ( 3) pa->func(); ( 4) pa2->func(); ( 5) pa2->func(); delete pa2; Func called Func called Func called Func called Func called Func called Func called Func called Func called Func called Func called Func called Func called Func called Func called Func called 16. In the main() function, after ModifyString(text) is called, what s the value of text?
NOWOER.OM int FindSubString( char* pch ) int count = 0; char * p1 = pch; while ( *p1!= '\0' ) if ( *p1 == p1[1] - 1 ) p1++; count++; else break; int count2 = count; while ( *p1!= '\0' ) if ( *p1 == p1[1] + 1 ) p1++; count2--; else break; if ( count2 == 0 ) return(count); return(0); void ModifyString( char* ptext ) char * p1 = ptext; char * p2 = p1; while ( *p1!= '\0' ) int count = FindSubString( p1 ); if ( count > 0 ) *p2++ = *p1; sprintf( p2, "%i", count ); while ( *p2!= '\0' ) p2++; p1 += count + count + 1; else *p2++ = *p1++; void main( void )
NOWOER.OM char text[32] = "XY"; ModifyString( text ); printf( text ); XY XYI XYI XYI 17. 下 程序的功能是输出数组的全排列 请填空 void perm(int list[], int k, int m) if ( ) copy(list,list+m,ostream_iterator<int>(cout," ")); cout<<endl; return; for (int i=k; i<=m; i++) swap(&list[k],&list[i]); ( ); swap(&list[k],&list[i]); k!=m 和 perm(list,k+1,m) k==m 和 perm(list,k+1,m) k!=m 和 perm(list,k,m) k==m 和 perm(list,k,m) 18. 写出下列程序的运 结果 #include "stdio.h" int sum(int a) auto int c = 0; static int b = 3; c += 1; b += 2; return (a + b + c); int main()
NOWOER.OM int i; int a = 2; for (i = 0; i < 5; i++) printf("%d,", sum(a)); 6,8,10,12,14, 8,10,12,14,16, 10,12,14,16,18 12,14,16,18,20 19. #include<iostream> using namespace std; class Mylass public: Mylass(int i = 0) cout << i; Mylass(const Mylass &x) cout << 2; Mylass &operator=(const Mylass &x) cout << 3; return *this; ~Mylass() cout << 4; ; int main() Mylass obj1(1), obj2(2); Mylass obj3 = obj1; return 0; 运 时的输出结果是 ()
NOWOER.OM 11214444 11314444 122444 123444 20. 如下代码输出结果是什么? #include<stdio.h> char *mystring() char buffer[6] = 0; char *s = "Hello World!"; for (int i = 0; i < sizeof(buffer) - 1; i++) buffer[i] = *(s + i); return buffer; int main(int argc, char **argv) printf("%s\n", mystring()); return 0; Hello Hello World! Well 以上全部不正确 技术 QQ 群 :379386529 微博 :http://www.weibo.com/nowcoder 微信 登录 客, 参与以上题 讨论, 查看更多笔试 试题