任务9:if语句 《编程语言-C语言》45分钟专题训练
|
2份
|
22页
|
113人阅读
|
3人下载
内容正文:
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目二: 分支结构程序设计
第9卷: if语句
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.已有定义:int a=10,b=20,c=30;,执行语句:if(a>b) c=a;a=b;b=c;
printf("%d,%d,%d",a,b,c);后的输出结果是( )
A.10,20,30 B.20,30,10 C.20,30,20 D. 20,30,30
2.以下程序段中,与表达式:k=a>b?(b>c?1:0):0;功能相同的是( )
A.if(a>b&&b>c) k=1;else k=0;
B.if(a>b||b>c) k=1;else k=0;
C.if(a<=b) k=0;else if(b<=c) k=1;
D.if(a>b) k=1;else if(b>c) k=1;else k=0;
3.设以下变量均已正确定义并赋值,则下列不正确的语句是( )
A.if(x>y) x++; B.if(x=y)&&(x!=0) x+=y;
C.if(x!=y) x++;else y++; D.if(x>y) {x--;y--;}
4.已有定义:int a=4,b=5,t=0;执行语句:if(a<b){t=a;a=b;b=t;}后,a,b的值分别为( )
A.5,4 B.4,5 C.5,0 D.0,5
5.执行以下程序段后的输出结果是( )
{int x=7;if(x++>7) printf(“%d
”,x);
else printf(“%d
”,--x);}
A.6 B.7 C.8 D.9
6.执行下列程序段的输出结果是( )
{int a=6,b=6;
if(a>5) a-=1;b+=1;
else a+=1;b-=1;
printf("a=%d,b=%d",a,b);
A.5,7 B.a=5,b=7 C.a=5,b=6 D.编译时出错
7.若有定义:int a=4,b=6,c=8;,则执行语句:if(a>b) c=a;a=b;b=c;后,a,b,c,的值为( )
A.a=4,b=6,c=8 B.a=6,b=8,c=8
C.a=6,b=4,c=8 D.a=6,b=8,c=4
8.执行下列程序段之后,a的值为( )
{int x,y,z,a;x=y=z=0;a=25;
if(!x) a--;else if(y);if(z) a=9;else a=10;
A.24 B.9 C.25 D.10
9.执行下列程序段之后的输出结果是( )
int x=1,y=2,z=2;
if(x=y-z) printf("***");
else printf("$$$");
A.输出:*** B.有语法错误,编译出错
C.输出:$$$ D.编译通过,连接出错,程序不能运行
10.执行下列程序段之后的输出结果是( )
int x=0,y=0,z=0;if(++x>0||++y>0) ++z;printf("%d,%d,%d",x,y,z);
A.0,0,0 B.0,1,1 C.1,0,1 D.1,1,1
11.下列条件语句中,输出结果与其他语句不同的是( )
A.if(x) printf(“%d”,a); else printf(“%d”,b);
B.if(x==0) printf(“%d”,b); else printf(“%d”,a);
C.if(x!=0) printf(“%d”,a); else printf(“%d”,b);
D.if(x==0) printf(“%d”,a); else printf(“%d”,b);
12.执行以下程序段后的输出结果是( )
int x=10,y=20;if(!x)y++;else if(x==0)
if(x) y+=2;else y+=3;printf("%d",y);
A.23 B.22 C.21 D.20
13.执行以下程序段的输出结果是( )
int a=1,b=2,c=3;if(c=a) printf("%d",c);else printf("%d",b);
A.0 B.1 C.2 D.3
14.执行以下程序段的输出结果是( )
int n=2;if(n++%3) printf("&");else printf("$");
A.& B.$ C.有语法错导致编译出错 D.无语法错但连接出错
15.执行以下程序段的输出结果是( )
int x=8,y=-10,z=2;if(x<y)
if(y<0) z=2;else z=-2;printf("%d",z);
A.2 B.-2 C.8 D.-10
16.执行以下程序段的输出结果是( )
main()
{int i=-1;if(i<=0) printf("****
")
else printf("%%%%
");}
A.**** B.%%%%c C.%%%% D.有语法错,不能正确执行
17.以下不正确的if语句形式是( )
A.if(x>y&&x!=y);
B.if(x!=y) x+=y;
C.if(x==y) printf(“%d”,x) else printf(“%d”,y);
D.if(x<y){x++;y++;}
18.在C语言中,紧跟在关键字if后一对圆括号里的表达式( )
A.只能用逻辑表达式 B.只能用关系表达式
C.只能用逻辑表达式或关系表达式 D.可以是任意表达式
19.以下语法正确的if语句是( )
A.if(x>0) printf(“%f”,x) else printf(“%f”,-x);
B.if(x>0){x=x+y;printf(“%f”,x);}else printf(“%f”,-x);
C.if(x>0){x=x+y;printf(“%f”,x);};else printf(“%f”,-x);
D.if(x>0){x=x+y;printf(“%f”,x)}else printf(“%f”,-x);
20.执行以下程序段的输出结果是( )
int a=10,b=50,c=30;if(a>b) a=b,b=c;
c=a;printf("a=%d,b=%d,c= %d
",a,b,c);
A.a=10,b=30,c=10 B.a=10,b=50,c=10
C.a=50,b=30,c=10 D.a=50,b=30,c=50
21.执行以下程序段的输出结果是( )
int x=1;
if(x=2)printf("OK");
else if(x<2)printf("%d
",x);
else printf("Quit");
A.0 B.1 C.OK D.Quit
22.以下程序段在运行时输入:5<回车>,输出结果是( )
int a,b;scanf("%d",&a);b=0;
if(a!=0)
if(a>0) b=1;else b=-1;printf("a=%d,b=%d
",a,b);
A.a=5,b=1 B.a=5,b=5 C.a=1,b=1 D. a=5,b=1
23.执行以下程序段后,a,b,c的输出结果是( )
int a=9,b=8,c=7;if(a>c){a=b;b=c;c=a;}else a=c;c=b;b=a;
A.9,8,8 B.9,8,7 C.8,8,7 D.8,7,8
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int t,h,m;
scanf("%d",&t);
h=(t/100)%12;
if(h==0) h=12;
printf("%d:",h);
m=t%100;
if(m<10) printf("0");
printf("%d",m);
if(t<1200||t==2400) printf("AM");
else printf("PM");
getch();}
运行时输入:1845<回车>
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int x;
scanf("%d",&x);
if(x++>5) printf("%d
",x);
else printf("%d
",x--);
getch();}
运行时输入:8<回车>
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a,b,c,d;
a=b=c=0;
d=30;
if(!a)d--;
else if(b);
if(c) d=3;
else d=4;
printf("%d
",d);
getch();}
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a,b;
scanf("%d",&a);
if(a<0) b=-1;
else if(a==0) b=0;
else b=1;
printf("a=%d,b=%d
",a,b);
getch();}
运行时输入:-8<回车>
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{char ch;
scanf("%c",&ch);
if(ch>='A'&&ch<='Z')ch=ch+32;
else if(ch>='a'&&ch<='z')ch=ch-32;
printf("%c",ch);
getch();}
运行时输入:A<回车>
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a,b,c,d,x;
a=c=0;b=1;d=34;
if(a) d=d-10;
else if(!b)
if(!c) x=15;
else x=25;
printf("%d
",d);
getch();}
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int x,y=-2,z=0;
if((z=y)<0) x=4;
else if(y==0) x=5;
else x=6;
printf("%d %d ",x,z);
if(z=(y==0)) x=5;x=4;
printf("%d %d ",x,z);
if(x=z=y) x=4;
printf("%d %d ",x,z);
getch();}
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共9分)
31.下列程序的功能是:输入x的值,根据下列分段函数求解y的值。程序中共有三处错误。
L1 #include <stdio.h>
L2 #include<conio.h>
L3 main()
L4 {int x,y;
L5 printf("input x:");
L6 scanf("%d",&x);
L7 if(-5<=x<0) y=x;
L8 else if(x=0) y=x-1;
L9 else if((x>0)&&(x<10)) y=x+2;
L10 else if y=2*x+4;
L11 printf("x=%d,y=%d
",x,y);
L12 getch();}
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分)
32.以下程序的功能是:某邮局对邮寄包裹有如下规定,若包裹的长、宽、高任一尺寸超过1m或重量超过30kg,不予邮寄;对可以邮寄的包裹 每件收手续费0.2元,再加上根据表1按不同重量weigh计算的邮资。请填空。
表格 1
重量/kg
邮资/元
weigh<10
0.80
10< weigh≤20
0.75
20< weigh≤30
0.7
#include <stdio.h>
#include<conio.h>
main()
{float len,weigh,hei,wid,mon,r;
scanf("%f%f%f%f",&len,&wid,&hei,&weigh);
if(len>1||wid>1||hei>1||weigh>30) 【1】;
else if(weigh<10) r=0.8;
else if(weigh<=20) 【2】;
else if(weigh<=30) r=0.7;
if(【3】) printf("不予邮寄!!
");
else
{【4】;
printf("%f",mon);}
getch();}
33.下面程序的功能是:根据表2中给定的函数关系,对输入的每个x值计算出相应的y值。请填空。
表格 2
x
y
2<x≤10
x(x+2)
-1<x≤2
2x
x≤-1
x-1
#include <stdio.h>
#include<conio.h>
main()
{int x,y;
scanf("%d",&x);
if(【1】) y=x*(x+2);
else if(【2】) y=2*x;
else if(x<=-1) 【3】;
else y=-1;
if(【4】) printf("%d",y);
else printf("error");getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目二: 分支结构程序设计
第9卷: if语句
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.已有定义:int a=10,b=20,c=30;,执行语句:if(a>b) c=a;a=b;b=c;
printf("%d,%d,%d",a,b,c);后的输出结果是( )
A.10,20,30 B.20,30,10 C.20,30,20 D. 20,30,30
【答案】D
2.以下程序段中,与表达式:k=a>b?(b>c?1:0):0;功能相同的是( )
A.if(a>b&&b>c) k=1;else k=0;
B.if(a>b||b>c) k=1;else k=0;
C.if(a<=b) k=0;else if(b<=c) k=1;
D.if(a>b) k=1;else if(b>c) k=1;else k=0;
【答案】A
3.设以下变量均已正确定义并赋值,则下列不正确的语句是( )
A.if(x>y) x++; B.if(x=y)&&(x!=0) x+=y;
C.if(x!=y) x++;else y++; D.if(x>y) {x--;y--;}
【答案】B
4.已有定义:int a=4,b=5,t=0;执行语句:if(a<b){t=a;a=b;b=t;}后,a,b的值分别为( )
A.5,4 B.4,5 C.5,0 D.0,5
【答案】A
5.执行以下程序段后的输出结果是( )
{int x=7;if(x++>7) printf(“%d
”,x);
else printf(“%d
”,--x);}
A.6 B.7 C.8 D.9
【答案】B
6.执行下列程序段的输出结果是( )
{int a=6,b=6;
if(a>5) a-=1;b+=1;
else a+=1;b-=1;
printf("a=%d,b=%d",a,b);
A.5,7 B.a=5,b=7 C.a=5,b=6 D.编译时出错
【答案】D
7.若有定义:int a=4,b=6,c=8;,则执行语句:if(a>b) c=a;a=b;b=c;后,a,b,c,的值为( )
A.a=4,b=6,c=8 B.a=6,b=8,c=8
C.a=6,b=4,c=8 D.a=6,b=8,c=4
【答案】B
8.执行下列程序段之后,a的值为( )
{int x,y,z,a;x=y=z=0;a=25;
if(!x) a--;else if(y);if(z) a=9;else a=10;
A.24 B.9 C.25 D.10
【答案】D
9.执行下列程序段之后的输出结果是( )
int x=1,y=2,z=2;
if(x=y-z) printf("***");
else printf("$$$");
A.输出:*** B.有语法错误,编译出错
C.输出:$$$ D.编译通过,连接出错,程序不能运行
【答案】C
10.执行下列程序段之后的输出结果是( )
int x=0,y=0,z=0;if(++x>0||++y>0) ++z;printf("%d,%d,%d",x,y,z);
A.0,0,0 B.0,1,1 C.1,0,1 D.1,1,1
【答案】C
11.下列条件语句中,输出结果与其他语句不同的是( )
A.if(x) printf(“%d”,a); else printf(“%d”,b);
B.if(x==0) printf(“%d”,b); else printf(“%d”,a);
C.if(x!=0) printf(“%d”,a); else printf(“%d”,b);
D.if(x==0) printf(“%d”,a); else printf(“%d”,b);
【答案】D
12.执行以下程序段后的输出结果是( )
int x=10,y=20;if(!x)y++;else if(x==0)
if(x) y+=2;else y+=3;printf("%d",y);
A.23 B.22 C.21 D.20
【答案】D
13.执行以下程序段的输出结果是( )
int a=1,b=2,c=3;if(c=a) printf("%d",c);else printf("%d",b);
A.0 B.1 C.2 D.3
【答案】B
14.执行以下程序段的输出结果是( )
int n=2;if(n++%3) printf("&");else printf("$");
A.& B.$ C.有语法错导致编译出错 D.无语法错但连接出错
【答案】A
15.执行以下程序段的输出结果是( )
int x=8,y=-10,z=2;if(x<y)
if(y<0) z=2;else z=-2;printf("%d",z);
A.2 B.-2 C.8 D.-10
【答案】A
16.执行以下程序段的输出结果是( )
main()
{int i=-1;if(i<=0) printf("****
")
else printf("%%%%
");}
A.**** B.%%%%c C.%%%% D.有语法错,不能正确执行
【答案】B。缺少分号,有语法错。
17.以下不正确的if语句形式是( )
A.if(x>y&&x!=y);
B.if(x!=y) x+=y;
C.if(x==y) printf(“%d”,x) else printf(“%d”,y);
D.if(x<y){x++;y++;}
【答案】C
18.在C语言中,紧跟在关键字if后一对圆括号里的表达式( )
A.只能用逻辑表达式 B.只能用关系表达式
C.只能用逻辑表达式或关系表达式 D.可以是任意表达式
【答案】D
19.以下语法正确的if语句是( )
A.if(x>0) printf(“%f”,x) else printf(“%f”,-x);
B.if(x>0){x=x+y;printf(“%f”,x);}else printf(“%f”,-x);
C.if(x>0){x=x+y;printf(“%f”,x);};else printf(“%f”,-x);
D.if(x>0){x=x+y;printf(“%f”,x)}else printf(“%f”,-x);
【答案】B。注意分号。
20.执行以下程序段的输出结果是( )
int a=10,b=50,c=30;if(a>b) a=b,b=c;
c=a;printf("a=%d,b=%d,c= %d
",a,b,c);
A.a=10,b=30,c=10 B.a=10,b=50,c=10
C.a=50,b=30,c=10 D.a=50,b=30,c=50
【答案】B
21.执行以下程序段的输出结果是( )
int x=1;
if(x=2)printf("OK");
else if(x<2)printf("%d
",x);
else printf("Quit");
A.0 B.1 C.OK D.Quit
【答案】C
22.以下程序段在运行时输入:5<回车>,输出结果是( )
int a,b;scanf("%d",&a);b=0;
if(a!=0)
if(a>0) b=1;else b=-1;printf("a=%d,b=%d
",a,b);
A.a=5,b=1 B.a=5,b=5 C.a=1,b=1 D. a=5,b=1
【答案】D
23.执行以下程序段后,a,b,c的输出结果是( )
int a=9,b=8,c=7;if(a>c){a=b;b=c;c=a;}else a=c;c=b;b=a;
A.9,8,8 B.9,8,7 C.8,8,7 D.8,7,8
【答案】C
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int t,h,m;
scanf("%d",&t);
h=(t/100)%12;
if(h==0) h=12;
printf("%d:",h);
m=t%100;
if(m<10) printf("0");
printf("%d",m);
if(t<1200||t==2400) printf("AM");
else printf("PM");
getch();}
运行时输入:1845<回车>
【答案】6:45PM
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int x;
scanf("%d",&x);
if(x++>5) printf("%d
",x);
else printf("%d
",x--);
getch();}
运行时输入:8<回车>
【答案】9
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a,b,c,d;
a=b=c=0;
d=30;
if(!a)d--;
else if(b);
if(c) d=3;
else d=4;
printf("%d
",d);
getch();}
【答案】4
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a,b;
scanf("%d",&a);
if(a<0) b=-1;
else if(a==0) b=0;
else b=1;
printf("a=%d,b=%d
",a,b);
getch();}
运行时输入:-8<回车>
【答案】a=-8,b=-1
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{char ch;
scanf("%c",&ch);
if(ch>='A'&&ch<='Z')ch=ch+32;
else if(ch>='a'&&ch<='z')ch=ch-32;
printf("%c",ch);
getch();}
运行时输入:A<回车>
【答案】a
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int a,b,c,d,x;
a=c=0;b=1;d=34;
if(a) d=d-10;
else if(!b)
if(!c) x=15;
else x=25;
printf("%d
",d);
getch();}
【答案】34
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int x,y=-2,z=0;
if((z=y)<0) x=4;
else if(y==0) x=5;
else x=6;
printf("%d %d ",x,z);
if(z=(y==0)) x=5;x=4;
printf("%d %d ",x,z);
if(x=z=y) x=4;
printf("%d %d ",x,z);
getch();}
【答案】4 -2 4 0 4 -2
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共9分)
31.下列程序的功能是:输入x的值,根据下列分段函数求解y的值。程序中共有三处错误。
L1 #include <stdio.h>
L2 #include<conio.h>
L3 main()
L4 {int x,y;
L5 printf("input x:");
L6 scanf("%d",&x);
L7 if(-5<=x<0) y=x;
L8 else if(x=0) y=x-1;
L9 else if((x>0)&&(x<10)) y=x+2;
L10 else if y=2*x+4;
L11 printf("x=%d,y=%d
",x,y);
L12 getch();}
答案:
L7 if(x>=-5&&x<0) y=x;
L8 else if(x==0) y=x-1;
L10 else if(x>=10) y=2*x+4;
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分)
32.以下程序的功能是:某邮局对邮寄包裹有如下规定,若包裹的长、宽、高任一尺寸超过1m或重量超过30kg,不予邮寄;对可以邮寄的包裹 每件收手续费0.2元,再加上根据表1按不同重量weigh计算的邮资。请填空。
表格 1
重量/kg
邮资/元
weigh<10
0.80
10< weigh≤20
0.75
20< weigh≤30
0.7
#include <stdio.h>
#include<conio.h>
main()
{float len,weigh,hei,wid,mon,r;
scanf("%f%f%f%f",&len,&wid,&hei,&weigh);
if(len>1||wid>1||hei>1||weigh>30) 【1】;
else if(weigh<10) r=0.8;
else if(weigh<=20) 【2】;
else if(weigh<=30) r=0.7;
if(【3】) printf("不予邮寄!!
");
else
{【4】;
printf("%f",mon);}
getch();}
答案:①r=-1 ②r=0.75 ③r==-1 ④mon=weigh*r+0.2
33.下面程序的功能是:根据表2中给定的函数关系,对输入的每个x值计算出相应的y值。请填空。
表格 2
x
y
2<x≤10
x(x+2)
-1<x≤2
2x
x≤-1
x-1
#include <stdio.h>
#include<conio.h>
main()
{int x,y;
scanf("%d",&x);
if(【1】) y=x*(x+2);
else if(【2】) y=2*x;
else if(x<=-1) 【3】;
else y=-1;
if(【4】) printf("%d",y);
else printf("error");
getch();}
答案:①x>2&&x<=10 ②x>-1&&x<=2 ③y=x-1 ④y!=-1
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$