考试辅导老师QQ:58383878
一、 单选题 (共 35 道试题,共 70 分) 1. 若int i, x; 则for(i=x=0; i<9&&x!=5; i++, x++)控制的循环体将执行( )次。 A.10 B.9 C.5 D.6
2. 设x、y、t均为int型变量,则执行语句:x=y=2;t=++x||++y;后,y的值为( )。 A.不确定 B.2 C.3 D.1
3. 数组定义char a[10]={'a','b','c';包括了( )。个元素。 A.3 B.9 C.4 D.10
4. 在C语言中,函数返回值的类型最终取决于( )。 A.函数定义时在函数首部所说明的函数类型 B.return语句中表达式值的类型 C.调用函数时主调函数所传递的实参类型 D.函数定义时形参的类型
5. C语言结构体类型变量在程序运行期间( )。 A.TC环境在内存中仅仅开辟一个存放结构体变量地址的单元 B.所有的成员一直驻留在内存中 C.只有最开始的成员驻留在内存中 D.部分成员驻留在内存中
6. 以下有关宏替换叙述中,错误的是( )。 A.宏替换不占用运行时间 B.宏无类型名 C.宏替换只是字符替换 D.宏名必须用大写字母表示
7. 当顺利执行了文件关闭操作时,fclose函数的返回值是( )。 A.0 B.True C.-1 D.1
8. C语言规定,在一个源程序中,main函数的位置( )。 A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后
9. 设有 int x=8; 则表达式 (++x*1/3) 的值是( )。 A.2 B.3 C.2.6 D.0
10. 下面程序的输出结果是( )。 main() { int x=177; printf("%o\n",x);
A.177 B.261 C.-61 D.61
11.下列程序执行后的输出结果是( )。 #define MA(x) x*(x+1) main() { int a=2,b=3; printf("%d \n",MA(1+a+b));
A.6 B.8 C.24 D.42
12. 已知int i, x[3][4]; 则不能将x[1][1]的值赋给变量i的语句是( )。 A.i=*(*(x+1)+1) B.i=x[1][1] C.i=*(*(x+1)) D.i=*(x[1]+1)
13. 以下选项中,与k=n++完全等价的表达式是( )。 A.k=n,n=n+1 B.n=n+1,k=n C.k=++n D.k+=n+1
14. 下面各选项中,均是C语言合法标识符的选项组是( )。 A.33 we auto B._23 me _3ew C._43 3e_ else D.ER -DF 32
15. C语言程度的基本单位是( )。 A.函数 B.标识符 C.表达式 D.语句
16. 若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是( )。 A.EOF B.0 C.非零值 D.NULL
17. 已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是( )。 A.kk>=′A′&& kk<=′Z′ B.!(kk>=′A′︱︱kk<=′Z′) C.(kk+32)>=′a′&&(kk+32)<=′Z′ D.isalpha(kk)&&(kk<91)
18. 在下列结论中,只有一个是正确的,它是( )。 A.递归函数中的形式参数是自动变量 B.递归函数中的形式参数是外部变量 C.递归函数中的形式参数是静态变量 D.递归函数中的形式参数可以根据需要自己定义存储类型
19. 已知double *p[6]; 它的含义是( )。 A.p是指向double类型变量的指针 B.p是double类型数组 C.p是指针数组 D.p是数组指针
20. 以下选项中,不能作为合法常量的是( )。 A.1.234e04 B.1.234e0.4 C.1.234e+4 D.1.234e0
21. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是 ( )。 A.auto和register B.extern和register C.auto和static D.static和register
22. 已知static int a[2][3]={2,4,6,8,10,12; 正确表示数组元素地址的是( )。 A.*(a+1) B.*(a[1]+2) C.a[1]+3 D.a[0][0]
23. 以下叙述中错误的是( )。 A.改变函数形参的值,不会改变对应实参的值 B.函数可以返回地址值 C.可以给指针变量赋一个整数作为地址值 D.当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
24. 已知字符′A′的ASCII码值是65,字符变量cl的值是′A′,c2 的值是′D′。执行语句printf("%d,%d",c1,c2-2);后,输出结果是( )。 A.A,B B.A,68 C.65,66 D.65,68
25. 在while(x)语句中的x与下面条件表达式等价的是( )。 A.x==0 B.x==1 C.x!=1 D.x!=0
26. 以下叙述中错误的是( )。 A.计算机不能直接执行用C语言编写的源程序 B.C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件 C.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件 D.后缀为.obj和.exe的二进制文件都可以直接运行
27. 有以下程序 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
28. 下面程序的输出结果是( )。 main() { int x=5,y=9,z=1,t; t=(x>y||x>z); printf("%d\n",t);
A.1 B.0 C.5 D.3
29. 若变量已正确定义,有以下程序段 i=0; do printf("%d,",i);while(i++); printf("%d\n",i); 其输出结果是( )。 A.0,0 B.0,1 C.1,1 D.程序进入无限循环
30. 若定义int a=7;float x=2.5;y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。 A.2.500000 B.2.750000 C.3.50000 D.0.000000
31. 表达式18/4*sqrt(4.0)/8值的数据类型是( )。 A.int B.float C.double D.不正确
32. 以下定义语句中正确的是( )。 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;
33. 若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是( )。 A.(exp==0) B.(exp!=0) C.(exp==1) D.(exp!=1)
34. 以下不正确的定义语句是( )。 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′;
35. 设a=5, b=6, c=7, d=8, m=2,n=2, 执行(m=a>b)&&(n=c>b)后n的值为( )。 A.1 B.2 C.3 D.4
二、 判断题 (共 15 道试题,共 30 分) 1. 若一个外部变量的定义形式为static int x;其中static的作用是使x只能在本文件内引用。 A.错误 B.正确
2. &b指的是变量b的地址处所存放的值。 A.错误 B.正确
3. 在循环体内使用break语句或continue语句的作用相同。 A.错误 B.正确
4. 如果形参和实参的类型不一致,以实参的类型为准。 A.错误 B.正确
5. 在"文件包含"预处理语句的使用形式中,#include后面的文件名用""表示直接按系统设定的标准方式搜索目录。 A.错误 B.正确
6. 设变量 a 为整型,f 是实型,i 是双精度型,则表达式10+'a'+i * f 值的数据类型不能确定为何类型。 A.错误 B.正确
7. 设int a=12;则执行完语句a+=a-=a*a后,a的值为144。 A.错误 B.正确
8. 函数的实参和与其对应的形参各占用独立的存储单元。 A.错误 B.正确
9. switch语句中的每个case总要用break语句。 A.错误 B.正确
10. 在C 程序中,逗号运算符的优先级最低。 A.错误 B.正确
11. 一个共用体变量中不能同时存放其所有成员。 A.错误 B.正确
12. 在C语言中char型数据在内存中的存储形式为ASCII码。 A.错误 B.正确
13. C语言中,如果在定义函数时省略extern,则隐含为外部函数。 A.错误 B.正确
14. 用户若需调用标准库函数,调用前必须重新定义。 A.错误 B.正确
15. 在c程序中,语句之间必须要用分号";"来分隔。 A.错误 B.正确
|