荟萃馆

位置:首页 > 计算机 > 计算机二级

2015年下半年计算机二级考试C语言模拟试题及答案(六)

  一、选择题

2015年下半年计算机二级考试C语言模拟试题及答案(六)

1.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是(B)。

A、一个存储区,存放要读的数据项

B、一个指针,指向要读入数据的存放地址

C、一个文件指针,指向要读的文件

D、一个整数,代表要读入的数据项总数

2.结构体类型的定义允许嵌套是指(A)。

A、成员是已经或正在定义的结构体型

B、定义多个结构体型

C、成员可以重名

D、结构体型可以派生

3.对结构体类型的变量的成员的访问,无论数据类型如何都可使用

的运算符是(B)。

A、&

B、.

C、*

D、->

4.若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是(D)。

A、&t[1]

B、t[3]

C、&t[3][2]

D、t[2]

5.若有说明:int *p,m=5,n;以下正确的程序段是(D)。

A、scanf("%d",&n);*p=n;

B、p=&n;scanf("%d",*p)

C、p=&n;scanf("%d",&p);

D、p=&n;*p=m;

6.若定义:int a=511,*b=&a;, 则printf("%dn",*b);的输出结果为(D)。

A、无确定值

B、a的地址

C、512

D、511

7.下列说法中正确的是(B ).

A、函数调用不占运行时间,只占编译时间.

B、宏替换不占运行时间,只占编译时间.

C、有参数的宏定义,就是函数.

D、在定义宏时,宏名与带参数的括弧之间可以加空格.

C语言程序中,若对函数类型未加声明,则函数的类型系统默认为(C)。

A、void

B、double

C、int

D、char

8.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(A)。

A、函数调用可以作为一个函数的形参

B、函数调用可以作为一个函数的实参

C、函数调用可以作为独立的语句存在

D、函数调用可以出现在表达式中

9.对于void类型函数,调用时不可作为(B)。

A、循环体里的语句

B、表达式

C、if语句的成分语句

D、自定义函数体中的语句

10.C语言规定,函数返回值的类型是由(A)。

A、在定义该函数时所指定的函数类型所决定

B、return语句中的表达式类型所决定

C、调用该函数时系统临时决定

D、调用该函数时的主调函数类型所决定

11.以下定义语句中,错误的是(A)。

A、int n=5,a[n];

B、int a[]={1,2};

C、char s[10]="test";

D、char *a[3];

12.以下不能对二维数组a进行正确初始化的语句是(A)。

A、int a[2][3]={{1,2},{3,4},{5,6}};

B、int a[][3]={{1,2},{0}};

C、int a[2][3]={0};

D、int a[][3]={1,2,3,4,5,6};

13.在C语言中,引用数组元素时,其数组下标的数据类型允许是(B)。

A、整型常量

B、整型常量或整型表达式

C、整型表达式

D、任何类型的表达式

a[10];合法的数组元素的最小下标值为(D)。

A、10

B、9

C、1

D、0

15.下列数组说明中,正确的是(B)。

A、int array[][];

B、int array[][4];

C、int array[3][];

D、int array[][][5];

16.以下正确的描述是(A ).

A、只能用continue语句来终止本次循环

B、switch语句中不能出现continue语句

C、在循环中break语句不能独立出现

D、goto语句只能用于退出多层循环

17.针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是(B ).

A、break语句可以一次性跳出多层嵌套循环

B、break语句只能跳出最内层循环

C、continue语句可以一次性跳出多层嵌套循环

D、continue语句不能跳出最外层循环

18.下面程序正确的运行结果是(B ).(答案中用大写字母U代表空格)

main()

{

int num=0;

while(num<=2)

{

num++;

printf("=",num);

}

}

A、UU1

B、UU1UU2UU3

C、UU1UU2UU3UU4

D、UU1UU2

19.以下程序的执行结果是(B )。

main()

{ int num = 0;

while( num <= 2 ) { num++; printf( "%d,",num ); } }

A、0,1,2

B、1,2,3,

C、1,2,3,4,

D、1,2,

20.C语言中,switch后的括号内表达式的值可以是( C)。

A、只能为整型和字符型

B、只能为整型

C、任何类型

D、只能为整型,字符型,枚举型

21.下列运算符中,不属于关系运算符的是(C)。

A、>=

B、>

C、!

D、<

22.下面说法不正确的是:(C )。

A、a为真b为假,则a&&b为假

B、a为真b为假,!a&&b为假

C、a为真b为假,则a||b为假

D、a为真,!a-1为真

23.以下运算符中,优先级最高的运算符是(D)。

A、==

B、||

C、%

D、!

24.已知键盘输入a=4,b=3,下面程序输出的结果是( C).

main()

