全國計算機等級考試二級C語言試題及答案(201003)_第1頁
全國計算機等級考試二級C語言試題及答案(201003)_第2頁
全國計算機等級考試二級C語言試題及答案(201003)_第3頁
全國計算機等級考試二級C語言試題及答案(201003)_第4頁
全國計算機等級考試二級C語言試題及答案(201003)_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.絕密啟用前2010年3月全國計算機等級考試二級筆試試卷C語言程序設計及參考答案(考試時間90分鐘,滿分100分)一、選擇題(1)(10)、(21)(40)每題2分,(11)(20)每題1分。共70分) 下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡上,答在試卷上不得分。 (1) 下列敘述中正確的是A)對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數為nB)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(n/2)C)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為()D) 對長度為n的有序鏈表進行對分查找,最壞情況下需要

2、的比較次數為(n)(2) 算法的時間復雜度是指 A)算法的執行時間 B)算法所處理的數據量 C)算法程序中的語句或指令條數 D)算法在執行過程中所需要的基本運算次數(3) 軟件按功能可以分為:應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬于系統軟件的是 A)編輯軟件 B)操作系統 C)教務管理系統 D)瀏覽器(4) 軟件(程序)調試的任務是 A)診斷和改正程序中的錯誤 B)盡可能多地發現程序中的錯誤 C)發現并改正程序中的所有錯誤 D)確定程序中錯誤的性質(5) 數據流程圖(DFD圖)是 A)軟件概要設計的工具 B)軟件詳細設計的工具 C)結構化方法的需求分析工具 D)面向對象方法的需求分

3、析工具(6) 軟件生命周期可分為定義階段,開發階段和維護階段。詳細設計屬于 A)定義階段 B)開發階段 C)維護階段 D)上述三個階段(7) 數據庫管理系統中負責數據模式定義的語言是 A)數據定義語言 B)數據管理語言 C)數據操縱語言 D)數據控制語言(8) 在學生管理的關系數據庫中,存取一個學生信息的數據單位是 A)文件 B)數據庫 C)字段 D)記錄(9) 數據庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示,它屬于數據庫設計的 A)需求分析階段 B)邏輯設計階段 C)概念設計階段 D)物理設計階段(10) 有兩個關系R和T如下:R TABCa12b22c32d32ABCc

4、32d32則由關系R得到關系T的操作是選擇 B)投影 C)交 D)并(11) 以下敘述正確的是A)C語言程序是由過程和函數組成的B)C語言函數可以嵌套調用,例如:fun(fun(x)C)C語言函數不可以單獨編譯D)C語言中除了main函數,其他函數不可以作為單獨文件形式存在(12) 以下關于C語言的敘述中正確的是A)C語言中的注釋不可以夾在變量名或關鍵字的中間B)C語言中的變量可以再使用之前的任何位置進行定義C)在C語言算術的書寫中,運算符兩側的運算數類型必須一致D)C語言的數值常量中夾帶空格不影響常量值的正確表示(13) 以下C語言用戶標示符中,不合法的是A)_1 B)AaBc C)a_b

5、D)a-b(14) 若有定義:double a=22;int i=0,k=18;則不符合C語言規定的賦值語句是 A)a=a+,i+ B)i=(a+k)<=(i+k) C)i=a%11 D)i=!a(15)include <stdio.h>main()char a,b,c,d;scanf(%c%c,&a,&b);c=getchar(); d=getchar();printf(%c%c%c%cn,a,b,c,d);當執行程序時,按下列方式輸入數據(從第一列開始,<CR>代表回車,注意:回車是一個字符)12<CR>34<CR>則輸

6、出結果是:A、1234 B、12 C、12 D、12 3 3416、以下關于C語言數據類型使用的敘述中錯誤的是:A、若要準確無誤的表示自然數,應使用整數類型。B、若要保存帶有多位小數的數據,應使用雙精度類型。C、若要處理如人員信息等含有不同類型的相關數據,應自定義結構體類型。D、若只處理真和假兩種邏輯值,應使用邏輯類型。17、若a是數值類型,則邏輯表達式(a=1)|(a!=1)的值是:A、1 B、0 C、2 D、不知道a的值,不能確定18、以下選項中與if(a=1) a=b;else a+;語句功能不同的switch語句是:A、switch(a) B、switch(a=1) case 1:a=

