闽高校计算机二级C语言模拟题

一、 选择题

(一)概述

1.( A )为正确变量名

A)pro_5 B)case C)5_pro D)else

2.( C )为正确的用户标识符。

A)min-5 B)3_row C)max_at D)union

3.下面叙述正确的是(C ) A)程序中必需包含自定义函数

B)main( )函数必须位于源程序文件的开头 C)所有语句都必须以分号“;”结束 D)每行最多只能写两个语句

4.下面叙述错误的是(A )

A)注释说明部分只能位于C源程序的最前面 B)C源程序必须包含一个main()函数 C)C源程序可由一个或多个函数组成

D)一个C源程序的执行是从main( )函数开始,直到main( )函数结束

(二)语法基础

5.下面叙述错误的是(C )

A)算术运算符中不包含“=”运算符

B)模运算符“%”是C语言基本的算术运算符

C)算术运算符只有“*”,“/”优先级高于关系运算符 D)自增和自减运算符只能用于变量,而不能用于常量或表达式

6.下面叙述中正确的是(B ) A)(3+9)++是正确的表达式

B)C语言中的整型与字符型变量混合运算的结果是整型

C)模运算符“%”两边运算数的数据类型是任意的 D)“abc”+“xxx”是正确的表达式

7.若有定义:int i=3, j=6; 则表达式(- -i)*(j++)的值为(A)。

A)12 B)10 C)18 D)15

8.若有定义:float x=3.5, y=5.5; 则表达式(B )的值为2.

A)(x+y)%7 B)(int)(x+y)%7 C)(int)x+y%7 D)int(x+y)%7

9 若有定义 int x=1, y=2, n=3; 则(B )为正确表达式

A)x=ny B)x=y*3, y=(x+n)/y C)(x+y)(y+n) D)float(y/n)

10若有定义: int a, 且表达式!a的值为0,则表达式( BD )的值为1

A)!(a<0||a>0) B)a!=0 C)a=0 D)a= =0

11若有定义:int a=3, b=5, c=8; 则表达式!(a-b)||(c-b)的值为( )。

A)0 B)2 C)3 D)1 12.若有定义: int x, char c=?A?;则正确的赋值表达式是(D )。(说明:?A?的ASCII码的十进制值为65,?a?的ASCII码的十进制值为97) A) x=c+?ABC? B)x=c+?CBA? C)x=?ABC ? D)X=c+32 13.( A )为非法的字符串常量

A)?123? B)”056” C)” ” D)”case” 14.( C )为正确的字符常量

A)?165 ? B)?\\084? C)?@? D)?bcd? 15.(B)为合法的常量

A)?b_k? B)1.23E+8 C)3.21E-6.5 D)5,326

16.若有定义:int b= -15,则( )为正确的赋值表达式

A)b=*5 B)b+=b*3 C) *b=6 D)b+10= -5

17.若有定义: int x=1, y=2,z=3,则表达式( )的值为0.

A)x

18.若有定义: int a=6, b=7, k=0, t=1; 语句(k=a

1

D)int a=b=2, c=5;

20.下面叙述正确的是(D )

A)++2与3等价 B)++2与- -3等价

C)2/3与2%3等价 D)5/ (int)4.0与5/4等价

21.若有定义float x=3.5, y=3.6; 则表达式(C )的值为6

A)x+y B)(int)(x+y) C)(int)x+(int)y D)int(x+y)

22.以下程序段运行后x的值为( ) int a=3, b=6, x; x=(a= =b)?a++:- -b;

A)3 B)4 C)6 D)5 23.若有定义: int a, b=5; 语句a=(b/2)+(b%2); 运行后, a的值为( )

A)0 B)2 C)4 D)3

24.若有定义:int a=1, b=2, c=3, d=4, t=2, k=2; 语句(t=a

A)1.666667 B)1.0 C)2.0 D)0

26.下面运算符中优先级最低的是(B )。 A)! B)= C)* D)>

