徐師大c語言期末考試11機

2021-03-08 19:05:00 字數 7161 閱讀 6506

1樓:匿名使用者

1、函式fun的功能是計算x^n。

double fun(double x,int n)

主函式中已經正確定義m、a、b變數並賦值,並呼叫fun函式計算:m=a^4+b^4-(a+b)^3。實現這一計算的函式呼叫語句為______。

答案: 1:fun(a,4)+fun(b,4)-fun((a+b),3)

評析:函式fun的功能是計算x的n次方,所以a的4次方的呼叫函式應當為fun(a,4),b的4次方的呼叫函式應當為fun(b,4),(a+b)的3次方的呼叫函式應當為fun((a+b),3),所以,實現m=a^4+b^4-(a+b)^3這一計算的函式呼叫語句為:fun(a,4)+fun(b,4)-fun((a+b),3);。

知識點:知識點/函式/函式的正確呼叫,巢狀呼叫,遞迴呼叫

2、以下sstrcpy()函式實現字串複製,即將t所指字串複製到s所指記憶體空間中,形成一個新字串s。請填空。

void sstrcpy(char *s,char *t)

main()

答案: 1:*t++

評析:要使sstrcpy()函式實現字串複製,必須將t字串中的每個字元逐個拷到s字串中,所以可以使用*s=*t;s++;t++。或者可以寫成*s++=*t++,本題只有一個空,可以填入*t++。

知識點:知識點/指標/用指標作函式引數

3、以下程式給指標p分配三個double型動態記憶體單元,請填空。

#include

main()

答案: 1:3*sizeof(double)

評析:malloc(size)在記憶體的動態儲存區中分配一個長度為size的連續空間。此函式的值(即"返回值")是一個指標,它的值是該分配域的起始地址。

如果此函式未能成功地執行,則返回值為0。

本題中要求分配三個double型動態記憶體單元,所以size處應當為3*sizeof(double)。

知識點:知識點/指標/各型別的指標及指標變數,通過指標引用各型別資料

4、以下程式執行後的輸出結果是______。

main()

答案: 25 21 37

評析:本題考查的是格式字元的輸出。

變數a、b、c分別為十進位制、八進位制、十六進位制的25,格式字元d所代表的含義是,以帶符號的十進位制形式輸出整數(正數不輸出符號),所以本題a=25則輸出值為25;b=025轉換為10進位制:b=2*8+5=16+5=21,則輸出的值為21;c=0x25轉換為10進位制:c=2*16+5=32+5=37,則輸出的值為37,而且printf中三個%d之用的是空格,所以輸出的幾個數字之間也必須是空格。

知識點:知識點/函式/變數的儲存類別,變數的作用域和生存期

5、以下程式執行後的輸出結果是______。

main ()

答案: gae

評析:本題考查的是字元指標變數與字元陣列。

解題過程:

(1)當k=0時,*(p1+0)='l',*(p2+0)='p',l!=p,所以沒有輸出

(2)當k=1時,*(p1+1)='a',*(p2+1)='r',a!=r,所以沒有輸出

(3)當k=2時,*(p1+2)='n',*(p2+2)='o',n!=o,所以沒有輸出

(4)當k=3時,*(p1+3)='g',*(p2+3)='g',g==g,所以輸出g

(5)當k=4時,*(p1+4)='u',*(p2+4)='r',u!=r,所以沒有輸出

(6)當k=5時,*(p1+5)='a',*(p2+5)='a',a==a,所以輸出a

(7)當k=6時,*(p1+6)='g',*(p2+6)='m',g!=m,所以沒有輸出

(8)當k=7時,*(p1+7)='e',*(p2+7)='e',e==e,所以輸出e

(9)當k=8時結束迴圈

(10)輸出結果為:gae。

知識點:知識點/陣列的定義和引用/字串與字元陣列

6、以下程式通過函式sunfun和f(x),x=0到10,這裡f(x)=x^2+1,由f函式實現,請填空。

main()

sunfun(int n)

f(int x)

答案: 1:x

2:x*x+1

評析:本題考查的是函式的呼叫。

解題過程:

(1)f(x)的含義為x的平方加上1

(2)所以f(int x)的返回值應該為 x*x+1

(3)sunfun(10)的作用是將0到10之間所有的整數相加求和

(4)所以f()的形式引數為x。

知識點:知識點/函式/函式的正確呼叫,巢狀呼叫,遞迴呼叫

7、以下程式中,函式sumcolummin的功能是:求出m行n列二維陣列每列元素中的最小值,並計算它們的和值。和值通過形參傳回主函式輸出。請填空。

#define m2

#definen4

void sumcolummin(int a[m][n],int *sum)

______ =s;

}main()

,s;sumcolummin(______);

