当前位置:文档之家› 河海大学2009年工程硕士学位入学计算机技术考试专业课试卷

河海大学2009年工程硕士学位入学计算机技术考试专业课试卷

int f1( )
{ static int i=0,f=1;
return f *= ++i;
}
int f2( )
{ int i=0,f=1;
return f *= ++i;
}
void main( )
{ printf("%d\n",f1( )+f1( ));
printf("%d\n",f2( )+f2( ));
B.先在源程序所在目录搜索,再按系统设定的标准方式搜索
C.仅仅搜索源程序所在的目录D.仅仅搜索当前目录
25.若程序中有宏定义行:#define N 100则以下叙述中正确的是(25)。
A.宏定义行中定义了标识符N的值为整数100
B.在编译程序对C源程序进行预处理时用100替换标识符N
C.对C源程序进行编译时用100替换标识符N
11.已知:int x; int y[10]; int *p;下列(11)是合法的。
A.p=&x; B.p=&(x+3); C.p=&5; D.p=&y;
12.以下叙述中错误的是(12)。
A.局部变量的定义可以在函数体和复合语句的内部
B.全局变量的定义可以在函数以外的任何部位
C.同一程序内局部变量和全局变量不允许同名
A.struct test x; B.struct x;
C.test x; D.struct TEST x;
17.若有声明“float f=123.45678;”,则执行语句“printf("%.3f",f );”后,输出结果是(17)。
A. 1.23e+02B.123.457 C. 123.456780 D. 1.234e+02
D.在运行时用100替换标识符N
二、读程序写运行结果(5分×5=25分)
1、#include<stdio.h>
int main()
{ int a, b, c, d;
a=20;
b=+c++;
printf ("b, c, d: %d, %d, %d", b, c, d);
return 0;
{ p=a;
printf ("%5d", p->x++);
printf("%5d\n", p->x);
printf("%5d", *p->y);
printf("%5d\n", *++p->y);
}
三、填空题(1分×11+2分×7=25分,其中(1)-(11)每题1分,(12)-(18)每题2分)
1.C语言源程序文件的扩展名是(1),经过编译后,生成文件的扩展名是(2),经过连接后,生成文件的扩展名是(3)。
#include<stdio.h>
viod f (int x[], int n)
{ int p0, p1, i, j, t, m;
i=j=x[0];
p0 = p1 = 0;
for (m=0; m<n; m++)
{ if(x[m]>i)
{i=x[m]; p0=m;}
else
if((16))
{j=x[m]; p1=m;}
}
t=x[p0];
(17);
x[n-1]= t;
t=x[p1];
x[p1]=(18);
x[0] = t;
}
void main()
{ int a[10], u;
for (u=0; u<10; u++) scanf("%d",&a[u]);
f (a, 10);
for (u=0; u<10; u++) printf("%d",a[u]);
}
4、#include<stdio.h>
#include<string.h>
char *fun (char *t)
{ char *p=t;
return (p+strlen(t)/2);
}
void main( )
{ char *str="abcdefgh";
str = fun (str);
puts(str);
}
5、#include<stdio.h>
struct s
{ int x,*y;
}*p;
int d[5]={10, 20, 30, 40, 50};
struct s a[5]={100, &d[0], 200, &d[1], 300, &d[2], 400, &d[3], 500, &d[4]};
void main( )
河海大学2009年工程硕士入学考试专业课试题
考试科目名称:高级语言程序设计
一、选择题(1分×25=25分)
1.以下说法中正确的是(1)。
A.C语言程序总是从第一个的函数开始执行
B.在C语言程序中,要调用的函数必须在main( )函数中定义
C.C语言程序总是从main( )函数开始执行
D.C语言程序中的main( )函数必须放在程序的开始部分
main()
{ …
int a[50], n;

fun(n, &a[9]);

}
A. void fun(int m, int x[])B. void fun(int s, int h[50])
C. void fun(int p, int *s)D. void fun(int n, int a)
7.设有数组定义:char array[]=”China”;则数组所占的空间是(7)。
A.4个字节B.5个字节C.6个字节D.7个字节
8.在下列C语言源程序的错误中,通常不能在编译时发现的是(8)。
A.括号不匹配B.非法标识符
C.数组元素下标值越界D.程序结构不完整
9.若有声明"long a, b;"且变量a和b都需要通过键盘输入获得初值,则下列语句中正确的是(9)。
A. scanf("%ld%ld, &a, &b"); B. scanf("%d%d", a, b);
5.本程序的工程是判断制定的正整数是否为素数,若是,则输出该素数。
#include<stdio.h>
int f (int a)
{ int tag, i;
i=2; tag=1;
while (i<a/2 &&(12))
{ if((13))
tag=0;
i++;
}
return tag;
}
void main()
}
2、#include<stdio.h>
void main()
{ int a, b;
for (a=1,b=1;a<=100;a++)
{ if(b>=20)
break;
if(b%3 == 1)
{ b+=3;
printf(“%d, ”, b);
continue;
}
}
}
3、#include<stdio.h>
C. scanf("%d%d", &a, &b); D. scanf("%ld%ld", &a, &b);
10.若有定义语句:int a[2][3], *p[3];则以下语句中正确的是(10)。
A.p = a; B. p[0] = a; C. p[0] = &a[1][2]; D. p[1] = &a;
A.函数调用可以作为独立的语句存在B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参
22.已知int x=1, y=2, z=3;则z+=x>y?++x:++y;的值是(22)。
A. 2 B.4C. 3 D. 6
23.若有以下说明和定义语句:
union uti {int n; double g; char ch[9];}
struct srt{float xy; union uti uv;} aa;
设在32位机器上,则变量aa所占内存的字节数是(23)。
A. 9 B.8 C. 13 D. 17
24.“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含的文件的方式为(24)。
A.直接按系统设定的标准方式搜索目录
2.C语言提供的三种逻辑运算符是(4)、(5)、(6);其中优先级最高的是(7)。
3.若自定义函数要求返回一个值,则应在该函数体中有一条(8)语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符(9)。
4.C语言函数中的形参和调用时的实参若都是数组名时,传递方式为(10),若都是变量时,传递方式为(11)。
printf("\n");
}
7
四、编程题(10+15=25分,第1题10分,第2题15分)
1.编写程序完成矩阵转置功能,即将矩阵的行和列对换:如将矩阵
15.若有下面的程序段,则下列叙述正确的是(15)。
char s[]="china"; char *p; p=s;
相关主题