全國計算機等級考試c語言試卷,全國計算機等級考試c++語言程序設計真題

本文目錄一覽:

計算機二級考試C語言模擬試題二

1. 運算符________的優先順序最高。

A.[ ]

B. +=

C. ?:

D.++

2.main( )

{ int n; ( n=6*4,n+6),n*2; printf(「n=%d\n」,n); }

此程序的輸出結果是______________.

A.30

B. 24

C. 60

D. 48

3.若有如下定義,則__________是對數組元素的正確的引用。.

int a[10] , *p ; p=a ;

A. *a[10]

B. a[11]

C. *(p+11)

D. *p *p *p

4.設整型變數n的值為2,執行語句「n+=n-=n*n;」後,n的值是__________

A. 0

B. 4

C. – 4

D. 2

5.各種基本數據類型的存貯空間正確的長度排列為__________。

A.Char

C.Char

6.下面的變數說明中__________是正確的。

A.char:a, b, c;

B.char a; b; c;

C.char a, b, c;

D.char a, b, c

7.表達式y=(1312?15:67?8:9)的值為____________ 。

A 9

B 8

C 15

D. 1

8.若x=5,y=3 則y*=x+5; y的值為___________.

A. 10

B. 20

C. 15

D. 30

9.能正確表示a和b同時為正或同時為負的邏輯表達式是_________。

A.a=0||b=0)(a0 ||b0)

B.(a=0 b=0)(a0 b0)

C.(a+b0) (a+b=0)

D. a*b0

10.C語言中,合法的字元型常數是_________。

A.『A』

B.「A」

C. 65

D. A

11.已有定義 int x=3, y=4, z=5;則表達式「!(x+y)+z-1y+z/2」的值是________。

A.6

B.0

C.2

D.1

12.若變數c為char類型,能正確判斷出c為小寫字母的表達式是_______。

A.』a』=c=』z』

B. (c=』a』) || (c=』z』)

C.(『a』=c) and (『z』=c)

D. (c=』a』) (c=』z』)

13.設有定義:long x=-123456L; 則以下能夠正確輸出變數x值的語句是_______。

A.printf(「x=%d\n」,x)

B.printf(「x=%ld\n」,x)

C.printf(「x=l\n」,x)

C.printf(「x=%D\n」,x);

14.從循環體內某一層跳出,繼續執行循環外的語句是:___________。

A. break語句

B.return語句

C.continue語句

D.空語句。

15.C語言用_______表示邏輯「真」值。

A.true

B.t或y

C.非零整型值

D.整型值0

16.為了避免嵌套的條件分支語句if—else 的二義性,C語言規定:C程序中的else總是與_____組成配對關係。

A.縮排位置相同的if

B.在其之前未配對的if

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

D.同一行上的if

17.在函數中默認存儲類型說明符的變數應該是________存儲類型。

A.內部靜態

B. 外部

C.自動

D. 寄存器

18.C語言中以只讀方式打開一個文件應選擇_______________參數。

A.「r」

B.「w」

C.「rb」

D.「a」

19.設有數組定義:char array[]=」student」;則數組所佔的存貯空間為__________。

A.6個位元組

B. 7個位元組

C. 8個位元組

D. 9個位元組

20.根據C語言的語法規則,下列________個是不合法標識符。

A.do

B. Name

C. R5

D. _exam

二、判斷題

1. C 語言源程序文件通過了編譯、連接之後 , 生成一個後綴為 .EXE 的文件。 ( )

2.在 C 程序中 , 函數既可以嵌套定義 , 也可以嵌套調用。( )

3.在 C 程序中 ,APH 和 aph 代表不同的變數。( )

4.表達式 0195 是一個八進位整數。( )

5.Continue語句的作用是結束本次循環。( )

6.Extern變數的.生命期是整個程序執行期。 ( )

7.C語言中字元串的結束符是』\0』。 ( )

8.利用fclose函數關閉已打開的文件。 ( )。

9.C程序總是從main( ) 函數的第一條語句開始執行的。 ( )

10.數組名代表數組的首地址。( )

三、填空題

1.C語言的預處理語句以__________開頭。

2.表達式7+102 25 %5的結果是_______________。

3.下列程序段是從鍵盤輸入的字元中統計數字字元的個數,用換行符結束循環。

Int n=0, ch; Ch=getchar( );

While( __________________ )

{ if ( ________________ ) n++; c=getchar( ); }

4.C語言中getchar() 函數的功能是_________________________。

5.int *p 的含義是______________________________。

6.定義fp為文件型指針變數的定義方法為_______________。

7.數組 int a[3][3];共定義了____________個數組元素。

四、讀程序題。

1. 改正下列程序中不正確的語句。

main( )

{ int a;

scanf(「%d」, a); if (a = 1) printf(「One\n」) ; }

2.寫出下列程序的運行結果。

fun(int a, int b)

{ if(ab) return (a);

Else return (b); }

main()

{ int x=3,y=8,z=6,r;

r=fun(fun(x,y),2*z); printf(「%d\n」,r); }

3. 改正下列程序中不正確的語句。

main()

{ int n ;

float s=1.0;

for(n=10;n1;n- -)

s=s+1/n;

printf(「%6.1f\n」,s); }

4. 寫出下列程序的運行結果。

main()

{ int n;

For(n=3; n=10; n++)

{ if(n%6= =0) break; Printf(「%d」,n); } }

5.寫出下列程序的運行結果。

#include 「stdio.h」

Main()

{ int a[]={1,2,3,-4,5};

int m,n,*p; p=a[0]; m=*(p+1); n=*(p+4);

printf(「%d %d %d 」,*p,m,n); }

五、編程題

1. 編程計算下列表達式:s=n!(n從鍵盤上輸入)

2.輸出1—100之間不能被12整除的數。

3.從鍵盤上輸出10個整數存入一維數組中,按由大到小的順序輸出。

4.從鍵盤上輸入9個數,按3行3列的格式輸出。

5.編程將文件read.txt中的字元讀出顯示到屏幕上。

2009年上半年全國計算機等級考試二級C語言筆試試題及答案

一、選擇題(每題2分,共計70分)

1.(1)下列敘述中正確的是

A)棧是先進先出的線性表

B)隊列是”先進後出”的線性表

C)循環隊列是非線性結構

D)有序線性表即可以採用順序存儲結構,也可以採用鏈式存儲結構

2.

(2)支持子程序調用的數據結構是

A)棧

B)樹

C)隊列

D)二叉樹

3.

(3)某二叉樹有5個讀為2的結點,則該二叉樹中的葉子結點數是

A)10

B)8

C)6

D)4

4.

(4)下列排序方法中,最壞情況下比較次數最少的是

A)冒泡排序

B)簡單選擇排序

C)直接插入排序

D)堆排序

