精編國家開放大學電大《C語言程序設計》《機電控制工程基礎》網絡課形考網考作業(yè)(合集)答案
《精編國家開放大學電大《C語言程序設計》《機電控制工程基礎》網絡課形考網考作業(yè)(合集)答案》由會員分享,可在線閱讀,更多相關《精編國家開放大學電大《C語言程序設計》《機電控制工程基礎》網絡課形考網考作業(yè)(合集)答案(67頁珍藏版)》請在裝配圖網上搜索。
1、國家開放大學電大《C語言程序設計》《機電控制工程基礎》網絡課形考網考作業(yè)(合集)答案 國家開放大學電大《C語言程序設計》《機電控制工程基礎》網絡課形考網考作業(yè)(合集)答案 《C語言程序設計》網絡課答案 形考任務1 一、選擇題(共40分,每小題2分)題目1 在每個C語言程序中都必須包含有這樣一個函數,該函數的函數名為( )。 選擇一項:A. main 恭喜你,答對啦!! B. MAIN C. name D. function 題目2 C語言源程序文件的缺省擴展名為( )。 選擇一項:A. cpp B. exe C. obj D. c 題目
2、3 由C語言目標文件連接而成的可執(zhí)行文件的缺省擴展名為( )。 選擇一項:A. cpp B. exe C. obj D. c 題目4 程序運行中需要從鍵盤上輸入多于一個數據時,各數據之間應使用的分隔符為( )。 選擇一項:A. 空格或逗號 B. 逗號或回車 C. 逗號或分號 D. 空格或回車 題目5 每個C語言程序文件的編譯錯誤被分為( )。 選擇一項:A. 1類 B. 2類 C. 3類 D. 4類 題目6 不符合C語言規(guī)定的復合語句是( )。 選擇一項:A. {} B. {;} C. {x=0;} D. {
3、y=10} 題目7 C語言程序中的基本功能模塊為( )。 選擇一項:A. 表達式 B. 標識符 C. 語句 D. 函數 題目8 在一個函數定義中,函數頭包括的3個部分依次為函數類型、函數名和( )。 選擇一項:A. 表達式 B. 語句 C. 參數表 D. 函數體 題目9 在一個程序文件中,若要使用#include命令包含一個用戶定義的頭文件,則此頭文件所使用的起止定界符為一對( )。 選擇一項:A. 尖括號 B. 雙引號 C. 單引號 D. 花括號 題目10 在C語言程序中,多行注釋語句使用的開始標記符為( )。
4、 選擇一項:A. // B. /* C. */ D. ** 題目11 在printf()函數調用的格式字符串中,若使用格式符為“%c”,則對應輸出的數據類型為( )。 選擇一項:A. char B. int C. float D. double 題目12 在printf()函數調用的格式字符串中,若使用格式符為“%5d”,則規(guī)定對應輸出的數據占用的字符位置個數為( )。 選擇一項:A. 5 B. 4 C. 3 D. 6 題目13 轉義字符'\\'表示的字符是( )。 選擇一項:A. 單引號 B. 雙引號 C. 反斜線 D
5、. 問號 題目14 枚舉類型中的每個枚舉常量的值都是一個( )。 選擇一項:A. 整數 B. 浮點數 C. 字符 D. 邏輯值 題目15 運算符優(yōu)先級最高的是( )。 選擇一項:A. = B. *= C. D. != 題目16 設x和y均為邏輯值,則x y為真的條件是( )。 選擇一項:A. 它們均為真 B. 其中一個為真 C. 它們均為假 D. 其中一個為假 題目17 設有語句“int a=12; a+=a*a;”,則執(zhí)行結束后,a的值為( )。 選擇一項:A. 12 B. 144 C. 156 D.
6、 288 題目18 x>0 x<=10的相反表達式為( )。 選擇一項:A. x<=0 || x>10 B. x<=0 x>10 C. x<=0 || x<=10 D. x>0 x>10 題目19 字符串“a+b=12\n”的長度為( )。 選擇一項:A. 6 B. 7 C. 8 D. 9 題目20 在下列的符號常量定義中,錯誤的定義語句格式為( )。 選擇一項:A. const int M1=10; B. const int M2=20; C. const int
7、 M3 10; D. const char mark='3'; 二、判斷題(共60分,每小題2分。敘述正確則回答“是”,否則回答“否”)題目21 C語言中的每條簡單語句以分號作為結束符。 選擇一項:對 錯 題目22 C語言中的每條復合語句以花括號作為結束符。 選擇一項:對 錯 題目23 在C語言程序中,在行尾使用注釋的開始標記符為一對單斜線字符。 選擇一項:對 錯 題目24 注釋內容的開始所使用的標記符為/*,則注釋內容的結束所使用的標記符為*/。 選擇一項:對 錯 題目25 在一個C語言程序文件中,若要包含一個頭文件,則使用以百分號開始
8、的預處理命令。 選擇一項:對 錯 題目26 用于輸出表達式值的標準輸出函數是printf()。 選擇一項:對 錯 題目27 當不需要函數返回任何值時,則需要使用保留字void作為函數的返回值類型。 選擇一項:對 錯 題目28 每個C程序文件在編譯時可能出現有警告性錯誤,其對應的標識符為error。 選擇一項:對 錯 題目29 十進制數25表示成符合C語言規(guī)則的八進制數為31。 選擇一項:對 錯 題目30 十進制數25表示成符合C語言規(guī)則的十六進制數為0x19。 選擇一項:對 錯 題目31 在C語言中,轉義字符'
9、\n'表示一個換行符。 選擇一項:對 錯 題目32 執(zhí)行“printf(“%c“,'F'-2);”語句后得到的輸出結果為H。 選擇一項:對 錯 題目33 已知字符'C'的ASCII碼為67,當執(zhí)行“int x='C'+5;”語句后x的值為72。 選擇一項:對 錯 題目34 假定一個枚舉類型的定義為“enum RB{ab,ac=3,ad,ae}x=ad;”,則x的值為2。 選擇一項:對 錯 題目35 float的類型長度為8。 選擇一項:對 錯 題目36 在C語言中,常數28和3.26具有相同的數據類型。 選擇一項
10、:對 錯 題目37 若需要定義一個符號常量,并且使C語言能夠進行類型檢查,則應在定義語句的開始使用保留字const。 選擇一項:對 錯 題目38 使用const語句定義一個符號常量時,不必對它進行初始化。 選擇一項:對 錯 題目39 表達式45%13的值為3。 選擇一項:對 錯 題目40 假定x=5,則表達式2*x++的值為12。 選擇一項:對 錯 題目41 表達式(float)25/4的值為6。 選擇一項:對 錯 題目42 表達式x=x+1表示成增量表達式為++x。 選擇一項:對 錯 題目43 關系表達式(
11、x!=0)的等價表達式為(x)。 選擇一項:對 錯 題目44 關系表達式x+y>5的相反表達式為x+y<=5。 選擇一項:對 錯 題目45 邏輯表達式(a>b || b==5)的相反表達式為(a>b b==5)。 選擇一項:對 錯 題目46 若x=5,y=10,則x>y邏輯值為真。 選擇一項:對 錯 題目47 假定x=5,則執(zhí)行“a=(x?10:20);”語句后a的值為10。 選擇一項:對 錯 題目48 帶有隨機函數的表達式rand()%20的值所在的區(qū)間范圍是0~19。 選擇
12、一項:對 錯 題目49 假定x=5,則執(zhí)行“y=x++;”語句后,x的值為5。 選擇一項:對 錯 題目50 假定x=5,則執(zhí)行“y=++x;”語句后,y的值為6。 選擇一項:對 錯 形考任務2 一、選擇題(共20分,每小題2分)題目1 當處理特定問題時的循環(huán)次數已知時,通常采用的語句是( )。 選擇一項:a. for b. while c. do-while d. switch 題目2 在switch語句的每個case塊中,假定都是以break語句結束的,則此switch語句容易被改寫成的語句是( )。 選擇一項:a. for
13、 b. if c. do d. while 題目3 for語句能夠被改寫成的語句是( )。 選擇一項:a. 復合 b. if c. switch d. while 題目4 下面循環(huán)語句執(zhí)行結束后輸出的i值為( )。 for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;} 選擇一項:a. n/2 b. n/2+1 c. n/2-1 d. n-1 題目5 在下面循環(huán)語句中,內層循環(huán)體S語句的執(zhí)行總次數為( )。 for(int i=0; i<
14、;n; i++) for(int j=i; j<n; j++) S; 選擇一項:a. n2 b. (n+1)/2 c. n(n-1)/2 d. n(n+1)/2 題目6 在下面的do循環(huán)語句中,其循環(huán)體被執(zhí)行的次數為( )。 int i=0; do i++; while(i*i<10); 選擇一項:a. 4 b. b. 3 c. 5 d. 2 題目7 在下面的一維數組定義中,有語法錯誤的選項是( )。 選擇一項:a. int a[]={1,2,3}; b. int a[10]={0}; c. int a[]; d
15、. int a[5]; 題目8 在下面的二維數組定義中,語法正確的選項是( )。 選擇一項:a. int a[5][]; b. int a[][5]; c. int a[][3]={{1,3,5},{2}}; d. int a[](10); 題目9 假定一個二維數組的定義語句為“int a[3][4]={{3,4},{2,8,6}};”,則元素a[1][1]的值為( )。 選擇一項:a. 2 b. 4 c. 6 d. 8 題目10 假定一個二維數組的定義語句為“int a[3][4]={{3,4},{2,8,6}};”,則元素a[2][1]的值為(
16、)。 選擇一項:a. 0 b. 4 c. 8 d. 6 二、判斷題(共20分,每小題1分。敘述正確則回答“是”,否則回答“否”)題目11 在執(zhí)行“typedef int DataType;”語句后,標識符DataType與保留字int具有完全相同的含義和作用。 選擇一項:對 錯 題目12 在switch語句中,每個case和冒號之間的表達式只能是常量。 選擇一項:對 錯 題目13 為了結束本層循環(huán)類語句或switch語句的執(zhí)行過程,在語句體中需要使用break語句。 選擇一項:對 錯 題目14 在程序中執(zhí)行到break語句時,將結束所在函
17、數的執(zhí)行過程,返回到調用該函數的位置。 選擇一項:對 錯 題目15 在程序執(zhí)行完成任一個函數調用后,將結束整個程序的執(zhí)行過程,返回到操作系統(tǒng)或C語言集成開發(fā)環(huán)境界面窗口。 選擇一項:對 錯 題目16 假定一維數組的定義為“char* a[8];”,則該數組所含元素的個數大于8。 選擇一項:對 錯 題目17 假定二維數組的定義為“int a[3][5];”,則該數組所占存儲空間的字節(jié)數為60。 選擇一項:對 錯 題目18 假定二維數組的定義為“char a[M][N];”,則該數組所含元素的個數為M+N。 選擇一項:對 錯 題
18、目19 假定二維數組的定義為“double a[M][N];”,則每個數組元素的行下標取值范圍在0~M-1之間。 選擇一項:對 錯 題目20 假定二維數組的定義為“double a[M][N];”,則每個數組元素的列下標取值范圍在0~N之間。 選擇一項:對 錯 題目21 存儲一個空字符串需要占用0個字節(jié)的存儲空間。 選擇一項:對 錯 題目22 使用“typedef char BB[10][50];”語句定義標識符BB為含有10行50列的二維字符數組類型。 選擇一項:對 錯 題目23 存儲字符'a'需要占用1個字節(jié)的存儲空間。
19、選擇一項:對 錯 題目24 空字符串的長度為1。 選擇一項:對 錯 題目25 字符串“a:\\xxk\\數據“的長度為13。 選擇一項:對 錯 題目26 為了存儲一個長度為n的字符串,所使用的字符數組的長度至少為n+1。 選擇一項:對 錯 題目27 strcmp函數用于進行兩個字符串之間的比較。 選擇一項:對 錯 題目28 strcpy函數用于把一個字符串拷貝到另一個字符數組空間中。 選擇一項:對 錯 題目29 一個二維字符數組a[10][20]能夠最多存儲9個字符串。 選擇一項:對 錯 題目30 一個二維字
20、符數組a[10][20]能夠存儲的每個字符串的長度不超過20。 選擇一項:對 錯 三、填空題:寫出下列每個程序運行后的輸出結果(共40分,每小題4分)題目31 #include<stdio.h> void main() { int x=5; switch(2*x-3) { case 4: printf(“%d “,x); case 7: printf(“%d “,2*x+1);
21、 case 10: printf(“%d “,3*x-1); break; default: printf(“%s“,“default\n“); } } 答:11?14 題目32 #include<stdio.h> void main() { int i,s=0; for(i=1;i<=5;i++) s+=i*i; printf(“s=%d\n“,s); } 答:s=55 題目33 #include<stdio.h>
22、 void main() { int i, s1=0, s2=0; for(i=0;i<10;i++) if(i%2) s1+=i; else s2+=i; printf(“%d %d\n“,s1,s2); } 答:25 20 題目34 #include<stdio.h> void main() { int n=6,y=1; while(n) y*=n--
23、; printf(“y=%d\n“,y); } 答:y=720 題目35 #include<stdio.h> const int M=20; void main() { int i,c2,c3,c5; c2=c3=c5=0; for(i=1; i<=M; i++) { if(i%2==0) c2++; if(i%3==0) c3++;
24、 if(i%5==0) c5++; } printf(“%d %d %d\n“,c2,c3,c5); } 答:10 6 4) 題目36 #include<stdio.h> void main() { int i,s; for(i=1,s=0;i<10;i++) { if(i%3==0) continue; s+=i; } p
25、rintf(“%d\n“,s); } 答:27 題目37 #include<stdio.h> void main() { int a[8]={12,39,26,41,55,63,72,40}; int i, i1=0, i2=0; for(i=0;i<8;i++) if(a[i]%2==1) i1++; else i2++; printf(“%d %d\n“,i1,i2); } 答:4 4
26、題目38 #include<stdio.h> int a[10]={4,5,6,15,20,13,12,7,8,9}; void main() { int i,s[4]=0; for(i=0; i<10; i++) { switch(a[i]%4) { case 0: s[0]+=a[i];break; case 1: s[1]+=
27、a[i];break; case 2: s[2]+=a[i];break; default: s[3]+=a[i];break; } } for(i=0; i<4; i++) printf(“%d “,s[i]); } 答:44 27 6 22 題目39 #include<stdio.h> void main() { char a[]=“abcdbfbgacd“;
28、 int i1=0, i2=0, i=0; while(a[i]) { if(a[i]=='a') i1++; if(a[i]=='b') i2++; i++; } printf(“%d %d %d\n“,i1,i2,i); } 答:2 3 11 題目40 #include<stdio.h> void main() {
29、 int a[3][4]={{1,2,7,8},{5,6,10,6},{9,12,3,4}}; int m=a[0][0]; int i,j; for(i=0; i<3; i++) for(j=0; j<4; j++) if(a[i][j]>m) m=a[i][j]; printf(“%d\n“,m); } 答:12 四、簡答題:
30、根據下列每個題目要求編寫程序(共20分,每小題4分)題目41 編寫一個函數,函數頭格式為“double Mean(double a[M][N],int m,int n)”,要求返回二維數組a[m][n]中所有元素的平均值,假定在計算過程中采用變量v存放平均值。 double Mean(double a[M][N], int m, int n) { int i, j; double v=0.0; for(i=0; i<m; i++) f
31、or(j=0; j<n; j++) v+=a[i][j]; v=v/(m+n); return v; } 答:double Mean(double a[M][N],int m,int n) { int i,j; double v=0.0; for(i=0; i<m; i++) for(j=0; j<n; j++) v+=a[i][j];
32、 v/=m*n; return v; } 題目42 編寫一個遞歸函數“int FF(int a[], int n)”,求出數組a中所有n個元素之積并返回。 int FF(int a[ ], int n) { if(n==1) return a[0]; else return FF(a, n-1)*a[n-1]; } 答:int FF(int a[], int n) { if(n==1) return a[n-1]; e
33、lse return a[n-1]*FF(a,n-1); } 題目43 編寫一個主函數,利用while循環(huán),求出并顯示滿足不等式的最小n值。 #include <stdio.h> void main( ) { int i=0, s=0; while(s<=1000) { i++; s+=i*i; } printf(“滿足不
34、等式的最小n 值是: %d\n“, i); } 答:#include<stdio.h> void main() { int i=0; double s=0; //或int i=1; double s=1; while(s<5) s+=(double)1/++i; printf(“n=%d\n“,i); } 題目44 編寫一個主函數,求出滿足不等式22+42+...+n2<1000的最大n值,假定分別用i和s作為取偶數值和累加值的變量,并限定使用do循環(huán)編程。 #includ
35、e <stdio.h> void main( ) { int i=0, s=0; do { i+=2; s+=i*i; }while(s<1000); printf(“滿足不等式的最大n值是: %d\n“, i-2); } 答:#include<stdio.h> void main() {
36、int i=0; //用i作為依次取值偶數的變量 int s=0; //用s作為累加變量 do { i+=2; s+=i*i; }while(s<1000); printf(“n=%d\n“,i-2); } 題目45 編寫一個主函數,計算并輸出12+22+...+n2值,其中n值由鍵盤輸入。 #include <stdio.h> void main( ) { int i, n
37、, s=0; printf(“請輸入一個整數n:“); scanf(“%d“, n); for(i=1; i<=n; i++) s+=i*i; printf(“s=%d\n“,s); } 答:#include<stdio.h> void main() { int i; //用i作為計數(循環(huán))變量 int s=0; //用s作為累加變量 int n; p
38、rintf(“輸入一個自然數: “); scanf(“%d“,n); for(i=1; i<=n; i++) s+=i*i; printf(“s=%d\n“,s); } 形考任務3 一、選擇題(共30分,每小題2分)題目1 在下面的函數聲明語句中,存在著語法錯誤的是( )。 選擇一項:a. AA(int a, int b) b. AA(int, int) c. AA(int a; int b) d. AA(int a, int) 題目2 在下面的保留字中,不能作為函數的返回值類型的是( )。
39、 選擇一項:a. void b. int c. enum d. long 題目3 假定p是一個指向float型數據的指針,則p+1所指數據的地址比p所指數據的地址增加的字節(jié)數為( )。 選擇一項:a. 1 b. 2 c. 4 d. 8 題目4 假定a為一個數組名,在下面的表達式中,存在語法錯誤的是( )。 選擇一項:a. a[i] b. *a++ c. *a d. *(a+1) 題目5 用calloc函數創(chuàng)建具有10個整型元素的一維數組的正確語句是( )。 選擇一項:a. int *p=calloc(10,2); b. int *p=
40、calloc(10); c. int *p=calloc(10,4); d. int *p=malloc(10) 題目6 假定變量m定義為“int m=7;”,則下面正確的語句為( )。 選擇一項:a. int p=m; b. int *p=m; c. int p=*m; d. int *p=m; 題目7 假定k是一個double類型的變量,則定義變量p的正確語句為( )。 選擇一項:a. double p=k; b. int *p=k; c. double p=*k; d. char *p=“Thank you!“; 題目8 若有語句為“int a[1
41、0], x, *pa=a;”,要把數組a中下標為3的元素值賦給x,則不正確的語句為( )。 選擇一項:a. x=pa[3]; b. x=*(a+3); c. x=a[3]; d. x=*pa+3; 題目9 假定有語句為“int b[10]; int *pb;”,則下面不正確的賦值語句為( )。 選擇一項:a. pb=b; b. pb=b[0]; c. pb=b+2; d. pb=b[5]; 題目10 已知“int *p=malloc(100);”,要釋放p所指向的動態(tài)內存,正確的語句為( )。 選擇一項:a. free(p); b. fr
42、ee p; c. free(*p); d. free[p]; 題目11 在程序的一個文件中定義的函數,若要在另一個文件中調用,則必須在這另一個文件中給出該函數的( )。 選擇一項:a. 原型語句 b. 參數表 c. 函數名 d. 返回類型 題目12 假定一個函數定義為“static int f1(int x,int y){return x+y;}”,該函數名稱為( )。 選擇一項:a. static b. int c. f1 d. return 題目13 假定一個函數的原型語句為“int ff(int* x);”,一個整型數組為a[10],則下面函數調用
43、表達式不正確的是( )。 選擇一項:a. ff(a) b. ff(a[0]) c. ff(a+3) d. ff(a[0]) 題目14 假定一個函數的數組參數說明為char a[],與之等價的指針參數說明為( )。1B 選擇一項:a. char a b. char* a c. char a d. char**a 題目15 假定一個函數的二維數組參數說明為char w[][N],與之等價的指針參數說明為( )。 選擇一項:a. char (*w)[N] b. char *w[N] c. char (*w)N d. char**a 二、判斷題(共30
44、分,每小題2分。敘述正確則回答“是”,否則回答“否”)題目16 在C語言中,一個函數由函數頭和函數體組成。 選擇一項:對 錯 題目17 在函數模塊之外定義的變量稱為全局變量,若沒有被初始化則系統(tǒng)隱含對它賦初值0。 選擇一項:對 錯 題目18 如果一個函數只允許同一程序文件中的函數調用,則不應在該函數定義的開始前加上保留字static。 選擇一項:對 錯 題目19 如果在一個函數體中又出現對自身函數的調用,此種函數調用被稱為遞歸調用。 選擇一項:對 錯 題目20 調用系統(tǒng)函數時,要先使用#include命令包含該系統(tǒng)函數的原型語句所在的系統(tǒng)
45、頭文件。 選擇一項:對 錯 題目21 函數形參變量不屬于局部變量。 選擇一項:對 錯 題目22 假定p所指對象的值為25,p+1所指對象的值為46,則*p++的值為46。 選擇一項:對 錯 題目23 假定p所指對象的值為25,p+1所指對象的值為46,則*++p的值為25。 選擇一項:對 錯 題目24 假定p所指對象的值為25,p+1所指對象的值為46,則執(zhí)行*(p++)運算后,p所指對象的值為46。 選擇一項:對 錯 題目25 假定a是一個指針數組,則a+i所指對象的地址比a地址大4*i字節(jié)。 選擇一項:對
46、錯 題目26 若要把一個整型指針p轉換為字符指針,則采用的強制轉換表達式為(char*)p。 選擇一項:對 錯 題目27 假定一個數據對象為int*類型,則指向該對象的指針類型仍為int*類型。 選擇一項:對 錯 題目28 假定x為一個簡單變量,則x表示x的地址。 選擇一項:對 錯 題目29 若p指向x,則*p與x的值不同。 選擇一項:對 錯 題目30 NULL是一個符號常量,通常作為空指針值,它代表的值為0。 選擇一項:對 錯 三、寫出下列每個程序運行后的輸出結果(共20分,每小題4分)題目31 #include<s
47、tdio.h> int WF(int x, int y) { x=x+y; y=x+y; return x+y; } void main() { int x=5, y=7; int z=WF(x,y); printf(“z=%d\n“,z); } 答:z=31 題目32 #include<stdio.h> #i
48、nclude<string.h> void fun(char ss[]); void main() { char s[15]=“0123456789“; fun(s); printf(“%s\n“,s); } void fun(char ss[]) { int i, n=strlen(ss) ; for(i=0; i<n/2; i++) {
49、 char c=ss[i]; ss[i]=ss[n-1-i]; ss[n-1-i]=c; } } 答:987543210 題目33 #include<stdio.h> int Count(int a[], int n, int x) { int i,c=0; for(i=0;i<n;i++)
50、 if(a[i]>x) c++; return c; } void main() { int a[8]={20,15,32,47,24,36,28,70}; int b=Count(a,8,30); printf(“b=%d\n“,b); } 答:B=4 題目34 #include<stdio.h> void main() {
51、 int a[8]={3,5,7,9,2,3,4,8}; int s=0,*p; for(p=a;p<a+8;) s+=*p++; printf(“s=%d\n“,s); } 答:s=41 題目35 #include<stdio.h> int LA(int *a, int n, int x) { int i,s=0; for(i=0;i<n;i++)
52、 if(a[i]<x) s+=a[i]; return s; } void main() { int a[8]={5,10,15,8,12,3,9,20}; int b=LA(a,5,10); int c=LA(a+2,6,10); printf(“%d %d\n“,b,c); } 答:13 20 四、寫出下列每個函數的功能(共20分,每小題4分)題目36 double SF(do
53、uble x, int n) { //n為正整數 double p=1,s=1; int i; for(i=1;i<=n;i++) { p*=x; s+=p; } return s; } 答:計算出1+x+x2+...+xn的值并返回。 題目37 int SG(int x) { //x為大于等于2
54、的整數 int i=2; while(i*i<=x) { if(x%i==0) break; i++; } if(i*i<=x) return 0; else return 1; } 答:判斷x是否為一個質數(素數),若是則返回1,否則返回0。 題目38 int WB(int a[], int n, int x) { for
55、(int i=0;i<n;i++) if(a[i]==x) return 1; return 0; } 答:從數組a[n]中順序查找值為x的元素,若查找成功則返回1,否則返回0。 題目39 int fun(int m, int n) { int c=0; static int b=2; if(m<b || n<b) return m*n; else if(m%b
56、==0 n%b==0) {c=b; return c*fun(m/b,n/b);} else {b++; return fun(m,n);} } 答:一個遞歸函數過程,求出兩個自然數m和n的最小公倍數。 題目40 int LK(double a[], int n) { double s=0; int i,m=0; for(i=0;i<n;i++) s+=a[i]; s/=n; f
57、or(i=0;i<n;i++) if(a[i]>=s) m++; return m; } 答:求出并返回數組a的n個元素中大于等于平均值的元素個數。 形考任務4 一、選擇題(共30分,每小題2分)題目1 假定有“struct BOOK{char title[40]; float price;}; struct BOOK book;”,則不正確的語句為( )。 選擇一項:a. struct BOOK *x=malloc(book); b. struct BOOK
58、x={“C++ Programming“,27.0}; c. struct BOOK *x=malloc(sizeof(struct BOOK)); d. struct BOOK *x=book; 題目2 假定有“struct BOOK{char title[40]; float price;} book;”,則正確的語句為( )。 選擇一項:a. struct BOOK x= book; b. struct BOOK *x=book; c. struct BOOK x=calloc(BOOK); d. struct BOOK *x=BOOK; 題目3 在結構類型的定義中,
59、不同數據成員的定義項之間采用的分隔符是( )。 選擇一項:a. 句點 b. 冒號 c. 分號 d. 逗號 題目4 假定一個結構類型的定義為 “struct A{int a,b; double c;};”,則該類型的長度為( )。 選擇一項:a. 8 b. 10 c. 12 d. 16 題目5 假定一個結構類型的定義為 “struct D{int a; D* next;};”,則該類型的長度為( )。 選擇一項:a. 4 b. 8 c. 12 d. 16 反饋 Your answer is correct. 題目6 假定要訪問一個結構指
60、針變量x中的數據成員a,則表示方法為( )。 選擇一項:a. x.a b. x->a c. x(a) d. x{a} 題目7 與結構成員訪問表達式x.name等價的表達式為( )。 選擇一項:a. x->name b. x->name c. (x)->name d. (*x)->name 題目8 假定一個鏈表中結點的結構類型為“struct AA{int data, struct AA *next;};”,則next數據成員的類型為( )。 選擇一項:a. struct AA b. struct AA*
61、c. AA d. int 題目9 假定一個鏈表的表頭指針為f,結點中包含有data和next域,則向該鏈表的表頭插入一個地址為p的結點時,應執(zhí)行的操作為( )。 選擇一項:a. p->next=f b. p->next=f和f=p c. f=p->next d. f->next=p和f=p 題目10 標準輸入設備鍵盤的文件流標識符是( )。 選擇一項:a. stdin b. stdout c. stderr d. stdio 題目11 表示文件結束符的符號常量為( )。 選擇一項:a. eof b. Eof c.
62、 EOF d. feof 題目12 C語言中打開一個數據文件的系統(tǒng)函數為( )。 選擇一項:a. fgetc() b. fputc() c. fclose() d. fopen() 題目13 從一個數據文件中讀入以換行符結束的一行字符串的系統(tǒng)函數為( )。 選擇一項:a. gets() b. fgets() c. getc() d. fgetc() 題目14 向一個二進制文件中寫入信息的函數fwrite()帶有的參數個數為( )。 選擇一項:a. 1 b. 2 c. 3 d. 4 題目15 在C語言中,為只寫操作打開一個文本文件的方式為
63、( )。 選擇一項:a. “a“ b. “r+“ c. “r“ d. “w“ 二、判斷題(共40分,每小題2分。敘述正確則回答“是”,否則回答“否”)題目16 在結構類型的定義中,其中的數據成員可以是本身類型的直接對象。 選擇一項:對 錯 題目17 在結構類型的定義中,允許出現結構類型不完整的超前定義。 選擇一項:對 錯 題目18 定義結構類型的變量時,不能夠同時進行初始化。 選擇一項:對 錯 題目19 使用一個結構類型時,必須一起使用關鍵字struct和類型標識符。 選擇一項:對 錯 題目20 假定一個結構類型的定義
64、為 “struct A{int a,b; A* c;};”,則該類型的長度為12。 選擇一項:對 錯 題目21 假定一個結構類型的定義為 “struct B{int a[5]; char* b;};”,則該類型的長度為20。 選擇一項:對 錯 題目22 執(zhí)行calloc(n,8)函數調用時,將動態(tài)分配得到8*n個字節(jié)的存儲空間。 選擇一項:對 錯 題目23 執(zhí)行malloc(sizeof(struct BB))函數調用時,得到的動態(tài)存儲空間能夠保存具有struct BB結構類型的一個對象。 選擇一項:對 錯 題目24 假定要訪問一個結構對
65、象x中的由a指針成員所指向的對象,則表示方法為x.a。 選擇一項:對 錯 題目25 假定要訪問一個結構指針p所指對象中的b指針成員所指的對象,則表示方法為p->b。 選擇一項:對 錯 題目26 與結構成員訪問表達式(*fp).score等價的表達式是fp->score。 選擇一項:對 錯 題目27 在C語言中,對二進制文件的所有不同打開方式共有6種。 選擇一項:對 錯 題目28 C語言中的標準輸入和輸出設備文件都屬于字符文件。 選擇一項:對 錯 題目29 在一個磁盤數據文件的文件名中,文件主名和擴展名都是必須的,
66、不可省略。 選擇一項:對 錯 題目30 在數據文件打開方式字符串中,字符r、w和a具有確定的含義,分別代表讀、寫和追加方式。 選擇一項:對 錯 題目31 一個磁盤數據文件的文件名由文件主名和擴展名所組成,其中間用圓點分開。 選擇一項:對 錯 題目32 C語言系統(tǒng)中提供一個用來描述文件屬性的類型標識符為FILE。 選擇一項:對 錯 題目33 每次只能向文本文件中寫入一個字符,不能一次寫入一個字符串。 選擇一項:對 錯 題目34 對二進制文件進行讀和寫操作將使用相同的系統(tǒng)函數。 選擇一項:對 錯 題目35 在C語言中,系統(tǒng)函數fseek()用來移動數據文件中的文件位置指針。 選擇一項:對 錯 三、寫出下列每個程序運行后的輸出結果(共15分,每小題5分)題目36 #include<stdio.h> struct Worker { char name[15]; //姓名 int age;
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。