C语言复习题答案文档格式.docx

上传人:b****6 文档编号:16385818 上传时间:2022-11-23 格式:DOCX 页数:52 大小:67.33KB
下载 相关 举报
C语言复习题答案文档格式.docx_第1页
第1页 / 共52页
C语言复习题答案文档格式.docx_第2页
第2页 / 共52页
C语言复习题答案文档格式.docx_第3页
第3页 / 共52页
C语言复习题答案文档格式.docx_第4页
第4页 / 共52页
C语言复习题答案文档格式.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

C语言复习题答案文档格式.docx

《C语言复习题答案文档格式.docx》由会员分享,可在线阅读,更多相关《C语言复习题答案文档格式.docx(52页珍藏版)》请在冰豆网上搜索。

C语言复习题答案文档格式.docx

A)long 

B)_2Test  

C)3Dmax   

D)A.dat

2.3以下不是关键字的标识符是

A)continue 

B)char 

C)If 

D)default

2.4C语言提供的合法数据类型为

A)复数型 

B)逻辑型 

C)双精度型 

D)集合型

2.5以下选项中不合法的int整型常数是

A)32768 

B)-56 

C)03 

D)0xAF

2.6下列字符串中,可以作为“字符串常量”的是

A)ABC 

B)″ABC″ 

C)'

abc'

D)'

a'

2.7以下字符串中,合法的长整型常数是

A)0L 

B)4962710 

C)0.054838743 

D)2.1869e10

2.8在下面的运算符中,优先级最高的运算符是

A)%B)&

&

C)<

D)!

2.9逗号表达式(x=2*3,x+8,x+12),x+x的值是

A)6B)26C)52D)12

2.10设intn=6;

表达式n%=n+=n-=n*n的值为

A)10B)0C)12D)6

2.11TURBOC中,int类型变量所占字节数是

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

2.12在C语言中,下列合法的字符常量是

A)’\039’B)’\x76’C)’ab’D)’\o’

二、填空题

2.13下列程序执行后的结果是_70_______。

main() 

{int 

x='

f'

printf("

%d\n"

,'

A'

-'

+x);

}

2.14把a1、a2定义成长整型变量的定义语句是__longinta1,a2;

________________。

2.15在C语言中,实型变量分为两种类型,它们是_______________。

2.16已有定义:

intx;

floaty;

doublez;

,则计算表达式:

x+y*z后,所得数据的类型是_____________。

2.17已有定义:

floatf=13.8;

,则表达式:

(int)f%3的值是_______1__。

2.18若s是int型变量,且s=6,则下面表达式的值为__1___。

s%2+(s+1)%2

2.19若a是int型变量,则计算下面表达式后a的值为___2__。

a=25/3%3

2.20若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++

后,x的值为__10__,n的值为__6__。

2.21若有定义:

charc=‘\010’;

则变量c中包含的字符个数为__1___。

2.22若有定义:

intx=3,y=2;

floata=2.5,b=3.5;

则下面表达式的值为___1___。

(x+y)%2+(int)a/(int)b

2.23已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a’+‘8’-‘3’的值为___102__(f)。

三、分析以下程序运行结果。

2.24

main()

