版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2009年9月全國計算機等級考試二級筆試試卷
1)下列數據結構中,屬于非線性結構的是
A)循環(huán)隊列B)帶鏈隊列C)二叉樹D)帶鏈棧
2)下列數據結果中,能夠按照“先進后出”原則存取數據的是
A)循環(huán)隊列B)棧C)隊列D)二叉樹
3)對于循環(huán)隊列,下列敘述中正確的是
A)隊頭指針是固定不變的B)隊頭指針一定大于隊尾指針C)隊頭指針一定小于隊尾指
針D)隊頭指針可以大于隊尾指針,也可以小于隊尾指針
4)算法的空間復雜度是指
A)算法在執(zhí)行過程中所需要的計算機存儲空間B)算法所處理的數據量C)算法程
序中的語句或指令條數
D)算法在執(zhí)行過程中所需要的臨時工作單元數
5)軟件設計中劃分模塊的一個準則是
A)低內聚低耦合B)高內聚低耦合C)低內聚高耦合D)高內聚高耦合
6)下列選項中不屬于結構化程序設計原則的是
A)可封裝B)自頂向下C)模塊化D)逐步求精
7)軟件詳細設計產生的圖如下:
該圖是
A)N-S圖B)PAD圖C)程序流程圖D)E-R圖
8)數據庫管理系統(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)三角形
10)有三個關系R,S和T如下:
其中關系T由關系R和S通過某種操作得到,該操作為
A)選擇B)投影C)交D)并
11)以下敘述中正確的是A)程序設計的任務就是編寫程序代碼并上機
B)程序設計的任務就是確定所用數據結構
O程序設計的任務就是確定所用算法
D)以上三種說法都不完整
12)以下選項中,能用作用戶標識符的是
A)voidB)8_8C)_0_D)unsigned
13)閱讀以下程序
#include<stdio.h>
main()
{intcase;floatprintF;
printf(〃請輸入2個數:”);
scanf(z/%d%f〃,&case,&pjrintF);
printf(z/%d%f\n/\case,printF);
)
該程序編譯時產生錯誤,其出錯原因是
A)定義語句出錯,case是關鍵字,不能用作用戶自定義標識符B)定義語句出錯,printF
不能用作用戶自定義標識符
C)定義語句無錯,scanf不能作為輸入函數使用D)定義語句無錯,printf不能輸出case
的值
14)表達式:(intX(double)9/2)?(9)%2的值是
A)0B)3C)4D)5
15)若有定義語句:intx=10;,則表達式x?=x+x的值為
A)-20B)-IOC)0D)10
16)有以下程序
#include<stdio.h>
main()
{inta=lzb=0;
printf(z/%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=aza=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<stdio.h>
main()
{intc=0zk;
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>c))k=l;elsek=0;
B)if((a>b)||(b>c)k=l;elsek=0;
C)if(a<=b)k=0;elseif(b<=c)k=l;
D)if(a>b)k=l;elseif(b>c)k=l;elsek=0;
20)有以下程序
#include<stdio.h>
main()
/,,
,chars*+=/012xy};intizn=0;
for(i=0;s[i]!=0;i++)
if(s*i+>=/a/&&s*i+<=,z/)n++;
printf("%d\n\n);
}程序運行后的輸出結果是
A)0B)2C)3D)5
21)有以下程序
#include<stdio.h>
main()
{intn=2,k=0;
while(k++&&n++>2);
printf(〃%d%d\n/\k,n);
}程序運行后的輸出結果是
A)02B)13C)57D)12
22)有以下定義語句,編譯時會出現編譯錯誤的是
A)chara=Ja'B)chars=9\n';C)chara=>aa';D)chara=f\x2d,;
23)有以下程序
#include<stdio.h>
main()
{charcl,c2;
cl='A'+'8'-4;
c2='A'+'8',5';
printf(〃%c,%d\n〃,cl,c2);
)
已知字母A的ASCII碼為65,程序運行后的輸出結果是
A)E,68B)D,69C)E,DD)輸出無定值
24)有以下程序
#include<stdio.h>
voidfun(intp)
{intd=2;
p=d++;printf(〃%d〃,p);}
main()
{inta=l;
fun(a);printf("%d\n",a);}程序運行后的輸出結果是
A)32B)12C)21D)22
25)以下函數findmax擬實現在數組中查找最大值并作為函數值返回,但程序中有錯導致不
能實現預定功能
#defineMIN-2147483647
intfindmax(intx[],intn)
{inti,max;
for(i=0;i<n;i++)
{max=MIN;
if(max<x[i])max=x[i];}
returnmax;
}造成錯誤的原因是
A)定義語句inti,max;中max未賦初值B)賦值語句max二MIN;中,不應給max賦MIN
值
C)語句if(max<x[i])max=x[i];中判斷條件設置錯D)賦值語句max二MIN;放錯了位置
(26)有以下程序
#include<stdio.h>
main()
{intm=l/n=2,*p=&m/*q=&n/*r;
r=p;p=q;q=r;
printf("%d,%d,%d,%d\n〃,m,n,*p,*q);
}程序運行后的輸出結果是
A)1,2,1,B)1,2,2」C)2,1,2,D)2,1,1,2
27)若有定義語句:intapl][10],*p,*q[4];R.0Wi<4,則錯誤的賦值是
A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][l]
28)有以下程序
#include<stdio.h>
#include<string.h>
main()
/,/z,,
,charstr*]*20]=/One*World\One*Dream!}z*p=str*l];
printf("%d,〃,strlen(p));printf("%s\n〃,p);
}程序運行后的輸出結果是
A)9,One*WorldB)9,0ne*DreamC)10,One*DreamD)10,One*World
29)有以下程序
#include<stdio.h>
main()
{inta[卜{2,354},i;
for(i=0;i<4;i++)
switch(i%2)
{case0:switch(a[i]%2)
{caseO:a[i]++;break;
casel:a[i]-;
Jbreak;
casel:a[i[=O;
)
for(i=0;i<4;i]])printf(〃%d〃,a*i]);printf(〃\n〃);
)
A)3344B)2050C)3040D)0304
30)有以下程序
#include<stdio.h>
#include<string.h>
main()
,chara*10]=,,abcd,";
printf(〃%d,%d\n〃,strlen(a),sizeof(a);
}程序運行后的輸出結果是
A)7,4B)4,10C)8,8D)10,10
31)下面是有關C語言字符數組的描述,其中錯誤的是
A)不可以用賦值語句給字符數組名賦字符串B)可以用輸入語句把字符串整體輸入給字
符數組
C)字符數組中的內容不一定是字符串D)字符數組只能存放字符串
32)下列函數的功能是
fun(char*a,char*b)
{while((*b=*a)!=,\Oz){a++{b++;}}
A)將a所指字符串賦給b所指空間B)使指針b指向a所指字符串C)將a所指字符串
和b所指字符串進行比較
D)檢查a和b所指字符串中是否有‘\0'
33)設有以下函數
voidfun(intn,char*s){.......}則卜面對函數指針的定義和賦值均是正確的是
A)void(*pf)();pf=fun;B)viod*pf();pf=fun;C)void*pf();*pf=fun;D)void
(*pf)(int,char);pf=&fun;
(34)有以下程序
#include<stdio.h>
intf(intn);
main()
{inta=3,s;
s=f(a);s=s+f(a);printf(/z%d\nw{s);
)
intf(intn)
{staticinta=l;
n+=a++;
returnn;
}程序運行以后的輸出結果是
A)7B)8C)9D)10
35)有以下程序
#include<stdio.h>
#definef(x)x*x*x
main()
{inta=3,s,t;
s=f(a+l);t=f((a+l));
printf("%d{%d\n,{s{t);
}程序運行后的輸出結果是
A)10,64B)10,10C)64,10D)64,64
36)下面結構體的定義語句中,錯誤的是
A)structord{intx;inty;intz;};structorda;B)structord{intx;inty;intz;}structorda;
C)structord{intx;inty;intz;}a;D)struct{intx;inty;intz;}a;
37)設有定義:char*c;,以下選項中能夠使字符型指針c正確指向一個字符串的是
A)charstr[]=wstring;c=str;B)scanf("%s",c);C)c=getchar();D)*c="string”;
38)有以下程序
#include<stdio.h>
#include<string.h>
structA
{inta;charb[10];doublec;};
structAf(structAt);
main()
{structA
a={100irZhangDaw{1098.0};
a=f(a);jprintf(z/%d{%s{%6.1An7/{a.a{a.b{a.c);
)
structAf(structAt)
(t.a=1002;strcpy(t.bZ,ChangRongn);t.c=1202.0;returnt;)程序運行后的輸出結果是
A)1001,ZhangDa,1098.0B)lOOLZhangDa,1202.0C)1001,ChangRong,1098.0D)
1001,ChangRong,1202.0
39)若有以下程序段
intr=8;
printf(“%d\n”,r?l);輸出結果是A)16B)8C)4D)2
40)下列關于C語言文件的敘述中正確的是
A)文件由一系列數據依次排列組成,只能構成二進制文件B)文件由結構序列組成,可以
構成二進制文件或文本文件
C)文件由數據序列組成,可以構成二進制文件或文本文件D)文件由字符序列組成,
其類型只能是文本文件
二、填空題(每空2分,共30分)
1)某二叉樹有5個度為2的結點以及3個度為1的結點,則該二叉樹中共有【1】個結點。
2)程序流程圖中的菱形框表示的是【2】。
3)軟件開發(fā)過程主要分為需求分析、設計、編碼與測試四個階段,其中【3】階段產生“軟
件需求規(guī)格說明書。
4)在數據庫技術中,實體集之間的聯(lián)系可以是一對一一或一對多或多對多的,那么“學生”
和“可選課程”的聯(lián)系為【4】。
5)人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關鍵字的是【5】。
6)若有定義語句:inta=5;,則表達式:a++的值是【6】。
7)若有語句doublex=17;inty;,當執(zhí)行y=(int"x/5)%2;之后y的值為【7】。
8)以下程序運行后的輸出結果是[8】o
#include<stdio.h>
main()
{intx=20;
printf(//%d//{0<x<20);
printf(//%d\n,,{0<x&&x<20);}
9)以下程序運行后的輸出結果是[9】。
#include<stdio.h>
main()
{inta=l,b=7;
do{
b=b/2;a+=b;
}while(b>l);
printf(〃%d\n〃{a);}
10)有以下程序
#include<stdio.h>
main()
{intf,fl,f2,i;
fl=0;f2=l;
printf("%d%d〃,fl,f2);
for(i=3;i<=5;i++)
zf=fl+f2;printf(〃%d〃,f);
fl=f2;f2=f;
)
printf(〃\n〃);
}程序運行后的輸出結果是[10]o
11)有以下程序
#include<stdio.h>
inta=5;
voidfun(intb)
{inta=10;
a+=b;printf(//%d,,,a);
)
main()
{intc=20;
fun(c);a+=c;printf(zz%d\n\a);
}程序運行后的輸出結果是[111O
12)設有定義:
structperson
{intID;charname[12];}p;
請將scanf(“%d”,[12]);語句補充完整,使其能夠為結構體變量p的成員ID正確讀入
數據。
13)有以下程序
#include<stdio.h>
main()
,chara[20+=MHowareyou??,,b[20+;
scanf("%s",b);printf("%s%s\n",a,b);
}程序運行時從鍵盤輸入:Howareyou?〈回車〉則輸出結果為【13】。
14)有以下程序
#include<stdio.h>
typedefstruct
{intnum;doubles}REC;
voidfunl(RECx){x.num=23;x.s=88.5;}
main()
{RECa={16,90.0};
funl(a);
printf(〃%d\n〃,a.num);
}程序運行后的輸出結果是【14】
15)有以下程序
#include<stdio.h>
fun(intx)
{if(x/2>0)run(x/2);
printf(〃%d〃,x);
}
main()
{fun(6);printf(“\n");}程序運行后的輸出結果是【15】。
2009年3月二級C語言筆試真題及答案
(1)下列敘述中正確的是
A)棧是“先進先出”的線性表B)隊列是“先進先出”的線性表
C)循環(huán)隊列是非線性結構D)有序性表既可以采用順序存儲結構,也可以采用鏈
式存儲結構
(2)支持子程序調用的數據結構是A)棧B)樹C)隊列D)二叉樹
(3)某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是A)10B)806D)
4
(4)下列排序方法中,最壞情況下比較次數最少的是
A)冒泡排序B)簡單選擇排序C)直接插排序D)堆排序
(5)軟件按功能可以分為:應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應用
軟件的是
A)編譯軟件B)操作系統(tǒng)C)教務管理系統(tǒng)D)匯編程序
(6)下面敘述中錯誤的是
A)軟件測試的目的是發(fā)現錯誤并改正錯誤B)對被調試的程序進行“錯誤定位”是程序
調試的必要步驟
C)程序調試通常也稱為DebugD)軟件測試應嚴格執(zhí)行測試計劃,排除測試
的隨意性
(7)耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是
A)提高耦合性降低內聚性有利于提高模塊的獨立性B)降低耦合性提高內聚性有利于提
高模塊的獨立性
C)耦合性是指一個模塊內部各個元素間彼此結合的緊密程度D)內聚性是指模塊間互相
連接的緊密程度
(8)數據庫應用系統(tǒng)中的核心問題是
A)數據庫設計B)數據庫系統(tǒng)設計C)數據庫維護D)數據庫管理員培訓
(9)有兩個關系R,S如下:
R
ABC
a32
b01
c21
S
AB
a3
b0
c2
由關系R通過運算得到關系S,則所使用的運算為A)選擇B)投影C)插入D)連接
(10)將E-R圖轉換為關系模式時,實體和聯(lián)系都可以表示為A)屬性B)鍵C)關系D)
域
(11)以下選項中合法的標識符是A)1-1B)1—10-11D)1-
(12)若函數中有定義語句:intk;,則
A)系統(tǒng)將自動給k賦初值0B)這時k中值無定義C)系統(tǒng)將自動給k賦初值-ID)這時k
中無任何值
(13)以下選項中,能用作數據常量的是A)oll5B)0118C)1.5el.5D)
115L
(14)設有定義:intx=2;,以下表達式中,值不為6的是A)x*=x+lB)x++,2*xC)
x*=(1+x)D)2*x,x+=2
(15)程序段:intx=12;
doubley=3.141593;printf("%d%8.6f",x,y);的輸出結果是
A)123.141593B)123.141593C)12,3.141593D)123.141593
(16)若有定義語句:doublex,y,*px,*py,執(zhí)行了px二&x,py=&y;之后,正確的輸入語句是
A)scanf("%f%f",x,y);B)scant("%f%f",&x,&y);C)scanf(u%lf%leM,px,py);D)scanf
(“%lf%lf",x,y);
(17)以下是if語句的基本形式:
if(表達式)
語句
其中“表達式”
A)必須是邏輯表達式B)必須是關系表達式C)必須是邏輯表達式或關系表達式D)可以是
任意合法的表達式
(18)有以下程序
#include<stdio.h>
main()
{intx;
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)有以下程序
#include<stdio.h>
Main()
{inta=l,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!=2||c-!=3)
printf("%d,%d,%d\n”,a,b,c);
elseprintf("%d,%d,%d\n”,a,b,c);
elseprintf("%d,%d,%d\n”,a,b,c);}程序運行后的輸出結果是
A)1,2,3B)1,3,2C)1,3,3D)3,2,1
(20)以下程序中的變量已正確定義
for(i=0;i<4;i++,i++
for(k=l;k<3;k++);printf(*“);程序段的輸出結果是
A)********B)****c)**D)*
(21)有以下程序
#include<stdio.h>
main()
{char
*s=(“ABC);
do
{printf("%d”;s++;
}while(*s);}注意,字母A的ASCII碼值為65。程序運行后的輸出結果是
A)5670B)656667C)567D)ABC
(22)設變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(不包含回車符)的程序段
是
A)n=0;while((ch=getchar())!='\n')n++;B)n=0;while(getchar()!='\n')n++;
C)for(n=0;getchar()!=?\ny;n++);D)n=0;for(ch=getchar();ch!='\n';n++);
(23)有以下程序
#include<stdio.h>
main()
{intal,a2;charcl,c2;
scanf("%d%c%d%c",&al,&cl,&a2,&c2);
printf("%d,%c,%d,%c",&l,cl,a2,c2);}
若想通過鍵盤輸入,使得al的值為12,a2的是為34,cl的值為字符a,c2的值為字符b,程序
輸出結果是:12,a,34,b,則正確的輸入格式是(以下代表空格,<CR>代表回車)
A)12a34b<CR>C)12,a,34,b<CR>
B)12D)12
aa34
34b<CR>
b<CR>
24)有以下程序
#include<stdio.h>
intf(intxjnty)
{return()y-x)*x);}
main()
{inta=3,b=4/c=5,d;
d=f(f(a,b),f(a,c));
printf("%d\n”,d);}程序運行后的輸出結果是
A)10B)9C)8D)7
(25)有以下程序
#indude<stdio.h>
voidfun(char
*s)
{while(*s)
{if(*s%2==0)
printf(“%c”,*s);
S++;}}
main()
{char
a口二{"good"};
fun(a);printf(“\n”);}注意:字母a的ASCII碼值為97,程序運行后的輸出結果是
A)dB)goC)godD)good
(26)有以下程序
#include<stdio.h>
voidfun(int*a,int*b)
{int*c;
c=a;a=b;b=c;}
main()
{intx=3/y-5z*P=&x,*q=&y;
fun(pzq);printf("%d,%d,”,*p,*q);
fun(&x,&y);printf("%d,%d\n",*p,*q);}程序運行后的輸出結果是
A)3,5,5,3B)3,5,3,5C)5,3,3,5D)5,3,5,3
(27)有以下程序
#include<stdio.h>
viodf(int*p,int*q);
main()
{intm=l,n=2/*r=&m;
f(r,&n);printf("%d,%d",m,n);}
voidf(int*p,int*q)
{p=p+l;*q=*q+l;}程序運行后輸出的結果是
A)1,3B)2,3C)1,4D)1,2
(28)以下函數按每行8個輸出數組中的數據
voidfun(int*w,intn)
{inti;
for(i=0;i<n;i++)
printf(“%d”,w);}
printf(“\n");}下劃線處應填入的語句是
A)if(i/8==0)print;B)if(i/8==0)continue;
C)if(i%8==0)print("\n");D)if(i%8==0)continue;
(29)若有以下定義intx口O],*pt=x;則對x數組元素的正確應用是
A)*&x[10]B)*(x+3)C)*(pt+10)D)pt+3
30)設有定義:chars[81];inti=10;,以下不能將一行(不超過80個字符)帶有空格的字符串
真確讀入的語句或語句組是
A)gets(s)B)while((s[i++]=getchar())!="\n";s="\0";
C)scanf("%s",s);D)do{scanf("%c",&s);}while(s[i++]!="\n");s="\0";
(31)有以下程序
#include<stdio.h>
main()
{char同卜{"abcd"{"efTgh"{"ijk"};intI;
for(i=0;i<4;i++)
printf("%c”,*a);}程序運行后輸出的結果是
A)aegiB)dfhkC)abedD)abedefghijk
32)以下選項中正確的語句組是
A)chars[];s=?,BOOK!”;B)char*s;s={?,BOOK!”};C)chars[10];s=,,BOOK!”;D)
char*s;s=nBOOK!”;
(33)有以下程序
#include<stdio.h>
intfun{intx,inty}
{if(x==y)return(x);
elsereturen((x+y)/2)}
main()
{inta=4,b=5,c=6;
printf("%d\n”,fun(2*a,fun(b,c))))程序運行后的輸出結果是
A)3B)6C)8D)12
(34)設函數中有整型變量n,為保證其在未賦值的情況下初值為0,應選擇的存儲類別是
A)autoB)registerC)staticD)auto或register
(35)有以下程序
#include<stdio.h>
intb=2;
intfun(int*k)
{b=*k+b;return(b);}
main()
{inta[10]={L2,34,5,6,7,8},l;
for(i=2;i<4;i++){b=fun(&a)+b;printf("%d”,b);}
printf(“\n”)力程序運行后輸出的結果是
A)10B)8C)10D)10
12102816
36)有以下程序
#include<stdio.h>
#definePT3.5;
#defineS(x)PT*x*x;
mian()
{inta=l,b=2;printf(“%4.1f\n”,S(a+b));}程序運行后輸出的結果是
A)14.0B)31.5C)7.5D)程序有錯無輸出結果
37)有以下程序
#include<stdio.h>
structord
{intx,y;}dt[2]={l,23,4);
main()
{structord*p=dt;
printf("%d,",++p->x);printf("%d\n”,++p->y);}程序的運行結果是
A)1,2B)2,3C)3,4D)4,1
38)設有宏定義:include
IsDIV(k,n)((k%n==l)?l:0且變量m已正確定義并賦值,則宏調用:IsDIV(m,5)&&IsDIV
(m,7)為真時所要表達的是A)判斷m是否能被5或者7整除B)判斷m是
否能被5和7整除
C)判斷m被5或者7整除是否余1D)判斷m被5和7整除是否余1
(39)有以下程序
#include<stdio.h>
main()
{inta=5,b=l,t;
t=(a?2|b);printf("%d\n”,t)}程序運行后的輸出結果是A)21B)llC)6D)
1
(40)有以下程序
#include<stdio.h>
main()
{EILE*f;
f=fopen("filea.txt"Jw“);
fprintf(f,"abc“);
fclose(f);)若文本文件filea.txt中原有內容為:hello,則運行以上程序后,文件filea.txt
中的內容為
A)helloabcB)abcloC)abcD)abchello
二、填空題(每空2分,共30分)
(1)假設一個長度為50的數組(數組元素的下標從。到49)作為棧的存儲空間,棧底指
針bottom指向棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數組下
標),則棧中具有【1】個元素。
(2)軟件測試可分為白盒測試和黑盒測試?;韭窂綔y試屬于【2】測試。
(3)符合結構化原則的三種基本控制結構是:選擇結構、循環(huán)結構和[3L
(4)數據庫系統(tǒng)的核心是【4】
(5)在E-R圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實體聯(lián)系的是15】框。
(6)表達式(int)((double)(5/2)+2.5)的值是[6]
(7)若變量x、y已定義為int類型且x的值為99,y的值為9,請將輸出語句printf([7],
x/y);補充完整,使其輸出的計算結果形式為:x/y=ll
⑻有以下程序
include<stdio.h>
main()
{charcl{c2;scanf(〃&c”{&cl);
while(cl<65||cl>90)
scanf(〃&c”{&cl);
c2=cl+32;
printf("&c,&c\n",cl,c2);}程序運行輸入65回車后,能否輸出結果、結束運行(請回答
能或不能)[8L
(9)以下程序運行后的輸出結果是[9】
#include<stdio.h>
main()
{intk=l,s=0;
do{
if{((k&2)!=0)continue;
s+=k;k++;
}while(k)10);
printf("s=&d/n",s);}
(10)5列程序運行時,若輸入Iabcedl2dfv回車〉輸出結果為[10]
#include<stdio.h>
main()
{char
a=0,ch;
while((ch=getchar())!=,\n,)
{if(a&2!=0&&(ch>,a,&&ch<=,z,))ch=ch-'a'+'A';
a++;putchar(ch);}
printf(〃\n〃);}
(11)有以下程序,程序執(zhí)行后,輸出結果是[11]
#include<stdio.h>
voidfun(int*a)
{a[0=a[l];]}
main()
{inta[10]={10,9,8,7,6,54,321}/;
for(i=2;i>=0;i-)fun{&a};
for(i=0;i<10;i++)printf(〃&d〃{a);
printf(〃\n〃);
)
(12)請將以下程序中的函數聲明語句補充完整
#include<stdio.h>
int[12];
main()
{intx,y,(*p)();
p=max;
printf("&d\n〃{&x{&y);}
Intmax(inta,intb)
{return(a>b/a:b);}
(13)以下程序用來判斷指定文件是否能正常打開,請?zhí)羁?/p>
#include<stdio.h>
main()
{FILE*fp;
if(((fp=fopen("test.txt”r"))二二[13]))
printf(“未能打開文件!\n");
else
printf("文件打開成功!\n”);
(14)下列程序的運行結果為【14】
#include<stdio.h>
#include<string.h>
structA
{inta;charb[10];doublec;};
void
f(struct
A
*t);
main()
{structAa=(1001{,,ZhangDa,,{1098{0);
f(&a);printf("&d{&s{&6{小n”{a.a{a.b{a.c);}
voidf(struct
A
*t)
{strcpy(t->b{z/ChangRongw);}
(15)以下程序把三個NODETYPE型的變量鏈接成一個簡單的鏈表,并在while循環(huán)中輸出鏈
表結點數據域中的數據,請?zhí)羁?/p>
#include<stdio.h>
structnode
{intdata;structnode*next;};
typedefstructnodeNODETYPE;
main()
{NODETYPEa,b,c,*h,*p;
a.
data=10;b.data=20;c.data=30;h=&a;
b.
next=&b;b.next=&c;c.next='\O';
p=h;
while(p){printf("&d",p->data);【15];)
)
2008年9月二級C語言筆試真題及答案
(1)一個棧的初始狀態(tài)為空?,F將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后
再依次出棧,則元素出棧的順序是()。A)12345ABCDEB)EDCBA54321C)
ABCDE12345D)54321EDCBA
(2)下列敘述中正確的是()。
A)循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結構
B)在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況
C)在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況
D)循環(huán)隊列中元素的個數是由隊頭指針和隊尾指針共同決定
3)在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數是()。
A)0(n)B)0(n2)C)O(log2n)D)O(nlog2n)
4)下列敘述中正確的是()。
A)順序存儲結構的存儲一定是連續(xù)的,鏈式存儲結構的存儲空間不一定是連續(xù)的
B)順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構
C)順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表D)鏈式存儲結構比順序
存儲結構節(jié)省存儲空間
5)數據流圖中帶有箭頭的線段表示的是()。
A)控制流B)事件驅動C)模塊調用D)數據流
6)在軟件開發(fā)中,需求分析階段可以使用的工具是()o
A)N-S圖B)DFD圖C)PAD圖D)程序流程圖
7)在面向對象方法中,不屬于“對象”基本特點的是()。
A)一致性B)分類性C)多態(tài)性D)標識唯一性
(8)一間宿舍可住多個學生,則實體宿舍和學生之間的聯(lián)系是(
A)一對一B)一對多C)多對D)多對多
(9)在數據管理技術發(fā)展的三個階段中,數據共享最好的是()。
A)人工管理階段B)文件系統(tǒng)階段C)數據庫系統(tǒng)階段D)三個階段相同
(10)有三個關系R、S和T如下:
RST
ABBCABC
m113m13
n235
由關系R和S通過運算得到關系T,則所使用的運算為()。A)笛卡爾積B)交C)
并D)自然連接
(11)以下敘述中正確的是(
A)C程序的基本組成單位是語句B)C程序中的每一行只能寫一條語句
C)簡單C語句必須以分號結束D)C語句必須在一行內寫完
12)計算機能直接執(zhí)行的程序是()。A)源程序B)目標程序C)匯編程序D)可執(zhí)行
程序
13)以下選項中不能作為C語言合法常量的是()。A)'cd'B)0.1e+6C)"\a"D)
'\011'
14)以下選項中正確的定義語句是()o
A)doublea;b;B)doublea=b=7;C)doublea=7,b=7;D)double,a,b;
15)以下不能正確表示代數式2abcd的C語言表達式是()。
A)2*a*b/c/dB)a*b/c/d*2C)a/c/d*b*2D)2*a*b/c*d
16)C源程序中不能表示的數制是()。A)二進制B)八進制C)十進制D)十六進
制
17)若有表達式(w)?(--x):(++y),則其中與w等價的表達式是()?A)w==lB)w==0C)w!=l
D)w!=0
18)執(zhí)行以下程序段后,w的值為()。
intw='A',x=14,y=15;
w=((x11y)&&(w<'a'));A)-1B)NULLC)ID)0
19)若變量已正確定義為int型,要通過語句scanf("%d,%d,%d",&a,&b,&c);給a賦值
1、給b賦值2、給c賦值3,以下輸入形式中錯誤的是(d代表一個空格符)()。
A)ddd1,2,3(回車〉B)1d2d3c回車〉C)l,ddd2,ddd3c回車〉D)1,2,3〈回
車〉
(20)有以下程序段
inta,b,c;
a=10;b=50;c=30;
if(a>b)a=b,b=c;c=a;
printf("a=%db=%dc=%d\nw,a,b,c);程序的輸出結果是()。
A)a=10b=50c=10B)a=10b=50c=30C)a=10b=30c=10D)a=50b=30c=50
(21)若有定義語句:intm[]={5,4,321},i=4;,則下面對m數組元素的引用中錯誤的是()。
A)m[-i]B)m[2*2]C)m[m[O]]D)m[m[i]]
(22)下面的函數調用語句中func函數的實參個數是()。
func(f2(vl,v2),(v3,v4,v5),(v6,max(v7,v8)));A)3B)4C)5D)8
(23)若有定義語句:doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;則錯誤引用x數組元素的是()。
A)*pB)x[5]C)*(p+l)D)*x
(24)若有定義語句:chars口0]="1234567\0\0";,則strlen(s)的值是()。A)7B)8C)9D)
10
(25)以下敘述中錯誤的是(
A)用戶定義的函數中可以沒有return語句
B)用戶定義的函數中可以有多個return語句,以便可以調用一次返回多個函數值
C)用戶定義的函數中若沒有return語句,則應當定義函數為void類型D)函數的return
語句中可以沒有表達式
(26)以下關于宏的敘述中正確的是()。
A)宏名必須用大寫字母表示B)宏定義必須位于源程序中所有語句之前
O宏替換沒有數據類型限制D)宏調用比函數調用耗費時間
*****(27)有以下程序
#include<stdio.h>
main()
{inti,j;
for(i=3;i>=l;i-)
{for(j=l;j<=2;j++)printf("%d“,i+j);
printfCAn");
}}程序的運行結果是()o
A)234B)432345543C)23D)4534344523
(28)有以下程序
#include<stdio.h>
main()
{intx=l,y=2,z=3;
if(x>y)
if(y<z)printf("%d"z++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}程序的運行結果是()o
A)331B)41C)2D)1
(29)有以下程序
#include<stdio.h>
main()
{inti=5;
do
{if(i%3=l)
if(i%5==2)
{print"'*%%',i);break;}
i++;
}while(i!=O);
printf("\n");
}程序的運行結果是(),A)*7B)*3*50*5D)*2*6
(30)有以下程序
#include<stdio.h>
intfun(intajntb)
{if(b==0)returna;
elsereturn(fun(-az-b));
)
main()
{printf("%d\n",fun(4,2));}程序的運行結果是()。A)1B)203D)4
(31)有以下程序
#include<stdio.h>
#include<stdlib.h>
intfun(intn)
{int*p;
p=(int*)malloc(sizeof(int));
*p=n;return*p;
)
main()
{inta;
a=fun(10);printf("%d\n",a+fun(10));
}程序的運行結果是()oA)OB)IOC)20D)出錯
(32)有以下程序
#include<stdio.h>
voidfun(inta,intb)
{intt;
t=a;a=b;b=t;
)
main()
{intc[10]={l,2,3,4,5,6,7,8,9,0),i;
for(i=0;i<10;i+=2)fun(c[i],c[i+l]);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}程序的運行結果是()o
A)1,2,3,4,56,7,8,9,0,B)2,1,4,3,6,5,8,7,0,9,C)0,9,8,7,6,5,4,3,2,1,D)0,1,2,3,4,5,6,7,8,9,
(33)有以下程序
#include<stdio.h>
structst
{intx,y;)data[2]={l,10,2,20};
main()
{structst*p=data;
printf("%dz",p->y);printf("%d\n"z(++p)->x);
}程序的運行結果是()。A)10,1B)20,1010,2D)20,2
(34)有以下程序
#include<stdio.h>
voidfun(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-l-i];a[n-l-i]=t;}
)
main()
{intk[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;i<8;i++)printf("%d",k[i]);
printf("\n");
}程序的運行結果是()oA)345678B)876543C)1098765D)321678
(35)有以下程序
#include<stdio.h>
#defineN4
voidfun(inta[][N],intb[])
{inti;
for(i=0;i<N;i++)b[i]=a[i][i];
)
main()
{intx[][N]={{l,2,3),{4),{5,6,7,8),{9,10}},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf(“%dNy[i]);
printf(H\n");
}程序的運行結果是()oA)1,234B)1,07,0,C)1,459,D)3,4,8,10,
(36)有以下程序
#include<stdio.h>
intfun(int(*s)[4],intn,intk)
{intm,i;
m=s[0][k];
for(i=l;i<n;i++)if(s[i][k]>m)m=s[i][k];
returnm;
)
main()
{inta⑷⑷={{1,2,3,4),{11,12,13,14},{21,22,23,24},{31,32,33,34}};
printf("%d\n",fun(aAO));
}程序的運行結果是()oA)4B)34031D)32
(37)有以下程序
#include<stdio.h>
main()
{structSTU{charname[9];charsex;doublescore[2];};
structSTUa={"Zhao";m'z85.0,90.0),b={"Qian";f'/95.0,92.0);b=a;
printf("%s/%c/%2.0f,%2.0f\n"http://b.sex,b.score[0],b.score[l]);
}程序的運行結果是(
)oA)Qian,f,95,92B)Qian,m,85,90C)Zhao,f,95,92D)Zhao,mz85z90
(38)假定已建立以下鏈表結構,且指針p和q已指向如圖所示的結點:
headabc
datanext
tPtq
則以下選項中可將q所指結點從鏈表中刪除并釋放該結點的語句組是()。
A)(*p).next=(*q).next;free(p);B)p=q->next;free(q);
C)p=q;free(q);D)p->next=q->next;free(q);
(39)有以下程序
#include<stdio.h>
main()
{chara=4;
,,
printf("%d\n/a=a?l);
}程序的運行結果是()oA)40B)1608D)4
(40)有以下程序
#include<stdio.h>
main()
{FILE*pf;
char*sl="China"/s2=,,Beijing";
pf=fopen("abc.dat"z"wb+");
fwrite(s2,7,lzpf);
rewind(pf);
fwrite(slz5,l/Pf);
fclose(pf);
}以上程序執(zhí)行后abc.dat文件的內容是()。A)ChinaB)ChinangC)ChinaBeijingD)
BeijingChina
二、填空題(每空2分,共30分)
1)對下列二叉樹進行中序遍歷的結果【1】o
A
BC
DEF
XYZ
(2)按照軟件測試的一般步驟,集成測試應在【2】測試之后進行。
(3)軟件工程三要素包括方法、工具和過程,其中,【3】支持軟件開發(fā)的各個環(huán)節(jié)的控
制和管理。
(4)數據庫設計包括概念設計、【4】和物理設計。
(5)在二維表中,元組的【5】不能再分成更小的數據項。
(6)設變量a和b已正確定義并賦初值。請寫出與a-=a+b等價的賦值表達式【6】。
(7)若整型變量a和b中的值分別為7和9,要求按以下格式輸出a和b的值:
a=7
b=9
請完成輸出語句:printf("[7],a,b);。
(8)以下程序的輸出結果是[8】o
#include<stdio.h>
main()
{inti,j,sum;
for(i=3;i>=l;i-)
{sum=O;
for(j=l;j<=i;j++)sum+=i*j;}
printf("%d\n,sum);}
(9)以下程序的輸出結果是[9】o
#include<stdio.h>
main()
{intj,a[={135,7,9,11,73,15},*p=a+5;
for(j=3;j;j--)
{switch(j)
{case1:
case2:printf("%d",*p++);break;
case3:printf("%d"/*(-p));
}})
(10)以下程序的輸出結果是[10].
#include<stdio.h>
#defineN5
intfun(int*s,inta,intn)
{intj;
*s=a;j=n;
while(a!=s[j])j-;
returnj;
)
main()
{ints[N+l];intk;
for(k=l;k<=N;k++)s[k]=k+l;
printf("%d\n",fun(sAN));}
(11)以下程序的輸出結果是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年股權轉讓合同股權比例與轉讓價格
- 2024建筑水電工程合同書
- 2024年銷售中介服務條款正式版協(xié)議版B版
- 2025年度新能源發(fā)電項目投資與運營管理合同3篇
- 2024年項目股份轉移及合作意向合同一
- 2024年舞臺燈光維修保養(yǎng)協(xié)議版B版
- 2025年倉儲物流安全管理規(guī)范執(zhí)行合同3篇
- 2024年高效農業(yè)設備定制與供應合同
- 2025年度食品鋪貨與餐飲行業(yè)合作合同3篇
- 職業(yè)學院學生外出活動管理規(guī)定
- 伊索寓言-狗和影子課件
- 工程材料檢驗試驗計劃專項方案
- 2023高考英語新高考1卷完形填空全考點解析附譯文全
- 《上帝擲骰子嗎:量子物理史話》導讀學習通超星課后章節(jié)答案期末考試題庫2023年
- GB/T 42616-2023電梯物聯(lián)網監(jiān)測終端技術規(guī)范
- CTR-2023年中國搜索引擎行業(yè)研究報告
- 枕上詩書:一本書讀懂最美古詩詞
- 光儲電站儲能系統(tǒng)調試方案
- 煙花爆竹工程設計安全規(guī)范
- 酒店賠償價目表
- YS/T 752-2011復合氧化鋯粉體
評論
0/150
提交評論