全國計算機二級c語言筆試試題_第1頁
全國計算機二級c語言筆試試題_第2頁
全國計算機二級c語言筆試試題_第3頁
全國計算機二級c語言筆試試題_第4頁
全國計算機二級c語言筆試試題_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

2010年9月全國計算機二級C語言筆試試題

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

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

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

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

A)線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的

B)線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構

C)線性表的鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構

D)上述三種說法都不對

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

A)在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化

B)在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化

C)在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化

D)上述三種說法都不對

(3)軟件測試的目的是

A)評估軟件可靠性B)發(fā)現(xiàn)并改正程序中的錯誤

C)改正程序中的錯誤D)發(fā)現(xiàn)程序中的錯誤

(4)下面描述中,不屬于軟件危機表現(xiàn)的是

A)軟件過程不規(guī)范B)軟件開發(fā)生產(chǎn)率低

C)軟件質量難以控制D)軟件成本不斷提高

(5)軟件生命周期是指

A)軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程

B)軟件從需求分析、設計、實現(xiàn)到測試完成的過程

C)軟件的開發(fā)過程

D)軟件的運行維護過程

(6)面向對象方法中,繼承是指

A)一組對象所具有的相似性質

B)一個對象具有另一個對象的性質

C)各對象之間的共同性質

D)類之間共享屬性和操作的機制

(7)層次型、網(wǎng)狀型和關系型數(shù)據(jù)庫劃分原則是

A)記錄長度B)文件的大小

C)聯(lián)系的復雜程度D)數(shù)據(jù)之間的聯(lián)系方式

(8)一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實體工作人員、

與實體計算機之間的聯(lián)系是

A)一對一B)一對多

C)多對多D)多對一

(9)數(shù)據(jù)庫設計中反映用戶對數(shù)據(jù)要求的模式是

A)內(nèi)模式B)概念模式

C)外模式D)設計模式

(10)有三個關系R、S和T如下:

則由關系R和S得到關系T的操作是

A)自然連接B)交C)投影D)并

(11)以下關于結構化程序設計的敘述中正確的是

A)一個結構化程序必須同時由順序、分支、循環(huán)三種結構組成

B)結構化程序使用goto語句會很便捷

C)在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的

D)由三種基本結構構成的程序只能解決小規(guī)模的問題

(12)以下關于簡單程序設計的步驟和順序的說法中正確的是

A)確定算法后,整理并寫出文檔,最后進行編碼和上機調試

B)首先確定數(shù)據(jù)結構,然后確定算法,再編碼,并上機調試,最后整理文檔

C)先編碼和上機調試,在編碼過程中確定算法和數(shù)據(jù)結構,最后整理文檔

D)先寫好文檔,再根據(jù)文檔進行編碼和上機調試,最后確定算法和數(shù)據(jù)結構

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

A)C程序在運行過程中所有計算都以二進制方式進行

B)C程序在運行過程中所有計算都以十進制方式進行

C)所有C程序都需要編譯鏈接無誤后才能運行

D)C程序中整型變量只能存放整數(shù),實型變量只能存放浮點數(shù)

(14)有以下定義:inta;longb;doublex,y;則以下選項中正確的表達式是

A)a%(int)(x-y)B)a=x!=y;

C)(a*y)%bD)y=x+y=x

(15)以下選項中能表示合法常量的是

A)整數(shù):1,200B)實數(shù):1.5E2.0

C)字符斜杠:'VD)字符串:n\007u

(16)表達式a+=a-=a=9的值是

A)9B)9C)18D)0

(17)若變量已正確定義,在if(W)printf("%d\n,k");中,以下不可替代W的是

A)a<>b+cB)ch=getchar()

C)a==b+cD)a++

(18)有以下程序

#include<stdio.h>

main()

{inta=l,b=0;

if(!a)b++;

elseif(a==0)if(a)b+=2;

elseb+=3;

printf("%d\n",b);

}

程序運行后的輸出結果是

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

(19)若有定義語句inta,b;doublex;則下列選項中沒有錯誤的是

