精华10
威望771
K币158 元
注册时间2004-5-8
在线时间62 小时
最后登录2013-12-7
中级战友
 
- 精华
- 10
- 威望
- 771
- K币
- 158 元
- 注册时间
- 2004-5-8
|
楼主
发表于 2008-7-22 17:21
|
|阅读模式
中央财经大学
一九九九年硕士学位研究生入学考试试题
招生专业:产业经济学
考试科目:C语言程序设计
注意:本试题所有的答案均按试题顺序号写在答题纸上,不必抄题;写在
试题纸上不得分。
一、断别题
下列关于C语言的叙述,若正确请在答题纸上相应题号标以(Y),若错误则标以(N)(每
题2分,共14分)
1.在使用switch语句时,switch后面的表达式和case后面的常量表达式可以为任何类型
的数据,并且每一个case的常量表达式的值互不相同。
2.字符串常量作为实参时.传送的是该字符串中的内容而不是该字符串常量的首地址一
3.在函数内部说明的数组名,占用内存一连续的存储单元,能进行自增或自减等操作。
4.c语言中函数的形参也属于局部量,它的隐含存储类别为静态类别。
5.枚举值可以按定义时的序号进行关系比较,还可以按整型输出其序号值。
6.Typedef long int APPLE;的作用是定义了一个长整型变量。
7.c语言所生成的数据文件是流式文件,对这些文件既可以进行顺序存取,也可进行随机
存取。
二、选择题
下列每题选择一个或多个合适的答案(每题3分,共18分)
1.已知字母a的ASCII十进制代码为97,则执行以下语句后的输出为_______
char a='a';
a--;
printf("%/0d,%c/n",a+'2'-'0',a+'3'-'0');
a).b,c b). a--运算不合法,故有语法错 c). 98,c
d).格式描述和输出项不匹配,输出无定值.
2.在C语言的if语句中,用作判断的表达式为_______
a).关系表达式 b). 逻辑表达式 c).算术表达式
d).任意表达式
3.设j和x都是int类型,则以下for循环______
for(i=0,x=0;i<=9&&x!=876;i++) scanf("%0d",&x);
a).最多执行lo次 ,b).最多执行9次 c).是无限循环
d).循环体一次也不执行
4.若在C程序中有以下说明和语句(其中0<=i<4,0=j<3),则对二维数组a中元素中
正确的引用的是_________
main()
} int a[4][3]={0},(*ptr)[3],i,j;
prt=a;
.
.
.
}
a).a[j], b).*(*(a+i)+j), c).*(ptr+i)[j], d).ptr[j]
e).*(ptr+j, f).ptr+j
5.函数能被说明别的是:
a).extern b).auto c).register d).static
6.若有以下的说明.则表达式_____使指针p的值增1。
srtuct wc
{int a;
int *b;
} *p;
int x0[]={11,16},x1[]={31,36};
struct wc x[]={100,x0,300,x1};
p=x;
a).++p->a b).(++p)->a c).p->b++
d).(p++)->a
三、读程序。给出程序执行结果(每题6分,共30分)
1. #include <stdio.h>
main()
{int i=0,j=0,a=6;
if((++i>0)||(++j>0))a++;
printf("i=%d.j=%d,a=%d\n",i,j,a);
}
2. #include <stdio.h>
main()
{fun();fun();}
fun()
{static int a[3]=10,1,2};
int i;
for(i=0;i<3;i++) a+=a;
for(i=0;i<3;i++) printf("%d",a);
printf("\n");
}
3. char a=9, b=020;
printf("%o\n", ~a&b<<1);
4. #define PT 3.5
define S(x) PT*x*x
main( )
{int a=1,b=2;
printf("%4.1f\n", S(a+b);
}
5. #include <stdio.h>
struct s1{
char *s;
struct s1 *ptr;
};
struct s1 a[]={
{"efgh",a+1},
{"ijkl",a+2},
{"mnop",a}};
struct s1 *p=a;
void main( ) {
int i;
for(i=0;i<3;i++ )
printf({"%s %s %c %s\n",a.s,a.ptr->s,a.s++,
++p++->ptr->s+1);
}
四、写程序 (每题6分,共18分)
描述求解算法,在语句行可加注释:
1.假设隐含一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的
五年中每年底取出1000元,到第五年时刚好取完,请算出他存钱时应存如多少。
2.用一元人民币兑换成1分、2分、5分硬币,共有多少重不同的兑换方法。
3.如果一个整数恰好等于他的因子之和,则成该数为“完全数”。如6的因子是1, 2,
3, 而6=1+2+3, 则6是个“完全数”。试求出1000以内的全部“完全数”。
五、填空题(每题10分,共20分)
1. 以下程序找出数组中最大值和此元素的下标,数组元素的值由键盘输入。
#include <stdio.h>
main()
{ int a[10],*p,*s,i;
for (i=0;i<10;i++)
scanf("%d,[ (1) ]);
for (p=a,s=a;[ (2) ]<10;p++);
if (*p>*s) s=[ (3) ];
printf("max=%d,index=%d\n",[ (4) ],[ (5) ]);
}
2.用选择排序法将N个数从小到排序后输出。将数组中的数经过两两比较后,并不
马上交换数的位置,而是找到最小的数后,记下数的位置,待一趟比较完毕后,再将最小的
数一次交换到位。选择排序法程序实现如下:
#include <stdio.h>
#define N5
main()
{int i,j,t,p,a[N];
for (i=0;i<N;i++) {
printf("Enter No.%2d:",i+1);
scanf("%d",&a);
}
for (i=0;i<N-1;i++)
{
p=i;
for (j=i+1;j<N;j++)
if ( [ (1) ] ) p=j;
if (p!=i) {
t=a[p];[ (2) ];a=t;
}
}
for (i=0;i<N;i++)
printf("%d",a);
} |
评分
-
查看全部评分
|