{

inta,b,x,y;

a=5;

b=7;

x=++a;

y=b++;

printf(“%d,%d,%d,%d” 

a,b,x,y);

6,8,6,7

四、简答题

2.25假设m是一个三位数,写出将m的个位,十位,百位反序而成的三位数(例如:

123反序为321)的C语言表达式。

2.26已知intx=10,y=12;

写出将x和y的值互相交换的表达式。

第三章顺序结构

3.1格式输入与输出 

3.1.1 

printf函数(格式输出函数) 

printf格式控制字符

格式字符

说明

d,i

以十进制形式输出带符号整数(正数不输出符号)

o

以八进制形式输出无符号整数(不输出前缀0)

x,X

以十六进制形式输出无符号整数(不输出前缀0x)

u

以十进制形式输出无符号整数

f

以小数形式输出单、双精度实数,隐含输出6位小数

e,E

以指数形式输出单、双精度实数

g,G

以%f或%e中较短的输出宽度输出单、双精度实数

c

输出单个字符

s

输出字符串

在格式命令的%和格式控制字符之间可以加上一些任选的修饰符,用来对输出格式作进一步的限定。

这些修饰符如下所示:

附加格式说明符(修饰符)

修饰符

功能

例子

m

输出数据域宽度,数据长度<

m,左补空格;

否则按实际输出

%4d:

表示输出至少占4列

.n

对于实数:

指定小数点后小数位数(四舍五入)

%6.2f:

表示输出2位小数

对于字符串:

表示只输出字符串的前n个字符

%.3s:

表示输出字符串前3个字符

输出数据在域内左对齐(缺省右对齐)

%-16d:

表示输出数据左对齐

+

输出有符号正数时,在其前面显示正号(+)

%+d:

表示输出整数的正号

输出数值时,指定左边不使用的空位置自动填0

%08d:

表示输出十进制整数,不足8位时左补0

#

对于无符号数:

在八进制和十六进制数前显示前导0,0x或0X

%#X:

表示输出的十六进制前显示前导0X

l

在d、o、x、u前,指定输出为longint型

%ld:

表示输出长整型数

在e、f、g前,指定输出精度为double型(缺省也为double)

%lf:

表示输出为double型数

3.1.2scanf函数(格式输入函数) 

scanf函数的格式控制符

格式控制符

字符意义

d,i

输入十进制整数

输入八进制整数

x

输入十六进制整数

输入无符号十进制整数

f或e

输入实型数(用小数形式或指数形式)

输入单个字符

输入字符串

使用scanf函数注意事项:

(1)如果相邻两个格式控制符之间,不指定数据分隔符(如逗号、冒号等),则相应的两个输入数据之间,至少用一个空格分隔,或者用Tab键分隔,或者输入一个数据后,按回车,然后再输入下一个数据。

例如:

scanf("

%d%d"

&

a,&

b);

假设给a输入2,给b输入6,则正确的输入操作为:

26↙

或者

2↙

6↙

(2)格式控制字符串中出现的常规字符(包括转义字符),务必原样输入。

scanf("

%d:

%d"

h,&

m,&

s);

假设要给h输入12,给m输入30,给s输入10,正确的输入操作应为:

12:

30:

10↙

3.2字符数据的输入输出 

3.2.1 

putchar函数(字符输出函数) 

3.2.2getchar函数(字符输入函数) 

3.3复合语句和空语句

1、复合语句。

可以用{}把一些语句括起来成为复合语句。

复合语句的语句形式如下:

{

语句1;

语句2;

…;

语句n;

}

3.1定义变量如下:

intx;

floaty;

则以下哪一个输入语句是正确的

A)scanf(“%f%f”,&

x,&

y);

B)scanf(“%f%d”,&

C)scanf(“%f%d”,&

y,&

x);

D)scanf(“%5.2f%2d”,&

3.2putchar函数可以向终端输出一个

A)字符或字符变量的值B)字符串

C)实型变量D)整型变量的值

3.3下列叙述正确的是()。

A)赋值语句中的“=”是表示左边变量等于右边表达式

B)赋值语句中左边的变量值不一定等于右边表达式的值

C)赋值语句是由赋值表达式加上分号构成的

D)x+=y;

不是赋值语句

3.4执行下列程序片段时输出结果是P52

unsignedinta=65535;

printf(“%d”,a);

A)65535B)-1C)-32767D)1

3.5对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则应按那一种方式输入数据。

intk1,k2,k3,k4;

scanf(“%d%d”,&

k1,&

k2);

scanf(“%d,%d”,&

k3,&

k4);

A)1020↙B)1020↙C)10,20↙D)1020↙

1020↙1020↙10,20↙10,20↙

3.6执行下列程序片段时的输出结果是

intx=13,y=5;

printf(“%d”,x%=(y/=2));

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

3.7下列程序的输出结果是

intx=023;

