C语言程序复习题及参考答案

更新时间:2024-05-04 21:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言程序设计

目 录

第一章 C语言程序设计概述 .................................................................................... 1

一、主要内容......................................................................................................... 1 二、练习题部分..................................................................................................... 1 三、参考答案......................................................................................................... 3 第三章 数据类型、运算符和表达式........................................................................ 4

一、主要内容......................................................................................................... 4 二、练习题............................................................................................................. 5

(一)练习题之数据类型.............................................................................. 5 (二)练习题之 运算符和表达式................................................................ 8 三、参考答案....................................................................................................... 13

(一)练习题之数据类型 参考答案.......................................................... 13 (二)练习题之 运算符和表达式 参考答案............................................ 14

第四章 顺序程序设计.............................................................................................. 15

一、主要内容....................................................................................................... 15 二、练习题........................................................................................................... 15 三、参考答案....................................................................................................... 16 第五章 选择结构程序设计...................................................................................... 17

一、主要内容....................................................................................................... 17 二、练习题........................................................................................................... 17 三、参考答案....................................................................................................... 22 第六章 循环结构...................................................................................................... 26

一、主要内容....................................................................................................... 26 二、练习题........................................................................................................... 26 三、参考答案....................................................................................................... 35 第七章 数组.............................................................................................................. 40

一、主要内容....................................................................................................... 40 二、练习题........................................................................................................... 40 三、参考答案....................................................................................................... 50 第八章 函数.............................................................................................................. 55

一、主要内容....................................................................................................... 55 二、练习题........................................................................................................... 56 三、参考答案....................................................................................................... 63 第九章 预处理命令.................................................................................................... 68

一、主要内容....................................................................................................... 68 二、练习题........................................................................................................... 68 第十章 指针.............................................................................................................. 70

一、主要内容....................................................................................................... 70 二、练习题........................................................................................................... 70 三、参考答案....................................................................................................... 75 第十一章 结构体和共用体...................................................................................... 77

一、主要内容....................................................................................................... 77 二、练习题........................................................................................................... 77 三、参考答案....................................................................................................... 79 第十二章 位运算...................................................................................................... 83

一、主要内容....................................................................................................... 83 二、练习题........................................................................................................... 83 第十三章 文件.......................................................................................................... 84

一、主要内容....................................................................................................... 84 二、练习题........................................................................................................... 84 三、参考答案....................................................................................................... 86

第一章 C语言程序设计概述

一、主要内容

c程序基本结构特点

函数与主函数

1. 程序由一个或多个函数组成,函数由函数头和函数体构成。 2. 必须有且只能有一个主函数main()

3. 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。

程序语句

1. C程序由语句组成,用“;”作为语句终止符

2. /* */部分为注释,不能嵌套,不产生编译代码

编译预处理不是C语言的一部分

C程序的运行步骤

运行一个C程序,从输入源程序开始,要经过编辑源程序文件(?C)、编译生成目标文件(?obj)、连接生成可执行文件(?exe)和执行四个步骤

二、练习题部分

一、选择题:

1、C语言程序编译过程中产生的文件有: ( )

A. 索引文件和文本文件两种 B. 目标文件和可执行文件

C. 二进制文件一种 D. ASCII码文件和二进制文件两种

2、以下说法中正确的是 : ( )

A. C语言程序总是从第一个定义的函数开始执行

B. 在C语言程序中,要调用的函数必须在main函数中定义 C. C语言程序总是从main函数开始执行

D. C语言程序中,main函数必须放在程序的开始部分

3、C语言源程序的基本单位是:( )

A. 函数 B. 标识符 C. 表达式 D. 语句

4、以下叙述正确的是:( )

A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点

5、在一个C语言程序中 :( )

A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置

6、C++语言中工程文件的扩展名是: 。( )

A. .cpp B. .prj C. .c D. .obj

第 1 页 共 86页

(说明:BC++环境中工程文件扩展名.prj ,VC中为.dsp) 7、C文件的扩展名是:( )

(A).cpp (B).prj (C).c (D).txt

8、一个C程序的执行是从: ( )

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

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

9、以下叙述正确的是: ( )

A)在C程序中,main函数必须位于程序的最前面

B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

10、以下叙述不正确的是: ( )

