精华10
威望771
K币158 元
注册时间2004-5-8
在线时间62 小时
最后登录2013-12-7
中级战友
 
- 精华
- 10
- 威望
- 771
- K币
- 158 元
- 注册时间
- 2004-5-8
|
中央财经大学
一九九八年硕士学位研究生入学考试题
考试科目:C语言程序设计
招生专业:信息经济
注意:本试题所有的答案均按试题顺序号写在答题纸上,不必抄题;写在试题纸上不得分。
一、判别题。
下列关于C语言的叙述,若正确请在答题纸上相应题号标以[Y],若错误则标以[N](每题2分,共20分)
1.字符数据可以用字符形式输出,不可以用整数形式输出。
2.C语言能通过所赋值的个数来定义一个数组的长度。
3.C语言规定实参的值可以传给形参,但形参的值不能传给实参。
4.局部变量与全局变量同名时,则在局部变量作用范围内,全局变量被屏蔽,不起作用。
5.自动变量是在函数第一次调用时赋值,以后调用仍保持初值。
6.函数的定义不可以嵌套,但函数的调用可以嵌套。
7.调用函数时,实参和形参可以共用存储单元。
8.结构体内的成员既可以是简单类型,也可以是各种类型的指针、数组、结构体。
9.C语言生成的数据文件是流式文件,对它只可以进行顺序存取。
二、选择题
下列每题选择一个合适的答案(每题4分,共24分)
1.有以下说明语句
char a='\097';
下列叙述正确的是:
A. 使s的值包含1个字符 B. 说明不合法,s的值不确定
C. 使s的值包含4个字符 D. 是s的值包含3个字符
2.若m、n均为int型变量,执行以下语句序列之后
m=017;
a=111;
printf("%d\n",++m);
printf("%x\n",n++);
输出结果为:
A. 15 B. 16 C. 15 D. 16
6f 70 71 6f
3.在C语言的if语句中,用作判断的表达式为:
A. 关系表达式 B. 逻辑表达式
C. 算术表达式 D. 任意表达式
4. 有以下说明语句,且0<=i<10
int a[]= {1,2.3,4.5.6.7.8.9.0},*p,i;
p=a;
则对数组元素的错误引用是:
A. *(a+i) B. a[p-a]
C. p+i D. *(&a)
5. 对于基类型相同的指针变量,不能进行运算的是:
A. + B. -
C. = D. ========
6. 有以下说明语句
int (*prt)[3];
关于标识符prt:
A. 说明不合法
B. 是一个指针数组名,每个元素是一个指向整数变量的指针
C. 是一指针,它指向一个具有三个元素的一维数组
D. 是一个指向整形变量的指针
三、读程序。给出程序执行结果(每题6分,共36分)
1.
#include <stdio.h>
main()
{
int a[]={1,2,3,4,5,6},*p;
p=a; *(p+3)+=2;
printf("%d, %d\n",*p,*(p+3));
2
main()
{
char a=010,b=10;
printf("%d\n",a^b>>2);
}
3.
#include <stdio.h>
#define FD(y) 2.84+y
#define PR(a) printf("%d",(int)(a))
#define PRINT1(a) PR(a);putchar("\n")
main()
{
int x=2;
PRINT1(FD(5)*x);
}
4.
main()
{
int t;
for(i=0;i<5;i++)
printf("%d\n",f(i));
}
f(i)
int 1;
{
static int k=1;
for(;i>0;i--)
k++;
return(k);
}
5.
#include <stdio.h>
struct {
int x;
char *y;
} p,A[]={
1,"for",
2,"while",
3,"do____while",
4,"swich"
};
main()
{
int i;
printf("%d",++p->x);
printf("%d",++(p->x));
printf("%d",(p++)->x);
printf("%d",p++->x);
printf("%c",*p->y);
printf("%c",*p->y++);
printf("%c",(*p->y)++);
printf("%c",*p++->y);
for(i=0;i<4;i++)
printf("\n%d, %s",Ax,A.y);
}
6.
#include <stdio.h>
struct s1{
char *s;
struct s1 *ptr;
};
struct s1 a[]={
{"abcd",a+1},
{"eigh",a+2},
{"ijkl",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);
}
四、写程序
编写把一维数组元素中的值按逆序重新放置的程序(8分)
五、填空题
本程序对有序表采用顺序查找和插值查找相结合的算法,查找成功时,返回元素在表中的
位置,否则返回-1,填充程序中编号为[ (1) ],[ (2) ]……中的空白。(12分)
#define m 1000
typedef struct {
int key;
float info;
}elememt;
typedef elememt sqlist[m];
int search(sqlist r, int n, int k)
{
int i,j;
if (n>0)
{
j=(k-r[0].key)/(r[n-1].key-r[0].key);
j=j+1;
if(k<r[j].key)
while ((j>0)&&(k<r[j].key))
[ (1) ];
else
while ((j<n-1)&&(k>r[j].key))
[ (2) ];
}
else
[ (3) ];
if ( [ (4) ] )
return(j);
else
return(-1);
} |
评分
-
查看全部评分
|