ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:39.02KB ,
资源ID:13520900      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13520900.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言习题顺序选择循环.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

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

1、C语言习题顺序选择循环2、3顺序结构程序设计2.3.1 要点导读1、printf() 与scanf()语句。printf() 与scanf()语句就是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出与输入操作。它们位于stdio、h库文件中。2、字符数据的输入输出。最简单的字符输入输出函数就是getchar()与putchar()。两者分别从键盘读一个字符或向显示屏写一个字符。2.3.2 经典例题分析1、下列程序运行后输出的结果就是 。#include void main() int a=0,b=0;a=10;b=20;printf(“a+b=%d”,a+b);分

2、析:printf( )就是输出函数,它的括号内由两部分组成:1)控制字符串,就是用双引号括起来的字符串,它包括两种信息:(1) 格式说明。由”%”与格式字符组成,如:%d、%f、%c等。它的作用就是将输出的数据转换成指定的格式输出。(2) 普通字符。需要原样输出的字符。2)”输出表列”就是需要输出的一些数据,可以就是表达式。题目中a的值就是10,b的值就是20,在中,”a+b= “就是普通字符,需原样输出。输出表列就是一个表达式,它的结果以整型输出。答案:a+b=30。2、下列程序运行后输出的结果就是 。#include void main() int a=732;printf(“%dn”,a

3、);printf(“%2dn”,a);printf(“%10dn”,a);printf(“%-10dn”,a);分析:d格式符,用来输出十进制整数。其中%d,按整型数据的实际长度输出。%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。printf(“%dn”,a);把a的值按原样输出:732。printf(“%2dn”,a);结果占2列,但732占3列大于2列,所以按实际位数输出:732。printf(%10dn”,a);结果占10列,但732占3列小于10列,所以左端补7个空格。printf(“%-10dn”,a); 结果占10列,“-”表示

4、把数值放到左端,732占3列小于10列,所以右端补7个空格。答案: 732732 732 /*表示空格*/ 7323、已知char a=103;则语句printf(“%3d”,a);执行后的输出结果为(表示空格) 。A)67 B)c C)67 D)103分析:103就是一个转义字符,表示一个八进制数所代表的字符,转换为十进制为67。printf(“%3d”,a);把103转换为十进制数输出,结果占3列。但67占2列,小于要求的3列,所以左补空格,即67。答案:C。4、下列程序运行后结果就是 。#include #define a 3345、67void main() printf(“%fn”,

5、a);printf(“%en”,a);printf(“%4.2fn”,a);printf(“%3.1fn”,a);printf(“%10.3fn”,a);printf(“%-10.3fn”,a);分析:f格式符,用来输出实数,以小数形式输出,小数点后输出6位。所以printf(“%fn”,a);输出结果为3345、670000。%m、nf就是指,要输出的数占m列,同时小数点保留n位(四舍五入),如果输出的数大于m,则原样输出,同时小数点保留n位(四舍五入)。如果小于m,则左补空格,同时小数点保留n位(四舍五入)。printf(“%4.2fn”,a);输出结果为3345、67。printf(“%

6、3.1fn”,a);输出结果为3345、7。e格式符,以规范化指数的形式输出,所以printf(“%en”,a);3、345670e+03。答案:3345、670000 3、345670e+03 3345、67 3345、73345、670 /*(表示空格)*/3345、6705、下列程序运行后结果就是 。#include void main() char x=0x227f; printf(“%dn”,x);A) 22 B) 127 C) 255 D)8831分析:变量x被定义成字符型,字符型占1个字节,而x被赋值为一个4位16进制的值22ff,占16位。所以227f高8位被舍去,x的值为7f

7、H。执行printf(“%dn”,x);即把x以有符号的十进制整数输出。答案:B。6、设int b=0;下列语句的输出结果就是 。printf(“%d,%d”,+b,b-);A) 1,1 B) 1,0 C) 0,0 D) 0,-1 分析:printf函数的执行顺序就是由右到左,输出顺序就是由左向右。答案:C。 7、下列程序运行时,若从键盘输入:12345678后结果就是 。#include void main() char c1,c2,c3,c4,c5,c6; scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4); c5=getchar( );c6=getchar( );putc

8、har(c1);putchar(c2);printf(“%c%cn”,c5,c6);分析:scanf(格式控制,地址表列)的功能就是:从键盘读取输入的信息。其中”格式控制”的含义同printf函数;”地址表列”就是由若干个地址组成的表列,可以就是变量的地址,或字符串的首地址。其scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4)的作用就是:按照c1,c2,c3,c4在内存的地址将c1,c2,c3,c4的值存进去。由于”%c”表示按字符形式输入数据,所以”回车符”作为一个字符,输入有效。getchar( )函数的作用从终端输入一个字符。putchar( )函数的作用就是向终端输出一

9、个字符。所以c1=1、c2=2、c3=3、c4=回车,c5=4、c6=5。答案:1245。8、设有定义int a;float b;执行scanf(“%2d%f”,&a,&b);语句时,若从键盘输入876 543、0,a与b的值分别就是 。分析:scanf()可以指定输入数据所占的列数,系统自动按它截取所需数据。%2d说明了a占两列,即为87,剩下的数字应该赋给b,但就是6与5之间有一个空格,为输入终止符,所以543、0被舍弃,即b的值为6。答案:87 6。9、已知a,b,c为int类型,执行scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);后,若要使得a为1,b为2,c为3,则

