文档库

最新最全的文档下载
当前位置:文档库 > C语言复习题集

C语言复习题集

C语言复习题集

一、判断题

1-1、C语言程序是从源文件的第一条语句开始执行的。

正确答案:F

1-2、C语言中的变量名不区分大小写。

正确答案:F

1-3、若变量定义为double x;,则x % 2是符合C语言语法的表达式.

正确答案:F

1-4、如果变量已经正确定义,则表达式fahr ++ 与fahr + 1等价。

正确答案:F

C语言复习题集

1-6、#define MAX 100和int MAX=100;的效果相同,都是定义一个变量MAX并使其值为100。

正确答案:F

1-7、当一个C语言程序由多个文件模块组成时,整个程序可以包含多个main()函数。

正确答案:F

1-8、C 语言是一种具有某些低级语言特征的高级语言。

正确答案:T

1-9、内存中的每个存储单元都有一个惟一的地址。

正确答案:T

1-10、C语言的书写格式不会影响程序的可读性。

正确答案:F

2-1、x*=y+8 等价于 x=x*(y+8)。

正确答案:T

2-2、表达式 (j=3, j++) 的值是4.

正确答案:F

2-3、在一段程序中不调用函数而直接将两个整型变量a和b的值互换,一定是可以不借助第三个变量完成的。

正确答案:T

2-4、在C语言中,仅由一个分号(;)构成的语句称为空语句,它什么也不做。

正确答案:T

2-5、与float型数据相比,double型数据的精度高,取值范围大。

正确答案:T

2-6、08是正确的整型常量。

正确答案:F

2-7、C语言中,%为求模(求余)双目运算符,它的两个运算数(操作数)都必须是整型(如int、short、char等),不能是浮点型(如double、float)。

正确答案:T

2-8、C语言源代码可以不经过编译而被计算机直接运行。()。

正确答案:F

2-9、C 语言中的变量名不区分大小写。

正确答案:F

2-10、C程序中,用一对大括号{}括起来的多条语句称为复合语句,复合语句在语法上被认为是一条语句。

正确答案:T

2-11、C语言中,数字字符'1'的值(ASCII码)就是数字1。

正确答案:F

2-12、表达式 !x 等价于x != 1。

正确答案:F

3-1、double f = 2.5e5;

printf ("f=%5.4lf\n", f);

The output will be

f=250000.0000

正确答案:T

C语言复习题集

3-3、C语言中不能用printf函数输出字符。

正确答案:F

3-4、若表达式sizeof(int)的值为4,则int类型数据可以表示的最大整数为231?1。

正确答案:T

C语言复习题集

4-1、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。

正确答案:T

4-2、在switch语句中,每一个的case常量表达式的值可以相同。

正确答案:F

4-3、case语句后如没有break,顺序向下执行。

正确答案:T

4-4、if(a=5) 是允许的。

正确答案:T

4-5、在switch语句中,可以根据需要使用或不使用break语句。

正确答案:T

5-1、do-while循环的while后的分号可以省略。

正确答案:F

5-2、do-while循环至少要执行一次循环语句。

正确答案:T

5-3、C语言的三种循环不可以互相嵌套。

正确答案:F

5-4、continue 只能用于循环体中。

正确答案:T

5-5、在多层循环中, 一个break语句只向外跳一层。

正确答案:T

6-1、数组定义中,数组名后是用方括号括起来的常量表达式,不能用圆括号。

正确答案:T

C语言复习题集

6-3、在定义数组之后,根据数组中元素的类型及个数,在内存中分配一段连续存储单元用于存放数组中的各个元素。

正确答案:T

6-4、数组定义后,只能引用单个的数组元素,而不能一次引用整个数组。

6-5二维数组的元素在内存中按行/列方式存放,即先存放第0行的元素,再存放第1行的元素……其中每一行的元素再按照列的顺序存放。

正确答案:T

7-1、C语言函数返回类型的默认定义类型是void。

正确答案:F

7-2、函数形参的存储单元是动态分配的。

正确答案:T

7-3、函数的实参可以是常量,变量或表达式。

正确答案:T

7-4、静态变量的作用域是整个文件。

正确答案:T

7-5、函数返回值的类型是由在定义函数时所指定的函数类型。

正确答案:T

8-1、关于C语言指针的运算:指针只有加减操作,没有乘除操作。指针可以加常数、减常数;相同类型的指针可以相加、相减。

正确答案:F

8-2、变量定义:int *p, q; 中,p和q都是指针。

正确答案:T

8-3、对于定义int a[10],*p=a; 语句p=a+1;和a=a+1;都是合法的。

正确答案:F

8-4、char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。

正确答案:T

8-5、字符串常量实质上是一个指向该字符串首字符的指针常量。

正确答案:F

9、

二、选择题

1-1、若变量已正确定义并赋值,符合C语言语法的表达式是(B)

A、a=2++

B、a=3,5

C、a=a+1=3

D、12.3%4

1-2、以下选项中不正确的整型常量是( D)。

A、12L

B、-10

C、012

D、2,900

1-3、下列选项中用于判断ch是否是字符的表达式是(D )。

A、( 'a' <= ch <= 'z' ) || ( 'A' <= ch <= 'Z' )

