




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.全國計算機等級考試二級c語言筆試+上機題庫(全)一、選擇題在下列各題的a)、b)、c)、d)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替傳統的程序流程圖,通常也把這種圖稱為b a)pad圖b)n-s圖 c)結構圖 d)數據流圖(2)結構化程序設計主要強調的是d a)程序的規模 b)程序的效率 c)程序設計語言的先進性 d)程序易讀性(3)為了使模塊盡可能獨立,要求ba)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強b)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量弱c)模
2、塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量弱 d)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量強d(4)需求分析階段的任務是確定 a)軟件開發方法 b)軟件開發工具 c)軟件開發費用 d)軟件系統功能(5)算法的有窮性是指aa)算法程序的運行時間是有限的b)算法程序所處理的數據量是有限的c)算法程序的長度是有限的d)算法只能被有限的用戶使用(6)對長度為n的線性表排序,在最壞情況下,比較次數不是n(n-1)/2的排序方法是d a)快速排序 b)冒泡排序 c)直接插入排序 d)堆排序(7)如果進棧序列為e1,e2,e3,e4,則可能的出棧序列是b a)e3,e1,e4,e2 b)e2
3、,e4,e3,e1 c)e3,e4,e1,e2 d) 任意順序(8)將e-r圖轉換到關系模式時,實體與聯系都可以表示成b a)屬性 b)關系 c)鍵 d)域(9)有三個關系r、s和t如下:drb c d a 0 k1 b 1 n1 sb c d f 3 h2 a 0 k1 n 2 x1 tbcda0k1由關系r和s通過運算得到關系t,則所使用的運算為 a)并 b)自然連接 c)笛卡爾積 d)交(10)下列有關數據庫的描述,正確的是d a)數據處理是將信息轉化為數據的過程 b)數據的物理獨立性是指當數據的邏輯結構改變時,數據的存儲結構不變 c)關系中的每一列稱為元組,一個元組就是一個字段 d)如
4、果一個關系中的屬性或屬性組并非該關系的關鍵字,但它是另一個關系的關鍵字,則稱其為本關系的外關鍵字(11)以下敘述中正確的是c a)用c程序實現的算法必須要有輸入和輸出操作b)用c程序實現的算法可以沒有輸出但必須要有輸入c)用c程序實現的算法可以沒有輸入但必須要有輸出d)用c程序實現的算法可以既沒有輸入也沒有輸出(12)下列可用于c語言用戶標識符的一組是b a)void, define, word b)a3_3,_123,car c)for, -abc, if case d)2a, do, sizeof (13)以下選項中可作為c語言合法常量的是a a)-80 b)-080 c)-8e1.0 d
5、)-80.0e (14)若有語句:char *line5;,以下敘述中正確的是aa) 定義line是一個數組,每個數組元素是一個基類型為char為指針變量b) 定義line是一個指針變量,該變量可以指向一個長度為5的字符型數組c) 定義line是一個指針數組,語句中的*號稱為間址運算符d) 定義line是一個指向字符型函數的指針(15)以下定義語句中正確的是b a)int a=b=0; b)char a=65+1,b=b; c)float a=1,*b=&a,*c=&b; d)double a=00;b=1.1; (16)有以下程序段dchar ch; int k; ch=a;k=12; pr
6、intf(%c,%d,ch,ch,k); printf(k=%d n,k);已知字符a的ascii碼值為97,則執行上述程序段后輸出結果是a)因變量類型與格式描述符的類型不匹配輸出無定值b)輸出項與格式描述符個數不符,輸出為零值或不定值c)a,97,12k=12 d)a,97,k=12 (17)有以下程序dmain() int i,s=1; for (i=1;i=2& c=2&c=2& cb)a=b; c=a; if(c!=a)c=b; printf(%d,%d,%dn,a,b,c); 其輸出結果是 a)程序段有語法錯 b)3,5,3 c)3,5,5 d)3,5,7 (20)有以下程序d#in
7、clude 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); 程序的運行結果是 a)a=1,b=0 b)a=2,b=2 c)a=1,b=1 d)a=2,b=1 (21)下列程序的輸出結果是b#include stdio.h main() int i,a=0,b=0; for(i=1;i10;i+) if(i%2=0) a+; continue
8、; b+; printf(a=%d,b=%d,a,b); a)a=4,b=4 b)a=4,b=5 c)a=5,b=4 d)a=5,b=5 (22)已知#int t=0; while (t=1) . 則以下敘述正確的是ba)循環控制表達式的值為0b)循環控制表達式的值為1 c)循環控制表達式不合法d)以上說法都不對(23)下面程序的輸出結果是amain() int a10=1,2,3,4,5,6,7,8,9,10,*p=a; printf(%dn,*(p+2); a)3 b)4 c)1 d)2 (24)以下錯誤的定義語句是c a)int x3=0,1,1,2,3; b)int x43=1,2,3
9、,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)有以下程序void ss(char *s,char t) while(*s) if(*s=t)*s=t-a+a; s+; main() char str1100=abcddfefdbd,c=d; ss(str1,c); printf(%sn,str1); 程序運行后的輸出結果是b a)abcddefedbd b)abcddfefdbd c)abcaafefaba d)abcddfefdbd (26)有如下程序main() char ch25=6
10、937,8254,*p2; int i,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0;i0;j+=2)s=10*s+pij-0; printf(%dn,s); 該程序的輸出結果是c a)69825 b)63825 c)6385 d)693825 (27)有定義語句:char s10;,若要從終端給s輸入5個字符,錯誤的輸入語句是d a)gets(&s0); b)scanf(%s,s+1); c)gets(s); d)scanf(%s,s1); (28)以下敘述中錯誤的是d a)在程序中凡是以#開始的語句行都是預處理命令行 b)預處理命令行的最后不能以分號表示結束 c
11、)#define max 是合法的宏定義命令行 d)c程序對預處理命令行的處理是在程序執行的過程中進行的(29)設有以下說明語句typedef struct int n; char ch8; per; 則下面敘述中正確的是b a)per 是結構體變量名 b)per是結構體類型名 c)typedef struct 是結構體類型 d)struct 是結構體類型名(30)以下敘述中錯誤的是b a)gets函數用于從終端讀入字符串 b)getchar函數用于從磁盤文件讀入字符 c)fputs函數用于把字符串輸出到文件 d)fwrite函數用于以二進制形式輸出數據到文件(31)以下能正確定義一維數組的選
12、項是b a)int a5=0,1,2,3,4,5; b)char a=0,1,2,3,4,5,0; c)char a=a,b,c; d)int a5=0123; (32)有以下程序#includemain() char p=a, b, c,q10= a, b, c; printf(%d%dn,strlen(p),strlen(q); 以下敘述中正確的是a a) 在給p和q數組置初值時,系統會自動添加字符串結束符,故輸出的長度都為3 b) 由于p數組中沒有字符串結束符,長度不能確定,但q數組中字符串長度為3 c) 由于q數組中沒有字符串結束符,長度不能確定,但p數組中字符串長度為3 d) 由于p
13、和q數組中都沒有字符串結束符,故長度都不能確定(33)有以下程序#include #include void fun(char *s,int n) char *t; int i,j; for(i=0;in-1;i+) for(j=i+1;jstrlen(sj) t=si;si:sj;sj=t; main() char *ss=bcc,bbcc,xy,aaaacc,aabcc; fun(ss,5); printf(%s,%sn,ss0,ss4); 程序的運行結果是a a)xy,aaaacc b)aaaacc,xy c)bcc,aabcc d)aabcc,bcc (34)有以下程序c#includ
14、e int f(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); 程序的運行結果是 a)0 b)9 c)6 d)8 (35)下面程序段的運行結果是bchar str=abc,*p=str; printf(%dn,*(p+3); a)67 b)0 c)字符c的地址 d)字符c (36)若有以下定義: dstruct link int data; struct link *next; a,b,c,*p,*q; 且變量a和b之間已有如下圖所示的鏈表結構:
15、指針p指向變量a,q指向變量c。則能夠把c插入到a和b 之間并形成新的鏈表的語句組是: a)a.next=c; c.next=b; b)p.next=q; q.next=p.next; c)p-next=&c; q-next=p-next; d)(*p).next=q; (*q).next=&b; (37)對于下述程序,在方式串分別采用wt和wb運行時,兩次生成的文件test的長度分別是b#includevoid main() file *fp=fopen(test,); fputc(a,fp);fputc(n,fp);fputc(b,fp);fputc(n,fp);fputc(c,fp);
16、fclose(fp); a)7字節、7字節 b)7字節、5字節 c)5字節、7字節 d)5字節、5字節(38)變量a中的數據用二進制表示的形式是01011101,變量b中的數據用二進制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執行的運算是a a)ab b)a|b c)a&b d)a4(39)下面的程序段運行后,輸出結果是cint i,j,x=0; static int a88; for(i=0;i3;i+) for(j=0;j3;j+) aij=2*i+j; for(i=0;i8;i+) x+=aij; printf(%d,x); a)9 b)不確定值 c)0 d)
17、18 (40)下列程序執行后的輸出結果是avoid func(int *a,int b) b0=*a+6; main() int a,b5; a=0; b0=3; func(&a,b); printf(%dn,b0); a)6 b)7 c)8 d)9 二、填空題請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。(1)測試的目的是暴露錯誤,評價程序的可靠性;而【調試】的目的是發現錯誤的位置并改正錯誤。(2)某二叉樹中度為2的結點有18個,則該二叉樹中有【19】個葉子結點。(3)當循環隊列非空且隊尾指針等于隊頭指針時,說明循環隊列已滿,不能進行入隊運算。這種情況稱為【上溢】。(4)在
18、關系模型中,把數據看成一個二維表,每一個二維表稱為一個【關系】。(5)在計算機軟件系統的體系結構中,數據庫管理系統位于用戶和【操作系統或os】之間。(6)以下程序的輸出結果是【a】。main() char c=z; printf(%c,c-25); (7)閱讀下面語句,則程序的執行結果是【1,0】。#include stdio.h main() int a=-1,b=1,k; if(+a0)&!(b-4) printf(%dn,i); break; printf(%dn,i+);(9)以下程序的定義語句中,x1的初值是【2】 ,程序運行后輸出的內容是【4 6 8】。#include main(
19、) int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p4,i; for(i=0;i4;i+) pi=&x2*i+1; printf(%d,pi0); printf(n);) (10)以下程序的輸出結果是【35】。#include void swap(int *a, int *b) int *t; t=a; a=b; b=t; main() int i=3,j=5,*p=&i,*q=&j; swap(p,q); printf(%d %dn,*p,*q) (11)以下程序的輸出結果是【bcd cd d】。main() char s=abcd, *p; f
20、or(p=s+1; p=a& kk=a|kk=a&(kk+32)=z d)isalpha(kk)&(kk=2& c=2&c=2& c=6)&(c%2!=1)(19)若有條件表達式 (exp)?a+:b-,則以下表達式中能完全等價于表達式(exp)的是b a)(exp=0) b)(exp!=0) c)(exp=1) d)(exp!=1)(20)以下不正確的定義語句是b a)double x5=2.0,4.0,6.0,8.0,10.0; b)int y5=0,1,3,5,7,9; c)char c1=1,2,3,4,5; d)char c2=x10, xa, x8;(21)下列程序執行后的輸出結果
21、是bmain() int a33, *p,i; p=&a00; for(i=1; i2!1 (27)有定義語句:char s10;,若要從終端給s輸入5個字符,錯誤的輸入語句是d a)gets(&s0); b)scanf(%s,s+1); c)gets(s); d)scanf(%s,s1);(28)有以下程序b#include #define n 5 #define m n+1 #define f(x) (x*m) main() int i1,i2; i1=f(2); i2=f(1+1); printf(%d %dn,i1,i2); 程序的運行結果是 a)12 12 b)11 7 c)11 1
22、1 d)12 7(29)若有以下說明和定義dunion dt int a; char b; double c;data; 以下敘述中錯誤的是 a)data的每個成員起始地址都相同 b)變量data所占內存字節數與成員c所占字節數相等 c)程序段:data.a=5;printf(%fn,data.c);輸出結果為5.000000 d)data可以作為函數的實參(30)有以下程序#includemain() file *fp;int k,n,a6=1,2,3,4,5,6; fp=fopen(d2.dat,w); fprintf(fp,%d%d%dn,a0,a1,a2); fprintf(fp,%d
23、%d%dn,a3,a4,a5); fclose(fp); fp=fopen(d2.dat,r); fscanf(fp,%d%d,&k,&n);printf(%d%dn,k,n);fclose(fp); 程序運行后的輸出結果是d a)1 2 b)1 4 c)123 4 d)123 456(31)若已定義dint a=0,1,2,3,4,5,6,7,8,9, *p=a,i; 其中則對a數組元素不正確的引用是 a)ap-a b)*(&ai) c)pi d)a10(32)有以下程序c#include void fun(int *s,int n1,int n2) int i,j,t; i=n1; j=n
24、2; while(ij) 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;kl0;k+)printf(%d,ak); printf(n); 程序的運行結果是 a)0987654321 b)4321098765 c)5678901234 d)0987651234 (33)閱讀下列程序,當運行函數時,輸入asd af aa z67,則輸出為a#include #include #include int fun (char *str) in
25、t i,j=0; for(i=0;stri!= 0;i+) if(stri!= )strj+=stri; strj= 0; main() char str81; int n; printf(input a string : ); gets(str); puts(str); fun(str); printf(%sn,str); a)asdafaaz67 b)asd af aa z67 c)asd d)z67(34)有以下程序aint fun(int n) if(n=1)return 1; else return(n+fun(n-1); main() int x; scanf(%d,&x); x=
26、fun(x);printf(%dn,x) 執行程序時,給變量x輸入10,程序的輸出結果是 a)55 b)54 c)65 d)45(35)下面程序段中,輸出*的個數是cchar *s=ta018bc; for(;*s!=0;s+)printf(*); a)9 b)5 c)6 d)7 (36)c語言結構體類型變量在程序運行期間b a)tc環境在內存中僅僅開辟一個存放結構體變量地址的單元 b)所有的成員一直駐留在內存中 c)只有最開始的成員駐留在內存中 d)部分成員駐留在內存中(37)已知函數的調用形式為fread(buf,size,count,fp),參數buf的含義是c a)一個整型變量,代表要
27、讀入的數據項總數 b)一個文件指針,指向要讀的文件 c)一個指針,指向要讀入數據的存放地址 d)一個存儲區,存放要讀的數據項(38)設有以下語句bchar x=3,y=6,z; z=xy2; 則z的二進制值是 a)00010100 b)00011011 c)00011100 d)00011000(39)在c語言中,只有在使用時才占用內存單元的變量,其存儲類型是a a)auto和register b)extern和register c)auto和static d)static和register(40)設有定義語句int (*f)(int);,則以下敘述正確的是c a)f是基類型為int的指針變量
28、 b)f是指向函數的指針變量,該函數具有一個int類型的形參 c)f是指向int類型一維數組的指針變量 d)f是函數名,該函數的返回值是基類型為int類型的地址二、填空題請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。(1)測試用例包括輸入值集和【輸出】值集。(2)在樹形結構中,樹根結點沒有【前件】。(3)數據結構分為邏輯結構與存儲結構,線性鏈表屬于【存儲結構】。(4)一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體項目主管與實體項目的聯系屬于【一對多】的聯系。(5)數據庫設計分為以下6個設計階段:需求分析階段、【概念設計階段】、邏輯設計階段、物理設計階段、實施階段
29、、運行和維護階段。(6)閱讀下面程序段,則執行后輸出的結果是【n】。#include stdio.h main() char fun(char,int); char a=a; int b=13; a=fun(a,b); putchar(a); char fun(char a,int b) char k; k=a+b; return k;(7)函數fun的返回值是【字符串a和b的長度之和】fun(char *a,char *b) int num=0,n=0; while(*(a+num)!=0)mm+; while(bn)*(a+num)=bn;num+;n+; return num; (8)以
30、下程序的功能是:刪去一維數組中所有相同的數,使之只剩一個。數組中的數已按由小到大的順序排列,函數返回刪除后數組中數據的個數。例如,若一維數組中的數據是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 刪除后,數組中的內容應該是: 2 3 4 5 6 7 8 9 10。請填空。#include #define n 80 int fun(int a, int n) int i,j=1; for(i=1;in;i+) if(aj-1 【!=】 ai) aj+=ai; 【 return j】 ; main() int an= 2,2,2,3,4,4,5,6,6,6,
31、6,7,7,8,9,9,10,10,10, i, n=19; printf(the original data : n); for(i=0; in; i+)printf(%3d,ai); n=fun(a,n); printf(nthe data after deleted: n); for(i=0; in; i+)printf(%3d,ai); printf(nn); (9)以下程序的運行結果是【a=2,b=1】。#include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+; break; case 1:
32、b+; break; case 2:a+; b+; break; case 3:a+; b+; printf(a=%d,b=%dn,a,b); (10)以下程序的輸出結果是【31】。fun (int x,int y,int z) z =x*x+y*y; main () int a=31; fun (6,3,a) printf (%d, a) (11)函數my_cmp( )的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ascii碼差值,即st時返回正值,st時返回負值。請填空。my_cmp(char*s,char*t) while (*s = *t) if
33、(*s = 0)return0; +s; +t; return 【*s-*t】 ; (12)以下程序的輸出結果是【22】。void reverse(int a,int n) int i,t; for(i=0;in/2;i+) t=ai; ai=an-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for(i=6;i10;i+)s+=bi; printf( %dn,s); (13)以下說明語句中, 【rer】是結構體類型名。typedef struct int n; char ch8; per
34、;(14)以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請填空。#include main() file *fp; char ch; fp=fopen( 【“filea.dat”,“r” 】 ); ch=fgetc(fp); while(!feof(fp) putchar(ch); ch=fgetc(fp); putchar(n);fclose(fp);一、選擇題在下列各題的a)、b)、c)、d)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)軟件是指 d a)程序 b)程序和文檔 c)算法加數據結構 d)程序
35、、數據與相關文檔的完整集合(2)檢查軟件產品是否符合需求定義的過程稱為a a)確認測試 b)集成測試 c)驗證測試 d)驗收測試(3)以下不屬于對象的基本特點的是c a)分類性 b)多態性 c)繼承性 d)封裝性(4)在設計程序時,應采納的原則之一是d a)不限制goto語句的使用 b)減少或取消注解行 c)程序越短越好 d)程序結構應有助于讀者理解(5)下列敘述中正確的是a a)程序執行的效率與數據的存儲結構密切相關 b)程序執行的效率只取決于程序的控制結構 c)程序執行的效率只取決于所處理的數據量 d)以上三種說法都不對(6)數據結構中,與所使用的計算機無關的是數據的c a)存儲結構 b)
36、物理結構 c)邏輯結構 d)物理和存儲結構(7)線性表的順序存儲結構和線性表的鏈式存儲結構分別是b a)順序存取的存儲結構、順序存取的存儲結構 b)隨機存取的存儲結構、順序存取的存儲結構 c)隨機存取的存儲結構、隨機存取的存儲結構 d)任意存取的存儲結構、任意存取的存儲結構(8)樹是結點的集合,它的根結點數目是c a)有且只有1 b)1或多于1 c)0或1 d)至少2(9)下列有關數據庫的描述,正確的是c a)數據庫是一個dbf文件 b)數據庫是一個關系 c)數據庫是一個結構化的數據集合 d)數據庫是一組文件(10)數據庫、數據庫系統和數據庫管理系統之間的關系是b a)數據庫包括數據庫系統和數據庫管理系統 b)數據庫系統包括數據庫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生成式AI與偽批判性思維的算法邏輯與教育治理
- 公司教育日活動方案
- 公司母親節走心活動方案
- 公司步數活動方案
- 公司新年元旦活動方案
- 上班玩手機管理制度
- 心理健康在校園中的普及教育
- 中國起重機械行業市場發展現狀及前景趨勢與投資分析研究報告(2024-2030)
- 地方高校本科教育質量評價體系的反思與創新
- 基于大數據分析的思想政治教育精準施策模式
- 餐飲連鎖企業品牌授權與經營管理協議
- 北京市2024年高招本科普通批錄取投檔線
- DB32-T 5088-2025 廢活性炭綜合利用污染控制技術規范
- 2024-2025學年人教版數學八年級下冊期末復習卷(含解析)
- 城市通信基站建設對周邊居民影響風險評估報告
- 美容院洗滌協議書
- 學習解讀《水利水電建設工程驗收規程》SLT223-2025課件
- 2025-2030中國婚介網站行業發展趨勢與投資戰略研究報告
- 肥胖癥診療指南(2024年版)解讀
- 2025甘肅省農墾集團有限責任公司招聘生產技術人員145人筆試參考題庫附帶答案詳解
- 2025屆蕪湖市重點中學七年級生物第二學期期末學業水平測試模擬試題含解析
評論
0/150
提交評論