C語言筆試複習題

才智咖 人氣:1.14W

標籤: 分類: 計算機等級考試

C語言筆試複習題

雜談

一、判斷對錯

1. 3_a_b是合法的識別符號。

2.設有定義float a; 則變數a在記憶體中佔2個位元組。

3.C語言在執行過程中,不檢查陣列下標是否越界。

4.區域性靜態變數在編譯時賦初值。

5.若有以下定義:#define C R 37.6921;則C R是稱為巨集名的識別符號。

6.若有定義int *fun(int x ,int y){??..}則fun函式是用指標做引數的函式。

7.若有定義int a[2][3]={{1,3},{2,4}};則a[1][2]的值為4。

語句巢狀時,每個else總是與它上面最近的並且沒有與其它else匹配的`if配對。

9.迴圈語句for(k=0;k=10;k++);最多執行10次。

10.函式定義時,出現在函式首部括號中的引數稱為實參。

二、指出下列錯誤:

1. 有如下程式來求 1+1/2+1/3+1/4+1/5的和。

main()

{int i,n;

float t,s;

n=5;s=0;

for(i=1;i<=n;i++){t=1/I;s=s+t;}

printf(“%fn”,s);

}

2. 以下程式呼叫exc函式對兩個整數進行交換。

void exp(int *a, int *b){int *t; t=*a; *a=*b; *b=t;}

main()

{ int x, y , *px, *py;

px=&x; py=&y; scanf(“%d%d”,px,py);

exc(px,py);

printf(“%d,%dn”,x,y);

3. 欲對陣列a的各個元素賦值:

main()

{int a[5], i;

for(i=0;i<5;i++)< p="">

scanf(“%d”,*(a+i));??.}

4. 欲使指標s指向字串“abcd”的首字元:

main()

{ char *s;

*s=”abcd”; ??}

5. 有如下程式,欲實現將陣列元素a[1][1]的值放在變數i中: int a[2][3]={{1,2,3},{4,5,6}};

int I;

i=*(*a+1);

四、閱讀和分析程式並回答問題

1、main() 問題:左側hcf函式的功能是求兩個正整數的最大公約數, {int a, b, c; 並返回相應的值。請填空。

scanf(“%d%d”,&a,&b);

c=hcf(a,b);

printf(“%dn”,c);}

hct(int m, int n)

{int r;

r=m%n; while( A )

{m=n;n=r;r=m%n;} B ;}

2、#include “stdio.h” 問題:A寫出畫線處語句的功能。 main() B若輸入abc12dec34程式的執行結果是什麼?

{char s[80];

int i, j; gets(s);

for(i=j=0;s[i]!=’