Money 發問時間: 電腦與網際網路程式設計 · 1 0 年前

這些C程式哪裡有錯了???

3.計算下列程式中變數classA所佔的位元組數。

typedef unsigned short int uint;

typedef struct student {

char name[10];

char no[8];

uint age;

float height,weight;

char tel[20];

int score[8];

} STUDENT;

struct class {

char class_name[20];

char teacher[20];

STUDENT students[60];

} classA;

4.(a)下列程式片段有誤,請寫成完整程式並除錯之。 (b)當kk=10時,ans=?

int ans,kk;

an=-3;

for(kk=20;kk>0;kk-=2){

ans+=2

if(ans>10) contine;

printf(“\\n\\kk=%d, ans=%d”,kk,ans);

if(kk<8) ans--;

}

5.(a)宣告3個長整數k1,k2,k3,一個8個字元的字串s,及兩個初值為-5.2,12.8的浮點數f1,f2 (b) 這些宣告的總位元組(bytes)數為何?

6.寫出下列程式片段for迴圈執行過程中, ans及kk之所有變化.

int ans,kk;

ans=-3;

for(kk=20;kk>0;kk-=2){

ans+=2;

if(ans>5) continue;

if(kk<8) ans--;

}

7.找出下列程式的錯誤

main[]

{ intx,y,z;

char name[8],*cp;

scanf(\"%d %d %s\",x,y,&name);

z=x+y

cp=name+4;

printf(\"\\nname=%s, x=%4X, y=%d, *cp=%02d\",&name,&x,&y,*cp);

}

8.下列函數找出陣列fa(有fsize個元素)中之最大值。找出程式的錯誤

int findmax( float *fa, int fsize)

{ float fmax,*fp;

Int i;

fmax=fa[0]; fp=&fa;

for(i=1;i<fsize;i++){

if( fmax < fp) fmax = fp;

fp++

}

return fmax;

}

1 個解答

評分
  • Almond
    Lv 6
    1 0 年前
    最佳解答

    第四題:

    (a)完整程式並已除錯。

    #include<stdio.h>

    main()

    {

    int ans,kk;

    ans=-3;

    for(kk=20;kk>0;kk-=2)

    {

    ans+=2;

    if(ans>10) continue;

    printf("\nkk=%d, ans=%d",kk,ans);

    if(kk<8) ans--;

    }

    }

    (b)當kk=10時,ans=9;

    第六題:

    初始值:ans=-3

    開始執行for迴圈後:

    ----------->kk=20,ans=-1

    ----------->kk=18,ans=1

    ----------->kk=16,ans=3

    ----------->kk=14,ans=5

    ----------->kk=12,ans=7

    ----------->kk=10,ans=9

    ----------->kk=8,ans=11

    ----------->kk=6,ans=13

    ----------->kk=4,ans=15

    ----------->kk=2,ans=17

    ----------->kk=0

    參考資料: 自己
還有問題?馬上發問,尋求解答。