A) 一个C源程序可由一个或多个函数组成 B) 一个C源程序必须包含一个main函数 C) C程序的基本组成单位是函数

D) 在C程序中,注释说明只能位于一条语句的后面

11、C语言规定:在一个源程序中,main函数的位置:( ) A) 必须在最开始 B) 必须在系统调用的库函数的后面 C) 可以任意 D) 必须在最后

12、一个C语言程序是由 : ( )

A) 一个主程序和若干子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成

13、以下叙述中正确的是:( )

A) C语言的源程序不必通过编译就可以直接运行

B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译

14、以下对C语言函数的描述中,正确的是 :( ) A) C程序必须由一个或一个以上的函数组成 B) C函数既可以嵌套定义又可以递归调用 C) 函数必须有返回值,否则不能使用函数

D) C程序中有调用关系的所有函数必须放在同一个程序文件中

15、C 语言的注释定界符是:( )

A. { } B. [ ] C. * * D. /* */

第 2 页 共 86页

二、填空题:

1、C程序的运行需要经过 _ 和 _ _两步进行。 2、C语言的编译单位是 __ __。 3、C语言程序由__ _组成。

4、结构化设计中的三种基本结构是_ _、_ _和_ __ 。 5、C 语言中,一个函数一般由两个部分组成,它们是_ __和__ _。 6、一个C语言程序总是从_ _函数开始执行程序。 7、一个 C 程序中至少应包括一个__ _。

8、C语言函数是由函数头和函数体两部分组成。其中,函数头包括_ __,__ __和__ _。

9、C程序中用/*……*/ 括起来的内容是程序的 。 10、C源程序的基本单位是 。

三、判断题:

1、C语言程序的三种基本结构是递归、选择、循环。 ( ) 2、函数若无返回值,则它的返回值是整数值0。 ( ) 3、函数若无返回值,则它一定无形参。 ( )

三、参考答案

一、选择题:

1~5:BCACB 6~10:BCACD 11~15:CBBAD 二、填空题: 1、编译 连接 2、文件 3、函数

4、顺序结构 选择结构 循环结构 5、函数首部 函数体 6、主函数(或main函数) 7、函数

8、函数类型 函数名 函数参数 9、注释 10、函数

三、判断题:

1、× 2、× 3、×

第 3 页 共 86页

7、有如下程序段,其输出结果是: ( )

int a=3;

float b=15.6,f=1.5;

printf(“%d”,a+(int)b/2+(int)f%3); A)10 B)11 C)12 D)13

8、以下程序的输出结果是: ( ) main( ) {int a=3 ;

printf ( \

A. 4 3 B. 4 4 C. 5 3 D. 5 4 9、以下程序的输出结果是( )。

main( ) {

int a=10;

printf ( \ }

(A)11 10 (B)11 11 (C)12 20 (D)12 11

10、若有定义:int a=8,b=5,c;执行语句c=a / b+0.4 ; 后c的值为( )。

(A)1.4 (B)1 (C)2.0 (D)2

11、若x,i,j和k都是int型变量, 则执行下面表达式x = (i = 4, j = 16, k = 32)后x的值为( )

A) 4 B) 16 C) 32 D) 52

12、若有代数式3ae/bc,则不正确的C语言表达式是: ( ) A) a / b / c * e * 3 B) 3 * a * e / b / c C) 3 * a * e / b * c D) a * e / c / b * 3

13、以下不正确的叙述是:( )

A)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量

C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。

14、已知各变量的类型说明如下: ( ) int i = 8, k, a, b; unsigned long w = 5;

double x = 1.42, y = 5.2;

则以下符合C语言语法的表达式是:

A) a += a -= (b = 4) * (a = 3) B) a = a * 3 = 2

第 9 页 共 86页

C) x % (-3) D) y = f1oat(i)

15、若有定义:int a = 7; float x = 2.5, y = 4.7; 则表达式x + a % 3 * (int)(x + y) % 2 / 4的值是:( )

A) 2.500000 B) 2.7500OO C) 3.500000 D) 0.000000。

16、表达式b*=(b=3)+(a=10)的值为: ( ) (A)3 (B)19 (C)27 (D)39

17、假设所有变量均为整型,则表达式(a = 2, b = 5, b ++, a + b)的值是: ( A) 7 B) 8 C) 6 D) 2 18、若有以下程序:

main()