(5)軟體按功能可以分為:應用軟體、系統軟體和支撐軟體(或工具軟體)。下列

屬於應用軟體的是

A)編譯程序

B)操作系統

C)教務管理系統

D)彙編程序

6.

(6)下面敘述中錯誤的是

A)軟體測試的目的是發現錯誤並改正錯誤

B)對被調試程序進行”錯誤定位”是程序調試的必要步驟

C)程序調試也成為Debug

D)軟體測試應嚴格執行測試計劃,排除測試的隨意性

7.

(7)耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是

A)提高耦合性降低內聚性有利於提高模塊的獨立性

B)降低耦合性提高內聚性有利於提高模塊的獨立性

C)耦合性是指一個模塊內部各個元素間彼此結合的緊密程度

D)內聚性是指模塊間互相連接的緊密程度

8.

(8)資料庫應用系統中的核心問題是

A)資料庫設計

B)資料庫系統設計

C)資料庫維護

D)資料庫管理員培訓

9.

(9)有兩個關係R,S如下:

由關係R通過運算得到關係S,則所使用的運算為

A)選擇

B)投影

C)插入

D)連接

10.

(10)將E-R圖轉換為關係模式時,實體和聯繫都可以表示為

A)屬性

B)鍵

C)關係

D)域

11.(11)一下選項中合法的標識符是

A)1_1

B)1-1

C)_11

D)1_ _

12.

(12)若函數中有定義語句:int k;,則

A)系統將自動給k賦初值0

B)這是k中的值無定義

C)系統將自動給k賦初值-1

D)這時k中無任何值

13.

(13)一下選項中,能用作數據常量的是

A)o115

B)0118

C)1.5e1.5

D)115L

14.

(14)設有定義:int x=2;,一下表達式中,值不為6的是

A)x*=x+1

B)X++,2*x

C)x*=(1+x)

D)2*x,x+=2

15.

(15)程序段:int x=12; double y=3.141593;printf(“%d%8.6f”,x,y);的輸出結果是

A)123.141593

B)12 3.141593

C)12,3.141593

D)123.1415930

16.

(16)若有定義語句:double x,y,*px,*py;執行了px=x;py=y;之後,正確的輸入語句是

A)scanf(“%f%f”,x,y);

B)scanf(“%f%f” x,y);

C)scanf(“%lf%le”,px,py);

D)scanf(“%lf%lf”,x,y);

17.

(17)一下是if語句的基本形式:

if(表達式) 語句

其中”表達式”

A)必須是邏輯表達式

B)必須是關係表達式

C)必須是邏輯表達式或關係表達式

D)可以是任意合法的表達式

18.

(18)有以下程序

#include stdio.h

main()

{ int x;

scanf(“%d”,x);

if(x=3) ; else

if(x!=10) printf(“%d\n”,x);

}

程序運行時,輸入的值在哪個範圍才會有輸出結果

A)不等於10的整數

B)大於3且不等於10的整數

C)大於3或等於10的整數

D)小於3的整數

19.

(19)有以下程序

#include stdio.h

main()

{ int a=1,b=2,c=3,d=0;

if (a==1 b++==2)

if (b!=2||c–!=3)

printf(“%d,%d,%d\n”,a,b,c);

else printf(“%d,%d,%d\n”,a,b,c);

else printf(“%d,%d,%d\n”,a,b,c);

}

程序運行後輸出結果是

A)1,2,3

B)1,3,2

C)1,3,3

D)3,2,1

20.

(20)一下程序段中的變數已正確定義

for(i=0;i4;i++,j++)

for(k=1;k3;k++); printf(“*”);

程序段的輸出結果是

A)********

B)****

C)**

D)*

21.(21)有以下程序

#include stdio.h

main()

{ char *s={“ABC”};

do

{ printf(“%d”,*s%10);s++;

}

while (*s);

}

注意:字母A的ASCII碼值為65。程序運行後的輸出結果是

A)5670

B)656667

C)567

D)ABC

22.

(22)設變數已正確定義,以下不能統計出一行中輸入字元個數(不包含回車符)的程序段是

A)n=0;while((ch=getchar())!=~\n~)n++;

B)n=0;while(getchar()!=~\n~)n++;

C)for(n=0;getchar()!=~\n~;n++);

D)n=0;for(ch=getchar();ch!=~\n~;n++);

23.

(23)有以下程序

#include stdio.h

main()

{ int a1,a2; char c1,c2;

scanf(“%d%c%d%c”,a1,c1,a2,c2);

printf(“%d,%c,%d,%c”,a1,c1,a2,c2);

}

若通過鍵盤輸入,使得a1的值為12,a2的值為34,c1的值為字元a,c2的值為字元b,

程序輸出結果是:12,a,34,b 則正確的輸入格式是(以下_代表空格,CR代表回車)

A)12a34bCR

B)12_a_34_bCR

C)12,a,34,bCR

D)12_a34_bCR

24.

(24)有以下程序

#include stdio.h

int f(int x,int y)

{ return ((y-x)*x);}

main()

{ int a=3,b=4,c=5,d;

d=f(f(a,b),f(a,c));

printf(“%d\n”,d);

}

程序運行後的輸出結果是

A)10

B)9

C)8

D)7

25.

(25)有以下程序

#include stdio.h

void fun(char *s)

{ while(*s)

{ if (*s%2==0) printf(“%c”,*s);

s++;

}

}

main()

{ char a[]={“good”};

fun(a); printf(“\n”);

}

注意:字母a的ASCII碼值為97,程序運行後的輸出結果是

A)d

B)go

C)god

D)good

26.

(26)有以下程序

#include stdio.h

void fun(int *a,int *b)

{ int *c;

c=a;a=b;b=c;

}

main()

{ int x=3,y=5,*p=x,*q=y;

fun(p,q); printf(“%d,%d,”,*p,*q);

fun(x,y);printf(“%d,%d\n”,*p,*q);

}

程序運行後輸出的結果是

A)3,5,5,3

B)3,5,3,5

C)5,3,3,5

D)5,3,5,3

27.

(27)有以下程序

#include stdio.h

void f(int *p,int *q);

main()

{ int m=1,n=2,*r=m;

f(r,n); printf(“%d,%d”,m,n);

}

void f(int *p,int *q)

{p=p+1;*q=*q+1;}

程序運行後的輸出結果是

A)1,3

B)2,3

C)1,4

D)1,2

28.

(28)以下函數按每行8個輸出數組中的數據

#include stdio.h

void fun(int *w,int n)

{ int i;

for(i=0;in;i++)

{ ____________

printf(“%d “,w[i]);

}

printf(“\n”);

}

下劃線出應填入的語句是

A)if(i/8==0) printf(“\n”);

B)if(i/8==0) continue;

