版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2010年9月全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言筆試試題
一、選擇題(每小題2分,共70分)
下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的。請(qǐng)將正確選項(xiàng)填涂在
答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下列敘述中正確的是
A)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的
B)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)
C)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)
D)上述三種說(shuō)法都不對(duì)
(2)下列敘述中正確的是
A)在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化
B)在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化
C)在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化
D)上述三種說(shuō)法都不對(duì)
(3)軟件測(cè)試的目的是
A)評(píng)估軟件可靠性B)發(fā)現(xiàn)并改正程序中的錯(cuò)誤
C)改正程序中的錯(cuò)誤D)發(fā)現(xiàn)程序中的錯(cuò)誤
(4)下面描述中,不屬于軟件危機(jī)表現(xiàn)的是
A)軟件過(guò)程不規(guī)范B)軟件開(kāi)發(fā)生產(chǎn)率低
C)軟件質(zhì)量難以控制D)軟件成本不斷提高
(5)軟件生命周期是指
A)軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程
B)軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過(guò)程
C)軟件的開(kāi)發(fā)過(guò)程
D)軟件的運(yùn)行維護(hù)過(guò)程
(6)面向?qū)ο蠓椒ㄖ?,繼承是指
A)一組對(duì)象所具有的相似性質(zhì)
B)一個(gè)對(duì)象具有另一個(gè)對(duì)象的性質(zhì)
C)各對(duì)象之間的共同性質(zhì)
D)類之間共享屬性和操作的機(jī)制
(7)層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù)劃分原則是
A)記錄長(zhǎng)度B)文件的大小
C)聯(lián)系的復(fù)雜程度D)數(shù)據(jù)之間的聯(lián)系方式
(8)一個(gè)工作人員可以使用多臺(tái)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)可被多個(gè)人使用,則實(shí)體工作人員、
與實(shí)體計(jì)算機(jī)之間的聯(lián)系是
A)一對(duì)一B)一對(duì)多
C)多對(duì)多D)多對(duì)一
(9)數(shù)據(jù)庫(kù)設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是
A)內(nèi)模式B)概念模式
C)外模式D)設(shè)計(jì)模式
(10)有三個(gè)關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是
A)自然連接B)交C)投影D)并
(11)以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是
A)一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成
B)結(jié)構(gòu)化程序使用goto語(yǔ)句會(huì)很便捷
C)在C語(yǔ)言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的
D)由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問(wèn)題
(12)以下關(guān)于簡(jiǎn)單程序設(shè)計(jì)的步驟和順序的說(shuō)法中正確的是
A)確定算法后,整理并寫出文檔,最后進(jìn)行編碼和上機(jī)調(diào)試
B)首先確定數(shù)據(jù)結(jié)構(gòu),然后確定算法,再編碼,并上機(jī)調(diào)試,最后整理文檔
C)先編碼和上機(jī)調(diào)試,在編碼過(guò)程中確定算法和數(shù)據(jù)結(jié)構(gòu),最后整理文檔
D)先寫好文檔,再根據(jù)文檔進(jìn)行編碼和上機(jī)調(diào)試,最后確定算法和數(shù)據(jù)結(jié)構(gòu)
(13)以下敘述中錯(cuò)誤的是
A)C程序在運(yùn)行過(guò)程中所有計(jì)算都以二進(jìn)制方式進(jìn)行
B)C程序在運(yùn)行過(guò)程中所有計(jì)算都以十進(jìn)制方式進(jìn)行
C)所有C程序都需要編譯鏈接無(wú)誤后才能運(yùn)行
D)C程序中整型變量只能存放整數(shù),實(shí)型變量只能存放浮點(diǎn)數(shù)
(14)有以下定義:inta;longb;doublex,y;則以下選項(xiàng)中正確的表達(dá)式是
A)a%(int)(x-y)B)a=x!=y;
C)(a*y)%bD)y=x+y=x
(15)以下選項(xiàng)中能表示合法常量的是
A)整數(shù):1,200B)實(shí)數(shù):1.5E2.0
C)字符斜杠:'VD)字符串:n\007u
(16)表達(dá)式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);
}
程序運(yùn)行后的輸出結(jié)果是
A)0B)1C)2D)3
(19)若有定義語(yǔ)句inta,b;doublex;則下列選項(xiàng)中沒(méi)有錯(cuò)誤的是
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);
)
程序運(yùn)行后的輸出結(jié)果是
A)5,11B)7,1C)7,11D)6,1
(21)有以下程序
#include<stdio.h>
main()
{inty=10;
while(y-);
printf("Y=%d\n",Y);)
程序執(zhí)行后的輸出結(jié)果是
A)y=0B)y=-1C)y=lD)while構(gòu)成無(wú)限循環(huán)
(22)有以下程序
#include<stdio.h>
main()
{charsLJ="rstuv'1;
printf("%c\n”,*s+2);
}
程序運(yùn)行后的輸出結(jié)果是
A)tuvB)字符t的ASCII碼值C)tD)出錯(cuò)
(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));
)
程序運(yùn)行后的輸出結(jié)果是
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;}
程序運(yùn)行后的輸出結(jié)果是
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)有定義語(yǔ)句:int*p[4];以下選項(xiàng)中與此語(yǔ)句等價(jià)的是
A)intp(4];B)int**p;
C)int*(p「4」);D)int(*p)「4」;
(27)下列定義數(shù)組的語(yǔ)句中,正確的是
A)intN=10;intx[N];B)#defineN10intx[N];
C)intx[0..10];D)intx口;
(28)若要定義一個(gè)具有5個(gè)元素的整型數(shù)組,以下錯(cuò)誤的定義語(yǔ)句是
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);}
程序運(yùn)行后的輸出結(jié)果是
A)1,4B)4,4C)3,1D)4,1
(30)有以下程序(函數(shù)fun只對(duì)下標(biāo)為偶數(shù)的元素進(jìn)行操作)
#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");
)
程序運(yùn)行后的輸出結(jié)果是
A)725,4,3,6,1B)1,6,3,4,527
C)7,6,54,3,2』D)1,7,3,562,1
(31)下列選項(xiàng)中,能夠滿足“若字符串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所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是
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ù)用以連接兩個(gè)字符串)
#include<stdio.h>
#include<string.h>
main()
{chara[20]="ABCD\OEFG\0",b口="IJK”;
strcat(a,b);
printf("%s\n",a);
)
程序運(yùn)行后的輸出結(jié)果是
A)ABCDE\OFG\OIJKB)ABCDIJK
C)UKD)EFGIJK
(34)有以下程序,程序中庫(kù)函數(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);
)
程序運(yùn)行后的輸出結(jié)果是
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");}
程序運(yùn)行后的輸出結(jié)果是
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);
)
程序運(yùn)行后的輸出結(jié)果是
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);
)
程序運(yùn)行后的輸出結(jié)果是
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平臺(tái)上編譯運(yùn)行,程序運(yùn)行后的輸出結(jié)果是
A)2,4B)4,4C)4,8D)10,6
(39)若有以下語(yǔ)句
TypedefstructS
(intg;charh;}T;
以下敘述中正確的是
A)可用S定義結(jié)構(gòu)體變量B)可用T定義結(jié)構(gòu)體變量
C)S是struct類型的變量D)T是structS類型的變量
(40)有以下程序
#include<stdio.h>
main()
{shortc=124;
c=c;
printf("%d\n"、C);
)
若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是
A)?2B)1248C)&0248D)?1
二、填空題(每空2分,共30分)
請(qǐng)將每空的正確答案寫在答題卡【1】至【15】序號(hào)的橫線上,答在試卷上不得分。
(1)一個(gè)棧的初始狀態(tài)為空。首先將元素5,432,1依次入棧,然后退棧一次,再將元素A,
B,C,D依次入棧,之后將所有元素全部退棧,則所有元素退棧(包括中間退棧的元素)的
順序?yàn)椋?]
(2)在長(zhǎng)度為n的線性表中,尋找最大項(xiàng)至少需要比較【2】次。
(3)一棵二叉樹(shù)有10個(gè)度為1的結(jié)點(diǎn),7個(gè)度為2的結(jié)點(diǎn),則該二叉樹(shù)共有【3】個(gè)結(jié)
點(diǎn)。
(4)僅由順序、選擇(分支)和重復(fù)(循環(huán))結(jié)構(gòu)構(gòu)成的程序是[4]程序。
(5)數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段是:需求分析,概念設(shè)計(jì),邏輯設(shè)計(jì)【5】。
(6)以下程序運(yùn)行后的輸出結(jié)果是[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);
)
程序運(yùn)行時(shí)輸入:1234567程序的運(yùn)行結(jié)果是[71
(8)在C語(yǔ)言中,當(dāng)表達(dá)式值為0時(shí)表示邏輯值“假”,當(dāng)表達(dá)式值為【8】時(shí)表示邏輯
值“真”。
(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]);
}
)
程序運(yùn)行后的輸出結(jié)果是[9],
(10)以下fun函數(shù)的功能是:找出具有N個(gè)元素的一維數(shù)組中的最小值,并作為函數(shù)
值返回。請(qǐng)?zhí)羁铡?設(shè)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;}
程序運(yùn)行后的輸出結(jié)果是[11]
(12)以下fun函數(shù)的功能是在N行M列的整形二維數(shù)組中,選出一個(gè)最大值作為函數(shù)
值返回,請(qǐng)?zhí)羁铡?設(shè)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]);
}
程序運(yùn)行后的輸出結(jié)果是[13]
(14)以下程序的功能是:借助指針變量找出數(shù)組元素中最大值所在的位置并輸出該最大值。
請(qǐng)?jiān)谳敵稣Z(yǔ)句中填寫代表最大值的輸出項(xiàng)。
#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)以下程序打開(kāi)新文件f.txt,并調(diào)用字符輸出函數(shù)將a數(shù)組中的字符寫入其中,請(qǐng)?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月二級(jí)c語(yǔ)言筆試真題
一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分。共70分)
下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫
在答題卡上,答在試卷上不得分。
(1)下列敘述中正確的是
A)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n
B)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(n/2)
C)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(log2n)
D)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(nlog2n)
(2)算法的時(shí)間復(fù)雜度是指
A)算法的執(zhí)行時(shí)間B)算法所處理的數(shù)據(jù)量
C)算法程序中的語(yǔ)句或指令條數(shù)D)算法在執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)
(3)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)
軟件的是
A)編輯軟件B)操作系統(tǒng)C)教務(wù)管理系統(tǒng)D)瀏覽器
(4)軟件(程序)調(diào)試的任務(wù)是
A)診斷和改正程序中的錯(cuò)誤B)盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤
C)發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤D)確定程序中錯(cuò)誤的性質(zhì)
(5)數(shù)據(jù)流程圖(DFD圖)是
A)軟件概要設(shè)計(jì)的工具B)軟件詳細(xì)設(shè)計(jì)的工具
C)結(jié)構(gòu)化方法的需求分析工具D)面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?/p>
(6)軟件生命周期可分為定義階段,開(kāi)發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于
A)定義階段B)開(kāi)發(fā)階段C)維護(hù)階段D)上述三個(gè)階段
(7)數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語(yǔ)言是
A)數(shù)據(jù)定義語(yǔ)言B)數(shù)據(jù)管理語(yǔ)言C)數(shù)據(jù)操縱語(yǔ)言D)數(shù)據(jù)控制語(yǔ)言
(8)在學(xué)生管理的關(guān)系數(shù)據(jù)庫(kù)中,存取?個(gè)學(xué)生信息的數(shù)據(jù)單位是
A)文件B)數(shù)據(jù)庫(kù)C)字段D)記錄
(9)數(shù)據(jù)庫(kù)設(shè)計(jì)中,用E-R圖來(lái)描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)
據(jù)庫(kù)設(shè)計(jì)的
A)需求分析階段B)邏輯設(shè)計(jì)階段
C)概念設(shè)計(jì)階段D)物理設(shè)計(jì)階段
(10)有兩個(gè)關(guān)系R和T如下:
L5L
則由關(guān)系R得到關(guān)系T的操作是
A)選擇B)投影C)交D)并
(11)以下敘述正確的是
A)C語(yǔ)言程序是由過(guò)程和函數(shù)組成的
B)C語(yǔ)言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))
C)C語(yǔ)言函數(shù)不可以單獨(dú)編譯
D)C語(yǔ)言中除了main函數(shù),其他函數(shù)不可以作為單獨(dú)文件形式存在
(12)以下關(guān)于C語(yǔ)言的敘述中正確的是
A)C語(yǔ)言中的注釋不可以?shī)A在變量名或關(guān)鍵字的中間
B)C語(yǔ)言中的變量可以再使用之前的任何位置進(jìn)行定義
C)在C語(yǔ)言算術(shù)的書(shū)寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致
D)C語(yǔ)言的數(shù)值常量中夾帶空格不影響常量值的正確表示
(13)以下C語(yǔ)言用戶標(biāo)示符中,不合法的是
A)_lB)AaBcC)a_bD)a~b
(14)若有定義:doublea=22;inti=0,k=18;則不符合C語(yǔ)言規(guī)定的賦值語(yǔ)句是
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);
)
當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第一列開(kāi)始,<CR>代表回車,注意:回車是一個(gè)字
符)12<CR>34<CR>則輸出結(jié)果是:
A、1234B、12C、12D、12
334
16、以下關(guān)于C語(yǔ)言數(shù)據(jù)類型使用的敘述中錯(cuò)誤的是:
A、若要準(zhǔn)確無(wú)誤的表示自然數(shù),應(yīng)使用整數(shù)類型。
B、若要保存帶有多位小數(shù)的數(shù)據(jù),應(yīng)使用雙精度類型。
C、若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型。
D、若只處理”真”和“假"兩種邏輯值,應(yīng)使用邏輯類型。
17、若a是數(shù)值類型,則邏輯表達(dá)式(a==l)II(a!=l)的值是:
A、1B、0C、2D、不知道a的值,不能確定
18、以下選項(xiàng)中與if(a==l)a=b;elsea++;語(yǔ)句功能不同的switch語(yǔ)句是:
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語(yǔ)句
if(a<b)
if(a<c)k=a;
elsek=c;
else
if(b<c)k=b;
elsek=c;
以下選項(xiàng)中與上述if語(yǔ)句等價(jià)的語(yǔ)句是
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)
}
程序運(yùn)行后的輸出結(jié)果是
(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);
程序運(yùn)行后的輸出結(jié)果是
(A)9,18(B)8,11(C)7,11(D)10,14
(22)有以下程序,其中k的初值為八進(jìn)制數(shù)
#include<stdio.h>
main()
{intk=011;
printf(,,%d\n,,,k++);
程序運(yùn)行后的輸出結(jié)果是
(A)12(B)ll(C)10(D)9
(23)下列語(yǔ)句中,正確的是
A)char*s;s=''Olympic”;B)chars[7];s="01ympic”;
C)char*s;s={"Olympic"};D)chars[7];s={"Olympic''};
(24似卜關(guān)于return語(yǔ)句的敘述中正確的是
A)一個(gè)自定義函數(shù)中必須有一條return語(yǔ)句
B)一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句
C)定義成viod類型的函數(shù)中可以有帶返回值的return語(yǔ)句
D)沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處
(25)下列選項(xiàng)中,能夠正確定義數(shù)組的語(yǔ)句是
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);
}
程序運(yùn)行后的輸出結(jié)果是
A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B
(27)若有定義int(*pt)⑶;,則下列說(shuō)法正確的是
A)定義了基類型為int的三個(gè)指針變量
B)定義了基類型為int的具有三個(gè)元素的指針數(shù)組pto
C)定義了一個(gè)名為*pt、具有三個(gè)元素的整型數(shù)組
D)定義了一個(gè)名為pt的指針變量,它可以指向每行有三個(gè)整數(shù)元素的二維數(shù)組
(28)設(shè)有定義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);
}
程序運(yùn)行后的輸出結(jié)果是
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);
程序運(yùn)行后的輸出結(jié)果是
A)1B)3C)4D)9
(31)若有以下定義和語(yǔ)句A
charsl[10]="abed!",*s2=nnl23\V;
printf(H%d%d\nn,strlen(s1),strlen(s2));
則輸出結(jié)果是
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*');
)
程序運(yùn)行后的輸出結(jié)果是
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;
程序運(yùn)行后的輸出結(jié)果是
)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);}
程序運(yùn)行后的輸出結(jié)果是
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);
)
程序運(yùn)行后的結(jié)果是
A)0B)-12C)-20D)10
(36)沒(méi)有定義
structcomplex
{intreal,unreal;}
datal={l,8},data2;
則以下賦值語(yǔ)句中的錯(cuò)誤的是
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;}
程序運(yùn)行后的輸出結(jié)果是
A)100l,ZhangDa,1098.0B)1002,ChangRong,1202.0
C)1001,ChangRong,1098.0D)1002,ZhangDa,1202.0
(38)有以下定義和語(yǔ)句
structworkers
{intnum;charname[20];harc;
struct
{intday;intmonth;intyear;}s;
);
structworkersw,*pw;
pw=&w
能給w中year成員賦1980的語(yǔ)句是
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);
)
程序運(yùn)行后的結(jié)果是
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);
)
程序運(yùn)行后的輸出結(jié)果是
A)abcB)28cC)abc28D)因類型不一致而出錯(cuò)
二、填空題(每空2分,共30分)
請(qǐng)將每空的正確答案寫在答題卡【1】至【15】序號(hào)的橫線上,答在試卷上不得分。
(1)一個(gè)隊(duì)列的初始狀態(tài)為空,先將元素A,CB,C,D,E,F,5,4,3,2,1依次入隊(duì),然后再依次退隊(duì),
則元素退隊(duì)的順序?yàn)開(kāi)_。
(2)設(shè)某循環(huán)列隊(duì)的容量為50,如果頭指針front-45(指向隊(duì)頭元素的前一位置),尾指針
reai^lO(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有個(gè)元素。
(3)設(shè)二叉數(shù)如下:
A
的/\
BC
/\
DF
\/\
EGH
對(duì)該二叉樹(shù)進(jìn)行后序遍歷的結(jié)果為
(4)軟件是、數(shù)據(jù)和文檔的集合。
(5)有一個(gè)學(xué)生選課的關(guān)系,其中學(xué)生的關(guān)系模式為:學(xué)生(學(xué)號(hào),姓名,班級(jí),年齡),
課程的關(guān)系模式為:課程(課號(hào),課程名,學(xué)時(shí)),其中兩個(gè)關(guān)系模式的鍵分別是學(xué)好和課
號(hào),則關(guān)系模式選課可以定義為:選課(學(xué)號(hào),課號(hào),成績(jī))。
(6)設(shè)x為int型變量,請(qǐng)寫出一個(gè)關(guān)系表達(dá)式,用以判斷x同時(shí)為3和7
的倍數(shù)時(shí),關(guān)系表達(dá)式的值為真。
(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);
)
程序運(yùn)行后的輸出結(jié)果是: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);
)
程序運(yùn)行后,當(dāng)輸入1463V回車〉時(shí),輸出結(jié)果是
(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");
)
程序運(yùn)行后的輸出結(jié)果是
(10)有以下程序
#include<stdio.h>
main()
{int[]={l,2,3A5,6},*k[3],i=0;
while(i<3)
{k[i]=&a[2*i];
i++;}
}程序運(yùn)行后的輸出結(jié)果是
(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,,);
)
程序運(yùn)行后的結(jié)果是
(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);
)
程序運(yùn)行后輸入:abcdefv回車〉,則輸出結(jié)果是
13、以下程序的功能是:將值為三位正整數(shù)的變量x中的數(shù)值按照個(gè)位、十位、百位的順
序拆分并輸出。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{intx=256;
printf(,,%d-%d-%d\n",,x/10%10,x/100);
)
14、以下程序用以刪除字符串中的所有的空格,請(qǐng)?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ù)組元素中的最大值及其元素的下標(biāo)值。請(qǐng)?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月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷
C語(yǔ)言程序設(shè)計(jì)(考試時(shí)間90分鐘,滿分100分)
一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)
(1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是
A)循環(huán)隊(duì)列B)帶鏈隊(duì)列C)二叉樹(shù)D)帶鏈棧
(2)下列數(shù)據(jù)結(jié)果中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是
A)循環(huán)隊(duì)列B)棧C)隊(duì)列D)二叉樹(shù)
(3)對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是
A)隊(duì)頭指針是固定不變的B)隊(duì)頭指針一定大于隊(duì)尾指針
C)隊(duì)頭指針一定小于隊(duì)尾指針
D)隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針
(4)算法的空間復(fù)雜度是指
A)算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間
B)算法所處理的數(shù)據(jù)量
C)算法程序中的語(yǔ)句或指令條數(shù)
D)算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)
(5)軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是
A)低內(nèi)聚低耦合B)高內(nèi)聚低耦合
C)低內(nèi)聚高耦合D)高內(nèi)聚高耦合
(6)下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是
A)可封裝D)自頂向下C)模塊化D)逐步求精
(7)軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下:
該圖是
A)N-S圖B)PAD圖
C)程序流程圖D)E-R圖
(8)數(shù)據(jù)庫(kù)管理系統(tǒng)是
A)操作系統(tǒng)的一部分B)在操作系統(tǒng)支持下的系統(tǒng)軟件
C)一種編譯系統(tǒng)D)一種操作系統(tǒng)
(9)在E-R圖中,用來(lái)表示實(shí)體聯(lián)系的圖形是
A)橢圓圖B)矩形C)菱形D)三角形
A)選擇B)投影C)交D)并
(11)以下敘述中正確的是
A)程序設(shè)計(jì)的任務(wù)就是編寫程序代碼并上機(jī)調(diào)試
B)程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)
C)程序設(shè)計(jì)的任務(wù)就是確定所用算法
D)以上三種說(shuō)法都不完整
(12)以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是
A)voidB)8_8C)_0_D)unsigned
(13)閱讀以下程序
#include
main()
{intcase;floatprintF;
printf(“請(qǐng)輸入2個(gè)數(shù):”);
scanf("%d%f',&case,&pjrintF);
printf("%d%f\n,,,case,printF);
}
該程序編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是
A)定義語(yǔ)句出錯(cuò),case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符
B)定義語(yǔ)句出錯(cuò),printF不能用作用戶自定義標(biāo)識(shí)符
C)定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用
D)定義語(yǔ)句無(wú)錯(cuò),printf不能輸出case的值
(14)表達(dá)式:(int)((double)9/2)-(9)%2的值是
A)0B)3C)4D)5
15)若有定義語(yǔ)句:intx=10;,則表達(dá)式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);}
程序運(yùn)行后的輸出結(jié)果是
A)0,0B)1,0C)3,2D)1,2
17)設(shè)有定義:inta=l,b=2,c=3;,以下語(yǔ)句中執(zhí)行效果與其它三個(gè)不同的是
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);
)
程序運(yùn)行后的輸出結(jié)果是
A)3B)5C)7D)9
(19)以下程序段中,與語(yǔ)句: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);}
程序運(yùn)行后的輸出結(jié)果是
A)0B)2C)3D)5
(21)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年份合伙人離職補(bǔ)償及業(yè)務(wù)交接協(xié)議4篇
- 二零二五版煤炭購(gòu)銷居間代理合同樣本4篇
- 2025版美甲店電子商務(wù)平臺(tái)開(kāi)發(fā)與運(yùn)營(yíng)合同4篇
- 二零二四年度中介提供房產(chǎn)保險(xiǎn)服務(wù)合同2篇
- 個(gè)人與個(gè)人2024年度藝術(shù)品買賣合同2篇
- 2025年度房地產(chǎn)銷售代理個(gè)人勞務(wù)派遣合作協(xié)議4篇
- 二零二四年度醫(yī)療器械委托運(yùn)輸與供應(yīng)鏈優(yōu)化整合合同3篇
- 2025年度臨時(shí)用工招聘與培訓(xùn)服務(wù)合同4篇
- 二零二五版智慧社區(qū)樓頂廣告資源租賃合同4篇
- 二零二五年度餐飲行業(yè)食品安全責(zé)任書(shū)協(xié)議3篇
- 2025屆高考語(yǔ)文復(fù)習(xí):散文的結(jié)構(gòu)與行文思路 課件
- 拉薩市2025屆高三第一次聯(lián)考(一模)語(yǔ)文試卷(含答案解析)
- 《保密法》培訓(xùn)課件
- 回收二手機(jī)免責(zé)協(xié)議書(shū)模板
- (正式版)JC∕T 60023-2024 石膏條板應(yīng)用技術(shù)規(guī)程
- (權(quán)變)領(lǐng)導(dǎo)行為理論
- 2024屆上海市浦東新區(qū)高三二模英語(yǔ)卷
- 2024年智慧工地相關(guān)知識(shí)考試試題及答案
- GB/T 8005.2-2011鋁及鋁合金術(shù)語(yǔ)第2部分:化學(xué)分析
- 不動(dòng)產(chǎn)登記實(shí)務(wù)培訓(xùn)教程課件
- 不銹鋼制作合同范本(3篇)
評(píng)論
0/150
提交評(píng)論