{int k=2,i=2,m;

m=(k+=i*=k); printf(\ }

执行后的输出结果是: ( ) (A) 8,6 (B) 8,3 (C) 6,4 (D) 7,4

)

19.在C语言中运算对象必须是整型的运算符是:( ) A. % B. / C. = = D. <=

20.若有以下定义:int x=10,y=3,z; 则语句:printf(“%d\\n”,z=(x%y, x/y));的输出结果为 ( ) A. 1 B. 0 C. 2 D. 3

21.下列哪一个表达式的值是整数类型( )。 A. 15/2 B. 15/2+2.0 C. 25/5.0 D. 0.5*10

22.若double x=2,y;则执行y=x+3/2;后,y的值是( )。 A. 3.500000 B. 3.000000 C. 2.000000 D. 3

23、以下运算符中优先级最低的是 ( )

A) && B) & C) || D) |

24、设以下变量均为int类型,则值不等于7的表达式是( ) A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1) C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)

25.设有以下定义

int a=0; double b=1.25; char c=’A’; #define d 2

则下面语句中错误的是: ( ) (A) a++; (B) b++ (C) c++; (D) d++;

26、若有int x=12,n=5;则x%=(n%=2);后x的值是。 ( )

第 10 页 共 86页

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

27、设有定义int k=0;则以下四个表达式中与其它三个的值不同的是。 ( ) A、k++ B、k+=1 C、++k D、k+1

二、填空题:

1、若有以下定义int m=5,y=2;则计算表达式y+=y-=m*=y后的y值是 。 2、若a为int型变量,则下面表达式的值为 。 (a = 4 * 5, a * 2), a + 6

3、若a是int型变量,则执行表达式\后,a的值为 。 4、s=3,s++,s; 这个语句执行完后,s的值为 。

5、C语言中的标识符只能由三种字符组成,他们是字母、数字和 。 6、已知 i=5;写出语句 a= -- i, 执行后整型变量 a 的值是 。 7、设 x 的值为15,n 的值为2,则表达式 x*=n+3 运算后 x 的值是 。 8、int x=2;x*=y=z=4; 则x的值为 。 9、表达式 i++ 相当于表达式i= 。

10、若s是unsigned int型变量,则下面表达式的值是________。

s%2+(s+1)%2 11、程序段执行后c3的值是_______。

int c1=1,c2=2; float c3; c3=1/c2*c1;

12、已知’a’的ASCII码为97,printf(“\\\n”,’e’)的输出是______;

printf(“]\\n”,’e’)的输出是___________。 13、表达式:5%2=__________,2/3=__________。

14、在C语言中,单目运算符的结合方向(运算方向)是_____________;唯一的一个三目运算符是_____________。

15、设a,b,t 为整型变量,初值为a=7,b=9,执行完语句t=(a>b)?a:b后,t 的值是 。

16、算术表达式 a=b+3 中, a、b 称为_________, 3 称为________,=、+称为_________。

17、若有定义:int b = 7;float a = 2.5,c = 4.7;

则表达式a + (int)(b / 3 * (int)(a + c) / 2) % 4的值为 。 18.C语言中为了简化程序,提高程序的编译效率,在赋值运算符前面加上其他运算符号构

第 11 页 共 86页

成复合运算符。例如:x=x+5 用复合运算符可以写成 。 19、表达式1/4+2.75的值是 。

20、若a是int型变量,且a的初值为6,则计算表达式“a+=a-=a*a”后a的值为 21、若s是int型变量,且s=6,则表达式“s%2+(s+1)%2”的值为 。 22、若x是int型变量,则执行表达式“x=(a=4,6*2)”后,x的值为 。 23、若x和n均是int型变量,且x的初值为12,n的初值为5,

则执行表达式“x%=(n%=2)”后,x的值为 。

24、设 int x=1/4;则x的值为 。

25、若 char w,int x,float y,double z;则表达式w*x+z-y的结果为 类型。 26、设 x 的值为15,n 的值为2,则表达式 x*=n+3 运算后 x 的值是 。 27、假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是 。 28、int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b的值为 。

29、执行语句\后,变量a、c的值依次为 、 。 30、表达式a = 3, a ++, - -a的值为 。

31、设a、b、c为整型数,且a = 3,b = 5,c = 2,则执行完以下语句:

