几个基础小程序(2)(零碎面试重点)

来源:互联网 发布:电脑电视直播软件排名 编辑:程序博客网 时间:2024/06/04 18:55

1.

#include<stdio.h>

int main()

{

int i=1;

printf("%d,%d\n",sizeof(++i),i);

printf("%d",i);

return 0;

}

运行结果:4,1

                  1

要点:运算符sizeof()只做计算,不做运算,即只计算字节,int为4个字节,故输出4,又sizeof括号中的++i没做运算,故i为1。


2.

#include<stdio.h>

#include<string.h>

int main()

{

char str[12]={'s','t','r','i','n','g'};

printf("%d\n",strlen(str));

printf("%d\n",sizeof(str));

return 0;

}

运行结果:6

                 12

要点:strlen为string中的函数,为字长计算,string共6个 字符,遇见\0就停止,而sizeof则表示此数组长度,已经固定为12。


3.

#include<stdio.h>
#define SQR(x) x*x
int main()
{
        int a;
        int k=3;
        a=++SQR(k+1);
        printf("%d\n",a);
}

运行结果:9

要点:a=(++k)+1*(++k)+1=(3+1)+1*(3+1)+1=4+4+1=9,注意宏定义的用法,且自增运算符只用在变量上。


4.

#include<stdio.h>
int main()
{
        int i,k;
        for(i=1;k=-1,k=1;k++)
        {
                printf("......\n");
        }
}
运行结果:......

                  ......(无限循环)

要点:for循环语句中的判断条件:k=-1,k=1为真即条件始终成立,故不断循环,若将判断条件改为k=0,则结果为无输出。


5.
#include<stdio.h>
int main()
{
        int i;
        for(i=1;i+1;i++)
        {
                if(i>4)
                {
                        printf("%d",i++);
                        break;
                }
        }
        printf("%d",i++);
        return 0;
}
运行结果:56
要点:进入for循环时,首先初始化条件i=1,接着判断条件i+1是否满足,满足进入循环体,循环结束后i++,再次判断条件i+1是否满足后再次进入循环体。当i>4,即i=5时进入if循环语句,输出5后break,跳出本层循环,输出i++,即i=6,故运行结果为56。


原创粉丝点击