printf(“%d”,--x);

A)17B)18C)23D)24

3.7已有如下定义和输入语句,若要求a1、a2、c1、c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的输入方式是

inta1,a2;

charc1,c2;

a1,&

a2);

scanf(“%c%c”,&

c1,&

c2);

A)1020AB↙B)1020↙C)1020AB↙D)1020AB↙

 

AB↙

3.8若定义x为double型变量,则能正确输入x值的语句是P58

A)scanf(“%f”,x);

B)scanf(“%f”,&

C)scanf(“%lf”,&

D)scanf(“%5.1f”,&

3.9若运行时输入:

12345678↙,则下列程序运行结果为。

{

inta,b;

scanf(“%2d%2d%3d”,&

a,&

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

A)46B)579C)5690D)出错

3.10有输入语句:

scanf(“a=%d,b=%d,c=%d”,&

b,&

c);

为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是。

A)132↙B)1,3,2↙

C)a=1b=3c=2↙D)a=1,b=3,c=2↙

二、填空题

3.11一个C程序由若干个______文件组成,而一个这样的文件可以由若干个______组成。

3.12一个表达式要构成一个C语句,必须_____________。

3.13复合语句是用一对__________界定的语句块。

3.14printf函数和scanf函数的格式说明都使用___%___字符开始。

3.15scanf处理输入数据时,遇到下列情况时该数据认为结束:

(1)________,

(2)_______,(3)_________。

P60

3.16C语言本身不提供输入输出语句,其输入输出操作是由__________来实现的。

3.17一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令______________ 

#include“stdio.h”。

三、程序阅读题

3.18用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,问在键盘上如何输入?

{

floatx,y;

charc1,c2;

scanf(“a=%db=%d”,&

scanf(“%f%e”,&

scanf(“%c%c”,&

3.19写出以下程序的输出结果。

{inta=12345;

floatb=-198.345,c=6.5;

printf(“a=%4d,b=%-10.2e,c=%6.2f\n”,a,b,c);

3.20写出下列程序的输出结果

main()

intx=12;

printf(“%d,%o,%x,%u,”,x,x,x,x);

3.21写出下列程序的输出结果

printf(“*\n**\n***\n****\n”);

3.22写出下列程序的输出结果

charx=’a’,y=’b’;

printf(“%e\\%c\n”,x,y);

printf(“x=\’%3x\’,\’%-3x\’\n”,x,x);

}

四、编程题

3.23已知一名学生的三门课程考试成绩,计算他总成绩和平均成绩。

试编写程序,并画出算法的N-S结构图。

3.24从键盘上输入公里数,将其转换成米。

3.25根据商品的原价和折扣率,计算商品的实际售价。

第四章选择结构

4.1.1关系运算符

在C语言中有以下关系运算符:

① 

<

小于

② 

<

小于或等于

③ 

>

大于

④ 

>

大于或等于

⑤ 

== 

等于

⑥ 

!

不等于

4.1.2关系表达式

关系表达式的值是真”和“假”,用“1”和“0”表示。

如 

7>

2的值为“真”,即为1。

3<

8的值为“假”,即为0。

关系表达式通常用于C程序设计的逻辑判断语句的条件表达式中。

使用关系表达式要注意以下几点:

C语言中,非0值即为“真”,0值即为“假”;

4.2.1逻辑运算符

C语言中提供了三种逻辑运算符:

(1)&

与运算

(2)|| 

或运算

(3)!

非运算

逻辑运算符和其它运算符优先级的关系可表示如下:

!

(非)→&

(与)→||(或)

“&

”和“||”低于关系运算符,“!

”高于算术运算符。

如图4-1所示

图4-1

4.3.1if语句的三种形式

1.不含else子句的if语句

语句形式为:

if(表达式)语句

(1)if(x>

y)printf(“%d”,x);

/*如果x>

y,则输出x*/

(2)if(a<

b){t=a;

a=b;

b=t;

}/*如果a<

b,则将a、b相互交换*/

2.if…else语句

if(表达式)语句1

else语句2

3、if-else-if形式。

当有多个分支需要选择时,可采用if-else-if语句,其一般形式为:

if(表达式1)语句1

elseif(表达式2)语句2

elseif(表达式3)语句3

……

elseif(表达式m)语句m

else语句n

(2)在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。

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

但要注意的是在}之后不能再加分号。

if(x>

y)

{a++;

b++;

else

{a--;

b--;

4.3.2if语句的嵌套

在if语句中又包含一个或多个if语句称为if语句的嵌套。

一般有如下形式:

if(表达式1)

内嵌if

if(表达式2)语句1

else语句2

if(表达式3)语句3

else语句4

4.4条件运算符

条件运算符为?

由条件运算符组成的条件表达式的一般形式为:

表达式1?

表达式2:

表达式3

其求值规则为:

先求解表达式1的值,如果表达式1的值为真,则以表达式2的值作为整个条件表达式的值,否则以表达式3的值作为整个条件表达式的值。

4.5switch语句

C语言还提供了另一种用于多分支选择的switch语句,其一般形式为:

switch(表达式)

case 常量表达式1:

语句1

case 常量表达式2:

语句2

case 常量表达式n:

语句n

default:

语句n+1

switch语句执行过程是:

计算switch后圆括号中表达式的值。

并逐个与case后的常量表达式值进行比较,当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,然后不再进行判断,继续执行后面所有case后的语句。

如表达式的值与所有case后的常量表达式值均不相同,则执行default后的语句。

4.1逻辑运算符两侧运算对象的数据类型。

A)只能是0或1B)只能是0或非0正数

C)只能是整型或字符型数据D)可以是任何类型的数据

4.2能正确表示“当x的取值在[1,10]或[200,210]范围内为真,否则为假”的表达式是。

A)(x>

=1)&