a *= 16 + (b ++) - (++ c);后a的值是 。

32、以下程序运行后的输出结果是 main( )

{ int a=1,b=4,c=2; a=(a+b)/c;

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

运行结果 ;

33、设int a=3,b=5;float x=7.5,y=3.5;则表达式

(float)a+b/2+(int)x%(int)y; 的值是 34、在C语言的表达式中,x=x+5 用复合运算符可以写成 。 35、设a=12,表达式a/=a+a 运算后,a的值是 。 36.若定义:char c=‘\\010’;则变量c中包含的字符个数是 。 37.赋值语句是由 加上一个分号构成。 38.a=12,n=5,表达式a%=(n%=2)值是 。 39.设说明为 int a=10; 执行语句 a*=1+2+3; 后a的值是____________。 40、设int m=1,n=2;则m==--n的结果是 。

41、设x为int型变量,则执行语句x=10;x+=x-=x-x;后x的值为 。

第 12 页 共 86页

42、设所有变量均为整型,则表达式(a=5,b=3,--a,++b,a-b)的值为 。 三、看程序写结果:

1、写出以下程序运行的结果________。 main ( ) {

int i,j,m,n; i=8; j=10; m=++i; n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n); }

2、阅读下列程序,写出运行结果 #include main( )

{ int a=1,b=4,c=2; a=(a+b)/c;

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

运行结果 ;

3、阅读下列程序,写出运行结果 main() { int n=1;

printf(\; }

运行结果 ;

4、main( )

{ int i=3 ;

printf(\ i++);

} 运行结果 ;

5、执行以下程序,写出程序运行结果 main() {

int a=-017L; printf(\}

三、参考答案

(一)练习题之数据类型 参考答案

第 13 页 共 86页

一、选择题:

1、B 2、B 3、C 4、B 5、B 6、A 7、C 8、D 9、A 10、D 11、A 12、A 13、C 14、D 15、C 16、C 17、D 18、A 19、B 20、A

二、填空题:

1、float double

2、 (1) ”c:\\\\TC\\\\LIB”

(2) ”He said :\\”I\\? am a student” (3)”85%% student passed” 3、不是 ,不同 4、double

5、字母、下划线 6、正确 7、 ‘f’

三、看程序写结果 1、x=555 2、 a b

97 98 3、67 c

(二)练习题之 运算符和表达式 参考答案

一、选择题:

1、D 2、D 3、D 4、A 5、A 6、D 7、B 8、A 9、A 10、B 11、C 12、C 13、D 14、A 15、A 16、D 17、B 18、C 19、A 20、D 21、A 22、B 23、C 24、C 25、D 26、B 27、D

二、填空题:

1、-16 2、 26 3、2 4、4 5、下划线 6、4 7、 75 8、8 9、i+1 10、1

11、0 12、□□□□e □□101 13、1 0

14、由右向左 条件运算符 15、9 16、变量 常量 运算符 17、5.5 18、x+=5 19、2.75 20、-60 21、1 22、12 23、0 24、0 25、double

26、75 27、6 28、4 29、11 6 30、3 31、54 32、1 33、6.0 34、x+=5 35、0

36、1 37、赋值表达式 38、0 39、60 40、 1 41、20 42、0

三、看程序写结果 1、9,11,9,10 2、 1 3、1 0 1 4、4,3 5、-15

第 14 页 共 86页

第四章 顺序程序设计

一、主要内容

输入输出函数

1. printf函数的格式考查:

a)格式:printf(“格式控制串”,输出表)

b)输出表:要输出的数据(可以没有,多个时以“,”分隔)

格式控制串:包含两种信息

? 格式说明: %[修饰符]格式字符 ,用于指定输出格式 ? 普通字符或转义序列:原样输出 c)修饰符m、n、l的功能: 修饰符 功能 m 输出数据域宽,数据长度

a)格式:scanf(“格式控制串”,地址表)

b)格式控制字符串中包含的非格式控制字符要原样输入;如:

scanf(“sum=%d”,&a); 输入时”sum=”也要输入。

scanf函数中没有精度控制,如:scanf(“%5.2f”,&a) ;是非法的。 3.getchar( )获取一个字符。 a)格式:char c; c=getchar();

4. putchar()输出一个字符,括号中的参数是一个字符变量或常量 a)格式:putchar(‘a’);

