08年4月計算機等級考試二級c語言真題與答案_第1頁
08年4月計算機等級考試二級c語言真題與答案_第2頁
08年4月計算機等級考試二級c語言真題與答案_第3頁
08年4月計算機等級考試二級c語言真題與答案_第4頁
08年4月計算機等級考試二級c語言真題與答案_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、2008年4月二級C語言筆試真題及答案(考試時間:120分鐘,滿分100分)一、 選擇題(共70分) 下列各題A),B),C),D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分. (1)程序流程圖中指有箭頭的線段表示的是 A)圖元關系 B)數據流 C)控制流 D)調用關系 (2)結構化程序設計的基本原則不包括 A)多態性 B)自頂向下 C)模塊化 D)逐步求精 (3)軟件設計中模塊劃分應遵循的準則是 A)低內聚低耦合 B)高內聚低耦合 C)低內聚高耦合 D)高內聚高耦合 (4)在軟件開發中,需求分析階段產生的主要文檔是 A)可行性分析報告 B)軟件需求

2、規格說明書 C)概要設計說明書 D)集成測試計劃 (5)算法的有窮性是指 A)算法程序的運行時間是有限的 B)算法程序所處理的數據量是有限的 C)算法程序的長度是有限的 D)算法只能被有限的用戶使用 (6)對長度為n的線性表排序,在最壞情況下,比較次數不是n(n1)/2的排序方法是 A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序 (7)下列關于棧的敘述正確的是 A)棧按“先進先出”組織數據 B)棧按“先進后出”組織數據 C)只能在棧底插入數據 D)不能刪除數據 (8)在數據庫設計中,將ER圖轉換成關系數據模型的過程屬于C A)需求分析階段 B)概念設計階段 C)邏輯設計階段 D)物理

3、設計階段 (9)有三個關系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 有關系R和S通過運算得到關系T,則所使用的運算為 A)并 B)自然連接 C)笛卡爾積 D)交 (10)設有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學號,課號,成績),則表SC的關鍵字(鍵或碼)為 A)課號,成績 B)學號,成績 C)學號,課號 D) 學號,姓名,成績 (11)以下敘述中正確的是 A)C程序中的注釋只能出現在程序的開始位置和語句的后面 B)C程序書寫

4、格式嚴格,要求一行內只能寫一個語句 C)C程序書寫格式自由,一個語句可以寫在多行上 D)用C語言編寫的程序只能放在一個程序文件中 (12)以下選項中不合法的標識符是 A)print B)FOR C)&a D)_00 (13)以下選項中不屬于字符常量的是 A)C B)"C" C)xCC0 D)'072' (14)設變量已正確定義并賦值,以下正確的表達式是 A)x=y5=x+z 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'

5、;; 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十進制代碼為97,則執行上述程序段后輸出結果是 A)因變量類型與格式描述符的類型不匹配輸出無定值 B)輸出項與格式描述符個數不符,輸出為零值或不定值 C)a,97,12k=12 D)a,97,k=12 (17)已知字母A的ASC代碼值為65,若變量kk為char型,以

6、下不能正確判斷出kk中的值為大寫字母的表達式是 A)kk=A'kk='Z B)!(kk='A'kk<=Z) C)(kk+32)>=a'(kk+32)<='z D)isalpha(kk)&&(kk<91) (18)當變量c的值不為2、4、6時,值也為“真”的表達式是 A)(c=2)(c=4)(c=6) B)(c>=2&c=6)(c!=3)(c!=5) C)(c=2&c=6)!(c2) D)(c=2&c=6)&(c2!=1) (19)若變量已正確定義,有以下程序段 int

7、a=3,b=5,c=7; if(ab) 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)有以下程序 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=%d

8、n”,a,b); 程序的運行結果是 A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 (21)有以下程序 #include <stdio.h main() int x=8; for( ; x0; x-) if(x3) printf(“d,",x-); continue; printf(“d,",-x); 程序的運行結果是 A)7,4,2 B)8,7,5,2 C)9,7,6,4 D)8,5,4,2 (22)以下不構成無限循環的語句或者語句組是 A)n=0; B)n=0; do+n;while(n<=0); while(1)n+; C)

9、n=10; D)for(n=0,i=1; ;i+) n+=i; while(n);n-; (23)有以下程序 include <stdio.h> main() int a =1,2,3,4,y,p=&a3; -p; y=*p; printf(“y=%dn”,y); 程序的運行結果是 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; (2

10、5)設有如下程序段 char s20= “Bejing”,p; p=s; 則執行p=s;語句后,以下敘述正確的是 A)可以用p表示s0 B)s數組中元素的個數和p所指字符串長度相等 C)s和p都是指針變量 D)數組s中的內容和指針變量p中的內容相等 (26)若有定義:int a23;,以下選項中對a數組元素正確引用的是 A)a2!1 B)a23 C)a03 D)a12 !1 (27)有定義語句:char s10;,若要從終端給s輸入5個字符,錯誤的輸入語句是 A)gets(s0); B)scanf(“s”,s+1); C)gets(s); D)scanf(“s”,s1); (28)以下敘述中錯

