




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2007年四月計算機二級試題
一選擇題
(1)下列敘述中正確的是
A)算法的效率只與問題的規模有關,而與數據的存儲結構無關
B)算法的時間復雜度是指執行算法所需要的計算工作量
O數據的邏輯結構與存儲結構是一一對應的
D)算法的時間復雜度與空旬復雜度一定相關
(2)在結構化程序設計中,模塊劃分的原則是
A)各模塊應包括盡量多的功能
B)各模塊的規模應盡量大
O各模塊之間的聯系應盡量緊密
D)模塊內具有高內聚度、模塊間具有低耦合度
(3)下列敘述中正確的是
A)軟件測試的主要目的是發現程序中的錯誤
B)軟件測試的主要目的是確定程序中錯誤的位置
C)為了提高軟件測試的效率,最好由程序編制者自己來完成軟件測試的工作
D)軟件測試是證明軟件沒有錯誤
(4)下面選項中不屬于面向對象程序設計特征的是
A)繼承性B)多態性C)類比性D)封閉性
(5)下列對列的敘述正確的是
A)隊列屬于非線性表
B)隊列按“先進后出”原則組織數據
C)隊列在隊尾刪除數據
D)隊列按“先進先出”原則組織數據
(6)對下列一又樹
進行前序遍歷的結果為
A)DYBEAFCZXB)YDEBFZKCA
C)ABDYECFXZD)ABCDEFXYZ
(7)某二叉樹中有n個度為2的結點,則該二叉樹中的葉子結點為
A)n+1B)n-1C)2nD)n/2
(8)在下列關系運算中,不改變關系表中的屬性個數但能減少元組個數的是
A)并B)交C)投影D)笛卡兒乘積
(9)在E-R圖中,用來表示實體之間聯系的圖形是
A)矩形B)橢圓形C)菱形D)平行四邊形
(10)下列敘述中錯誤的是
A)在數據庫系統中,數據的物理結構必須與邏輯結構一致
B)數據庫技術的根本目標是要解決數據的共享問題
C)數據庫設計是指在已有數據庫管理系統的基礎上建立數據庫
D)數據庫系統需要操作系統的支持
(11)算法中,對需要執行的每?步操作,必須給出清楚、嚴格的規定,這屬于算法的
A)正當性B)可行性C)確定性D)有窮性
(12)下列敘述中錯誤的是
A)計算機不能直接執行用C語言編寫的源程序
B)C程序經C編譯后,生成后綴為.obj的文件是一個二進制文件
C)后綴為.obj的文件,經連接程序生成后綴為.exe的文件是一個二進制文件
D)后綴為.obj和.exe的二進制文件都可以直接運行
(13)按照C語言規定的用戶標識符命名規則,不能出現在標識符中的是
A)大寫字母B)連接符C)數字字符D)下劃線
(14)以下敘述中錯誤的是
A)C語言是一種結構化程序設計語言
B)結構化程序有順序、分支、循環三種基木結構組成
C)使用三種基本結構構成的程序只能解決簡單問題
D)結構化程序設計提倡模塊化的設計方法
(15)對于一個正常運行的C程序,以下敘述中正確的是
A)程序的執行總是從main函數開始,在main函數結束
B)程序的執行總是從程序的第一個函數開始,在main函數結束
C)程序的執行總是從main函數開始,在程序的最后一個函數中結束
D)程序的執行總是從程序的第一個函數開始,在程序的最后一個函數中結束
(16)設變量均己正確定義,若要通過scanf('%d%c%d%c",&al,&cl,&a2,&c2);語句為變
量al和a2賦數值1()和20,為變量cl和c2賦字符X和Y。以下所示的輸入形式正確的是
(注:□代表空格字符)
A)10DXC20DY〈回車〉B)1OLIX2OC1Y〈回車)
C)10QX(回車〉D)10X〈回車〉
20口丫(回車)20Y〈回車)
(17)若有代數式(其中e僅代表自然對數的底數,不是變量),則以下能夠正確表示該代
數式的C語言表達式是
A)sqrt(abs(n*x+e*x))B)sqrt(fabs(pow(n,x)+pow(x,e)))
C)sqrt(fabs(pow(n,x)+exp(x,e)))D)sqrt(fabs(pow(x,n
n)+exp(x)))
(18)設有定義:intk=0;:以下選項的四個表達式中與其他三個表達式的值不相同的是
A)k++B)k+=1C)++kDD)k+l
(19)有以下程序,其中卻表示按無呼號整數輸出
MainO
{unsignedintx=0xFFFF;/*x的初值為十六進制數*/
Printf(“加\n",x);
}
程序運行后的輸出結果是
A)-1B)65535C)32767D)0XFFFF
(20)設變量x和y均已正確定義并賦值,以下if語句中,在編譯時將產生錯誤信息的是
A)if(x++)B)if(x>y&y!=0);
C)if(x>y)x—D)if(y<0){;}
elsey++:elsex++;
(21)以下選項中,當x為大于1的奇數時,值為0的表達式
A)x%2==lB)x/2C)x%2!=0D)x%2==0
(22)以下敘述中正確的是
A)break語句只能用于switch語句題中
B)continue語句的作用是:使程序的執行流程跳出包含它的所有循環
C)break語句只能用在循環體內和switch語句體內
D)在循環體內使用break語句和continue語句的作用用同
(23)有以下程序
Main()
{intk=5,n=0;
do
{switch(k)
{easel:case3:n+=l;break;
Default;n=0;k-;
Case2:cased:n+=2;k一;break;
)
PrintfC,n);
(while(k>0&&n<5);
}
程序運行后的輸出結果是
A)235B)()235C)02356D)2356
(24)有以下程序
mian()
{inti,j;
for(i=l;i<4;i++)
{for(j=i;j<4;j++)printfCM%d*%d=%d",i,j,i*j);
Printf(“\n”);
}
)
程序運行后的輸出結果是
*p=&n;
Printf(aInputn:");scanf(,&p);printf(^outputn:");
printfCM%d\n,r,p);
}
該程序試圖通過指針P為變量n讀入數據并輸出,但程序有多處錯誤,以下語句正確的是
A)intn,*p=NULL;B)*p=&n;C)scanf("%d",&p)D)printf(a%d\nw,p);
(31)以下程序中函數f的功能是:當flag為4時,進行有小到大排序;當flag為0時,進
行由大到小排序。
voidf(intb[],intn,intflag)
{inti,j,t;
for(i=0;ifor(j=i+l;jif(flag?b[i]>b[j]:b[i')
main()
{inta[10]={5,4,3,2,1,6,7,8,9,10},I;
f(&a[2],5,0);f(a,5,1);
for(i=0;i<10;i++)printfCM%d,wa[i]);
)
程序運行后的輸出結果是
A)1,2,3,4,5,6,7,8,9,10,B)3,4,5,6,7,2,1,8,9,10,
C)5,4,3,2,1,6,7,8,9,10,I))10,9,8,7,6,5,4,3,2,1,
(32)有以下程序
voidf(intb[])
{intI;
for(i=2;i<6;i++)b[i]*=2;
)
main()
{inta[10]={l,2,3,4,5,6,7,8,9,10},i;
f
for(i=0;i<10;i++)pr
intf(M%d,w,a[i]);
)
程序運行后的輸出結果是
A)1,2,3,4,5,6,7,8,9,10,B)1,2,6,8,10,12,7,8,9,10
C)1,2,3,4,10,12,14,16,9,1(),D)1,2,6,8,10,12,14,16,9,10,
(33)有以下程序
typedefstruct{intb,p;}A;
voidf(Ac)/*注意:c是結構變量名*/
{intj;
c.b+=l;c.p+=2;
}
main(){inti;
Aa={l,2);
f
ww
printf(%d,%d\n,a.b:a.p);
)
程序運行后的輸出結果是
A)2,3B)2,4C)1,4D)1,2
(34)有以下程序
main()
{inta[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1J},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+l;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/
for(i=0;i<4;i++)printf(w%d,w,a[i][j]);
)
程序運行后的輸出結果是
A)1,6,5,7,B)8,7,3,1,C)4,7,5,2,D)l,6,2,1,
(35)有以下程序
mainO
{inta[4][4]=({1,4,3,2,},{8,6,5,7,},{3,7,2,5,),{4,8,6,1,}},i,k,t;
for(i=0;i<3;i++)
for(k=i+i;k<4;k++)if(a[i][i]for(i=0;i<4;i++)printf(w%d,w,a[0][i]);
}
程序運行后的輸出結果是
A)6,2,1,1,B)6,4,3,2,C)l,1,2,6,1))2,3,4,6,
(36)有以下程序
voidf(int*q)
{inti=0;
for(i〈5;i++)(*q)++;
}
mainO
{inta[5]={l,2,3,4,5),i;
f
for(i=0;i<5;i++)printf(u%d,w,a[i]);
}
程序運行后的輸出結果是
A)2,2,3,4,5,B)6,2,3,4:5,C)2,3,4,5,6,
(37)有以下程序
#include
mainO
{charp[20]=('b','c','d'},q[]="abc",r[]=wabcdcw;
Strcpy(p+strlen(q),r);strcat(p,q);
Printf(<<%d%d\n>,,sizeof(p),strlen(p));
}
程序運行后的輸出結果是
A)209B)99C)2011D)1111
(38)有以下程序
#includc
main()
{charp[20]=[b'c'd'},q[]="abc",r[]=wabcdew
strcat(p,r);Strcpy(p+strlen(q),q);
Printf(u%d\nw,sizeof(p));
)
程序運行后的輸出結果是
A)9B)6OilD)7
(39)有以下程序
#include
mainO
{charp[20]={'a','b','c','d'},q[]=wabc",r[]=wabcde";
Strcat(p,r);strcpy(p+strlen(q),q);
Printf(<<%d\n>,,strlen(p));
)
程序運行后的輸出結果是
A)9
B)6C)11D)7
else{inta=7;t+=a++;}
returnt+a++;
}
main()
{ints=a,i=0:
for(;i<2;i++〉s+=f(i);
printf("%d\n",s);
)
程序運行后的輸出結果是
A)24B)28032D)36
(43)有一個名為init.txt的文件,內容如下:
#defineIIDY(A,B)A/B
#definePRINT(Y)Printf(rty=%d\n.,Y)
有以下程序
^include"init.txt"
main()
{inta=l,b=2,c=3,d=4,k;
K=HDY(a+c,b+d);
PRINT(K);
)
下面針對該程序的敘述正確的是
A)編譯有錯B)運行出錯
C)運行結果為y=0D)運行結果為y=6
(44)有以下程序
MainO
{charch[]="uvwxyz”,*pc;
Pc=ch;printf(4<%c\n?,:*(pc+5));
}
程序運行后的輸出結果是
A)zB)0C)元素ch[5]地址D)字符y的地址
(45)有以下程序
structS{intn;inta[20];};
voidf(structS*P)
{inti,j,t;
for(i=0;in-1;i++)
for(j=j+l;jn-1;j++)
程序運行后的輸出結果是
A)3B)4C)5D)6
(49)有以下程序
#include
Main()
{FILE*fp;intI,a[6]={l,2,3,4,5,6};
fp=fopen(rtd2.dat","w");
fprintf(fp,%d%d\nw,a[0],a[l],a[2]);fprintf(fp,w%d%d\nw,a[3],a[4],a[5]);
fclose(fp);
fp=fopen(ad2.dat","r");
fscanf(fp,M"%d%d\n”,&k,&n);printf(w%d%d\nw,k,n);
fclose(fp);
)
程序運行后的輸出結果是
A)12B)1401234D)123456
(50)有以下程序
4include
main()
{flLE*fp;intI,a[6]={l,2,3,4,5,6k);
fp=fopen(<4d3.dat","w+b”);
fwrite(a,size(int),6,fp);
fseek(fp,sizeof(int)*3;SEEKSET);/*該語句使讀文件的位置指針從文件頭向后移動3個
int型數據*/
fread(a,sizeof(int),3,fp);fclose(fp);
for(i=0;i<6;i++)printf(u%d,w,a[i]);
}
程序運行后的輸出結果是
A)4,5,6,4,5,6,B)1,2,3:4,5,6,C)4,5,6,1,2,3,D)6,5,4,3,2,1,
二.填空題(每空2分,共40分)
請將每一個空的正確答案寫在答題卡[1]至[20]序號的橫線上,答在試卷上不得分。
注意:以命令關鍵字填空的必須寫完整
(1)在深度為7的滿二叉樹中,度為2的結點個數為_________。
(2)軟件測試分為白箱(盒)測試和黑箱(盒)測試,等價類劃分法屬于測
試。
(3)在數據庫系統中,實現各種數據管理功能的核心軟件稱為數據庫管理系統o
(4)軟件生命周期可分為多個階段,一般分為定義階段、開發階段和維護階段。編碼和測
試屬于階段。
(5)在結構化分析使用的數據流圖(DFD)中,利用對其中的圖形元素進行確
切解釋。
(6)執行以下程序后的輸出結果是。
main()
{inta=10;
a=(3*5,a+4);printf(rta=%d\nw,a);
)
(7)當執行以下程序時,輸入1234567890〈回車),則其中while循環體將執行
___________次。
#include
main()
{charch;
While((ch=getchar())==,O')printf(;
}
(8)以下程序的運行結果是o
intk=0;
voidfun(intm)
{m+=k;k+初;printf(am=%d\nk=%d”,m,k++);}
mainO
{inti=4;
fun(i++);printf(wi=%dk=%d\n",i,k);
}
(9)以下程序的運行結果是__________o
mainO
{inta=2,b=7,c=5;
Switch(a>0)
{case1:switch(b<0)
{case1:switch(;break;
Case2:printf(uw;break;
}
Case0:switch(c==5)
{case0:printf("*"j;break;
Ccise1:printf("#");break;
Case2:printf(“$");break;
}
default:printf(
}
Printf(“\n”);
}
(10)以下程序的輸出結果是
#include
mainO
{printf(w%d\nw,strlsn(rtIBM\nO12\l\\,*));
)
(11)已定義charch="$";inti=l,j;執行j=!ch&&i++以后,i的值為
(12)以下程序的輸出結果是
#include
main()
{chara□:{‘'1'\2'\3''4'\0'};
Printf(u%d%d\n”,sizcof,srelen);
)
(13)設有定義語句:inta[][3]={{0},{l},{2}};,則數組元素的值為________
(14)以下程序的功能是:求出數組x中各相鄰兩個元素的和,依次存放到a數組中,然后
輸出,請填空。
Main()
{intx[10],a[9],I;
For(i=0;i<10;i++)
Scanf(w%dM,&x[i]);
For(i<10;i++)
A[il]=x[i]?
For(i=0;i<9;i++)
Printf(“%d",a[i]);
Printf("\n");
(15)以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數中的最
大值,輸出到屏幕上,請填空:
MainO
{intx,y,z,max,*px,*py.*pz,*pmax;
Scanf("%d%d%d",&x,&y.&z);
Px=&x;
Py=&y;
Pz=&z;
Pmax=&max;
Ir(*pmax<*py)*pmax=*py;
If(*pmax<*pz)*pmax=*pz;
Printf(“max=%d\n",max);
}
(16)以下程序的輸出結果是
Intfun(int*x,intn)
{if(n==0)
Returnx[0];
Else
returnx[0]+fun(x+1,n-1);
}
Main()
{inta[]={l,2,3,4,5,6,7};
Printf(<<%d\nw,fun(a,3));
)
(17)以下程序的輸出結果是
#include
MainO
{char*sl,*s2,m;
Sl=s2=(char*)malloc(sizeof(char));
*sl=15;
*s2=20;
M=*sl+*s2;
Printf("%d\n",m);
)
(18)設有說明
StructDATE{intyear;intmonth;intday;};
請寫出一條定義語句,該語句定義d為上述結構體變最,并同時為其成員year、month,day
依次賦初值2006、10、1:;
(19)設有定義:FILEMw;,請將以下打開文件的語句補充完整,以便可以向文本文件
readme.txt的最后續寫內容。
fw=fopen(areadme.txtw,"")
2007年4月二級C語言筆試答案
選擇題
1-5:BDACD6-10:CABCA11-15:CDBCA16-20:DCABC21-25:DCABA
26-30:ADCDA31-35:BBDDB36-40:DCACA41-45:DADAA46-50:ACBDA
填空題
1、632、黑盒3、數據庫管理系統4、開發
5、數據字典6、a=14
7^0,8、m=4k=4i=5k=5
9、#&
10、9
11、1
12、54
13、0
14、i=l
15、x[i-l]
16>*pmax=*px
17、10
18、40
19、structDATEd={2006,10,1)
20、a
2007年9月全國計算機等級考試二級C語言筆試試題及答案
一、選擇題((1)-(10)每題2分,(11)-(50)每題1分.共60分))
下列各題A)、B)、C)、D)四個選項中,只有一個是正確的,請將正確選項涂寫在答題卡上,
答在試卷上不得分。
(1)軟件是指
A)程序B)程序和文檔
C)算法加數據結構D)程序、數據和相關文檔的集合
(2)軟件調試的目的是
A)發現錯誤B)改正錯誤
C)改善軟件的性能D)驗證軟件的正確性
(3)在面向對象方法中,實現信息隱蔽是依靠
A)對象的繼承B)對象的多態
C)對象的封裝D)對象的分類
(4)下列敘述中,不符合良好程序設計風格的是
A)程序的效率第一,清晰第二B)程序的可讀性好
C)程序中有必要的注釋D)輸入數據前要有提示信息
(5)下列敘述中正確的是
A)程序執行的效率與數據的存儲結構密切相關
B)程序執行的效率只取決于程序的控制結構
C)程序執行的效率只取決于所處理的數據量
D)以上三種說法都不對
(6)下列敘述中正確的是
A)數據的邏輯結構與存儲結構必定是一一對應的
B)由于計算機存儲空間是向量式的存儲結構,因此,數據的存儲結構一定是線性結構
C)程序設計語言中的數組一般是順序存儲結構,因此,利用數組只能處理線線結構
D)以上三種說法都不對
(7)冒泡排序在最壞情況下的比較次數是
A)n(n+1)/2B)nlog2nC)n(n-1)/2D)n/2
(8)一棵二叉樹中共有70個葉子結點與80個度為1的結點,則該二叉樹中的總結點數為
A)219B)221C)229D)231
(9)下列敘述中正確的是
A)數據庫系統是?個獨立的系統,不需要操作系統的支持
B)數據庫技術的根本目標是要解決數據的共享問題
C)數據庫管理系統就是數據庫系統
D)以上三種說法都不對
(10)下列敘述中正確的足
A)為了建立一個關系,首先要構造數據的邏輯關系
B)表示關系的二維表中各元組的每一個分量還可以分成若干數據項
C)一個關系的屬性名表稱為關系模式
D)一個關系可以包括多個二維表
(IDC語言源程序名的后綴是
A).exeB).CC).objD).cp
(12)可在C程序中用做用戶標識符的一組標識符是
A)andB)DateC)HiD)case
_2007y-m-dDr.TomBigl
(13)以下選項中,合法的一組C語言數值常量是
A)028B)12.C).177D)0x8A
.5e-30Xa234cl.510,000
-Oxf4.5e0Oabc3.e5
(14)以下敘述中正確的是
A)C語言程序將從源程序中第一個函數開始執行
B)可以在程序中由用戶指定任意一個函數作為主函數,程序將從此開始執行
C)C語言規定必須用main作為主函數名,程序將從此開始執行,在此結束
D)main可作為用戶標識符,用以命名任意一個函數作為主函數
(15)若在定義語句:inia,b,c,*pWc;之后,接著執行以下選項中的語句,則能正確執行
的語句是
A)scanf(^d*,a,b,c);B)scanf(*%d%d%d*,a,b,c);
C)scanfp);D)scanf&p);
(16)以下關于long,int和short類型數據占用內存大小的敘述中正確的是
A)均占4個字節B)根據數據的大小來決定所占內存的字節數
C)由用戶自己定義D)由C語言編譯系統決定
(17)若變量均已正確定義并賦值,以下合法的C語言賦值語句是
A)x=y==5;B)x=n%2.5;C)x+n=I;D)x=5=4+l;
(18)有以下程序段
intj;floaty;charname[50];
scanf(,,%2d%f%s,,?&j,&y,name);
當執行上述程序段,從健盤上輸入555667777abe后,y的值為
A)55566.0B)566.0C)7777.0D)566777.0
(19)若變量已正確定義,有以下程序段
i=0;
doprintf("%d,”,i);while(i++);
printf("%d\n",i)
其輸出結果是
A)0,0B)0,1C)1,1D)程序進入無限循環
(20)有以下計算公式
Vx(x20)
{V-x(x<0)
若程序前面已在命令中包含math,h文件,不能夠正確計算上述公式的程戶段足
A)if(x>=0)y=sqrt(x);B)y=sqrt(x)
elsey=sqrt(-x);if(x<0)y=sqrt(-x);
C)if(x>=0)y=sqrt(x);D)y=sqrt(x>=0?x:-x);
If(x<0)y=sqrt(~x);
(21)設有條件表達式:(EXP)?i++;j—,則以下表達式中(EXP)完全等價的是
A)(EXP==0)B)(EXP!=0)C)(EXP==1)D)(EXP!=1)
(22)有以下程序
itincludc
main()
{inty=9;
for(y>0;y一)
if(y%3==0)printfC%d\—y);
1
程序的運行結果是
A)741B)963C)852D)875421
(23)已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c
中的字符是否為大寫字母的表達式是
A)isupper(c)B),A'<=c<=,Z>
C),A'<=Mc<=fZ'D)c<=(<2,-32)&&(匕'-32)<=c
(24)有以下程序
#inc1ude
mainO
{inti,j,m=55;
for(i=l;i<=3;i++)
for(j=3;j<=i;j++)
printf("%d\n",m);
)
程序的運行結果是
A)0B)1C)2D)3
(25)若函數調用時的實參為變量時,以下關于函數形參和實參的敘述中正確的是
A)函數的實參和其對應的形參共占同一存儲單元
B)形參只是形式上的存在,不占用具體存儲單元
C)同名的實參和形參占同一存儲單元
0)函數的形參和實參分別占用不同的存儲單元
(26)已知字符‘A'的ASCII代碼值是65,字符變量cl的值是'A,,c2的值是'D\執
行語句printf(*%d,%d”,cl,c2-2);后,輸出結果是
A)A,BB)A,68C)65,66D)65,68
(27)以下敘述中錯誤的是
A)改變函數形參的值,不會改變對應實參的值
B)函數可以返回地址值
C)可以給指針變量賦一個整數作為地址值
D)當在程序的開頭包含文件stdio.h時,可以給指針變量賦NULL
(28)以下正確的字符串常量是
A)"\\\"B)'abc,C)OlympicGcimesD)””
(29)設有定義:charp[]={'1'2'3'},*q=p;,以下不能計算出一個char型數據
所占字節數的表達式是
A)sizeof(p)B)sizeof(char)C)sizeof(*q)D)sizeof(p[0])
(30)有以下函數
intaaa(char*s)
{char*t=s;
while(*t++);
t—;
return(t-s);
)
以下關于aaa函數的功能敘述正確的是
A)求字符串s的長度B)比較兩個串的大小
C)將串s兔制到串tD)求字符串s所占字節數
(31)若有定義語句:inta[3][6]:,按在內存中的存放順序,a數組的第1()個元素是
A)a[0][4]B)a[l][3]C)a[0][3]D)a[l][4]
(32)有以下程序
ifinclude
voidfun(char**p)
{++p;printf("%s\rT,*p);}
main()
{char*a口:{“Morning","Aflernoon","Evening","Nighl"};
fun(a);
)
程序的運行結果是
A)AfternoonB)fternoonC)MorningD)orning
(33)若有定義語句:inta[2][3],*p[3];,則以下語句中正確的是
A)p=a;B)p[O]=a;C)p[O]=&a[l][2];D)p[l]=&a;
(34)有以下程序
Sinclude
voidfun(int*a,intn)/*fun函數的功能是將a所指數組元素從大到小排序*/
{intt,i,j;
for(i=0;ifor(j=i+l;jif(a)
mainO
{intc[10]={l,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for(i=0;i<10;i++)printfC%d,c);
prinlf;
)
程序運行的結果是
A)1,2,3,4,5,6,7,8,9,0,B)0,9,8,7,6,5,1,2,3,4,
00,9,8,7,6,5,4,3,2,1,1))1,2,3,4,9,8,7,6,5,(),
(35)有以下程序
^include
intfun(chars[])
(intn=0;
while(*s<=,9'&&*s>二'O'){n=10*n+*s->O';s++;}
return(n);
)
main()
{chars[10]=(,6,JrJ#J4,-91J(TJ*,};
printf(飛d\n〃,fun(s));
)
程序運行的結果是
A)9B)61490C)61D)5
(36)當用戶要求輸入的字符串中含有空格時,應使用的輸入函數是
A)scanf()B)getchar()C)gets()D)getc()
(37)以下關于字符串的敘述中正確的是
A)C語言中有字符串類型的常量和變量
B)兩個字符串中的字符個數相同時才能進行字符串大小的比較
C)可以用關系運算符對字符串的大小進行比較
D)空用一定比空格打頭的字符串小
(38)有以下程序:
Sinclude
voidfun(char*1,char*s)
{
while(*t!=())t++;
whi1e((*t++=*s++)!=0);
)
main()
charss[10]=waccw,aa[10]=wbbxxyy”;
fun(ss,aa);
printf(M%s,%s\nn,ss,aa);
)
程序運行結果是
A)accxyy,bbxxyyB)acc,bbxxyy
C)accxxyy,bbxxyyD)accbbxxyy,bbxxyy
(39)有以下程序
^include
#include
voidfun(chars[][10],intn)
(
chart;inti,j;
for(i=();ifor(j=i+l,j/*比較字符串的首字符大小,并交換字符串的首字符*/
if(s[0])>s[j][0]{t=s[0];s[0]=s[j][0];s[j][0]=t;}
}
main()
(
charss[5][10]={"bee",”bbcc","xy",“aaaacc""aabcc”}
fun(ss,5);printf(M%s.%s\n,",ss[0],ss[4]);
)
程序運行結果是
A)xy,aaaaccB)aaaacc.xy
C)xcc,aabccD)acc,xabcc
(40)在一個C語言源程序文件中所定義的全局變量,其作用域為:
A)所在文件的全部范圍B)所在程序的全部范圍
0所在函數的全部范圍D)由具體定義位置和extern說明來決定范圍
(41)有以下程序
^include
inta=l;
intf(intc)
{staticinta=2;
c=c+l;
return(a++)+c;}
main()
{inti,k=0;
for(i=0;i<2;i++){inta=3;k+=f(a);)
k+=a;
printf("%d\n",k);
)
程序運行結果是
A)14B)15
016D)17
(42)有以下程序
Sinclude
voidfun(intn,int*p)
{intfl,f2;
if(n==l|n=2)*p=l;
else
{fun(n-l,&f1);fun(n-2,&f2);
*p=fl+f2;
)
)
mainO
{ints;
fun⑶&s);printfs);
}
程序的運行結果是
A)2B)3C)4D)5
(43)若程序中有宏定義行用defineN100則以下敘述中正確的足
A)宏定義行中定義了標識符N的值為整數100
B)在編譯程序對C源程序進行預處理時用100替換標識符N
0對C源程序進行編譯時用100替換標識符N
【))在運行時用100替換標識符N
(44)以下關于typedef的敘述錯誤的是
A)用typedef可以增加新類型
B)typedef只是將已存在的類型用一個新的名字來代表
C)用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D)用typedef為類型說明一個新名,通常可以增加程序的可讀性
(45)有以下程序
#include
structtt
{intx;structtt*y;}*p;
structtta[4]={20,a+1.15,a+2,30,a+3,17,a);
mainO
{inti;
P=a;
for(i=l;i<=2;i++){printfC%d,\p->x);p=p->y;J
}
程序的運行結果是
A)20,30,B)30,17C)15,30,1))20,15,
(46)有以下程序
#include
#include
typedefstruct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",'m',85.0,90.0};inti;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++)a.score二b.score;
returna;
)
mainO
{STUc={"Qian",'f',95.0,92.0},d;
d=f(c);printf("%s,%c,%2.Of,%2.Of\n〃,d.name,d.sex,d.score[0],d.score[1]);
}
程序的運行結果是
A)Qian,f,95,92B)Qian,m,85,90C)Zhao,m,85,90D)Zhao,f,95,92
(47)設有以下定義
uniondata
{intdl;floatd2;)demo;
則下面敘述中錯誤的是
A)變量demo與成員d2所占的內存字節數相同
B)變量demo中各成員的地址相同
C)變量demo和各成員的地址相同
D)若給demo,dl賦99后,demo.d2中的值是99.0
(48)有以下程序
#include
main()
{inta=l,b=2,c=3,x;
,,,,
x=(ab)&c;printf(%d\ntx);
)
程序的運行結果是
A)0B)102D)3
(49)讀取二進制文件的函數調用形式為:frcad(buffer,size,count,fp);,其中buffer代表
的是
A)一個文件指針,指向待讀取的文件
B)一個整型變量,代表待讀取的數據的字節數
C)一個內存塊的首地址,代表讀入數據存放的地址
【))一個內存塊的字節數
(50)有以下程序
#include
main()
{FILE*fp;inta[10]={l,2,3,0,0),i;
fp=fopen("d2.dat,〃wb");
fwrite(a,sizeof(int),5.fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen(,zd2.dat","rb");
fread(a,sizeof(int),10:fp);
fclose(fp);
for(i=0;i<10;i++)printf(螺d〃,a);
)
程序的運行結果是
A)1,2,3,0,0,0,0,0,0,0,B)1,2,3,1,2,3,0,0,0,0,
C)123,0,0,(),0,123,0,0,0,0,D)l,2,3,0,0,1,2,3,0,0,
二、填空題(每空2分,共40分)
請將每一個空的正確答案寫在答題卡[1]至[20]序號的橫線上,答在試卷上不得分.
(1)軟件需求規格說明書應具有完整性、無歧義性、正確性、可驗證性、可修改性等特性,
其中最重要的」1].
(2)在兩種基本測試方法中,_[2]測試的原則之一是保證所測模塊中每一個獨立路
徑至少要執行一次.
(3)線性表的存儲結構主要分為順序存儲結構和鏈式存儲結構.隊列是一種特殊的線性表,
循環隊列是隊列的.[3]______存儲結構.
(5)在E-R圖中距形表示>5]_
(6)執行以下程序時輸入1234567,則輸出結果是」6].
#include
main()
{inta=l,b;
scanf("%2d%2d”,&a&b);printf(*%d%d\n,,?a,b);
)
(7)以下程序的功能是:輸出a、b、c三個變量中的最小值.請填空。
#include
main()
{inta,b,c,tl,t2;
scanfC%d%d%d",&a,&b,&c);
tl=at2=cprintf("%d\n",t2);
)
(8)以下程序的輸出結果是」9]______.
#include
mainO
{intn=12345,d;
while(n!=0){d=n%10;printfd);n/=10;}
)
(9)有以下程序段,且變量已正確定義和賦值
for(s=l.0,k=l;k<=n;k++)s=s+l.0/(k*(k+l));
printf(,,s=%f\n\n,,?s);
請填空,使下面程序段的功能為完全相同
s=l.0;k=l;
whileGtlO]_______){s=s+1.0/(k*(k+l));_[11];}
printf(z,s=%f\n\n,,?s);
(10)以下程序的愉出結果是,12]____.
^include
main()
{inti;
for(i=>a';i<'f';i++,i++)printfi-'a'+'A');
printf('\n");
}
(11)以下程序的輸出結果是一[13]______.
^include
#include
char*fun(char*t)
{char*p=t;
return(p+strlen(t)/2);
)
main()
{char*str="abcdefgh";
str=fun(str);
puts(str);
)
(12)以下程序中函數f的功能是在數組x的n個數(假定「個數互不相同)中找出最大最小數,
將其中最小的數與第一個數對換,把最大的數與最后一個數對換.請填空.
^include
viodf(intx[],intn)
{intpO,pl,i,j,t,m;
i=j=x[O];p0=pl=0;
for(m=0;m{if(x[m]>i){i=x[m];p0=m;)
elseif(x[m]}
t=x[pO];x[p0]=x[n-l];x[n-l]=t;
t=x[pl];x[pl]=_[14];_[15]=t;
)
main()
{inta[10],u;
for(u=0;u<10;u++)scanf&a);
f(a,10);
for(u=0;u<10;u++)printfa);
printf('\n");
)
(13)以下程序統計從終端輸入的字符中大寫字母的個數,num[O]中統計字母A的個數,rum[l]
中統計字母B的個數,其它依次類推.用#號結束輸入,請填空.
#include
#include
main()
{intnum[26]={0}?i;charc;
while((_[16])!=:#')
if(isupper(c))num[c-'A']+=_[17]_______;
for(i=0;i<26;i++)
Printfi+'A':num);
)
(14)執行以下程序的輸出結果是[18].
#include
main()
{inti,n[4]={l);
for(i=l;i<=3;i++)
{n=n[il]*2i1;printfn);}
)
(15)以下程序的輸出結果是一[19].
#include
^defineM5
^defineNM+M
main()
{intk;
k=N*N*5;printf("%d\n"k);
)
(16)函數main。的功能是:在帶頭結點的單鏈表中查找數據域中值最小的結點.請填空
#include
structnode
{intdata;
structnode*next;
);
intmin(structnode*first)/*指針first為鏈表頭指針*/
{strctnode*p;intm;
p=first->next;m=p->data;p=p->next;
for(;p!;NULL;p=_[20])
if(p->datadata;
returnm;
一、選擇題
1-10DBCADCCABD11?20BABCCDABBB21?30BCBBDCCDAA
31-40BDCDCCDDDD41-50AABADCDDCD
二、選擇題
1.無歧義性2.白盒3.順序4.ACBDFE1IGP5.實體6.1234
7.a:bc:tl8.543219.k<=nk++10.ACEll.efgh
12.x[0]x[0]13,c=getchar()114.371515.5516.p->next
2008年4月全國計算機等級考試二級筆試試卷
C語言程序設計
(考試時間90分鐘,滿分100分)
一、選擇題(共70分)
卜列各題A),B),C),D)四個選項中,只有一個選項是正確的,請將止確選項涂寫在
答題卡相應位置上,答在試卷上不得分。
(1)程序流程圖中指有箭頭的線段表示的是
A)圖元關系B)數據流C)控制流D)調用關系
(2)結構化程序設計的基本原則不包括
A)多態性B)自頂向下C)模塊化D)逐步求精
(3)軟件設計中模塊劃分應遵循的準則是
A)低內聚低耦合B)高內聚低耦合
C)低內聚高耦合D)高內聚高耦合
(4)在軟件開發中,需求分析階段產生的主要文檔是
A)可行性分析報告B)軟件需求規格說明書
C)概要設計說明書D)集成測試計劃
(5)算法的有窮性是指
A)算法程序的運行時間是有限的
B)算法程序所處理的數據量是有限的
C)算法程序的長度是有限的D)算法只能被有限的用戶使用
(6)對長度為n的線性表排序,在最壞情況下,比較次數不是n(n-1)/2的排序方法是
A)快速排序B)冒泡排序
C)直接插入排序D)堆排序
(7)下列關于棧的敘述正確的是
A)棧按“先進先出”組織數據B)棧按“先進后出”組織數據
C)只能在棧底插入數據D)不能刪除數據
(8)在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬于[C]
A)需求分析階段B)概念設計階段
C)邏輯設計階段D)物理設計階段
(9)有三個關系R、S和T如下:
T
BCD
a0k1
RS
BCD
a0k1
b1n1
BCD
f3h2
aOk1
n2x1
有關系R和S通過運算得到關系T,則所使用的運算為
A)并B)自然連接C)笛k爾積D)交
(10)設有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程
C(課號,課名),選課SC(學號,課號,成績),則表SC的關鍵字(鍵或碼)為
A)課號,成績B)學號,成績
C)學號,課號D)學號,姓名,成績
(11)以下敘述中正確的是
A)C程序中的注釋只能出現在程序的開始位置和語句的后面
B)C程序書寫格式嚴格,要求一行內只能寫一個語句
C)C程序書寫格式自由,一個語句可以寫在多行上
D)用C語言編寫的程序只能放在一個程序文件中
(12)以下選項中不合法的標識符是
A)printB)FORC)&aD)_00
(13)以下選項中不屬于字符常量的是
A),CB)"C"C)'\xCC0'D)'\072'
(14)設變量已正確定義并賦值,以下正確的表達式是
A)x=y*5=x+zB)int(15.8%5)
C)x=y+z+5,++yD)x=25%5.0
(15)以下定義語句中正確的是
A)inta=b=0;BJcharA=65+1,b='b';
CJfloata=1,*b=&a,*c=&b;D)doublea=0.0,b=1.1;
(16)有以下程序段
charch;intk;
ch='a';k=12;
printf("%c,%d,”,ch,ch,k);printf("k=%d\n",k);
已知字符a的ASCII十進制代碼為97,則執行上述程序段后輸出結果是
A)因變最類型與格式描述符的類型不匹配輸出無定值
B)輸出項與格式描述符個數不符,輸出為零值或不定值
C)a,97112k=12D)a,97,k=12
(17)已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中
的值為大寫字母的表達式是
A)kk>='A'&&kk<="Z'B)!(kk>='A'IIkk<='Z')
C)(kk+32)>='a'&&(kk+32)<='z,D)isalpha(kk)&&(kk<91)
(18)當變量c的值不為2、4、6時,值也為“真”的表達式是
A)(c==2)II(c==4)II(c==6)B)(c>=2&&c<=6)II(c!=3)II(c!=5)
C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=1)
(19)若變量已正確定義,有以下程序段
inta=3,b=5,c=7;
if(a>b)a=b;c=a;
if(c!=a)c=b;
printf("%d,%d,%d\n",a,b,c);
其輸出結果是
A)程序段有語法錯B)3,5,3C)3,5,5D)3,5,7
(20)有以下程序
include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
)
case2:a++;b++;break;
case3:a++;b++;
}
printf(*,a=%d,b=%d\n,,,a,b);
}
程序的運行結果是
A)a=1,b=0B)a=2,b=2
C)3=1,b=1D)3=2,b=1
(21)有以下程序
include<stdio.h>
main()
{intx=8;
for(;x>0;x-)
{if(x%3){printf(*'%d,M,x-);continue;}
printfC'%d;,,-x);
}
}
程序的運行結果是
A)7,4,2B)8,7,5.2
C)9,7,6,4D)8,5,4,2
(22)以卜.不構成無限循環的語句或者語句組是
A)n=0;B)n=0;
do{++n;}while(n<=0);while(1){n++;}
C)n=10;D)for(n=0,i=1;;i++)n+=i;
while(n);{n-;}
(23)有以下程序
include<stdio.h>
main()
{inta[]={1,2,3,4}>y,*p=&a[3];
-P;y=*P;printfO%d\n",y);
)
程序的運行結果是
A)y=0B)y=1C)y=2D)y=3
(24)以下錯誤的定義語句是
A)intx[][3]={{0},{1},{1,2,3));
B)intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C)intx[4][]={{1,2,3},{1,2.3},{1}2,3},{1,2,3));
D)intx[][3]={1,2,3,4);
(25)設有如下程序段
chars[20]="Bejing",*p;
P=s;
則執行p=s;語句后,以下敘述正確的是
A)可以用*p表示s[0]
B)s數組中元素的個數和p所指字符串長度相等
C)s和p都是指針變量
D)數組s中的內容和指針變量p中的內容相等
(26)若有定義:inta[2][3];,以下選項中對a數組元素正確引用的是
A)a[2][!1]B)a[2][3]C)a[0][3]D)a[1>2][11]
(27)有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是
A)gets(&s[O]);B)scanf("%s”,s+1);
C)gets(s);D)scanf(M%s),,s[1]);
(28)以下敘述中錯誤的是
A)在程序中凡是以“#”開始的語句行都是預處理命令行
B)預處理命令行的最后不能以分號表示結束
C)#defineMAX是合法的宏定義命令行
D)C程序對預處理命令行的處理是在程序執行的過程中進行的
(29)以下結構體類型說明和變量定義中正確的是
A)typcdcfstructB)structREC;
{intn;charc;}REC;{intn;charc;};
RECt1,t2;RECt1,t2;
C)typedefstructREC;D)struct
{intn=0;charc=,A';}t1,t2;{intn;charc;}RECt1,t2;
(30)以下敘述中錯誤的是
A)gets函數用于從終端讀入字符串
B)getchar函數用于從磁盤文件讀入字符
CJfputs函數用于把字符串輸出到文件
D)fwrite函數用于以二進制形式輸出數據到文件
(31)有以下程序
include<stdio.h>
main()
{ints[12]={1,2,3,4,4,321,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++)c[s[i]]++;
for(i=1;i<5;i++)printf("%d”,c[i]);
printf(4,\n,');
)
程序的運行結果是
A)1234B)23440)4332D)1123
(32)有以下程序
#include<stdio.h>
voidfun(int*s,intnl,intn2)
{inti,j,t;
i=nl;j=n2;
while(i<j){t=s[i];s[i]=sU];s[j]=t;i++;j-;)
)
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},k;
fun(a,0,3);fun(a,4,9);fun(a,0,9);
for(k=0;k<10;k++)printfC'%d',,a[k]);printf("\n”);
}
程序運行的結果是
A)0987654321B)4321098765
CJ5678901234DJ0987651234
(33)有以下程序
include<stdio.h>
#include<string.h>
voidfun(char*s[],intn)
{char*t;inti,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}
}
main()
{char*ss[]={"bcc",”bbcc",“xy",“aaaacc","aabcc"};
fun(ss,5);printf(H%s,%s\nw,ss[0],ss[4]);
)
程序的運行結果是
A)xy,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bcc
(34)有以下程序
#include<stdio.h>
intf(intx)
{inty;
if(x==0||x==1)return(3);
y=x*x-f(x-2);
returny;
)
main()
z=f(3);printf("%d\rT,z);
}
程序的運行結果是
A)0B>9C)6D)8
(35)有以卜程序
include<stdio.h>
voidfun(char*a,char*b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店倉庫管理培訓計劃
- 辭退違法解除協議書
- 餐廳安全合同協議書
- 遺產分割分配協議書
- 項目內部停工協議書
- 馬匹出售繁育協議書
- 設備合資購買協議書
- 項目合作擔保協議書
- 風冷電機訂購協議書
- 落戶委托服務協議書
- 期末(試題)-2023-2024學年英語六年級下冊
- 2022年遼寧省高考數學試卷(新高考II)附答案解析
- 阿爾派車載IVA-W502E使用說明書
- GB/T 10069.3-2024旋轉電機噪聲測定方法及限值第3部分:噪聲限值
- 2024架空平行集束絕緣導線低壓配電線路設計與施工規程
- 中國高血壓防治指南(2024年修訂版)核心要點解讀
- 擴心病的護理查房
- 2024年江蘇省南京玄武區八下英語期末考試試題含答案
- 知道智慧網課《科技倫理》章節測試答案
- mm-pbsa計算原理結果
- 國家開放大學《中文學科論文寫作》形考任務1-4參考答案
評論
0/150
提交評論