![歷年二級C語言筆試真題及答案(含2010年答案)_第1頁](http://file4.renrendoc.com/view11/M00/01/39/wKhkGWVzFm-ANDCeAANbZyNNU0U170.jpg)
![歷年二級C語言筆試真題及答案(含2010年答案)_第2頁](http://file4.renrendoc.com/view11/M00/01/39/wKhkGWVzFm-ANDCeAANbZyNNU0U1702.jpg)
![歷年二級C語言筆試真題及答案(含2010年答案)_第3頁](http://file4.renrendoc.com/view11/M00/01/39/wKhkGWVzFm-ANDCeAANbZyNNU0U1703.jpg)
![歷年二級C語言筆試真題及答案(含2010年答案)_第4頁](http://file4.renrendoc.com/view11/M00/01/39/wKhkGWVzFm-ANDCeAANbZyNNU0U1704.jpg)
![歷年二級C語言筆試真題及答案(含2010年答案)_第5頁](http://file4.renrendoc.com/view11/M00/01/39/wKhkGWVzFm-ANDCeAANbZyNNU0U1705.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
年9月全國計(jì)算機(jī)等級考試二級筆試試卷1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是A)循環(huán)隊(duì)列B)帶鏈隊(duì)列C)二叉樹D)帶鏈棧2)下列數(shù)據(jù)結(jié)果中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是A)循環(huán)隊(duì)列B)棧C)隊(duì)列D)二叉樹3)對于循環(huán)隊(duì)列,下列敘述中正確的是A)隊(duì)頭指針是固定不變的B)隊(duì)頭指針一定大于隊(duì)尾指針C)隊(duì)頭指針一定小于隊(duì)尾指針D)隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針4)算法的空間復(fù)雜度是指A)算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲(chǔ)空間B)算法所處理的數(shù)據(jù)量C)算法程序中的語句或指令條數(shù)D)算法在執(zhí)行過程中所需要的臨時(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)可封裝B)自頂向下C)模塊化D)逐步求精7)軟件詳細(xì)設(shè)計(jì)產(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圖中,用來表示實(shí)體聯(lián)系的圖形是A)橢圓圖B)矩形C)菱形D)三角形10)有三個(gè)關(guān)系R,S和T如下:其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為A)
選擇B)
投影C)
交D)
并11)以下敘述中正確的是A)程序設(shè)計(jì)的任務(wù)就是編寫程序代碼并上機(jī)B)程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)C)程序設(shè)計(jì)的任務(wù)就是確定所用算法D)以上三種說法都不完整12)以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是A)voidB)8_8C)_0_D)unsigned13)閱讀以下程序#include<stdio.h>main(){intcase;floatprintF;printf(“請輸入2個(gè)數(shù):”);scanf(“%d%f”,&case,&pjrintF);printf(“%d%f\n”,case,printF);}該程序編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是A)定義語句出錯(cuò),case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符B)定義語句出錯(cuò),printF不能用作用戶自定義標(biāo)識(shí)符C)定義語句無錯(cuò),scanf不能作為輸入函數(shù)使用D)定義語句無錯(cuò),printf不能輸出case的值14)表達(dá)式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)515)若有定義語句:intx=10;,則表達(dá)式x-=x+x的值為A)-20B)-10C)0D)1016)有以下程序#include<stdio.h>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,217)設(shè)有定義:inta=1,b=2,c=3;,以下語句中執(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<stdio.h>main(){intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=kcase2:c++;break;case4:c+=2;break;}printf(“%d\n”,c);}程序運(yùn)行后的輸出結(jié)果是A)3B)5C)7D)919)以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c))k=1;elsek=0;B)if((a>b)||(b>c)k=1;elsek=0;C)if(a<=b)k=0;elseif(b<=c)k=1;D)if(a>b)k=1;elseif(b>c)k=1;elsek=0;20)有以下程序#include<stdio.h>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);}程序運(yùn)行后的輸出結(jié)果是A)0B)2C)3D)521)有以下程序#include<stdio.h>main(){intn=2,k=0;while(k++&&n++>2);printf(“%d%d\n”,k,n);}程序運(yùn)行后的輸出結(jié)果是A)02B)13C)57D)1222)有以下定義語句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是A)chara=’a’B)chara=’\n’;C)chara=’aa’;D)chara=’\x2d’;23)有以下程序#include<stdio.h>main(){charc1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII碼為65,程序運(yùn)行后的輸出結(jié)果是A)E,68B)D,69C)E,DD)輸出無定值24)有以下程序#include<stdio.h>voidfun(intp){intd=2;p=d++;printf(“%d”,p);}main(){inta=1;fun(a);printf(“%d\n”,a);}程序運(yùn)行后的輸出結(jié)果是A)32B)12C)21D)2225)以下函數(shù)findmax擬實(shí)現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯(cuò)導(dǎo)致不能實(shí)現(xiàn)預(yù)定功能#defineMIN-2147483647intfindmax(intx[],intn){inti,max;for(i=0;i<n;i++){max=MIN;if(max<x[i])max=x[i];}returnmax;}造成錯(cuò)誤的原因是A)定義語句inti,max;中max未賦初值B)賦值語句max=MIN;中,不應(yīng)給max賦MIN值C)語句if(max<x[i])max=x[i];中判斷條件設(shè)置錯(cuò)D)賦值語句max=MIN;放錯(cuò)了位置(26)有以下程序#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序運(yùn)行后的輸出結(jié)果是A)1,2,1,B)1,2,2,1C)2,1,2,D)2,1,1,227)若有定義語句:inta[4][10],*p,*q[4];且0≤i<4,則錯(cuò)誤的賦值是A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1]28)有以下程序#include<stdio.h>#include<string.h>main(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序運(yùn)行后的輸出結(jié)果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World29)有以下程序#include<stdio.h>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;case1:a[i]--;}break;case1:a[i[=0;}for(i=0;i<4;i++)printf(“%d”,a[i]);printf(“\n”);}A)3344B)2050C)3040D)030430)有以下程序#include<stdio.h>#include<string.h>main(){chara[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a);}程序運(yùn)行后的輸出結(jié)果是A)7,4B)4,10C)8,8D)10,1031)下面是有關(guān)C語言字符數(shù)組的描述,其中錯(cuò)誤的是A)不可以用賦值語句給字符數(shù)組名賦字符串B)可以用輸入語句把字符串整體輸入給字符數(shù)組C)字符數(shù)組中的內(nèi)容不一定是字符串D)字符數(shù)組只能存放字符串32)下列函數(shù)的功能是fun(char*a,char*b){while((*b=*a)!=’\0’){a++,b++;}}A)將a所指字符串賦給b所指空間B)使指針b指向a所指字符串C)將a所指字符串和b所指字符串進(jìn)行比較D)檢查a和b所指字符串中是否有’\0’33)設(shè)有以下函數(shù)voidfun(intn,char*s){……}則下面對函數(shù)指針的定義和賦值均是正確的是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(“%d\n”,s);}intf(intn){staticinta=1;n+=a++;returnn;}程序運(yùn)行以后的輸出結(jié)果是A)7B)8C)9D)1035)有以下程序#include<stdio.h>#definef(x)x*x*xmain(){inta=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序運(yùn)行后的輸出結(jié)果是A)10,64B)10,10C)64,10D)64,6436)下面結(jié)構(gòu)體的定義語句中,錯(cuò)誤的是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)設(shè)有定義:char*c;,以下選項(xiàng)中能夠使字符型指針c正確指向一個(gè)字符串的是A)charstr[]=”string”;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(){structAa={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}structAf(structAt)鏈接成一個(gè)簡單的鏈表,并在while循環(huán)中輸出鏈表結(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù),請?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=’\0’;
p=h;
while(p){printf(“&d”,p->data);【15】;}
}2008年9月二級C語言筆試真題及答案(1)一個(gè)棧的初始狀態(tài)為空。現(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是()。A)12345ABCDEB)EDCBA54321C)ABCDE12345D)54321EDCBA(2)下列敘述中正確的是()。A)循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,因此,循環(huán)隊(duì)列是非線性結(jié)構(gòu)B)在循環(huán)隊(duì)列中,只需要隊(duì)頭指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況C)在循環(huán)隊(duì)列中,只需要隊(duì)尾指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況D)循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定3)在長度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是()。A)O(n)B)O(n2)C)O(log2n)D)O(nlog2n)4)下列敘述中正確的是()。A)順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的B)順序存儲(chǔ)結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對非線性結(jié)構(gòu)C)順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表D)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間5)數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。A)控制流B)事件驅(qū)動(dòng)C)模塊調(diào)用D)數(shù)據(jù)流6)在軟件開發(fā)中,需求分析階段可以使用的工具是()。A)N-S圖B)DFD圖C)PAD圖D)程序流程圖7)在面向?qū)ο蠓椒ㄖ校粚儆凇皩ο蟆被咎攸c(diǎn)的是()。A)一致性B)分類性C)多態(tài)性D)標(biāo)識(shí)唯一性(8)一間宿舍可住多個(gè)學(xué)生,則實(shí)體宿舍和學(xué)生之間的聯(lián)系是()。A)一對一B)一對多C)多對一D)多對多(9)在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。A)人工管理階段B)文件系統(tǒng)階段C)數(shù)據(jù)庫系統(tǒng)階段D)三個(gè)階段相同(10)有三個(gè)關(guān)系R、S和T如下:RSTABBCABCm113m13n235由關(guān)系R和S通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。A)笛卡爾積B)交C)并D)自然連接(11)以下敘述中正確的是()。A)C程序的基本組成單位是語句B)C程序中的每一行只能寫一條語句C)簡單C語句必須以分號(hào)結(jié)束D)C語句必須在一行內(nèi)寫完12)計(jì)算機(jī)能直接執(zhí)行的程序是()。A)源程序B)目標(biāo)程序C)匯編程序D)可執(zhí)行程序13)以下選項(xiàng)中不能作為C語言合法常量的是()。A)'cd'B)0.1e+6C)"\a"D)'\011'14)以下選項(xiàng)中正確的定義語句是()。A)doublea;b;B)doublea=b=7;C)doublea=7,b=7;D)double,a,b;15)以下不能正確表示代數(shù)式2abcd的C語言表達(dá)式是()。A)2*a*b/c/dB)a*b/c/d*2C)a/c/d*b*2D)2*a*b/c*d16)C源程序中不能表示的數(shù)制是()。A)二進(jìn)制B)八進(jìn)制C)十進(jìn)制D)十六進(jìn)制17)若有表達(dá)式(w)?(--x):(++y),則其中與w等價(jià)的表達(dá)式是()。A)w==lB)w==0C)w!=lD)w!=018)執(zhí)行以下程序段后,w的值為()。intw='A',x=14,y=15;w=((x||y)&&(w<'a'));A)-1B)NULLC)lD)019)若變量已正確定義為int型,要通過語句scanf("%d,%d,%d",&a,&b,&c);給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯(cuò)誤的是(ò代表一個(gè)空格符)()。A)òòò1,2,3<回車>B)1ò2ò3<回車>C)1,òòò2,òòò3<回車>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\n”,a,b,c);程序的輸出結(jié)果是()。A)a=10b=50c=10B)a=10b=50c=30C)a=10b=30c=10D)a=50b=30c=50(21)若有定義語句:intm[]={5,4,3,2,1},i=4;,則下面對m數(shù)組元素的引用中錯(cuò)誤的是()。A)m[--i]B)m[2*2]C)m[m[0]]D)m[m[i]](22)下面的函數(shù)調(diào)用語句中func函數(shù)的實(shí)參個(gè)數(shù)是()。func(f2(v1,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;則錯(cuò)誤引用x數(shù)組元素的是()。A)*pB)x[5]C)*(p+1)D)*x(24)若有定義語句:chars[10]="1234567\0\0";,則strlen(s)的值是()。A)7B)8C)9D)10(25)以下敘述中錯(cuò)誤的是()。A)用戶定義的函數(shù)中可以沒有return語句B)用戶定義的函數(shù)中可以有多個(gè)return語句,以便可以調(diào)用一次返回多個(gè)函數(shù)值C)用戶定義的函數(shù)中若沒有return語句,則應(yīng)當(dāng)定義函數(shù)為void類型D)函數(shù)的return語句中可以沒有表達(dá)式(26)以下關(guān)于宏的敘述中正確的是()。A)宏名必須用大寫字母表示B)宏定義必須位于源程序中所有語句之前C)宏替換沒有數(shù)據(jù)類型限制D)宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間*****(27)有以下程序#include<stdio.h>main(){inti,j;for(i=3;i>=l;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序的運(yùn)行結(jié)果是()。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);elseprintf("%d",++y);printf("%d\n",x++);}程序的運(yùn)行結(jié)果是()。A)331B)41C)2D)1(29)有以下程序#include<stdio.h>main(){inti=5;do{if(i%3=1)if(i%5==2){printf("*%d",i);break;}i++;}while(i!=0);printf("\n");}程序的運(yùn)行結(jié)果是()。A)*7B)*3*5C)*5D)*2*6(30)有以下程序#include<stdio.h>intfun(inta,intb){if(b==0)returna;elsereturn(fun(--a,--b));}main(){printf("%d\n",fun(4,2));}程序的運(yùn)行結(jié)果是()。A)1B)2C)3D)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));}程序的運(yùn)行結(jié)果是()。A)0B)10C)20D)出錯(cuò)(32)有以下程序#include<stdio.h>voidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={1,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");}程序的運(yùn)行結(jié)果是()。A)l,2,3,4,5,6,7,8,9,0,B)2,l,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("%d,",p->y);printf("%d\n",(++p)->x);}程序的運(yùn)行結(jié)果是()。A)10,1B)20,1C)10,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-1-i];a[n-1-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");}程序的運(yùn)行結(jié)果是()。A)345678B)876543C)1098765D)321678(35)有以下程序#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i];}main(){intx[][N]={{1,2,3),{4),{5,6,7,8),{9,10}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf("%d,",y[i]);printf("\n");}程序的運(yùn)行結(jié)果是()。A)l,2,3,4,B)1,0,7,0,C)1,4,5,9,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[4][4]={{1,2,3,4),{11,12,13,14},{2l,22,23,24},{31,32,33,34}};printf("%d\n",fun(a,4,0));}程序的運(yùn)行結(jié)果是()。A)4B)34C)31D)32(37)有以下程序#include<stdio.h>main(){structSTU{charname[9];charsex;doublescore[2];};structSTUa={"Zhao",'m',85.0,90.0),b={"Qian",'f',95.0,92.0);b=a;printf("%s,%c,%2.0f,%2.0f\n",,b.sex,b.score[0],b.score[1]);}程序的運(yùn)行結(jié)果是()。A)Qian,f,95,92B)Qian,m,85,90C)Zhao,f,95,92D)Zhao,m,85,90(38)假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的結(jié)點(diǎn):headabcdatanext↑p↑q則以下選項(xiàng)中可將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語句組是()。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<<1);}程序的運(yùn)行結(jié)果是()。A)40B)16C)8D)4(40)有以下程序#include<stdio.h>main(){FILE*pf;char*s1="China",*s2="Beijing";pf=fopen("abc.dat","wb+");fwrite(s2,7,l,pf);rewind(pf);fwrite(s1,5,1,pf);fclose(pf);}以上程序執(zhí)行后abc.dat文件的內(nèi)容是()。A)ChinaB)ChinangC)ChinaBeijingD)BeijingChina二、填空題(每空2分,共30分)1)對下列二叉樹進(jìn)行中序遍歷的結(jié)果【1】。ABCDEFXYZ(2)按照軟件測試的一般步驟,集成測試應(yīng)在【2】測試之后進(jìn)行。(3)軟件工程三要素包括方法、工具和過程,其中,【3】支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制和管理。(4)數(shù)據(jù)庫設(shè)計(jì)包括概念設(shè)計(jì)、【4】和物理設(shè)計(jì)。(5)在二維表中,元組的【5】不能再分成更小的數(shù)據(jù)項(xiàng)。(6)設(shè)變量a和b已正確定義并賦初值。請寫出與a-=a+b等價(jià)的賦值表達(dá)式【6】。(7)若整型變量a和b中的值分別為7和9,要求按以下格式輸出a和b的值:a=7b=9請完成輸出語句:printf("【7】",a,b);。(8)以下程序的輸出結(jié)果是【8】。#include<stdio.h>main(){inti,j,sum;for(i=3;i>=1;i--){sum=0;for(j=1;j<=i;j++)sum+=i*j;}printf("%d\n",sum);}(9)以下程序的輸出結(jié)果是【9】。#include<stdio.h>main(){intj,a[]={1,3,5,7,9,11,13,15},*p=a+5;for(j=3;j;j--){switch(j){case1:case2:printf("%d",*p++);break;case3:printf("%d",*(--p));}}}(10)以下程序的輸出結(jié)果是【10】。#include<stdio.h>#defineN5intfun(int*s,inta,intn){intj;*s=a;j=n;while(a!=s[j])j--;returnj;}main(){ints[N+1];intk;for(k=l;k<=N;k++)s[k]=k+l;printf("%d\n",fun(s,4,N));}(11)以下程序的輸出結(jié)果是【11】。#include<stdio.h>intfun(intx){staticintt=0;return(t+=x);}main(){ints,i;for(i=l;i<=5;i++)s=fun(i);printf("%d\n",s);}(12)以下程序按下面指定的數(shù)據(jù)給x數(shù)組的下三角置數(shù),并按如下形式輸出,請?zhí)羁铡?3726915810#include<stdio.h>main(){intx[4][4],n=0,i,j;for(j=0;j<4;j++)for(i=3;i>=j;【12】){n++;x[i][j]=【13】;}for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%3d",x[i][j]);printf("\n");}}13)以下程序的功能是:通過函數(shù)func輸入字符并統(tǒng)計(jì)輸入字符的個(gè)數(shù)。輸入時(shí)用字符@作為輸入結(jié)束標(biāo)志。請?zhí)羁铡?include<stdio.h>long【14】;main(){longn;n=func();printf("n=%ld\n",n);}longfunc(){longm;for(m=0;getchar()!='@';【15】);retumm;}2008年4月二級C語言筆試真題及答案一、選擇題(共70分)
(1)程序流程圖中指有箭頭的線段表示的是A)圖元關(guān)系B)數(shù)據(jù)流C)控制流D)調(diào)用關(guān)系
(2)結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括A)多態(tài)性B)自頂向下C)模塊化D)逐步求精
(3)軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是A)低內(nèi)聚低耦合B)高內(nèi)聚低耦合C)低內(nèi)聚高耦合D)高內(nèi)聚高耦合
(4)在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是A)可行性分析報(bào)告B)軟件需求規(guī)格說明書C)概要設(shè)計(jì)說明書D)集成測試計(jì)劃
(5)算法的有窮性是指A)算法程序的運(yùn)行時(shí)間是有限的B)算法程序所處理的數(shù)據(jù)量是有限的C)算法程序的長度是有限的D)算法只能被有限的用戶使用
(6)對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是
A)快速排序B)冒泡排序C)直接插入排序D)堆排序
(7)下列關(guān)于棧的敘述正確的是
A)棧按“先進(jìn)先出”組織數(shù)據(jù)B)棧按“先進(jìn)后出”組織數(shù)據(jù)C)只能在棧底插入數(shù)據(jù)D)不能刪除數(shù)據(jù)
(8)在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于[C]
A)需求分析階段B)概念設(shè)計(jì)階段C)邏輯設(shè)計(jì)階段D)物理設(shè)計(jì)階段
(9)有三個(gè)關(guān)系R、S和T如下:
T
BCD
a0k1
RS
BCD
a0k1
b1n1
BCD
f3h2
a0k1
n2x1有關(guān)系R和S通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為A)并B)自然連接C)笛卡爾積D)交
(10)設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程C(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績),則表SC的關(guān)鍵字(鍵或碼)為
A)課號(hào),成績B)學(xué)號(hào),成績C)學(xué)號(hào),課號(hào)D)學(xué)號(hào),姓名,成績
(11)以下敘述中正確的是
A)C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面B)C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個(gè)語句
C)C程序書寫格式自由,一個(gè)語句可以寫在多行上D)用C語言編寫的程序只能放在一個(gè)程序文件中
(12)以下選項(xiàng)中不合法的標(biāo)識(shí)符是A)printB)FORC)&aD)_00
(13)以下選項(xiàng)中不屬于字符常量的是A)'C'B)"C"C)'\xCC0'D)'\072'
(14)設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是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;B)charA=65+1,b='b';C)floata=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的ASCll十進(jìn)制代碼為97,則執(zhí)行上述程序段后輸出結(jié)果是
A)因變量類型與格式描述符的類型不匹配輸出無定值B)輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值C)a,97,12k=12D)a,97,k=12(17)已知字母A的ASCⅡ代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達(dá)式是
A)kk>='A'&&kk<='Z'B)!(kk>='A'‖kk<='Z')C)(kk+32)>='a'&&(kk+32)<='z'D)isalpha(kk)&&(kk<91)
(18)當(dāng)變量c的值不為2、4、6時(shí),值也為“真”的表達(dá)式是
A)(c==2)‖(c==4)‖(c==6)B)(c>=2&&c<=6)‖(c!=3)‖(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);其輸出結(jié)果是
A)程序段有語法錯(cuò)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);}程序的運(yùn)行結(jié)果是
A)a=1,b=0B)a=2,b=2C)a=1,b=1D)a=2,b=1
(21)有以下程序
#include<stdio.h>
main()
{intx=8;
for(;x>0;x--)
{if(x%3){printf(“%d,”,x--);continue;}
printf(“%d,”,--x);}}程序的運(yùn)行結(jié)果是
A)7,4,2B)8,7,5,2C)9,7,6,4D)8,5,4,2
(22)以下不構(gòu)成無限循環(huán)的語句或者語句組是
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;printf(“y=%d\n”,y);}程序的運(yùn)行結(jié)果是A)y=0B)y=1C)y=2D)y=3
(24)以下錯(cuò)誤的定義語句是
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)設(shè)有如下程序段
chars[20]=“Bejing”,*p;
p=s;則執(zhí)行p=s;語句后,以下敘述正確的是
A)可以用*p表示s[0]B)s數(shù)組中元素的個(gè)數(shù)和p所指字符串長度相等
C)s和p都是指針變量D)數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等
(26)若有定義:inta[2][3];,以下選項(xiàng)中對a數(shù)組元素正確引用的是
A)a[2][!1]B)a[2][3]C)a[0][3]D)a[1>2][!1]
(27)有定義語句:chars[10];,若要從終端給s輸入5個(gè)字符,錯(cuò)誤的輸入語句是
A)gets(&s[0]);B)scanf(“%s”,s+1);C)gets(s);D)scanf(“%s”,s[1]);
(28)以下敘述中錯(cuò)誤的是
A)在程序中凡是以“?!遍_始的語句行都是預(yù)處理命令行B)預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束
C)#defineMAX是合法的宏定義命令行D)C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的
(29)以下結(jié)構(gòu)體類型說明和變量定義中正確的是
A)typedefstructB)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)以下敘述中錯(cuò)誤的是
A)gets函數(shù)用于從終端讀入字符串B)getchar函數(shù)用于從磁盤文件讀入字符
C)fputs函數(shù)用于把字符串輸出到文件D)fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件
(31)有以下程序
#include<stdio.h>
main()
{ints[12]={1,2,3,4,4,3,2,1,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(“\n”);}程序的運(yùn)行結(jié)果是
A)1234B)2344C)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]=s[j];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++)printf(“%d”,a[k]);printf(“\n”);}程序運(yùn)行的結(jié)果是
A)0987654321B)4321098765C)5678901234D)0987651234
(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(“%s,%s\n”,ss[0],ss[4]);}程序的運(yùn)行結(jié)果是
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()
{intz;
z=f(3);printf(“%d\n”,z);}程序的運(yùn)行結(jié)果是A)0B)9C)6D)8
(35)有以下程序
#include<stdio.h>
voidfun(char*a,char*b)
{while(*a==’*’)a++;
while(*b=*a){b++;a++;}}
main()
{char*s=”****a*b****”,t[80];
fun(s,t);puts(t);}程序的運(yùn)行結(jié)果是A)*****a*bB)a*bC)a*b****D)ab
(36)有以程序
#include<stdio.h>
#include<string.h>
typedefstruct{charname[9];charsex;floatscore[2];}STU;
voidf(STUa)
{STUb={“Zhao”,’m’,85.0,90.0};inti;
strcpy(,);
a.sex=b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];}
main()
{STUc={“Qian”,’p’,95.0,92.0};
f(c);printf(“%s,%c,%2.0f,%2.0f\n”,,c.sex,c.score[0],c.score[1]);}程序的運(yùn)行結(jié)果是
A)Qian,f,95,92B)Qian,m,85,90C)Zhao,f,95,92D)Zhao,m,85,90
(37)有以下程序
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3},i,n;
fp=fopen(“dl.dat”,”w”);
for(i=0;i<3;i++)fprintf(fp,”%d”,a[i]);
fprintf(fp,”\n”);
fclose(fp);
fp=fopen(“dl.dat”,”r”);
fscanf(fp,”%d”,&n);
fclose(fp);
printf(“%d\n”,n);}程序的運(yùn)行結(jié)果是A)12300B)123C)1D)321
(38)變量a中的數(shù)據(jù)用二進(jìn)制表示的形式是01011101,變量b中的數(shù)據(jù)用二進(jìn)制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執(zhí)行的運(yùn)算是A)a^bB)a|bC)a&bD)a<<4
(39)在C語言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是
A)auto和registerB)extern和registerC)auto和staticD)static和register
(40)設(shè)有定義語句int(*f)(int);,則以下敘述正確的是
A)f是基類型為int的指針變量B)f是指向函數(shù)的指針變量,該函數(shù)具有一個(gè)int類型的形參
C)f是指向int類型一維數(shù)組的指針變量D)f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址
二、填空題(每空2分,共30分)
請將每一個(gè)空的正確答案些在答題卡【1】至【15】序號(hào)的橫線上,答在試卷上不得分。
(1)測試用例包括輸入值集和【1】值集。(2)深度為5的滿二叉樹有【2】個(gè)葉子結(jié)點(diǎn)。
(3)設(shè)某循環(huán)隊(duì)列的容量為50,頭指針front=5(指向隊(duì)頭元素的前一位置),尾指針rear=29(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有【3】個(gè)元素。(4)在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體之間聯(lián)系的是【4】。
(5)在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言和數(shù)據(jù)控制語言中,【5】負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建。
(6)已有定義:charc=’‘;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【6】。
(7)設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【7】。
(8)若有定義:intk;,以下程序段的輸出結(jié)果是【8】。for(k=2;k<6;k++,k++)printf(“##%d”,k);
(9)以下程序段的定義語句中,x[1]的初值是【9】,程序運(yùn)行后輸出的內(nèi)容是【10】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf(“%d”,p[i][0]);}
printf(“\n”);}
(10)以下程序的輸出結(jié)果是【11】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf(“%d%d\n”,*p,*q);}
(11)以下程序的輸出結(jié)果是【12】。
#include<stdio.h>
main()
{inta[5]={2,4,6,8,10},*p;
p=a;p++;
printf(“%d”,*p);}
(12)以下程序的輸出結(jié)果是【13】。
#include<stdio.h>
voidfun(intx)
{if(x/2>0)fun(x/2);
printf(“%d”,x);}
main()
{fun(3);printf(“\n”);}
(13)以下程序中函數(shù)fun的功能是:統(tǒng)計(jì)person所指結(jié)構(gòu)體數(shù)組中所有性別(sex)為M的記錄的個(gè)數(shù),存入變量n中,并做為函數(shù)值返回。請?zhí)羁眨?/p>
#include<stdio.h>
#defineN3
typedefstruct
{intnum;charnam[10];charsex;}SS;
intfun(SSperson[])
{inti,n=0;
for(i=0;i<N;i++)
if(【14】==’M’)n++;
returnn;}
main()
{SSW[N]={{1,”AA”,’F’},{2,”BB”,’M’},{3,”CC”,’M’}};intn;
n=fun(W);printf(“n=%d\n”,n);}
(14)以下程序從名為filea.dat的文本文件中逐個(gè)讀入字符并顯示在屏幕上。請?zhí)羁眨?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【15】);
ch=fgetc(fp);
whlie(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar(‘\n’);fclose(fp);}
2007年9月二級C語言筆試真題及答案1)軟件是指A)程序B)程序和文檔C)算法加數(shù)據(jù)結(jié)構(gòu)D)程序、數(shù)據(jù)和相關(guān)文檔的集合
2)軟件調(diào)試的目的是A)發(fā)現(xiàn)錯(cuò)誤B)改正錯(cuò)誤C)改善軟件的性能D)驗(yàn)證軟件的正確性
3)在面向?qū)ο蠓椒ㄖ?,?shí)現(xiàn)信息隱蔽是依靠A)對象的繼承B)對象的多態(tài)C)對象的封裝D)對象的分類
4)下列敘述中,不符合良好程序設(shè)計(jì)風(fēng)格的是
A)程序的效率第一,清晰第二B)程序的可讀性好C)程序中有必要的注釋D)輸入數(shù)據(jù)前要有提示信息
5)下列敘述中正確的是A)程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)B)程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)
C)程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D)以上三種說法都不對
6)下列敘述中正確的是A)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)必定是一一對應(yīng)的B)由于計(jì)算機(jī)存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)一定是線性結(jié)構(gòu)
C)程序設(shè)計(jì)語言中的數(shù)組一般是順序存儲(chǔ)結(jié)構(gòu),因此,利用數(shù)組只能處理線線結(jié)構(gòu)D)以上三種說法都不對
7)冒泡排序在最壞情況下的比較次數(shù)是A)n(n+1)/2B)nlog2nC)n(n-1)/2D)n/2
(8)一棵二叉樹中共有70個(gè)葉子結(jié)點(diǎn)與80個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)點(diǎn)數(shù)為
A)219B)221C)229D)231
9)下列敘述中正確的是A)數(shù)據(jù)庫系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持B)數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題C)數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)D)以上三種說法都不對
10)下列敘述中正確的是A)為了建立一個(gè)關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系B)表示關(guān)系的二維表中各元組的每一個(gè)分量還可以分成若干數(shù)據(jù)項(xiàng)
C)一個(gè)關(guān)系的屬性名表稱為關(guān)系模式D)一個(gè)關(guān)系可以包括多個(gè)二維表
(11)C語言源程序名的后綴是A).exeB).CC).objD).cp
(12)可在C程序中用做用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是A)andB)DateC)HiD)case_2007y-m-dDr.TomBigl
(13)以下選項(xiàng)中,合法的一組C語言數(shù)值常量是A)028B)12.C).177D)0x8A.5e-3OXa234c1.510,000-0xf4.5e0Oabc3.e5
(14)以下敘述中正確的是A)C語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行
B)可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行
C)C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行,在此結(jié)束
D)main可作為用戶標(biāo)識(shí)符,用以命名任意一個(gè)函數(shù)作為主函數(shù)
(15)若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項(xiàng)中的語句,則能正確執(zhí)行的語句是
A)scanf("%d",a,b,c);B)scanf("%d%d%d",a,b,c);C)scanf("%d",p);D)scanf("%d",&p);
(16)以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是
A)均占4個(gè)字節(jié)B)根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C)由用戶自己定義D)由C語言編譯系統(tǒng)決定
(17)若變量均已正確定義并賦值,以下合法的C語言賦值語句是
A)x=y==5;B)x=n%2.5;C)x+n=I;D)x=5=4+1;
(18)有以下程序段
intj;floaty;charname[50];
scanf("%2d%f%s",&j,&y,name);當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為
A)55566.0B)566.0C)7777.0D)566777.0
(19)若變量已正確定義,有以下程序段
i=0;
doprintf("%d,",i);while(i++);
printf("%d\n",i)其輸出結(jié)果是A)0,0B)0,1C)1,1D)程序進(jìn)入無限循環(huán)(20)有以下計(jì)算公式若程序前面已在命令中包含math.h文件,不能夠正確計(jì)算上述公式的程序段是
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)設(shè)有條件表達(dá)式:(EXP)?i++;j--,則以下表達(dá)式中(EXP)完全等價(jià)的是
A)(EXP==0)B)(EXP!=0)C)(EXP==1)D)(EXP!=1)
(22)有以下程序
#include
main()
{inty=9;
for(y>0;y--)
if(y%3==0)printf("%d",--y);0}程序的運(yùn)行結(jié)果是A)741B)963C)852D)875421
(23)已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字母的表達(dá)式是A)isupper(c)B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’D)c<=(‘2’-32)&&(‘a(chǎn)’-32)<=c
(24)有以下程序
#include
main()
{inti,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++)m=m%j;
printf("%d\n",m);}程序的運(yùn)行結(jié)果是A)0B)1C)2D)3
(25)若函數(shù)調(diào)用時(shí)的實(shí)參為變量時(shí),以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是
A)函數(shù)的實(shí)參和其對應(yīng)的形參共占同一存儲(chǔ)單元B)形參只是形式上的存在,不占用具體存儲(chǔ)單元
C)同名的實(shí)參和形參占同一存儲(chǔ)單元D)函數(shù)的形參和實(shí)參分別占用不同的存儲(chǔ)單元
(26)已知字符’A’的ASCⅡ代碼值是65,字符變量c1的值是’A’,c2的值是’D’。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是A)A,BB)A,68C)65,66D)65,68
(27)以下敘述中錯(cuò)誤的是A)改變函數(shù)形參的值,不會(huì)改變對應(yīng)實(shí)參的值
B)函數(shù)可以返回地址值C)可以給指針變量賦一個(gè)整數(shù)作為地址值
D)當(dāng)在程序的開頭包含文件stdio.h時(shí),可以給指針變量賦NULL
(28)以下正確的字符串常量是A)"\\\"B)’abc’C)OlympicGamesD)""
(29)設(shè)有定義:charp[]={’1’,’2’,’3’},*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是
A)sizeof(p)B)sizeof(char)C)sizeof(*q)D)sizeof(p[0])
(30)有以下函數(shù)
intaaa(char*s)
{char*t=s;
while(*t++);
t--;
return(t-s);}以下關(guān)于aaa函數(shù)的功能敘述正確的是
A)求字符串s的長度B)比較兩個(gè)串的大小C)將串s復(fù)制到串tD)求字符串s所占字節(jié)數(shù)
(31)若有定義語句:inta[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個(gè)元素是
A)a[0][4]B)a[1][3]C)a[0][3]D)a[1][4]
(32)有以下程序
#include
voidfun(char**p)
{++p;printf("%s\n",*p);}
main()
{char*a[]={"Morning","Afternoon","Evening","Night"};
fun(a);}程序的運(yùn)行結(jié)果是A)AfternoonB)fternoonC)MorningD)orning
33)若有定義語句:inta[2][3],*p[3];,則以下語句中正確的是A)p=a;B)p[0]=a;C)p[0]=&a[1][2];D)p[1]=&a;
(34)有以下程序
#include
voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/
{intt,i,j;
for(i=0;i<N-1;I++)
for(j=i+1;j<N;J++)
if(a}
main()
{intc[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c);
printf("\n");}程序運(yùn)行的結(jié)果是
A)1,2,3,4,5,6,7,8,9,0,B)0,9,8,7,6,5,1,2,3,4,C)0,9,8,7,6,5,4,3,2,1,D)1,2,3,4,9,8,7,6,5,0,
(35)有以下程序
#include
intfun(chars[])
{intn=0;
while(*s<=’9’&&*s>=’0’){n=10*n+*s-’0’;s++;}
return(n);}
main()
{chars[10]={’6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’};
printf("%d\n",fun(s));}程序運(yùn)行的結(jié)果是A)9B)61490C)61D)5
36)當(dāng)用戶要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是A)scanf()B)getchar()C)gets()D)getc()
(37)以下關(guān)于字符串的敘述中正確的是
A)C語言中有字符串類型的常量和變量B)兩個(gè)字符串中的字符個(gè)數(shù)相同時(shí)才能進(jìn)行字符串大小的比較
C)可以用關(guān)系運(yùn)算符對字符串的大小進(jìn)行比較D)空串一定比空格打頭的字符串小(38)有以下程序:
#include
voidfun(char*t,char*s)
{while(*t!=0)t++;
while((*t++=*s++)!=0);}
main()
{charss[10]=”acc”,aa[10]=”bbxxyy”;
fun(ss,aa);
printf(“%s,%s\n”,ss,aa);}程序運(yùn)行結(jié)果是
A)accxyy,bbxxyyB)acc,bbxxyyC)accxxyy,bbxxyyD)accbbxxyy,bbxxyy
(39)有以下程序
#include
#include
voidfun(chars[][10],intn)
{chart;inti,j;
for(i=0;i<N-1;I++)
for(j=i+1,j<N;J++)/*比較字符串的首字符大小,并交換字符串的首字符*/
if(s[0])>s[j][0]{t=s[0];s[0]=s[j][0];s[j][0]=t;}}
main()
{charss[5][10]={“bcc”,”bbcc”,”xy”,”aaaacc””aabcc”}
fun(ss,5);printf(“%s,%s\n”,ss[0],ss[4]);}程序運(yùn)行結(jié)果是
A)xy,aaaaccB)aaaacc,xyC)xcc,aabccD)acc,xabcc
(40)在一個(gè)C語言源程序文件中所定義的全局變量,其作用域?yàn)椋?/p>
A)所在文件的全部范圍B)所在程序的全部范圍C)所在函數(shù)的全部范圍D)由具體定義位置和extern說明來決定范圍
(41)有以下程序
#include
inta=1;
intf(intc)
{staticinta=2;
c=c+1;
return(a++)+c;}
main()
{inti,k=0;
for(i=0;i<2;i++){inta=3;k+=f(a);}
k+=a;
printf(“%d\n”,k);}程序運(yùn)行結(jié)果是A)14B)15C)16D)17(42)有以下程序
#include
voidfun(intn,int*p)
{intf1,f2;
if(n==1||n==2)*p=1;
else
{fun(n-1,&f1);fun(n-2,&f2);
*p=f1+f2;}}
main()
{ints;
fun(3,&s);printf("%d\n",s);}程序的運(yùn)行結(jié)果是A)2B)3C)4D)5
(43)若程序中有宏定義行:#defineN100則以下敘述中正確的是
A)宏定義行中定義了標(biāo)識(shí)符N的值為整數(shù)100B)在編譯程序?qū)源程序進(jìn)行預(yù)處理時(shí)用100替換標(biāo)識(shí)符N
C)對C源程序進(jìn)行編譯時(shí)用100替換標(biāo)識(shí)D)在運(yùn)行時(shí)用100替換標(biāo)識(shí)符N
(44)以下關(guān)于typedef的敘述錯(cuò)誤的是A)用typedef可以增加新類型
B)typedef只是將已存在的類型用一個(gè)新的名字來代表C)用typedef可以為各種類型說明一個(gè)新名,但不能用來為變量說明一個(gè)新名D)用typedef為類型說明一個(gè)新名,通常可以增加程序的可讀性
(45)有以下程序
#include
structtt
{intx;structtt*y;}*p;
structtta[4]={20,a+1,15,a+2,30,a+3,17,a};
main()
{inti;
p=a;
for(i=1;i<=2;i++){printf("%d,",p->x);p=p->y;}}程序的運(yùn)行結(jié)果是A)20,30,B)30,17C)15,30,D)20,15,
(46)有以下程序
#include
#include
typedefstruct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",'m',85.0,90.0};inti;
strcpy(,);
a.sex=b.sex;
for(i=0;i<2;i++)a.score=b.score;
returna;}
main()
{STUc={"Qian",'f',95.0,92.0},d;
d=f(c);printf("%s,%c,%2.0f,%2.0f\n",,d.sex,d.score[0],d.score[1]);}程序的運(yùn)行結(jié)果是
A)Qian,f,95,92B)Qian,m,85,90C)Zhao,m,85,90D)Zhao,f,95,92
(47)設(shè)有以下定義
uniondata
{intd1;floatd2;}demo;則下面敘述中錯(cuò)誤的是
A)變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同B)變量demo中各成員的地址相同
C)變量demo和各成員的地址相同D)若給demo.d1賦99后,demo.d2中的值是99.0
(48)有以下程序
#include
main()
{inta=1,b=2,c=3,x;
x=(a^b)&c;printf("%d\n",x);}程序的運(yùn)行結(jié)果是A)0B)1C)2D)3
(49)讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffer,size,count,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年運(yùn)載火箭承力殼段合作協(xié)議書
- 環(huán)保清潔標(biāo)準(zhǔn)協(xié)議書(2篇)
- 小學(xué)二年級口算題庫
- 五年級上冊數(shù)學(xué)聽評課記錄《4.3 探索活動(dòng):平行四邊形的面積》(20)-北師大版
- 印花加工租賃合同范本
- 旅行社員工聘用合同范本
- 會(huì)務(wù)承辦合同范本
- 產(chǎn)品微代理車貸合同范本
- 股權(quán)眾籌合同范本
- 2025年度特色酒樓品牌加盟連鎖合作協(xié)議
- 2024年山東省淄博市中考?xì)v史試題卷(含答案解析)
- 借名買車的協(xié)議書范文范本
- 浙江省杭州市2024年中考英語真題(含答案)
- 《2024 ESC血壓升高和高血壓管理指南》解讀
- 歷史公開課《第1課中華人民共和國成立》教案教學(xué)設(shè)計(jì)-第1課中華人民共和國成立-初二下冊歷史
- 北京中考英語詞匯表(1600詞匯)
- 20世紀(jì)西方音樂智慧樹知到期末考試答案章節(jié)答案2024年北京大學(xué)
- 期末模擬試卷 (試題)-2023-2024學(xué)年六年級下冊數(shù)學(xué)人教版
- 塑料 聚氨酯生產(chǎn)用聚醚多元醇 堿性物質(zhì)含量的測定
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第十二章運(yùn)動(dòng)技能學(xué)習(xí)的反饋
- 食材配送售后服務(wù)方案
評論
0/150
提交評論