C)if(i%8==0) printf(“\n”);

D)if(i%8==0) continue;

29.

(29)若有以下定義

int x[10],*pt=x;

則對數組元素的正確引用是

A)*x[10]

B)*(x+3)

C)*(pt+10)

D)pt+3

30.

(30)設有定義:char s[81];int i=0;,以下不能將一行(不超過80個字元)帶有空格

的字元串正確讀入的語句或語句組是

A)gets(s);

B)while((s[i++]=getchar())!=~\n~);s[i]=~\0~;

C)scanf(“%s”,s);

D)do{scanf(“%c”,s[i]);}while(s[i++]!=~\n~);s[i]=~\0~;

31.

(31)有以下程序

#include stdio.h

main()

{ char *a[]={“abcd”,”ef”,”gh”,”ijk”};int i;

for(i=0;i4;i++) printf(“%c”,*a[i]);

}

程序運行後的輸出結果是

A)aegi

B)dfhk

C)dfhk

D)abcdefghijk

32.

(32)以下選項中正確的語句組是

A)char s[];s=”BOOK!”;

B)char *s;s={“BOOK!”};

C)char s[10];s=”BOOK!”;

D)char *s;s=”BOOK!”;

33.

(33)有以下程序

#include stdio.h

int fun(int x,int y)

{ if(x==y) return (x);

else return((x+y)/2);

}

main()

{ int a=4,b=5,c=6;

printf(“%d\n”,fun(2*a,fun(b,c)));

}

程序運行後的輸出結果是

A)3

B)6

C)8

D)12

34.

(34)設函數中有整型變數n,為保證其在未賦初值的情況下初值為0,應該選擇的存儲類別是

A)auto

B)register

C)static

D)auto 或register

35.

(35)有以下程序

#include stdio.h

int b=2;

int fun(int *k)

{ b=*k+b;return (b);}

main()

{ int a[10]={1,2,3,4,5,6,7,8},i;

for(i=2;i4;i++) {b=fun(a[i])+b; printf(“%d “,b);}

printf(“\n”);

}

程序運行後的輸出結果是

A)10 12

B)8 10

C)10 28

D)10 16

36.

(36)有以下程序

#include stdio.h

#define PT 3.5 ;

#define S(x) PT*x*x ;

main()

{ int a=1,b=2 ; printf(“%4.1f\n”,S(a+b));}

程序運行後的輸出結果是

A)14.0

B)31.5

C)7.5

D)程序有錯無輸出結果

37.

(37) 有以下程序

#include stdio.h

struct ord

{ int x,y; } dt[2]={1,2,3,4};

main()

{ struct ord *p=dt;

printf(“%d,”,++p-x); printf(“%d\n”,++p-y);

}

程序的運行結果是

A)1,2

B)2,3

C)3,4

D)4,1

38.

(38)設有宏定義:#define IsDIV(k,n) ((k%n==1)?1:0)且變數m已正確定義並賦值,

則宏調用:IsDIV(m,5)IsDIV(m,7)為真時所要表達的是

A)判斷m是否能被5或者7整除

B)判斷m是否能被5和7整除

C)判斷m被5或者7整除是否餘1

D)判斷m被5和7整除是否都餘1

39.

(39)有以下程序

#include stdio.h

main()

{ int a=5,b=1,t;

t=(a2)|b; printf(“%d\n”,t);

}

程序運行後的輸出結果是

A)21

B)11

C)6

D)1

40.

(40)有以下程序

#include stdio.h

main()

{ FILE *f;

f=fopen(“filea.txt”,”w”);

fprintf(f,”abc”);

fclose(f);

}

若文本文件filea.txt中原有內容為:hello,則運行以上程序後,文件filea.txt的內容為

A)helloabc

B)abclo

C)abc

D)abchello

2009年3月二級C語言程序設答案

選擇題:

1-10: DACDC ABABC

11-20:CBDDA CDBCB

21-30:CDABA BACBC

31-40:ADBCC CBDAC

填空題:

(1)19

(2)白盒

(3)順序結構

(4)資料庫管理系統(DBMS)

(5)菱形

(6)4

(7)”x/y=%d”

(8)能

(9)s=0

(10)1AbCeDf2dF

(11)7777654321

(12)max(int a,int b)

(13)NULL

(14)1001,ChangRong,1098.0

(15)p=p—next

c語言計算機二級考試選擇題如圖?

全國計算機二級考試試題題庫(附答案)

下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項在答題

卡相應位置上塗黑,答在試卷上不得分。

(1) 應用軟體是指

A) 所有能夠使用的軟體 B) 能被各應用單位共同使用的某種軟體

C) 所有微機上都應使用的基本軟體 D) 專門為某一應用目的而編製的軟體

(2) 下列述敘中錯誤的是

A) 計算機要經常使用不要長期閑置不用

B) 為了延長計算機的壽命,應避免頻繁開關計算機

C) 在計算機附近應避免磁場干擾

D) 計算機用幾小時後,應關機一會兒再用

(3) 下列字元中,ASCII碼值最小的是

A) A B) a C) Z D) x

(4) 用晶體管作為電子器件製成的計算機屬於

A) 第一代 B) 第二代 C) 第三代 D) 第四代

(5) 下列各不同進位的四個無符號數中,最小的數是

A) ()2 B) (37)8 C) (75)10 D) (2A)16

(6) 二進位數轉換成十六進位數是

A) B) C) D)

(7) 下列各無符號十進位數中,能用八位二進位表示的是

A) 296 B) 333 C) 256 D) 199

(8) 計算機的軟體系統可分類為

A) 程序與數據 B) 系統軟體與應用軟體

D) 操作系統與語言處理程序 D) 程序、數據與文檔

(9) 486機中的CPU同時能處理的二進位位數為

A) 8 B) 16 C) 32 D) 64

(10) 在使用計算機的過程中,需要重新啟動DOS,則要

A) 按Ctrl+Break鍵 B) 按^C鍵 C) 按Ctrl+Alt+Del鍵 D) 按^H鍵

(11) 現要從軟盤啟動DOS(軟盤中已存有DOS系統),設有如下一些操作:①打開計算機

電源;②將該軟盤插入A驅動器;③關好A驅動器門。則冷啟動的操作順序應為

A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①

(12) 設當前盤中某一文件路徑為\A\C\B\,當前目錄為\A。下列命令中錯誤的是

A) CD.. B) RD \A\C\B

C) TYPE \A\C\B\ D) TYPE C\B\

(13) 設當前盤中的根目錄下有一子目錄AB,在子目錄AB下有一文件。現要查看文件

的內容,應使用命令

A) TYPE \AB B) TYPE \AB\

C) TYPE \ D) DIR \AB\

(14) 自動批處理文件必須放在

A) C盤根目錄中 B) A盤根目錄中

