C语言习题顺序选择循环.docx

上传人:b****6 文档编号:13520900 上传时间:2023-06-14 格式:DOCX 页数:38 大小:39.02KB
下载 相关 举报
C语言习题顺序选择循环.docx_第1页
第1页 / 共38页
C语言习题顺序选择循环.docx_第2页
第2页 / 共38页
C语言习题顺序选择循环.docx_第3页
第3页 / 共38页
C语言习题顺序选择循环.docx_第4页
第4页 / 共38页
C语言习题顺序选择循环.docx_第5页
第5页 / 共38页
C语言习题顺序选择循环.docx_第6页
第6页 / 共38页
C语言习题顺序选择循环.docx_第7页
第7页 / 共38页
C语言习题顺序选择循环.docx_第8页
第8页 / 共38页
C语言习题顺序选择循环.docx_第9页
第9页 / 共38页
C语言习题顺序选择循环.docx_第10页
第10页 / 共38页
C语言习题顺序选择循环.docx_第11页
第11页 / 共38页
C语言习题顺序选择循环.docx_第12页
第12页 / 共38页
C语言习题顺序选择循环.docx_第13页
第13页 / 共38页
C语言习题顺序选择循环.docx_第14页
第14页 / 共38页
C语言习题顺序选择循环.docx_第15页
第15页 / 共38页
C语言习题顺序选择循环.docx_第16页
第16页 / 共38页
C语言习题顺序选择循环.docx_第17页
第17页 / 共38页
C语言习题顺序选择循环.docx_第18页
第18页 / 共38页
C语言习题顺序选择循环.docx_第19页
第19页 / 共38页
C语言习题顺序选择循环.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言习题顺序选择循环.docx

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

C语言习题顺序选择循环.docx

C语言习题顺序选择循环

2、3顺序结构程序设计

2.3.1要点导读

1、printf()与scanf()语句。

printf()与scanf()语句就是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出与输入操作。

它们位于stdio、h库文件中。

2、字符数据的输入输出。

最简单的字符输入输出函数就是getchar()与putchar()。

两者分别从键盘读一个字符或向显示屏写一个字符。

2.3.2经典例题分析

1、下列程序运行后输出的结果就是。

#include

voidmain()

{

inta=0,b=0;

a=10;

b=20;

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

}

分析:

printf()就是输出函数,它的括号内由两部分组成:

1)控制字符串,就是用双引号括起来的字符串,它包括两种信息:

(1)格式说明。

由”%”与格式字符组成,如:

%d、%f、%c等。

它的作用就是将输出的数据转换成指定的格式输出。

(2)普通字符。

需要原样输出的字符。

2)”输出表列”就是需要输出的一些数据,可以就是表达式。

题目中a的值就是10,b的值就是20,在

中,”a+b=“就是普通字符,需原样输出。

输出表列就是一个表达式,它的结果以整型输出。

答案:

a+b=30。

2、下列程序运行后输出的结果就是。

#include

voidmain()

{

inta=732;

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

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

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

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

}

分析:

d格式符,用来输出十进制整数。

其中%d,按整型数据的实际长度输出。

%md,m为指定的输出字段的宽度。

如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

printf(“%d\n”,a);把a的值按原样输出:

732。

printf(“%2d\n”,a);结果占2列,但732占3列大于2列,所以按实际位数输出:

732。

printf(%10d\n”,a);结果占10列,但732占3列小于10列,所以左端补7个空格。

printf(“%-10d\n”,a);结果占10列,“-”表示把数值放到左端,732占3列小于10列,所以右端补7个空格。

答案:

732

732

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

732□□□□□□□

3、已知chara=‘\103’;则语句printf(“%3d”,a);执行后的输出结果为(□表示空格)。

A)□67B)’c’C)67□D)103

分析:

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

printf(“%3d”,a);把’\103’转换为十进制数输出,结果占3列。

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

答案:

C。

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

#include

#definea3345、67

voidmain()

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

printf(“%e\n”,a);

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

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

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

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

}

分析:

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

所以printf(“%f\n”,a);输出结果为3345、670000。

%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、345670e+03

3345、67

3345、7

□□3345、670/*(□表示空格)*/

3345、670□□

5、下列程序运行后结果就是。

