|
C???????????1910??
试卷总分:100 得分:100
一、 单选题 (共 35 道试题,共 70 分)
1. 当c的值不为0时,在下列选项中能够将c的值赋给变量a、b的是( )。
A.c=b=a;
B.(a=c)︱︱(b=c);
C.(a=c)&&(b=c);
D.a=c=b;
2. 设有 int x=8; 则表达式 (++x*1/3) 的值是( )。
A.2
B.3
C.2.6
D.0
3. 运行程序:
#include
main()
{
int n='c';
switch(n++)
{ default: printf("error");break;
case 'a':case 'A':case 'b':case 'B':printf("good");break;
case 'c':case 'C':printf("pass");
case 'd':case 'D':printf("warn");
}
}则输出结果是( )。
A.good
B.pass
C.warn
D.passwarn
4.假定w、x、y、z、m均为整型变量,且w=1, x=2, y=3, z=4则执行语句:m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;后,m的值是( )。
A.4
B.3
C.2
D.1
5. 以下有关宏替换叙述中,错误的是( )。
A.宏替换不占用运行时间
B.宏无类型名
C.宏替换只是字符替换
D.宏名必须用大写字母表示
6. 设变量已正确定义并赋值,以下正确的表达式是( )。
A.x=y*5=x+z
B.int(15.8%5)
C.x=y+z+5,++y
D.x=25%5.0
7. 执行语句for(i=1;i++<4; ); 后变量i的值是( )。
A.3
B.4
C.5
D.不定
8. 执行以下语句后b的值为( )。
int a,b,c; a=b=c=1; ++a||++b&&++c;
A.1
B.2
C.错误
D.0
9. 以下定义语句中正确的是( )。
A.int a=b=0;
B.char A=65+1,b=′b′;
C.float a=1,*b=&a,*c=&b;
D.double a=0.0;b=1.1;
10. 在C语言中,二维数组元素在内存中的存放顺序是( )。
A.按行存放
B.按列存放
C.由用户自己定义
D.由编译器决定
11. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式( )。
A.从左起输出该字串,右补空格
B.按原字符长从左向右全部输出
C.右对齐输出该字串,左补空格
D.输出错误信息
12. 设有: int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a>b)&&(n=c>d)后,n的值是 ( )。
A.1
B.2
C.3
D.4
13. 有以下程序
main()
{ int i,s=1;
for (i=1;i<50;i++)
if(!(i%5)&&!(i%3)) s+=i;
printf("%d\n",s);
A.409
B.277
C.1
D.91
14. 以下选项中,与k=n++完全等价的表达式是( )。
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
15. 执行下面程序:
main()
{
int n;
scanf("%d",&n);
if(n++<5) printf("%d\n",n);
else printf("%d\n",n--);
}
若从键盘上输入4,则输出结果是( )。
A.6
B.4
C.5
D.3
16. 不合法的常量是( )。
A.'\2'
B.'""'(外面是单引号)
C." "
D."\483"
17. ( )是构成C语言程序的基本单位。
A.函数
B.过程
C.子程序
D.子例程
18. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是 ( )。
A.auto和register
B.extern和register
C.auto和static
D.static和register
19. 若二维数组a由m列,则在a[i][j]之前的元素个数为( )。
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
20. 以下选项中不属于字符常量的是( )。
A.′C′
B.′′C′′
C.′\xCC′
D.′\072′
21.下列程序的输出结果是( )。
#include "stdio.h"
main()
{ int i,a=0,b=0;
for(i=1;i<10;i++)
{ if(i%2==0)
{ a++;
continue;
A.a=4,b=4
B.a=4,b=5
C.a=5,b=4
D.a=5,b=5
22. 在while(x)语句中的x与下面条件表达式等价的是( )。
A.x==0
B.x==1
C.x!=1
D.x!=0
23. 以下叙述中错误的是( )。
A.改变函数形参的值,不会改变对应实参的值
B.函数可以返回地址值
C.可以给指针变量赋一个整数作为地址值
D.当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
24. 阅读下列程序,则运行结果为( )。
#include "stdio.h"
fun()
{ static int x=5;
x++;
return x;\
A.5
B.6
C.7
D.8
25. 若要求从键盘读入含有空格字符的字符串,应使用函数( )。
A.getc()
B.gets()
C.getchar()
D.scanf()
26. 对for(表达式1; ; 表达式3)可理解为( )。
A.for(表达式1; 0;表达式3)
B.for(表达式1: 1 ;表达式3)
C.for(表达式1; 表达式1; 表达式3)
D.for(表达式1; 表达式2; 表达式3)
27. C语言规定,在一个源程序中,main函数的位置( )。
A.必须在最开始
B.必须在系统调用的库函数的后面
C.可以任意
D.必须在最后
28. 假定x和y为 double型,则表达式x=2,y=x+3/2的值是( )。
A.3.500000
B.3
C.2.000000
D.3.000000
29. C语言结构体类型变量在程序运行期间( )。
A.TC环境在内存中仅仅开辟一个存放结构体变量地址的单元
B.所有的成员一直驻留在内存中
C.只有最开始的成员驻留在内存中
D.部分成员驻留在内存中
30. 以下不正确的定义语句是( )。
A.double x[5]={2.0,4.0,6.0,8.0,10.0;
B.int y[5]={0,1,3,5,7,9;
C.char c1[]={′1′,′2′,′3′,′4′,′5′;
D.char c2[]={′\x10′, ′xa′, ′\x8′;
31. 整型变量x和y的值相等且为非0值,则下面表达式中结果为零的是( )。
A.x︱︱y
B.x︱y
C.x&y
D.x^y
32. 已知double *p[6]; 它的含义是( )。
A.p是指向double类型变量的指针
B.p是double类型数组
C.p是指针数组
D.p是数组指针
33. 当顺利执行了文件关闭操作时,fclose函数的返回值是( )。
A.0
B.True
C.-1
D.1
34. 在下列结论中,只有一个是正确的,它是( )。
A.递归函数中的形式参数是自动变量
B.递归函数中的形式参数是外部变量
C.递归函数中的形式参数是静态变量
D.递归函数中的形式参数可以根据需要自己定义存储类型
35. feof函数用来判断文件是否结束,如果文件没有结束,则返回值是( )。
A.-1
B.0
C.1
D.EOF
二、 判断题 (共 15 道试题,共 30 分)
1. 设有程序段"char s[ ]="program";char *p;p=s;"表示数组的第一个元素s[0]和指针p相等。
A.错误
B.正确
2. 凡是函数中未指明存储类别的局部变量,其隐含的存储类别为自动auto。
A.错误
B.正确
3. 设int a=12;则执行完语句a+=a-=a*a后,a的值为144。
A.错误
B.正确
4. 函数的实参和与其对应的形参各占用独立的存储单元。
A.错误
B.正确
5. 0a12,-0x123,-0xa均是正确的八进制或十六进制数。
A.错误
B.正确
6. C语言程序中,一个文件中的函数可以引用存储在另一个文件中的函数和变量。
A.错误
B.正确
7. 在"文件包含"预处理语句的使用形式中,#include后面的文件名用""表示直接按系统设定的标准方式搜索目录。
A.错误
B.正确
8. (a=3)>(b=5) 是合法的关系表达式。
A.错误
B.正确
9. 一个C语言程序是由一个主函数和若干个子程序组成的。
A.错误
B.正确
10. C语言中规定,if语句的嵌套结构中,else总是和最近的if配对。
A.错误
B.正确
11. %x是格式符的一种,它可以适用于任何一种类型的数据。
A.错误
B.正确
12. 空语句是合法的C语句。
A.错误
B.正确
13. 数组的下标可以float数据类型。
A.错误
B.正确
14. 一个可执行的C语言程序总是从main()函数的入口地址处开始执行。
A.错误
B.正确
15. 宏替换不占编译时间,只占运行时间。
A.错误
B.正确
|
|