{ int a,b,s;

scanf("%d%d",&a,&b);

s=a;

if(a   s=s*s;

printf("%dn",s);

}

A、9

B、13

C、16

D、15

25.为表示关系x>=y>=z,应使用C语言表达式为:( A)

A、(x>=y)&&(y>=z)

B、(x>=y)&(y>=z)

C、(x>=y)AND(y>=z)

D、(x>=y>=z)

26.已定义float a; int i;选择正确的输入语句(C ).

A、scanf("%6.2f=", &a,&i);

B、scanf("%f%s", &a,&i);

C、scanf("o=",&a,&i);

D、scanf("%f%d", a,i);

27.根据下面的程序,正确的输出形式是(A );

main()

{

int i=5,j=10;

printf ("i=%d,", i);

printf ("j=%d ", j);

}

A、i=5, j=10

B、10,5

C、5,10

D、i=5Uj=10

28.若有以下程序:

main()

{

int k=2,i=2,m;

m=(k+=i*=k);

printf("%d,%dn",m,i);

}

29执行后的输出结果是(D )。

A、8,3

B、7,4

C、8,6

D、6,4

30下列字符序列中,不可用作C语言标识符的是(C)。

A、b70

B、a_1

C、#ab

D、symbol

31设C语言中,int类型数据占2个字节,则unsigned类型数据占(C)。

A、1个字节

B、8个字节

C、2个字节

D、4个字节

32已知f是float型的变量,对于语句f=(2.0,1.0,0.0),(3.0,4.0,5.0);的判断中,正确的是(B ).

A、使 f 的值为5.000000

B、使 f 的值为0.000000

C、使 f 的值为2.000000

D、语法错误

33执行下列语句后变量x和y的值是(A)。

y=10;x=y++;

A、x=10,y=11

B、x=11,y=11

C、x=11,y=10

D、x=10,y=10

34设有说明:char c; int x; double z;则表达式c*x+z值的数据类型为( C)。

A、char

B、int

C、double

D、float

35以下数据中,不正确的数值或字符常量是(D)。

A、82.5

B、0xff00

C、10

D、8.9e1.2

36若int a=2,则执行完表达式a-=a+=a*a后,a的值是(C )。

A、-4

B、-8

C、0

D、-2

37以下运算符中,优先级最高的运算符是(C)。

A、!=

B、*(乘号)

C、( )

D、=

38下列数据中,为字符串常量的是(D)。

A、A

B、How do you do.

C、$abc

D、"house"

39以下标识符中,不能作为合法的C用户定义标识符的是(D)。

A、INT

B、_123

C、_double

D、putchar

40经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在

微机上的值分别为(D)。

char x=65;

float y=7.3;

int a=100;

double b=4.5;

A、1,2,2,4

B、2,4,2,8

C、2,2,2,4

D、1,4,2,8

41以下标识符中,不能作为合法的C用户定义标识符的是(B)。

A、a3_b3

B、void

C、_123

D、IF

42能将高级语言编写的源程序转换为目标程序的是(A)。

A、编译程序

B、链接程序

C、解释程序

D、编辑程序

43C语言的注释定界符是(D)。

A、[ ]

B、{ }

C、* *

D、/* */

44C语言源程序的基本单位是(B)。

A、子程序

B、函数

C、标识符

D、过程

45在下列程序段中,枚举变量c1,c2的值依次是(A)。

enum color {red,yellow,blue=4,green,white} c1,c2;

c1=yellow;c2=white;

printf("%d,%dn",c1,c2);

A、1,6

B、2,5

C、2,6

D、1,4

46定义int a[ ]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,其中0≤i≤9,则对a数组元素的引用不正确的是____.C

A、p[i]

B、a[p-a]

C、*(*(a+i))

D、*(&a[i])

47执行下面程序段后,ch的值是:____D

char ch=’Z’;

ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch;

A、A

B、Z

C、a

D、z

48能正确进行字符串赋值操作的语句是_____ .A

A、char *s; scanf("%s",s);

B、char *s; s=’ABCDEF’;

C、char s[5]={"ABCDE"};

D、char s[5]={’A’,’B’,’C’,’D’,’E’};

49按照C语言规定,程序中各函数之间,以下叙述不正确的是______.B

A、主函数可以调用其它任何函数.

B、允许嵌套定义.

C、允许递归调用.

D、允许嵌套调用.

50.已经有prt( )函数的定义,假设以下各程序中对函数的'说明是正确的,

以下程序段中有语法错误的是( D ).

A、main() { int k; void prt( );…prt(’A’);…}

B、main() { int k; int prt( );…k=prt(’A’);…}

C、main() { int k; char prt( );…k=k+prt(65);…}

D、main(){ int k; void prt( );…k=prt(’A’);…}