A)switch(x%2)B)switch((int)x/2.0

{case0:a++;break;{case0:a++;break;

case1:b++;break;case1:b++;break;

defaulta++;b++;defaulta++;b++;

))

C)switch((int)x%2)D)switch((int)(x)%2)

{case0:a++;break;{case0.0:a++;break;

case1:b++;break;case1.0:b++;break;

default:a++;b++;default:a++;b++;

))

(20)有以下程序

#include<stdio.h>

main()

{inta=l,b=2;

while(a<6){b+=a;a+=:2;b%二10;)

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

)

程序運行后的輸出結果是

A)5,11B)7,1C)7,11D)6,1

(21)有以下程序

#include<stdio.h>

main()

{inty=10;

while(y-);

printf("Y=%d\n",Y);)

程序執(zhí)行后的輸出結果是

A)y=0B)y=-1C)y=lD)while構成無限循環(huán)

(22)有以下程序

#include<stdio.h>

main()

{charsLJ="rstuv'1;

printf("%c\n”,*s+2);

}

程序運行后的輸出結果是

A)tuvB)字符t的ASCII碼值C)tD)出錯

(23)有以下程序

#include<stdio.h>

#include<string.h>

main()

(charx[]="STRING”;

x[OJ=0;x[1]=,\0"

x[2J='0';

printf("%d%d\n”,sizeof(x),strlen(x));

)

程序運行后的輸出結果是

A)61B)70063D)71

(24)有以下程序

#include<stdio.h>

Intf(intx);

main()

{intn=l,m;

m=f(f(f(n)));

printf("%d\n",m);

}

intf(intx)

{returnx*2;}

程序運行后的輸出結果是

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

(25)以下程序段完全正確的是

A)int*p;scanf(M%d",&p);

B)int*p;scanf("%d",p);

C)intk,*p=&k;scanf(u%d",p);

D)intk,*p:;*p=&k;scanf("%d",p);

(26)有定義語句:int*p[4];以下選項中與此語句等價的是

A)intp(4];B)int**p;

C)int*(p「4」);D)int(*p)「4」;

(27)下列定義數(shù)組的語句中,正確的是

A)intN=10;intx[N];B)#defineN10intx[N];

C)intx[0..10];D)intx口;

(28)若要定義一個具有5個元素的整型數(shù)組,以下錯誤的定義語句是

A)inta[5]=I0};B)intb[]={0,0,0,0,0);

C)intc[2+3];D)inti=5,d[i];

(29)有以下程序

#include<stdio.h>

voidf(int*p);

main()

{inta[5]={1,2,3,4,5},*r=a;

f(r);

printf("%d\n";*r);

}

voidf(int*p)

{p=p+3;printf("%d,”,*p);}

程序運行后的輸出結果是

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

(30)有以下程序(函數(shù)fun只對下標為偶數(shù)的元素進行操作)

#include<stdio.h>

voidfun(int*a;intn)

{inti、j、k、t;

for(i=0;i<n-1;1+=2)

{k=i;'

for(j=i;j<n;j+=2)

if(a[j]>a(k])k=j;

t=a(i];a[i]=a[k];a(k]=t;

)

)

main()

{intaa「10」={k2、3、4、5、6、7},i

fun(aa>7);

for(i=0,i<7;i++)

printf("%d,",aa[i]));

printf("\n");

)

程序運行后的輸出結果是

A)725,4,3,6,1B)1,6,3,4,527

C)7,6,54,3,2』D)1,7,3,562,1

(31)下列選項中,能夠滿足“若字符串si等于字符串s2,則執(zhí)行ST”要求的是

A)if(strcmp(s2,sl)==0)ST;

B)if(sl==s2)ST;

C)if(strcpy(s1,s2)==1)ST;

D)if(sl-s2==0)ST;

(32)以下不能將s所指字符串正確復制到t所指存儲空間的是

A)while(*t=*s){t++;s++;}B)for(i=O;t[i]=s[i];i++);

