年上學期《C語言程序設計》期末試卷參考答案_第1頁
年上學期《C語言程序設計》期末試卷參考答案_第2頁
年上學期《C語言程序設計》期末試卷參考答案_第3頁
年上學期《C語言程序設計》期末試卷參考答案_第4頁
年上學期《C語言程序設計》期末試卷參考答案_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、華東師范高校2021-2021 學年其次學期期末試卷a華東師范高校期末試卷a 2021 2021 學年其次學期課程名稱: c 語言程序設計同學姓名:學號: 專業:年級/ 班級2007級課程性質:專業必修一二三四五六總分閱卷人簽名(請將全部答案寫在答題紙上)一、填空題(每空1 分,共 10 分)1. 設 x 和 y 均為 int 型變量,且 x=2 ,y=3 ,就表達式 1.0+x/y的值為1.0;2. 有如下輸入語句: scanf“ a=%d,b=%d,c=%d” ,&a,&b,&c;為使變量 a 的值為 1, b 的值為 3,c 的值為 2,從鍵盤輸入數據的正確形式應

2、是a=1,b=3,c=2;3. 變量 y 滿意以下兩條件中的任意一個: 能被 4 整除,但不能被 100 整除;能被 400 整除;請用規律表達式表示所給條件: y%4=0&&y%100.=0|y%400=0_ 4. 在內存中儲備 “ a”要占用2個字節,儲備 a要占用1個字節;5. c 語言編譯系統在判定一個量是否為“真”時,以 0 代表“假”,以非 0代表“真”;6. 結構化程序設計方法規定程序或程序段的結構有三種:次序結構、挑選結構和循環結構;7.設有“ int x=1 ;”,就“ x>0 . 2*x+1 : 0”表達式的值是 3 ;8.c 語言的表達式與語句的區分

3、在于c 語言的語句是以分號終止的, 而表達式是沒有分號的;第1頁 共 10 頁華東師范高校2021-2021 學年其次學期期末試卷a二、挑選題(每道題1 分,共 20 分)1. 以下關于 c 程序執行表達正確選項a a)程序的執行總是從main函數開頭,在main函數終止 b)程序的執行總是從程序的第一個函數開頭,在main函數終止 c)程序的執行總是從main函數開頭,在程序的最終一個函數中終止 d)程序的執行總是從程序的第一個函數開頭,在程序的最終一個函數中終止2. 以下表達中錯誤選項 da)運算機不能直接執行用c 語言編寫的源程序b) c 程序經 c 編譯程序編譯后,生成后綴為.obj

4、的文件是一個二進制文件 c)后綴為 .obj 的文件,經連接程序生成后綴為.exe 的文件是一個二進制文件 d)后綴為 .obj 和.exe 的二進制文件都可以直接運行3. 設有定義: int k=0; ,以下選項的四個表達式中與其他三個表達式的值不相同的是 aa )k+b k+=1c +kd k+14. 如 用 數 組 名 作 為 函 數 調 用 時 的 實 參 , 就 實 際 上 傳 遞 給 形 參 的 是(a);a數 組 的 首 地 址b數 組 的 第 一 個 元 素 值c數 組 中 全 部 元 素 的 值d數 組 元 素 的 個 數5. 在 while (x )語句中的 x 與下面條件

5、表達式等價的是: a; a x.=0b x=1cx.=1dx=06. 二維數組 a 有 m 行 n 列,就在 aij 之前的元素個數為(b);a) j*n+ibi*n+jci*n+j-1di*n+j+17. 設已有定義: float x; 就以下對指針變量p 進行定義且賦初值的語句中正確選項da float*p=1024;b int*p=float x;c floatp=&x;d float *p=&x;8. 設有 int x,y;以下語句判定 x 和 y 是否相等,正確的說法是該語句 b; if x=y printf" x is equal to y."a