#include

voidmain()

{

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以有符号的十进制整数输出。

答案:

B。

6、设intb=0;下列语句的输出结果就是。

printf(“%d,%d”,++b,b--);

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

分析:

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

答案:

C。

7、下列程序运行时,若从键盘输入:

123<回车>45678<回车>后结果就是。

#include

voidmain()

{

charc1,c2,c3,c4,c5,c6;

scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);

c5=getchar();

c6=getchar();

putchar(c1);

putchar(c2);

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

}

分析:

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

从键盘读取输入的信息。

其中”格式控制”的含义同printf函数;”地址表列”就是由若干个地址组成的表列,可以就是变量的地址,或字符串的首地址。

其scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4)的作用就是:

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

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

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

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

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

答案:

1245。

8、设有定义inta;floatb;执行scanf(“%2d%f”,&a,&b);语句时,若从键盘输入876543、0<回车>,a与b的值分别就是。

分析:

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

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

答案:

876。

9、已知a,b,c为int类型,执行scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);后,若要使得a为1,b为2,c为3,则以下选项中正确的输入形式就是()。

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

分析:

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

答案:

B。

10、设有intx,y;scanf(“%d%*d%d”,&x,&y);从键盘输入数据10□20□30<回车>后,y的值就是。

分析:

%*d表示跳过。

所以y的值就是30。

答案:

30。

2.3.3习题

一、选择题

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

A)scanf(“%f%f%f”,&a,&b,&c);B)scanf(“%d%d%d”,&a,&b,&c);

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

2、下列程序执行后输出的结果就是。

#include

voidmain()

{

intx=‘d’;

printf(“%c”,’A’+(x-’a’+1));

}

A)GB)HC)ED)J

3、设整型变量a,b的值均为8。

printf(“%d,%d”,(a++,++b),b--);的输出值就是。

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

4、若有以下程序段,执行后输出的结果就是。

intm=100,n=0100;

printf(“%d,%o\n”,m,n);

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

5、有以下程序,其输出结果就是。

#include

voidmain()

{

floatx=1;

inty;

x++;

y=x+1;

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

}

A)x=2,y=3B)x=2,y=3.0C)x=2、0,y=3D)x=0,y=0、000000

6、有以下程序,其输出结果就是。

#include

voidmain()

{

inta;

charc=10;

floatf=100、0;

doublex;

a=f/=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、5D)2,65,1、5,6、5

二、填空题

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

#include

voidmain()

{

intx=7,y=5;

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

}

2、下列程序输出的结果就是。

#include

voidmain()

{

floatd,f;

longk;

inti;

i=f=k=d=20/3;

printf(“%3d%3ld%5.2f%5.2f\n”,i,k,f,d);

}

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

#include

voidmain()

{

intk=11;

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

}

4、下列程序输出结果就是:

#include

#defineBL“ahpu、edu、cn!

voidmain()