27. 若有定义:int a=3; 语句a+=a-=a*a; 运行后, a的值为( )

A)-12 B)-3 C)0 D)-6

28. x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为( )

A)-20-20)&&!(x<-5) D)x>-20&&x<-5

29.若有定义:int x, y, z; 语句x=(y=z=3,++y, z+=y); 运行后,x的值为( )。

A)7 B)3 C)6 D)8

30.若有定义float x; 要从键盘输入数据6.02赋给x, 则应选用( )语句。

A)scanf(“%8.2f”, &x); B) scanf(“%1.2f”, &x); C) scanf(“%4.2f”, &x); D) scanf(“%f”, &x);

31.若有语句int a, charc; scanf(“=%c”,&a,&b);

为将整数135赋给a,字符?6?赋给c,正确的数据输入方式是( )(说明代表换行,_代表空格) A)1356 B) 1356 C)135_6_ D)135_6

32.若有定义:char c1=?A?, c2=?B?; 语句printf(“%d+%d=%d”, c1, c2, c1+c2); 运行的结果为( )。(说明?A?的ASCII码的十进制值为65) A)A+B=131 B)65+66=131 C)65+66=AB D)A+B=AB

33. 若有定义: int a=8, b=5; 要实现输出形式为:8*5=40,正确的printf( )函数调用语句是( )。 A)printf(“%d*%d=a*b\\n”, a, b); B)printf(“%d*%d=%d\\n”, a, b, a*b); C)printf(“a*b=%d\\n”, a*b); D)printf(“a*b=a*b\\n”);

(三)控制结构

34.以下程序段运行的结果是( ) int s=15; switch(s/4)

{ case 1: printf(“One”); case 2: printf(“Two”); case 3: printf(“Three”); default : printf(“Over”); }

A) Two Over B) One Over C) Three Over D) Three

35.以下程序段运行结果是( )。 int s=15; switch(s/4) { default :

printf(“Over”); case 1:

printf(“One”);

2

break; case 2:

printf(“Two”); }

A)Over One B)Two C)One

D)Over two

36.以下程序段运行后,若从键盘输入5,则运行结果是( ) int a, y=10;

scanf(“%d”, &a); if(a>10) y=a+6; printf(“%d\\n”, y+a); }

A) 15 B)16 C)10 D)11

37.以下程序运行结果是( ) void main( ) { int a, b=2, c=6; a=3;

if(a>6) a=a+6;

else if(a==6) b=a+c; else a=b+c;

printf(“%d\\n”, a); }

A)6 B)9 C)5 D)8

38. 以下程序段运行后,x的值为( ) int i, j, x=0;

for(i=3; i>=1; i- -)

for(j=1; j<=i; j++) x=x+2;

A)10 B)14 C)8 D)12

39.若有定义int i, x; ( )不是死循环 A)for(x=5; x>0; x--) ; B)while(x=1) ; C) for( ; ; i+=2); D)for(i=10; ; i--);

40.以下程序段运行后, x的值为( ) int i=0, x=0;

for( ; i<=5; i++,i++) { x+=3;}

A)9 B)6 C)12 D)15

41.以下程序段运行后x的值为( )。 int i=0, x=2; while (i++<=5) {x+=2; }

A)14 B)8 C)12 D)10

42.下面叙述正确的是( )

A)for循环的循环体可包含多条语句,但必须用花括号{}括起来

B)在for循环中,不能用break语句跳出循环体 C)for循环是先执行循环体语句,后判断表达式 D)for循环只能用于循环次数已经确定的循环

43. 若有定义:int i, x=0; 语句for(i=1; i<=3; i++) x+=2; 与下列( )程序段不等价。 A) i=1;

for( ; i<=3; ) {x+=2; i++; } B)for(i=1; i<=3; ) {x+=2; i++; } C)i=1;

for( ; ; i++) x+=2; D)i=1;

