任务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
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$