二、练习题

一、选择题: 1.设有语句scanf(“%d,%d”,&m,&n);要使m、n的值依次为2,3,正确的输入是 ( ) A. 2?3↙ B. 2,3↙ C. 2;3 D. 2↙3↙

2.______是C语言的标准函数名。 ( )

A. scanf B. case C. while D. int

3、若有int i=-19,j=i%4;printf(“%d”,j);结果为。 ( ) A、-3 B、1 C、3 D、-1

4、int x,y;

第 15 页 共 86页

scanf(“%d,%d”,&x,&y) ;若要使x得11,y得12,则以下输入形式中错误的是。 ( ) A、11,12↙ B、 11空格12↙ C、11,空格↙12↙ D、11,↙12↙ 二、填空题:

1、在TC中,printf()函数输出表列的求值顺序是 。 2、在scanf函数中, 表示变量的地址。

3、以下程序的运行结果是 。 main()

{ printf(\

4、若想通过以下输入语句使 a=5.0,b=4,c=3,则输入数据的形式应该是 。 int b,c; float a;

scanf(\,%d,c=%d\,&a,&b,&c);

5、若变量x、y已定义为int类型且X的值为99,y的值为9,

请将输出语句printf(_____,x/y);补充完整,使其输出的计算结果形式为:x/y=11。

6、表达式pow(2.8,sqrt(double(x)))值的数据类型为 。

7、 输入一个华氏温度,要求输出摄氏温度: void main( ) {

float c,f;

printf(\请输入一个华氏温度:\ ;

; /* 摄氏温度c= (f - 32) */

printf(\摄氏温度为%5.2f\\n\}

8、int x=102,y=012;printf(“-,-\\n”,x,y); 则执行结果是 。

三、参考答案

一、选择题:

1、B 2、A 3、A 4、B 二、填空题:

1、由右向左 2、& 3、computer,□□com 4、5,4,c=3 5、“x/y=%d” 6、double 7、scanf(“%f”,&f); c=5.0/9*(f-32); 8、102,10

第 16 页 共 86页

第五章 选择结构程序设计

一、主要内容

三种程序结构:顺序结构、选择结构、循环结构 if语句(条件选择语句) a)if语句的三种形式:

b)if后面的表达式类型任意的;若执行语句是多条,必须为复合语句,即 写在一对花括号内。

c)if结构可以嵌套,注意缺省{ }时,else总是和它上面离它最近的未配对

的if配对 switch语句

a)格式中,E1,E2,…En是常量表达式,且值必须互不相同

b)注意执行时语句中有break和无break时,执行流程的区别。(本处常考) c)default可以不写。

二、练习题

一、选择题:

1、经过以下语句定义后, 表达式z+=x>y?++x:++y 的值为:( )

int x=1,y=2,z=3;

A. 2 B. 3 C. 6 D. 5

2、能正确表示逻辑关系:\或a≤ 0\C 语言表达式是 : ( )

A. a>=10 or a<=0 B.a>=0|a<=10 C. a>=10&&a<=0 D. a>=10||a<=0 3.已知int a=5,b=7,c=3;则逻辑表达式a

A. 1 B. 0 C. 3 D. 4 4、下列程序的输出结果是 :( )

main()

