友情提示:本站提供全國400多所高等院校招收碩士、博士研究生入學考試歷年考研真題、考博真題、答案,部分學校更新至2012年,2013年;均提供收費下載。 下載流程: 考研真題 點擊“考研試卷””下載; 考博真題 點擊“考博試卷庫” 下載
杭 州 師 范 大 學 碩 士 研 究 生 入 學 考 試 命 題 紙 2018 年 考試科目代碼 861 考試科目名稱 軟件專業基礎 (本考試科目共 6 頁,第 1 頁) 杭 州 師 范 大 學 2018 年招收攻讀碩士研究生入學考試題 考試科目代碼: 861 考試科目名稱: 軟件專業基礎 說明:考生答題時一律寫在答題紙上,否則漏批責任自負。 第一部分、C 程序設計 一、單選題(每題 1 分,共 15 分) 1. 假設有定義: int k; 下面程序段編譯運行的情況是_____。 for (k=1; k; k++) printf ("%d ", k); A.能運行, 正常結束 B.以上說法都不對 C.編譯錯誤 D.能運行, 是死循環 2.循環語句 while (!x&&!y) 中的循環條件表達式等價于 A.!(x!=0||y!=0) B.!(x==0 && y==0) C.!(x==0 || y==0) D.x=0 && y=0 3. 若定義 char s[2][3]={“ab”, “cd”}, *p=(char *)s; 那么下列表達式語法正確,并且其值與 s[1][1]相等的表達式(并非一定與其等價)是 A.*(p+4) B.*(s+3) C.*(p+3) D.*s+2 4. 對于 int x, y; 語句 if (x < 0) y = -1; else if (!x) y = 0; else y = 1; 等價于 杭 州 師 范 大 學 碩 士 研 究 生 入 學 考 試 命 題 紙 2018 年 考試科目代碼 861 考試科目名稱 軟件專業基礎 (本考試科目共 6 頁,第 2 頁) A. B. C. D. if (x != 0) if (x > 0) y = 1; else y = -1; if (x>=0) y=0; if(x) y=1; else y=-1; y=0; if (x>=0) if(x) y=1; else y=-1; y=0; if (x!=0) if(x>0) y=1; else y=-1; 5. 要求函數的功能是交換 x 和 y 中的值,且通過正確調用返回交換結果。能正確實現此功能 的函數是 A. B. void funa(int x , int y) { int t; t=x;x=y;y=t; } void funa(int *x , int *y) { int t = *x; *x = *y; *y = t; } C. D. void funa(int *x , int *y) { int *p; *p=*x;*x=*y;*y=*p; } int funa(int *x , int *y) { *x=*y;*y=*x; } 6. 對于如下定義: int k,a[10],*p=a; 哪個表達式是不正確的 A.a++ B.p++ C.a[0]=k D.*p++=2 7. 下列描述不正確的是 A.全局變量定義在函數外部 B.靜態本地變量分配在全局變量所在的地方 C.靜態本地變量定義在函數外部 D.本地變量定義在函數內部 8.有如下定義: int x[]={1,2,3},*p=x,y; 則 y=*p++; 相當于_____ A.y=1, x++ B.y=2, p=x+1 C.y=*p, p++ D.y=2, p=&x[1] 9. 與 while( *s++ = *t++ ); 等價的程序段是 A. B. C. D. do { *s++ = *t++; } while ( *t ); while ( *t ) *s++ = *t++; do { *s = *t++; } while ( *s++ ); while ( *s ) *s++ = *t++; 杭 州 師 范 大 學 碩 士 研 究 生 入 學 考 試 命 題 紙 2018 年 考試科目代碼 861 考試科目名稱 軟件專業基礎 (本考試科目共 6 頁,第 3 頁) 10. 有以下結構體說明和變量定義,指針 p、q、r 依次指向一個鏈表中的三個連續結點。 struct node { int data struct node *next ; } *p, *q, *r; 現要將 q 和 r 所指結點的先后位置交換,同時要保持鏈表的連續,以下錯誤的程序段是 A.r->next=q; q->next=r->next; p->next=r; B.p->next=r; q->next=r->next; r->next=q; C.q->next=r->next; p->next=r; r->next=q; D.q->next=r->next; r->next=q; p->next=r; 11. 有以下程序 void WriteStr(char *fn,char *str) { FILE *fp; fp=fopen(fn,"w"); fprintf(fp, "%s", str); fclose(fp); } int main() { WriteStr("t1.dat","start"); WriteStr("t1.dat","end"); return 0; } 程序運行后,文件 t1.dat 中的內容是 A.start B.endrt C.startend D.end 12.語句 while(x%3) a++; 中的表達式 x%3 等價于_______. A.x%3!=0 B.x%3==1 C.x%3==2 D.x%3==0 13.當文件打開出現錯誤時,fopen 返回的是? A.沒有返回就導致程序退出了 B.-1 C.1 D.0 14.在一個鏈表中,要把 s 所指的一個結點插入到 p 所指的一個結點后面去,正確的語句是: A.s->next=p; p->next=s; B.s->next=p?->next; p=s; C.p->next=s; s->next=p; D.s->next=p->next; p->next=s; 15.下列數組定義,不正確的是 _______. A.int a[1][3]; B.int m[][3]={1,2,3,4,5,6}; C.int x[2][]={1,2,4,6}; D.int x[2][2]={1,2,3,4}; 杭 州 師 范 大 學 碩 士 研 究 生 入 學 考 試 命 題 紙 2018 年 考試科目代碼 861 考試科目名稱 軟件專業基礎 (本考試科目共 6 頁,第 4 頁) 二、問答題(每小題 3 分,共 15 分) 1. 語句 if (4/5 > 3/4) a=1; else a=0; 運行后,a 的值是? 2. 表達式 !!”2010-01-27” 的值為(以 1 表示真,0 表示假) 3. 假設字符變量 ch 中存放有大寫英文字母,將其轉換為相應的小寫英文字母的表達式是(形 如 ch=...答案不留任何的空格,不帶結尾的分號) 4. 下列程序段的輸出是_______。 #define DF(a,b) (a+2*b) int s=5; int k= DF(s+1,s-3); printf("%d",k); 5.以下代碼段的輸出是: int x, y, z, w; void p(int *y, int x) { static int w; *y++; x++; w = x+*--y; printf("%d#%d#%d#%d#",x,*y,z,w); } int main(void) { int x, y, z, w; x=y=z=w=1; do{ static int x; p(&x, y); printf("%d#%d#%d#%d#",x,y,z,w); } while(0); return 0; } 三、請用 C 語言寫出冒泡排序的程序。(20 分) 四、請用 C 語言寫出在一個升序的整數數組中折半查找(二分法搜索)的函數。(25 分) 杭 州 師 范 大 學 碩 士 研 究 生 入 學 考 試 命 題 紙 2018 年 考試科目代碼 861 考試科目名稱 軟件專業基礎 (本考試科目共 6 頁,第 5 頁) 第二部分、數據庫原理 五、選擇題(共 15 分,每小題 3 分) 1、若事務 T 對數據對象 A 加上 S 鎖(共享鎖)而未加 X 鎖(互斥鎖),則___________。 A.事務 T 可以讀 A 和修改 A,其它事務只能再對 A 加 S 鎖,而不能加 X 鎖。 B.事務 T 可以讀 A 但不能修改 A,其它事務只能再對 A 加 S 鎖,而不能加 X 鎖。 C.事務 T 可以讀 A 但不能修改 A,其它事務能對 A 加 S 鎖和 X 鎖。 D.事務 T 可以讀 A 和修改 A,其它事務能對 A 加 S 鎖和 X 鎖 2、有一名為“航班運營”實體,含有航班號、日期、計劃起飛時間,計劃到達時間,實際起飛 時間、實際到達時間、情況摘要等屬性,該實體主碼可能是_________。 A.航班號 B.日期 C.航班號+日期 D.航班號+情況摘要 3、在現代數據庫管理系統中,記錄數據庫事務操作信息的文件是_______。 A. 數據文件 B. 索引文件 C. 輔助數據文件 D. 日志文件 4.設關系 R 和關系 S 具有相同的元數(目),且對應的屬性取自相同的域。集合{t|t∈R∧t∈S} 標記的是( )。 A、R∪S B、R-S C、R×S D、R∩S 5、有一個關系:職工(工號,姓名,崗位、工資),規定工資的范圍應該在 3000-30000 元之 間,這一規則在 SQL 中可以用__________子句約束。 A、whereB、check C、primary key D、foreign key 六、填空題(共 10 分,每空格 2 分) 1.數據庫管理系統中,若一個事務因某種原因執行失敗,將執行____________操作,以保證 數據庫的一致性。 2.設關系模式 R(A,B,C,D,E)的函數依賴集為 F={AB→C, C→D, D→E},則 R 的候選碼 (Candidate Key)可為______________________。 3.SQL 查詢語言中,如要表達任意多個任意字符,應使用通配符___________。 4.數據庫管理系統中,為了保證事務的正確執行,維護數據庫的完整性,要求數據庫系統維 護以下事務特性:________、一致性、隔離性和持續性。 5.關系模式的三種完整性約束分別是______________,參照完整性約束和用戶自定義的完整 性約束。 七、綜合應用題(共 50 分) 1. 數據庫概念設計(16 分) 杭 州 師 范 大 學 碩 士 研 究 生 入 學 考 試 命 題 紙 2018 年 考試科目代碼 861 考試科目名稱 軟件專業基礎 (本考試科目共 6 頁,第 6 頁) 一個研究生管理數據庫要求提供下述服務: ? 可隨時查詢學校中所有系的信息,包括系的名稱、系辦公室地址和值班電話。所有系均由 系的名稱唯一標識。 ? 可隨時查詢所有教師的信息,包括其姓名、年齡、職稱、所屬系以及在該系入職時間。一 個系有多名教師,一名教師只能在一個系工作,工作證號具有唯一性。 ? 可隨時查詢每個系研究生信息,包括學號、姓名、導師(教師)、專業方向。一名教師可 以指導多位研究生,一位研究生的導師只能有一個。 (1)根據以上需求,繪制出 E-R 圖。(8 分) (2)根據 E-R 圖轉換成關系模型,并標明主鍵和外鍵。(8 分) 2. 規范化題(10 分) 假設有一個加油站的系統中有如下關系 R(加油員 ID,加油員姓名,流水號,金額)。其中,每 一次加油操作都有一個流水號,并由相應金額。每個加油員各自編制流水號,不同加油員的流 水號有可能相同。 (1)給出上述關系 R 的函數依賴集,以及候選碼。 (2)說明 R 非 BCNF 模式的理由,并將上述關系 R 分解為 BCNF 模式。 3. SQL 應用題(24 分,共 6 小題,每小題 4 分) 設有一個醫院管理系統, 科室(科室號,科室名稱,值班電話) 醫生(工號,姓名,性別,職稱,所屬科室號,入職時間,狀態) 病人(病人編號,姓名,性別,出生日期,電話) 門診記錄(門診號,病人編號,工號,日期,主訴,診斷,處理建議) 要求用 SQL 語言完成如下題目,字段名稱和數據表名請直接使用上面的漢字: (1)創建科室表,注意完整性約束。(4 分) (2)檢索出所有職稱為“主任醫師”的醫生信息。(4 分) (3)檢索出所有在 2017 年 11 月 11 日看過門診的病人姓名和出生日期。(4 分) (4)檢索出各科室門診量最大的醫生的門診量,要求返回科室號,門診量。(4 分) (5)查詢診斷包含“高血壓”的病人編號、病人姓名和出生日期。(4 分) (6)將賈寧醫生的狀態設置為“退休”。(4 分)
免責聲明:本文系轉載自網絡,如有侵犯,請聯系我們立即刪除,另:本文僅代表作者個人觀點,與本網站無關。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。
|