C) 啟動盤的任一個目錄中 D) 啟動盤的根目錄中

(15) 設當前盤當前目錄為C:\USER\XY\P,且當前盤當前目錄為空,則下列命令中能正

確執行的是

A) RD C:\USER\XY\P B) RD USER\XY\P

C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y

(16) 下列DOS命令中,合法的是

A) DISKCOMP B) TYPE

C) COMP A: B: D) COMP A: A:

(17) 設當前盤為C盤,所用的所有軟盤已格式化,且容量相同,則下列DOS命令中錯

誤的是

A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:

(18) 下列DOS命令中錯誤的是

A) TYPE PRN B) TYPE PRN

C) COPY *.TXT PRN D) COPY CON PRN

(19) 下列四組DOS命令中,互相等價的一組是

A) COPY A:*.* B:與DISKCOPY A: B:

B) COPY +與TYPE

C) COPY + 與COPY +

D) TYPE *.FORCON與COPY *.FOR CON

(20) 設C盤目錄結構如下:

且C盤根目錄下文件的內容為

CD FORTRAN

CD \TC

如果在A驅動器中插入一張根目錄中只有擴展名為.C的若干文件(即A盤中無DOS系統

文件)的軟碟片,則由C盤啟動DOS系統後,第一次鍵入下列命令中,正確的是

A) COPY A:\*.C B) COPY A:\*.C TC

C) COPY A:\*.C FORTRAN D) CD USER

(21) C語言提供的合法的數據類型關鍵字是

A) Double B) short C) integer D) Char

(22) 在C語言中,合法的長整型常數是

A) 0L B) 4962710 C) D)

(23) 表達式:10!=9的值是

A) true B) 非零值 C) 0 D) 1

(24) 合法的C語言中,合法的長整型常數是

A) ‘\t’ B) “A” C) 65 D) A

(25) 若有說明和語句:

int a=5;

a++;

此處表達式a++的值是

A) 7 B) 6 C) 5 D) 4

(26) 在下列選項中,不正確的賦值語句是

A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;

(27) 若有說明:int i,j=7, *p=i;,則與i=j;等價的語句是

A) I= *P; B) *P=*J; C) i=j; D) i=* *p;

(28) 不能把字元串:Hello!賦給數組b的語句是

A) char b[10]={‘H’,’e’,’l’,’l’,’o’,’!’};

B) char b[10];b=”Hello!”;

C) char b[10];strcpy(b,”Hello!”);

D) char b[10]=”Hello!”;

(29) 若有以下說明:

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

char c=’a’,d,g;

則數值為4的表達式是

A)a[g-c] B)a[4] C)a[‘d’-‘c’] D)a[‘d’-c]

(30) 若有以下說明:

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

則數值為6的表達式是

A) *p+6 B) *(p+6) C) *p+=5 D) p+5

(31) 若有以下說明:

int w[3][4]o={{0,1},{2,4},{5,8}};

int(*p)[4]=w;

則數值為4的表達式是

A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]

(32) 若程序中有下面的說明和定義

struct abc

{int x;char y;}

struct abc s1,s2;

則會發生的情況是

A) 編譯進錯 B) 程序將順利編譯`連接`執行