C)do{*t++=*s++;}while(*s);D)for(i=0,j=0;t[i+4-]=s[j+4-];);

(33)有以下程序(strcat函數(shù)用以連接兩個字符串)

#include<stdio.h>

#include<string.h>

main()

{chara[20]="ABCD\OEFG\0",b口="IJK”;

strcat(a,b);

printf("%s\n",a);

)

程序運行后的輸出結果是

A)ABCDE\OFG\OIJKB)ABCDIJK

C)UKD)EFGIJK

(34)有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母

#include<stdio.h>

#include<ctype.h>

voidfun(char*p)

{inti=0;

while(p[ij)

{if(p[i]==?'&&islower(pFi-1J))

p[i-l]=p[M]-<a,+'A';

i++;}

)

main()

{harsi[100]="abcdEFG!Q

fun(si);

printf("%s\n",si);

)

程序運行后的輸出結果是

A)abcdEFG!B)AbCdEFg!

C)aBcDEFG!D)abcdEFg!

(35)有以下程序

#include<stdio.h>

voidfun(intx)

{if(x/2>1)fun(x/2);

printf(n%d”,x);

)

main()

{fun(7);printf("\n");}

程序運行后的輸出結果是

A)137B)731073D)37

(36)有以下程序

#include<stdio.h>

intfun()

{staticintx=l;

x+=l;returnx;

}

main()

{inti;s=l;

for(i=l;i<=5;i++)s+=fun();

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

)

程序運行后的輸出結果是

A)11B)21C)6D)120

(37)有以下程序

#inctude<stdio.h>

#include<stdlib.h>

Main()

{int*a,*b,*c;

a=b=c=(int*)malloc(sizeof(int));

*a=l;*b=2,*c=3;

a=b;

printf("%d,%d,%d\n”,*a,火b,*c);

)

程序運行后的輸出結果是

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

(38)有以下程序

#include<stdio.h>

main()

{ints,t,A=10;

doubleB=6;

s=sizeof(A);

t=sizeof(B);

printf("%d,%d\n",s.t);

)

在VC6平臺上編譯運行,程序運行后的輸出結果是

A)2,4B)4,4C)4,8D)10,6

(39)若有以下語句

TypedefstructS

(intg;charh;}T;

以下敘述中正確的是

A)可用S定義結構體變量B)可用T定義結構體變量

C)S是struct類型的變量D)T是structS類型的變量

(40)有以下程序

#include<stdio.h>

main()

{shortc=124;

c=c;

printf("%d\n"、C);

)

若要使程序的運行結果為248,應在下劃線處填入的是

A)?2B)1248C)&0248D)?1

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

請將每空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。

(1)一個棧的初始狀態(tài)為空。首先將元素5,432,1依次入棧,然后退棧一次,再將元素A,

B,C,D依次入棧,之后將所有元素全部退棧,則所有元素退棧(包括中間退棧的元素)的

順序為[1]

(2)在長度為n的線性表中,尋找最大項至少需要比較【2】次。

(3)一棵二叉樹有10個度為1的結點,7個度為2的結點,則該二叉樹共有【3】個結

點。

(4)僅由順序、選擇(分支)和重復(循環(huán))結構構成的程序是[4]程序。

(5)數(shù)據(jù)庫設計的四個階段是:需求分析,概念設計,邏輯設計【5】。

(6)以下程序運行后的輸出結果是[6]?

#include<stdio.h>

main()

{inta=200,b=010;

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

)

(7)有以下程序

#include<stdio.h>

main()

{intx,Y;

scanf(''%2d%ld",&x,&y);

print""%d\n”,x+y);

)

程序運行時輸入:1234567程序的運行結果是[71

(8)在C語言中,當表達式值為0時表示邏輯值“假”,當表達式值為【8】時表示邏輯

值“真”。

(9)有以下程序

#include<stdio.h>

main()

{inti,n[]={0,0,0,0,0};

for(i=l;iv=4;i++)

{n[i]=n[i-l]*3+l;

w

printf(%d",n[i]);

}

)

程序運行后的輸出結果是[9],

(10)以下fun函數(shù)的功能是:找出具有N個元素的一維數(shù)組中的最小值,并作為函數(shù)

值返回。請?zhí)羁铡?設N已定義)