{ int x, y, z ; x=y=z=1 ;

++x&&++y||++z ;

printf(\ }

A.1 1 1 B. 2 2 2 C. 2 2 1 D. 2 1 1 5、在C语言中逻辑值“真”是用 表示的。 ( ) A. 预定义为真值的宏 B. 非零值 C. 正数 D. 非零整数

6、 设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句:( )

if (x=y) printf(\A. 语法错 B. 不能判断x和y是否相等

C. 编译出错 D. 能判断x和y是否相等 7、以下程序的输出结果是:( )。 main()

{ int a=5,b=4,c=6,d;

printf(\

第 17 页 共 86页

}

A. 5 B. 4 C. 6 D. 不确定

8、若希望当A 的值为奇数时, 表达式的值为\真\的值为偶数时, 表达式的值为\假\则以下不能满足要求的表达式是 :( )

A. A%2==1 B. !(A%2==0) C. !(A%2) D. A%2

9、若希望当A 的值为奇数时, 表达式的值为\真\的值为偶数时, 表达式的值为\假\则以下不能满足要求的表达式是 :( )

A. A%2==1 B. !(A%2==0) C. !(A%2) D. A%2 10、执行以下语句后,a,b的值分别为:( )。 int a ,b ,c ; a=b=c=1 ; ++a||++b&&++c;

(A)2 ,2 (B)1 ,1 (C)2 ,1 (D)1 ,2 11、 判断char型变量c l是否为小写字母的正确表达式为: ( )

A. ’a’<=c1<=’z’ B. (c1>=a)&&(c1<=z)

C. (‘a’>=c1) (‘z’<=c1) D. (c1>=’a’)&&(c1<=’z’) 12、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值分别是:( )。

if(x>y) z=x ; x=y ; y=z ;

(A)x=10,y=20,z=30 (B)x=20,y=30,z=10

(C)x=20,y=30,z=30 (D)x=20,y=30,z=20 13、以下选项中非法的表达式是: ( )

(A) 0<=x<100 (B) i=j==0 (C) (char)(65+3) (D) x+1=x+1 14、阅读以下程序:

main() { int x;

scanf(\

if(x--<5) printf(\else printf(\}

程序运行后,如果从键盘上输人5,则输出结果是:( ) (A)3 (B) 4 (C) 5 (D) 6 15. C语言对于嵌套if语句规定else总是与( )匹配。 A)与最外层的if B.)与之前最近的if

C)与之前最近的不带else的if D)与最近的{ }之前的if

16.以下有关switch语句的正确说法是________。 ( A)break语句是语句中必须的一部分

B)在switch 语句中可以根据需要使用或不使用break语句 C)break语句在switch 语句中不可以使用

D)在switch 语句中的每一个case都要用break语句

17.设有: int a=2,b=3,c=7,d=8,m=3,n=3; 执行 (m=a>b)&&(n=c>d) 后的_________。

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

第 18 页 共 86页

) n 值为(

18.可判断非0变量 a为正,b为负的正确表达式是_________。 )

A) a*b <0 B) (a>0||b >0)&&a*b <0

C) (a<0||b<0)&&a*b <0 D) a>0&&a*b<0

(

19.假定 int a=3, b=2, c=1, 表达式: (c==a>c)+(a/b) 的值是_________。 )

A) 1.75 B) 2 C) 1.5 D) 2.5

20.设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的