6、語法錯b不能判定 x 和 y 是否相等c編譯出錯d能判定 x 和 y 是否相等9. 以下表達正確選項 d;a) 函數的定義和函數的調用均不行以嵌套b) 函數的定義和函數的調用均可以嵌套第2頁 共 10 頁華東師范高校2021-2021 學年其次學期期末試卷ac) 函數的定義可以嵌套,但函數的調用不行以嵌套d) 函數的定義不行以嵌套,但函數的調用可以嵌套10. 以下程序中, while循環的次數是(b);#include <stdio.h> void main int i = 0; while i<10if i<1 continue; if i= =5 break; i+

7、;a) 1b死循環,不能確定次數c 6d 1011. 以下各語句或語句組中,正確的操作是(c);a) char s5="abcde";b char *s; getss;c char *s; s="abcde"d char s5;s=”abcd ”;12. 設有以下說明語句,就下面的表達中不正確選項(b);struct exint x ; float y; char z ; example;a struct結構體類型的關鍵字c x,y,z都是結構體成員名b exampled struct ex是結構體類型名是結構體類型13. 在 c 語言中,合法的字符常量

8、是(a'084'b'x43'b);c'ab'd"0"14. 下面正確的自定義標識符是(a)aa2b3bintcw3 abcd2a3b15. 如有以下說明和語句:int a45, *p5;p = a;就對 a 數組元素的正確引用是(d);ap+1b*p+3c*p+1+3d*p+216. 如 fp 為文件指針,且文件已正確打開,i 為 long型變量,以下程序段的輸出結果是(b);fseekfp, 0, seek_end; i=ftellfp; printf"i=%ldn", i;第3頁 共 10 頁華東師范高

9、校2021-2021 學年其次學期期末試卷aa) -1b fp 所指文件的長度,以字節為單位c 0d 217. 為了防止嵌套的條件分支語句if-else的二義性, c 語言規定: c 程序中的else 總是與(c)組成配對關系; a) 縮排位置相同的ifb ) 在其之前未配對的if c) 在其之前未配對的最近的ifd) 同一行上的 if18. 執行語句 “ x=a=3,b=a-; ”后, x,a,b的值依次為 c a 3, 3, 2b 3,2,2c 3,2,3d 2,3,219. 設有如下定義 :structjaninta; floatb; c2,*p ;如有 p=&c2 ;就對 c2

10、中的成員 a 的正確引用是 : (b)a *p.c2.ab *p.ac p->c2.adp.c2.a20. 如有以下說明和語句, 已知 char 型占 1 個字節,int 類型占 2 個字節,double型占 8 個字節,就下面程序段的輸出結果為(b);struct stchar a10; int b; double c;printf“ %nd” ,sizeofstruct st;a ) 10b ) 20c) 8d) 28三、按格式寫出以下程序的運行結果;15分,每題3 分1. #include <stdio.h> int fstatic int i = 0; int s=1

11、;s+= i;i+;return s;void mainint i, a = 0;for i=0; i<5; i+第4頁 共 10 頁華東師范高校2021-2021 學年其次學期期末試卷aa+= f;printf"%dn", a;運行結果是: 152. #include<string.h>#include<stdio.h>void inversechar str intlen, i, j;chartemp; len = strlenstr;for i=0,j=len-1; i<j; i+,j-temp = stri; stri = str

12、j; strj = temp;void mainchar a80="gook luck to you." inversea;putsa;運行結果是: .ouy ot kcul koog3. #include "stdio.h" void mainint x=3; switchxcase 1:case 2:printf"x<3n" case 3:printf"x=3n" case 4:case 5:printf"x>3n" default:printf"x unknown&q

13、uot;運行結果是: x=3x>3x unknow4. #include <stdio.h>第5頁 共 10 頁華東師范高校2021-2021 學年其次學期期末試卷avoid mainint i,j,k; fori=0;i<=3;i+forj=0;j<3-i;j+ printf" "fork=0;k<2*i+1;k+ printf"*"printf"n"fori=0;i<=2;i+forj=0;j<=i;j+ printf" "fork=0;k<5-2*i;k+

14、printf"*"printf"n"運行結果是:*5. #include <stdio.h> void mainint a=10;int a=15;printf“ a.1=%d, ” ,a;printf“ a.2=%nd” ,a;運行結果是:a.1=15 ,a.2=10第6頁 共 10 頁華東師范高校2021-2021 學年其次學期期末試卷a四、閱讀程序,在標有下劃線的空白處填入適當的表達式或語句,使程序完整并符合題目要求;(16 分,每空2 分)1.求 1!+2!+3 !+.+10 !#include <stdio.h> voi

