一、单选题(共 30 道试题,共 60 分。)V
1. 经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是()。
A. p=p+2;
B. p=a[5];
C. p=a[2]+2;
D. p=&(j+2);
满分:2 分
2. 若有以下的定:int t[3][2];能正确表示t数组元素地址的表达式是()。
A. &t[3][2]
B. t[3]
C. &t[1]
D. t[2]
满分:2 分
3. 函数rewind的作用是()。
A. 使位置指针重新返回文件的开头
B. 将位置指针指向文件中所要求的特定位置
C. 使位置指针指向文件的末尾
D. 使位置指针自动移至下一个字符位置
满分:2 分
4. 若用数组名作为函数的实参,传递给形参的是()。
A. 数组的首地址
B. 数组第一个元素的值
C. 数组中全部元素的值
D. 数组元素的个数
满分:2 分
5. double x;scanf("%lf",&x);不可以赋值给x变量的常量是()。
A. 123
B. 100000
C. A'
D. "abc"
满分:2 分
6. 逻辑运算符两侧运算对象的数据类型()。
A. 只能是0或1
B. 只能是0或非0正数
C. 只能是整型或字符型数据
D. 可以是任何类型的数据
满分:2 分
7. 设int x=1,y=1;表达式(!x||y--)的值是()。
A. 0
B. 1
C. 2
D. -1
满分:2 分
8. 以下只有在使用时才为该类型变量分配内存的存储类说明是()。
A. auto和static
B. auto和register
C. register和static
D. extern和register
满分:2 分
9. 对以下说明语句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 分
10. 在位运算中,操作数每右移一位,其结果相当于()。
A. 操作数乘以2
B. 操作数除以2
C. 操作数乘以16
D. 操作数除以16
满分:2 分
11. 在C语言中,形参的缺省存储类是()。
A. auto
B. register
C. static
D. extern
满分:2 分
12. 用户定义的函数不可以调用的函数是()。
A. 非整型返回值的
B. 本文件外的
C. main函数
D. 本函数下面定义的
满分:2 分
13. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是()。
A. 0
B. 语法错
C. 1
D. "假"
满分:2 分
14. 若有int *p=(int *)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句为()。
A. scanf("%d",p);
B. scanf("%d",&p);
C. scanf("%d",*p);
D. scanf("%d",**p);
满分:2 分
15. 若有下列定义和语句,则对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 分
16. 下列程序段的输出结果为()。Float k=0.8567;printf("%06.1d%%",k*100);
A. 0085.6%%
B. 0085.7%%
C. 0085.6%
D. .857
满分:2 分
17. 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. 不一定
满分:2 分
18. 若使用一维数组名作函数实参,则以下正确的说法是()。
A. 必须在主调函数中说明此数组的大小
B. 实参数组类型与形参数组类型可以不匹配
C. 在被调用函数中,不需要考虑形参数组的大小
D. 实参数组名与形参数组名必须一致
满分:2 分
19. 若有说明int a[3][4];则a数组元素的非法引用是()。
A. a[0][2*1]
B. a[1][3]
C. a[4-2][0]
D. a[0][4]
满分:2 分
20. 以下语句中,不能实现回车换行的是()。
A. printf("\n");
B. putchar("\n");
C. fprintf(stdout,"\n");
D. fwrite("\n",1,1,stdout);
满分:2 分
21. 若有int i=3,*p;p=&i;下列语句中输出结果为3的是()。
A. printf("%d",&p);
B. printf("%d",*i);
C. printf("%d",*p);
D. printf("%d",p);
满分:2 分
22. 以下选项中,与k=n++完全等价的表达式是()。
A. k=n,n=n+1
B. n=n+1,k=n
C. k=++n
D. k+=n+1
满分:2 分
23. 结构体类型的定义允许嵌套是指()。
A. 成员是已经或正在定义的结构体型
B. 成员可以重名
C. 结构体型可以派生
D. 定义多个结构体型
满分:2 分
24. 已知函数的调用形式fread(buffer,size,count,fp);其中buffer代表的是()。
A. 一个整数,代表要读入的数据项总数
B. 一个文件指针,指向要读的文件
C. 一个指针,指向要读入数据的存放地址
D. 一个存储区,存放要读的数据项
满分:2 分
25. 设有说明.char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为()。
A. float
B. char
C. int
D. double
满分:2 分
26. 下列程序的输出结果为()。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
B. 27.500000
C. 28.000000
D. 28.500000
满分:2 分
27. 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 分
28. 若k为int型变量,则以下程序段的执行结果是()。k=-8567;printf("|%06D|\n",k);
A. 格式描述符不合法,输出无定值
B. 输出为|%06D|
C. 输出为|0-8567|
D. 输出为|-8567|
满分:2 分
29. int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是()。
A. 2
B. 3
C. 4
D. 不一定
满分:2 分
30. 可将C源程序存在磁盘上,还可将数据按数据类型分别以()的形式存在磁盘上。
A. 内存
B. 缓冲区
C. 文件
D. 寄存器
满分:2 分