程序設計語言C期末考試習題A答案_第1頁
程序設計語言C期末考試習題A答案_第2頁
程序設計語言C期末考試習題A答案_第3頁
程序設計語言C期末考試習題A答案_第4頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、試卷裝訂線北京師范大學珠海分校2011-2012學年第二學期期末考試(A卷答案)開課單位: 應用數(shù)學學院 課程名稱: 程序設計語言C 任課教師: 馮霜 考試類型: 閉卷 考試時間: 120 分鐘學院_ 姓名_學號_ 班級_題號一二三總分得分閱卷人試卷說明:本試卷共4頁,滿分100分-一、單項選擇題(請將答案填入下表內,每小題2分,共60分)12345678910BBACADBBCB11121314151617181920CBDAACDBDA21222324252627282930BBDADADBDC1、結構化程序所要求的基本結構不包括( B )A、順序結構 B、if goto結構 C、選擇結構

2、 D、循環(huán)結構2、如有定義語句:int x=12,y=8,z; 在其后執(zhí)行語句z=0.9+x/y,則z的值為( B )A、1.9 B、1 C、2 D、2.43、以下選項中可作為C語言合法常量的是( A )A、-80 B、-080 C、-8e1.0 D、-80.0e4、void main() int y=9; for( ; y>0 ; y-) if(y%3=0) printf("%d",-y); 程序的運行結果是( C )A、741 B、963 C、852 D、85205、以下選項中敘述錯誤的是( A )A、C程序函數(shù)中定義的賦有初始值的static變量,每調用一次函數(shù)

3、,賦一次初值B、C程序的同一函數(shù)中,各復合語句內可以定義變量,其作用域僅限本復合語句內C、C程序函數(shù)中定義的auto變量,若無初值,則其值是不定的D、C程序函數(shù)的形參不可以說明為static型變量6、若函數(shù)調用時的實參為變量,以下關于函數(shù)形參和實參的敘述中正確的是 ( D ) A、實參和其對應的形參共占同一存儲單元 B、形參只是形式上的存在,不占用存儲單元C、同名的實參和形參占同一存儲單元 D、形參和實參分別占用不同的存儲單元7、以下定義語句中正確的是 ( B )A、int a=b=0; B、char A=65+1,b=b; C、float a=1,*b=&a,*c=&b; D

