欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c语言高级面试题.doc

    • 资源ID:860522       资源大小:66KB        全文页数:21页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言高级面试题.doc

    整个测试遵循以下的约定: 假定在所有的程序中必须的头文件都已经被正确包含。考虑如下的数据类型: char 为 1 个字节 int 为 4 个字节 long int 为 4 个字节 float 为 4 个字节 double 为个 8 字节 long double 为 8 个字节 指针为 4 个字节1. Consider the following program:#includestatic jmp_buf buf;main()volatile int b;b =3;if(setjmp(buf)!=0) printf(“%d “, b); exit(0);b=5;longjmp(buf , 1);The output for this program is: (a) 3 (b) 5 (c) 0 (d) None of the above2. Consider the following program:main()struct node int a;int b;int c; ;struct node s= 3, 5,6 ;struct node *pt = printf(“%d“ , *(int*)pt);The output for this program is: (a) 3 (b) 5 (c) 6 (d) 73. Consider the following code segment:int foo ( int x , int n)int val;val =1;if (n>0) if (n%2 = 1) val = val *x;val = val * foo(x*x , n/2);return val;What function of x and n is compute by this code segment? (a) xn (b) x*n (c) nx (d) None of the above4. Consider the following program:main()int a5 = ;int *ptr = (int*)(printf(“%d %d“ , *(a+1), *(ptr-1) );The output for this program is: (a) 2 2 (b) 2 1 (c) 2 5 (d) None of the above 5. Consider the following program:void foo(int 3 ); main()int a 33= 1,2,3 , 4,5,6,;foo(a);printf(“%d“ , a21);void foo( int b3)+ b;b11 =9;The output for this program is: (a) 8 (b) 9 (c) 7 (d) None of the above6. Consider the following program:main()int a, b,c, d;a=3;b=5;c=a,b;d=(a,b);printf(“c=%d“ ,c);printf(“d=%d“ ,d);The output for this program is: (a) c=3 d=3 (b) c=5 d=3 (c) c=3 d=5 (d) c=5 d=57. Consider the following program:main()int a3 = 1,2,3 ,4,5,6;int (*ptr)3 =a;printf(“%d %d “ ,(*ptr)1, (*ptr)2 );+ptr;printf(“%d %d“ ,(*ptr)1, (*ptr)2 );The output for this program is: (a) 2 3 5 6 (b) 2 3 4 5 (c) 4 5 0 0 (d) None of the above8. Consider following functionint *f1(void)int x =10;return(int *f2(void)int*ptr;*ptr =10;return ptr;int *f3(void)int *ptr;ptr=(int*) malloc(sizeof(int);return ptr;Which of the above three functions are likely to cause problem with pointers (a) Only f3 (b) Only f1 and f3 (c) Only f1 and f2 (d) f1 , f2 ,f39. Consider the following program:main()int i=3;int j;j = sizeof(+i+ +i);printf(“i=%d j=%d“, i ,j);The output for this program is:(a) i=4 j=2 (b) i=3 j=2 (c) i=3 j=4 (d) i=3 j=610. Consider the following program:void f1(int *, int); void f2(int *, int); void(*p2) ( int *, int);main()int a;int b;p0 = f1;p1 = f2;a=3;b=5;p0(printf(“%dt %dt“ , a ,b);p1(printf(“%dt %dt“ , a ,b);void f1( int* p , int q)int tmp;tmp =*p;*p = q;q= tmp;void f2( int* p , int q)int tmp;tmp =*p;*p = q;q= tmp; The output for this program is: (a) 5 5 5 5(b) 3 5 3 5 (c) 5 3 5 3 (d) 3 3 3 311. Consider the following program:void e(int ); main()int a;a=3;e(a);void e(int n)if(n>0)e(-n);printf(“%d“ , n);e(-n);The output for this program is: (a) 0 1 2 0(b) 0 1 2 1 (c) 1 2 0 1 (d) 0 2 1 112. Consider following declarationtypedef int (*test) ( float * , float*)test tmp;type of tmp is (a) Pointer to function of having two arguments that is pointer to float (b) int (c) Pointer to function having two argument that is pointer to float and return int (d) None of the above 13. Consider the following program:main()char *p;char buf10 = 1,2,3,4,5,6,9,8;p = (buf+1)5;printf(“%d“ , p);The output for this program is: (a) 5 (b) 6 (c) 9 (d) None of the above14. Consider the following program:Void f(char*);main()char * argv = “ab“ ,“cd“ , “ef“ ,“gh“, “ij“ ,“kl“ ;f( argv );void f( char *p )char* t;t= (p+= sizeof(int)-1;printf( “%s“ , t);The output for this program is: (a) ab (b) cd (c) ef (d) gh15. Consider the following program:#includeint ripple ( int , .);main()int num;num = ripple ( 3, 5,7);printf( “ %d“ , num);int ripple (int n, .)int i , j;int k; va_list p;k= 0;j = 1;va_start( p , n); for (; j0)if (n%2 = 1) product = product*val;n = n/2; val = val* val;/* Code raise a number (x) to a large power (n) using binary doubling strategy */ Algorithm description (while n>0) if next most significant binary digit of n( power) is onethen multiply accumulated product by current val , reduce n(power) sequence by a factor of two using integer division .get next val by multiply current value of itself Answer 4.The answer is (c)type of a is array of int type of / *yields c=a* /d=(a,b); /* d =b */Answer 7.The answer is (a)/* ptr is pointer to array of 3 int */ Answer 8.The answer is (c)f1 and f2 return address of local variable ,when function exit local variable disappeared Answer 9.The answer is (c)sizeof operator gives the number of bytes required to store an object of the type of its operand . The operands is either an expression, which is not evaluated ( (+i + + i ) is not evaluated so i remain 3 and j is sizeof int that is 2) or a parenthesized type name. Answer 10.The answer is (a)void(*p2) ( int *, int); define array of pointer to function accept two argument that is pointer to int and return int. p0 = f1; p1 = f2 contain address of function .function name without parenthesis represent address of function Value and address of variable is passed to function only argument that is effected is a (address is passed). Because of call by value f1, f2 can not effect b Answer 11.The answer is (a)Answer 12.The answer is (c)C provide a facility called typedef for creating new data type names, for example declaration typedef char stringMakes the name string a synonym for int .The type string can be used in declaration, cast, etc, exactly the same way that the type int can be. Notice that the type being declared in a typedef appears in the position of a variable name not after the word typedef. Answer 13.The answer is (c)If the type of an expression is “array of T“ for some type T, then the value of the expression is a pointer to the first object in the array, and the type of the expression is altered to “pointer to T“ So (buf+1)5 is equvalent to *(buf +6) or buf6 Answer 14.The answer is (d)p+=sizeof(int) point to argv2 (p+=sizeof(int)-1 points to argv1 Answer 15.The answer is (c)When we call ripple value of the first argument passed to ripple is collected in the n that is 3. va_start initialize p to point to first unnamed argument that is 5 (first argument).Each call of va_arg return an argument and step p to the next argument. va_arg uses a type name to determine what type to return and how big a step to take Consider inner loop(; i; i third call counter(2) count = 1+2; /* count = count +i */ fourth call counter(3) count = 3+3; fifth call counter(4) count = 6+4; sixth call counter(5) count = 10+5;

    注意事项

    本文(c语言高级面试题.doc)为本站会员(帮****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开