版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上2009年3月二級C語言筆試真題及答案 (1)下列敘述中正確的是A)棧是“先進(jìn)先出”的線性表 B)隊(duì)列是“先進(jìn)先出”的線性表C)循環(huán)隊(duì)列是非線性結(jié)構(gòu) D)有序性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)(2)支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是 A)棧 B)樹 C)隊(duì)列 D)二叉樹(3)某二叉樹有5個度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)是 A)10 B)8 C)6 D)4(4)下列排序方法中,最壞情況下比較次數(shù)最少的是A)冒泡排序 B)簡單選擇排序 C)直接插排序 D)堆排序(5)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是A)編
2、譯軟件 B)操作系統(tǒng) C)教務(wù)管理系統(tǒng) D)匯編程序(6)下面敘述中錯誤的是A)軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤 B)對被調(diào)試的程序進(jìn)行“錯誤定位”是程序調(diào)試的必要步驟C)程序調(diào)試通常也稱為Debug D)軟件測試應(yīng)嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性(7)耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是A)提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性 B)降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性C)耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度 D)內(nèi)聚性是指模塊間互相連接的緊密程度(8)數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是A)數(shù)據(jù)庫設(shè)計 B)數(shù)據(jù)庫系統(tǒng)設(shè)計 C)數(shù)據(jù)庫維護(hù) D)數(shù)
3、據(jù)庫管理員培訓(xùn)(9)有兩個關(guān)系R,S如下:RABCa32b01c21SABa3b0c2由關(guān)系R通過運(yùn)算得到關(guān)系S,則所使用的運(yùn)算為A)選擇 B)投影 C)插入 D)連接(10)將E-R圖轉(zhuǎn)換為關(guān)系模式時,實(shí)體和聯(lián)系都可以表示為A)屬性 B)鍵 C)關(guān)系 D)域(11)以下選項(xiàng)中合法的標(biāo)識符是A) 1-1 B)11 C)-11 D)1-(12)若函數(shù)中有定義語句:int k;,則A)系統(tǒng)將自動給k賦初值0B)這時k中值無定義C)系統(tǒng)將自動給k賦初值-1D)這時k中無任何值(13)以下選項(xiàng)中,能用作數(shù)據(jù)常量的是 A)o115 B) 0118 C)1.5e1.5 D) 115L(14)設(shè)有定義:in
4、t x=2;,以下表達(dá)式中,值不為6的是 A) x*=x+1 B) x+,2*x C)x*=(1+x) D)2*x,x+=2(15)程序段:int x=12;double y=3.; printf(“%d%8.6f”,x,y);的輸出結(jié)果是A)123. B)123. C)12,3. D)123.(16)若有定義語句:double x,y,*px,*py,執(zhí)行了px=&x, py=&y;之后,正確的輸入語句是A)scanf(“%f%f”,x,y);B) scanf(“%f%f”,&x,&y);C) scanf(“%lf%le”,px,py);D) scanf(“%
5、lf%lf”,x,y);(17)以下是if語句的基本形式:if(表達(dá)式)語句其中“表達(dá)式”A)必須是邏輯表達(dá)式B)必須是關(guān)系表達(dá)式C)必須是邏輯表達(dá)式或關(guān)系表達(dá)式D)可以是任意合法的表達(dá)式(18)有以下程序#include <stdio.h>main()int x;scanf(“%d”,&x);if(x<=3); elseif(x!=10)printf(“%dn”,x); 程序運(yùn)行時,輸入的值在哪個范圍才會有輸出結(jié)果A)不等于10的整數(shù)B)大于3且不等于10的整數(shù)C)大于3或等于10的整數(shù)D)小于3的整數(shù)(19)有以下程序#include<stdio.h>
6、Main() int a=1,b=2,c=3,d=0;if(a= =1 &&b+= =2)if(b!=2 | c-!=3)printf(“%d,%d,%dn”,a,b,c);else printf(“%d,%d,%dn”,a,b,c);else printf(“%d,%d,%dn”,a,b,c); 程序運(yùn)行后的輸出結(jié)果是A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1(20)以下程序中的變量已正確定義for(i=0;i<4;i+,i+for(k=1;k<3;k+);printf(*”); 程序段的輸出結(jié)果是A)* B)* C)* D)*(21)有以下程
7、序#include<stdio.h>main()char*s=(“ABC);doprintf(“%d”,*s%10);s+;while(*s); 注意,字母A的ASCII碼值為65。程序運(yùn)行后的輸出結(jié)果是A)5670 B) C)567 D)ABC(22)設(shè)變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)(不包含回車符)的程序段是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)有以
8、下程序#include<stdio.h>main() int a1,a2;char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,&1,c1,a2,c2);若想通過鍵盤輸入,使得a1的值為12,a2的是為34,c1的值為字符a,c2的值為字符b,程序輸出結(jié)果是:12,a,34,b,則正確的輸入格式是(以下代表空格,<CR>代表回車)A)12a34b<CR> C)12,a,34,b<CR>B)12 D)12 a a3434 b<
9、CR>b<CR> 24)有以下程序#include<stdio.h>int f(int x,int y)return()y-x)*x);main()int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(“%dn”,d); 程序運(yùn)行后的輸出結(jié)果是A)10 B)9 C)8 D)7(25)有以下程序#include<stdio.h>void fun(char*s)while(*s) if(*s%2=0)printf(“%c”,*s);s+;main() chara=“good”;fun(a);printf(“n”);注意:字母
10、a的ASC碼值為97,程序運(yùn)行后的輸出結(jié)果是A)d B)go C)god D)good(26)有以下程序#include <stdio.h>void fun( int *a,int *b)int *c;c=a;a=b;b=c;main()int x=3,y-5,*P=&x,*q=&y;fun(p,q);printf(“%d,%d,”,*p,*q);fun(&x,&y);printf(“%d,%dn”,*p,*q); 程序運(yùn)行后的輸出結(jié)果是A)3,5,5,3 B)3,5,3,5 C)5,3,3,5 D)5,3,5,3(27)有以下程序#include
11、<stdio.h>viod f(int *p,int *q);main() int m=1,n=2,*r=&m;f(r,&n);printf(“%d,%d”,m,n);void f(int *p,int *q)p=p+1;*q=*q+1;程序運(yùn)行后輸出的結(jié)果是A)1,3 B)2,3 C)1,4 D)1,2(28)以下函數(shù)按每行8個輸出數(shù)組中的數(shù)據(jù)void fun( int *w,int n) int i;for(i=0;i<n;i+)_printf(“%d”,w);printf(“n”); 下劃線處應(yīng)填入的語句是A)if(i/8=0)print(“n”); B
12、) if(i/8=0)continue;C) if(i%8=0)print(“n”); D) if(i%8=0)continue;(29)若有以下定義 int x10,*pt=x; 則對x數(shù)組元素的正確應(yīng)用是A)*&x10 B)*(x+3) C)*(pt+10) D)pt+330)設(shè)有定義:char s81;int i=10;,以下不能將一行(不超過80個字符)帶有空格的字符串真確讀入的語句或語句組是A) gets(s) B)while(si+=getchar()!=”n”;s=”0”;C)scanf(“%s”,s); D)doscanf(“%c”,&s);while(si+!
13、=”n”);s=”0”;(31)有以下程序#include <stdio.h>main() char *a =“abcd”,”ef”,”gh”,”ijk”;int I;for(i=0;i<4;i+)printf(“%c”,*a); 程序運(yùn)行后輸出的結(jié)果是A)aegi B)dfhk C)abcd D)abcdefghijk32)以下選項(xiàng)中正確的語句組是A)char s;s=”BOOK!”; B) char *s;s=”BOOK!”; C)char s10;s=”BOOK!”; D) char *s;s=”BOOK!”;(33)有以下程序#include <stdio.h&
14、gt;int funint x,int y if(x=y) return(x);else returen(x+y)/2)main() int a=4,b=5,c=6;printf(“%dn”,fun(2*a,fun(b,c) 程序運(yùn)行后的輸出結(jié)果是A)3 B)6 C)8 D)12(34)設(shè)函數(shù)中有整型變量n,為保證其在未賦值的情況下初值為0,應(yīng)選擇的存儲類別是A)auto B) register C)static D)auto或register(35)有以下程序#include <stdio.h>int b=2;int fun(int *k) b=*k+b;return(b);ma
15、in() int a10=1,2,3,4,5,6,7,8,I;for(i=2;i<4;i+) b=fun(&a)+b;printf(“%d”,b);printf(“n”);程序運(yùn)行后輸出的結(jié)果是A)10 B)8 C)10 D)10 12 10 28 16 36)有以下程序#include <stdio.h>#define PT 3.5;#define S(x) PT*x*x;mian() int a=1, b=2; printf(“%4.1fn”,S(a+b);程序運(yùn)行后輸出的結(jié)果是A)14.0 B)31.5 C)7.5 D)程序有錯無輸出結(jié)果37)有以下程序#inc
16、lude <stdio.h>struct ord int x,y; dt2=1,2,3,4;main() struct ord *p=dt;printf(“%d,”,+p->x); printf(“%dn”,+p->y);程序的運(yùn)行結(jié)果是A)1,2 B)2,3 C)3,4 D)4,138)設(shè)有宏定義:#include IsDIV(k,n) (k%n=1)?1:0且變量m已正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&& IsDIV(m,7)為真時所要表達(dá)的是 A)判斷m是否能被5或者7整除 B)判斷m是否能被5和7整除C)判斷m被5或者7整除是否余1
17、D)判斷m被5和7整除是否余1(39)有以下程序#include <stdio.h>main() int a=5,b=1,t;t=(a<<2|b); printf(“%dn”,t)程序運(yùn)行后的輸出結(jié)果是 A)21 B)11 C)6 D)1(40)有以下程序#include <stdio.h>main() EILE *f;f=fopen(“filea.txt”,”w”);fprintf(f,”abc”);fclose(f); 若文本文件filea.txt中原有內(nèi)容為:hello,則運(yùn)行以上程序后,文件filea.txt中的內(nèi)容為A) helloabc B)ab
18、clo C)abc D)abchello二、填空題(每空2分,共30分)(1)假設(shè)一個長度為50的數(shù)組(數(shù)組元素的下標(biāo)從0到49)作為棧的存儲空間,棧底指針bottom指向棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數(shù)組下標(biāo)),則棧中具有【1】個元素。(2)軟件測試可分為白盒測試和黑盒測試?;韭窂綔y試屬于 【2】測試。(3)符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和【3】。(4)數(shù)據(jù)庫系統(tǒng)的核心是 【4】(5)在E-R圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實(shí)體聯(lián)系的是【5】框。(6)表達(dá)式(int)(double)(5/2)+2.5)的值
19、是【6】(7)若變量x、y已定義為int類型且x的值為99,y的值為9,請將輸出語句printf(【7】,x/y);補(bǔ)充完整,使其輸出的計算結(jié)果形式為:x/y=11(8)有以下程序#include <stdio.h>main( )char c1,c2;scanf(“&c”,&c1);while(c1<65|c1>90)scanf(“&c”,&c1);c2=c1+32;printf(“&c, &cn”,c1,c2); 程序運(yùn)行輸入65回車后,能否輸出結(jié)果、結(jié)束運(yùn)行(請回答能或不能)【8】。(9)以下程序運(yùn)行后的輸出結(jié)果是【9
20、】#include <stdio.h>main( )int k=1,s=0;doif(k&2)!=0)continue;s+=k;k+;while(k)10);printf(“s=&d/n”,s);(10)下列程序運(yùn)行時,若輸入labced12df<回車>輸出結(jié)果為【10】#include <stdio.h>main( )chara =0,ch;while(ch=getchar()!=n)if(a&2!=0&&(ch>a&&ch<=z) ch=ch-a+A;a+;putchar(ch);pr
21、intf(“n”);(11)有以下程序,程序執(zhí)行后,輸出結(jié)果是【11】#include <stdio.h>void fun (int *a)a0=a1;main()int a10=10,9,8,7,6,5,4,3,2,1,i;for(i=2;i>=0;i-) fun&a;for(i=0;i<10;i+) printf(“&d”,a);printf(“n”);(12)請將以下程序中的函數(shù)聲明語句補(bǔ)充完整#include <stdio.h>int【12】;main( )int x,y,(*p)();p=max;printf(“&dn”,&
22、amp;x,&y);Int max(int a,int b)return (a>b/a:b);(13)以下程序用來判斷指定文件是否能正常打開,請?zhí)羁?include <stdio.h>main( )FILE *fp;if (fp=fopen(“test.txt”,”r”)=【13】)printf(“未能打開文件!n”);elseprintf(“文件打開成功!n”);(14)下列程序的運(yùn)行結(jié)果為【14】#include <stdio.h>#include <string.h>struct Aint a;char b10;doublec;voidf
23、 (structA*t);main()struct A a=(1001,”ZhangDa”,1098,0);f(&a);printf(“&d,&s,&6,ifn”,a.a,a.b,a.c);void f(structA*t)strcpy(t->b,”ChangRong”);(15)以下程序把三個NODETYPE型的變量鏈接成一個簡單的鏈表,并在while循環(huán)中輸出鏈表結(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù),請?zhí)羁?include <stdio.h>struct nodeint data; struct node *next;typedef struct node
24、NODETYPE;main()NODETYPE a,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年4月二級C語言筆試真題及答案一、 選擇題(共70分) (1)程序流程圖中指有箭頭的線段表示的是A)圖元關(guān)系 B)數(shù)據(jù)流 C)控制流 D)調(diào)用關(guān)系 (2)結(jié)構(gòu)化程序設(shè)計的基本原則不包括 A)多態(tài)性 B)自頂向下 C)模塊化 D)逐步求精(3)軟件設(shè)計中模塊劃分應(yīng)遵循的準(zhǔn)則是A)
25、低內(nèi)聚低耦合 B)高內(nèi)聚低耦合C)低內(nèi)聚高耦合 D)高內(nèi)聚高耦合 (4)在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是A)可行性分析報告 B)軟件需求規(guī)格說明書C)概要設(shè)計說明書 D)集成測試計劃 (5)算法的有窮性是指A)算法程序的運(yùn)行時間是有限的 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
26、)不能刪除數(shù)據(jù) (8)在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于C A)需求分析階段 B)概念設(shè)計階段 C)邏輯設(shè)計階段 D)物理設(shè)計階段 (9)有三個關(guān)系R、S和T如下: T B C D a 0 k1 R S B C D a 0 k1 b 1 n1 B C D f 3 h2 a 0 k1 n 2 x1 有關(guān)系R和S通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為A)并 B)自然連接 C)笛卡爾積 D)交 (10)設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學(xué)號,課號,成績),則表SC的關(guān)鍵字(鍵或碼)為 A)課號,成績 B)學(xué)號,成績
27、 C)學(xué)號,課號 D) 學(xué)號,姓名,成績 (11)以下敘述中正確的是 A)C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面 B)C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個語句 C)C程序書寫格式自由,一個語句可以寫在多行上D)用C語言編寫的程序只能放在一個程序文件中 (12)以下選項(xiàng)中不合法的標(biāo)識符是 A)print B)FOR C)&a D)_00 (13)以下選項(xiàng)中不屬于字符常量的是 A)'C' B)"C" C)'xCC0' D)'072' (14)設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是 A)x=y*5=x+z
28、 B)int(15.8%5)C)x=y+z+5,+y D)x=25%5.0 (15)以下定義語句中正確的是 A)int a=b=0 ; B)char A=65+1,b='b' C)float a=1,*b=&a,*c=&b ; D)double a=0.0,b=1.1; (16)有以下程序段 char ch; int k; ch='a' k=12; printf("%c,%d,",ch,ch,k); printf("k=%dn",k); 已知字符a的ASCll十進(jìn)制代碼為97,則執(zhí)行上述程序段后輸出結(jié)果是
29、A)因變量類型與格式描述符的類型不匹配輸出無定值 B)輸出項(xiàng)與格式描述符個數(shù)不符,輸出為零值或不定值 C)a,97,12k=12 D)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)&
30、;&(kk<91) (18)當(dāng)變量c的值不為2、4、6時,值也為“真”的表達(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)若變量已正確定義,有以下程序段 int a=3,b=5,c=7; if(a>b) a=b; c=a; if(c!=a) c=b; printf("%d,%d,%dn",
31、a,b,c); 其輸出結(jié)果是 A)程序段有語法錯 B)3,5,3 C)3,5,5 D)3,5,7 (20)有以下程序 #include <stdio.h> main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(“a=%d,b=%dn”,a,b); 程序的運(yùn)行結(jié)果是 A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 (21)有以下程
32、序 #include <stdio.h> main() int x=8; for( ; x>0; x-) if(x%3) printf(“%d,”,x-); continue; printf(“%d,”,-x); 程序的運(yùn)行結(jié)果是 A)7,4,2 B)8,7,5,2 C)9,7,6,4 D)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 &l
33、t;stdio.h> main() int a =1,2,3,4,y,*p=&a3; -p; y=*p; printf(“y=%dn”,y); 程序的運(yùn)行結(jié)果是 A)y=0 B)y=1 C)y=2 D)y=3 (24)以下錯誤的定義語句是 A)int x3=0,1,1,2,3; B)int x43=1,2,3,1,2,3,1,2,3,1,2,3; C)int x4=1,2,3,1,2,3,1,2,3,1,2,3; D)int x3=1,2,3,4; (25)設(shè)有如下程序段 char s20= “Bejing”,*p; p=s; 則執(zhí)行p=s;語句后,以下敘述正確的是 A)可以用*
34、p表示s0 B)s數(shù)組中元素的個數(shù)和p所指字符串長度相等 C)s和p都是指針變量 D)數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等 (26)若有定義:int a23;,以下選項(xiàng)中對a數(shù)組元素正確引用的是 A)a2!1 B)a23 C)a03 D)a1>2 !1 (27)有定義語句:char s10;,若要從終端給s輸入5個字符,錯誤的輸入語句是 A)gets(&s0); B)scanf(“%s”,s+1); C)gets(s); D)scanf(“%s”,s1); (28)以下敘述中錯誤的是 A)在程序中凡是以“”開始的語句行都是預(yù)處理命令行 B)預(yù)處理命令行的最后不能以分號表示結(jié)束
35、C)#define MAX是合法的宏定義命令行 D)C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的 (29)以下結(jié)構(gòu)體類型說明和變量定義中正確的是 A)typedef struct B)struct REC; int n; char c;REC; int n; char c;REC t1,t2; REC t1,t2; C)typedef struct REC ; D)structint n=0; char c=A;t1,t2; int n;char c;REC t1,t2; (30)以下敘述中錯誤的是 A)gets函數(shù)用于從終端讀入字符串 B)getchar函數(shù)用于從磁盤文件讀入字符 C
36、)fputs函數(shù)用于把字符串輸出到文件 D)fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件 (31)有以下程序 #include <stdio.h> main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0;i<12;i+) csi+; for(i=1;i<5;i+) printf(“%d”,ci); printf(“n”); 程序的運(yùn)行結(jié)果是 A)1 2 3 4 B)2 3 4 4 C)4 3 3 2 D )1 1 2 3 (32)有以下程序 #include <stdio.h> void fun(int
37、 *s,int nl,int n2) int i,j,t; i=nl; j=n2; while(i<j) t=si;si=sj;sj=t;i+;j-; main() int a10=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”,ak); printf(“n”); 程序運(yùn)行的結(jié)果是 A) B) C) D) (33)有以下程序 #include <stdio.h> #include <string.h> void fun(char *s
38、 ,int n) char *t; int i,j; for(i=0;i<n-1;i+) for(j=i+1;j<n;j+) if(strlen(si)>strlen(sj) t=si;si=sj;sj=t; main() char *ss=“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”; fun(ss,5); printf(“%s,%sn”,ss0,ss4); 程序的運(yùn)行結(jié)果是 A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc (34)有以下程序 #include <stdio.h> int f
39、(int x) int y; if(x=0|x=1) return (3); y=x*x-f(x-2); return y; main() int z; z=f(3); printf(“%dn”,z); 程序的運(yùn)行結(jié)果是 A)0 B)9 C)6 D)8(35) 有以下程序 #include <stdio.h> void fun(char *a,char *b) while(*a=*) a+; while(*b=*a) b+;a+; main() char *s=”*a*b*”,t80; fun(s,t); puts(t); 程序的運(yùn)行結(jié)果是 A)*a*b B) a*b C) a*b
40、* D) ab (36) 有以程序 #include <stdio.h> #include <string.h> typedef struct char name9; char sex; float score2; STU; void f( STU a) STU b=“Zhao” ,m,85.0,90.0 ; int i; strcpy(,); a.sex=b.sex; for(i=0;i<2;i+) a.scorei=b.scorei; main() STU c=“Qian”,p,95.0,92.0; f(c); printf(“%s,%
41、c,%2.0f,%2.0fn”,,c.sex,c.score0,c.score1); 程序的運(yùn)行結(jié)果是 A)Qian,f,95,92 B) Qian,m,85,90 C) Zhao,f,95,92 D) Zhao,m,85,90 (37) 有以下程序 #include <stdio.h> main() FILE *fp; int a10=1,2,3,i,n; fp=fopen(“dl.dat”,”w”); for(i=0;i<3;i+) fprintf(fp,”%d”,ai); fprintf(fp,”n”); fclose(fp); fp=fopen(“dl.d
42、at”,”r”); fscanf(fp,”%d”,&n); fclose(fp); printf(“%dn”,n); 程序的運(yùn)行結(jié)果是 A)12300 B) 123 C) 1 D) 321 (38)變量a中的數(shù)據(jù)用二進(jìn)制表示的形式是,變量b中的數(shù)據(jù)用二進(jìn)制表示的形式是。若要求將a的高4位取反,低4位不變,所要執(zhí)行的運(yùn)算是 A)ab B)a|b C)a&b D)a<<4 (39)在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是 A)auto和register B)extern和register C) auto和static D) static和registe
43、r (40)設(shè)有定義語句int(*f)(int);,則以下敘述正確的是 A)f是基類型為int的指針變量 B) f是指向函數(shù)的指針變量,該函數(shù)具有一個int類型的形參 C) f是指向int類型一維數(shù)組的指針變量 D) f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址 二、填空題(每空2分,共30分) 請將每一個空的正確答案些在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。 (1)測試用例包括輸入值集和【1】值集。(2)深度為5的滿二叉樹有【2】個葉子結(jié)點(diǎn)。 (3)設(shè)某循環(huán)隊(duì)列的容量為50,頭指針front=5(指向隊(duì)頭元素的前一位置),尾指針rear=29(指向隊(duì)尾元素),則該循環(huán)
44、隊(duì)列中共有【3】個元素。 (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)已有定義:char c= ;int a=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【6】。 (7)設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,+i,i+的值為【7】。 (8)若有定義:int k;,以下程序段的輸出結(jié)果是【8】。 for(k=2;k<6;k+,k+) printf(“#%d”,k); (9)以下程序段的定義語句中,x1的初值是
45、【9】,程序運(yùn)行后輸出的內(nèi)容是【10】。 #include<stdio.h> main() int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p4,i; for(i=0;i<4;i+) pi=&x2*i+1; printf(“%d ”,pi0); printf(“n”); (10)以下程序的輸出結(jié)果是【11】。 #include<stdio.h> void swap(int *a,int *b) int *t; t=a; a=b; b=t; main() int i=3,j=5,*p=&i,*q=&
46、j; swap(p,q); printf(“%d %dn”,*p,*q); (11)以下程序的輸出結(jié)果是【12】。 #include<stdio.h> main() int a5=2,4,6,8,10, *p; p=a; p+; printf(“%d”,*p); (12)以下程序的輸出結(jié)果是【13】。 #include<stdio.h> void fun(int x) if(x/2>0) fun(x/2); printf(“%d ”,x); main() fun(3); printf(“n”); (13)以下程序中函數(shù)fun的功能是:統(tǒng)計person所指結(jié)構(gòu)體數(shù)組
47、中所有性別(sex)為M的記錄的個數(shù),存入變量n中,并做為函數(shù)值返回。請?zhí)羁眨?#include<stdio.h> #define N 3 typedef struct int num;char nam10; char sex;SS; int fun(SS person) int i,n=0; for(i=0;i<N;i+) if(【14】=M ) n+; return n; main() SS WN=1,”AA”,F,2,”BB”,M,3,”CC”,M; int n; n=fun(W); printf(“n=%dn”,n); (14)以下程序從名為filea.dat的文本文
48、件中逐個讀入字符并顯示在屏幕上。請?zhí)羁眨?#include<stdio.h> main() FILE *fp; char ch; fp=fopen(【15】); ch=fgetc(fp); whlie(!feof(fp) putchar(ch); ch=fgetc(fp); putchar(n); fclose(fp); 2007年4月二級C語言筆試真題及答案一選擇題(1)下列敘述中正確的是 A)算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)B)算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的 D)算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)(2
49、)在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是 A)各模塊應(yīng)包括盡量多的功能B)各模塊的規(guī)模應(yīng)盡量大 C)各模塊之間的聯(lián)系應(yīng)盡量緊密 D)模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度(3)下列敘述中正確的是 A)軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤B)軟件測試的主要目的是確定程序中錯誤的位置C)為了提高軟件測試的效率,最好由程序編制者自己來完成軟件測試的工作 D)軟件測試是證明軟件沒有錯誤(4)下面選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計特征的是 A)繼承性 B)多態(tài)性 C)類比性 D)封閉性(5)下列對列的敘述正確的是 A)隊(duì)列屬于非線性表B)隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)C)隊(duì)列在隊(duì)尾刪除數(shù)據(jù)D)隊(duì)列按“先進(jìn)先出”
50、原則組織數(shù)據(jù)(6)對下列二叉樹 進(jìn)行前序遍歷的結(jié)果為A) DYBEAFCZX B) YDEBFZXCA C) ABDYECFXZ D) ABCDEFXYZ(7) 某二叉樹中有n個度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)為 A) n+1 B) n-1 C) 2n D) n/2(8) 在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是 A) 并 B)交 C)投影 D)笛卡兒乘積(9) 在E-R圖中,用來表示實(shí)體之間聯(lián)系的圖形是 A) 矩形 B)橢圓形 C)菱形 D)平行四邊形(10)下列敘述中錯誤的是 A) 在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致 B)數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決
51、數(shù)據(jù)的共享問題C)數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫 D)數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持(11)算法中,對需要執(zhí)行的每一步操作,必須給出清楚、嚴(yán)格的規(guī)定,這屬于算法的 A)正當(dāng)性 B)可行性 C)確定性 D)有窮性(12)下列敘述中錯誤的是 A)計算機(jī)不能直接執(zhí)行用C語言編寫的源程序 B)C程序經(jīng)C編譯后,生成后綴為.obj的文件是一個二進(jìn)制文件C)后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個二進(jìn)制文件 D)后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行(13)按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是 A)大寫字母 B)連接符 C)數(shù)字字
52、符 D)下劃線(14)以下敘述中錯誤的是 A)C語言是一種結(jié)構(gòu)化程序設(shè)計語言B)結(jié)構(gòu)化程序有順序、分支、循環(huán)三種基本結(jié)構(gòu)組成C)使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題D)結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法(15)對于一個正常運(yùn)行的C程序,以下敘述中正確的是 A)程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束B)程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束 C)程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束D)程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束(16)設(shè)變量均已正確定義,若要通過scanf(“%d%c%d%c”,&a1,&
53、amp;c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式正確的是(注:代表空格字符) A)10X20Y回車 B)10X20Y回車 C)10X回車D)10X回車20Y回車 20Y回車(17)若有代數(shù)式(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是 A)sqrt(abs(nx+ex) B)sqrt(fabs(pow(n,x)+pow(x,e)C)sqrt(fabs(pow(n,x)+exp(x,e) D) sqrt(fabs(pow(x,n n)+exp(x)(18)設(shè)有定義:int
54、 k=0;,以下選項(xiàng)的四個表達(dá)式中與其他三個表達(dá)式的值不相同的是 A)k+ B)k+=1 C)+k D)k+1(19)有以下程序,其中%u表示按無呼號整數(shù)輸出Main()unsigned int x=0xFFFF;/* x的初值為十六進(jìn)制數(shù) */Printf(“%un”,x); 程序運(yùn)行后的輸出結(jié)果是 A)-1 B)65535 C)32767 D)0XFFFF(20)設(shè)變量x和y均已正確定義并賦值,以下if語句中,在編譯時將產(chǎn)生錯誤信息的是 A)if(x+) B)if(x>y&y!=0); C)if(x>y)x- - D)if(y<0) ;else y+: else
55、x+;(21)以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式 A)x%2=1 B)x/2 C)x%2!=0 D)x%2=0(22)以下敘述中正確的是 A)break語句只能用于switch語句題中 B)continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)C)break 語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi) D)在循環(huán)體內(nèi)使用break語句和continue語句的作用相同(23)有以下程序Main()int k=5,n=0;doswitch(k)case1: case3:n+=1; break;Default;n=0;k-;Case2: case4:n+=2;k-;break;Printf(“%d”,n);while(k
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年生物樣本庫建設(shè)與運(yùn)營合同
- 小班語言教案
- 半導(dǎo)體照明光源項(xiàng)目可行性研究報告申請報告
- 美術(shù)組教學(xué)工作計劃
- 寫給媽媽的感謝信模板集合5篇
- 護(hù)理學(xué)生自我鑒定大專(9篇)
- 關(guān)于堅(jiān)持高二記敘文作文
- 小學(xué)三年級安全教育工作計劃
- 網(wǎng)絡(luò)實(shí)習(xí)報告范文合集六篇
- 云南省昭通市昭陽區(qū)2024-2025學(xué)年八年級上學(xué)期1月期末考試歷史試卷(無答案)
- 成人呼吸事件判讀規(guī)則演示文稿
- 酒店水單模板
- 心包積液-課件
- 六年級上冊數(shù)學(xué)復(fù)習(xí)簡便運(yùn)算的策略課件
- 考務(wù)工作手冊(發(fā)給考務(wù)和監(jiān)考)
- 醫(yī)院科室合作共建協(xié)議 醫(yī)院科室合作協(xié)議書
- 醫(yī)務(wù)人員感染性職業(yè)暴露登記表
- qc成果提高剪力墻層間混凝土一次驗(yàn)收合格率
- 比賽獲獎?wù)n件-I-love-My-White-Shoes(繪本)
- 初中生物-《植物的生殖與發(fā)育》教學(xué)課件設(shè)計
- 手機(jī)大腦:讓人睡眠好、心情好、腦力好的戒手機(jī)指南
評論
0/150
提交評論