西工大21年4月机考随机《C语言程序设计》标准资料

试卷总分:100    得分:100

一、 单选题 (共 35 道试题,共 70 分)

1. 以下错误的描述为( )。

A.在函数之外定义的变量称为外部变量,外部变量是全局变量

B.在一个函数中既可以使用本函数中的局部变量,又可以使用外部变量

C.外部变量定义和外部变量声明的含义相同

D.若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用

正确答案:C

2. 有以下程序

#include

main()

{ int x=1,y=0,a=0,b=0;

switch(x)

{ case 1:

switch(y)

{ case 0:a++; break;

case 1:b++; break;

}

case 2:a++; b++; break;

case 3:a++; b++;

}

printf("a=%d,b=%d\n",a,b);

}

A.a=1,b=0

B.a=2,b=2

C.a=1,b=1

D.a=2,b=1

3. 以下叙述中错误的是( )。

A.计算机不能直接执行用C语言编写的源程序

B.C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件

C.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件

D.后缀为.obj和.exe的二进制文件都可以直接运行

4. 若二维数组a由m列,则在a[i][j]之前的元素个数为( )。

A.j*m+i

B.i*m+j

C.i*m+j-1

D.i*m+j+1

5. 有以下程序

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

6. 若a为int类型,且其值为5,则执行表达式a+=a-=a*a后,a的值是( )。

A.-5

B.-40

C.-15

D.不确定

7. 设有 int x=8; 则表达式 (++x*1/3) 的值是( )。

A.2

B.3

C.2.6

D.0

8. 若变量已正确定义,有以下程序段

i=0;

do printf("%d,",i);while(i++);

printf("%d\n",i);

其输出结果是( )。

A.0,0

B.0,1

C.1,1

D.程序进入无限循环

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. 以下叙述中错误的是( )。

A.改变函数形参的值,不会改变对应实参的值

B.函数可以返回地址值

C.可以给指针变量赋一个整数作为地址值

D.当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL

11. 以下程序的输出结果是( )。

main()

{ char c='z';

printf("%c",c-22);

A.d

B.e

C.c

D.f

12. C语言规定,在一个源程序中,main函数的位置( )。

A.必须在最开始

B.必须在系统调用的库函数的后面

C.可以任意

D.必须在最后

13. 若int i, x; 则for(i=x=0; i<9&&x!=5; i++, x++)控制的循环体将执行( )次。

A.10

B.9

C.5

D.6

14. 以下描述错误的是( )。

A.不同函数中可以使用相同的变量名

B.形式参数是局部变量

C.一个函数内部定义的变量只能在本函数范围有效

D.在一个函数内部的复合语句中定义的变量可以在本函数范围内有效

15. 数组定义char a[10]={'a','b','c';包括了( )。个元素。

A.3

B.9

C.4

D.10

16. 运行下面程序:

main()

{

int n1,n2;

scanf("%d",&n2);

while(n2!=0)

\ n1=n2%10;

n2=n2/10;

}

printf("%d",n1);

}若从键盘上输入298↙ ,则输出结果为( )。

A.2

B.29

C.8

D.0

17. ( )是构成C语言程序的基本单位。

A.函数

B.过程

C.子程序

D.子例程

18. 以下有关宏替换叙述中,错误的是( )。

A.宏替换不占用运行时间

B.宏无类型名

C.宏替换只是字符替换

D.宏名必须用大写字母表示

19. 已知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]

20. 设x、y、t均为int型变量,则执行语句:x=y=2;t=++x||++y;后,y的值为( )。

A.不确定

B.2

C.3

D.1

21. 在C语言中,变量的隐含存储类别是( )。

A.auto

B.static

C.extern

D.无存储类别

22. 不合法的常量是( )。

A.'\2'

B.'""'(外面是单引号)

C." "

D."\483"

23. 设有定义:char p[]={′1′,′2′,′3′,*q=p;,以下不能计算出一个char型数据所占字节数的表达式是( )。

A.sizeof(p)

B.sizeof(char)

C.sizeof(*q)

D.sizeof(p[0])

24. 逻辑运算符两侧运算对象的数据类型( )。

A.只能是0或1

B.只能是0或非0正数

C.只能是整型或字符型数据

D.可以是任何类型的数据

25. 对for(表达式1; ; 表达式3)可理解为( )。

A.for(表达式1; 0;表达式3)

B.for(表达式1: 1 ;表达式3)

C.for(表达式1; 表达式1; 表达式3)

D.for(表达式1; 表达式2; 表达式3)

26. 当c的值不为0时,在下列选项中能够将c的值赋给变量a、b的是( )。

A.c=b=a;

B.(a=c)︱︱(b=c);

C.(a=c)&&(b=c);

D.a=c=b;

27. 已知x=43,ch='A',y=0;则表达式x=y&& ch<'B'&&!y的值是( )。

A.0

B.语法错

C.1

D."假"

28. 以下描述中正确的是( )。

A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C.在do-while循环体中,是先执行一次循环,再进行判断

D.do-while循环中,根据情况可以省略while

29. 在C语言中,逻辑值"真"是用( )表示的。

A.预定义为真值的宏

B.非零数

C.正数

D.非零整数

30. 以下存储类型只有在使用时才为该类型变量分配内存的是( )。

A.auto和static

B.auto和register

C.register和static

D.static和extern

31. 在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要的存储类别是( )。

A.extern

B.register

C.auto

D.static

32. 请选出可用作C语言用户标识符的是( )。

A.void,define,WORD

B.a3_b3,_123,IF

C.FOR,--abc,Case

D.2a,Do,Sizeof

33. 下面程序的输出结果是( )。

main()

{

int x=10;

x+=(x=8);

printf("%d\n",x);

}

A.10

B.8

C.18

D.16

34. 设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

35. 当顺利执行了文件关闭操作时,fclose函数的返回值是( )。

A.0

B.True

C.-1

D.1

二、 判断题 (共 15 道试题,共 30 分)

1. 一个变量的地址就称为该变量的"指针"。

A.错误

B.正确

2. 数组的下标可以float数据类型。

A.错误

B.正确

3. 若有说明int c;则while(c=getchar());是正确的C语句。

A.错误

B.正确

4. 函数的实参和与其对应的形参各占用独立的存储单元。

A.错误

B.正确

5. 在c程序中,语句之间必须要用分号";"来分隔。

A.错误

B.正确

6. 语句 y=*p++; 和 y=(*p)++; 是等价的。

A.错误

B.正确

7. 若变量a和x均为double类型,则代数式x^2-e^5转化为正确的C语言表达式为:x*x-exp(5)。

A.错误

B.正确

8. for循环只能用于循环次数已经确定的情况。

A.错误

B.正确

9. 函数的定义可以嵌套,但函数的调用不可以嵌套。

A.错误

B.正确

10. 在C语言中整数只能表示为十进制数的形式。

A.错误

B.正确

11.题型:判断题

A.错误

B.正确

12. 用typedef可以定义各种类型名,但不能用来定义变量。

A.错误

B.正确

13. 已有定义int(*p)();指针p可以指向函数的入口地址。

A.错误

B.正确

14. 一个可执行的C语言程序总是从main()函数的入口地址处开始执行。

A.错误

B.正确

15. 若i为某函数func之内说明的变量,则当func执行完后,i值无定义。

A.错误

B.正确

(0)

相关推荐