任务10:if语句的嵌套 《编程语言-C语言》45分钟专题训练

| 2份
| 27页
| 135人阅读
| 2人下载

内容正文:

湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目二: 分支结构程序设计 第10卷: if语句的嵌套 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.为了避免在嵌套的条件语句if~else中产生二义性,C语言规定else子句总是与( )配对 A.其之前最近的if B.其之前最近且未配对的if C.其之后最近的if D.同一行上的if 2. 执行以下程序段的输出结果是( ) int x=2,y=-1,z=2; if (x<y) if (y>0) z=0;else z+=1;printf("%d ",z); A.0 B.1 C.2 D.3 3.执行以下程序段后的输出结果是( ) int a=2,b=1,c=2; if(b<a) if(b<0) c=0,c++;b++; printf("b=%d,c=%d ",b,c); A. b=2,c=2 B. b=1,c=2 C. b=1,c=0 D. b=1,c=1 4.执行以下程序段的输出结果是( ) int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3)) if(i>j)printf("%d",++j);else printf("%d",i); A.2 B.3 C.1 D.4 5.执行以下程序段的输出结果是( ) int i=0; if(i==0) if(++i<0)printf("##"); else if(i++>++i) printf("$$"); printf("%d",i); A.3 B.2 C.##2 D.$$3 6.执行以下程序时从键盘输入:9<回车>,则输出结果是( ) int n;scanf("%d",&n); if(n++<10)printf("%x",n); else if(n==10) printf("%d",n++);else printf("%d",n++);printf("%d",n); A.10 B.a C.a10 D.1010 7.执行以下程序的输出结果是( ) int m=5; if(m++>5) if(m++>5) printf("%d",m--); else if(m!=6) printf("%d",m); else printf("%d",--m);printf("%d",m+=4); A.10 B.6 C.5 D.7 8.执行以下程序段的输出结果是( ) float x=2.0,y; if(x<0.0) y=0.0; else if(x<5.0&&(!x)) y=1.0/(x+2.0); else if(x<10.0) y=1.0/x; else if(x>10.0&&x<20.0) y=1.0/x+(2*x); else y=30;printf("%.2f",y); A.0.00 B.0.25 C.1.00 D.0.50 9.执行以下程序段的输出结果是( ) int a=10,b=4,c=7,s; if(a<b) s=a*b+2; else if(a<c) s=a*c+2; else if(b<c) s=b*c+2; else s=34; printf("%d",s); A.30 B.42 C.72 D.34 10.执行以下程序段的输出结果是( ) int a;scanf("%d",&a);printf("%d",a); if(a<50) printf("%d",a); if(a>40) if(a>45) printf("%d",a); else printf("%d",a); A.58585858 B.585858 C.5858 D.58 11.执行以下程序段的输出结果是( ) int a=5,p; if(p=a!=0) printf("%d",p); else if(p==1) printf("%d",p+=3); else printf("%%%d",p++);printf("%d",p); A.11 B.1 C.111 D.31 12.执行以下程序段的输出结果是( ) int a=1,b=2,c=3; if(a<b) if(a<c) c=0;else c*=c;printf("%d",c); A.0 B.1 C.2 D.9 13.执行以下程序段后的输出结果是( ) int x=2,y=-1,z=-2; if(x<y) if(y<0) z=0; else z*=5;printf("%d",z); A.-1 B.0 C.1 D.-2 14.执行以下程序段时从键盘输入:2<回车>,输出结果是( ) int k;char p;p=getchar(); if(p!=0) if(p>='0'&&p<='9') k=p-'0'; else if(p>='a'&&p<='f') k=p-'a'+10; else k=p='A'+10; printf("%d",k); A.1 B.4 C.10 D.2 15.执行以下程序段时从键盘输入:g<回车>,输出结果是( ) int k;char p;p=getchar(); if(p!=0) if(p>='0'&&p<='9') k=p-'0'; else if(p>='a'&&p<='f') k=p-'a'+10; else k=p='A'+10; printf("%d",k); A.g B.76 C.h D.75 16.执行以下程序段时输入:5<回车>,输出结果是( ) int x;scanf("%d",&x); if(x>=1); if(x!=0) printf("%d",x+=++x); else printf("%d",x-=x--); A.5 B.12 C.0 D.-1 17. 执行以下程序段时输入:5<回车>,输出结果是( ) int x;scanf("%d",&x); if(x!=0) if(x>0) printf("%d",x+=x++); else if(x<0)printf("%d",x-=x--); else printf("error!"); A.12 B.error! C.0 D.10 18.执行以下程序段的输出结果是( ) int a=8,b=a/2,c=a*a; if(a>b) if(a%2==0) printf("%d",a/2); else if(c%2!=0)printf("%d",c/a); printf("%d",b); A.4 B.64 C.44 D.84 19.执行以下程序段的输出结果是( ) int a=1,b=2,c=3; if(a%b&&b/c) if(a++) printf("%d",a); printf("%d",a); A.0 B.1 C.2 D.3 20.执行以下程序段时输入:8<回车>,输出结果为( ) int w,x=0,y=0;scanf("%d",&w); if(w==0) printf("error!"); if(w>0) x+=w++; else if(w>10) y-=++w; else printf("%d ",w); printf("%d,%d,%d",w,x,y); A.8,8,8 B. 9,8,0 C.0,8,9 D.8,0,0 21.执行以下程序段的输出结果为( ) int x=9; if(x>7) if(x<13) printf("left! "); else printf("right! "); A.left! B.rigth! C.left!right! D.right!left! 22.执行以下程序段的输出结果是( ) int x=5; if(x>7) {if(x<13) printf("left! ");} else printf("right! "); A.left! B.rigth! C.left!right! D.right!left! 23.执行以下程序段时输入:&<回车>,输出结果是( ) char ch;scanf("%c",&ch); if(ch>='0'&&ch<='9') printf("it is a number!"); else if(ch>='A'&&ch<='Z') printf("it is a capital letter!"); else if(ch>='A'&&ch<='Z') printf("it is a lowercase!"); printf("others!"); A. it is a number! B. it is a capital letter! C. it is a lowercase! D.others! 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=1,b=3,c=5,d=4,x; if(a<b) if(c<d) x=1; else if(a<c) if(b<d) x=2; else x=3; else x=6; else x=7; printf("%d",x); getch();} 25.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=100,x=10,y=20,okl=5,ok2=0; if(x<y) if(y!=10) if(!okl)a=1; else if (ok2) a=10; a=-1; printf("%d ",a); getch();} 26.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=5,b=6,c=7,d=4; if(a==1&&b++==2) if(b!=2||c--!=3) printf("%d,%d,%d ",a,b,c); else printf("%d,%d,%d ",a,b,c); else printf("%d,%d,%d ",a,b,c); getch();} 27.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int x=1,y=2,z=3,k=0; if(x==1) if(y!=2) if(z==3) k=1; else k=2; else if(z!=3) k=3; else k=4; else k=5; printf("%d ",k); getch();} 28.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=100,x=10,y=20,m=5,n=1; if(x<y) if(y!=10) if(!m) a=1; else if(n) a=10; printf("%d ",a); getch();} 29.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=1,b=3,c=5,d=4,e; if(a<b) if(c<d) e=1; else if(a<c) if(b<d) e=2; else e=5; else e=7; else e=9; printf("%d",e); getch();} 30.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=12,b=8,c=7,max; max=a; if(c>b) if(c>a)max=c; else if(b>a)max=b; printf("max=%d ",max); getch();} 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共9分) 31.下列程序的功能是:求一元二次方程的根,其中a,b,c,的值由键盘任意输入。程序中有三处错误。 L1 #include <stdio.h> L2 #include<conio.h> L3 #include<math.h> L4 main() L5 {float a,b,c,data,x1,x2; L6 scanf("%f%f%f",a,b,c); L7 data=pow(2)-4*a*c; L8 if(data>=0) L9 {if(data=0) L10 {x1=x2=-(b/(2*a)); L11 printf("有两个相等的解:x1=x2=%.2f",x1);} L12 else L13 {x1=(-b+sqrt(data))/(2*a); L14 x2=(-b-sqrt(data))/(2*a); L15 printf("有两个不相等的解:x1=%.2f,x2=%.2f",x1,x2);}} L16 else printf("该一元二次方程无解!!"); L17 getch();} 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32. 以下程序的功能是:根据输入的三角形的三条边,判断是否能组成三角形,若可以则输出它的面积和三角形的类型。请填空。 #include <stdio.h> #include<conio.h> main() {float a,b,c; float s,area; scanf("%f%f%f",&a,&b,&c); if(【1】) {s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("%f",area); if(【2】) printf("等边三角形"); else if(【3】) printf("等腰三角形"); else if(【4】) printf("直角三角形"); else printf("一般三角形");} else printf("不能组成三角形"); getch();} 33.某服装店经营套服且单件出售。若一次购买不少于50套,则每套80元;若不足50套,则每套90元;只买上衣每件60元;只买裤子每条45元。以下程序的功能是读入所买上衣c和裤子t的件数,计算应付款数mo请填空。 #include <stdio.h> #include<conio.h> main() {int c,t,m; printf("input the number of coat and trousers you want to buy: "); scanf("%d %d",&c,&t); if(【1】) if(c>=50) m=c*80; else m=c*90; else if(【2】) if(t>=50) 【3】; else m=t*90+(c-t)*60; else if(【4】) m=c*80+(t-c)*45; else m=c*90+(t-c)*45; printf("%d",m); getch();} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$ 湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目二: 分支结构程序设计 第10卷: if语句的嵌套 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.为了避免在嵌套的条件语句if~else中产生二义性,C语言规定else子句总是与( )配对 A.其之前最近的if B.其之前最近且未配对的if C.其之后最近的if D.同一行上的if 【答案】B 2. 执行以下程序段的输出结果是( ) int x=2,y=-1,z=2; if (x<y) if (y>0) z=0;else z+=1;printf("%d ",z); A.0 B.1 C.2 D.3 【答案】C 3.执行以下程序段后的输出结果是( ) int a=2,b=1,c=2; if(b<a) if(b<0) c=0,c++;b++; printf("b=%d,c=%d ",b,c); A. b=2,c=2 B. b=1,c=2 C. b=1,c=0 D. b=1,c=1 【答案】B 4.执行以下程序段的输出结果是( ) int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3)) if(i>j)printf("%d",++j);else printf("%d",i); A.2 B.3 C.1 D.4 【答案】A 5.执行以下程序段的输出结果是( ) int i=0; if(i==0) if(++i<0)printf("##"); else if(i++>++i) printf("$$"); printf("%d",i); A.3 B.2 C.##2 D.$$3 【答案】A 6.执行以下程序时从键盘输入:9<回车>,则输出结果是( ) int n;scanf("%d",&n); if(n++<10)printf("%x",n); else if(n==10) printf("%d",n++);else printf("%d",n++);printf("%d",n); A.10 B.a C.a10 D.1010 【答案】C 7.执行以下程序的输出结果是( ) int m=5; if(m++>5) if(m++>5) printf("%d",m--); else if(m!=6) printf("%d",m); else printf("%d",--m);printf("%d",m+=4); A.10 B.6 C.5 D.7 【答案】A 8.执行以下程序段的输出结果是( ) float x=2.0,y; if(x<0.0) y=0.0; else if(x<5.0&&(!x)) y=1.0/(x+2.0); else if(x<10.0) y=1.0/x; else if(x>10.0&&x<20.0) y=1.0/x+(2*x); else y=30;printf("%.2f",y); A.0.00 B.0.25 C.1.00 D.0.50 【答案】D 9.执行以下程序段的输出结果是( ) int a=10,b=4,c=7,s; if(a<b) s=a*b+2; else if(a<c) s=a*c+2; else if(b<c) s=b*c+2; else s=34; printf("%d",s); A.30 B.42 C.72 D.34 【答案】A 10.执行以下程序段的输出结果是( ) int a;scanf("%d",&a);printf("%d",a); if(a<50) printf("%d",a); if(a>40) if(a>45) printf("%d",a); else printf("%d",a); A.58585858 B.585858 C.5858 D.58 【答案】C 11.执行以下程序段的输出结果是( ) int a=5,p; if(p=a!=0) printf("%d",p); else if(p==1) printf("%d",p+=3); else printf("%%%d",p++);printf("%d",p); A.11 B.1 C.111 D.31 【答案】A 12.执行以下程序段的输出结果是( ) int a=1,b=2,c=3; if(a<b) if(a<c) c=0;else c*=c;printf("%d",c); A.0 B.1 C.2 D.9 【答案】A 13.执行以下程序段后的输出结果是( ) int x=2,y=-1,z=-2; if(x<y) if(y<0) z=0; else z*=5;printf("%d",z); A.-1 B.0 C.1 D.-2 【答案】D 14.执行以下程序段时从键盘输入:2<回车>,输出结果是( ) int k;char p;p=getchar(); if(p!=0) if(p>='0'&&p<='9') k=p-'0'; else if(p>='a'&&p<='f') k=p-'a'+10; else k=p='A'+10; printf("%d",k); A.1 B.4 C.10 D.2 【答案】D 15.执行以下程序段时从键盘输入:g<回车>,输出结果是( ) int k;char p;p=getchar(); if(p!=0) if(p>='0'&&p<='9') k=p-'0'; else if(p>='a'&&p<='f') k=p-'a'+10; else k=p='A'+10; printf("%d",k); A.g B.76 C.h D.75 【答案】D 16.执行以下程序段时输入:5<回车>,输出结果是( ) int x;scanf("%d",&x); if(x>=1); if(x!=0) printf("%d",x+=++x); else printf("%d",x-=x--); A.5 B.12 C.0 D.-1 【答案】B 17. 执行以下程序段时输入:5<回车>,输出结果是( ) int x;scanf("%d",&x); if(x!=0) if(x>0) printf("%d",x+=x++); else if(x<0)printf("%d",x-=x--); else printf("error!"); A.12 B.error! C.0 D.10 【答案】D 18.执行以下程序段的输出结果是( ) int a=8,b=a/2,c=a*a; if(a>b) if(a%2==0) printf("%d",a/2); else if(c%2!=0)printf("%d",c/a); printf("%d",b); A.4 B.64 C.44 D.84 【答案】C 19.执行以下程序段的输出结果是( ) int a=1,b=2,c=3; if(a%b&&b/c) if(a++) printf("%d",a); printf("%d",a); A.0 B.1 C.2 D.3 【答案】B 20.执行以下程序段时输入:8<回车>,输出结果为( ) int w,x=0,y=0;scanf("%d",&w); if(w==0) printf("error!"); if(w>0) x+=w++; else if(w>10) y-=++w; else printf("%d ",w); printf("%d,%d,%d",w,x,y); A.8,8,8 B. 9,8,0 C.0,8,9 D.8,0,0 【答案】B 21.执行以下程序段的输出结果为( ) int x=9; if(x>7) if(x<13) printf("left! "); else printf("right! "); A.left! B.rigth! C.left!right! D.right!left! 【答案】A 22.执行以下程序段的输出结果是( ) int x=5; if(x>7) {if(x<13) printf("left! ");} else printf("right! "); A.left! B.rigth! C.left!right! D.right!left! 【答案】B 23.执行以下程序段时输入:&<回车>,输出结果是( ) char ch;scanf("%c",&ch); if(ch>='0'&&ch<='9') printf("it is a number!"); else if(ch>='A'&&ch<='Z') printf("it is a capital letter!"); else if(ch>='A'&&ch<='Z') printf("it is a lowercase!"); printf("others!"); A. it is a number! B. it is a capital letter! C. it is a lowercase! D.others! 【答案】D 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=1,b=3,c=5,d=4,x; if(a<b) if(c<d) x=1; else if(a<c) if(b<d) x=2; else x=3; else x=6; else x=7; printf("%d",x); getch();} 【答案】2 25.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=100,x=10,y=20,okl=5,ok2=0; if(x<y) if(y!=10) if(!okl)a=1; else if (ok2) a=10; a=-1; printf("%d ",a); getch();} 【答案】-1 26.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=5,b=6,c=7,d=4; if(a==1&&b++==2) if(b!=2||c--!=3) printf("%d,%d,%d ",a,b,c); else printf("%d,%d,%d ",a,b,c); else printf("%d,%d,%d ",a,b,c); getch();} 【答案】5,6,7 27.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int x=1,y=2,z=3,k=0; if(x==1) if(y!=2) if(z==3) k=1; else k=2; else if(z!=3) k=3; else k=4; else k=5; printf("%d ",k); getch();} 【答案】4 28.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=100,x=10,y=20,m=5,n=1; if(x<y) if(y!=10) if(!m) a=1; else if(n) a=10; printf("%d ",a); getch();} 【答案】10 29.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=1,b=3,c=5,d=4,e; if(a<b) if(c<d) e=1; else if(a<c) if(b<d) e=2; else e=5; else e=7; else e=9; printf("%d",e); getch();} 【答案】2 30.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=12,b=8,c=7,max; max=a; if(c>b) if(c>a)max=c; else if(b>a)max=b; printf("max=%d ",max); getch();} 【答案】max=12 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共9分) 31.下列程序的功能是:求一元二次方程的根,其中a,b,c,的值由键盘任意输入。程序中有三处错误。 L1 #include <stdio.h> L2 #include<conio.h> L3 #include<math.h> L4 main() L5 {float a,b,c,data,x1,x2; L6 scanf("%f%f%f",a,b,c); L7 data=pow(2)-4*a*c; L8 if(data>=0) L9 {if(data=0) L10 {x1=x2=-(b/(2*a)); L11 printf("有两个相等的解:x1=x2=%.2f",x1);} L12 else L13 {x1=(-b+sqrt(data))/(2*a); L14 x2=(-b-sqrt(data))/(2*a); L15 printf("有两个不相等的解:x1=%.2f,x2=%.2f",x1,x2);}} L16 else printf("该一元二次方程无解!!"); L17 getch();} 答案: L6 scanf("%f%f%f",&a,&b,&c); L7 data=pow(b,2)-4*a*c; L9 {if(data==0) 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32. 以下程序的功能是:根据输入的三角形的三条边,判断是否能组成三角形,若可以则输出它的面积和三角形的类型。请填空。 #include <stdio.h> #include<conio.h> main() {float a,b,c; float s,area; scanf("%f%f%f",&a,&b,&c); if(【1】) {s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("%f",area); if(【2】) printf("等边三角形"); else if(【3】) printf("等腰三角形"); else if(【4】) printf("直角三角形"); else printf("一般三角形");} else printf("不能组成三角形"); getch();} 答案:①a+b>c&&b+c>a&&a+c>b ②a==b&&b==c ③a==b||a==c||b==c ④(a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a) 33.某服装店经营套服且单件出售。若一次购买不少于50套,则每套80元;若不足50套,则每套90元;只买上衣每件60元;只买裤子每条45元。以下程序的功能是读入所买上衣c和裤子t的件数,计算应付款数mo请填空。 #include <stdio.h> #include<conio.h> main() {int c,t,m; printf("input the number of coat and trousers you want to buy: "); scanf("%d %d",&c,&t); if(【1】) if(c>=50) m=c*80; else m=c*90; else if(【2】) if(t>=50) 【3】; else m=t*90+(c-t)*60; else if(【4】) m=c*80+(t-c)*45; else m=c*90+(t-c)*45; printf("%d",m); getch();} 答案:①c==t ②c>t ③m=t*80+(c-t)*60 ④c>=50 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

任务10:if语句的嵌套 《编程语言-C语言》45分钟专题训练-第1页
1
任务10:if语句的嵌套 《编程语言-C语言》45分钟专题训练-第2页
2
任务10:if语句的嵌套 《编程语言-C语言》45分钟专题训练-第3页
3

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。