版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2010年3月全國計算機等級考試二級筆試試卷
C語言程序設計(考試時間90分鐘,滿分100分)
一、選擇題((1)~(10)、(21)~(40)每題2分,(11)~(20)
每題1分,共70分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項
填涂在答
題卡相應位置上,答在試卷上不得分。
(1)下列敘述中正確的是
A)對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數為n
B)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(n/2)
C)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(log2n)
D)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(log2n)
(2)算法的時間復雜度是指
A)算法的執(zhí)行時間
B)算法所處理的數據量
C)算法程序中的語句或指令條數
D)算法在執(zhí)行過程中所需要的基本運算次數
(3)軟件按功能可以分為:應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬
于系統(tǒng)軟
件的是
A)編輯軟件B)操作系統(tǒng)
C)教務管理系統(tǒng)D)瀏覽器
(4)軟件(程序)調試的任務是
A)診斷和改正程序中的錯誤B)盡可能多地發(fā)現程序中的錯誤
C)發(fā)現并改正程序中的所有錯誤D)確定程序中錯誤的性質
(5)數據流程圖(DFD圖)是
A)軟件概要設計的工具B)軟件詳細設計的工具
C)結構化方法的需求分析工具D)面向對象方法的需求分析工具
(6)軟件生命周期可分為定義階段,開發(fā)階段和維護階段。詳細設計屬于
A)定義階段B)開發(fā)階段
C)維護階段C)上述三個階段
(7)數據庫管理系統(tǒng)中負責數據模式定義的語言是
A)數據定義語言B)數據管理語言
C)數據操縱語言D)數據控制語言
(8)在學生管理的關系數據庫中,存取一個學生信息的數據單位是
A)文件B)數據庫
C)字段D)記錄
(9)數據庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示,它
屬于數
據庫設計的
A)需求分析階段B)邏輯設計階段
c)概念設計階段D)物理設計階段
(10)有兩個關系R和T如下:
則由關系R得到關系T的操作是
A)選擇B)投影C)交口)并
(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)_1B)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%l1;D)i=!a;
(15)有以下程序
#include<stdio.h>
main()
{chara,b,c,d;
scanf("%c%c",&a,&b);
c=getchar();d=getchar;
printf(,,%c%c%c%c\nM,a,b,c,d);)
當執(zhí)行程序時,按下列方式輸入數據(從第1列開始,<CR>代表回車,注意:回車
也是
一個字符)
12<CR>
34<CR>
則輸出結果是
A)1234B)12C)12D)12
334
(16)以下關于C語言數據類型使用的敘述中錯誤的是
A)若要準確無誤差的表示自然數,應使用整數類型
B)若要保存帶有多位小數的數據,應使用雙精度類型
C)若要處理如"人員信息”等含有不同類型的相關數據,應自定義結構體類型
D)若只處理"真"和"假"兩種邏輯值,應使用邏輯類型
(17)若a是數值類型,則邏輯表達式(a==1)||(a!=1)的值是
A)1B)0
C)2D)不知道a的值,不能確定
(18)以下選項中與if(a==l)a=b;elsea++;語句功能不同的switch語句是
A)switch(a)
{case1:a=b;break;
default:a++;
)
B)switch(a==l)
{caseO:a=b;break;
case1:a++;
)
C)switch(a)
{default:a++;break;
case1:a=b;
)
D)switch(a==l)
{case1:a=b;break;
caseO:a++;
}
(19)有如下嵌套的if語句
if(a<b)
if(a<c)k=a;
elsek=c;
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++)
{for(j=3;j>0;j-)
{if(i+j>3)break;
m*=i*j;}
)
printf(,,m=%d\n0,m);
)
程序運行后的輸出結果是
A)m=6B}m=2C)m=4D)m=5
(21)有以下程序
#include<stdio.h>
main()
{inta=l,b=2;
for(;a<8;a++){b+=a;a+=2;}
printf("%d,%d\n”,a,b);
)
程序運行后的輸出結果是
A)9,18B)8,11C)7,11D)10,14
(22)有以下程序,其中k的初值為八進制數
#include<stdio.h>
main()
{intk=011;
printf("%d\n",k++);
)
程序運行后的輸出結果是
A)12B)11C)10D)9
(23)下列語句組中,正確的是
A)char*s;s="Olympic";B)chars[7];s="Olympic";
C)char*s;s={"Olympic"};D)chars[7];s={"Olympic");
(24)以下關于return語句的敘述中正確的是
A)一個自定義函數中必須有一條return語句
B)一個自定義函數中可以根據不同情況設置多條return語句
C)定義成void類型的函數中可以有帶返回值的return語句
D)沒有return語句的自定義函數在執(zhí)行結束時不能返同到調用處
(25)下列選項中,能正確定義數組的語句是
A)intnum[0..2008];B)intnum[];
C}intN=2008;D)#defineN2008
intnum[N];intnum[N];
(26)有以下程序
#include<stdio.h>
voidfun(char*c,intd)
{*c=*c+l;d=d+l;
printf("%c,%c",*c,d);
)
main()
{charb='a',a='A';
fun(&b,a);printf("%c,%c\n”,b,a);
)
程序運行后的輸出結果是
A)b,B,b,AB)b,B,B,A
C)a,B,B,aD)a,B,a,B
(27)若有定義int(*pt)[3];,則下列說法正確的是
A)定義了基類型為int的三個指針變量
B)定義了基類型為int的具有三個元素的指針數組pt
C)定義了一個名為*pt、具有三個元素的整型數組
D)定義了一個名為pt的指針變量,它可以指向每行有三個整數元素的二維數組
(28)設有定義doublea[10],*s=a;,以下能夠代表數組元索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},i,s=0;
for(i=l;i<3;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=l;i<3;i++)
for(j=l;j<=l;j++)t+=b[i][b|j][i]];
printf("%d\n",t);
)
程序運行后的輸出結果是
A)1B)3C)4D)9
(31)若有以下定義和語句
charsl[10]="abed!",s2="\nl23\\";
printf("%d%d\n",strlen(si),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=l;i<N/2;i++)
{printf("%d",a[i]);}
printf("\n");
)
程序運行后的輸山結果是
A)1313B)2234C)3234D)1234
(33)有以下程序
#include<stdio.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>O)returnt[n-l]+f(t,n-l);
elsereturn0;}
程序運行后的輸出結果是
A)4B)10C)14D)6
(34)有以下程序
#include<stdio.h>
intfun()
{staticintx=l;
x*=2;returnx;
)
main()
{inti,s=l;
for(i=l;i<=2;i++)s=fun();
printf(M%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(M%d\nH,d);
)
程序運行后的輸山結果是
A)0B)-12C)-20D)10
(36)設有定義:
structcomplex
{intreal,unreal;}datal={l,8},data2;
則以下賦值語句中錯誤的是
A)data2=datal;B)data2=(2,6);
C)data2.real=datal.real;D)data2.real=datal.unreal;
(37)有以下程序
#include<stdio.h>
#include<string.h>
structA
{inta;charb[10];doublec;};
voidf(structAt);
main()
{structAa={1001,"ZhangDa",1098.0};f(a);
printf(,,%d,%s,%6.1f\n,',a.a,a.b,a.c);}
voidf(structAt)
{t.a=1002;strcpy(t.b,/,ChangRongM);t.c=1202.0;}
輸出結果是
A)1001,ZhangDa,1098.0B)1002,ChangRong,
1202.0
C)1001,ChangRong,10980D)1002,ZhangDa,
1202.0
(38)有以下定義和語句
structworkers
{intnum;charname[20];charc;
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=a,c=2;
printf("%d\n",a/b&c);
)
程序運行后的輸出結果是
A)0B)1C)2D)3
(40)有以下程序
#include<stdio.h>
main()
{FILE*fp;charstr[10];
fp=open("myfile.dat","\N");
fputs('"abc",pf);close(pf);
fp=open("myfile.dat","a+");
fprintf(pf,"%6",28);
rewind(pf);
fscanf(pf,"%s",str);puts(str);
close(pf);
)
程序運行后的輸出結果是
A)abcB)28c
C)abc28D)因類型不一致而出錯
二、填空題(每空2分,共30分)
請將每空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。
(1)一個隊列的初始狀態(tài)為空?,F將元素A,B,C,D,E,F,5,4,3,2,
1依次入隊,然后再依次
退隊,則元素退隊的順序為【1】.
(2)設某循環(huán)隊列的容量為50,如果頭指針front=45(指向隊頭元素的前一位置),
尾指針
rear=10(指向隊尾元素),則該循環(huán)隊列中共有[2]個元素。
(3)設二叉樹如下:
對該二叉樹進行后序遍歷的結果為
[3]\o
(4)軟件是[4】數BC
(5)有一個學生選課典肄,具卬字王的天楚式為:學生(學號,姓名,班級,年
齡),課程的「二
關系模式為:課程(課;;關系模式的鍵分別是學號和課號,
則\/\
關系模式選課IEGH
(6)設乂為1UU斷斷Xx同同時時為為33和和
7的倍數時,
關系表達式的值為真。
(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);
)
程序遠行后的輸出結果是【7】。
(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);
)
程序運行后,當輸入1463〈回車〉時,輸出結果是[8]
(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=l;j<3;i++)printf("%d",a[i][j]);
printf("\n");
)
程序運行后的輸出結果是[9]
(10)有以下程序
#include<stdio.h>
main()
{inta[]={l,2,3,4,5,6},*k[3],i=0;
while(i<3)
{k[i]=&a[2*i];
printf("%d",*k[i]);
i++;
)
)
程序運行后的輸出結果是[10]。
(11)有以下程序
#include<stdio.h>
main()
{inta[3][3]={{l,2,3},{4,5,6},{7,8,9});
intb[3]={0},i;
for(i=l;i<3;i++)b[i]=a[i][2]+a[2][i];
for(i=l;i<3;i++)printf("%d",b[i]);
printf("\n");
)
程序運行后的輸出結果是[11]0
(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[O]=temp;
)
main()
{chars[50];scanf("%s",s);fun(s);printf(M%s\n",s);}
程序運行后輸入:abcdef(回車>,則輸出結果是[12]
(13)以下程序的功能是:將值為三位正整數的變量x中的數值按照個位、十位、百
位的順序拆分并輸出。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intx=256;
printf(/,%d-%d-%d\nH,[13],x/10%10,x/100);
)
(14)以下程序用以刪除字符串中所有的空格,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{char[100]={MOurteacherteachclanguage!M};inti,j;
for(i=j=0;s[i]!='\0';i++)
if(s[i]!=''){sgj=s[i];j++;}
sU]=[14];
printf(H%s\nH,s);
)
(15)以下程序的功能是:借助指針變量找出數組元素中的最大值及其元素的下標值。
請
填空。
#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=[15];
printf(,,index=%d\n"s-a);
)
2009年9月二級C語言筆試真題及答案
一、選擇題(每題2分,共計70分)
1.(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)自頂向下。模塊化D)逐步求精
(7)軟件詳細設計產生的圖如下:
該圖是
A)N-S圖B)PAD圖C)程序流程圖D)E-R圖
8.
(8)數據庫管理系統(tǒng)是
A)操作系統(tǒng)的一部分B)在操作系統(tǒng)支持下的系統(tǒng)軟件
C)一種編譯系統(tǒng)D)一種操作系統(tǒng)
9.
(9)在E-R圖中,用來表示實體聯系的圖形是
A)橢圓形B)矩形C)菱形D)三角形
10.(10)有三個關系RS和T如下:
其中關系T由關系R和S通過某種操作得到,該操作為
A)選擇B)投影C)交D)并
11.(11)以下敘述中正確的是
A)程序設計的任務就是編寫程序代碼并上機調試
B)程序設計的任務就是確定所用的數據結構
C)程序設計的任務就是確定所用算法
D)以上三種說法都不完整
12.(12)以下選項中,能用作用戶標識符的是
A)voidB)8_8C)_0_D)unsigned
13.(13)閱盅以下程看
#include
main()
{intcase;floatprintF;
printf(”請輸入2個數)
scanf("%d%f",&case,&printF);
printf("%d%f\n",case,printf);
)
該程序在編譯時產生錯誤,其出錯原因是
A)定義語句出錯,case是關鍵字,不能用作用戶自定義標識符
B)定義語句出錯,printF不能用作用戶自定義標識符
C)定義語句無錯,scanf不能作為輸入函數使用
D)定義語句無措,printf不能輸出case的值
14.(14)表達式:(int)((double)9/2)-(9)%2的值是
A)0B)3C)4D)5
15.(15)若有定義語句:intx=10;,則表達式x-=x+x的值為
A)-20B)-10C)0D)10
16.(16)有以下程序
#include
main()
{inta=l,b=O;
printf("%d,",b=a+b);
printf("%d",a=2*b);
)
程序運行后的輸出結果是
A)0,0B)l,0C)3,2D)l,2
17.(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.(18)有以下程序
#include
main()
{intc=O,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.(19)以下程序段中,與語句:k=a>b?(b>c?l:O):O;功能相同的是
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=O;
elseif(b<=c)k=l;
D)if(a>b)k=l;
elseif(b>c)k=l;
elsek=0;
20.(20)有以下程序
#include
main()
{chars[]={"012xy"};inti,n=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.
(21)有以下程序
#include
main()
{intn=2,k=0;
while(k++&&n++>2);
printf("%d%d\n",k,n);
)
程序運行后的輸出結果是
A)02B)13C)57D)12
22.
(22)有以下定義語句,編譯時會出現編譯錯誤的是
A)chara='a';B)chara='\n';C)chara='aa';D)chara='\x2d';
23.
(23)有以下程序
#include
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.
(24)有以下程序
#include
voidfun(intp)
{intd=2;
p=d++;
printf("%d",p);
)
main()
{inta=l;
fun(a);
printf("%d\n',a);
)
程序運行后的輸出結果是
A)32B)12C)21D)22
25.
(25)以下函數findmax擬實現在數組中查找最大值并作為函數值返回,
但程序中有錯導致不能實現預定功能
#defineMIN-2147463647
intfindmax(intx[],intn)
{inti,max;
for(i=0;i{max=MIN;
if(max}
returnmax;
)
造成錯誤的原因是
A)定義語句inti,max中max未賦值
B)賦值語句max=MIN;中,不應該給max賦MIN值
C)語句if(maxD)賦值語句max=MIN;放錯了位置
26.
(26)有以下程序
#include
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)l,2,l,2B)l,2,2,lC)2,l,2,lD)2,l,l,2
27.
(27)若有定義語句:int2[4][10],*已*4[4];且0<=1<4,則錯誤的賦值是
A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][l
28.
(28)有以下程序
#include
#include
main()
{charstr[][20]={"One*World","One*Dream!"},*p=str[l];
printf("%d,",strlen(p));
printf("%s\n",p);
)
程序運行后的輸出結果是
A)9,One*WorldB)9,0ne*Dream!C)10,One*Dream!D)10,One*Wor
29.
(29)有以下程序
#include
main()
{inta[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{case0:
switch(a[i]%2)
{case0:a[i]++;break;
casel:a[i]—;
}break;
casel:a[i]=0;
)
for(i=0;i<4;i++)
printf("%d",a[i]);
printf("\n");
)
程序運行后的輸出結果是
A)3344B)2050C)3040D)0304
30.
(30)有以下程序
#include
#include
main()
{chara[10]="abcd";
printf("%d,%d\n",strlen(a),sizeof(a));
)
程序運行后的輸出結果是
A)7,4B)4,10C)8,8D)10,10
31.
(31)下面是有關C語言字符數組的描述,其中錯誤的是
A)不可以用賦值語句給字符數組名賦字符串
B)可以用輸入語句把字符串整體輸入給字符數組
C)字符數組中的內容不一定是字符串D)字符數組只能存放字符串
32.
(32)下列函數的功能是
fun(char*a,char*b)
{while((*b=*a)!='\O'){a++;b++;}}
A)將a所指字符串賦給b所指空間B)使指針b指向a所指字符串
C)將a所指字符串和b所指字符串進行比較D)檢查a和b所指字符串中是否有‘\0'
33.
(33)設有以下函數:
voidfun(intn,char*s){......}
則下面對函數指針的定義和賦值均正確的是
A)void(*pf)();pf=fun;B)void*pf();pf=fun;
C)void*pf();*pf=fun;D)void(*pf)(int,char);pf=&fun;
34.(34)有以下程序
#include
intf(intn);
main()
{inta=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);
)
intf(intn)
{staticinta=l;
n+=a++;
returnn;
)
程序運行后的輸出結果是
A)7B)8C)9D)10
35.
(35)有以下程序
#include
#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.
(36)下面結構體的定義語句中,錯誤的是
A)structord{intx;inty;intz;);structorda;
B)structord{intx;inty;intz;}structorda;
C)structord{intx;inty;intz;}n;D)struct{intx;inty;intz;}a;
37.(37)設有定義:char七以下選項中能夠使字符型指針C正確指向一個字符串的是
A)charstr[]="string";c=str;B)scanf("%s",c);C)c=getchar();D)
*c="string";
38.
(38)有以下程序
#include
#include
structA
{inta;charb[10];doublec;};
structAf(structAt);
main()
{structAa={1001,"ZhangDa",1098.0};
a=f⑶;printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
)
structAf(structAt)
{t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returnt;}
程序運行后的輸出結果是“
A)1001,ZhangDa,1098.0
B)1002,ZhangDa,1202.0
C)1001,ChangRong,1098.0
D)1002,ChangRong,1202.0
39.
(39)有以下程序
intr=8;
printf("%d\n",r>>l);
輸出結果是
A)16B)8C)4D)2
40.
(40)下列關于C語言文件的敘述中正確的是
A)文件由一系列數據一次排列組成只能構成二進制文件
B)文件由結構序列組成,可以構成二進制文件或文本文件
C)文件由數據序列組成,可以構成二進制文件或文本文件
D)文件由字符序列組成,只能是文本文件
二、填空題(每空2分,共計30分)
1.(1)某二叉樹有5個度為2的結點以及3個度為1的結點,則該二叉樹中共有【1】個
結點。
輸入答案,中間不含空格:
2.
(2)程序流程圖中菱形框表示的是【2】
輸入答案,中間不含空格:
3.
(3)軟件開發(fā)過程主要分為需求分析、設計、編碼與測試四個階段。其中【3】階段
產生"軟件需求規(guī)格說明書
輸入答案,中間不含空格:
4.
(4)在數據庫技術中,實體集之間的聯系可以是一對一或一對多或多對多的,那么"學生
II
和"可選課程"的聯系為【4】
輸入答案,中間不含空格:
5.
⑸人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關鍵字的
是[5]
輸入答案,中間不含空格:
6.
(6)若有定義語句:inta=5;,則表達式a++的值是【6】。
輸入答案,中間不含空格:
7.
⑺若有語句doublex=17;inty;,當執(zhí)行y=(int)(x/5)%2;之后y的值是【7】
輸入答案,中間不含空格:
⑻以下程序運行后的輸出結果是【8】
#include
main()
{intx=20;
printf("%d",0printf("%d\n",O!
輸入答案,中間不含空格:
(9)以下程序運行后的輸出結果是【9】
#include
main()
{inta=l,b=7;
do{
b=b/2;a+=b;
}while(b>l);
printf("%d\n',a);
)
輸入答案,中間不含空格:
(10)有一下程序
#include
main()
{int
fl=0;f2=l;
printf("%d%dn,fl,f2);
for(i=3;i<=5;i++)
{f=fl+f2;printf("%d",f);
fl=f2;f2=f;
)
printf("\n");
)
程序運行后的輸出結果是[10]
輸入答案,中間不含空格:
(11)有以下程序
#include
inta=5;
voidfun(intb)
{inta=10;
a+=b;printf("%d",a);
)
main()
{intc=20;
fun(c);a+=c;printf("%d\n",a);
)
程序運行后的輸出結果是[11]
輸入答案,中間不含空格:
(12)設有定義
structperson
{intID;charname[12];}p;
請將scanf(“%d”,【12】);語句補充完整,使其能夠為結構體變量p的
成員ID正確讀入數據。
輸入答案,中間不含空格:
1
(13)有以下程序
#include
main()
{chara[20]="Howareyou?",b[20];
scanf("%s",b);printf("%s%s\n",a,b);
)
程序運行時從鍵盤輸入:Howareyou?〈回車〉
則輸出結果為[13]
輸入答案,中間不含空格:
14.
(14)有以下程序
#include
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);
)
輸入答案,中間不含空格:
15.
(15)有以下程序
#include
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d”,x);
)
main()
{fun(6);printf("\n");}
程序運行后的輸出結果是[15]
答案:CBDABACBCDDCABBDCAABDCACDBACCBDAACABADCC
(1)14(2)邏輯判斷⑶需求分析(4)多對多(5)身份證號(6)5(7)1(8)1,0(9)5
(10)0,1,123(11)3025(12)&p.ID(13)Howareyou?How(14)16(15)1,3,6
2009年3月二級C語言筆試真題及答案
((1)—(10)每小題2分,(11)—(50)每題1分,共60分)
下列各題AXBXCXD)四個選項中,只有一個選項是正確的,請將正確選項涂寫
在答題卡相應位置上,答在試卷上不得分。
(1)下列敘述中正確的是
A)棧是“先進先出"的線性表B)隊列是"先進先出"的線性表
C)循環(huán)隊列是非線性結構D)有序性表既可以采用順序存儲結構,也可以采用鏈式存
儲結構
(2)支持子程序調用的數據結構是
A)棧B)樹C)隊列D)二叉樹
(3)某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是
A)10B)8C)6D)4
(4)下列排序方法中,最壞情況下比較次數最少的是
A)冒泡排序B)簡單選擇排序C)直接插入排序D)堆排序
(5)軟件按功能可以分為:應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)o下面屬
于應用軟件的是
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
fed
bto
tzd[ZJ
由關系R通過運算得到關系S,則所使用的運算為
A)選擇B)投影C)插入D)連接
(10)將E-R圖轉換為關系模式時,實體和聯系都可以表示為
A)屬性B)鍵C)關系D)域
(11)以下選項中合法的標識符是
A)1-1B)1—1C)-11D)1-
(12)若函數中有定義語句:intk;,則
A)系統(tǒng)將自動給k賦初值0B)這時k中值無定義C)系統(tǒng)將自動給k賦初值-ID)這
時k中無任何值
(13)以下選項中,能用作數據常量的是
A)0115B)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(,x,y);B)scanf("%f%f",&x,&y);
C)scanf(,,%lf%le",px,py);D)scanf(w%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(M%d,%d,%d\nK,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%10);s++;
}while(*s);
)
注意,字母A的ASCH碼值為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()!="\n';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”,&Lcl,a2,c2);
)
若想通過鍵盤輸入,使得al的值為12,a2的是為34,cl的值為字符a,c2的值為字符b,
程序輸出結果是:12,a,34,b,則正確的輸入格式是(以下
代表空格,<CR>代表回車)
A)12a34b<CR>
B)12
a
34
b<CR>
C)12,a,34,b<CR>
D)12
a34
b<CR>
(24)有以下程序
#include<stdio.h>
intf(intx,inty)
{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)有以下程序
#include<stdio.h>
voidfun(char
*s)
{while(*s)
{if(*s%2==0)
printf("%c",*s);
s++;
)
)
main()
{char
a[]={"good"};
fun(a);printf("\n");
)
注意:字母a的ASCH碼值為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-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,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("\n");B)if(i/8==0)continue;
C)if(i%8==0)print("\n");D)if(i%8==0)continue;
(29)若有以下定義
intx[10],*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*a[]={"abed"ef"gh"ijkH};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=nBOOK!";D)char*s;s="BOOK!”;
(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]={l,2,3,4,5,6,7,8},I;
for(i=2;i<4;i++){b=fun(&a)+b;printf("%d",b);}
printf("\n");
)
程序運行后輸出的結果是
A)10
12
B)8
10
C)10
28
D)10
16
(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,2,3,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)11C)6D)1
(40)有以下程序
#include<stdio.h>
main()
{EILE*f;
f=fopen("filea.txt"\N");
fprintf(f,"abc");
fclose(f);
)
若文本文件filea.txt中原有內容為:hello,則運行以上程序后,文件filea.txt中的內
容為
A)helloabcB)abcloC)abcD)abchello
二、填空題(每空2分,共30分)
請將每一個空的正確答案寫在答題卡【1】至[15]序號的橫線上,答在試卷上不得分。
(1)假設一個長度為50的數組(數組元素的下標從。到49)作為棧的存儲空間,棧底
指針bottom指向棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30
(數組下標),則棧中具有【1】個元素。
(2)軟件測試可分為白盒測試和黑盒測試?;韭窂綔y試屬于【2】測試。
(3)符合結構化原則的三種基本控制結構是:選擇結構、循環(huán)結構和
⑶。
(4)數據庫系統(tǒng)的核心是【4】
(5)在E-R圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實體聯系的是
[5]框。
(6)表達式(int)((double)(5/2)+2.5)的值是[6]
(7)若變量x、y已定義為int類型且x的值為99,y的值為9,請將輸出語句printf
(【7】,x/y);補充完整,使其輸出的計算結果形式為:x/y=ll
(8)有以下程序
#include<stdio.h>
main()
(
charcl,c2;
scanf("8LC",&cl);
while(cl<65||cl>90)
scanf("8ic",&cl);
c2=cl+32;
printf("8LC,&c\n°,cl,c2);
)
程序運行輸入65回車后,能否輸出結果、結束運行(請回答能或不能)【8】
(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)下列程序運行時,若輸入Iabcedl2df〈回車〉輸出結果為[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,5,4,3,2,l),i;
for(i=2;i>=0;i—)fun{&a};
for(i=0;i<10;i++)printf(M&dw,a);
printf("\n");
)
Q2)請將以下程序中的函數聲明語句補充完整
#include<stdio.h>
int[12]
I
main()
{intx,y,(*p)();
p=max;
printf("&d\n",&x,&y);
)
Intmax(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 索道牽引機施工方案
- 二零二五年度魚塘承包與漁業(yè)資源節(jié)約型生產協(xié)議3篇
- 二零二五年度城市綠化工程鮮花采購專項合同協(xié)議書3篇
- 二零二五年度家電銷售承包合同
- 二零二五年度個人教育培訓貸款擔保合同樣本
- 二零二五年度農業(yè)生態(tài)循環(huán)田地租賃合作協(xié)議3篇
- 二零二五年度購物中心物業(yè)裝修管理服務合同模板3篇
- 二零二五年度個人房產置換合同示例2篇
- 黑河塑料排水管施工方案
- 2025版水泥產品運輸保險合作協(xié)議3篇
- 現金日記賬模板(帶公式)
- 消化內科??票O(jiān)測指標匯總分析
- 2023屆上海市松江區(qū)高三下學期二模英語試題(含答案)
- 《民航服務溝通技巧》教案第16課民航服務人員平行溝通的技巧
- 深圳市物業(yè)專項維修資金管理系統(tǒng)操作手冊(電子票據)
- 混凝土結構工程施工質量驗收規(guī)范
- 2023年鐵嶺衛(wèi)生職業(yè)學院高職單招(數學)試題庫含答案解析
- 起重機械安裝吊裝危險源辨識、風險評價表
- 華北理工兒童口腔醫(yī)學教案06兒童咬合誘導
- 肝性腦病患者的護理措施課件
- 高一3班第一次月考總結班會課件
評論
0/150
提交評論