程序設計期末考試試卷_第1頁
程序設計期末考試試卷_第2頁
程序設計期末考試試卷_第3頁
程序設計期末考試試卷_第4頁
程序設計期末考試試卷_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

復旦大學信息科學與工程學院

《程序設計》期末考試試卷

共9頁

課程代碼:INF0120001.06考試形式:□開卷曰閉卷

(本試卷答卷時間為120分鐘,答案必須寫在試卷上,做在草稿紙上無效)

專業(yè)學號姓名成績

題號—?二二總分

得分

ー、選擇題(30%)

1.閱讀程序,選擇程序的運行結(jié)果。A_______________________________________

裝#include<stdio.h>

訂intTry(intn)

(

線if(n>0)

return(n*Try(n-2));

內(nèi)

else

不return1;

)

答main()

(

題intx;

x=Try(5);

,Tn

printf(%d\nzx);

}_____________________________________________________________________________

A.15B.120C.1D.前面三個答案都是錯的

2.下列選項列中,在C中不正確的是B。

A.intnValue=073;B.intnValue=094;

C.intnValue=0x94;D.intnValue=100;

3.下列選項中,不是C提供的合法總算的是_C〇

A.forB.switchC.beginD.default

4.下列選項中,不是用來表達轉(zhuǎn)義字符的是ーC_?

A.\\B.\nC.OxABD.ヽ,

5.下列對字符串的定義中,錯誤的是A______。

A)charstr[7]="FORTRAN”;

B)charstr[]="FORTRAN”;

C)char*str=nFORTRANn;

D)charstr[]={‘Fl'O'JR'JTl'R’JAl'N',0};

6.設指針pnValue指向的整型變量值為25,則++*pnValue后pnValue的值是_A

A.26B.25C.24D.以上答案都不對

7.以下程序段的輸出結(jié)果是:D

chara[]="ABCDE”;

char*p=NULL;

for(p=a;p<a+5;p++)

(

printf(、、%s\n〃,p);

}

A.ABCDEB.AC.ED.ABCDE

BDBCDE

CCCDE

DBDE

EAE

閱讀下列函數(shù),函數(shù)功能為ーA___〇

voidExchange(int*pl,int*p2)

intp;

p=*pl;

*pl=*p2;

*p2=p;

)

A.交換?pl和?p2的值B,正確,但無法改變*pl和*p2的值

C.交換?pl和?p2的地址D.可能造成系統(tǒng)故障

9.表達式!!6的值是__A?

A.6

B.0

C.1

D.65530

10.inta[]={2,6,10,14,16},*p=a+2;表達式?(p-1)*(p+1)[1J的值為:B

A.84B.96C.140D.60

二、簡答題(30%)

1.下面程序代碼給出了交換兩個整數(shù)的swap函數(shù)。試改寫該函數(shù),以避免生成臨時存儲單元。

voidswap(int&nlzint&n2)

(

inttemp;

temp=nl;nl=n2;n2=temp;

}

nl+=n2;

n2=nl-n2;

nl-=n2;

第2頁

2.下面哪些(如果有)名字是非法的?說明原因并更正每個非法的標識符名字。

(a)intdouble=3.14159;

(b)char_a;

(c)boolcatch-22;

(d)char1_or_2=,11;

(e)floatFloat=3.14f;

內(nèi)

3.寫出下面程序的運行結(jié)果,并說明理由。

#include<stdio.h>

voidFunc(intx)

{

x=20;

)

main()

(

intx=10;

Func(x);

printf(n%d",x);

10

4.寫出下面程序的運行結(jié)果,并說明其理由。

#include"stdafx.h”

#include"stdio.h"

intmain(intargczchar*argv[])

(

inta;

int&b=a;

b=10;

printf(na=%d\n*\a);

return0;

}

10

第4頁

5.閱讀下列程序,寫出運行結(jié)果。

#include<stdio.h>

main〇

(

inta[6][6]zi,j;I(n=6)

for(i=l;i<6;i++)

(

for(j=l;j<6;j++)

{

a[i][j]=(i/j)*(j/i);

)

}

for(i=l;i<6;i++)

(

for(j=l;j<6;j++)

|

printfド%2d”,a[i][j]);

)

printfC\n");

內(nèi)

三、程序設計題(40%)

1.編寫ー個函數(shù)エnverse,實現(xiàn)將字符數(shù)組中的字符串逆序存放的功能。

[提示:有兩種方法:

(1)用數(shù)組a存放逆序存放前的數(shù)組元素,用數(shù)組b存放逆序存放后的數(shù)組元素:

(2)用ー個數(shù)組實現(xiàn)逆序存放,借助于ー個中間變量temp,將數(shù)組中首尾對稱位置的元素互換,

i指向數(shù)組首部的元素,從〇按依次加1變化,j指向數(shù)組尾部的元素,從n-l按依次減1變化,

當變化到i>j時結(jié)束元素互換操作。]

VoidInverse(char*p)

{intn,i;

chartemp;

for(n=0;p[n];n4-+);

n-;

for(i=0;i<n-i;i++)

(

temp=a[i];

a[i]=a[n-i];

a[n-i]=temp;

I

第6頁

2.不用strcat函數(shù)編程實現(xiàn)字符串連接函數(shù)strcat的功能,將字符串t連接到字符串s的

尾部。

[提示:用i和j分別作為字符數(shù)組s和字符數(shù)組t的下標,先將i和j同時初始化為〇,

然后移動i使其位于字符s的尾部即字符串結(jié)束標志處,再將字符數(shù)組t中的字符依次拷貝到字

符數(shù)組s

溫馨提示

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

評論

0/150

提交評論