翰子昂阶段性测试_S1阶段
——JAVA 方向理论测试试题A卷
姓名: 准考证号: 身份证号:
本理论考试试卷,共40题,每小题2.5分,共100分。请考生将姓名、考试阶段、试卷类型、准考证号涂在答题卡上。并将每道题的正确选项涂写在答题卡相应位置上,答在试卷上不得分,错选、多选、少选或未选均不得分。考试时间为60分钟,考试完毕后请将本试卷与答题卡一同上交,不交回试卷者成绩无效。
1. 下列合法的标识符的是( D )(选择一项)
a) 3_third
b) case
c) vi-vo
d) sum
2. 在C语言中,下列( A )格式用于在printf()语句中以16进制的格式显示变量的值。(选择一项)
a) %x
b) %o
c) %c
d) %d
3. 以下关于C语言函数的说明中,不正确的是:( C)。(选择一项)
a) 一个C程序有且只有一个main函数
b) 用户自定义函数不需要包含头文件
c) 在C语言中比较两个字符串是否相等,既可以用关系运算符“= =”,又可以用函数
strcmp()
d) 使用数学运算的函数,需要包含头文件<math.h>
4. main()
{int x=1,a=0,b=0;
switch(x)
{ case 0:b++;
case 1:a++;
case 2:a++;b++ ; }
printf("a=%d,b=%d\n",a,b) ; }
以上C程序的输出结果是:( B )。(选择一项)
a) a=1, b=1 b) a=2, b=1
c) a=1,b=0 d) a=2,b=2
5. 研究下面C代码段
int cnt;
while (cnt<1)
{
cnt++;
}
在该程序段执行后计数变量cnt的值应该是:(D )。(选择一项)
a) 0
b) 陷入无限循环
c) 1
d) 以上都不是
6. 设x、y均为整型变量,且x=10, y=3,则以下语句的输出结果是:( D )。(选择一项)
printf(“%d,%d\n”,x--,--y);
a) 10, 3
b) 9, 3
c) 9, 2
d) 10, 2
7. 在C语言中,以下逻辑表达式的值为0的是:( CD )。(选择两项)
a) !(9= =0) || (9= =0) && (3>1)
b) 9%5= =4
c) (9= =0)&&(9.0/5 = =1)
d) !(2>2)&&(2>’1’)
8. main()
{
char ch;
ch=’a’+3;
putchar(ch);
}
上述C语言代码的输出是:( D )。(选择一项)
a) a
b) 100
c) c
d) d
9. int a=4,b=20;
if (a<b && ++a>b)
printf(“b=%d”,b);
else
printf(“a=%d”,a);
上面的C程序段的输出结果是( B )。(选择一项)
a) b=20 b) a=5 c) a=4 d) b=21
10. 在C语言中,已知a为int 型,b为double型,c为float型,d为char型,则表达式a+b*c-d/a的结果类型为( B )。(选择一项)
a) int b) double c) float d) char
11. UNIQUE列的特点( B )。(选择一项)
a) 非空 b) 唯一
c) 非空唯一 d) 以上描述都不对
12. 在SQL Server的视图里有:
SELECT DISTINCT productName, price FROM
product WHERE (price>(SELECT AVG(price) FROM product))
ORDER BY price DESC;
下面说法错误的是( B )。(选择一项)
a) “SELECT AVG(price)FROM product ”是子查询
b) “ORDER BY price DESC”是指按price从低到高顺序排列
c) 查询结果显示的是大于平均价格的产品记录
d) 此查询显示的字段只有“productName”和“price”
13. 在SQL Server中,分组后筛选数据使用(A )。(选择一项)
a) having b) where
c) when d) if
14. 以下的SQL语句:
SELECT StudentID As 学员编号,(Score*0.9+5) As 综合成绩
FROM Score
WHERE Score>=60
ORDER BY (Score*0.9+5)
以下说法错误的是( D )。(选择一项)
a) 查询输出两列,列名分别为“学员编号”和“综合成绩”
b) 只有分数值大于60分的成绩才计算综合成绩
c) 查询输出的分数将从低到高排列
d) 以上SQL语句语法错误,不能够在排序列中使用表达式
15. 在SQL Server的示例数据库NorthWind中,你想获得一张包含lastname和OrderDate的列表,该列表中的雇员至少要处理过一张订单。下面T-SQL都可以实现该需求,除了( A )(选择一项)
a) SELECT Employees.Lastname,OrderDate
FROM Employees LEFT JOIN Orders
ON Employees.EmployeeID=Orders.EmployeeID
b) SELECT Employees.Lastname,OrderDate
FROM Employees JOIN Orders
ON Employees.EmployeeID=Orders.EmployeeID
c) SELECT Employees.Lastname,OrderDate
FROM Employees INNER JOIN Orders
ON Employees.EmployeeID=Orders.EmployeeID
d) SELECT Employees.Lastname,OrderDate
FROM Employees , Orders
WHERE Employees.EmployeeID=Orders.EmployeeID
16. Employee表的EmpCode列是一个以100为开始值,以1为步长值,则创建表的过程中正确定义该列的语句是( B )。(选择一项)
a) EmpCode int IDENTITY(100,-1)
b) EmpCode int IDENTITY(100,1)
c) EmpCode int IDENTITY(-1,100)
d) EmpCode int IDENTITY(1,100)
17. 设 int x=1,float y=2,则表达式 x / y的值是:( D )。(选择一项)
a) 0 b) 1
c) 2 d) 以上都不是
18. 已定义a为int类型的变量。以下选项中,合法的赋值语句是( B )。(选择一项)
a) a +1 = 2; b) int a = 8;
c) a = 8.8f; d) a += a * 6;
19. 以下for循环的执行次数是 for(int x=0;(x==0)&&(x>4);x++);( B )。(选择一项)
a) 无限次 b) 一次也不执行
c) 执行4次 d) 执行3次
20. 以下程序的执行结果是( C )。(选择一项)
main()
{
int i=0,a=0;
for( i=0;i<5;i++)
{
switch(i)
{
case 0:
case 1:
case 2: a+=3;
case 3: a+=2;
default: a+=5;
}
}
printf("%d\n",a);
}
a) 16
b) 38
c) 42
d) 32
21. 在C语言中,以下程序的输出结果,正确的是( B )(选择一项)
main()
{
for(int i=1;i<=5;i++)
{
if(i%2)printf("*");
else
continue;
printf("#");
}
printf("$\n");
}
a) *#$
b) *#*#*#$
c) *#*#*$
d) $
22. 分析以下程序,判断正确的是( B ) (选择一项)
main()
{
int x, y ;
scanf (“%d”,&x) ;
scanf (“%d”,&y) ;
if (x>y) { x+=y; y++} ;
else y+=x ;
x++ ;
printf ( “%d,%d”, x, y) ;
}
a) 若输入数据1和4,则输出2和6
b) 若输入数据4和1,则输出6和2
c) 若输入数据4和4,则输出4和8
d) 有语法错误,不能通过编译
23. 有以下程序,运行后,如果从键盘上输入5,则输出结果是( B )。(选择一项)
#include <stdio.h>
main()
{
int x;
scanf(“%d”,&x);
if(x--<5)
printf(“%d”,x);
else
printf(“%d”,x++);
}
a) 3
b) 4
c) 5
d) 6
24. 上述C语言代码的输出( C )选择一项
#include <stdio.h>
main()
{
int i=0;
for ( ; i<5; )
printf(“%d”,i++);
}
a) 0 1 2 3 4 5
b) 0 2 4
c) 0 1 2 3 4
d) 语法错误
25. 研究下面的C程序段:循环体的总执行次数是( D )。(选择一项)
int i,j;
for (i=5;i;i--)
for(j=0;j<4;j++){…}
a) 9 b) 5
c) 4 d) 20
26. 下面程序的输出结果是( A )(选择一项)
#inlcude <stdio.h>
main()
{
int k;
for(k=1;k+1;k++) {
if(k>4){
printf("%d",k);
break;
}
printf("%d",k++);
}
}
a) 1,3,5 b) 0,3,5
c) 5,3,1 d) 3,5,7
27. 以下程序的输出结果是( C )(选择一项)
#include<stdio.h>
void fun(int x, int y, int z)
{z=x*x+y*y;}
main()
{
int a=31;
fun(5,2,a);
printf(“%d”,a);
}
a) 0
b) 29
c) 31
d) 不确定
28.以下C程序运行后会显示( B )(选择一项)
#include <stdio.h>
void change(int x)
{
x+=5;
}
main()
{
int x=5;
change(x);
printf(“%d”,x);
}
a) 0
b) 5
c) 10
d) %d
29. 运行下列C程序:输出结果是( A )(选择一项)
#include <stdio.h>
int func(int *a)
{
int b=2;
b+=*a;
return b;
}
main()
{
int a=2,res=2;
res=func(&a);
printf(“%d \n”,res);
}
a) 4 b) 6
c) 2 d) 8
30. 下面程序的输出为( D )(选择一项)
#include<stdio.h>
main()
{
int y=10;
whiel(y--);
printf(“y=%d\n”,y);
}
a) y=0; b) while结构无限循环;
c) y=1; d) y=-1;
31. 若变量都已正确说明,则以下程序段输出为( B )。(选择一项)
a=10;
b=50;
c=30;
if(a>b)a=b;
b=c;
c=a;
printf(“a=%d b=%d c=%d\n ”,a,b,c);
a) a=10 b=50 c=10 b) a=10 b=30 c=10
c) a=50 b=30 c=10 d) a=50 b=30 c=50
32. 已知字母a的ASCII码为十进制数97,下面程序的输出是( D )(选择一项)
main()
{char c1,c2;
c1=’a’+’6’-‘2’;
c2=’a’+’6’-‘3’;
printf(“%c,%d\n”,c2,c1);
}
a) 输出无定值 b) d,e
c) e,f d) d,101
33. C语言程序中出现条件分支语句if-else时,else与(C)组成配对关系。
a) 同一复合语句内部的if b) 在其之前任意的if
c) 在其之前未配对的最近的if d) 首行位置相同的if
34. 已知在ASCII代码中,字母A的序号为65,以下程序的输出结果是( D )(选择一项)
#include <stdio.h>
main()
{
char c1=’A’,c2=’Y’;
printf(“%d,%d\n”,c1,c2);
}
a) 因输出格式不合法,输出错误信息 b) 65,90
c) A, Y d) 65,89
35. 以下程序的输出结果是( C )(选择一项)
main()
{
int i, x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0; i<3;i++)
printf(“%d,”,x[i][2-i]);
}
a)1,5,9 b)1,4,7 c)3,5,7 d)3,6,9
36. 以下程序的输出结果是( A )(选择一项)
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf(“%d\n”,*(p+2));
}
a) 3 b)4 c)1 d)2
37. 以下程序的输出结果是( B )(选择一项)
main()
{
int x[3][3]={1,2,3,4,5,6,7,8,9},*p;
p=x[1];
p++;
printf(“%d”, *p);
}
a)2 b)5 c)7 d)不确定
38. 在C语言中,设有如下说明语句:
struct stu
{
int a;
float b;
}stu_type;
则以下说法不正确的是( C )(选择一项)
a) struct是结构体类型的关键字
b) struct stu是用户定义的结构体类型名
c) stu_type是用户定义的结构体类型名
d) a和b是结构体成员
39. #include<stdio.h>
struct abc{int a, b, c;};
main()
{
struct abc ss[2]={{1,2,3,},{4,5,6}};
printf(“%d\n”, ss[0].a+ss[1].b);
}
输出结果是( B )(选择一项)
a) 5 b) 6 c) 7 d) 8
40. 以下程序运行后的输出结果是( B )。(选择一项)
#include<stdio.h>
#define N 4
void fun(int a[][N],im b[])
{
int i;
for(i=0;i<N;i++)
b[i]=a[i][i]-a[i][N-1-i];
)
void main()
{
int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;
fun(x,y);
for(i=0;i<N;i++)
printf(”%d,”,y[i]);printf("\n");
}
a) -12,-3,0,0
b) -3,-1,1,3
c) 0,1,2,3
d) -3,-3,-3,-3