最新C语言复习题集资料 下载本文

精品文档

1-13、用( C)三种基本控制结构,就可以编写任何复杂的计算机程序 A、I/O,转移,循环

B、转子(程序),返回,处理 C、顺序,选择,循环 D、输入,输出,处理

1-14、算法的有穷性是指(A ) A、算法程序的运行时间是有限的 B、算法程序所处理的数据量是有限的 C、算法程序的长度是有限的 D、算法只能被有限的用户使用

1-15、程序流程图中带有箭头的线段表示的是(C) A、图元关系 B、数据流 C、控制流 D、调用关系

1-16、编写C语言程序一般需经过的几个步骤依次是(B) A、编辑、调试、编译、连接 B、编辑、编译、连接、运行 C、编译、调试、编辑、连接 D、编译、编辑、连接、运行 2-1

下列运算符中优先级最低的是(A).

A、II B、>= C、!= D、~ 2-2、表达式5>3>1值是(A).

A、0 B、1 C、3 D、表达式语法错误 2-3、若x为浮点型,则表达式x=10/4为( B)。 A、2.5 B、2.0 C、2 D、3

2-4、若有char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( D)。 A、float B、char C、int D、double 2-5、下列叙述中错误的是 (A)

A、用户所定义的标识符允许使用关键字

B、用户所定义的标识符应尽量做到“见名知意” C、用户所定义的标识符必须以字母或下划线开头 D、用户定义的标识符中,大、小写字母代表不同标识 2-6、下列不合法的用户标识符是(C)

A、j2_KEY B、Double C、4d_a D、_8_

2-7、下列选项中,与i=j++完全等价的表达式是( C)。

A、j=j+1,i=j B、i=++j C、i=j, j=j+1 D、j+=i

2-8、已有定义“int x = 3, y = 4, z = 5;”,则表达式“!(x + y) + z - 1 && y + z / 2”的值是(D)。

A、6 B、0 C、2 D、1

2-9、已知字符“A”的ASCII代码值是65,字符变量c1的值是“A”,c2的值是“D”, 执行语句“printf(\-2);”后,输出结果是(C)。 A、A, B B、A, 68 C、65, 66 D、65, 68

精品文档

精品文档

2-10、语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:(D) A、无输出 B、结果不确定 C、-1 D、1

3-1、若a是基本整型变量,c是单精度实型变量,输入语句(D)是错误的。 A、scanf(\

B、scanf(\ C、scanf(\ D、scanf(\

3-2、阅读以下程序段,如果从键盘上输入1234567<回车>,则程序的运行结果是(D)。

int i,j;

scanf(\

printf(\A、i = 123, j = 4567 B、i = 1234, j = 567 C、i = 1, j = 2 D、i = 123, j = 45

3-3、下面程序段的输出是(B)。

int x=023;

printf(\

A、17 B、18 C、23 D、24 3-4、下面的程序段输出是(D)。

int k=11;

printf(\A、k=11,k=12,k=11 B、k=11,k=13,k=13 C、k=11,k=013;k=0xb D、k=11,k=13,k=b

3-5、使用“scanf(\,y=%f\,&x,&y)”,要使 X,y均为1.25,正确的输入是(A) A、1.25,1.25 B、1.25 1.25

C、X=1.25,y=1.25 D、X=1.25 y=1.25

4-1、如果要求在if后一对括号中的表达式在表示a 不等于 0 的时候的值为“真”,则能正确表示这一关系的表达式为(A)。

A、a<>0 B、!a C、a=0 D、a

4-2、能正确表示逻辑关系\ a≤0\C语言表达式是(D)。 A、a>=10 or a<=0 B、a>=0 | a<=10 C、a>=10 && a<=0 D、a>=10 || a<=0

4-3、下列条件语句中,功能与其他语句不同的是(D) A、if (a)printf(\

B、if (a == 0)printf(\C、if (a != 0)printf(\D、if (a == 0)printf(\

精品文档

精品文档

4-4、若a、b、c1、c2、x、y均是整型变量,以下正确的switch语句(D) A、switch(a+b); { case 1: y=a+b; break; case 0:y=a-b; break;} B、switch(a*a+b*b) { case 3: case 1: y=a+b; break; case 3: y=b-a, break;} C、switch a { case c1: y=a-b; break; case c2: x=a*b; break; default: x=a+b; } D、switch(a-b) { default: y=a*b; break; case 3: case 4: x=a+b; break; case 10: case 11: y=a-b; break; } 4-5、为了避免嵌套的条件分支语句if~else二义性,C语言规定,C程序中的else总是与(C)组成配对关系。

A、缩排位置相同的if B、在其之前未配对的if

C、在其之前未配对的最近的if D、同一行上的if

5-1、下列程序段执行后s值为(D)。

int i=5, s=0; while(i--)

if (i%2) continue; else s+=i;

A、15 B、10 C、9 D、6

5-2、下面的这个循环的循环次数是(B)。

for(int i=0,j=10; i=j=10; i++,j--) A、语法错误,不能执行 B、无限次 C、10 D、1

5-3、以下程序段的输出结果是(B)

int i, j;

for (i = 1; i < 4; i++) { for (j = i; j < 4; j++)

printf(\ printf(\

}

A、1 * 1 = 1 1 * 2 = 2 1 * 3 = 3

精品文档

精品文档

2 * 1 = 2 2 * 2 = 4 3 * 1 = 3

B、1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 2 * 2 = 4 2 * 3 = 6 3 * 3 = 9 C、1 * 1 = 1

1 * 2 = 2 2 * 2 = 4

1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 D、1 * 1 = 1

2 * 1 = 2 2 * 2 = 4

3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 5-4、下列叙述中正确的是(C)。

A、break 语句只能用于 switch 语句体中

B、continue语句的作用是使程序的执行流程跳出包含它的所有循环 C、break 语句只能用在循环体内和 switch 语句体内

D、在循环体内使用 break语句和 continue 语句的作用相同 5-5、以下程序段的输出结果是 (B)

int x = 23; do {

printf(\

} while (!x); A、321 B、23 C、22 D、死循环

6-1、以下数组定义中错误的是(B)。 A、int x[][3]={0};

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

6-2、数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素(A)的值为6。 A、a[3][2] B、a[2][1] C、a[1][2] D、a[2][3]

6-3、若有定义,int a[10];,则对数组a元素的正确引用是(D) A、a[10] B、a[3.5] C、a(5)

D、a[10-10]

6-4、假定int类型变量占用两个字节,其有定义:int x[10]={0, 2, 4}; 则数组x在内存中所占字节数是(D)。 A、3 B、6

精品文档