江蘇某大學《885程序設計》歷年考研真題匯總_第1頁
江蘇某大學《885程序設計》歷年考研真題匯總_第2頁
江蘇某大學《885程序設計》歷年考研真題匯總_第3頁
江蘇某大學《885程序設計》歷年考研真題匯總_第4頁
江蘇某大學《885程序設計》歷年考研真題匯總_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄

2004年江蘇大學計算機科學與通信工程學院程序設計[專業(yè)碩士]考研真題.................................4

2005年江蘇大學計算機科學與通信工程學院程序設計[專業(yè)碩士]考研真題.................................10

2006年江蘇大學計算機科學與通信工程學院程序設計[專業(yè)碩士]考研真題.................................17

2007年江蘇大學計算機科學與通信工程學院448程序設計[專業(yè)碩士]考研真題...........................23

2008年江蘇大學計算機科學與通信工程學院814程序設計[專業(yè)碩士]考研真題...........................29

2009年江蘇大學計算機科學與通信工程學院814程序設計[專業(yè)碩士]考研真題...........................35

2014年江蘇大學計算機科學與通信工程學院885程序設計[專業(yè)碩士]考研樣題...........................41

2015年江蘇大學計算機科學與通信工程學院885程序設計[專業(yè)碩士]考研樣題...........................47

2016年江蘇大學計算機科學與通信工程學院885程序設計[專業(yè)碩士]考研樣題...........................53

2017年江蘇大學計算機科學與通信工程學院885程序設計[專業(yè)碩士]考研樣題...........................61

2018年江蘇大學計算機科學與通信工程學院885程序設計[專業(yè)碩士]考研樣題...........................67

2004年江蘇大學計算機科學與通信工程學院程序設計|專業(yè)碩士|考研真題

機密★啟用前共5頁

江蘇大學2004年碩士研究生入學考試試題第?頁

考試科目:程序設計

考生注意:答案必須寫在答題紙上,寫在試題及草稿紙上無效!

-、選擇題(本題有10小題,每題1分,共計10分)

(在每小題列出的四個選項中,選出一個正確答案)

1.以下敘述正確的是o

A)main()必須是程序的第一行

B)C程序每一行只能寫一條語句

C)C程序可以由一個或多個函數(shù)組成

D)在編譯時可以發(fā)現(xiàn)注釋中的拼寫錯誤。

2.下面選項中是不合法的C用戶標識符。

A)userB)switchC)_345D)Abe

3.結構化程序設計所規(guī)定的三種基本控制結構是________o

A)輸入、處理、輸出B)樹形、網(wǎng)形、環(huán)形

0順序、選擇、循環(huán)D)主程序、子程序、函數(shù)

4.設有說明:charw;intx;floaty;doublez;則表達式w*x+z-y值的數(shù)據(jù)類型

為。

A)floatB)doubleC)intD)char

5.下列運算符中的優(yōu)先級最低,

A)&&B)!C)+D)=

6.C語言中的文件類型劃分為_______________o

A)索引文件和文本文件兩種B)ASCH文件和二進制文件兩種

C)只有文本文件一種D)只有二進制文件一種

7.以下對C語言函數(shù)的描述中,不正確的是

A)C語言中,函數(shù)可以嵌套定義B)C語言中,函數(shù)可以遞歸調用

C)C語言中,函數(shù)可以沒有返回值D)C語言程序由函數(shù)組成

8.若有以下說明和語句:inta[10],*p,l*p2;pl=a;p2=&a[5];則p2-pl的值

為。

A)5B)6C)10D)沒有指針與指針的減法

9.定義一維數(shù)組外部變量a的正確格式是

A)inta(10);B)intn=10,a[n];C)inta[];

D)#defineSIZE10

intaLSIZE];

10.已有如下定義:

structnode

}*P,*q;

并已建立了如圖所示的單向鏈表,p,q分別指向圖中所示的結點,將q所指的結點插入到鏈

表末尾組成單向鏈表,以下不能實現(xiàn)該功能的程序段是o

A)(*p).next=q;(*q).next=NULL;B)q->next=p->next;p->next=q;

C)q->next=NULL;p->next=q;D)p->next=q;q->next=p->next;

第2頁

二、閱讀下列程序,寫出程序運行結果(本題有4小題,每小題4分,共計16分)

1、main()

{inti,j,m,n;

inta=12,b=5,c=23;

i=9;j=12;

m=-i;n=j-;

printf(fct%d,%d,%d,%d\n,,,i,j,m,n);

printfC%d\n”,a%=2+5);

printfT%d",c/=b);

)

2、main()

{inti,sum;

for(sum=0,i=7;i>=4;i-)

switch(i){

case4:case6:sum+=2;break;

case5:case7:sum+=1;break;

)

printf(wsum=%d,,,sum);

}

3、main()

{

staticinta[][4]={{l,2,3},{4,5},{6},{0});

intk;

fbr(k=0;k<=3;k++)

printf(H%4dH,a[k][k]);

}

4、main()

{staticinta[]={l,2,3,4,5,6};

int*p;

p=a;

*(p+3)+=4;

fbr(p=a;p<a+6;p++)printf(,,%4d,\*p);

}

三、程序填空。(46分)

1、【程序說明】函數(shù)mystrlen的功能是計算str所指字符串的長度,并作為函數(shù)值返回。

intmystrlen(char*str)

{inti;

第3頁

for(i=O;⑴!='\0':i++):

return(⑵):

2、【程序說明】本程序利用牛頓切線公式計算數(shù)a(不為0)的平方根。根據(jù)牛頓公式,其

第n+1次近似根與第n次近似根滿足:Xnu=(x?+a/x?)/2。

要求相鄰兩次近似根的差的絕對值小于等于時停止。初次迭代近似根X。取值為lo

//include<math.h>

#defineEPS(3)

main()

{doublex,y=l,a;

printf(“請輸入要開方的數(shù)。\n");

scanf("%f⑷);

do{

x=⑸;/*保存前次近似根*/

v=(6);/*計算本次近似根*/

}while(fabs(y-x)⑺EPS);

printfT%lf的平方根是%10.51f\n,,,a,y);

}

3、【程序說明】輸入一行字符,分別統(tǒng)計出其中的英文字母、空格、數(shù)字和其他字符的個

數(shù)。

#(8)<stdio.h>

main()

{charch;

intletter,digit,space,other;

⑼;

digit=0;space=0;other=0;

while((ch=getchar())(10)'\n')

if(ch>=,a,&&ch<=,z,||ch>='A'&&ch<=,Z,)letter++;

elseif((11))digit++;

elseif(ch==t')(⑵;

elseother++;

printff1etter=%4d,digit=%4d,space=%4d,other=%4d\n",letter,digit,space,other);

}

4、【程序說明】本程序的功能是以如下格式打印楊輝三角形的前10行。

1

11

121

1331

14641

15101051

1615201561

172135352171

18285670562881

193684126126843691

第4頁

#defineLASTROW10

main()

{introw,col,a[l1];

a[l]=l;

printf("%4d\n",a[l]);

fbr(row=2;row<=LASTROW];row++)

|

a[row]=l;

fbr(Q3))

a[col1=ar(14)1+a[(15)1;

for(col=1;(16);col++)

printfi["%4d",a[col]);

(17);

5、【程序說明】本題中的函數(shù)encode。和decode。分別實現(xiàn)對字符串的變換和復原.變換函

數(shù)encode。順序考察已知字符串的字符,按以下規(guī)則逐組生成新字符串:

(1)若已知字符串的當前字符不是數(shù)字字符,則復制該字符于新字符串中.

(2)若已知字符串的當前字符是一個數(shù)字字符,且它之后沒有后繼字符,則簡單地將它

復制到新字符串中

(3)若已知字符串的當前字符是一個數(shù)字字符,并且還有后繼字符,設該數(shù)字字符的面

值為n,則將它的后繼字符(包括后繼字符是一個數(shù)字字符)重復復制n+1次到新字

符串中.

(4)以上述一次變換為一組,在不同組之間另插入一個下劃線]用于分隔.例如:

encode。函數(shù)對字符串26a3t2的變換結果為666_a_tttt_2

復原函數(shù)decode。做變換函數(shù)encode。的相反的壬作.即復制不連續(xù)相同的單個字

符,而將一組連續(xù)相同的字符(不超過10個)變換成一個用于表示重復次數(shù)的數(shù)字符和

一個重復出現(xiàn)的字符,并在復原過程中掠過變換函數(shù)為不同組之間添加的一個下劃線字

符.

假定調用變換函數(shù)encode。時的已知字符串中不含下劃線字符.

intencode(char*instr,char*outstr)

{char*ip,*op,c;intk,n;

ip=instr;op=outstr;

while(*ip){

if(*ip>='0'&&*ip<='9'&&*(ip+l)){

n=(18);

c=(19);

for(k=0;k<n;k++)

*op++=c;

}

else(20);

*op++-_';

ip++;

}

if(op>outstr)op—;

第5頁

(21):

returnop-outstr;

}

intdecode(char*instr,char*outstr)

{char*ip,*op,c;intn;

ip=instr;op=outstr;

while(*ip){

c=*ip;n=0;

while(*ip==c&&n<10){ip++;n-H-;}

if((22))*op++='0'+n?l;

*op++=c;

if((23))ip++;

)

*op='\0';

returnop-outstr;

}

四、用C語言編寫下列程序(共78分)。

1、給一個不多于5位的正整數(shù),要求:①求出它是幾位數(shù);②分別打印出每一位數(shù)字;③

按逆序打印出各位數(shù)字,例如原數(shù)為321,應輸出123。(15分)

2、用選擇法或冒泡法對輸入的50個字符(按ASCII碼由小到大)進行排序。(15分)

3、輸入10個學生5門課的成績,分別用函數(shù)求:①每個學生平均分;②每門課的平均分;

找出最高的分數(shù)所對應的學生和課程;③求平均分方差:(28分)

,V2fc'J,X,為某一學生的平均分。

4、編寫一個函數(shù)intprism(intn),函數(shù)的功能為判定n是否為素數(shù)(所謂素數(shù)是指除

了能夠被1和自身整除外不能被其它任何數(shù)整除的數(shù)),如果n為素數(shù)則返回值1,否則返

回0。把一個大于4的偶數(shù)分解為兩個素數(shù)和的形式,并且把分解的結果寫入一個磁盤文件

result.dat中去。(如8=3+5)。(20分)

一、選擇題

l.C2.B3.C4.B5.D6.B7.A8.A9.D10.D

二、閱讀下列程序,寫出程序運行結果

1、8,11,8,12

5

4

2、sum=6

3、1500

4、123856

三、程序填空

(1)str[i]or*(str+i)

(2)i

(3)le-6

(4)&a

(5)y

(6)y=(y+a/y)/2ory=(x+a/x)/2

⑺〉

(8)include

(9)letter=0

(10)!=

(11)ch>=’0'&&ch<='9'

(12)space++或++space或space=space+1

(13)col=row-1;col>=2;col—

(14)col

(15)col-l

(16)col<=row

(17)printR“\n”)

(18)*ip」0'+1或*ip-47

(19)*++ip

(20)*op++=*ip

(21)*op='\0'

(22)n>l

(23)*ip=='J

2005年江蘇大學計算機科學與通信工程學院程序設計[專業(yè)碩士]考研真題

機密★啟用前

江蘇大學2005年碩士研究生入學考試試題

考試科目:程序設計

考生注意:答案必須寫在答題紙上,寫在試題及草稿紙上無效

一、選擇題(在每小題列出的四個選項中,選出一個正確答案。每小題1分,共計10分)

1.表示關系xWyWz的C語言表達式為()。

A.(x<=y)&&(y<=z)B.(x<=y)AND(y<=z)

C.(x<=y<=z)D.(x<=y)&(y<=z)

2.下列不正確的轉義字符是()。

AAVBA"C.'O74'D.'\0'

3.執(zhí)行語句for(k=10;k>=0;k-=2);后,變量k的值為()。

A)1B)-2C)2D)0

4.若有:inta[6]={4,5,6,9,5,7},*p=a,*q=p;則對數(shù)組元素的錯誤引用是()。

A.a[4]B.*(p+4)C.*q-H-D.*a-H-

5.使用#include“文件名”,尋找被包含文件的方式為()。

A.直接按系統(tǒng)設定的方式搜索目錄B.僅搜索源程序所在目錄

C.先搜索源程序所在目錄,再按系統(tǒng)設定的方式搜索目錄

D.僅搜索當前目錄

6.設有inta[]={10,II,12},*p=&a[0];則執(zhí)行完*p++;*p+=l;后a[0],a[l],a⑵的值依次

是()。

A.10,11,12B.11,12,12C.10,12,12D.11,11,12

7.設pl和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的

語句是()o

A.k=*pl+*p2;B.p2=k;C.pl=p2;D.k=*pl*(*p2);

8.設p為指向結構體的指針,num為該結構體中的一個整型成員,y為一整型變量,

y=++p->num;與()等價。

A.++p;y=p->numB.y=(++p)->num

C.-H-(p->num);y=p->numD.y=p->num;++y

9.以下敘述中不正確的是()。

A.在不同的函數(shù)中可以使用相同名字的變量

B.函數(shù)中的形式參數(shù)是局部變量

C.在一個函數(shù)內定義的變量只在本函數(shù)范圍內有效

D.在一個函數(shù)內的復合語句中定義的變量在本函數(shù)范圍內有效

10.如果要以只讀方式打開一個文本文件,應使用的打開方式是()。

A.r+B.wC.rD.rb

二、閱讀下列程序,寫出程序運行結果(本題有4小題,每小題4分,共計16分)

1.#include<stdio.h>

voidmain()

{inti=0;

while(-H-i)

{if(i==I0)break;

if(i%3!=l)continue;

printf(u%4d”,i);

2.#include"math.h"

main()

{intm,k,i;

fbr(m=2;m<=10;m++){

fbr(k=sqrt(m),i=2;i<=k;i++)

iRm%i==0)break;

if(i>=k+l)printff%dn,m);

3.test()

{intx=0;staticinty=3;

y+=++x;

printff%4d%4dn,x,y);

)

main()

{test();test();}

4.#defineNULL0

structstudent

{longnum;

floatscore;

structstudent*next;

}S[]={{1,80},{2,88},{3,77},{4,97}},*p=s;

voidprint(structstudent*head)

{structstudent*p;

p=head;

if(head!=NULL)

do{printf(,,%ld%5.1f\nM,p->num,p->score);

p=p->next;

}while(p!=NULL);

}

main()

{intj;

for(j=l;j<4;j++,p++)p->next=&s[j];

p->next=NULL;

P=s;

print(p);

)

三、程序填空(閱讀下列程序說明和C代碼,將應填入處的字句寫在答卷的對應欄內,

每空2分,共計42分)

1、【程序說明】本程序為一個函數(shù)check(s),它檢查給定字符串s是否滿足下列條件:

①、從字符串首字符起,在順序檢查s中字符的過程中,遇到的右括號D'的個數(shù)在任

何時候均不超過所遇到的左括號'('的個數(shù);

②、左括號'('的個數(shù)與右括號')'的個數(shù)相同

intcheck(s)

(1);

{intlp=0,rp=0;

while(⑵){

if(*s=,C)lp++;

elseif(*s==^)^){

rp++;

if(⑶)return0;

)

(4);

return(5):1;

)

2.【程序說明】遞歸函數(shù)invert(inta口,intk)將指定數(shù)組中的前k個元素逆置。如有5個

數(shù):1,2,3,4,5;將前3個數(shù)逆置后得到結果:3,2,1,4,5。

voidinvert(inta[],intk)

{intt;

if(_m{

t=a[0];

a[0]=a[k-l];

a[k-l]=t;

invert((7));

3.【程序說明】函數(shù)fimc的功能是:使一個字符串按逆序存放,例如字符串“ABCDEF”

按逆序存放后為“FEDCBA”。

#include<string.h>

voidfunc(charstr[])

{charm;inti,j;

for(i=0,(8):(9):i++,j??)

{m=str[i];

(10);

(H);

}

)

4、【程序說明】本程序三位正整數(shù)中尋找符合下列條件的整數(shù):它既是完全平方數(shù),又有

兩位數(shù)字相同,例如144=12?、676=26?等,程序找出所有滿足上述條件的二位數(shù)并輸出。

main()

{intn,k,a,b,c;

for(k=1;;k+4-)

(

(12);

if(n<100)(13);

if(n>999)(14);

a=n/100;

b=(⑸;

c=n%10;

if(flag(a,b,c))

printfpN=%d=%d*%d\n”,n,k,k);

flag((16))

return!((x-y)*(x-z)*(y-z));

5【程序說明】函數(shù)voidrcr(inta口,intn,intk)的功能是:將數(shù)組a中的元素a[0]?a[n-l]循

環(huán)向右平移k個位置。

為了達到總移動次數(shù)不超過n的要求,每個元素都必須只經過一次移動到達目標位置。

在函數(shù)rcr中用如下算法實現(xiàn):首先備份a⑼的值,然后計算應移動到a[0]的元素的下標p,

并將a[p]的值移至a[0];接著計算應移動到a[p]的元素的下標q,并將a[q]的值移至a[p];依次

類推,直到將a[0]的備份值移到正確位置。

若此時移動到位的元素個數(shù)已經為n,則結束;否則,再備份a[l]的值,然后計算應移

動到a[l]的元素的下標p,并將a[p]的值移至a[l];接著計算應移動到a[p]的元素的下標q,

并將a[q]的值移至a[p];依次類推,直到將a[l]的備份值移到正確位置。

若此時移動到位的元素個數(shù)已經為n,則結束;否則,從a[2]開始,重復上述過程,直

至將所有的元素都移動到目標位置時為止。

例如,數(shù)組a中的6個元素如下圖(a)所示,循環(huán)向右平移2個位置后元素的排列情況如

圖(b)所示。

412538476576657641253847

a[0]a[l]a[2]a[3]a[4]a[5]a[0]a[l]a[2]a[3]a[4]a[5]

(a)(b)

voidrcr(inta[],intn,intk)

{

inti,j,3temp,count;

count=0;/*記錄移動元素的次數(shù)*/

k=k%n;

if((17)"/*若k是n的倍數(shù),則元素無須移動;否則,每個元素都要移動*/

i=0;

while(count<n){

j=i;t=i;

temp=a[i];/*備份a[i]的值*/

/*移動相關元素,直到計算出a[i]應移動到的目標位置*/

while((j=(18))!=i){

a[t]=a[j];

t=(19);

count-H-;

}

(20)=temp;count++;

⑵);

四、用C語言編寫下列程序(共82分)

1、求方程ax2+bx+c=0的根。要求綜合考慮各種情況。如a=0和aWO,b=0和bWO以及c=0

和cW0等。(20分)

2、找出一個二維數(shù)組中的鞍點,即該位置上的元素在該行上最大,在該列上最小。也可能

沒有鞍點。(16分)

3、有一分數(shù)序列

2358B21

T,2,3,5,T,13,'"

求出這個數(shù)列的前20項之和。(16分)

4、有一個班30個學生5門課的成績。①求第一門課的平均分;②找出有2門以上不及格的

學生,輸出他們的學號、全部課程成績和平均成績;③找出平均成績在90分以上或全部

課程成績在85分以上的學生。分別編3個函數(shù)實現(xiàn)以上要求。(30分)

2006年江蘇大學計算機科學與通信工程學院程序設計|專業(yè)碩士|考研真題

機密★啟用前

江蘇大學2006年碩士研究生入學考試試題

考試科目:程序設計

考生注意:答案必須寫在答題紙上,寫在試題及草稿紙上無效

一、選擇題(在每小題列出的四個選項中,選出一個正確答案。每小題2分,共計20分)

1.表示關系OWxWl的C語言表達式為()。

A.(x>=O)&&(x<=l)B.(x>=O)AND(x<=l)

C.(0<-x<=l)D.(x>=O)&(x〈=l)

2.設有枚類型定義:enumcolor{red,yellow,blue=9>white,black);則枚舉元素black的

值是()□

A.4B.5C.11D.12

3.若w=l,x=2,y=3,z=4:則條件表達式w<x?w:y<z?y:z的值是()。

A.1B.2C.3D.4

4.若用數(shù)組名作為實參,則傳遞給形參的是()。

A.數(shù)組首地址B.數(shù)組第一個元素的值

C.數(shù)組元素的個數(shù)D.數(shù)組中全部元素的值

5.一個可執(zhí)行C程序的開始執(zhí)行點是()o

A.程序中的第一個語句B.包含文件的第一個函數(shù)

C.名為main的函數(shù)D.程序中的第一個函數(shù)

6.若intk,*p;p=&k;要實現(xiàn)k的內容加5,則下面的語句()是錯的。

A.k+=5B.k=*p+5C.*p=k+5D.*p=&k+5

7.若仃語句組typedefchar"STRING;STRINGa;則以下敘述中正確的是()?

A.a是一個新類型B.a是一個字符型指針變量

C.a是一個字符串常量D.a是一個字符型變量

8.下面能正確進行字符串賦值操作的語句是()。

A.chars[5]={"ABCDE"};B.chars[5]={'A\'B\'C\'D\'E'};

C.char*s;s="ABCDEF";D.char*s;scanf("%s",s);

9.已有定義int*p;以下能動態(tài)分配一個整型存儲單元,并把該單元的首地址正確賦值給指

針變量p的語句是()o

A.*p=(int*)malloc(sizeof(int));B.p=(int*)malloc(sizeof(int));

C.p=*malloc(sizeof(int));D.free(p);

共6頁,第1頁

10.在C程序中,可把整型數(shù)以二進制形式存放到文件中的函數(shù)是()。

A.函數(shù)B.fread函數(shù)C.fwrite函數(shù)D.f^utc函數(shù)

二、閱讀下列程序,寫出程序運行結果(本題有5小題,每小題4分,共計20分)

1.^include<stdio.h>

voidmain()

{intm,n,r;

m=75;n=30;

while(r=m%n){m=n;n=r;}

printf(H%d\nn,n);

)

2.#include<stdio.h>

intfl(intm,intn)

{inta,b;

a=n++;b=-m;

return(a+b);

}

voidinain()

{inta,b,c;

a=3;b=5;

printf(,'a=%d,b=%d\nH,a,b);

c=fl(a,b);

printf("a=%d,b-%d,c=%d\n",a,b,c);

)

3.^include<stdio.h>

voidmain()

(

ints[6][6],j,k;

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

for(k=0;k<6;k++)

*(*(s+j)+k)=j-k;

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

共6頁,第2頁

for(k=0;k<6;k++)

printf("%4d”,*(*(s+j)+k));

printf(“\n”);

4.Sinclude<stdio.h>

intfind(int*a,intn,intx)

{int*p=a+n;

P-;

while(*p!=x&&p>=a)p—;

returnp-a;

}

voidmain()

{staticinta[]={l,2,3,4,5,6,0,8};

intk=20;

printf(K%4dH,find(a,8,k));

}

5.#include<stdio.h>

voidmain()

{inta=l,b=2,c=3;

++a;c+=++b;

if(0=4){

intb=4,c;c=3*b;a+=c;

printf(nFirst:%d,%d,%d\nH,a,b,c);

a+=c;

printf(HSecond:%d,%d,%d\nH,a,b,c);

}

printf(nThird:%d,%d,%d\nn,a,b,c);

}

共6頁,第3頁

三、程序填空(閱讀下列程序說明和C代碼,將應填入g處的字句寫在答卷的對應欄內,

每空3分,共計45分)

1、【程序說明】本程序功能是輸入一行字符,分別統(tǒng)計出其中的英文字母、空格、數(shù)字和

其他字符的個數(shù)。

#⑴<stdio.h>

voidmain()

{charch;

intletter,digit,space,other;

⑵:

digit=O;space=0;othei-0;

while((ch=getchar())⑶'\n')

if(ch>=,a,&&ch<=,z,||ch>='A'&&ch<=,Z,)letter++;

elseif((4))digit++;

elseif(ch==t?)⑸:

elseothcr++;

printf(ulettcr=%4d,digit=%4d,space=%4d,other=%4d\n^^,letter,digit,space,other);

)

2.【程序說明】本程序功能是求1至N之間的所有質數(shù)(素數(shù))。(設N〉l,其值由鍵盤輸入)

#include<stdio.h>

#include<math.h>

voidmain()

{

⑹:

piintfC'輸入一個>1整數(shù):");

do{

scanf("%d”,&N);

}while

printf(1至%d之間的所有質數(shù)是:2”,N);

for(m=3;m<=(8);m++)

(

inti,tmp=(int)sqrt(m);

for(i=2;i<=tmp;i++)if((9))break;

if((10))printf(“%d”,m);

共6頁,第4頁

printf("\n");

3.【程序說明】本函數(shù)creathst用來建立一個帶頭結點的學生數(shù)據(jù)的單向鏈表,新的結點總

是插入在鏈表的末尾。鏈表的頭指針作為函數(shù)值返回,鏈表最后一個結點的next域放入

NULL,作為鏈表結束標志。創(chuàng)建中如輸入的學號為0,則創(chuàng)建結束(學號為0不存入鏈表)。

//defineNULL0

#defineLENsizeof(structstudent)

structstudent

{

longnum;/*學號*/

floatscore;/*成績*/

structstudent*next;

);

(11)creatlistf)/*函數(shù)返回鏈表的起始地址*/

{structstudent*head,*pl,*p2;

pl=p2=(structstudent*)malloc(LEN);/*開辟一個新單元*/

scanf("%ld%f',&pl->num,&p1->score);

head=NULL;

while(pl->num!=0)

{

if(head==NULL)(12):

else(13);

p2=pl;

pl=(14);

scanf("%ld,%f&pl->num,&pl->score);

}

p2->next=(15):

free(pl);

return(head);

共6頁,第5頁

四、用C語言編寫下列程序(共65分)

10050101

1、求*T*='*=>ko(15分)

2、打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個3位數(shù),其各位數(shù)字立方和等

于該數(shù)本身。例如,153是一水仙花數(shù),因為1531+5433。(15分)

3、編程模擬選舉過程。假定4位侯選人zhang、wang、li、zhao,代號分別為1、2,3、4。

選舉人直接鍵入候選人代號,1?4之外的整數(shù)視為棄權票,-1為終止標志。打印各位候

選人的得票以及當選者(得票數(shù)超過選票總數(shù)一半)的名單。(15分)

4、編程打印如下圖形,中間一行英文字母由輸入得到,圖形應隨輸入的英文字母的變化而

變化。例如,輸入英文字母A得到的圖形為:(20分)

A

輸入英文字母B得到的圖形為:

A

BBB

A

輸入英文字母D得到的圖形為:

A

BBB

CCCCC

DDDDDDD

CCCCC

BBB

A

共6頁悌6頁

2007年江蘇大學計算機科學與通信工程學院448程序設計[專業(yè)碩士]考研真題

機密★啟用前

江蘇大學2007年碩士研究生入學考試試題

科目代碼:448科目名稱:程序設計

考生注意:答案必須寫在答題紙上,寫在試卷、草稿紙上無效!

一、選擇題(在每小題列出的四個選項中,選出一個正確答案。每小題2分,共計20分)

1.卜面選項中()是不合法的C語言用戶標識符。

A.sinB.bookC.nameD.Example2.1

2.若inta=12:則賦值表達式a*=2+3的值是().

A.12B.27C.60D.5

在inta[][3]=({l,2},{3,2,1},{4,5,

3.6).{0});中的值是()o

A.1B.0C.6D.2

4.下列運算符中,()結合性從左到右。

A.三日B.賦值C.比較D.單目

5.若有以下說明和語句:inta[10],*pl,*p2;pl=a:p2=&a[5];則以下不正確的

表達式是()o

A.pl=p2B.pl++C.p2~plD.a=p2-3

6.以下函數(shù)聲明中,存在著語法錯誤的是().

A.doubleAA(inta,int);B.doubleBB(intx,y);

C.doubleCC(int,int);D.doubleDD(int*,int*);

7.若磁盤上已存在某個文本文件,其全路徑文件名為c:\c\data.txt,下列語句中不能打開文

件的是(

A.FILE*in;in=fopen("c:\c\data.txt","r");

B.FILE*in;in=fopen("c:\\c\\data.txt","r"):

C.FILE*in;in=fopen("c:\\c\\data.txt","a+");

D.FILE*in;in=fopen("c:\\c\\data.txt","r+"):

第1頁,共6頁

8.若彳1說明和定義:typedefint*INTEGER;INTEGERp,*q;則以下敘述正確的是(

A.p姑int型變量B.p氈基類型為int的指針變量

C.q是基類型為int的指針變量D.程序中可用INTEGER代替int類型名

9.設有如下定義:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,止確的賦值

語句是().

A.p=&a;B.p=data,a;C.p=&data.a;D.*p=data.a;

10.有以下程序

#include<stdlib.h>

main()

{char*p,*q;'

p=(char*)malloc(20*sizeof(char));q=p;

scanf("%s%s",p,q);print或[%s%s\n",p,q);

)

若從鍵盤輸入:abcdefvWl7^A,則輸出結果是

A.defdefB.abcdefC.abedD.dd

二、閱讀下列程序,寫出程序運行結果(本題有5小題,每小題4分,共計20分)

I.^include<stdio.h>

voidfun(char*c,intd)

{*c=*c+l;d=d+l;

printf("%c,%c,",*c,d);

}

main()

{chara='A',b-a';

fun(&b,a);printR"%c,%c\n”,a,b);

}

第2頁,共6頁

2.#include<stdio.h>

voidreverse(inta[],intn)

{inti,t;

for(i=0;i<n/2;i++)

{t=a[i];a[i]=a[n-l-i];a[n-l-i]=t;}

}

main()

{intb[10]={l,2,3,4,5,6,7,8,9,10};inti,s=0;

reverse(b,8);

fbr(i=5;i<10;i++)s+=b[i];

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

)

3.#include<stdio.h>

structSTU

{charnum[10];floatscore[3];}

main()

{structSTUs[3]={{”10101190,95,85},「10102”,95,80,75},{“10103”,100,95,90}},*p=s+2;

inti;floatsum=0;

for(i=0;i<3;i++)

sum=sum+p->score[i];

printf(w%6.2f\nw,sum);

)

4.#include<stdio.h>

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{int

il=l000/s(N);i2=l000/f(N);

printf("%d%d\n,,,il,i2);

)

第3頁,共6頁

5.#inckide<string.h>

voidf(charp[][10],intn)

{chart[20];intij;

fbr(i=0;i<n-l;i++)

for(j=i+l;j<ny++)

if(strcmp(p[i],p[j])<0)

{strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p|j],t);)

}

main()

{charpqiOH'abdJaabdfg'ZbbWdcdbeTtd”};inti;

f(p,5);printf("%d\n”,strlen(p[O]));

三、程序填空(閱讀下列程序說明和c代碼,將應填入(n)處的字句寫在答卷的對應欄內,每

空3分,共計30分)

1、【程序說明】本程序的功能是在數(shù)組a中查找與x值相同的元素所在位置,數(shù)據(jù)從元素a[l]開始

存放,請?zhí)羁胀瓿沙绦颉?/p>

#inc!ude<stdio.h>

#define⑴10

voidmain()

{inta[MAX+l],x,i;

printf("請輸入數(shù)組a的各元素:\n");

fbr((2):i<=MAX:i++)

scanR"%d”,&a[i]);

printf("請輸入要找的元素:");

scanf("%d",&x);

a[0]=X5

i=MAX;

while(x!=⑶)⑷;

if(⑸)printf("%d的位置在第%d個元素\n",x,i);

elseprintf("沒有找到!\n");

)

第4頁,共6頁

2、【程序說明】本程序用辛普生公式計算下式的值:

[2]4

可彳/X+產dx

b

計算Jf(x)dx的辛普生(simpson)的近似計算公式為:

a

bh

Jf(x)dx=]{f(a)-f(b)+Z[4f(a+jh)+2f(a+(j+l)h)]}

a

ho

其中,h=—工:£是對j=l,3,5,2n-l求和。

2n

為了使近似值達到指定精度EPS,程序中采取了逐步擴大n的方法。

/include<stdio.h>

(6)

#definePI3.14159265

doublef(doublex)

{

⑺1.0/(3+2*x);

}

doubletg(doublex)

(

returnsin(x)/cos(x);

}

voidsimpson(doublea,doubleb,intn,double(*g)(double),double*s)

(

intj;doubleh;

h=(b-a)/(2*n);

*s=(*g)(a)-(*g)(b);

for(j=l;j<2*n;j+=2)

*s=*s+4.0*(*g)(a+j*h)+2.0*(*g)(a+(j+l)*h);

*s=*s*h/3.0;

)

第5頁,共6頁

main()

(

doubleeps,x,xl,s;

intn;

printf(uPleaseentereps:");

scanf(u%lf\&eps);

x=0.0;n=2;

do{

n*=2;xl=x;

⑻;

x=s/PI;

.⑼;

x+=s;

Iwhilef(10));

printf(ux=%10.71f\n,\x);

)

四、用c語言編寫下列程序(共80分)

1.設計函數(shù),將小寫英文字符變?yōu)閷拇髮懽址?/p>

溫馨提示

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

評論

0/150

提交評論