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

1.

#include<stdio.h>

int main()

{

int i=1;

printf("%d,%d ",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 ",strlen(str));

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

return 0;

}

运行结果:6

12

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

3.

#include<stdio.h> #define SQR(x) x*x int main() { int a; int k=3; a=++SQR(k+1); printf("%d ",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("...... "); } } 运行结果:......

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

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

5. 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;
}
#include int main() { int i; for(i=1;i+1;i++) { if(i>4) { printf("%d",i++); break; } } printf("%d",i++); return 0; }
运行结果:56 运行结果:56
要点:进入for循环时,首先初始化条件i=1,接着判断条件i+1是否满足,满足进入循环体,循环结束后i++,再次判断条件i+1是否满足后再次进入循环体。当i>4,即i=5时进入if循环语句,输出5后break,跳出本层循环,输出i++,即i=6,故运行结果为56。
要点:进入for循环时,首先初始化条件i=1,接着判断条件i+1是否满足,满足进入循环体,循环结束后i++,再次判断条件i+1是否满足后再次进入循环体。当i>4,即i=5时进入if循环语句,输出5后break,跳出本层循环,输出i++,即i=6,故运行结果为56。
经验分享 程序员 微信小程序 职场和发展