intfun(intx[N])

{inti,k=0;

for(i=0;i<N;I++)

if(x[i]

returnx[kJ;

)

(11)有以下程序

#include<stdio.h>

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

main()

{intm=l,n=2,*r=&m;

r=f(r,&n);

printf(n%d\n”,*r);

}

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

{return(*p>*q)?p:q;}

程序運行后的輸出結果是[11]

(12)以下fun函數(shù)的功能是在N行M列的整形二維數(shù)組中,選出一個最大值作為函數(shù)

值返回,請?zhí)羁铡?設M?N已定義)

intfun(inta[N][M))

{inti,j,row=0,col=0;

for(i=0;i<N;I++)

for(j=0;j

if(a[i][j]>a[row][col]){row=i;col=j;}

return(【12】):

(13)有以下程序

#include<stdio.h>

main()

{intn[2],i,j;

for(i=0;i<2;i++)n[iJ=0;

for(i=0;i<2;i++)

for(j=0;j<2;j++)

n[j]=nFiJ+1;

printf(w%d\n”,n[l]);

}

程序運行后的輸出結果是[13]

(14)以下程序的功能是:借助指針變量找出數(shù)組元素中最大值所在的位置并輸出該最大值。

請在輸出語句中填寫代表最大值的輸出項。

#include<stdio.h>

main()

{inta(10],*p,*s;

for(p=a;p-a<10;p++)

scanf("%d",p);

for(p=a,s=a;p-a<10;p++)

if(*p>*s)S=P;

printf("max=%d\n,\[14]);

)

(15)以下程序打開新文件f.txt,并調用字符輸出函數(shù)將a數(shù)組中的字符寫入其中,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{[15]*fp;

chara[5]={'『J2-3:4"'5"i;

fp=fopen("f.txt","w");

for(i=0;i<5;i++)fputc(a[i],fp);

lose(fp);

)

2010年3月二級c語言筆試真題

一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分。共70分)

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

在答題卡上,答在試卷上不得分。

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

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

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

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

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

(2)算法的時間復雜度是指

A)算法的執(zhí)行時間B)算法所處理的數(shù)據(jù)量

C)算法程序中的語句或指令條數(shù)D)算法在執(zhí)行過程中所需要的基本運算次數(shù)

(3)軟件按功能可以分為:應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)

軟件的是

A)編輯軟件B)操作系統(tǒng)C)教務管理系統(tǒng)D)瀏覽器

(4)軟件(程序)調試的任務是

A)診斷和改正程序中的錯誤B)盡可能多地發(fā)現(xiàn)程序中的錯誤

C)發(fā)現(xiàn)并改正程序中的所有錯誤D)確定程序中錯誤的性質

(5)數(shù)據(jù)流程圖(DFD圖)是

A)軟件概要設計的工具B)軟件詳細設計的工具

C)結構化方法的需求分析工具D)面向對象方法的需求分析工具

(6)軟件生命周期可分為定義階段,開發(fā)階段和維護階段。詳細設計屬于

A)定義階段B)開發(fā)階段C)維護階段D)上述三個階段

(7)數(shù)據(jù)庫管理系統(tǒng)中負責數(shù)據(jù)模式定義的語言是

A)數(shù)據(jù)定義語言B)數(shù)據(jù)管理語言C)數(shù)據(jù)操縱語言D)數(shù)據(jù)控制語言

(8)在學生管理的關系數(shù)據(jù)庫中,存取?個學生信息的數(shù)據(jù)單位是

A)文件B)數(shù)據(jù)庫C)字段D)記錄

(9)數(shù)據(jù)庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示,它屬于數(shù)

據(jù)庫設計的

A)需求分析階段B)邏輯設計階段

C)概念設計階段D)物理設計階段

(10)有兩個關系R和T如下:

L5L