10、以下选项中正确的输入形式就是( )。A) 1,2,3 B) a=1,b=2,c=3 C) 1 2 3 D) a=1 b=2 c=3分析:scanf中如果在字符控制串中除了格式说明符以外还有其她字符,则在输入数据时应输入与这些相同的字符。答案:B。10、设有int x,y;scanf(“%d%*d%d”,&x,&y);从键盘输入数据102030后,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(

11、“%d%d%d”,&a,&b,&c);C) scanf(“%d%d%d”,a,b,c); D) scanf(“%d%d%d”,&a;&b;&c);2、下列程序执行后输出的结果就是 。#includevoid main()int x=d;printf(“%c”,A+(x-a+1); A) G B) H C) E D) J3、设整型变量a,b的值均为8。printf(“%d,%d”,(a+,+b),b-);的输出值就是 。A)8,8 B)8,7 C)9,9 D)8,94、若有以下程序段,执行后输出的结果就是 。int m=100,n=0100;printf(“%d,%on”,m,n);A) 100

12、,100 B) 100,0100 C) 100,4 D) 100,045、有以下程序,其输出结果就是 。#include void main() float x=1; int y;x+;y=x+1;printf(“x=%d,y=%f”,x,y);A) x=2,y=3 B) x=2,y=3.0 C) x=2、0,y=3 D) x=0,y=0、0000006、有以下程序,其输出结果就是 。 #include void main() int a; char c=10; float f=100、0;double x;a=f/=c*=(x=6、5);printf(“%d,%d,%3.1f,%3.1f”,

13、a,c,f,x);A) 1,65,1,6、5 B) 1,65,1、5,6.5 C) 1,65,1、0,6、5 D) 2,65,1、5,6、5二、填空题1、下列程序输出的结果就是 。#include void main() int x=7,y=5; printf(“y=%dn”, x%y); 2、下列程序输出的结果就是 。#include void main() float d,f; long k; int i; i=f=k=d=20/3; printf(“%3d%3ld%5.2f%5.2fn”,i,k,f,d);3、下列程序输出的结果就是: 。#include void main() int

14、k=11;printf(“k=%d,k8=%o,k16=%xn”,k,k,k);4、下列程序输出结果就是: 。#include #define BL “ahpu、edu、cn!”void main() printf(“%2sn”,BL); printf(“%15sn”,BL);printf(“%15、4sn”,BL);printf(“%-15、4sn”,BL);5、若想通过以下输入语句使a=5、0,b=4,c=3,则输入数据形式应该就是 。int b,c;float a;scanf(“%f,%d,c=%d”,&a,&b,&c);6、当输入为56789 012345a72时,执行下列程序段后,变

15、量i、j、x、y、c的值各就是什么?int i,j;float x,y;char c;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

16、) 如果在字符控制串中除了格式说明符以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。例如: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

17、);如果要使得c1的值为a,c2的值为b,则正确输入方法为:ab,而不就是ab。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 void main() float

18、a,b,c; printf(“input a,b”n”); scanf(“%d,%d”,&a,&b); c=a-b; printf(“c=%dn”,c); 分析程序,若运行时输入: 100,60 后预期结果就是多少? 上机运行该程序,查瞧程序运行结果就是否符合题目要求。如果不符合分析原因并修改程序,直至符合要求为止。2、按下列公式计算并输出s的值,s=3/(a+b)2。有下列程序:#include void main() int a,b; float s; scanf(“%d,%d”,&a,&b); s=3 /(a+b)*(a+b); /*有两个错误*/printf(“s=%fn”,s); 根

19、据题意修改上述程序,并进行调试,直到正确为止。 在的基础上,将scanf(“%d,%d”,&a,&b);改为scanf(“%d%d”,&a,&b);后再编译、链接、运行。3、分析下列程序,写出预期结果,然后输入调试,查瞧运行结果与预期结果就是否一致并分析其原因。#include stdio、hvoid main() int a=-1;unsigned b=65534; printf(%d,%o,%x,%un,a,a,a,a); printf(b=%d,b) ;4、编程并上机调试运行1) 设圆半径为r=1、5,求圆周长与面积。要求用scanf函数输入数据,输出时取小数点后两位。2) 输入一个3位

20、十进制整数,分别输出百位、十位以及个位上的数。3) 从键盘输入一个带2位的实数,将其整数部分与小数部分分离后输出。例如:输入321、54,输出321、54=321+0、54。4) 用getchar函数读入两个字符,然后分别用putchar与printf函数输出这两字符。2、4 选择结构程序设计2.4.1 要点导读1、关系运算符与关系表达式 关系运算就是逻辑运算中比较简单的一种。它的实质就是两个值之间的”比较运算”,其结果只有两种:”真”、”假”。因此关系表达式的运算结果也只有两种:”真”、”假”。C语言提供6种关系运算符:、=、=与!=。在这里、=、优先级相同,=与!=优先级相同。前4种的优先

