08 程序题

01 

#include <stdio.h>

int main()
{
    char *s1[] = {"right?"};
    
    // 系统会根据数据总个数和第2维的长度算出第1维的长度
    char s2[][20] = {"right"};
    
    // 存放着 6 个指针变量的一位数组
    char *s3[6];
    s3[1]="right";
    
    char s4[6][20];
    // 报错,s4[1] 是一个地址
    s4[1]="right";
    
    return 0;
}

02

#include <stdio.h>

int main()
{
    int x;
    float y;
    
    scanf("%2d%f",&x,&y);
    printf("x=%d,y=%f\n",x,y);
}

执行结果

03

#include <stdio.h>

int ADD(int x, int y)
{
    return x+y;
}

int main()
{
    int k,x=5,y=10;
    // 定义指向函数的指针变量 f,f先与*结合,表示指针变量,再与()结合,()表示是函数,即该指针变量指向函数
    int (*f)();
    f=ADD;
    
    k=(*f)(x,y);
    k=ADD(x,y);
    // 报错,指针型函数int *func(int x,float y),返回值是地址
    k=*f(x,y);
    k=f(x,y);
}

04 计算 n!

#include <stdio.h>

int main()
{
    int n=3,i,sum=1;
    
    for(i=n;i>=2;i--){
        sum*=i;
    }
    printf("%d\n",sum);
}

05 

#include <stdio.h>

int main()
{
    // s1 无字符串结束符,长度不能确定;s2长度为数组元素的个数
    char s1[]={'x','y','z'}, s2[10]={'x','y','z'};
    // strlen(s)返回s字符串中字符的个数,若s是一个数组,则返回数组元素的个数
    printf("%d %d\n",strlen(s1),strlen(s2));
}

执行结果:

06 

#include <stdio.h>

int main()
{
    float a=123.4567;
    // (12345.67+0.5)/100=123.46
    printf("%f\n",(int)(a*100+0.5)/100.0);
}

执行结果:

07 

#include <stdio.h>

int main()
{
    float a=123.4567;
    // (12345.67+0.5)/100=123.46
    printf("%f\n",(int)(a*100+0.5)/100.0);
}

执行结果:

08

#include <stdio.h>

int main()
{
    int a=3;
    do{
        // %3d:输出最小域宽为3个字符的整数
        printf("%3d\n",a-=2);
    }while(!(--a));

    return 0;
}

执行结果:

09

#include <stdio.h>

struct num{
    int x;
    int y;
}n={1,3};

int main()
{
    struct num *p=&n;
    // 3/1=3 3*4=12
    int result = p->y/n.x*++p->y;
    printf("%\n",result);
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章