則由關系R得到關系T的操作是

A)選擇B)投影C)交D)并

(11)以下敘述正確的是

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

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

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

D)C語言中除了main函數(shù),其他函數(shù)不可以作為單獨文件形式存在

(12)以下關于C語言的敘述中正確的是

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

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

C)在C語言算術的書寫中,運算符兩側的運算數(shù)類型必須一致

D)C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示

(13)以下C語言用戶標示符中,不合法的是

A)_lB)AaBcC)a_bD)a~b

(14)若有定義:doublea=22;inti=0,k=18;則不符合C語言規(guī)定的賦值語句是

A)a=a++,i++B)i=(a+k)<=(i+k)C)i=a%llD)i=!a

(15)

#include<stdio.h>

Voidmain()

{chara,b,c,d;

scanf("%c%c'',&a,&b);

c=getchar();

d=getchar();

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

)

當執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第一列開始,<CR>代表回車,注意:回車是一個字

符)12<CR>34<CR>則輸出結果是:

A、1234B、12C、12D、12

334

16、以下關于C語言數(shù)據(jù)類型使用的敘述中錯誤的是:

A、若要準確無誤的表示自然數(shù),應使用整數(shù)類型。

B、若要保存帶有多位小數(shù)的數(shù)據(jù),應使用雙精度類型。

C、若要處理如“人員信息”等含有不同類型的相關數(shù)據(jù),應自定義結構體類型。

D、若只處理”真”和“假"兩種邏輯值,應使用邏輯類型。

17、若a是數(shù)值類型,則邏輯表達式(a==l)II(a!=l)的值是:

A、1B、0C、2D、不知道a的值,不能確定

18、以下選項中與if(a==l)a=b;elsea++;語句功能不同的switch語句是:

A、switch(a)B、switch(a==l)

{casel:a=b;break;{caseO:a=b;break;

default:a++;case1:a++;

))

C、switch(a)D^switch(a==l)

{default:a++;break;{casel:a=b;break;

easel:a=b;case0:a++;

}

19、有如下嵌套的if語句

if(a<b)

if(a<c)k=a;

elsek=c;

else

if(b<c)k=b;

elsek=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:c):((b<c)?b:c);D、k=(a<b)?a:b;k=(a<c)?a;c

(20)有以下程序

#include<stdio.h>

main()

{inti,j,m=l;

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

{ford=3;j>0;j-)

{if(i*j>3)break;

)

)

printf(,,m=%d\nv,m)

}

程序運行后的輸出結果是

(A)m=6(B)m=2(C)m=4(D)m=5

(21)有以下程序

#includes<stdio.h>

main()

{inta=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的初值為八進制數(shù)

#include<stdio.h>

main()

{intk=011;

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

程序運行后的輸出結果是

(A)12(B)ll(C)10(D)9

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

A)char*s;s=''Olympic”;B)chars[7];s="01ympic”;

C)char*s;s={"Olympic"};D)chars[7];s={"Olympic''};

(24似卜關于return語句的敘述中正確的是

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

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

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

D)沒有return語句的自定義函數(shù)在執(zhí)行結束時不能返回到調用處

(25)下列選項中,能夠正確定義數(shù)組的語句是

A)intnuml0..2008J;B)intnum[];

C)intN=2008;D)#defineN2008

intnum[NJ;intnumlNJ;

(26)有以下程序

#include<stdio.h>

voidfun(charge,intd)

{*c=*c+l;

d=d+l;

}

main()

{charb=,a\a=,A,;

fun(&b,a);

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

}

程序運行后的輸出結果是

A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B

(27)若有定義int(*pt)⑶;,則下列說法正確的是

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

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

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

D)定義了一個名為pt的指針變量,它可以指向每行有三個整數(shù)元素的二維數(shù)組

(28)設有定義doublea[10],*s=a;,一下能夠代表數(shù)組元素a[3]的是

A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3

(29)有以下程序

#include<stdio.h>

main()

{inta[5]={l,2,3,4,5},b[5]={0,2,l,3,0},is=0

for(i=0;i<5;i++)

s=s+a[b[i]];

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

}

