欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    第4章 选择结构 作业有答案版.docx

    • 资源ID:28294479       资源大小:24.05KB        全文页数:20页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第4章 选择结构 作业有答案版.docx

    1、第4章 选择结构 作业有答案版C程序设计第4章 选择结构习题一、单选题1、以下程序输出结果是 #include int main ( ) int m=5; if (m+ 5) printf (yes:m=%dn,m); else printf (no:m=%dn,m-); return 0;A. 7B. 6C. 5D. 4参考答案:B (if (m+ 5) printf (yes:m=%dn,m); else printf (no:m=%dn,m-); 可清楚的看到对m的引用情况。依然遵循先加一再引用或先引用再加一的原则。)2、若变量都已经说明,则以下程序段输出为( ) #include in

    2、t main ( ) int a,b,c;a=10; b=50; c=30;if (a b) a=b; b=c; c=a; printf(a=%d b=%d c=%dn,a,b,c); A. a=10 b=50 c=10 B. a=10 b=30 c=10C. a=50 b=30 c=10 D. a=50 b=30 c=50参考答案:B 3、为避免嵌套的条件分支语句ifelse的二义性,C语言规定,C程序中的 else总是与_组成配对关系。 A. 其上面距它最近的,并且没有其他else与其配对的if相配对B. 在同一行上的ifC. 缩排位置相同的ifD. 在其之前未配对的if参考答案 :A 4

    3、、以下程序的输出结果是#include int main( ) int a=-1, b=1; if(+a0)& !(b-=0) printf(%d %dn,a,b); else printf(%d %dn,b,a); A. -1 1B. 0 1C. 1 0D. 0 0参考答案:C (因为(+a0)已经为假,!(b-=0)不会被执行,所以b不会改变)5、若执行下面的程序从键盘输入3和4,则输出是_int main( ) int a,b,s; scanf(%d%d,&a,&b); s=a; if (ab) s=b; s=s*s; printf(%dn,s); A. 14B. 16C. 18D. 2

    4、0参考答案:B 6、下面的程序是_int main( ) int x=3,y=0,z=0; if (x=y+z) printf(*); else printf(#); A. 有语法错误不能过通过编译B. 输出*C. 可能通过编译,但是不能通过连接,因而不能运行D. 输出#参考答案:D 7、请读程序: #includeint main( ) int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+;break; case 1: b+;break; case 2: a+;b+;break; printf(a=%d,b=%dn,a,b);

    5、 上面程序输出结果是 A. a=2,b=1B. a=1,b=1C. a=1,b=0D. a=2,b=0参考答案:A (再次理解一旦从某个case分支进来,顺序执行的思想)8、执行下面语句后的输出为( ) #includeint main( ) int i=1; if (i=0) printf(*n)else printf(%n) A. * B. %C. % D. 有语法错,不能执行参考答案:C 9、有如下程序 #includeint main( ) int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+; b+; printf

    6、(a=%d,b=%dn,a,b); 该程序的输出结果是 A. a=2,b=1 B. a=1,b=1C. a=1,b=0D. a=2,b=2参考答案:A (没有break语句就会顺序执行)10、有如下程序 #includeint main( ) int a=2, b=-1, c=2;if(ab) if(b0) c=0; else c+;printf(%dn,c); 该程序的输出结果是 A. 0B. 1C. 2D. 3参考答案:C (else和内层if配对,ab不成立,则直接跳到printf语句)11、阅读以下程序:#includeint main( ) int x; scanf(%d,&x);

    7、if(x-5) printf(%dx); else printf(%d,x+); 程序运行后,如果从键盘上输人5,则输出结果是 A. 3B. 4C. 5D. 6参考答案:B 12、以下语句执行后x,y,z的值是 #includeint main( ) int x=10,y=20,z=30;if(xy) z=x; x=y; y=z; A. x=10,y=20,z=30 B. x=20,y=30,z=30C. x=20,y=30,z=10 D. x=20,y=30,z=20参考答案:B 13、执行完下面一段程序后x的值是 #includeint main( ) a=1,b=3,c=5,d=4;if

    8、(ab) if(cd) x=1; else if(ac) if(bd) x=2; else x=3; else x=6; else x=7; A. 1B. 2C. 3D. 6参考答案:B 14、读下列程序: #include int main( ) float a,b,t;scanf(“f,f”,&a,b); if(ab) t=a; a=b; b=t; prinff(“5.2f,5.2f”a,b); 运行时从键盘输入3.8和-3.4,则正确的输出结果是( )。 A. -3.40,-3.80 B. -3.40,3.80C. -3.4,3.8 D. 3.80,-3.40参考答案:B 15、读下列程

    9、序: #include int main( ) int x,y; scanf(“d”,x); y=0;if(x=0) if(x0)y=1; else y=-1;prinff(”d”,y); 当从键盘输入32时,程序输出结果为( )。 A. 0B. 1C. -1D. 不确定参考答案:B 16、以下程序的输出结果是( )。#include int main( ) int a=15,b=21,m=0;switch(a3) case 0:m+;break; case 1:m+:switch(b2) default:m+: case 0:m+;break; printf(”dn”,m); A. 1B.

    10、2C. 3D. 4参考答案:A 17、下列程序段运行后x的值是( )。#include int main( ) int a,b,c,x;a=b=c=0; x=35;if(!a) x-; else if(b); if(c) x=3; else x=4: A. 34 B. 4 C. 35 D. 3参考答案:B 18、在执行以下程序时,为了使输出结果为t=4, 则给a和b输入的值应满足的条件是 #include int main( ) int s,t,a,b; scanf(%d,%d,&a,&b);s=1; t=1; if(ab) t=s+1; else if(a=b) t=5; else t=2*

    11、s; printf(t=%dn,t); A. 0ab B. a=0b C. a=b0 D. ab0参考答案:D 19、若有定义: float w; int a, b; 则合法的switch语句是 A. switch(w) case1.0: printf(*n); case2.0: printf(*n); B. switch(a); case 1 printf(*n); case 2 printf(*n); C. switch(b) case a: printf(*n); default: printf(n); case b: printf(*n); D. switch(a+b) case 1:

    12、 printf(*n); case 2: printf(*n); default: printf(n); 参考答案:D 20、以下程序的输出结果是#include int main( ) int a=100, x=10, y=20, ok1=5, ok2=0; if(xy) if(y!=10) if(!ok1) a=1; else if(ok2) a=10;a=-1; printf(%dn,a); A. 1B. 0C. -1D. 值不确定参考答案:C 二、程序分析1、若从键盘输入58,则以下程序输出的结果是 _ 。 #include int main( ) int a; scanf(%d,&a

    13、); if(a50) printf(%d,a); if(a40) printf(%d,a); if(a30) printf(%d,a); 参考答案:585858 2、以下程序运行后的输出结果是 。 #include int main( ) int x=10,y=20,t=0; if(x=y) t=x;x=y;y=t; printf(“d,dn”,x,y); 参考答案:20,0 3、若int i=10;,则执行下列程序后,变量i的正确结果是 。#include int main( ) switch( i ) case 9:i+=1;case 10:i+=1; case 11:i+=1:defau

    14、lt:i+=1; 参考答案:134、下列程序段的输出结果是 _ 。 #include int main( ) int n=c; switch(n+) default: printf(error);break; case a:case A:case b:case B:printf(good);break; case c:case C:printf(pass);case d:case D:printf(warm); 参考答案:passwarm 5、执行程序段后t的值为 。#include int main( ) int x=10,t; t=x&x10; printf(“t=%dn”,t);参考答案

    15、: 0 6、程序段运行后y的值为 。#include int main( ) int a=-5, y=10; if (a=0) y-; else if (a0) y+; else y+=y; printf(“y=%dn”,y);参考答案:20 7、下列程序段的执行结果是 。#include int main( ) int a=25,b=14,c=19; if (a=25&b=2&c) printf(“*a+b=%d,a-b=%d*n”,a+b,a-b); else printf(“*a=%d,b=%d,c=%d*n”,a,b,c);参考答案: *a=25,b=14,c=19* 8、执行下列程序

    16、段后,i的值为 。#include int main( ) int i=1,j; switch(i) case 1: for(j=0;j9;j+) i+=j; break; case 2: for(j=1;j10;j+) i+=j;break; case 3: i+; printf(“i=%dn”,i);参考答案: 37 9、以下两条if语句可合并为一条if语句,即 。if (ab) printf(“*y=%dn”,y);else printf(“*x=%dn”,x);参考答案: if (a=b) x=1; printf(“*x=%dn”,x); else y=2; printf(“*y=%d

    17、n”,y); 10、假设两次运行时分别输入600和1200,写出以下程序运行结果 。#include#includeint main( ) int x; float y; printf(input a integer =1000) printf(input again!); scanf(%d,&x); y=sqrt(x); printf(the root of x is y:%-6.0fn,y);参考答案:24 input again!三、程序改错题教材P112 习题7:(1)画出对应代码的流程图,分析逻辑错误的原因;(2)改错并实现正确功能。四、程序设计题1、编写程序,任意输入三个整数,求其

    18、最大值并输出。方法一#include int main() int x,y,z,m,n; int max(int a ,int b); printf(please input three numbers:); scanf(%d%d%d,&x,&y,&z);m=max(x,y) ;n=max(m,z) ;printf(the biggest number is:%dn,n); return 0;int max(int a ,int b) int c; if (ab) c=a; else c=b; return c; 方法二#include int main() int x,y,z; int ma

    19、x(int a,int b,int c); printf(please input three numbers:); scanf(%d%d%d,&x,&y,&z);printf(the biggest number is:%dn,max(x,y,z); return 0;int max(int a ,int b,int c) int e,f; if (ab) e=a; else e=b;if (ec) f=e; else f=c; return f;2、编写程序,任意输入三个整数,将其按照从小到大的顺序排列并输出。(尝试从小到大排序并输出4个整数的算法)方法一不讲,用到后面的内容。#inclu

    20、de void sort(int *x,int *y,int *z) int e; if (*x*y) e=*x; *x=*y; *y=e; if (*x*z) e=*x; *x=*z; *z=e; if (*y*z) e=*y; *y=*z; *z=e; int main()int a,b,c,*p1,*p2,*p3; printf(please input three numbers:); scanf(%d%d%d,&a,&b,&c); p1=&a; p2=&b; p3=&c; sort(p1,p2,p3); printf(the sorted numbers is:%d %d %dn,a

    21、,b,c); return 0; 方法二#include int main()int x,y,z,e; printf(please input three numbers:); scanf(%d%d%d,&x,&y,&z); if (xy) e=x; x=y; y=e; if (xz) e=x; x=z; z=e; if (yz) e=y; y=z; z=e; printf(the sorted numbers is:%d %d %dn,x,y,z); return 0; 3、有一个分段函数 分别用不嵌套的if语句、嵌套的if语句、switch语句编写程序,实现以上分段函数。并列的if语句#i

    22、ncludeint main() int x,y; printf(please input a integer to x:); scanf(%d,&x); if (x=1&x=10) y=3*x-11;printf(y=%dn,y); return 0;嵌套的if语句#includeint main() int x,y; printf(please input a integer to x:); scanf(%d,&x); if (x=10) y=3*x-11;printf(y=%dn,y); else y=2*x-1;printf(y=%dn,y); return 0;switch语句 /该

    23、问题分支不多,用switch优势不明显#includeint main() int x,n; printf(please input a integer to x:); scanf(%d,&x); if (x=10) n=1; else n=x/10; switch(n) case -1:printf(y=%dn,x);break; case 0:printf(y=%dn,2*x-1);break; case 1:printf(y=%dn,3*x-11);break; default:printf(error data input!); return 0;4、给出一个百分制成绩,要求输出成绩等

    24、级A,B,C,D,E。90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。#includeint main() int i,n; char grade; printf(please input score:); scanf(%d,&n); if (n=0&n=100) /对成绩归类,用于switch的各分支 if (n60) i=5; else i=n/10; switch(i) /i可以是整型或字符型表达式,则case后是对应的常量 case 9:printf(grade is An);break; case 8:printf(grade is Bn);break

    25、; case 7:printf(grade is Cn);break; case 6:printf(grade is Dn);break; case 5:printf(grade is En);break; default:printf(error data inputn); return 0;5、给一个不多于5位的正整数,要求:(1)求出它是几位数字;(2)分别输出每一位数字;(3)按逆序输出各位数字,例如原数为123,应输出为321。#includeint main() int num1,num2,a,b,c,d,e,n; printf(please iuput a integer to num1:); /求位数 scanf(%d,&num1); if (num19999) n=5; else if (num1999) n=4; else if (num199) n=3


    注意事项

    本文(第4章 选择结构 作业有答案版.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开