
姓名
:
报
考
专
业
:
准
考证号
码:
密
封
线
内
不
要
写
题
2016
年攻读硕士学位研究生入学考试试题 科目名称:C 语言程序设计(□A 卷■B 卷)科目代码:855 考试时间:3小时 满分 150 分 可使用的常用工具:√无 □计算器 □直尺 □圆规(请在使用工具前打√) 注意:所有答题内容必须写在答题纸上,写在试题或草稿纸上的一律无效;考完后试题随答题纸交回。 一、选择题(共10小题,每小题2分,共20分) 1. 以下定义语句中正确的是( )。 A)int a=b=0; B)char a=65+1,b='b'; C)float a=1,*b=&a,*c=&b; D)double a=0;b=1.1; 2. 以下选项中可作为C 语言合法常量的是( )。 A)-80 B)-080 C)-8e1.0 D)-80.0e 3. if 语句中用作判断的表达式( )。 A)必是逻辑值 B)必是整数 C)必是正数 D)可是任意合法数值 4. 数组名作为函数参数传递给函数时,数组名被处理成该数组的( )。 A)长度 B)元素个数 C)各元素的值 D)首地址 5. 设有double x[5],*p=x;则scanf 能正确读数据给x[0]的格式是( )。 A)("%f
1.void main()
{ int x=-9,y=5,z=8;
printf("%d
}
2.void main()
{ char b='a',c='A';
int i;
for(i=0;i<6;i++)
{ if(i%2) putchar(i+b);
else putchar(i+c);
}
}
3. int fun(int x,int y)
{ if(!x) return -1;
else if(y==1) return x%10;
else return fun(x/10,y-1);
}
void main()
{ printf("%d%d
4. void main( )
{ int a[3][3]={1,3,5,2,4,6,7,8,9},(*p)[3]=a,i,j,s;
for(i=0;i<3;i++)
for(j=0;j{ s=*(*(p+i)+j);
*(*(p+i)+j)=*(*(p+j)+i);
*(*(p+j)+i)=s;
}
for(i=0;i<3;i++)
{ for(j=0;j<3;j++) printf("%3d
printf("\\n");
}
}
三、程序填空(共20个空,每空3分,共60分)
1. 输入一整数,计算其位数k,然后将其各位数字按逆序转换为字符串输出。例
如,输入14251,则输出“15241”;输入-6319870,则输出“-07136”。void main()
{ long num,t,i=0,k;
char *pstr;
scanf("%ld
t=num;
k= ➀ ;
while( ➁ ) { t=t/10; k++; }pstr=(char *)malloc((k+2)*sizeof(char));
if(num<0) { pstr[0]='-'; i=1; ➂ ; } for( ;k>0;k--){ pstr[i++]= ➃ ; num=num/10; }
➄ ;
printf("%s\\n
free(pstr);
}
2. 按折半法在元素按升序排列的数组a中查找给定值为k的元素。
int search(int a[],int size,int k)
{ int L=0,R=size-1,m;
while( ➀ )
{ m= ➁ ;