15、d main float s = 0, t = 1; int n;for n=1;n<=10; n+t =t*n;s=s+t;printf“!1+2!+3 !+.+10 !=%fn ” , s;2. 以下程序是用來統計從鍵盤輸入的一個正整數中各位數字中零的個數,并求各位數字中最大者;例如:1080 其零的個數是 2,各位數字中最大者是8;#include <stdio.h> void main unsigned long num, max, t; int count;count =0;max=0; scanf"%lu", &num; do t =n

16、um%10; ift =0+count; elseifmax<tmax=t;num/=10; whilenum; printf"count=%d,max=%ldn", count, max;3. 以下程序是建立一個名為myfile的文件,并把從鍵盤輸入的字符存入該文件,當鍵盤上輸入終止時關閉該文件;#include <stdio.h> void main第7頁 共 10 頁華東師范高校2021-2021 學年其次學期期末試卷afile *fp; char c;fp=fopen “myfile.txt”, “w ”;c=getchar; whilec.=eo

17、ffputcc,fp; c=getchar;fclosefp;4. 下面這個程序功能:讀入一個字符,當程序讀入的字符為n或 n時,就終止程序運行,否就,連續讀入一個字符;#include <stdio.h> void mainchar ch; doprintf"please enter:" scanf"%c", &ch;if ch= n |ch= n break ;while1;printf"program is over.n"五、請找出下面3 個程序中的10 處錯誤(包括語法錯誤和規律錯誤)并改正,不能重新編寫程

18、序;(20 分)1. 下面函數 sort ,實現用挑選法對數組中的n 個元素按從小到大的次序進行排序的功能;#include <stdio.h>#define max=100;/錯誤,修改為: #define max 100/添加函數原型: void sortint array , int n;void mainint amax,i,n;printf"enter the array size:" scanf"%d",&n;printf"enter the array data:" fori=0;i<n;i+s

19、canf"%d",a+;/錯誤,修改為: scanf “%d ”,&ai;sorta,n;第8頁 共 10 頁華東師范高校2021-2021 學年其次學期期末試卷aprintf"the sorted array: n" fori=0;i<n;i+printf"%d",ai;printf"n"void sortint array , int ninti,j,k,t; fori=0;i<n-1;i+fork=i;j=i+1;j<n;j+/錯誤,修改為: fork=i,j=i+1;j<n;

20、j+ ifarrayj<arraykk=j;t=arrayk; arrayk=arrayi; arrayi=t;2. 下面函數 fun 的功能是:按以下遞歸公式求函數值funn10funn12n1n.1#include <stdio.h> int funint nint c;ifn=1/ 錯誤,修改為: ifn=1 c=10;elsec=funn-1+2;/添加: return c;void main/ 添加: int n;printf"input n:"scanf"%d",&n;printf"the result:%

21、dn",funn;3. 已知一個數列前三項分別為0,0,1,以后的各項都是其相鄰的前三項之和;下述程序運算此數列的前n( n>3)項的平方根之和;第9頁 共 10 頁華東師范高校2021-2021 學年其次學期期末試卷a#include <stdio.h>/ #include <math.h>包含頭文件void mainint n;double sum,s0,s1,s2,s;/錯誤,修改為: double sum=1.0,s0,s1,s2,s;int k; doprintf"input nn>3:"scanf"%d&q

22、uot;,&n;whilen<=3; s0=0.0;s1=0.0;s2=1.0;fork=4;k>n;k+/錯誤,修改為: fork=4;k<=n;k+s=s0+s1+s2; sum+=sqrts; s0=s1;s1=s2;s2=s;printf"%fn",sum;六、寫程序;(19 分)以下僅僅為參考答案,答案不唯獨1. 求 1100 間的素數 素數>1,且除了 1 和自身外,不能被任何其它整數整除;#include <stdio.h>#include <math.h> void mainint i,j,k;for i=2;i

溫馨提示

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

評論

0/150

提交評論