for( ; i<=3; i++) x+=2;

(四)数组

44.下面叙述错误的是(C )

A)数组中每一个元素都属于同一个数据类型

B)C语言规定可逐个引用数组元素,但不能一次引用整个数组

C)C语言数组长度在定义数组时可不确定 D)C语言数组名称是数组的首地址

45.若有定义: int a[10], i=2; 则能正确引用数组元素的是( )

A)a[10] B)a(7) C) a[9+i] D)a[10-i]

46.若有定义:int arr[15], n=5; 无法正确引用arr数组元素的是( D )。 A)arr[0] B)arr[n] C)arr[15-n] D)arr[10+n]

47.以下程序段运行后,x的值为( ) int a[8]={1,2,3,4,5,6,7,8}, i, x=0; for(i=0; i<8; i++, i++)

3

x=x+a[i];

A)18 B)16 C)20 D)36

48.C语言中,二维数组元素在内存中的存放顺序是( )

A)按列存放 B)随机存放 C)由用户自己定义 D)按行存放

49.. 以下( )对二维数组arr的初始化是错误的。 A)int arr[2][3]={{1,2},{3,4}};

B)int arr[2][3]={{1,2},{3,4},{5,6}}; C)int arr[ ][3]={1,2,3,4,5}; D)int arr[2][3]={{1},{3,4,5}};

50.以下程序段的运行结果是( ) int t[ ][3]={1,2,3,4,5,6,7,8,9,10,11,12}; printf(“%d\\n”, t[1][1])}

A)3 B)1 C)5 D)4

51.以下程序段运行后,x的值为( ) int i=0, x=0;

int a[3][3]={1,2,3,4,5,6,7,8,9}; for( ; i<3; i++) x+=a[i][i];

A)12 B)18 C)0 D)15

52.以下程序运行的结果是( ) int fun(int array[3][3]) { int j;

for(j=0; j<3; j++) array[1][j]++; printf(“\\n”); }

main( )

{ int j, a[3][3]={0,1,2,1,0,4,2,4,5}; fun(a);

for(j=0; j<3; j++) printf(“-”,a[1][j]); printf(“\\n”); }

A)2 1 5 B)1 0 4 C)0 1 2 D)1 2 3

53.以下程序段的运行结果是( )。 char str[3][2]={?a?,?b?,?c?,?\\0?,?e?,?f?}; printf(“%s”, str[0]);

A)abc\\0ef B)a C)abc D)abcef

(五)函数

54.只能向终端输出一个字符的是( ) A)putchar( )函数 B)printf( ) 函数 C)scanf( ) 函数 D)getchar( ) 函数 55.getchar( )函数的功能是获取终端输入的( )。 A)多个字符 B)一个整形变量表达式 C)一个字符 D)一个实型变量值

56.下面叙述正确的是( )

A)预处理命令也是C语句,必须以分号结束 B)宏展开不占用运行时间,只占用编译时间 C)一个源程序只能有一个预处理命令行 D)宏名必须用大写字母表示

57.下面叙述错误的是( )。

A)C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率

B)“#define PRICE 30”命令的作用是定义一个与30等价的符号常量PRICE

C)预处理命令行都必须以“#”开头 D)预处理命令行必须以分号结束

58.下面叙述错误的是( )

A)”#include ”命令的作用是在预处理时将stdio.h文件中的实际内容代替该命令 B) 预处理命令行必须以分号结束

C) C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率

D)宏定义也是C语句,必须在行末加分号

59.以下程序运行结果是( ) #define X a+b main( )

{ int a=3, b=4, s1; s1=2*X;

printf(“%d\\n”, s1); }

A)10 B)8 C)6 D)14

60.若有定义:#define PI 3,则表达式PI*2*2的值为( )

A)4 B)12 C)不确定 D)322

61.若有定义: #define F 2+3 ,则表达式F*F的值为( )

4

联系客服:779662525#qq.com(#替换为@)