• 一些面试题目


    1.执行下述程序的输出结果是:

    #include 
    char b[]="ABCDEF"; 
    main() 
    { 
    char *bp; 
    for (bp=b;*bp;bp+=2) 
    printf("%s",bp); 
    printf("
    "); 
    } 

    结果是:ABCDEFCDEFEF。

    这道题考基础。b[]是个数组,bp是个指针。for循环的意义是:bp初始为数组首地址,每次循环地址增加2。什么时候循环挺呢?

    *bp为真时,即*bp的值不为0时。所以第一次循环输出ABCDEF,第二次输出CDEF,第三次EF,此时*bp=‘’。循环结束。

    2.若定义了char ch[]={″abcdef″},*p=ch;则执行printf(″%c″,*p+4);语句的输出结果是 
    A.def 
    B.d 
    C.e 
    D.0 
    参考答案:C

    首先,分清楚*p+4和*(p+4)。这是不一样的,运算符优先级,()在*之前。即*p+4是*P的值基础上+4,*(p+4)是p地址+4再取地址指向的值。

    所以输出其实是a+4即e。其实这道题比较巧数组是abc……,其实跟里面的并么有关系。再提一下:如果%s就要p,如果%c就要*p。

    3.不使用新变量,交换两个数据:

    我写两种方法:

    (1)

    int main()
    {
        int i = 5, j = 2;
    
        i = j - i;
        j = j - i;
        i = j + i;
        
        return 0;
    }

    (2)

    void fun(int* i, int* j)
    {
        *i = *j - *i;
        *j = *j - *i;
        *i = *j + *i;
    }
    int main()
    {
        int i = 5, j = 2;
        fun(&i, &j);
    
        printf("i=%d,j=%d", i, j);
        
        
        return 0;
    }
  • 相关阅读:
    php 数组分页
    Fchart
    thinkphp对数据库操作有哪些内置函数
    MySQL性能优化的最佳20+条经验
    apache 简单笔记
    PHPMyadmin 配置文件详解(配置)
    mysql 常用知识
    分布式微服务日志的配置
    分布式微服务的配置
    分布式接口的调用
  • 原文地址:https://www.cnblogs.com/wyc199288/p/5185865.html
Copyright © 2020-2023  润新知