程序運行后的輸出結果是

A)6B)10C)11D)15

30)有以下程序

#include<stdio.h>

main()

{intb[3][3]={0,l,2,0,l,2,0,l,2},i,j,t=l;

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

For(j=i;j<=i;j++)

t+=b[iJlb|j][i]];

Printf("%d\n",t);

程序運行后的輸出結果是

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

(31)若有以下定義和語句A

charsl[10]="abed!",*s2=nnl23\V;

printf(H%d%d\nn,strlen(s1),strlen(s2));

則輸出結果是

A)55B)105C)107D)58

(32)有以下程序

#include<stdio.h>

#defineN8

voidfun(int*x,inti)

{*x=*(x+i);}

main()

{inta[N]={l,2,3,4,5,6,7,8},i;

fun(a,2);

for(i=0;i<N/2);i++)

{printfCf%d\a[i]);}

printfC'Xn*');

)

程序運行后的輸出結果是

A)1313B)2234C)3234D)1234

(33)有以下程序

#include<studio.h>

intf(intt[],intn);

main()

{inta[4]={l,2,3,4},s;

s=f{a,4};

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

}

intf(intt[],intn)

{if(n>0)returnt[n-l]+f(t,n-l);

elsereturn0;

程序運行后的輸出結果是

)4B)10C)14D)6

(34)有以下程序

#include<studio.h>

intfun()

{taticintx=1;

x*=2;returnx;}

main()

{intI,s=l;

or(i=1;i<=2;i++)s=fun();

rintff,%d\n,,,s);}

程序運行后的輸出結果是

A)0B)1C)4D)8

(35)以下程序

#include<stdio.h>

#defineSUB(a)(a)-(a)

main()

{inta=2,b=3,c=5,d;

d=SUB(a+b)*c;

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

)

程序運行后的結果是

A)0B)-12C)-20D)10

(36)沒有定義

structcomplex

{intreal,unreal;}

datal={l,8},data2;

則以下賦值語句中的錯誤的是

A)data2=datal;B)data2=(2,6);

C)data2.realI=datal.real;D)data2.real=datal.unreal;

(37)有以下程序

#include<studio.h>

#include<string.h>

structA

{inta;charb[10];doublec;};

voidf(structAt);

main()

{structAa={1001,“ZhangDa”,1098.0};

f(a);pringt(,,%d,%s,%6.1f\n'',a.a,a.b,a.c);

}

voidf(structAt)

{t.a=1002;strcpy(t.b,"ChangRong'');t.c=1202.0;}

程序運行后的輸出結果是

A)100l,ZhangDa,1098.0B)1002,ChangRong,1202.0

C)1001,ChangRong,1098.0D)1002,ZhangDa,1202.0

(38)有以下定義和語句

structworkers

{intnum;charname[20];harc;

struct

{intday;intmonth;intyear;}s;

);

structworkersw,*pw;

pw=&w

能給w中year成員賦1980的語句是

A)*pw.year=1980;B)w.year=1980;

C)pw->year=1980;D)w.s.year=1980;

(39)有以下程序

#include<stdio.h>

main()

{inta=2,b=2,c=2;

printf(''%d\n”,a/b&c);

)

程序運行后的結果是

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

(40)以下程序

#include<stdio.h>

main()

{FILE*fp;charstr[10];

fp=fopen("myfile.dat",‘'w'');

fputs("abc”,fp);fclose(fp);

fp=fopen(''myfile.dat''Ja+'');

rewind(fp,”gd”,28);

rewind(fp);

fscanf(fp,"gs'',str);puts(str);

fclose(fp);

)

程序運行后的輸出結果是

A)abcB)28cC)abc28D)因類型不一致而出錯

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

請將每空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。

(1)一個隊列的初始狀態(tài)為空,先將元素A,CB,C,D,E,F,5,4,3,2,1依次入隊,然后再依次退隊,

則元素退隊的順序為__。

