古詩詞大全網 - 成語故事 - 2011年計算機二級考試-C語言試題

2011年計算機二級考試-C語言試題

壹、選擇題

1.壹個C語言程序是由( )構成。

A.語句

B.行號

C.數據

D.函數

2.下面標識符中正確的是( )。

A.a#bc

B.123ABC

C.sime

D.Y·M·D

3.在C語言中,存儲壹個整型、字符型、雙精度實型變量所需的字節數是( )。 )。 )。 )。

A.2、1、8

B.4、1、4

C.4、1、4

D.2、2、8

4.為了避免嵌套的條件分支語句 if--else中的else總是與( ) 組成成對關系。

A. 縮排位置相同的

B. 在其之前未配對的

C. 在其之前未配對的最近的if

D. 在同壹行上的if

5.下列表達式的結果正確的是( )。

int a,b,c,d;

a=b=c=d=2;

d=a+1==3?b=a+2:a+3

A.2 B.4 C.3 D.5

二、填空題

1.在C語言中,正確的標識符是由______________________組成的,且由_______________開頭的。

2. 設x=3,那麽表達式y=(++x)+(++x)的結果為_________,表達式執行後,變量x的結果為_________。

3. 壹個變量的指針是指_________________________________________________________________。

4. 組成數組元素的特點是_______________________________________________;

組成結構體元素的特點是________________________________________________。

5. 在C語言程序中,對文件進行操作首先要______________________________;然後對文件進行操作,最後要對文件實行__________________________________操作,防止文件中信息的丟失。

6. 對字符串進行操作的函數有_______________________________________________________等。

7. C語言程序是由___________________構成的,而C語言的函數是由____________________構成的。

8. 要想定義整型變量a , 實型變量 b , 字符型的變量c,應該使用的正確語句為______________________________________________________________________________________。

9. 寫出下面表達式的值

3*5/7+7%3_______________________ x=2 ; y=4; (x++)+y _________________________

3+4>=7-10_______________________ 3>4 ? 3%2: 1 ______________________________

x=2,y=2;++x&&++y_________________ x=3 ; x+=x-=2 ______________________________

三、判斷題

1. C語言的壹個特點是可以對計算機硬件進行操作 ( )

2. 在循環過程中,使用break語句和continue語句的作用是壹樣的 ( )

3. 在函數的定義和調用過程中,形式參數和實在參數數目可以不壹致 ( )

4. 指針變量可以接收任何類型的值 ( )

5. 在C語言程序設計中,字符數組和字符串不是完全壹樣的概念 ( )

6. 文件指針是結構體類型,用符號file來表示 ( )

7. 選擇結構(if語句)和循環結構都可以使用嵌套形式 ( )

8. 在定義二維數組時,可以將該數組的兩個維數全部省略 ( )

9. 邏輯運算符 && || ! 的運算順序是 ! 優先於 && 優先於 || ( )

10. 任何數組都可以實現整體使用操作 ( )

四、程序填空題

1.下面是實現打印九九乘法表的程序,請在畫線的位置填上適當的語句,使程序(段)完整。

main()

{ int i , j , k;

for(i=1;_____________; i++)

{ for(j=1;______________; j++)

printf(“%d*%d=%d”,_______________);

printf(________________);

}

}

2.自己設計壹個自定義函數,實現求兩個數的最大數的功能,自定義函數如下:

int max(x,y)

int x , y ;

{

}

3.設有如下面的結構體,請用C語言的語句定義出正確的結構體形式:

學生信息:包括(姓名,性別,年齡,分數),並且定義變量stud和數組stud1[30]

struct student

{

}

4. 根據給出的程序段,請寫出正確的結果

x=1 ; sum=1 ;

for (x=1 ; x<=5 ; x++)

sum=sum*x;

上面的程序段實現的功能是:______________________________________________________ ;

其運行結果為______________________________________________________________________。

5.設有如下的語句。

int a=43,b,c;

b=23;

c=a++ * --b;

(1)上面的語句段執行後a= b= c= ;

(2)簡述a++和++a的相同點和不同點:

6.設有如下的程序:

main( )

{ int i=3,*p1;

int a[3]={15,30,45},*p2;

p1=&i; p2=a;

p1=p2+2;

printf(“%d,%d\n”,*p1,*p2);

}

程序運行結果是:_______。

五、編程題 (25分)

1.編程實現對10個整數進行冒泡排序(要求排成升序)。

2.編程實現求下面的式子的結果

3.編程實現將文本文件file1.dat中的內容復制到文本文件file2.dat中去

六、附加題

用C語言程序實現在已知鏈表中的第三個位置插入數值為a的程序

參考答案

壹、選擇題

1.D 2. C 3. A 4. C 5. B

二、填空題

1.字母、數字、下劃線;以字母、下劃線開頭。

2.10;5。

3. 該變量的地址。

4.壹組數據類型相同的元素構成的;壹組數據類型不同的元素構成的。

5. 打開;關閉。

6.字符串長度、取子字符串、字符串替換、字符串復制等。

7. 函數;語句。

8. int a ; float b ; char c ;

9 9 9.3 6 1 1 1 2

三、判斷題

1. 對 2. 錯 3. 錯 4. 錯 5. 對

6. 錯 7. 對 8. 錯 9.對 10. 錯

四、程序填空題

1. i<=9 j<=9

printf(“%d*%d=%d”,i,j,i*j);

printf(“\n”); i , j , k;

2. int z;

if (x>=y) z=x;

else z=y;

return z;

3. char name[20];

char sex;

int age;

float score;

4. 實現功能:計算連續數之積, 即sum=1*2*3*4*5 ;

運行結果:sum=120

5. 44 22 946

a++:先加1,後使用表達式的值;++a表示先加1,後使用表達式的值,它們最後的結果使a加1。

6.45,15

五、編程題

1.編程實現對12個整數進行冒泡排序(要求排成升序)。

Main()

{ int a[12]; int m,n,p;

for (m=0;m<=11;m++)(m=0;m<=11;m++)

scanf(“%d”,&a[m]);

for (m=0;m<=11;m++)

for(n=0;n<11-m;n++)

if(a[n]>a[n+1])

{ p=a[n]; a[n]=a[n+1]; a[n+1]=p; }

for (m=0;m<=11;m++)

printf(“%d”,a[m]); }

2.編程實現求下面的式子的結果

# include “math.h”

main()

{ float x,y;

scanf(“%f”&x);

if (x>6) y=(x-3)/(2*x-12);

else y=-2*x*x+4*x-10;

printf(“y=%f”,y); }

3.編程實現將文本文件file1.dat中的內容復制到文本文件file2.dat中去

main()

{ char ch;

FILE *fp1,*fp2;

Fp1=fopen(“file1.dat”, “r”);

Fp2=fopen(“file2.dat”, “w”);

Ch=fgetc(fp1);

While(ch!=EOF)

{ fputc(ch,fp2);

Ch=fgetc(fp1); }

Fclose(fp1);

Fclose(fp2); }

六、附加題

p=H;K=0;

While(p!=NULL && k

{ p=p->next;

k++; }

if(p==NULL && H!=NULL) printf(“this is invilid”);

else

{ q=(Struct Linklist *)malloc(sizeof(Struct Linklist));

q->data=x; q->data=x;

q->next=p->next;

p->next=q; }