21、级高于后两者。2、逻辑运算符与逻辑表达式逻辑运算符可以将多个关系表达式或逻辑量连接起来,构成逻辑表达式。C语言里提供了3种逻辑运算符:!、&、|。不同逻辑运算符进行运算所得的结果如下表:ab!a!ba&ba|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语句可以构成选择结构。它判断给定的条

22、件就是否满足,以决定执行某个分支程序段。C语言的if语句有三种基本的实现形式:if、if-else与if-else if形式。4、switch语句C语言提供了另一种用于多分支选择的switch语句,其一般形式为: switch (表达式) case 常量表达式1:语句1 case常量表达式2:语句2case常量表达式n:语句ndefault: 语句n+1 其表达式应为整型、字符型、枚举型表达式。它的语意就是:计算表达式的值,并依次与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句。如果表达式与所有的case后的常量表达式均不相同时,则执行default后的语句

23、。2.4.2 经典例题分析1、若有int i;则执行语句i=432;后,i的值为 。分析:这就是一个关系表达式,在这个表达式中有与=,可知的优先级高于=,且的结合性就是,所以,先判断43,显然就是为真的,即表达式的值为1。再判断1就是否大于2,显然不成立为假,即为0,然后把0赋给i,所以i的值为0。答案:0。2、若变量c为char类型,下列选项中能正确判断出c为数字字符的表达式就是 。A )0=c=0&c=0&c=0&cbc应该这样写ab&bc,因为c为数字字符,应在09之间,所以应为:c=0&c=9。答案:D。3、已知int x=1,y=2,z=3;则逻辑表达式xy|+z运算后,z的值就是

24、。分析:C语言在计算逻辑表达式时,如果在某一步已得到了整个表达式的结果,则后面的部分将不再计算。对于&表达式,若已得到一个操作数为0,则后面的操作数不再计算。对于|表达式,若已得到一个操作数为1,则后面的操作数不再计算。本题中,12显然为真即为1,所以+z不需要再运算了,z的值没改变,还就是为3。答案:3。4、下列程序运行的结果就是: 。#include void main()char c=d; if(mc=z) printf(“YES”); else printf(“NO”);分析:这就是if-else形式,格式为:if(表达式) 语句1 else 语句2其语义就是:如果表达式的值为真,则执

25、行语句1,否则执行语句2。本题中,表达式mc=z 结果为真,所以执行printf(“YES”);答案:YES。5、if(表达式)语句,其中”表达式” 。A) 必须就是逻辑表达式 B) 必须就是关系表达式C) 必须就是逻辑表达式与关系表达式 D) 可以就是任意合法的表达式分析:表达式一般就是关系表达式或逻辑表达式,用于描述选择结构的条件,但也可以就是其它类型的表达式,只要其合法,在其值非0时都视为真,所以其它表达式也可以做if语句的判断条件。答案:D。6、下列程序运行结果就是: 。#include void main()int a=1; if(a) printf(“YES”); else pri

26、ntf(“NO”);分析:if(表达式)中的”表达式”可以就是任意合法的,其实质就是判断表达式就是真还就是假。本题a的值为1,if(a) printf(“YES”); else printf(“NO”);的含义就是判断a就是否为真(非0),如果为真则输出”YES”,否则输出”NO”。答案:YES。7、C语言对于嵌套的if语句规定else 总就是匹配 。A)与最外层的if B)与之前最近的且未配对的ifC)与之前最近的不带else的if D)与最近的 之前的if分析:在C语言中,为了避免语句造成二义性,规定,else总就是与它前面最近的未配对的if配对。答案:B。8、下列程序运行结果就是: 。#

27、include void main() int x=1,y=2,z=3; if(xy) if(yz) printf(“%d”,+z); else printf(“%d”,+y); printf(“%dn”,x+);分析:由if-else匹配规则可知,else与if(yz)配对,也就就是说当xy成立时,yz不成立,执行printf(“%d”,+y);yz成立,则执行printf(“%d”,+z);。因为x=1,y=2,很显然xy成立,接着判断yz就是否成立,很显然就是成立的,那么直接执行printf(“%dn”,+z);然后执行printf(“%dn”,x+);。答案:41。9、若有定义:flo

28、at x=1、5;int a=1,b=3,c=2;则正确的switch语句就是 。A) switch(x) B) switch(int)x); case 1、0:printf(“*n”); case 1:printf(“*n”);case 2、0:printf(“*n”); case 2:printf(“*n”); C) switch(a+b) D) switch(a+b) case 1:printf(“*n”); case 1:printf(“*n”); case 2+1:printf(“*n”); case c:printf(“*n”); 分析:C语言提供了另一种用于多分支选择的switch语句,其一般形式为: switch (表达式) case常量表达式1:语句1 case常量表达式2:语句2case常量表达式n:语句ndefault: 语句n+1表达式一般应为整型、字符型、枚举型表达式。A选项中case后就是浮点型,应为一个整型、字符型或枚举型常量表达式;B选项switch(int)x);中多了分号,D选项case c:printf(“

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

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