浙江省2004年4月高等教育自学考试高级语言程序设计(一)试题
课程代码:00342
一、判断题(判断下列各题,正确的在题后括号内打“√”,错的打“×”。每小题1分,共10分)
1.C语言源程序是可以用来直接运行的程序。( )
2.C语言中以%x开头的数是十六进制整数。( )
3.C程序中的变量,必须先定义(声明),才能使用。( )
4.在C程序中,9ab是非法的用户标识符。( )
5.C语句必须用一个分号作为结束。( )
6.do_while语句构成的循环不能用break语句退出。( )
7.scanf函数是C语言的标准输入函数。(  来源:91 考试网; )
8.C程序的main函数不能有参数。( )
9.在函数内部定义的变量称为局部变量。( )
10.用# include包含的头文件的后缀必须是.h。( )
二、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共20分)
1.C语言程序的三种基本结构是( )结构、选择结构和循环结构。
A.顺序
B.递归
C.转移
D.嵌套
2.以下选项中正确的实型常量是( )。
A. 0
B. -10
C. 0.19
D. 1.9×102
3.在C语言程序中,用关键字( )定义长整型变量。
A. long
B. float
C. double
D. char
4.十进制数8的八进制数是( )。
A. 11
B. 010
C. 8
D. 08
5.( )不是合法的C语句。
A. {int j;j++;}
B. {int j;j++;;}
C. {int j;;j++;}
D. {float j=0;j++;}
6.若变量a,b已正确定义并赋值,符合C语言语法的表达式是( )。
A. a=b=a+1
B. a≤b
C. a≥b
D. a≠b
7.对以下的scanf语句,正确的输入方式是( )。
int k1,k2,k3,k4;
scanf(″%d%d%d%d″,&k1,&k2,&k3,&k4);
A. 1020 30,40
B. 10 20 30 40
C. 10,20 3040
D. 10 20 30,40
8.表达式!x等效于( )。
A. x==1
B. x==0
C. x!=1
D. x!=0
9.要定义字符型变量a并赋初值,( )是正确的。
A. char a=’3’;
B. char a=”3”;
C. char a=%;
D. char a=*;
10.以下函数调用语句中,含有的实参个数是( )。
calc(exp1,(exp3,exp4,exp5));
A. 1
B. 2
C. 3
D. 4
11.下列语句定义整型指针p1、p2,( )是正确的。
A.int p1,p2;
B. int *p1,*p2;
C. int *p1,p2;
D. int**p1,p2;
12.若变量已正确定义并且指针p已经指向变量x,则*&x相当于( )。
A. x
B. p
C. &x
D. &*p
13.数组定义为“int a[4];”,表达式( )是错误的。
A. *a
B. a[0]
C. a
D. a++
14.数组定义为int a[2][3]={1,2,3,4,5,6},数组元素( )的值为1。
A. a[1][2]
B. a[1][1]
C. a[2][3]
D. a[0][0]
15.表达式strlen(”hello”)的值是( )。
A. 4
B. 5
C. 6
D. 7
16.要调用字符串函数时,在# include命令行中应包含( )。
A.”stdio.h”
B.”string.h”
C.”math.h”
D.”ctype.h”
17.若变量已正确定义且k的值是4,计算表达式(j=k++)后,( )是正确的。
A. j=4,k=5
B. j=4,k=4
C. j=5,k=4
D. j=5,k=5
18.C语言中运算对象必须是整型的运算符是( )。
A. %
B. /
C. !
D. **
19.若有char fname[]=″infile.dat″;,则为读而打开文本文件infile.dat的正确写法是( )。
A. fopen(infile.dat,″r″)
B. fopen(″infile.dat″,″r″)
C. fopen(fname,″r″)
D. fopen(″fname″,″r″)
20.下列运算符中,优先级从高到低依次为( )。
A. &&,!,||
B. ||,&&,!
C. &&,||,!
D. !,&&,||
三、填空题(每小题2分,共20分)
1.表达式(4/5*(float)3+(float)3*4/5)的值为______。
2.下列程序段的输出结果是______。
# include
printf(″%d″,NULL);
3.表达式((4|1)&3)的值为______。
4.下列程序段的输出结果是______。
# define M(x,y) (x*y)
printf(″%d″,M(2,3+4));
5.下列程序段的输出结果是______。
char c=’a’;int k=4;
switch(c){
case ‘a’: k=1;
case ‘b’: k=2;
case ‘c’: k=3;
}
printf(″%d″,k);
6.下列程序段的输出结果是______。
int k=10;
if (k<0) printf(“%d”,k<0);
else printf(“%d”,k>=0);
7.下列程序段的输出结果是______。
int x=3;
if (x=5) x++;
printf(″%d\n″,x);
8.以下程序段的输出结果是______。
int k,sum=0;
for(k=5;k<10;k++)
sum+=k;
printf(”%d”,sum);
9.对于以下递归函数f,调用f(4)的返回值是______。
int f(int n)
{
if (n) return f(n-1)+n;
else return n;
}
10.下列程序段的输出结果是______。
static char s[]=″window″;
printf(″%s″,s+3);