printf("%d\n",s);

}答案: 1:a[k][i]

2:*sum

3:x,&s

評析:本題考查的是函式引數的傳送。

解題過程:

(1) 執行以i為變數的for語句

1)k=0

2)執行以j為變數的for語句

①當j=1

②比較a[0][0]和a[1][0]的大小,如果a[0][0]大於a[1][0]則k=1;如果a[0][0]大於a[1][0]則k=0

③j=2所以結束迴圈

3)此時a[k][i]就代表第一列中最小的值,要累計所有列中的最小值的和,應該在第一空內填寫 a[k][i],用變數s累加。

(2) sumcolummin是一個無返回值的函式,其中形式引數*sum是一個指標型別,所以第二空應該填寫 *sum,用來將該指標變數指向s

(3) 當主函式main呼叫sumcolummin時,需要兩個實際引數,一個代表被操作的陣列,一個為指向累計和的指標變數,所以第三個空應該為 x,&s,分別代表已經被定義的陣列x,和整型變數s的地址。

知識點:知識點/函式/函式的正確呼叫,巢狀呼叫,遞迴呼叫

8、以下程式的輸出結果是 。

main()

答案: 16

評析:本題的考查點是表示式。

表示式a+=8相當於a=a+8,對表示式逐步求解過程如下:

a+=(a+8)此時,a的值賦值為8,而不再是0;

a+=8

a=a+8

a=16

故本題答案為16。

知識點:知識點/函式/形式引數與實在引數,引數值的傳遞

9、以下程式的輸出結果是______。

#define max(x,y)(x)>(y)?(x):(y)

main()

答案: 7

評析:本題的考查點是巨集定義。

巨集替換後,表示式t = max(a + b, c + d)*10即變為:t = (a+b)>(c+d) ? (a+b) : (c + d)*10;

由於(a+b)>(c+d)為真, 所以t = (a+b),即為7。

故本題答案為:7。

知識點:知識點/編譯預處理/巨集定義:不帶引數的巨集定義;帶引數的巨集定義

10、函式mycmp(char *s,char *t)的功能是比較字串s和t的大小,當s等於t時返回0,當s>t返回正值,當s

main( )

答案: how does she

評析:本題的考查點是字串拷貝函式strcpy()。

strlen(str1)是求str1字串的長度,為13,然後,進行除2運算,結果為6。strcpy()函式是把字串"es she"拷貝到str1後的第6個字元後面,也就是說,拷貝後的結果是"how does she"。

故本題答案為:how does she。

知識點:知識點/函式/庫函式的正確呼叫

14、下面的函式strcat(str1,str2)實現將字串str2拼接到字串str1後面的功能。請填空使之完整。

char *strcat(str1,str2)

char *str1,*str2;

答案: 1:*str1!='\0'

2:*str1++=*str2++

評析:本題的考查點是字串連線函式strcat()。

函式strcat(str1,str2)實現將字串str2連線到字串str1後面,所以首先要找到字串str1的串尾,根據c語言的語法規定,一個串的串尾一定是一個隱含字元"\0",而在程式中,對字串中字元的訪問是通過兩個指標變數來完成的,因此要找到字串str1的串尾,要判斷*str1是否為"\0",要找到字串str2的串尾,要判斷*str2是否為"\0",程式中必須可以使字串中字元逐一順序體現,所以在題中我們應填寫"*str1"和"*str1++=*str2++ "。

知識點:知識點/函式/庫函式的正確呼叫

15、以下程式的輸出結果是______。

void fun()

main()

答案: 246

評析:迴圈for(cc=1;cc<4;cc++)被執行了3次。在函式fun中,由於a是static型變數,所以函式第1次呼叫後,a= 2;第2次呼叫後,a = 4;第3次呼叫後,a = 6。

知識點:知識點/函式/函式的正確呼叫,巢狀呼叫,遞迴呼叫

16、若要使指標p指向一個double型別的動態儲存單元,請填空。

p=______malloc(sizeof (double));

答案: (double*)

評析:函式malloc返回的是void*而不是double型別指標。所以要使指標p指向一個double型別的儲存單元就必須進行強制型別轉換。

知識點:知識點/函式/函式的型別和返回值

17、下列程式段的輸出結果是______。

main()

答案: hello

評析:字串中,數值0或符號'\0'表示字串的結束。本題中,b[5]被賦了0值,表明字串b的第六個字元就是結束標誌。因此,只輸出前五個字元,即hello。

知識點:知識點/陣列的定義和引用/一維陣列和多維陣列的定義、初始化和引用

18、下列程式的輸出結果是______。

void fun(int *n)

main()

答案: 0