{

printf(“%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”,&a,&b,&c);

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

inti,j;

floatx,y;

charc;

scanf(“%2d%f%f%c%d”,&i,&x,&y,&c,&j);

三、编程题

1、已知x=3、2,y=7,z=2,计算y/3*x-2的值。

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

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

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

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

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

 

2.3.4本节易错知识点

本节阐述了printf()、scanf()、putchar()与getchar()的具体用法。

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

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

例如:

scaf(“%d,%d”,&a,&b);输入时用如下形式:

5,6

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

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

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

例如:

scanf(“%c%c%c”,&a,&b,&c);

若要使变量a,b,c的值分别为’A’、’B’、’C’,就只能输入ABC<回车>。

当使用多个scanf()

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

例如:

scanf(“%c”,&c1);

scanf(“%c”,&c2);

如果要使得c1的值为’a’,c2的值为’b’,则正确输入方法为:

ab<回车>,而不就是a<回车>b<回车>。

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

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

如:

scanf(“%d%c%f”,&a,&b,&c);若输入:

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

 

2.3.5实验指导

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

一、实验目的

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

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

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

二、实验内容与要求

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

#include

voidmain()

{

floata,b,c;

printf(“inputa,b”\n”);

scanf(“%d,%d”,&a,&b);

c=a-b;

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

}

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

100,60<回车>后预期结果就是多少?

②上机运行该程序,查瞧程序运行结果就是否符合题目要求。

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

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

有下列程序:

#include

voidmain()

{

inta,b;

floats;

scanf(“%d,%d”,&a,&b);

s=3/(a+b)*(a+b);/*有两个错误*/

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

}

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

②在①的基础上,将scanf(“%d,%d”,&a,&b);改为scanf(“%d%d”,&a,&b);后再编译、链接、运行。

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

#include"stdio、h"

voidmain()

{

inta=-1;

unsignedb=65534;

printf("%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、54。

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

2、4选择结构程序设计

2.4.1要点导读

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

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

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

”真”、”假”。

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

”真”、”假”。

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

>、<、>=、==与!

=。

在这里>、<、>=、优先级相同,==与!

=优先级相同。

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

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

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

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

!

、&&、||。

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

a

b

!

a

!

b

a&&b

a|b

真(非0)

真(非0)

假(0)

假(0)

(1)

(1)

真(非0)

假(0)

假(0)

(1)

假(0)

(1)

假(0)

真(非0)

(1)

假(0)

假(0)

(1)

假(0)

假(0)

(1)

(1)

假(0)

假(0)

在C语言中,关系表达式与逻辑表达式的结果用数据值“1”表示真、“0”表示假。

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

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

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

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

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

if、if-else与if-elseif形式。

4、switch语句

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

switch(表达式)

{case常量表达式1:

语句1

case常量表达式2:

语句2

……

case常量表达式n:

语句n

default:

语句n+1}

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

它的语意就是:

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

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

 

2.4.2经典例题分析

1、若有inti;则执行语句i=4>3>2;后,i的值为。

分析:

这就是一个关系表达式,在这个表达式中有’>‘与’=‘,可知’>‘的优先级高于’=‘,且’>‘的结合性就是→,所以,先判断4>3,显然就是为真的,即表达式的值为1。

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

答案:

0。

2、若变量c为char类型,下列选项中能正确判断出c为数字字符的表达式就是。

A)’0’<=c<=‘9’B)c>=‘0’&&c<=‘9’C)c>=0&&c<=9’D)c>=‘0’&c<=‘9’

分析:

在C语言中要表达a>b>c应该这样写a>b&&b>c,因为c为数字字符,应在’0’~’9’之间,所以应为:

c>=‘0’&&c<=‘9’。

答案:

D。

3、已知intx=1,y=2,z=3;则逻辑表达式x

分析:

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

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

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

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

答案:

3。

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

#include

voidmain()

{

charc=‘d’;

if(‘m’

elseprintf(“NO”);

}

分析:

这就是if-else形式,格式为:

if(表达式)语句1

else语句2

其语义就是:

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

本题中,表达式’m’

答案:

YES。

5、if(表达式)语句,其中”表达式”。

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

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

分析:

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

答案:

D。

6、下列程序运行结果就是:

#include

voidmain()

{

inta=1;

if(a)printf(“YES”);

elseprintf(“NO”);

}

分析:

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

本题a的值为1,if(a)printf(“YES”);elseprintf(“NO”);的含义就是判断a就是否为真(非0),如果为真则输出”YES”,否则输出”NO”。

答案:

YES。

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

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

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

分析:

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

答案:

B。

8、下列程序运行结果就是:

#include

voidmain()

{

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

if(x

if(y

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

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

}

分析:

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

因为x=1,y=2,很显然x

答案:

41。

9、若有定义:

floatx=1、5;inta=1,b=3,c=2;则正确的switch语句就是。

A)switch(x)B)switch((int)x);

{{

case1、0:

printf(“*\n”);case1:

printf(“*\n”);

case2、0:

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

printf(“**\n”);

}}

C)switch(a+b)D)switch(a+b)

{{

case1:

printf(“*\n”);case1:

printf(“*\n”);

case2+1:

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

printf(“**\n”);

}}

分析:

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

switch(表达式)

{

case常量表达式1:

语句1

case常量表达式2:

语句2

……

case常量表达式n:

语句n

default:

语句n+1

}

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

A选项中case后就是浮点型,应为一个整型、字符型或枚举型常量表达式;B选项switch((int)x);中多了分号,D选项casec:

printf(“

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2