一、单选题(共 30 道试题,共 60 分。)V
1. 要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()。
A.
fopen("A.\user\abc.txt","r")
B.
fopen("A.\\user\\abc.txt","r+")
C.
fopen("A.\user\abc.txt","rb")
D.
fopen("A.\\user\\abc.txt","w")
满分:2 分
2. 若使用一维数组名作函数实参,则以下正确的说法是()。
A. 必须在主调函数中说明此数组的大小
B. 实参数组类型与形参数组类型可以不匹配
C. 在被调用函数中,不需要考虑形参数组的大小
D. 实参数组名与形参数组名必须一致
满分:2 分
3. fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。
A. 字符串读入后不会自动加入'\0'
B. fp是file类型的指针
C. fgets函数将从文件中最多读入n-1个字符
D. fgets函数将从文件中最多读入n个字符
满分:2 分
4. 设C语言中,int类型数据占2个字节,则short类型数据占()。
A. 1个字节
B. 2个字节
C. 4个字节
D. 8个字节
满分:2 分
5. 若有int i=3,*p;p=&i;下列语句中输出结果为3的是()。
A. printf("%d",&p);
B. printf("%d",*i);
C. printf("%d",*p);
D. printf("%d",p);
满分:2 分
6. 下列标识符中,不合法的C语言用户自定义标识符是()。
A. printf
B. enum
C. _
D. sin
满分:2 分
7. 以下只有在使用时才为该类型变量分配内存的存储类说明是()。
A. auto和static
B. auto和register
C. register和static
D. extern和register
满分:2 分
8. 若k为int型变量,则以下程序段的执行结果是()。k=-8567;printf("|%06D|\n",k);
A. 格式描述符不合法,输出无定值
B. 输出为|%06D|
C. 输出为|0-8567|
D. 输出为|-8567|
满分:2 分
9. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是()。
A. 0
B. 语法错
C. 1
D. "假"
满分:2 分
10. C语言中,要求运算数必须是整型的运算符是()。
A. ^
B. %
C. !
D. >
满分:2 分
11. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。
A. int
B. float
C. double
D. 不确定
满分:2 分
12. 以下叙述中不正确的是()。
A. 一个好的程序应该有详尽的注释
B. 在C程序中,赋值运算符的优先级最低
C. 在C程序中,j++;是一条赋值语句
D. C程序中的#include和#define均不是C语句
满分:2 分
13. 以下运算符中,优先级最高的运算符是()。
A. =
B. !=
C. *(乘号)
D. ()
满分:2 分
14. C语言中的文件类型只有()。
A. 索引文件和文本文件两种
B. ASCII文件和二进制文件两种
C. 文本文件一种
D. 二进制文件一种
满分:2 分
15. 下列程序段的输出结果为()。Float k=0.8567;printf("%06.1d%%",k*100);
A. 0085.6%%
B. 0085.7%%
C. 0085.6%
D. .857
满分:2 分
16. 以下对C语言函数的描述中,正确的是()。
A. C程序必须由一个或一个以上的函数组成
B. C函数既可以嵌套定义又可以递归调用
C. 函数必须有返回值,否则不能使用函数
D. C程序中有调用关系的所有函数必须放在同一个程序文件中
满分:2 分
17. 若有下列定义和语句,则对a数组元素的非法引用是()。Int a[2][3],(*pt)[3];pt=a;
A. pt[0][0]
B. *(pt+1)[2]
C. *(pt[1]+2)
D. *(a[0]+2
满分:2 分
18. static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'};说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是()。
A. a[1]
B. a[-1]
C. a[0]
D. a[10]
满分:2 分
19. 以下标识符中,不能作为合法的C用户定义标识符的是()。
A. putchar
B. _double
C. _123
D. INT
满分:2 分
20. 以下选项中,与k=n++完全等价的表达式是()。
A. k=n,n=n+1
B. n=n+1,k=n
C. k=++n
D. k+=n+1
满分:2 分
21. 下列程序的输出结果是()。main(){int x=1,y=0,a=0,b=0;switch(x){case1.switch(y){case0.a++;break;case1.b++;break;}case2.a++;b++;break;case3.a++;b++;break;}printf("a=%d,b=%d\n",a,b);}
A. a=1,b=0
B. a=2,b=1
C. a=1,b=1
D. a=2,b=2
满分:2 分
22. 对以下说明语句int a[10]={6,7,8,9,10};的正确理解是()。
A. 将5个初值依次赋给a[1]至a[5]
B. 将5个初值依次赋给a[0]至a[4]
C. 将5个初值依次赋给a[6]至a[10]
D. 因为数组长度与初值的个数不相同,所以此语句不正确
满分:2 分
23. 函数rewind的作用是()。
A. 使位置指针重新返回文件的开头
B. 将位置指针指向文件中所要求的特定位置
C. 使位置指针指向文件的末尾
D. 使位置指针自动移至下一个字符位置
满分:2 分
24. 若用数组名作为函数的实参,传递给形参的是()。
A. 数组的首地址
B. 数组第一个元素的值
C. 数组中全部元素的值
D. 数组元素的个数
满分:2 分
25. 下列程序的输出结果为()。main(){int m=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf("%f\n",x);}
A. 27.000000