zoukankan      html  css  js  c++  java
  • C语言面试题

     1.下面的代码能通过编译吗?如果能,有什么潜在的问题?

    #include <stdio.h>
    void
    main(){ char* ptr = (char*)malloc(10); if(NULL == ptr){ printf(" malloc failed "); return; }else{ //do something free(ptr); } return; }

    ①缺少头文件 stdlib.h

    ②在某些编译器下,main函数不能返回void类型,最好改成int,return 0;

    ③main函数的标准写法

    int main(void){
      return 0;
    }
    int main(int argc, char* args[]){
      return 0;
    };

     2.下面代码会输出什么?

    #incluede<stdio.h>
    int main(){
      int a = 10, b = 20, c = 30;
      printf("
    %d..%d..%d
    ",a+b+c,(b = b * 2),(c = c *2));
      return 0;
    }

     答案:110..40..60

    注意:C语言中,printf函数从左向右输出,但在计算时是从右向左计算

    补充:浮点数的格式化输出:%8.2f :8表示输出宽度;.2表示保留小数点后两位

    3.下面操作会输出什么?为什么?

    #include <stdio.h>
    int main(void){
        char* ptr = "Linux";
        printf("
     [%c] 
    " , *ptr++);
        printf("
     [%c] 
    " , *ptr);
        return 0;
    }

    答案:L i 

    考点:运算符优先级问题。伪运算符优先级最高,单目运算符第二;算术运算符>比较运算符>位运算符>逻辑运算符;赋值运算符优先级倒数第二,逗号运算符优先级最低;自右向左结合的只有单目/三目/赋值运算符

    4.写出下面程序的输出

    #include <stdio.h>
    int main(){
        int a = 5,b=6,c=7,d=8,m=2,n=2;
        (m=a<b)||(n=c>d);
        printf("%d	%d",m,n);
    }    

    答案:1  2

    考点:逻辑短路问题

  • 相关阅读:
    NSURL 的简单实用
    动画demo
    UIScrollView的简单页面
    关于UITableview(更新)
    添加手势
    多线程
    IOS 瀑布流
    高低字节序转换(htonl、ntohl、htons、ntohs函数)
    Xcode个版本
    网址
  • 原文地址:https://www.cnblogs.com/shengtudai/p/12885448.html
Copyright © 2011-2022 走看看