(x<

=10)&

(x>

=200)&

=210)

B)(x>

=1)||(x<

=10)||(x>

=200)||(x<

C)(x>

D)(x>

4.3C语言对嵌套if语句的规定是:

else总是与。

A)其之前最近的if配对B)第一个if配对

C)缩进位置相同的if配对D)其之前最近的且尚未配对的if配对

4.4设:

inta=1,b=2,c=3,d=4,m=2,n=2;

执行(m=a>

b)&

(n=c>

d)后n的值为。

4.5下面哪一个是错误的if语句(设intx,a,b;

A)if(a=b)x++;

B)if(a=<

b)x++;

C)if(a-b)x++;

D)if(x)x++;

4.6对下述程序,哪一个是正确的判断。

{intx,y;

x=y;

y=x;

x++;

y++;

printf(“%d,%d”,x,y);

A)有语法错误,不能通过编译B)若输入3和4,则输出4和5

C)若输入4和3,则输出3和4D)若输入4和3,则输出4和5

4.7若w=1,x=2,y=3,z=4,则条件表达式w<

x?

w:

y<

z?

y:

z的值是

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

4.8若inti=10;

执行下列程序后,变量i的正确结果是

switch(i)

case9:

i+=1;

case10:

case11:

default:

A)10B)11C)12D)13

4.9若有说明语句inti=5,j=4,k=6;

floatf;

则执行f=(i<

j&

i<

k)?

i:

(j<

j:

k;

语句后,f的值为。

A)4.0B)5.0C)6.0D)7.0

4.10设x=10,y=5,z=15,执行下面一段程序后z的结果是

if(x>

y)

if(y>

z)x=y;

elsez=y;

A)7B)6C)5D)4

4.11C语言提供6种关系运算符,按优先级高低它们分别是______________________。

4.12C语言提供三种逻辑运算符,按优先级高低它们分别是____________________。

4.13将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式 

4.14设x,y,z均为int型变量;

写出描述“x,y和z中有两个为负数”的C语言表达式:

4.15已知A=7.5,B=2,C=3.6,表达式A>

B&

C>

A||A<

C>

B的值是。

4.16有intx=3,y=-4,z=5;

则表达式(x&

y)==(x||z

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1