7、b;break; case 0 : a=b;break; default : a+; case 1 : a+; C、switch(a) D、switch(a=1) default : a+;break; case 1:a=b;break; case 1:a=b; case 0: a+; 19、有如下嵌套的if語句 if(a<b) if(a<c) k=a; else k=c; else if(b<c) k=b; else k=c;以下選項中與上述if語句等價的語句是k=(a<b)?a:b;k=(b<c)?b:c;k=(a<b)?(b<c)?a:b):(b

8、<c)?b:c);k=(a<b)?(a<c)?a:c):(b<c)?b:c);k=(a<b)?a:b;k=(a<c)?a;c(20)有以下程序#include <stdio.h>main() int i,j,m=1;for(i=1;i<3;i+) for(j=3;j>0;j-) if(i*j>3) break;m*=i*j;printf(m=%dn,m)程序運行后的輸出結果是(A) m=6 (B)m=2 (C)m=4 (D)m=5(21)有以下程序#includes <stdio.h>main() int a=1,b

9、=2; for(;a<8;a+) b+=a; a+=2;printf (%d,%dn,a,b);程序運行后的輸出結果是(A)9,18 (B)8,11 (C)7,11 (D)10,14(22)有以下程序,其中k的初值為八進制數#include <stdio.h>main()int k=011;printf(%dn,k+);程序運行后的輸出結果是(A)12 (B)11 (C)10 (D)9(23)下列語句中,正確的是A) char *s ; s=Olympic; B) char s7 ; s=Olympic;C) char *s ; s=Olympic; D) char s7 ;

10、 s=Olympic;(24)以下關于return語句的敘述中正確的是A)一個自定義函數中必須有一條return語句B) 一個自定義函數中可以根據不同情況設置多條return語句C)定義成viod類型的函數中可以有帶返回值的return語句D)沒有return語句的自定義函數在執行結束時不能返回到調用處(25)下列選項中,能夠正確定義數組的語句是A)int num0.2008; B) int num;C) int N=2008; D) #define N 2008 int numN; int numN(26)有以下程序#include<stdio.h>void fun (char*

11、c,int d)*c=*c+1;d=d+1;printf(%c,%c,*c,d);main()char b=a,a=A;fun(&b,a); printf(%c,%cn,b,a);程序運行后的輸出結果是 A)b,B,b,A B)b,B,B,A C)a,B,B,a D)a,B,a,B(27)若有定義int(*pt)3;,則下列說法正確的是A)定義了基類型為int的三個指針變量B)定義了基類型為int的具有三個元素的指針數組pt。C)定義了一個名為*pt、具有三個元素的整型數組D)定義了一個名為pt的指針變量,它可以指向每行有三個整數元素的二維數組(28)設有定義double a10,*s

12、=a;,一下能夠代表數組元素a3的是A)(*s)3 B)*(s+3) C)*s3 D)*s+3(29)有以下程序#include<stdio.h>main() int a5=1,2,3,4,5, b5=0,2,1,3,0,is=0 for(i=0;i<5;i+) s=s+abi;printf("%dn",s);程序運行后的輸出結果是A) 6 B) 10 C) 11 D)1530) 有以下程序 #include<stdio.h> main() int b3 3=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0; i<3;

13、 i+)For(j=i;j<=i;j+) t+=bibji;Printf("%dn",t);程序運行后的輸出結果是A)1 B)3 C)4 D)9(31)若有以下定義和語句char sl10= "abcd!", *s2="n123" printf("%d %dn", strlen(s1),strlen(s2);則輸出結果是A) 5 5 B)10 5 C)10 7 D)5 8(32)有以下程序 #include<stdio.h> #define N 8 void fun(int *x,int i) *

14、x=*(x+i);main() int aN=1,2,3,4,5,6,7,8,i;fun(a,2);for(i=0; i<N/2); i+) printf("%d",ai);printf("n");程序運行后的輸出結果是A)1 3 1 3 B) 2 2 3 4 C) 3 2 3 4 D)1 2 3 4 (33)有以下程序#include<studio.h>int f(int t ,int n);main()int a4=1,2,3,4,s;s=fa,4; printf(%dn,s);int f(int t, int n) if (n&g

15、t;0) return tn-1+f(t,n-1);else return 0;程序運行后的輸出結果是A)4 B)10 C)14 D)6(34)有以下程序#include<studio.h>int fun()static int x=1;x*=2; return x;main()int I,s=1;for (i=1;i<=2;i+) s=fun();printf(%dn,s);程序運行后的輸出結果是A)0 B)1 C) 4 D)8(35)以下程序#include <stdio.h>#define SUB(a) (a)-(a)main()int a=2,b=3,c=

