C语言习题顺序选择循环docWord文档格式.docx

上传人:b****5 文档编号:20880553 上传时间:2023-01-26 格式:DOCX 页数:30 大小:32.86KB
下载 相关 举报
C语言习题顺序选择循环docWord文档格式.docx_第1页
第1页 / 共30页
C语言习题顺序选择循环docWord文档格式.docx_第2页
第2页 / 共30页
C语言习题顺序选择循环docWord文档格式.docx_第3页
第3页 / 共30页
C语言习题顺序选择循环docWord文档格式.docx_第4页
第4页 / 共30页
C语言习题顺序选择循环docWord文档格式.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

C语言习题顺序选择循环docWord文档格式.docx

《C语言习题顺序选择循环docWord文档格式.docx》由会员分享,可在线阅读,更多相关《C语言习题顺序选择循环docWord文档格式.docx(30页珍藏版)》请在冰豆网上搜索。

C语言习题顺序选择循环docWord文档格式.docx

结果占2列,但732占3列大于2列,所以按实际位数输出:

732oprintf(%10d\n”,a);

结果占10列,但732占3列小于10列,所以左端补7个空格。

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

结果占10列,“■"

表示把数值放到左端,732占3列小于10列,所以右端补7个空格。

答案:

732

□□□□□□□732/*□表示空格*/

732口口口口口□口

3.已知chara='

\103'

;

则语句printf(“%3d”,a);

执行后的输出结果为(□表示空格)。

A)n67B)'

c'

C)67aD)103

’\103,是一个转义字符,表示一个八进制数所代表的字符,转换为十进制为67。

卩卅曲(“%3<

1”间;

把'

转换为十进制数输出,结果占3列。

但67占2列,小于要求的3列,所以左补空格,即口67。

答案:

Co

4.下列程序运行后结果是。

#definea3345.67

{printf(u%f\n,,,a);

printf(M%e\nn,a);

printf(u%4.2f\n,,,a);

printf(“%3.1f\n”,a);

printf(“%10.3t\n”,a);

printf(“%・10.3f\n”,a);

分析:

f格式符,用来输出实数,以小数形式输出,小数点后输出6位。

所以printf(u%f\n;

a);

输出结果为3345.670000o

%m.nf是指,要输出的数占m列,同吋小数点保留n位(四舍五入),如果输出的数大于m,则原样输出,同时小数点保留n位(四舍五入)。

如果小于m,则左补空格,同时小数点保留n位(四舍五入)。

printf(“%4.2f\n”,a);

输出结果为3345.67。

printf(“%3.1f\n”,a);

输出结果为3345.7。

e格式符,以规范化指数的形式输出,所以printf(“%e\n”,a);

3.345670e+03。

3345.670000

3.345670c+03

3345.67

3345.7

□□3345.670/*(□表示空格)*/

3345.670□口

5.下列程序运行后结果是o

charx=0x227f;

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

A)22B)127C)255D)8831

变量x被定义成字符型,字符型占1个字节,而x被赋值为一个4位16进制的值22ff,占16位。

所以227f高8位被舍去,x的值为7fH。

执行printf(“%d\n”,x);

即把x以有符号的十进制整数输出。

Bo

6.设intb=0;

下列语句的输出结果是o

printfr%d,%cT;

++b,bT;

A)1,1B)1,0C)0,0D)0,-1

printf函数的执行顺序是由右到左,输出顺序是由左向右。

7.下列程序运行吋,若从键盘输入:

123<

回车>

45678<

回车〉后结果是。

charcl,c2,c3,c4,c5,c6;

scanf(“%c%c%c%c”,&

c1,&

c2,&

c3,&

c4);

c5=gctchar();

c6=getchar();

putchar(cl);

putchar(c2);

printf(“%c%c\n”,c5,c6);

scanf(格式控制,地址表列)的功能是:

从键盘读取输入的信息。

其中”格式控制”的含义同printf函数;

”地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。

其scanf(“%c%c%c%c”,&

cl,&

c4)的作用是:

按照cl,c2,c3,c4在内存的地址将cl,c2,c3,c4的值存进去。

由于”%&

表示按字符形式输入数据,所以”回车符”作为一个字符,输入有效。

getchar()函数的作用从终端输入一个字符。

putchar()函数的作用是向终端输出一个字符。

所以cl=l、c2=2、c3=3、c4=回车,c5=4、c6=5。

1245o

8.设有定义inta;

floatb;

执行scanf(“%2d%f:

&

a,&

b);

语句时,若从键盘输入876543.0<

冋车〉,

a和b的值分别是o

scanf()可以指定输入数据所占的列数,系统自动按它截取所需数据。

%2d说明了a占两列,即为87,剩下的数字应该赋给b,但是6和5之间有一个空格,为输入终止符,所以543.0被舍弃,即b的值为6。

876。

9.已知a,b,c为int类型,执行scanf(“a=%d,b=%d,c=%d”,&

b,&

c);

后,若要使得a为1,b为2,c为3,则以下选项中正确的输入形式是()。

A)1,2,3B)a=l,b=2,c=3C)123D)a=lb=2c=3

scanf中如果在字符控制串中除了格式说明符以外还有其他字符,则在输入数据时应输入与这些相同的字符。

10.设有intx,y;

scanf(“%d%*d%d”,&

x,&

y);

从键盘输入数据10口20口30<

后,y的值是o

%*d表示跳过。

所以y的值是30。

30。

2.3.3习题

一、选择题

1.设a、b、c为整型变量,若从键盘给a、b、c输入数据,则正确的输入语句是o

A)scanf(M%f%f%f,&

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

C)scanf(“%d%d%d”,a,b,c);

D)scanf(“%d%d%d”,&

a;

b;

2.下列程序执行后输出的结果是o

#include<

intx='

d'

printf(“%c”,'

A'

+(x・'

a'

+l));

A)GB)HC)ED)J

3•设整型变量a,b的值均为80printfC%d,%d;

(a卄,++b),b・・);

的输出值是・

A)8,8B)8,7C)9,9D)8,9

4.若有以下程序段,执行后输出的结果是o

intm=100,n=0100;

printff'

%d,%o\n”,m,n);

A)100,100B)100,0100C)100,4D)100,04

5.有以下程序,其输出结果是o

#include<

floatx=l;

inty;

x++;

y=x+l;

printf(<

<

x=%d,y=%f,,x,y);

D)x=0,y=0.000000

D)2,65,1.5,6.5

A)x=2,y=3B)x=2,y=3.0C)x=2.0,y=3

6.有以下程序,其输出结果是-

inta;

charc=10;

floats100.0;

doublex;

a=f7=c*=(x=6.5);

printf(“%d,%d,%3・1f,%3.1f’,a,c,f,x);

A)1,65,1,6.5B)1,65,1.5,6.5C)1,65,1.0,6.5

二、填空题

1.下列程序输出的结果是。

intx=7,y=5;

printff尸%d\n”,x%y);

2.下列程序输出的结果是°

floatd,f;

longk;

inti;

i=4k=d=20/3;

printf(,,%3d%31d%5.2f%5.2f\n,,,i,k,f,d);

3.下列程序输出的结果是:

-

intk=ll;

printf("

k=%d,k8=%o,k16=%x\n”,k,k,k);

4•下列程序输出结果是:

#defineBL“!

printf(K%2s\n,,,BL);

printf(“%15s\n”,BL);

printf(“%15.4s\n”,BL);

printf(%15.4s\n:

BL);

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

intb,c;

floata;

scanf(“%f,%d,c=%d”,&

6.当输入为56789012345a72时,执行下列程序段后,变量i、j、x、y、c的值各是什么?

intij;

floatx,y;

charc;

scanf(“%2d%f%f%c%d”,&

i,&

y,&

c,&

j);

三、编程题

1.己知x=3.2,y=7,z=2,计算y/3*x-2的值。

2.输入一个华氏温度,要求输出摄氏温度(结果保留2位)。

公式为c=5/9*(f-32)o

3.从键盘输入一个小写字母,用大写形式输出该字母。

4•把16进制数12a以10进制形式输出。

5.输入两个整数,将其值交换。

2.3.4本节易错知识点

本节阐述(printf()>scanf()>putchar()和getcharf)的具体用法。

对于scanf()的用法应注意以下儿点:

1)如果在字符控制串中除了格式说明符以外述有其它字符,则在输入数据时应输入与这些字符相同的字符。

例如:

scaf(“%d,%d”,&

输入时用如下形式:

5,6

此处5后面是逗号,它与scanf()函数字符控制串中的逗号对应。

输入吋只能输入逗号,不可用”空格”替代。

2)用%。

格式输入字符时,空格、回车及转义字符均作为有效字符输入。

scanf(“%c%c%c”,&

若要使变量a,b,c的值分别为'

、’B'

、’C'

就只能输入ABCv回车>。

当使用多个scanf()函数连续给多个字符型变量赋值时,注意输入的方法。

scanf("

%c”,&

cl);

c2);

如果要使得cl的值为U,c2的值为'

b;

则正确输入方法为:

abv回车〉,而不是av回车〉b<回车>。

3)遇到满足最大字段宽度或非法输入时认为结束,女口:

”%2d”,只取两位数。

女口:

scanf(“%d%c%f'

&

若输入:

1234a56p,78则a的值1234,b的值a,c的值56。

2.3.5实验指导

实验名称顺序结构程序设计

—、实验目的

1.掌握数据的输入输出的方法,能正确使用有关格式转换符;

2.熟悉顺序结构程序中语句的执行过程;

3.掌握顺序结构程序的设计方法

二、实验内容与要求

1.下列程序作用是依次输入2个整数,计算并输出这2个整数之差。

//include<

floata,b,c;

printf(uinputa,b”\n”);

scanf(“%d,%d”,&

c=a-b;

printf(uc=%d\n,,,c);

%1分析程序,若运行时输入:

100,60<

冋车〉后预期结果是多少?

%1上机运行该程序,查看程序运行结果是否符合题目要求。

如果不符合分析原因并修改程序,直至符合要求为止。

2.按下列公式计算并输出s的值,s=3/(a+b)2。

有下列程序:

^include<

inta,b;

floats;

s=3/(a+b)*(a+b);

/*有两个错误*/

printf(“s=%f\n”,s);

%1根据题意修改上述程序,并进行调试,直到正确为止。

%1在①的基础上,将scanf(“%d,%d”,&

改为scanf(“%d%d”,&

后再编译、链接、运行。

3.分析下列程序,写出预期结果,然后输入调试,查看运行结果与预期结果是否一致并分析其原因。

#include"

stdio.h"

inta=・1;

unsignedb=65534;

printf(H%d,%o,%x,%u\n"

a,a,a,a);

printf(”b=%d”,b);

4•编程并上机调试运行

1)设圆半径为r=1.5,求圆周长和面积。

要求用scanf函数输入数据,输出吋取小数点后两位。

2)输入一个3位十进制整数,分别输出百位、十位以及个位上的数。

3)从键盘输入一个带2位的实数,将其整数部分和小数部分分离后输岀。

输入321.54,输出321.54=321+0.54o

4)用getchar函数读入两个字符,然后分别用putchar和printf函数输出这两字符。

2.4选择结构程序设计

241要点导读

1•关系运算符与关系表达式

关系运算是逻辑运算屮比较简单的一种。

它的实质是两个值Z间的”比较运算”,其结果只有两种:

”真”、”假因此关系表达式的运算结果也只有两种:

”真”、”假S

C语言提供6种关系运算符:

>、<、>=、=和!

乞在这里〉、<、>=>优先级相同,==和匸优先级相同。

前4种的优先级高于后两者。

2.逻辑运算符与逻辑表达式

逻辑运算符可以将多个关系表达式或逻辑量连接起来,构成逻辑表达式。

C语言里提供了3种逻辑运算符:

!

、&

、||。

不同逻辑运算符进行运算所得的结杲如下表:

a

b

a&

a|b

真(非0)

假(0)

真⑴

(1)

假⑼

在C语言中,关系表达式与逻辑表达式的结果用数据值“1"

表示真、“0”表示假。

判断一个表达式时,非“(F即为真、“0”为假。

3.if语句的三种基本形式

用if语句可以构成选择结构。

它判断给定的条件是否满足,以决定执行某个分支程序段。

C语言的if语句有三种基本的实现形式:

if、if・else和if-clscif形式。

4.switch语句

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

switch(表达式)

{case常量表达式1:

语句1

case常量表达式2:

语句2

case常量表达式n:

语句ndefault:

语句n+1}

其表达式应为整型、字符型、枚举型表达式。

它的语意是:

计算表达式的值,并依次与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句。

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

2.4.2经典例题分析

1.若有inti;

则执行语句i=4>

3>

2;

后,i的值为o

这是一个关系表达式,在这个表达式中有、'

和可知'

>

'

的优先级高于且'

的结合性是一>

,所以,先判断4>

3,显然是为真的,即表达式的值为1。

再判断1是否大于2,显然不成立为假,即为0,然后把0赋给i,所以i的值为0。

0o

2.若变量0为chai■类型,下列选项屮能正确判断出c为数字字符的表达式是o

A),0,<

=c<

=t9,B)c>

='

0'

c<

=9C)c>

=0&

=9'

D)c>

=0,&

=,9,

在C语言中要表达a>

b>

c应该这样写a>

b&

c,因为c为数字字符,应在O〜9Z间,所以应为:

c>

-0*&

-9\

Do

3.已知intx=l,y=2,z=3;

则逻辑表达式x<

y||++z运算后,z的值是。

C语言在计算逻辑表达式时,如果在某一步已得到了整个表达式的结果,则后面的部分将不再计算。

对于&

表达式,若己得到一个操作数为0,则后面的操作数不再计算。

对于||表达式,若已得到一个操作数为1,则后面的操作数不再计算。

本题•!

1<

2显然为真即为1,所以++z不需要再运算了,z的值没改变,还是为3。

3。

4.下列程序运行的结果是:

o

charc-d1;

if('

m'

vcv='

z'

)printff'

YES”);

elseprintff'

NO”);

这是if・else形式,格式为:

if(表达式)语句1

else语句2

其语义是:

如果表达式的值为真,则执行语句1,否则执行语句2。

本题中,表达式m,<

=tz,结果为真,所以执行printf(“YES”);

YESo

5.if(表达式)语句,其中”表达式”o

A)必须是逻辑表达式B)必须是关系表达式

C)必须是逻辑表达式和关系表达式D)可以是任意合法的表达式

表达式一般是关系表达式或逻辑表达式,用于描述选择结构的条件,但也可以是其它类型的表达式,只要其合法,在其值非0时都视为真,所以其它表达式也可以做if语句的判断条件。

6.下列程序运行结果是:

inta=l;

if(a)printffYES”);

elseprintf(uNOn);

if(表达式)屮的”表达式”可以是任意合法的,其实质是判断表达式是真还是假。

本题a的值为1,if(a)printf(uYESn);

elseprintfCNOn);

的含义是判断a是否为真(非0),如果为真则输出”YES”,否则输出”NO”o

YES。

7.C语言对于嵌套的if语句规定else总是匹配。

A)与最外层的ifB)与之前最近的且未配对的if

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

在C语言中,为了避免语句造成二义性,规定,else总是与它前面最近的未配对的if配对。

8.下列程序运行结果是:

intx=l,y=2,z=3;

if(x<

y)

if(y<

z)printf(“%d”,卄z);

elseprintf(“%d”,++y);

printf(u%d\n'

,x-H-);

由if-clsc匹配规则可知,else与if(y<

z)配对,也就是说当x<

y成立时,y<

z不成立,执行printf(“%d”,卄丫);

丫勺成立,则执彳亍printf(“%d”,++z);

因为x=l,y=2,很显然x<

y成立,接着判断y<

z是否成立,很显然是成立的,那么直接执行printf(t<

%d\n;

++z);

然后执行printf(u%d\n,,,x++);

41o

9.若有定义:

floatx=1.5;

inta=l,b=3,c=2;

则正确的switch语句是

A)switch(x)

case1.0:

printf(u*\nn);

case2.0:

printf(“**\n”);

}

C)switch(a+b)

case1:

printf(n*\nM);

case2+1:

**\n”);

B)switch((int)x);

printf(M*\nn);

case2:

printf(,,**\nn);

D)switch(a+b)

casec:

printf(“**\n”);

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

switch(表达式)

case常量表达式1:

case常量表达式2:

语句2case常量表达式n:

语句n

default:

语句n+1

表达式一般应为整型、字符型、枚举型表达式。

A选项中case后是浮点型,应为一个整型、字符型或枚举型常塑表达式;

B选项switch((int)x);

|'

多了分号,D选项casec:

printf(“中c是一个变量,应为一个常量表达式。

10.下列程序执行后结果是0

inta=16,b=21,m=0;

switch(a%3)

case0:

m-H-;

break;

m-H-;

switch(b%2)

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

当前位置:首页 > 总结汇报 > 学习总结

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

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