全國(guó)計(jì)算機(jī)等級(jí)考試模擬試題(二級(jí)C).doc
全國(guó)計(jì)算機(jī)等級(jí)考試模擬試題(二級(jí)C) 一、選擇題(每題2分,共計(jì)70分)1.已知一棵二叉樹(shù)前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹(shù)的后序遍歷為A)GEDHFBCAB)DGEBHFCAC)ABCDEFGHD)ACBFEDHGA B C D 2.樹(shù)是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是A)有且只有1B)1或多于1C)0或1D)至少2 A B C D 3.如果進(jìn)棧序列為e1,e2,e3,e4,則可能的出棧序列是A)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D)任意順序 A B C D 4.在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是A)不限制goto語(yǔ)句的使用B)減少或取消注解行C)程序越短越好D)程序結(jié)構(gòu)應(yīng)有助于讀者理解 A B C D 5.程序設(shè)計(jì)語(yǔ)言的基本成分是數(shù)據(jù)成分、運(yùn)算成分、控制成分和A)對(duì)象成分B)變量成分C)語(yǔ)句成分D)傳輸成分A B C D 6.下列敘述中,不屬于軟件需求規(guī)格說(shuō)明書(shū)的作用的是A)便于用戶(hù)、開(kāi)發(fā)人員進(jìn)行理解和交流B)反映出用戶(hù)問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù)C)作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)D)便于開(kāi)發(fā)人員進(jìn)行需求分析A B C D 7.下列不屬于軟件工程的3個(gè)要素的是A)工具B)過(guò)程C)方法 D)環(huán)境A B C D 8.單個(gè)用戶(hù)使用的數(shù)據(jù)視圖的描述稱(chēng)為A)外模式B)概念模式C)內(nèi)模式D)存儲(chǔ)模式A B C D 9.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成A)屬性B)關(guān)系C)鍵D)域A B C D 10.SQL語(yǔ)言又稱(chēng)為A)結(jié)構(gòu)化定義語(yǔ)言B)結(jié)構(gòu)化控制語(yǔ)言C)結(jié)構(gòu)化查詢(xún)語(yǔ)言D)結(jié)構(gòu)化操縱語(yǔ)言A B C D 11.下列敘述中正確的是A)C語(yǔ)言編譯時(shí)不檢查語(yǔ)法B)C語(yǔ)言的子程序有過(guò)程和函數(shù)兩種C)C語(yǔ)言的函數(shù)可以嵌套定義D)C語(yǔ)言的函數(shù)可以嵌套調(diào)用 A B C D 12.在C語(yǔ)言中,退格符是A)nB)tC)fD)bA B C D 13.以下敘述中正確的是A)構(gòu)成C程序的基本單位是函數(shù)B)可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)C)main()函數(shù)必須放在其他函數(shù)之前D)所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義A B C D 14.若已定義:int a=25,b=14,c=19;以下三目運(yùn)算符(?:)所構(gòu)成語(yǔ)句的執(zhí)行后a<=25&&b-<=2&&c?printf("*a=%d,b=%d,c=%dn",a,b,c):printf("#a=%d,b=%d,c=%dn",a,b,c);程序輸出的結(jié)果是A)*a=25,b=13,c=19B)*a=26,b=14,c=19C)# a=25,b=13,c=19D)# a=26,b=14,c=19A B C D 15.下列程序段的輸出結(jié)果是int a=1234;float b=123.456;double c=12345.54321;printf("%2d,%2.1f,%2.1f",a,b,c);A)無(wú)輸出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.5A B C D 16.若運(yùn)行以下程序時(shí),從鍵盤(pán)輸入 ADescriptor<CR>(<CR>表示回車(chē)),則下面程序的運(yùn)行結(jié)果是#include <stdio.h>main() char c;int v0=1,v1=0,v2=0;do switch(c=getchar() case a:case A:case e:case E:case i:case I:case o:case O:case u:case U:v1+=1;default:v0+=1;v2+=1; while(c!=n); printf("v0=%d,v1=%d,v2=%dn",v0,v1,v2);A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11D)v0=13,v1=4,v2=12A B C D 17.設(shè)有以下程序段int x=0,s=0;while(!x!=0)s+=+x;printf("%d",s);則A)運(yùn)行程序段后輸出0B)運(yùn)行程序段后輸出1C)程序段中的控制表達(dá)式是非法的D)程序段執(zhí)行無(wú)限次A B C D 18.執(zhí)行下面的程序段后,變量k中的值為int k=3, s2;s0=k; k=s1*10;A)不定值B)33C)30D)10A B C D 19.以下程序段的描述,正確的是x=-1;dox=x*x; while(!x);A)是死循環(huán)B)循環(huán)執(zhí)行兩次C)循環(huán)執(zhí)行一次D)有語(yǔ)法錯(cuò)誤A B C D 20.有如下程序段int a=14,b=15,x;char c=A;x=(a&&b)&&(c<B);執(zhí)行該程序段后,x的值為A)tureB)falseC)0D)1A B C D 21.下列程序執(zhí)行后的輸出結(jié)果是void func1(int i);void func2(int i);char st="hello,friend!"void func1(int i) printf("%c",sti);if(i<3)i+=2;func2(i);void func2(int i) printf("%c",sti);if(i<3)i+=2;func1(i);main() int i=0; func1(i); printf("n");A)helloB)helC)hloD)hlmA B C D 22.以下函數(shù)返回a所指數(shù)組中最大值所在的下標(biāo)值fun(int *a,int n) int i,j=0,p;p=j;for(i=j;i<n;i+)if(ai>ap);return(p);在下劃線處應(yīng)填入的內(nèi)容是A)i=pB)ap=aiC)p=jD)p=iA B C D 23.以下程序的輸出結(jié)果是#include <stdio.h>void prt (int *x, int*y, int*z) printf("%d,%d,%dn",+*x,+*y,*(z+);main() int a=10,b=40,c=20;prt (&a,&b,&c);prt (&a,&b,&c);A)11,42, 3112,22,41B)11,41,2012,42,20C)11,21,4011,21,21D)11,41,2112,42,22A B C D 24.有如下程序main() char s="ABCD", *p;for(p=s+1; p<s+4; p+)printf ("%sn",p);該程序的輸出結(jié)果是A)ABCDBCDCDDB)ABCDC)BCDD)BCDCDDA B C D 25.下列程序執(zhí)行后的輸出結(jié)果是main() int a33, *p,i;p=&a00;for(i=1; i<9; i+)pi=i+1;printf("%dn",a12);A)3B)6C)9D)隨機(jī)數(shù)A B C D 26.定義如下變量和數(shù)組int k;int a33=9,8,7,6,5,4,3,2,1;則下面語(yǔ)句的輸出結(jié)果是for(k=0;k<3;k+)printf("%d",akk);A)7 5 3B)9 5 1C)9 6 3 D)7 4 1A B C D 27.下列程序執(zhí)行后的輸出結(jié)果是main() char arr24;strcpy(arr,"you"); strcpy(arr1,"me");arr03=&printf("%sn",arr);A)you&meB)youC)meD)errA B C D 28.以下正確的說(shuō)法是A)定義函數(shù)時(shí),形參的類(lèi)型說(shuō)明可以放在函數(shù)體內(nèi)B)return后邊的值不能為表達(dá)式C)如果函數(shù)值的類(lèi)型與返回值類(lèi)型不一致,以函數(shù)值類(lèi)型為準(zhǔn)D)如果形參與實(shí)參類(lèi)型不一致,以實(shí)參類(lèi)型為準(zhǔn) A B C D 29.有以下程序int f(int n) if(n=1)return 1;else return f(n-1)+1;main() int i,j=0;for(i=1;i<3;i+)j+=f(i);printf("%dn",j);程序運(yùn)行后的輸出結(jié)果是A)4B)3C)2D)1 A B C D 30.設(shè)有如下定義struck sk int a;float b; data;int *p;若要使p指向data中的a域,正確的賦值語(yǔ)句是A)p=&a;B)p=data.a;C)p=&data.a;D)*p=data.a;A B C D 31.以下對(duì)結(jié)構(gòu)體類(lèi)型變量的定義中,不正確的是A)typedef struct aa int n;float m; AA;AA tdl;B)#define AA struct aaAA int n;float m; tdl;C)struct int n;float m; aa;struct aa tdl;D)struct int n;float m; tdl;A B C D 32.在下述程序中,判斷i>j共執(zhí)行的次數(shù)是main() int i=0, j=10, k=2, s=0;for (;) i+=k;if(i>j) printf("%d",s);break; s+=i;A)4B)7C)5D)6A B C D 33.若有以下程序#include <stdio.h>void f(int n);main() void f(int n);f(5);void f(int n) printf("%dn",n); 則以下敘述中不正確的是A)若只在主函數(shù)中對(duì)函數(shù)f進(jìn)行說(shuō)明,則只能在主函數(shù)中正確調(diào)用函數(shù)fB)若在主函數(shù)前對(duì)函數(shù)f進(jìn)行說(shuō)明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)fC)對(duì)于以上程序,編譯時(shí)系統(tǒng)會(huì)提示出錯(cuò)信息:提示對(duì)f函數(shù)重復(fù)說(shuō)明D)函數(shù)f無(wú)返回值,所以可用void將其類(lèi)型定義為無(wú)返回值型A B C D 34.以下程序的輸出是struct st int x; int *y; *p;int dt4= 10,20,30,40 ;struct st aa4= 50,&dt0,60,&dt0,60,&dt0,60,&dt0;main() p=aa;printf("%dn",+(p->x);A)10B)11C)51D)60A B C D 35.有以下程序#include <stdio.h>main() FILE *fp; int i=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%dn",i);fprintf(fp,"%dn",j);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n); printf("%d %dn",k,n);fclose(fp);程序運(yùn)行后的輸出結(jié)果是A)20 30B)20 50C)30 50D)30 20A B C D 二、填空題(每空2分,共計(jì)30分)1.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于 【1】 。 輸入答案,中間不含空格: 2.在面向?qū)ο蠓椒ㄖ?,?lèi)之間共享屬性和操作的機(jī)制稱(chēng)為 【2】 。 輸入答案,中間不含空格: 3.耦合和內(nèi)聚是評(píng)價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中 【3】 反映了模塊內(nèi)各成分之間的聯(lián)系。 輸入答案,中間不含空格: 4.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于 【4】 的聯(lián)系。 輸入答案,中間不含空格: 5.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、 【5】 、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。 輸入答案,中間不含空格: 6.以下程序的功能是從健盤(pán)輸入若干學(xué)生的成績(jī),并輸出最高成績(jī)和最低成績(jī),當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束。請(qǐng)?zhí)羁?。main () float x,amax,amin;scanf ("%f",&x);amax=x;amin=x;while ( 【6】 ) if (x>amax)amax=x;elseif 【7】 amin=x;else scanf ("%f",&x);printf ("n amax=%fn amin=%fn",amax,amin); 輸入答案,中間不含空格: 7.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語(yǔ)句,且fun函數(shù)為void類(lèi)型;請(qǐng)寫(xiě)出fun函數(shù)的首部 【8】 。要求形參名為b。main() double s1022;int n; fun(s);輸入答案,中間不含空格: 8.下列程序的功能是輸入一個(gè)整數(shù),判斷是否是素?cái)?shù),若為素?cái)?shù)輸出1,否則輸出0,請(qǐng)?zhí)羁?。main() int i, x, y=1;scanf("%d", &x);for(i=2; i<=x/2; i+)if 【9】 y=0; break;printf("%dn", y);輸入答案,中間不含空格: 9.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?include<string.h>main() int i,j, 【10】 ;char str="1234567"for(i=0,j=strlen(str) 【11】 ;i<j;i+,j-) k=stri;stri=strj;strj=k;printf("%sn",str);輸入答案,中間不含空格: 10.以下程序可把輸入的十進(jìn)制數(shù)以十六進(jìn)制數(shù)的形式輸出,請(qǐng)?zhí)羁?。main() char b17="0123456789ABCDEF"int c64,d,i=0,base=16;long n;printf("Enter a number:n");scanf("%ld",&n);doci= 【12】 ;i+;n=n/base;while(n!=0);printf("Transmite new base:n");for(-i;i>=0;-i)d=ci;printf("%c",b 【13】 );printf("n");輸入答案,中間不含空格: 11.若給fun函數(shù)的形參s傳送字符串:“ 6354abcc” (其中 表示空格字符),則函數(shù)的返回值是 【14】 。 #include <ctype.h>long fun(char s) long n;int sign;for(;isspace(*s);s+);sign=(*s=-)?-1:1;if(*s=+|*s=-)s+;for(n=0;isdigit(*s);s+)n=10*n+(*s-0);return sign*n; 輸入答案,中間不含空格: 12.設(shè)有定義“struct int a; float b; char c; abc, *p_abc=&abc;”,則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【15】a。 輸入答案,中間不含空格: