江苏某大学《885程序设计》历年考研真题汇总_第1页
江苏某大学《885程序设计》历年考研真题汇总_第2页
江苏某大学《885程序设计》历年考研真题汇总_第3页
江苏某大学《885程序设计》历年考研真题汇总_第4页
江苏某大学《885程序设计》历年考研真题汇总_第5页
已阅读5页,还剩65页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录

2004年江苏大学计算机科学与通信工程学院程序设计[专业硕士]考研真题.................................4

2005年江苏大学计算机科学与通信工程学院程序设计[专业硕士]考研真题.................................10

2006年江苏大学计算机科学与通信工程学院程序设计[专业硕士]考研真题.................................17

2007年江苏大学计算机科学与通信工程学院448程序设计[专业硕士]考研真题...........................23

2008年江苏大学计算机科学与通信工程学院814程序设计[专业硕士]考研真题...........................29

2009年江苏大学计算机科学与通信工程学院814程序设计[专业硕士]考研真题...........................35

2014年江苏大学计算机科学与通信工程学院885程序设计[专业硕士]考研样题...........................41

2015年江苏大学计算机科学与通信工程学院885程序设计[专业硕士]考研样题...........................47

2016年江苏大学计算机科学与通信工程学院885程序设计[专业硕士]考研样题...........................53

2017年江苏大学计算机科学与通信工程学院885程序设计[专业硕士]考研样题...........................61

2018年江苏大学计算机科学与通信工程学院885程序设计[专业硕士]考研样题...........................67

2004年江苏大学计算机科学与通信工程学院程序设计|专业硕士|考研真题

机密★启用前共5页

江苏大学2004年硕士研究生入学考试试题第।页

考试科目:程序设计

考生注意:答案必须写在答题纸上,写在试题及草稿纸上无效!

-、选择题(本题有10小题,每题1分,共计10分)

(在每小题列出的四个选项中,选出一个正确答案)

1.以下叙述正确的是o

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

B)C程序每一行只能写一条语句

C)C程序可以由一个或多个函数组成

D)在编译时可以发现注释中的拼写错误。

2.下面选项中是不合法的C用户标识符。

A)userB)switchC)_345D)Abe

3.结构化程序设计所规定的三种基本控制结构是________o

A)输入、处理、输出B)树形、网形、环形

0顺序、选择、循环D)主程序、子程序、函数

4.设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型

为。

A)floatB)doubleC)intD)char

5.下列运算符中的优先级最低,

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

6.C语言中的文件类型划分为_______________o

A)索引文件和文本文件两种B)ASCH文件和二进制文件两种

C)只有文本文件一种D)只有二进制文件一种

7.以下对C语言函数的描述中,不正确的是

A)C语言中,函数可以嵌套定义B)C语言中,函数可以递归调用

C)C语言中,函数可以没有返回值D)C语言程序由函数组成

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

为。

A)5B)6C)10D)没有指针与指针的减法

9.定义一维数组外部变量a的正确格式是

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

D)#defineSIZE10

intaLSIZE];

10.已有如下定义:

structnode

}*P,*q;

并已建立了如图所示的单向链表,p,q分别指向图中所示的结点,将q所指的结点插入到链

表末尾组成单向链表,以下不能实现该功能的程序段是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、【程序说明】函数mystrlen的功能是计算str所指字符串的长度,并作为函数值返回。

intmystrlen(char*str)