(

表达式是__________。 ( )

A) a&&b B) a<=b C) a||b+c&&b-c D) !((a

21、如果a=4,b=3,c=2,d=1,则条件表达式a<b?a:c<d?c:d的值是。 ( ) A、1 B、2 C、3 D、4 22、设有定义int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式(m=ad)后,n的值为。 ( ) A、1 B、2 C、3 D、0

二、填空题:

1、设x=3,y=-4,z=5,则表达式!(x>y)+(y!=z)||(x+y)&&(y=z)的值是 。 2、 当a=5,b=4,c=2时,表达式 a>b!= c的值是 _______。

3、 为表示关系x ≥ y ≥z,正确的C语言逻辑、关系表达式为 。 4、有int a=3,b=4,c=5,x,y;,则以下表达式的值为

!(x=a)&&(y=b)&&c

5、在C语言中,表示逻辑\真\值用 .

6、当a=3,b=2,c=1时,表达式f=a>b>c的值是 .

7、与if(x==0) 等价的表达式写法写法是 。

8、若定义:int a=5,b=2,c=1; 则表达式 a-b>c||b==c 的值是 ; 表达式 a-b>c&&b==c 的值是 。

9、 “: ?”条件运算符是C语言中唯一的三目运算符。由其连接的表达式为条件表达式,

其格式为: <表达式1>?<表达式2>:<表达式3> 。执行过程:首先计算表达式1的值,如果表达式1的值是“真”(非0),则整个表达式的值为 的值;如果表达式1的值是“假”(0),则整个表达式的值为 的值。 10.C语言提供的三种逻辑运算符是______、______和_______。 11.若已知a=10,b=20,则表达式!a

12.若a,b变量的值任意,表达式(a==b)&&(a>b)的值是_________。 13.设x,y,z均为int型变量,请写出:

(1)x、y中至少有一个小于z的表达式_____________; (2)x、y都大于z的表达式____________;

14、能正确表示a>=10或a<=0的关系表达式为 。 15、以下程序的功能是:输出a、b、c三个变量中的最小值,请填空。 #include

第 19 页 共 86页

main()

{ int a,b,c,min;

scanf(\

if( ) min=a; else min=b; if( ) min=c; printf(\

三、看程序写结果:

1、main()

{ int x, y, z ; x=y=z=1 ;

z=++x&&++y||++z ; 运行结果: printf(\

2、main( ) { int m=5;

if(m++>5)printf(\,m); 运行结果: else printf(\,m--); }

3、若从键盘输入58,则以下程序输出的结果是 。 main() { int a;

scanf(“%d”,&a);

if(a>50) printf(“%d”,a); if(a>40) printf(“%d”,a); if(a>30) printf(“%d”,a); }

4、 以下程序运行后的输出结果是 。 main()

{ int p,a=5; if(p=a!=0)

printf(\else

printf(\}

5、 源程序如下: #include main()

{ int a=2,b=7,c=5; switch(a>0)

第 20 页 共 86页

{case 1: switch(b<0)

{case 1: printf(\ case 2: printf(\ }

case 0: switch(c==5)

{case 0: printf(\case 1: printf(\case 2: printf(\}

default: printf(\}

printf(\

运行结果:

6、main( )

{ int x=1, y=2;

switch(x) {case 0 :

case 1 : switch(y) 运行结果:

{ case 1:

case 2: y+=2; }

case 2 : x++; }

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

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

{ int x=1,y=1,a=0,b=0; switch(x)

{ case 1:switch(y) {case 0: a++; case 1: b++;

case 2: b++;break;

}

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

}

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

8. 以下程序段的运行结果是_________。

int a,b,c; a=50;b=100;c=30;

if(a>b) { a=b;b=c;c=a;}

第 21 页 共 86页

printf(\

9.下面程序的输出结果是

void main() { int i=10; switch(i) {

case 9:i+=1; case 10:i+=1; case 11:i+=1; case 12:i+=1; }

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

( )

四、编程题:

1、从键盘输入3个整数,按照从大到小的顺序输出。 2、设有一个函数如下。编程,输入x,求y值。 y=错误!未找到引用源。

2

3、求一元二次方程ax+bx+c=0的根,要求考虑所有根的情况。 4、设有一个函数如下。编程,输入x,求y值。 y=错误!未找到引用源。

5.输入一个字符,判断其是否是大写字母,如果是,则转换成为小写字母,然后输出字符,如果不是小写字母,则直接输出字符。 6、有分段函数 x, x<1 y= 2x -1,1<=x<10 3x –11, x>=10

编写一程序,输入x,输出相应的y值。

7、分别用两种判断方法,写出判断一个年份为闰年的程序。

三、参考答案

一、选择题:

1~5 :CDCCB 6~10:BCCCC 11~15:DCDBC 16~20:BDDBD 21、A 22、B 二、填空题:

1、1 2、1 3、(x>=y)&&( y>=z ) 4、0 5、非零值 6、0 7、if(!x) 8、1 0 9、表达式2 ,表达式3 10、 ! ,&& ,|| 11、1 12、0 13、(1)x

第 22 页 共 86页

(2) x>z && y>z 14、a>=10||a<=0 15、(1)a

1、221 2、6 3、585858 4、1 5、#& 6、2,4

7、a=1,b=3 8、a=100,b=30,c=100 9、i=13

四、编程题:

1、从键盘输入3个整数,按照从大到小的顺序输出。 main() {

int x,y,z,t;

scanf(\if (x>y)

{t=x;x=y;y=t;} /*交换x,y的值*/ if(x>z)

{t=z;z=x;x=t;} /*交换x,z的值*/ if(y>z)

{t=y;y=z;z=t;} /*交换z,y的值*/ printf(\}

2、设有一个函数如下。编程,输入x,求y值。 y=错误!未找到引用源。 #include main()

{ double x,y;

scanf(\if (x>0) y=sqrt(x); else if(x<0)

y=(x+1)/(x*x+2); else y=0;

printf(\}

2

3、求一元二次方程ax+bx+c=0的根,要求考虑所有根的情况。 教材P108例5.6

4、设有一个函数如下。编程,输入x,求y值。 y=错误!未找到引用源。

第 23 页 共 86页

本文来源:https://www.bwwdw.com/article/2hdg.html

Top