C) 能順利通過編譯`連接`但不能執行 D) 能順利通過編譯`但連接出錯

(33) 能正確表示a≥10或a≤0的關係表達式是

A)a=10 or a=0 B)a=10│a=0

C)a=10││a=0 D)a=10 ││a=0

(34) 下面程序的輸出是

main()

{ int x=3,y=6,a=0;

while(x++!=(y+=o1))

{ a+o=1;

if(y

#include

main()

{ char ss[10]=”12345″;

strcat(ss,”6789″);

gets(ss);printf(“%s\n”,ss);

}

A) ABC B) ABC9 C) 123456ABC D) ABC456789

(35) 下面程序的輸出是

main()

{ char *a=””;

int v1=0,v2=0,v3=0,v4=0,k;

for(k=0;s[k];k++)

switch(s[k])

{ default:v4++;

case ‘1’: v1++;

case ‘3’: v3++;

case ‘2’: v2++; }

printf(“v1=%d,v2=%d,v3=%d,v4=%d\n”,v1,v2,v3,v4); }

A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1

C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8

(36) 下面程序的輸出是

main()

{int k=11;printf(“k=%d,k=%o,k=%x\n”,k,k,k);}

A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b

(37) 若有以下程序段,w和k都是整型變數:

w=k;

LB: if(w==0) go to LE;

w–;

printf(“*”);

goto LB;

LE: ┆

則不能與上面程序段等價的循環語句是

A)for(w=k;w!=0;w–) printf(“*”); B)for(w=k;w;–w)printf(“*”);

C)w=k; D)w=k;

while(w–!=0)printf(“*”);w++; do{ w–;printf(“*”);}while(w!=0);

(38) 若有說明,double *p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是

A)*p=a; scanf(“%lf”,p); B)p=(double *)malloc(8);scanf(“%f”,p);

C) p=a;scanf(“%lf”,a); D)p=a; scanf(“%le”,p);

(39) 當執行下面程序且輸入:ABC時,輸出的結果是

#include

#include

main()

{ char ss[10]=”12345″;

gets(ss);printf(“%s\n”,ss); }

A) ABC B) ABC9 C) 123456ABC D) ABC456789

(40) 若有以下的說明和語句:

main()

{int t[3][2], *pt[3],k;

fpr(k=o; k3;k++)pt[k]=t[k];

}

則以一選項中能正確表示t數組元素地址的表達式是

A) t[3][2] B) *pt[0] C) *(pt+1) D) pt[2]

(41) 下面程序輸出數組中的最大值,由s指針指向該元素.

main()

{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;

flr(p=a, s=a; p-a10; p++)

if(—?—)s=p;

printf(“The max:%d”,*s):

}

則在if語句中的判斷表達式應該是

A) ps B) *p*s C) a[p]a[s] D) p-ap-s

(42) 下面程序的輸出是

#include

main()

{ char*a=”abcdefgh”;

fun(a);puts(a); }

fun (char * s)

{ int x=0,y;char c;

for(y=strlen(s)-1;x

A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba

(43) 若有以下函數調用語句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數調用語句

中實參的個數是

A)3 B)4 C)5 D)6

(44) 下面程序的輸出是

main()

{ int t=1; fun(fun(t));}

fun(int h)

{ static int a[3]={1,2,3};

int k;

for(k=0;k3;k++) a[k]+=a[k]-h;

for(k=1;k3;k++) printf(“%d”,a[k]);

printf(“\n”); return(a[h]);}

A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,

1,5,9, 1,3,5, 0,4,8, -1,3,7,

(45) C語言中,函數的隱含存儲類別是

A)auto B)static C)extern D)無存儲類別

(46) 下面程序的輸出是

int w=3;

main()

{ int w=10; printf(“%d\n”,fun(5)*w); }

計算機二級考試(江西考區)試題c語言及答案

2010年3月全國計算機等級考試二級C語言筆試真題及參考答案一、選擇題

(1)下列敘述中正確的是

A)對長度為n的有序鏈表進行查找,最壞清況下需要的比較次數為n

B)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(n/2)

C)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(log2n)

D)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(nlog2n)(2)演算法的時間複雜度是指

A)演算法的執行時間

B)演算法所處理的數據量

C)演算法程序中的語句或指令條數

D)演算法在執行過程中所需要的基本運算次數(3)軟體按功能可以分為:應用軟體、系統軟體和支撐軟體(或工具軟體)。下面屬於系統軟體的是

A)編輯軟體

B)操作系統

C)教務管理系統

D)瀏覽器(4)軟體(程序)調試的任務是

A)診斷和改正程序中的錯誤

B)儘可能多地發現程序中的錯誤

C)發現並改正程序中的所有錯誤

D)確定程序中錯誤的性質(5)數據流程圖(DFD圖)是

A)軟體概要設計的工具

B)軟體詳細設計的工具

C)結構化方法的需求分析工具

D)面向對象方法的需求分析工具(6)軟體生命周期可分為定義階段,開發階段和維護階段。詳細設計屬於

A)定義階段

B)開發階段

C)維護階段

D)上述三個階段(7)資料庫管理系統中負責數據模式定義的語言是

A)數據定義語言

B)數據管理語言

C)數據操縱語言

D)數據控制語言(8)在學生管理的關係資料庫中,存取一個學生信息的數據單位是

A)文件

B)資料庫

C)欄位

D)記錄(9)資料庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示,它屬於資料庫設計的

A)需求分析階段

B)邏輯設計階段

C)概念設計階段

D)物理設計階段(10)有兩個關係R和T如下:

則由關係K得到關係T的操作是

A)選擇

B)投影

C)交

D)並(11)以下敘述正確的是

A)C語言程序是由過程和函數組成的

B)C語言函數可以嵌套調用,例如:fun(fun(x))

C)C語言函數不可以單獨編譯

D)C語言中除了main函數,其他函數不可作為單獨文件形式存在(12)以下關於C語言的敘述中正確的是

A)C語言中的注釋不可以夾在變數名或關鍵字的中間

B)C語言中的變數可以在使用之前的任何位置進行定義

C)在C語言算術表達式的書寫中,運算符兩側的運算數類型必須一致

D)C語言的數值常量中夾帶空格不影響常量值的正確表示(13)以下C語言用戶標識符中,不合法的是

A)_1

B)AaBc

C)a_b

D)a-b(14)若有定義:double a=22;int i=0,k=18;,則不符合C語言規定的賦值語句是

A)a=a++,i++;

B)i=(a+k)=(i+k);

C)i=a%11;

D)i=!a;(15)有以下程序

#includestdio.h

main()

{ char a,b,c,d;

scanf(「%c%c」,a,b);

c=getchar(); d=getchar();

printf(「%c%c%c%c\n」,a,b,c,d);

}

當執行程序時,按下列方式輸入數據(從第1列開始,CR代表回車,注意:回車也是一個字元)

12CR

34CR

則輸出結果是

A)1234

B)12

C)12

3

D)12

34(16)以i關於C語言數據類型使用的敘述中錯誤的是

A)若要準確無誤差的表示自然數,應使用整數類型

B)若要保存帶有多位小數的數據,應使用雙精度類型

C)若要處理如「人員信息」等含有不同類型的相關數據,應自定義結構體類型

D)若只處理「真」和「假」兩種邏輯值,應使用邏輯類型(17)若a是數值類型,則邏輯表達式(a==1)||(a!=1)的值是

A)1

B)0

C)2

D)不知道a的值,不能確定(18)以下選項中與if(a==1)a=b; else a++;語句功能不同的switch語句是

A)switch(a)

{case:a=b;break;brdefault:a++;br}brB)switch(a==1)br{case 0:a=b;break;brcase 1:a++;br}

C)switch(a)

{default:a++;break;brcase 1:a=b;br}

D)switch(a==1)

{case 1:a=b;break;brcase 0:a++;br}(19)有如下嵌套的if語句

if (ab)

if(ac)k=a;

else k=c;

else

if(bc) k=b;

else k=c;

以下選項中與上述if語句等價的語句是

A)k=(a<b)?a:b;k=(b<c)?b:c;

B)k=(a<b)?((b<c)?a:b):((b>c)?b:c);

C)k=(a<b)?((a<c)?a:):((b<c)?b:c);

D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序

#include<s七dio.h>

main()

{in i,j,m=1;

for(i=1;i<3;i++)

{for(j=3;j>O;j–)

{if(i*j)>3)break;brm=i*j;br}

}

printf(”m=%d\n”,m);

程序運行後的輸出結果是

A)m=6

B)m=2

C)m=4

D)m=5(21)有以下程序

#include(stdio.h>

main()

{int a=l;b=2;

for(;a<8;a++) {b+=a;a+=2;}

printf(”%d,%d\n”,a,b);

}

程序運行後的輸出結果是

A)9,18

B)8,11

C)7,11

D)10,14(22)有以下程序,其中k的初值為八進位數

#include stdio.h

main()

{int k=011;

printf(”%d\n”,k++);

程序運行後的輸出結果是

A)12

B)11

C)10

D)9(23)下列語句組中,正確的是

A)char *s;s=”Olympic”;

B)char s[7];s=”Olympic”;

C)char *s;s={”Olympic”};

D)char s[7];s={”Olympic”};(24)以下關於return語句的敘述中正確的是

A)一個自定義函數中必須有一條return語句

B)一個自定義函數中可以根據不同情況設置多條return語句

C)定義成void類型的函數中可以有帶返回值的return語句

D)沒有return語句的自定義函數在執行結束時不能返回到調用處(25)下列選項中,能正確定義數組的語句是

A)int num[0..2008];

B)int num[];

C)int N=2008;

int num[N];

D)#define N 2008

int num[N];(26)有以下程序

#include stdio.h

void fun(char *c,int d)

{*c=*c+1;d=d+1;

printf(”%c,%c,”,*c,d);

main()

{char b=’a’,a=’A’;

fun(b,a);printf(”%e,%e\n”,b,a);

程序運行後的輸出結果是

A)b,B,b,A

B)b,B,B,A

C)a,B,B,a

D)a,B,a,B(27)若有定義int(*Pt)[3];,則下列說法正確的是

A)定義了基類型為int的三個指針變數

B)定義了基類型為int的具有三個元素的指針數組pt

C)定義了一個名為*pt、具有三個元素的整型數組

D)定義了一個名為pt的指針變數,它可以指向每行有三個整數元素的二維數組(28)設有定義double a[10],*s=a;,以下能夠代表數組元素a[3]的是

A)(*s)[3]

B)*(s+3)

C)*s[3]

D)*s+3(29)有以下程序

#include(stdio.h)

main()

{int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;

for(i=0;i<5;i++) s=s+a[b[i]]);

printf(”%d\n”, s);

}

程序運行後的輸出結果是

A)6

B)10

C)11

D)15(30)有以下程序

#include stdio.h

main()

{int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;

for(i=0;i3;i++)

for(j=ij=1;j++) t+=b[i][b[j][i]];

printf(”%d\n”,t);

程序運行後的輸出結果是

A)1

B)3

C)4

D)9(31)若有以下定義和語句…….這是全國2010全國c語言考試的部分題目,樓主需要的話可以自己去下載轉自:酷8學習網

全國計算機等級考試二級C語言歷年試題及答案

2010年9月全國計算機等級考試二級C語言筆試試題及答案

一、選擇題((1)-(10)每題2分,(11)-(50)每題1分.共60分))

(1)下列選項中不屬於軟體生命周期開發階段任務的是

A)詳細設計 B)概要設計 C)軟體維護 D)軟體測試

(2)樹是結點的集合,它的根結點數目是

A)有且只有1 B)1或多於1 C)0或1 D)至少2

(3)在面向對象方法中,實現信息隱蔽是依靠

A)對象的繼承 B)對象的多態 C)對象的封裝 D)對象的分類

(4)程序設計語言的基本成分是數據成分、運算成分、控制成分和

A)語句成分 B)變數成分 C)對象成分 D)傳輸成分

(5)冒泡排序在最壞情況下的比較次數是

A)n/2 B)nlog2n C)n(n-1)/2 D)n(n+1)/2

(6)下列敘述中,不屬於軟體需求規格說明書的作用的是

A)作為確認測試和驗收的依據

B)反映出用戶問題的結構,可以作為軟體開發工作的基礎和依據

C)便於用戶、開發人員進行理解和交流

D)便於開發人員進行需求分析

(7)下列敘述中錯誤的是

A)一個C語言程序只能實現一種演算法 B)C程序可以由多個程序文件組成

C)C程序可以由一個或多個函數組成 D)一個函數可單獨作為一個C程序文件存在

(8)下列不屬於軟體工程的3個要素的是

A)方法 B)過程 C)工具 D)環境

(9)下列敘述中正確的是

A)資料庫系統是一個獨立的系統,不需要操作系統的支持

B)資料庫技術的根本目標是要解決數據的共享問題

C)資料庫管理系統就是資料庫系統

D)以上三種說法都不對

(10)下列敘述中正確的是

A)每個C程序文件中都必須有一個main()函數

B)在C程序的函數中不能定義另一個函數

C)C程序可以由一個或多個函數組成

D)在C程序中main()函數的位置是固定的

(11)將E-R圖轉換到關係模式時,實體與聯繫都可以表示成

A)屬性 B)關係 C)鍵 D)域

(12)下列定義變數的語句中錯誤的是

A)double int_; B)int _int; C)char For D)float USS

(13)下列敘述中正確的是

A)C語言編譯時不檢查語法 B)C語言的子程序有過程和函數兩種

C)C語言的函數可以嵌套定義 D)C語言的函數可以嵌套調用

(14)以下選項中,合法的一組C語言數值常量是

A) 0x8A B)12 C).177 D) 028

(15)以下敘述中正確的是

A)構成C程序的基本單位是函數

B)可以在一個函數中定義另一個函數

C)main()函數必須放在其他函數之前

D)所有被調用的函數一定要在調用之前進行定義

(16)若在定義語句:int a,b,c,*p=c;之後,接著執行以下選項中的語句,則能正確執行的語句是

A)scanf(“%d”,p); B)scanf(“%d%d%d”,a,b,c);

C)scanf(“%d”,p); D) scanf(“%d”,a,b,c);

(17) 有以下程序

main()

{int x,y,z;

x=y=1;

z=x++,y++,++y;

printf(“%d,%d,%d\n”,x,y,z);

}

程序運行後的輸出結果是

A)2,2,3 B)2,2,2 C)2,3,1 D)2,1,1

(18) 若已定義:int a=25,b=14,c=19;以下三目運算符(?:)所構成語句的執行後a=25b–=2c?printf(“***a=%d,b=%d,c=%d\n”,a,b,c):printf(“###a=%d,b=%d,c=%d\n”,a,b,c);程序輸出的結果是

A)***a=25,b=13,c=19 B)***a=26,b=14,c=19

C)### a=25,b=13,c=19 D)### a=26,b=14,c=19

(19)下列程序段的輸出結果是

int a=1234;

float b=123.456;

double c=12345.54321;

printf(”-,%2.1f,%2.1f”,a,b,c);

A)無輸出 B)12,123.5,12345.5 C)1234,123.5,12345.5 D)1234,123.4,1234.5

(20)有以下程序

main()

{int a=0,b=0;

a=10; /*給a賦值

b=20; 給b賦值 */

printf(“a+b=%d\n”,a+b); /* 輸出計算結果 */

}

程序運行後輸出結果是

A)30 B)a+b=30 C)a+b=0 D)出錯

(21)若運行以下程序時,從鍵盤輸入 ADescriptor(表示回車),則下面程序的運行結果是

#include

main()

{ char c;

int v0=1,v1=0,v2=0;

do{ switch(c=getchar())

{ case ′a′:case ′A′:

case ′e′:case ′E′:

case ′i′:case ′I′:

case ′o′:case ′O′:

case ′u′:case ′U′:v1+=1;

default:v0+=1;v2+=1;

}

} while(c!=′\n′);

printf(”v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);

}

A)v0=11,v1=4,v2=11 B)v0=8,v1=4,v2=8

C)v0=7,v1=4,v2=7 D)v0=13,v1=4,v2=12

(22) 有以下程序

#include

main()

{int y=9;

for( y0;y–)

if(y%3= =0) printf(“%d”,–y);

}

程序的運行結果是

A)732 B)433 C)852 D)874

(23) 設有以下程序段

int x=0,s=0;

while(!x!=0)s+=++x;

printf(”%d”,s);

A)運行程序段後輸出0 B)運行程序段後輸出1

C)程序段中的控制表達式是非法的 D)程序段執行無限次

(24)有以下程序

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

main()

{int a=1,b=2,c=3,sum;

sum=fun((a++,b++b,a+b),c++);

printf(“%d\n”,sum);

}

執行後的輸出結果是

A)5 B)7 C)8 D)3

(25)執行下面的程序段後,變數k中的值為

int k=3, s[2];

s[0]=k; k=s[1]*10;

A)不定值 B)35 C)31 D)20

(26)以下敘述中錯誤的是

A)改變函數形參的值,不會改變對應實參的值

B)函數可以返回地址值

C)可以給指針變數賦一個整數作為地址值

D)當在程序的開頭包含文件stdio.h時,可以給指針變數賦NULL

(27)以下程序段的描述,正確的是

x=-1;

do

{x=x*x;} while(!x);

A)是死循環 B)循環執行兩次 C)循環執行一次 D)有語法錯誤

(28)有以下程序

fun(int x,int y)

{static int m=0,i=2;

i+=m+1;m=i+x+y; return m;

}

main()

{int j=1,m=I,k;

k=fun(j,m); printf(“%d”,k);

k=fun(j,m); printf(“%d\n”,k)

}

執行後的輸出結果是

A)5,5 B)5,11 C)11,11 D)11,5

(29)有以下程序

fun(int x)

{int p;

if(x==0║x= =1) return(3);

p=x-fun(x=2);

retum p;

}main()

{ prinf(“%d\n”,fun(7));}

執行後的輸出結果是

A)7 B)3 C)3 D)0

(30)在16位編譯系統上,右有定義int a[ ]={10,20,30},*p=a;,當執行p++;後,下列說法錯誤的是

A)p向高地址移了一個位元組 B)p抽高地址移了一個存儲單元

C)p向高地址移了兩個位元組 D)p與a+1等價

(31)有以下程序

main()

{int a=1,b=3,c=5;

int *p1=a,*p2=b,*p=c;

*p=*p1*(*p2);

printf(“%d\n”,c);

}

執行後的輸出結果是

A)1 B)2 C)3 D)4

(32)下列程序執行後的輸出結果是

void func1(int i);

void func2(int i);

char st[]=”hello,friend!”;

void func1(int i)

{ printf(”%c”,st[i]);

if(i3){i+=2;func2(i);}

}

void func2(int i)

{ printf(”%c”,st[i]);

if(i3){i+=2;func1(i);}

}

main()

{ int i=0; func1(i); printf(”\n”);}

A)hello B)hel C)hlo D)hlm

(33)在下述程序中,判斷ij共執行的次數是

main()

{ int i=0, j=10, k=2, s=0;

for (;;)

{ i+=k;

if(ij)

{ printf(”%d”,s);

break;

} s+=i;

}

}

A)4 B)7 C)5 D)6

(34)以下函數返回a所指數組中最大值所在的下標值

fun(int *a,int n)

{ int i,j=0,p;

p=j;

for(i=j;iif(a[i]a[p]);

return(p);

}

在下劃線處應填入的內容是

A)i=p B)a[p]=a[i] C)p=j D)p=i

(35)下列程序執行後的輸出結果是

main()

{ int a[3][3], *p,i;

p=a[0][0];

for(i=1; i9; i++)p[i]=i+1;

printf(”%d\n”,a[1][2]);

}

A)3 B)6 C)9 D)隨機數

(36) 有以下程序

#include

void fun(int *a,int n)/*fun函數的功能是將a所指數組元素從大到小排序*/

{int t,i,j;

for(i=0;ifor(j=i+1;jif (a}

main()

{int c[10]={1,2,3,4,5,6,7,8,9,0},i;

fun(c+4,6);

for (i=0;i10;i++) printf(“%d,”,c);

printf(“\n”);

}

程序運行的結果是

A)1,2,3,4,5,6,7,8,9,0, B)0,9,8,7,6,5,1,2,3,4,

C) 0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0,

(37)以下程序的輸出結果是#include

void prt (int *x, int*y, int*z)

{ printf(”%d,%d,%d\n”,++*x,++*y,*(z++));}

main()

{ int a=10,b=40,c=20;

prt (a,b,c);

prt (a,b,c);

}

A)11,42, 31

12,22,41

B)11,41,20

12,42,20

C)11,21,40

11,21,21

D)11,41,21

12,42,22

(38) 有以下程序:

#include

void fun(char *t,char *s)

{

while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{

char ss[10]=」acc」,aa[10]=」bbxxyy」;

fun(ss,aa);

printf(「%s,%s\n」,ss,aa);

}

程序運行結果是

A) accxyy , bbxxyy B) acc, bbxxyy

C) accxxyy,bbxxyy D) accbbxxyy,bbxxyy

(39) 有以下程序

#include

main()

{ FILE *fp; int i=20,j=30,k,n;

fp=fopen(”d1.dat”,”w”);

fprintf(fp,”%d\n”,i);fprintf(fp,”%d\n”,j);

fclose(fp);

fp=fopen(”d1.dat”,”r”);

fscanf(fp,”%d%d”,k,n); printf(”%d %d\n”,k,n);

fclose(fp);

}

程序運行後的輸出結果是

A)20 30 B)20 50 C)30 50 D)30 20

(40) 有以下程序

main()

{int x[3][2]={0},I;

for(I=0;I3;I++) scanf(“%d”,x[i]);

printf(“%3d%3d%3d\n”,x[0][0],x[0][1],x[1][0]);

}

若運行時輸入:246,則輸出結果為

A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6

(41)有以下程序

int add(int a,int b){return+b};}

main()

{int k,(*f)(),a=5,b=10;

f=add;

}

則以下函數調用語句錯誤的是

A)k=(*f)(a,b); B)k=add(a,b); C)k=*f(a,b); D)k=f(a,b);

(41)有以下程序

#include

main(int argc,char *argv[])

{int i=1,n=0;

while(iarge){n=n+strlen(argv[i]);i++;}

printf(「%d\n」,n);

}

該程序生成的可執行文件名為:proc.exe。若運行時輸入命令行:

proc 123 45 67

則程序的輸出結果是

A)3 B)5 C)7 D)11

(42)有以下程序

void fun2(char a, char b){printi(「%b%c」,a,b);}

char a= 『A』,b= 『B』;

void fun1( ){ a= 『C』l b= 『D』; }

main( )

{ fun1( )

printf( 「%c%c」,a,b);

fun2(『E』, 『F』);

}

程序的運行結果是

A)CDEF B)ABEF C)ABCD D)CDAB

(43)有以下程序

#include

#define N 5

#define M N+1

#define f(x) (x*M)

main()

{int i1,i2;

i1=f(2);

i2=f(1+1);

printf(「%d %d\n」,i1,i2);

}

程序的運行結果是

A)12 12 B)11 7 C)11 11 D)12 7

(44)設有以下語句

typedef struct TT

{char c; int a[4];}CIN;

則下面敘述中正確的是

A)可以用TT定義結構體變數 B)TT是struct類型的變數

C)可以用CIN定義結構體變數 D)CIN是struct TT類型的變數

(45)有以下結構體說明、變數定義和賦值語句

struct STD

{char name[10];

int age;

char sex;

}s[5],*ps;

ps=s[0];

則以下scanf函數調用語句中錯誤引用結構體變數成員的是

A)scanf(「%s」,s[0].name); B)scanf(「%d」,s[0].age);

C)scanf(「%c」,(pssex)); D)scanf(「%d」,psage);

(46)若有以下定義和語句

union data

{ int i; char c; float f;}x;

int y;

則以下語句正確的是

A)x=10.5; B)x.c=101; C)y=x; D)printf(「%d\n」,x);

(47)若變數已正確定義,則以下語句的輸出結果是

s=32; s^=32;printf(「%d」,s);

A)-1 B)0 C)1 D)32

(48) 若程序中有宏定義行:#define N 100 則以下敘述中正確的是

A)宏定義行中定義了標識符N的值為整數100

B)在編譯程序對C源程序進行預處理時用100替換標識符N

C) 對C源程序進行編譯時用100替換標識符N

D)在運行時用100替換標識符N

(49)以下敘述中正確的是

A)C語言中的文件是流式文件,因此只能順序存取數據

B)打開一個已存在的文件並進行了寫操作後,原有文件中的全部數據必定被覆蓋

C)在一個程序中當對文件進行了寫操作後,必須先關閉該文件然後再打開,才能讀到第1個數據

D)當對文件的讀(寫)操作完成之後,必須將它關閉,否則可能導致數據丟失

(50)有以下程序

#include

main()

{FILE *fp; int i;

char ch[]=」abcd」,t;

fp=fopen(「abc.dat」,」wb+」);

for(i=0;i4;i++)fwriterch[],1,1fp;

fseek(fp,-2L,SEEK_END);

fread(t,1,1,fp);

fclose(fp);

printf(「%c\n」,t);

}

程序執行後的輸出結果是

A)d B)c C)b D)a

二、填空題(每空2分,共40分)

(1)在面向對象方法中,類之間共享屬性和操作的機制稱為 【1】 。

(2)一個關係表的行稱為 【2】 。

(3)耦合和內聚是評價模塊獨立性的兩個主要標準,其中 【3】 反映了模塊內各成分之間的聯繫。

(4)線性表的存儲結構主要分為順序存儲結構和鏈式存儲結構.隊列是一種特殊的線性表,循環隊列是隊列的【4】存儲結構.

(5) 【5】 的任務是診斷和改正程序中的錯誤。

(6) 以下程序的輸出結果是【6】.

#include

main()

{ int n=12345,d;

while(n!=0){ d=n%10; printf(“%d”,d); n/=10;}

}

(7)以下程序運行後的輸出結果是 【7】 。

main()

{

int m=011,n=11;

printf(“%d %d\n”,++m,n++);

}

(8)有以下程序,若運行時從鍵盤輸入:18,11,則程序輸出結果是 【8】 。

main()

{ int a,b;

printf(“Enter a,b:”);scanf(“%d,%d”,a,b);

while(a!=b)

{ while(ab) a-=b;

while(ba) b-=a;

}

printf(“%3d%3d\n”,a,b);

}

(9) 有以下程序段,且變數已正確定義和賦值

for(s=1.0,k=1;k=n;k++) s=s+1.0/(k*(k+1));

printf(“s=%f\n\n”,s);

請填空,使下面程序段的功能為完全相同

s=1.0;k=1;

while(_【9】_______){ s=s+1.0/(k*(k+1)); _【10】_______;}

printf(“s=%f\n\n”,s);

(10)執行以下程序的輸出結果是【11】______.

#include

main()

{ int i,n[4]={1};

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

{ n=n[i-1]*2+1; printf(“%d”,n); }

}

(11)以下程序中函數f的功能是在數組x的n個數(假定n個數互不相同)中找出最大最小數,將其中最小的數與第一個數對換,把最大的數與最後一個數對換.請填空.

#include

viod f(int x[],int n)

{ int p0,p1,i,j,t,m;

i=j=x[0]; p0=p1=0;

for(m=0;m{ if(x[m]i) {i=x[m]; p0=m;}

else if(x[m]}

t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;

t=x[p1];x[p1]= _【12】_______; 【13】______=t;

}

main()

{ int a[10],u;

for(u=0;u10;u++) scanf(“%d”,a);

f(a,10);

for(u=0;u10;u++) printf(“%d”,a);

printf(“\n”);

}

(12)下列程序中的函數strcpy2()實現字元串兩次複製,即將t所指字元串複製兩次到s所指內存空間中,合併形成一個新的字元串。例如,若t所指字元串為efgh,調用strcpy2後,s所指字元串為efghefgh。請填空。

#include

#include

void strcpy2(char *s,char *t)

{ char *p=t;

while(*s++=*t++);

s= 【14】 ;

while( 【15】 =*p++);

}

main()

{ char str1[100]=”abcd”,str2[]=”efgh”;

strcpy2(str1 ,str2); printf(“%s\n”,str1);

}

(13)以下程序統計從終端輸入的字元中大寫字母的個數,num[0]中統計字母A的個數,num[1]中統計字母B的個數,其它依次類推.用#號結束輸入,請填空.

#include

#include

main()

{ int num[26]={0},i; char c;

while((_【16】_______)!=’#’)

if(isupper(c)) num[c-『A』]+= 【17】_______;

for(i=0;i26;i++)

Printf(“%c:%d\n”,i+’A’,num);

}

(14)以下程序中,函數fun的功能是計算x2-2x+6,主函數中將調用fun函數計算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請填空。

#include “math.h”

double fun(double x) { return(x*x-2*x+6); }

main()

{

double x,y1,y2;

printf(“Enter x:”); scanf(“%lf”,x);

y1=fun( 【18】 );

y2=fun( 【19】 );

printf(“y1=%lf,y2=%lf\n”,y1,y2);

}

(15) 以下程序的輸出結果是_【20】______.

#include

#define M 5

#define N M+M

main()

{ int k;

k=N*N*5; printf(“%d\n”,k);

}

一、選擇題答案:

1-10:CACDC DADBA 11-20:BDDBA CCCCB 21-30:DCBCA CCBCA

31-40:CCDAB DCDAB 41-50:CABCD BBBDB

二、填空題答案:

1.繼承 2. 元組 3.內聚 4.順序 5. 程序調試

6. 54321 7.10 11 8. 1 9.k=n k++

10. 3 7 5 11.x[0] x[0] 12.s–,*s++ 13.c=getchar() 14. (x+8),sin(x) 15.55

希望對你有所幫助

原創文章,作者:JHBFT,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/329993.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JHBFT的頭像JHBFT
上一篇 2025-01-14 18:56
下一篇 2025-01-14 18:56

相關推薦

  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論