4、、double a=10,*b=1.1;8、已知 int t=0; while (t=1) printf(“RUN!n”); 則以下敘述正確的是 ( B )A、循環(huán)控制表達式的值為0 B、循環(huán)控制表達式的值為1 C、循環(huán)控制表達式不合法 D、以上說法都不對9、char ch=a; int k=12; printf("%c,%d,%d,",ch,ch,k); printf("k=%d n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結果是( C )A、變量類型與格式描述符的類型不匹配,輸出無定值 B、輸出項與格式描述符個數(shù)不符,輸出為零

5、值或不定值 C、a,97,12, k=12 D、a,97,k=12 10、若有語句:int a=10,b=20; 執(zhí)行表達式(a=a>b)&&(b=b>a)后,a和b的值分別為(B)A、0和1 B、0和20 C、10和1 D、以上答案都不正確11、以下錯誤的定義語句是 ( C )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; 12、以下能正確定義一維數(shù)組的選項是( B )A、int a5=0,1,2,3

6、,4,5; B、char a=0,1,2,3,4,5,0; C、char a=A,B,C; D、int a5="0123"13、若定義語句:int y=2011,*p=&y; 以下不能使變量y中的值增至2012的語句是( D)A、*p+=1; B、(*p)+; C、+(*p); D、*p+;14、 void main() char p="abc",q10= a, b, c; printf("%d%dn",strlen(p),strlen(q); 以下敘述中正確的是 ( A )A、在給數(shù)組p和q賦初值后,都以0結束,故輸出的長度

7、都為3 B、由于p數(shù)組中沒有0,長度不能確定,但q數(shù)組中字符串長度為3 C、由于q數(shù)組中沒有0,長度不能確定,但p數(shù)組中字符串長度為3 D、由于p和q數(shù)組中都沒有0,故長度都不能確定15、程序:#define M(X,Y) X*Y #define N(X,Y) (X)/(Y) void main() int a=5,b=6,c=8,k; k=N(M(a+1,b+1),c); printf("%dn",k); 運行后的輸出結果是( A )A、1 B、3 C、5 D、1116、當用戶要求輸入的字符串中含有空格時,應使用的輸入函數(shù)是( C ) A、scanf() B、getcha

8、r() C、gets() D、getc()17、若有說明:int n,*p=&n,m=5; 以下正確的程序段是 ( D )A、scanf("%d",&p); B、scanf("%d",*p); C、scanf("%d",&n); p=n; D、*p=m;18、指針變量的值是( B )A、整數(shù) B、所指向變量的地址 C、二進制數(shù)D、NULL19、若有以下定義int a5=0,*p=a;,則對a數(shù)組元素的正確引用是( D )A、*&a5 B、a+2 C、*(p+5) D、*(a+2)20、設有結構體定義:s

9、truct student char name12; char gender; float score3; s1,s2; 若變量均已正確賦初值,則以下語句中正確的是( A )A、s1=s2; B、s2->gender=s1->gender; C、=; D、s2.score=s1.score;21、struct ty int data; char c; a=30,'x' void main() struct ty *p=&a;p->data=20; (*p).c='y'printf("%d,%c&qu

10、ot;,a.data,a.c); 程序運行后的輸出結果是( B )A、30,x B、20,y C、20,x D、程序編譯會出錯22、程序void main() int a10=1,2,3,4,5,6,7,8,9,10,*p=a+1; printf("%dn",*(p+2); 的輸出結果是 ( B )A、3 B、4 C、1 D、2 23、有定義語句: char s10; 若要從終端給s輸入5個字符,錯誤的輸入語句是 ( D )A、gets(&s0); B、scanf("%s",s+1); C、gets(s); D、scanf("%s&qu

11、ot;,s1); 24、若執(zhí)行fclose函數(shù)時,關閉文件成功,則函數(shù)的返回值是( A )A、0 B、NULL C、1 D、EOF25、若要用fopen函數(shù)向二進制文件末尾添加新的數(shù)據(jù),文件使用方式應是( D )A、"w+" B、"a+" C、"rb+" D、"ab+"26、若有語句: char *line5; 以下敘述中正確的是( A )A、定義line是一個指針數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量 B、定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組 C、定義line是一個字符數(shù)

12、組,語句中的*號稱為間址運算符 D、定義line是一個指向字符型函數(shù)的指針變量27、以下敘述中錯誤的是( D ) A、在程序中凡是以"#"開始的語句行都是預處理命令行 B、預處理命令行的最后不能以分號表示結束 C、#define MAX 是合法的宏定義命令行 D、C程序對預處理命令行的處理是在程序執(zhí)行的過程中進行的 28、以下敘述中錯誤的是 ( B )A、gets函數(shù)用于從終端讀入字符串 B、getchar函數(shù)用于從磁盤文件讀入字符 C、fputs函數(shù)用于把字符串輸出到文件 D、fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件29、以下正確的函數(shù)形式是( D ) A、doub

13、le fun(int x,int y) z=x+y; return z; B、fun(x,y) int x,y; double z; z=x+y;return z;C、fun(int x,y) int z; return z; D、double fun(int x,int y) double z; z=x+y; return z;30、下面判斷正確的是( C )A、char *a="bnuz"等價于 char *a;*a="bnuz" B、char str4="bnuz"等價于char str="bnuz" C、c

14、har *s="bnuz"等價于 char *s;s="bnuz" D、char c4="abc",d4="abc"等價于char c4=d4="abc" 二、閱讀程序(請將程序的輸出結果寫在方框內,每小題5分,共30分) 51、int fun(int n) if(n=1) return 1; else return(n+fun(n-1); void main() int x=10; x=fun(x);printf("%dn",x); 552、 int fun() stati

15、c int x=4; x+; return x; void main() int i,t=1; for(i=1;i<=3;i+) t*=fun(); printf("t=%dn",t);t=2103、void sub(float x, float *y, float *z) *y=*y-1.0; *z=*z+x;void main() float a=2.5,b=9.0,*p=&a;sub (b-a, p, p);printf ("a+b=%.2fn", a+b);a+b=17.004、void reverse(int a,int n) i

16、nt i,t; for(i=0;i<n/2;i+) t=ai; ai=an-1-i; an-1-i=t; void main() int b10=1,2,3,4,5,6,7,8,9,10,i,s=0; reverse(b,8); for(i=6;i<10;i+) s+=bi; printf("s=%dn",s); s=225、void main() int a=0,i; for(i=1;i<5;i+) switch(i) case 0: case 3: a+=2; case 1: case 2: a+=3; break;default: a+=5; pri

17、ntf("a=%dn",a);a=166、int fun(char *s) int n=0; while(*s>='0'&&*s<='9') n=10*n+*s-'0's+; return(n); /ASCII碼:'0'為48、'9'為57void main() char s10="72a4b9c0d" printf("%dn",fun(s); 72三、程序設計題(共10分)已知定積分,的值由函數(shù)sum計算,函數(shù)sum首部為 float sum(int n,float a,float b),在主函數(shù)中輸入積分上下限,調用sum計算,直到,輸出此時的(即為該定積分的近似值),請編寫完整源代碼。#include <stdio.h>#include <math.h>1分float sum(int n,float a,float b)int i;float s=0; 1分for

溫馨提示

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

評論

0/150

提交評論