11、誤的是 A)在程序中凡是以“"開始的語句行都是預處理命令行 B)預處理命令行的最后不能以分號表示結束 C)define MAX是合法的宏定義命令行 D)C程序對預處理命令行的處理是在程序執行的過程中進行的 (29)以下結構體類型說明和變量定義中正確的是 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)struct int n=0; char c=A;t1,t2; int n;char c;REC t1,t2;

12、(30)以下敘述中錯誤的是 A)gets函數用于從終端讀入字符串 B)getchar函數用于從磁盤文件讀入字符 C)fputs函數用于把字符串輸出到文件 D)fwrite函數用于以二進制形式輸出數據到文件 (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;i12;i+) csi+; for(i=1;i<5;i+) printf(“%d”,ci); printf(“n"); 程序的運行結果是 A)1 2 3 4 B)2 3 4 4 C)4 3 3 2 D )1

13、 1 2 3 (32)有以下程序 #include <stdio.h> void fun(int 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;k10;k+)printf(“d”,ak); printf(“n”); 程序運行的結果是 A)0987654321 B)4321098765 C)5678901234 D)0

14、987651234 (33)有以下程序 include <stdio.h> #include <string。h void fun(char *s ,int n) char t; int i,j; for(i=0;in1;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); 程序的運行結果是 A)xy,aaaacc B)aaaa

15、cc,xy C)bcc,aabcc D)aabcc,bcc (34)有以下程序 #include <stdio。h> int f(int x) int y; if(x=0x=1) return (3); y=xx-f(x2); return y; main() int z; z=f(3); printf(“dn",z); 程序的運行結果是 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()

16、 char s=”*a*b*",t80; fun(s,t); puts(t); 程序的運行結果是 A)*a*b B) ab C) ab* 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;i2;i+) a.scorei=b.score

17、i; main() STU c=“Qian”,p,95。0,92.0; f(c); printf(“%s,c,%2.0f,%2。0fn”,,c.sex,c。score0,c.score1); 程序的運行結果是 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;i3;i+) fprintf(fp,"d”,a

18、i); fprintf(fp,”n”); fclose(fp); fp=fopen(“dl。dat”,”r”); fscanf(fp,”d”,&n); fclose(fp); printf(“dn”,n); 程序的運行結果是 A)12300 B) 123 C) 1 D) 321 (38)變量a中的數據用二進制表示的形式是01011101,變量b中的數據用二進制表示的形式是11110000.若要求將a的高4位取反,低4位不變,所要執行的運算是 A)ab B)a|b C)ab D)a<4 (39)在C語言中,只有在使用時才占用內存單元的變量,其存儲類型是 A)auto和registe

19、r B)extern和register C) auto和static D) static和register (40)設有定義語句int(*f)(int);,則以下敘述正確的是 A)f是基類型為int的指針變量 B) f是指向函數的指針變量,該函數具有一個int類型的形參 C) f是指向int類型一維數組的指針變量 D) f是函數名,該函數的返回值是基類型為int類型的地址 二、填空題(每空2分,共30分) 請將每一個空的正確答案些在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。 (1)測試用例包括輸入值集和【1】值集。 (2)深度為5的滿二叉樹有【2】個葉子結點。 (3)設某循環隊列的

20、容量為50,頭指針front=5(指向隊頭元素的前一位置),尾指針rear=29(指向隊尾元素),則該循環隊列中共有【3】個元素。 (4)在關系數據庫中,用來表示實體之間聯系的是【4】。 (5) 在數據庫管理系統提供的數據定義語言、數據操縱語言和數據控制語言中,【5】負責數據的模式定義與數據的物理存取構建。 (6)已有定義:char c= ;int a=1,b;(此處c的初值為空格字符),執行b=!c&a;后b的值為【6】。 (7)設變量已正確定義為整型,則表達式n=i=2,+i,i+的值為【7】。 (8)若有定義:int k;,以下程序段的輸出結果是【8】. for(k=2;k6;k

21、+,k+) printf(“%d",k); (9)以下程序段的定義語句中,x1的初值是【9】,程序運行后輸出的內容是【10】。 includestdio。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;i4;i+) pi=&x2*i+1; printf(“d ”,pi0); printf(“n”); (10)以下程序的輸出結果是【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=&j; swap(p,q); printf(“d dn”,*p,q); (11)以下程序的輸出結果是【12】。 #includestdio。h> main() int a5=2,4,6,8,10, *p; p=a; p+; printf(“d",p); (12)以下程序的輸出結果是【13】. include<stdio。h> void fun(int x) if(x/2>0) fun(x/2); printf(“%d ",x); main() fun(3); printf(“n”);

溫馨提示

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

評論

0/150

提交評論