B、( 'a' <= ch <= 'z' ) && ( 'A' <= ch <= 'Z' )

C、( ch >= 'a' && ch <= 'z' ) && ( ch >= 'A' && ch <= 'Z' )

D、( ch >= 'a' && ch <= 'z' ) || ( ch >= 'A' && ch <= 'Z' )

1-4、为表示关系x≥y≥z,应使用C语言表达式(A )。

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

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

C、(x>=y>=z)

D、(x>=y)&(y>=z) 1-5、表达式8>6>3值是(A )。

A、0

B、1

C、3

D、表达式语法错

1-6、一个C程序的执行是从( A)

A、本程序的main函数开始,到main函数结束

B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C、本程序的main函数开始,到本程序文件的最后一个函数结束

D、本程序文件的第一个函数开始,到本程序main函数结束

1-7、C语言规定:在一个源程序中,main函数的位置(C )

A、必须在最开始

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

C、可以任意

D、必须在最后

1-8、一个C语言程序是由(B )

A、一个主程序和若干子程序组成

B、函数组成

C、若干过程组成

D、若干子程序组成

1-10、下列关于C语言的叙述错误的是(A )。

A、大写字母和小写字母的意义相同

B、不同类型的变量可以在一个表达式中

C、在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型

D、同一个运算符号在不同的场合可以有不同的含义

1-11、结构化程序由三种基本结构组成,三种基本结构组成的算法(A)

A、可以完成任何复杂的任务

B、只能完成部分复杂的任务

C、只能完成符合结构化的任务

D、只能完成一些简单的任务

1-12、下列叙述中错误的是(D)

A、C语言源程序经编译后生成扩展名为obj的目标程序

B、C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

C、用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

D、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("%d, %d" , c1, c2-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("%d,%f”, &a, &c);

B、scanf("d=%d, c=%f”, &a, &c);

C、scanf("%d%f”, &a, &c);

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

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

int i,j;

scanf("%3d%2d",&i,&j);

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

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("%d\n",--x);

A、17

B、18

C、23

D、24

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

int k=11;

printf("k=%d,k=%o,k=%x\n",k,k,k);

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("X=%f,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≥10 或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(" %d\n", x); else printf(" %d\n", y);

B、if (a == 0)printf(" %d\n", y); else printf(" %d\n", x);

C、if (a != 0)printf(" %d\n", x); else printf(" %d\n", y);

D、if (a == 0)printf(" %d\n", x); else printf(" %d\n", y);

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("%d * %d = %d ", i, j, i * j);

printf("\n");

}

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("%d", x--);

} 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

C、10

D、20

6-5、以下能对一维数组a进行正确初始化的语句是(C)。

A、int a[10]=(0,0,0,0,0)

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

C、int a[]={0}

D、int a[]={{}}

7-1、C语言中函数返回值的类型是由(D)决定的。

A、return语句中的表达式类型

B、调用该函数的主调函数的类型

C、调用函数时临时决定

D、定义函数时所指定的函数类型

7-2、对于 C/C++语言的函数,下列叙述中正确的是(A)。

A、函数的定义不能嵌套,但函数调用可以嵌套

B、函数的定义可以嵌套,但函数调用不能嵌套

C、函数的定义和调用都不能嵌套

D、函数的定义和调用都可以嵌套

7-3、在一个被调用函数中,关于 return 语句使用的描述,错误的是(D)。

A、被调用函数中可以不用 return 语句

B、被调用函数中可以使用多个 return 语句

C、被调用函数中,如果有返回值,就一定要有 return 语句

D、被调用函数中,一个 return 语句可以返回多个值给调用函数

7-4、以下说法正确的是:(A)

A、一个C语言源文件(.c文件)必须包含main函数

B、一个C语言源文件(.c文件)可以包含两个以上main函数

C、C语言头文件(.h文件)和源文件(.c文件)都可以进行编译

D、在一个可以正确执行的C语言程序中,一个C语言函数的声明(原型)可以出现任意多次

7-5、对于以下递归函数f,调用f(4),其返回值为(A)。

int f(int n)

{ if (n) return f(n - 1) + n;

else return n;

}

A、10

B、4

C、0

D、以上均不是

8-1、设变量定义为 int a[2]={1,3}, *p=&a[0]+1;,则*p的值是( B)。

A、2

B、3

C、4

D、&a[0]+1

8-2、根据声明int a[10], *p=a; ,下列表达式错误的是(C )。

A、a[9]

B、p[5]

C、a++

D、*p++

8-3、设有下面的程序段:char s[]="china"; char *p; p=s; 则下列叙述正确的是(D )。

A、s和p完全相同

B、数组s中的内容和指针变量p中的内容相等

C、数组s的长度和p所指向的字符串长度相等

D、*p与s[0]相等

8-4、存在定义int a[10], x, *pa; , 若pa=&a[0], 下列的哪个选项和其他3个选项不是等价的? (A)

A、x=*pa;

B、x=*(a+1);

C、x=*(pa+1);

D、x=a[1];

8-5、对a数组元素不正确的引用是(D)

int a [ ]={ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, * p=a, i; 其中0≤i≤9。

A、a[p-a]

B、*(&a[i])

C、p[i]

D、a[10]