试卷
- 格式:doc
- 大小:31.71 KB
- 文档页数:8
第1页 共8页 高级语言程序设计(一)
(试卷编号:8250,考试时间120分钟,满分120分)
学院:________系:________班级:________姓名:________学号:________考号:________
一、填空 (共30题,合计30分)
1. 按内存排列顺序, 数组char a[2]中的所有元素是a[1]和________________。
2. 求字符串长度的库函数是________________,只写函数名即可。
3. 执行下列语句后,b 的十进制值是________________.int x=240,y=15,b;char
z='A';b=(( x && y ) && ( z < 'a' ));
4. int x=2;z=x++-1; 则x的值为________________。
5. 将数组a的首地址赋给指针变量p的语句是________________。
6. C语言中,数组名是一个不可变的________________量,不能对它进行加减和赋值运算。
7. 函数调用语句func((e1,e2),(e3,e4,e5))中含有________________个实参。
8. 下列语句输出的结果是________________,unsigned int
b=65535;printf("%d",b);
9. 以下do-while语句中循环体的执行次数是________________. a=10;
b=0; do { b+=2; a-=2+b; } while (a>=0);
10. 如果函数不要求带回值,可用________________来定义函数返回值为空。
11. 在C语言中,文件的存取是以________________为单位的,这种文件被称为________________文件。
12. 结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体________________,再说明结构体变量。
13. int a=1,b=2,c=3; 执行语句a=b=c;后a的值是________________。
14. 当a=1,b=2,c=3时,执行以下程序段后a=________________.if (a>c) b=a;
a=c; c=b;
15. 若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1
3该数组的元素中,数值最大的元素的下标值是________________。
16. 将函数funl 的入口地址赋给指针变量p的语句是________________。
17. 定义int a[2][3];表示数组a中的元素个数是________________个。
18. 设c语言中,int类型数据占2个字节,则long类型数据占________________个第2页 共8页 字节,short类型数据占________________个字节。
19. 预处理命令行都必须以________________号开始。
20. 若有以下定义和语句: int a[5]={1,3,5,7,9},*p;p=&a[2]; 则++(*p)的值是________________。
21. 若所用变量均已正确定义,则执行下面程序段后的 值是________________.for(i=0 ; i<2 ; i++ ) printf("YES"); printf("\n");
22. 静态变量和外部变量的初始化是在________________阶段完成的,而自动变量的赋值是在________________时进行的。
23. 设char a,b;若想通过a&& b运算保留a的第1位和第6位的值,则b的二进制数是________________。
24. C语言源程序的基本单位是________________。
25. 调用 fopen 函数打开一文本文件,在"使用方式"这一项中,为输出而打开需填入________________。
26. 一个C源程序中至少应包括一个________________函数。
27. 在c程序中,只能给指针赋NULL值和________________值。
28. 执行下列语句后,*(p+1)的值是________________.char s[3]="ab",*p;p=s;
29. feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为________________,否则为________________。
30. 在C语言中,最大整型数是________________。
二、判断 (共15题,合计30分)
下列描述正确打(√),错误打(×)。
1. 在Turbo C中,下面的定义和语句是合法的:file *fp;fp=fopen("a.txt","r");( )
2. 若i =3,则printf("%d",-i++);输出的值为 -4。( )
3. int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。( )
4. 若有说明int c;则while(c=getchar());是正确的C语句。( )
5. a=(b=4)+(c=6) 是一个合法的赋值表达式。( )
6. 如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10};( )
7. 关系运算符<= 与 == 的优先级相同。( )
8. 若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。( ) 第3页 共8页 9. 函数strlen("ASDFG\n")的值是7。( )
10. 共同体变量所占的内存长度等于最长的成员的长度。( )
11. 结构体类型只有一种。( )
12. int i,*p=&i;是正确的C说明。( )
13. C语言中只能逐个引用数组元素而不能一次引用整个数组。( )
14. char c[]="Very Good"; 是一个合法的为字符串数组赋值的语句。( )
15. 用fopen("file","r+");打开的文件"file"可以进行修改。( )
三、单项选择 (共40题,合计40分)
下列选项中,只有一个是正确的。
1. 若有下列定义,则对a数组元素地址的正确引用是()。 int a[5],*p=a;
A. &a[5] B. p+2
C. a++ D. &a
2. fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是()。
A. 只写 B. 追加
C. 读或读写 D. 答案B和C都正确
3. C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为()。
A. void B. double
C. int D. char
4. fseek函数的正确调用形式是()。
A. fseek(文件类型指针,起始点,位移量)
B. fseek(fp,位移量,起始点)
C. fseek(位移量,起始点,fp)
D. fseek(起始点,位移量,文件类型指针)
5. 在C语言的函数中,下列正确的说法是()。
A. 必须有形参 B. 形参必须是变量名
C. 可以有也可以没有形参 D. 数组名不能作形参
6. 结构化程序设计所规定的三种基本控制结构是()。
A. 输入、处理、输出 B. 树形、网形、环形
C. 顺序、选择、循环 D. 主程序、子程序、函数
7. 下列程序的输出结果为()。main( ){int m=7,n=4;float
a=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf("%f\n",x);}
A. 27.000000 B. 27.500000
C. 28.000000 D. 28.500000
8. 以下能对二维数组a进行正确初始化的语句是()。
A. int a[2][]={{1,0,1},{5,2,3}};
B. int a[][3]={{1,2,3},{4,5,6}}; 第4页 共8页 C. int a[2][4]={{1,2,3},{4,5},{6}};
D. int a[][3]={{1,0,1}{},{1,1}};
9. 若有以下定义:char s='\092'; 则该语句()。
A. 使s的值包含1个字符 B. 定义不合法,s的值不确定
C. 使s的值包含4个字符 D. 使s的值包含3个字符
10. 在下列程序段中,枚举变量c1,c2的值依次是()。 enum color
{red,yellow,blue=4,green,white} c1,c2;c1=yellow;c2=white;
printf("%d,%d\n",c1,c2);
A. 1,6 B. 2,5
C. 1,4 D. 2,6
11. 位字段数据的单位是()位。
A. 十六进制 B. 八进制
C. 二进制 D. 十进制
12. int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为()。
A. 1 B. 2
C. 3 D. 不一定
13. 以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));
A. 2 B. 3
C. 5 D. 语法错误
14. 表达式18/4*sqrt(4.0)/8值的数据类型为()。
A. int B. float
C. double D. 不确定
15. 对 for(表达式1; ;表达式3) 可理解为()。
A. for(表达式1;0;表达式3) B. for(表达式1;1;表达式3)
C. for(表达式1;表达式1;表达式3) D. for(表达式1;表达式3;表达式3)
16. 若有char a[80],*s=a;不正确的输入语句是()。
A. scanf("%s",s); B. gets(s);
C. fscanf(stdin,"%c",s); D. fgets(s,80,stdin);
17. 以下正确的说法是()。
A. 用户若需调用标准库函数,调用前必须重新定义
B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C. 系统根本不允许用户重新定义标准库函数
D. 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
18. 全局变量的定义不可能在()。
A. 函数内部 B. 函数外面
C. 文件外面 D. 最后一行
19. 以下叙述中不正确的是()。
A. 预处理命令行都必须以#号开始
B. 在程序中凡是以#号开始的语句行都是预处理命令行