{inti;

第3页

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

return(⑵):

2、【程序说明】本程序利用牛顿切线公式计算数a(不为0)的平方根。根据牛顿公式,其

第n+1次近似根与第n次近似根满足:Xnu=(x„+a/x„)/2。

要求相邻两次近似根的差的绝对值小于等于时停止。初次迭代近似根X。取值为lo

//include<math.h>

#defineEPS(3)

main()

{doublex,y=l,a;

printf(“请输入要开方的数。\n");

scanf("%f⑷);

do{

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

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

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

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

}

3、【程序说明】输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个

数。

#(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、【程序说明】本题中的函数encode。和decode。分别实现对字符串的变换和复原.变换函

数encode。顺序考察已知字符串的字符,按以下规则逐组生成新字符串:

(1)若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中.

(2)若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它

复制到新字符串中

(3)若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字字符的面

值为n,则将它的后继字符(包括后继字符是一个数字字符)重复复制n+1次到新字

符串中.

(4)以上述一次变换为一组,在不同组之间另插入一个下划线]用于分隔.例如:

encode。函数对字符串26a3t2的变换结果为666_a_tttt_2

复原函数decode。做变换函数encode。的相反的壬作.即复制不连续相同的单个字

符,而将一组连续相同的字符(不超过10个)变换成一个用于表示重复次数的数字符和

一个重复出现的字符,并在复原过程中掠过变换函数为不同组之间添加的一个下划线字

符.

假定调用变换函数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位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③

按逆序打印出各位数字,例如原数为321,应输出123。(15分)

2、用选择法或冒泡法对输入的50个字符(按ASCII码由小到大)进行排序。(15分)

3、输入10个学生5门课的成绩,分别用函数求:①每个学生平均分;②每门课的平均分;

找出最高的分数所对应的学生和课程;③求平均分方差:(28分)

,V2fc'J,X,为某一学生的平均分。

4、编写一个函数intprism(intn),函数的功能为判定n是否为素数(所谓素数是指除

了能够被1和自身整除外不能被其它任何数整除的数),如果n为素数则返回值1,否则返

回0。把一个大于4的偶数分解为两个素数和的形式,并且把分解的结果写入一个磁盘文件

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年江苏大学计算机科学与通信工程学院程序设计[专业硕士]考研真题

机密★启用前

江苏大学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.执行语句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;则对数组元素的错误引用是()。

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

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

A.直接按系统设定的方式搜索目录B.仅搜索源程序所在目录

C.先搜索源程序所在目录,再按系统设定的方式搜索目录

D.仅搜索当前目录

6.设有inta[]={10,II,12},*p=&a[0];则执行完*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型一维数组的指针变量,k为int型变量,则不能正确执行的

语句是()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.在不同的函数中可以使用相同名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

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、【程序说明】本程序为一个函数check(s),它检查给定字符串s是否满足下列条件:

①、从字符串首字符起,在顺序检查s中字符的过程中,遇到的右括号D'的个数在任

何时候均不超过所遇到的左括号'('的个数;

②、左括号'('的个数与右括号')'的个数相同

intcheck(s)

(1);

{intlp=0,rp=0;

while(⑵){

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

elseif(*s==^)^){

rp++;

if(⑶)return0;

)

(4);

return(5):1;

)

2.【程序说明】递归函数invert(inta口,intk)将指定数组中的前k个元素逆置。如有5个

数:1,2,3,4,5;将前3个数逆置后得到结果: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.【程序说明】函数fimc的功能是:使一个字符串按逆序存放,例如字符串“ABCDEF”

按逆序存放后为“FEDCBA”。

#include<string.h>

voidfunc(charstr[])

{charm;inti,j;

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

{m=str[i];

(10);

(H);

}

)

4、【程序说明】本程序三位正整数中寻找符合下列条件的整数:它既是完全平方数,又有

两位数字相同,例如144=12?、676=26?等,程序找出所有满足上述条件的二位数并输出。

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【程序说明】函数voidrcr(inta口,intn,intk)的功能是:将数组a中的元素a[0]〜a[n-l]循

环向右平移k个位置。

为了达到总移动次数不超过n的要求,每个元素都必须只经过一次移动到达目标位置。

在函数rcr中用如下算法实现:首先备份a⑼的值,然后计算应移动到a[0]的元素的下标p,

并将a[p]的值移至a[0];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至a[p];依次

类推,直到将a[0]的备份值移到正确位置。

若此时移动到位的元素个数已经为n,则结束;否则,再备份a[l]的值,然后计算应移

动到a[l]的元素的下标p,并将a[p]的值移至a[l];接着计算应移动到a[p]的元素的下标q,

并将a[q]的值移至a[p];依次类推,直到将a[l]的备份值移到正确位置。

若此时移动到位的元素个数已经为n,则结束;否则,从a[2]开始,重复上述过程,直

至将所有的元素都移动到目标位置时为止。

例如,数组a中的6个元素如下图(a)所示,循环向右平移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;/*记录移动元素的次数*/

k=k%n;

if((17)"/*若k是n的倍数,则元素无须移动;否则,每个元素都要移动*/

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、找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能

没有鞍点。(16分)

3、有一分数序列

2358B21

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

求出这个数列的前20项之和。(16分)

4、有一个班30个学生5门课的成绩。①求第一门课的平均分;②找出有2门以上不及格的

学生,输出他们的学号、全部课程成绩和平均成绩;③找出平均成绩在90分以上或全部

课程成绩在85分以上的学生。分别编3个函数实现以上要求。(30分)

2006年江苏大学计算机科学与通信工程学院程序设计|专业硕士|考研真题

机密★启用前

江苏大学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.若用数组名作为实参,则传递给形参的是()。

A.数组首地址B.数组第一个元素的值

C.数组元素的个数D.数组中全部元素的值

5.一个可执行C程序的开始执行点是()o

A.程序中的第一个语句B.包含文件的第一个函数

C.名为main的函数D.程序中的第一个函数

6.若intk,*p;p=&k;要实现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;以下能动态分配一个整型存储单元,并把该单元的首地址正确赋值给指

针变量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程序中,可把整型数以二进制形式存放到文件中的函数是()。

A.函数B.fread函数C.fwrite函数D.f^utc函数

二、阅读下列程序,写出程序运行结果(本题有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、【程序说明】本程序功能是输入一行字符,分别统计出其中的英文字母、空格、数字和

其他字符的个数。

#⑴<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之间的所有质数(素数)。(设N〉l,其值由键盘输入)

#include<stdio.h>

#include<math.h>

voidmain()

{

⑹:

piintfC'输入一个>1整数:");

do{

scanf("%d”,&N);

}while

printf(1至%d之间的所有质数是: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.【程序说明】本函数creathst用来建立一个带头结点的学生数据的单向链表,新的结点总

是插入在链表的末尾。链表的头指针作为函数值返回,链表最后一个结点的next域放入

NULL,作为链表结束标志。创建中如输入的学号为0,则创建结束(学号为0不存入链表)。

//defineNULL0

#defineLENsizeof(structstudent)

structstudent

{

longnum;/*学号*/

floatscore;/*成绩*/

structstudent*next;

);

(11)creatlistf)/*函数返回链表的起始地址*/

{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、打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等

于该数本身。例如,153是一水仙花数,因为1531+5433。(15分)

3、编程模拟选举过程。假定4位侯选人zhang、wang、li、zhao,代号分别为1、2,3、4。

选举人直接键入候选人代号,1〜4之外的整数视为弃权票,-1为终止标志。打印各位候

选人的得票以及当选者(得票数超过选票总数一半)的名单。(15分)

4、编程打印如下图形,中间一行英文字母由输入得到,图形应随输入的英文字母的变化而

变化。例如,输入英文字母A得到的图形为:(20分)

A

输入英文字母B得到的图形为:

A

BBB

A

输入英文字母D得到的图形为:

A

BBB

CCCCC

DDDDDDD

CCCCC

BBB

A

共6页悌6页

2007年江苏大学计算机科学与通信工程学院448程序设计[专业硕士]考研真题

机密★启用前

江苏大学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.以下函数声明中,存在着语法错误的是().

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、【程序说明】本程序的功能是在数组a中查找与x值相同的元素所在位置,数据从元素a[l]开始

存放,请填空完成程序。

#inc!ude<stdio.h>

#define⑴10

voidmain()

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

printf("请输入数组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.设计函数,将小写英文字符变为对应的大写字符。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论