16、5,d;d=SUB(a+b)*c;printf(%dn,d);程序運行后的結果是A)0 B)-12 C)-20 D)10(36)沒有定義struct complex int real, unreal ; datal=1,8,data2;則以下賦值語句中的錯誤的是A)data2=data1; B)data2=(2,6);C)data2.real1=data1.real; D)data2.real=data1.unreal; (37)有以下程序#include <studio.h>#include <string.h>struct Aint a; char b10;doub

17、le c;void f(struct A t);main()struct A a=1001,ZhangDa,1098.0;f(a); pringt(%d,%s,%6.1fn,a.a,a.b,a.c);void f(struct A t)t.a=1002;strcpy(t.b,ChangRong);t.c=1202.0;程序運行后的輸出結果是A)1001,ZhangDa,1098.0 B)1002,ChangRong,1202.0C)1001,ChangRong,1098.0 D)1002,ZhangDa,1202.0(38)有以下定義和語句struct workersint num; char

18、 name20;char c;srructint day;int month;intyear; s;struct workers w,*pw;pw=&w能給w中year成員賦1980的語句是A)*pw.year=1980; B)w.year=1980;C)pw->year=1980; D)w.s.year=1980; (39)有以下程序#include <stdio.h>main()int a=2,b=2,c=2;printf(%dn,a/b&c);程序運行后的結果是A)0 B)1 C)2 D)3(40)以下程序#include<stdio.h>m

19、ain( ) FILE *fp;char str10;fp=fopen(myfile.dat,w);fputs(abc,fp); fclose(fp);fp=fopen(myfile.dat,a+);rewind(fp,gd,28);rewind(fp);fscanf(fp,gs,str); puts(str);fclose(fp); 程序運行后的輸出結果是A)abc B)28c C)abc28 D)因類型不一致而出錯二、填空題(每空2分,共30分)請將每空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。(1)一個隊列的初始狀態為空,先將元素A,CB,C,D,E,F,5,4

20、,3,2,1依次入隊,然后再依次退隊,則元素退隊的順序為_【1】_。(2)設某循環列隊的容量為50,如果頭指針front=45(指向隊頭元素的前一位置),尾指針rear=10(指向隊尾元素),則該循環隊列中共有_【2】_個元素。(3)設二叉數如下: 對該二叉樹進行后序遍歷的結果為【3】(4)軟件是 【4】 、數據和文檔的集合。(5)有一個學生選課的關系,其中學生的關系模式為:學生(學號,姓名,班級,年齡),課程的關系模式為:課程(課號,課程名,學時),其中兩個關系模式的鍵分別是學好和課號,則關系模式選課可以定義為:選課(學號, 【5】 ,成績)。(6)設x為int型變量,請寫出一個關系表達式

21、【6】 ,用以判斷x同時為3和7的倍數時,關系表達式的值為真。(7)有以下程序#include < stdio.h >main() int a=1,b=2,c=3,d=0;if (a=1) if (b!=2) if(c!=3) d=1; else d=2; else if(c!=3) d=3; else d=4; else d=5; printf(%dn,d);程序運行后的輸出結果是: 【7】 。(8)有以下程序#include < stdio.h >main() int m,n;scanf(%d%d,&m,&n);while (m!=n) while(

22、m>n) m=m-n; while(m<n)n=n-m;printf(%dn,m);程序運行后,當輸入14 63<回車>時,輸出結果是 【8】 (9)有以下程序#include <stdio.h>main () int I,j,a3=1,2,3,4,5,6,7,8,9; for (i=1;i<3;i+) for(j=I;j<3;j+) printtf(%d,aij); printf(n);程序運行后的輸出結果是 【9】 (10) 有以下程序 #include <stdio.h>main() int =1,2,3,4,5,6,*k3,i

23、=0; while(i<3) ki=&a2*i; printf(%d,*ki); i+; 程序運行后的輸出結果是_(11) 有以下程序 #include <stdio.h>main() int a33=1,2,3,4,5,6,7,8,9; int b3=0,i; for(i=0;i<3;i+) bi=ai2+a2i; for(i=0;i<3;i+) printf(%d,bi); printf(n);程序運行后的結果是_(12) 有以下程序#include <stdio.h>#include <string.h>void fun(char*str)char temp; int n,i;n=strlen(str);temp=strn-1;for(i=n-1;i>0;i-) stri=stri-1;str0=temp;main()char s50;scanf(%s,s); fun(s)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論