(2)設某循環(huán)列隊的容量為50,如果頭指針front-45(指向隊頭元素的前一位置),尾指針

reai^lO(指向隊尾元素),則該循環(huán)隊列中共有個元素。

(3)設二叉數(shù)如下:

A

的/\

BC

/\

DF

\/\

EGH

對該二叉樹進行后序遍歷的結果為

(4)軟件是、數(shù)據(jù)和文檔的集合。

(5)有一個學生選課的關系,其中學生的關系模式為:學生(學號,姓名,班級,年齡),

課程的關系模式為:課程(課號,課程名,學時),其中兩個關系模式的鍵分別是學好和課

號,則關系模式選課可以定義為:選課(學號,課號,成績)。

(6)設x為int型變量,請寫出一個關系表達式,用以判斷x同時為3和7

的倍數(shù)時,關系表達式的值為真。

(7)有以下程序

#include<stdio.h>

main()

{inta=l,b=2,c=3,d=0;

if(a=l)

if(b!=2)

if(c!=3)d=l;

elsed=2;

elseif(c!=3)d=3;

elsed=4;

elsed=5;

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

)

程序運行后的輸出結果是:o

(8)有以下程序

#include<stdio.h>

main()

{intm,n;

scanf(,,%d%d,,,&m,&n);

while(m!=n)

{while(m>n)m=m-n;

while(m<n)n=n-m;

)

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

)

程序運行后,當輸入1463V回車〉時,輸出結果是

(9)有以下程序

#include<stdio.h>

main()

{intI,j,a[][3]={l,2,3,4,5,6,7,8,9};

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

for(j=I;j<3;j++)printtf(''%d",a[i][j]);

printf("\n");

)

程序運行后的輸出結果是

(10)有以下程序

#include<stdio.h>

main()

{int[]={l,2,3A5,6},*k[3],i=0;

while(i<3)

{k[i]=&a[2*i];

i++;}

}程序運行后的輸出結果是

(11)有以下程序

#include<stdio.h>

main()

{inta[3][3]={{l,2,3},{4,5,6},{7,8,9)};

intb[3]={0},i;

for(i=0;i<3;i++)b[i]=a[i][2]+a[2][i];

for(i=0;i<3;i++)printf("%d'',b[i]);

printf(,,\n,,);

)

程序運行后的結果是

(12)有以下程序

#include<stdio.h>

#include<string.h>

voidfun(char*str)

(

chartemp;intn,i;

n=strlen(str);

temp=str[n-l];

for(i=n-l;i>0;i-)str[i]=str[i-l];

str[0]=temp;

)

main()

{chars[50];

scanf(,,%s,,,s);

fun(s);

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

)

程序運行后輸入:abcdefv回車〉,則輸出結果是

13、以下程序的功能是:將值為三位正整數(shù)的變量x中的數(shù)值按照個位、十位、百位的順

序拆分并輸出。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{intx=256;

printf(,,%d-%d-%d\n",,x/10%10,x/100);

)

14、以下程序用以刪除字符串中的所有的空格,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[100]={our.tercherteachclanguage!”};inti,j;

for(i=j=O;s[i]!=<\O,;i++)

if(s[i]!=4'){s[j]=s[i];j++;}

s[jJ=;

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

(15)以下程序功能是:借助指針變量找出數(shù)組元素中的最大值及其元素的下標值。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[10],*p,*s;

for(p=a;p-a<l0;p++)scanf("%d'',p);

for(p=a,s=a;p-a<10;p++)if(*p>*s)s=;

printf(Mindex=%d\n,\s-a);

2009年9月全國計算機等級考試二級筆試試卷

C語言程序設計(考試時間90分鐘,滿分100分)

一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)

(1)下列數(shù)據(jù)結構中,屬于非線性結構的是

A)循環(huán)隊列B)帶鏈隊列C)二叉樹D)帶鏈棧

(2)下列數(shù)據(jù)結果中,能夠按照“先進后出”原則存取數(shù)據(jù)的是

A)循環(huán)隊列B)棧C)隊列D)二叉樹