評析:在函式fun()中,while((*n)--)是先引用*n的值,再做(*n)-- 運算,所以迴圈結束時*n的值為0,再做(*n)-- 運算後,*n的值為-1;執行++(*n)後,*n的值是0。

知識點:知識點/函式/函式的正確呼叫,巢狀呼叫,遞迴呼叫

19、以下程式中,主函式呼叫了linemax函式,實現在n行m列的二維陣列中,找出每一行上的最大值。請填空:

#define n 3

#define m 4

void linemax(int x[n][m])

答案: double max

評析:本題的考查點是c程式設計。除錯程式,把不完善的程式進行修改和補充,使之能得到正確的結果。

主函式裡可以看到呼叫了一個max函式,函式在被呼叫之前需要先定義,所以要求填空的內容應該是對函式進行定義的語句。由題目內容也可以看出此函式是double型的。

知識點:知識點/函式/函式的正確呼叫,巢狀呼叫,遞迴呼叫

29、有以下程式

void f(int y,int *x)

main()

執行後輸出的結果______。

答案: 8 4

評析:f函式中變數x傳遞的是變數的地址,可以實現值的變換,而變數y是傳遞的值,執行完f後,y的值是變了,但main函式中的y並未變化。也就是說由於"單向傳送"的"值傳遞"方式,形參值的改變無法傳給實參。

知識點:知識點/函式/形式引數與實在引數,引數值的傳遞

31、c語言程式的基本單位是______

答案:函式

32、設有說明語句:char a= '\72';則變數a包含______個字元、

答案:1

33、c語言是一種______(選擇物件導向或程序導向)高階程式設計語言。

答案:程序導向

34、c語言中唯一的三目運算子是______

答案:條件運算子#? :

35、c語言中結束一次迴圈的語句是______

答案:continue

36、c語言中結束整個迴圈的語句是______

答案:break

37、二維陣列a中元素a[2][2]的值是______ a[4][5]=,,};

答案:0

38、寫出下面個邏輯表示式的值,設a=3,b=4,則c=5 a || b+c && b-c=______

答案:1

39、寫出下面個邏輯表示式的值,設a=3,b=4,則! (a+b)+c –1 && b+ c/2 =______

答案:1

40、在c語言中開啟檔案的函式名稱是______

答案:fopen#fopen()

41、在c語言中關閉檔案的函式名稱是______

答案:fclose#fclose()

42、c語言中基本的資料型別有______

答案:int float char # 整型 實型 字元型

43、設y是int型變數,請寫出判斷y為奇數的關係表達______

答案:y%2!=0 # y%2==1 # y%2

44、以下程式執行後的輸出結果是______

main()

答案:52

45、設有以下程式:

main() }

程式執行後,如果從鍵盤上輸入1298;則輸出結果為______

答案:8921

46、以下程式輸出的最後一個值是______

int ff(int n)

main()

答案:120

47、設有以下程式:

main()

執行該程式後,a的值為______b的值為______

答案:0 @ 7

48、 函式fun的功能是:累加陣列元素中的值。n為陣列中元素的個數。累加的和值放入x所指的儲存單元中。

fun(int b, int n ,int *y)

答案:k

51、以下程式執行後的輸出結果是______

main()

答案:b

52、以下程式執行後的輸出結果是______

main()

答案:yes

期末考試總結,期末考試總結200字

今天,我要去學校拿期末考試成績單。到了學校,我的心裡非常緊張,因為我想知道語文和數學能考多少分。成績單發下來了,我看到語文作文是滿分,考試成績是96.5分,數學是100分。太好啦,我的玩具有希望啦!因為媽媽答應我只要有一科考了滿分,就給我買 麵包工坊 的玩具。我對這次考試不是太滿意,但是媽媽誇獎了我...

期末考試後的反思作文,期末考試後的反思作文600字

在剛剛結束的期中考試裡,我犯了很多不該犯的錯誤。我一向語文很好,可是這次鬼使神差的,語文竟然錯了很多不該錯的地方。經過我的仔細反思,我想這和我閱讀題目不認真有著很大的關係。這點也同樣延伸到了數學和英語方面。很多計算和語法上的小錯誤讓我丟掉了不少分數。例如 這個我不能替你寫,不知道你究竟錯了什麼,舉上...

女朋友對我說,只要期末考試你期末考試及格了,你想幹什麼就幹什麼。。他是什麼意思啊

呃呃,那她是在激勵你,你一定要把握,到頭來即使你沒及格,還是一樣的效果。謝謝,求採納 他是看你沒出息 真心希望你好 還是心疼你的 她還真大度,及格就可以!你機會來了 她是在激勵你。還有,她準備好以身相許了。她是想讓你考試能夠及格,想給你個獎勵 孩子你要純潔一點啊 這只是她激勵你的一種方式 讓你考好點...