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;
}

 

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