(3)對于循環(huán)隊列,下列敘述中正確的是

A)隊頭指針是固定不變的B)隊頭指針一定大于隊尾指針

C)隊頭指針一定小于隊尾指針

D)隊頭指針可以大于隊尾指針,也可以小于隊尾指針

(4)算法的空間復雜度是指

A)算法在執(zhí)行過程中所需要的計算機存儲空間

B)算法所處理的數(shù)據(jù)量

C)算法程序中的語句或指令條數(shù)

D)算法在執(zhí)行過程中所需要的臨時工作單元數(shù)

(5)軟件設計中劃分模塊的一個準則是

A)低內(nèi)聚低耦合B)高內(nèi)聚低耦合

C)低內(nèi)聚高耦合D)高內(nèi)聚高耦合

(6)下列選項中不屬于結構化程序設計原則的是

A)可封裝D)自頂向下C)模塊化D)逐步求精

(7)軟件詳細設計產(chǎn)生的圖如下:

該圖是

A)N-S圖B)PAD圖

C)程序流程圖D)E-R圖

(8)數(shù)據(jù)庫管理系統(tǒng)是

A)操作系統(tǒng)的一部分B)在操作系統(tǒng)支持下的系統(tǒng)軟件

C)一種編譯系統(tǒng)D)一種操作系統(tǒng)

(9)在E-R圖中,用來表示實體聯(lián)系的圖形是

A)橢圓圖B)矩形C)菱形D)三角形

A)選擇B)投影C)交D)并

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

A)程序設計的任務就是編寫程序代碼并上機調試

B)程序設計的任務就是確定所用數(shù)據(jù)結構

C)程序設計的任務就是確定所用算法

D)以上三種說法都不完整

(12)以下選項中,能用作用戶標識符的是

A)voidB)8_8C)_0_D)unsigned

(13)閱讀以下程序

#include

main()

{intcase;floatprintF;

printf(“請輸入2個數(shù):”);

scanf("%d%f',&case,&pjrintF);

printf("%d%f\n,,,case,printF);

}

該程序編譯時產(chǎn)生錯誤,其出錯原因是

A)定義語句出錯,case是關鍵字,不能用作用戶自定義標識符

B)定義語句出錯,printF不能用作用戶自定義標識符

C)定義語句無錯,scanf不能作為輸入函數(shù)使用

D)定義語句無錯,printf不能輸出case的值

(14)表達式:(int)((double)9/2)-(9)%2的值是

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

15)若有定義語句:intx=10;,則表達式x-=x+x的值為

A)-20B)-10C)0D)10

(16)有以下程序

#include

main()

{inta=1,b=0;

printf("%d,”,b=a+b);

printf("%d\n",a=2*b);}

程序運行后的輸出結果是

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

17)設有定義:inta=l,b=2,c=3;,以下語句中執(zhí)行效果與其它三個不同的是

A)if(a>b)c=a,a=b,b=c;B)if(a>b){c=a,a=b,b=c;}

C)if(a>b)c=a;a=b;b=c;D)if(a>b){c=a;a=b;b=c;}

(18)有以下程序

#include

main()

{intc=0,k;

for(k=l;k<3;k++)

switch(k)

{default:c+=k

case2:c++;break;

case4:c+=2;break;

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

)

程序運行后的輸出結果是

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

(19)以下程序段中,與語句:k=a>b?(b>c?l:0):0;功能相同的是

A)if((a>b)&&(b"))k=l;

elsek=0;

B)if((a>b)ll(b>c)k=l;

elsek=0;

C)if(a<=b)k=0;

elseif(b<=c)k=l;

D)if(a>b)k=1;

elseif(b>c)k=l;

elsek=0;

20)有以下程序

#include

main()

{chars[]={<<012xy,,};inti,n=0;

for(i=0;s[i]!=0;i++)

if(s[i]>=,a,&&s[i]<=,z,)n++;

printf(<4%d\nv,n);}

程序運行后的輸出結果是

A)0B)2C)3D)5

(21)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論