内容正文:
编写说明:湖南省普通高校对口招生专业理论考试《计算机应用类专业综合考纲百套卷》,依据《湖南省普通高校对口招生计算机应用类专业综合知识基本要求及考试大纲》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第71卷,按《计算机编程语言——C语言》范围和要求编写。具体内容为:①switch语句;②分支结构程序设计实例。
湖南省《计算机应用类专业综合考纲百套卷》 第71卷
《计算机编程语言——C语言》
多分支语句
考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共15小题,每题2分,共30分)
1.关于switch语句中的case标签,下列说法正确的是( )
A. case后面的值可以是变量
B. case后面的值必须是常量表达式
C. case后面的值必须是按从小到大排列的
D. 两个case可以拥有相同的常量值
【答案】B
【解析】case后必须是整型或字符型的常量表达式,不能是变量;且同一个switch中,各个case的常量值必须互不相同,顺序不限。
2.执行以下代码片段,变量a的最终值是( )
int a = 1;
switch(a) {
case 1: a++;
case 2: a += 2; break;
case 3: a += 3;
}
A. 1 B. 2 C. 4 D. 5
【答案】C
【解析】a初始为1,匹配case 1,执行a++后a变为2;因为没有break,穿透到case 2,执行a += 2,a变为4,遇到break跳出。
3.以下程序段的输出结果是( )
int x = 1, a = 0, b = 0;
switch(x) {
case 0: b++;
case 1: a++;
case 2: a++; b++;
}
printf("a=%d,b=%d
", a, b);
A. a=1,b=0 B. a=1,b=1 C. a=2,b=1 D. a=2,b=2
【答案】C
【解析】x=1匹配case 1,执行a++(a=1);穿透到case 2,执行a++(a=2)和b++(b=1),然后结束。
4.关于 C 语言 switch 语句的表达式,下列说法正确的是( )
A. 可以是任意浮点型表达式
B. 只能是整型、字符型、枚举型表达式
C. 可以是数组名表达式
D. 可以是指针类型表达式
【答案】B
【解析】switch 后的控制表达式要求结果为整型、字符型或枚举型,浮点型、数组、指针均不允许。
5.设有定义char ch = '3';,以下 switch 语句语法合法的是( )
A. switch(ch) { case 3: ... }
B. switch(ch) { case "3": ... }
C. switch(ch) { case '3.0': ... }
D. switch(3.0) { case '3': ... }
【答案】A
【解析】字符本质是 ASCII 整型,'3'的 ASCII 值对应整数 51,case 使用整型常量合法;字符串、浮点常量非法。
6.程序段:int x=1; switch(x) { case 1: x++; case 2: x++; break; } 执行后 x 的值为( )
A. 1 B. 2 C. 3 D. 4
【答案】C
【解析】case1 无 break 发生穿透,连续执行两个分支,x 自增两次,结果为 3。
7.设有int n=0;,switch(n) { default: n++; case 0: n+=2; break; } 执行后 n 的值是( )
A. 0 B. 1 C. 2 D. 3
【答案】C
【解析】n=0 匹配 case0,执行n+=2,最终 n=2,default 未执行。
8.设有:char c='b'; switch(c) { case 'a': c++; case 'b': c+=2; break; case 'c': c--; } 执行后 c 的 ASCII 值为( )
A. 98 B. 100 C. 99 D. 101
【答案】B
【解析】'b'ASCII 为 98,执行c+=2,结果为 100。
9.设有:int k=3; switch(k/2) { case 0: puts("A"); case 1: puts("B"); break; } 输出结果为( )
A. A B. B C. A B D. 无输出
【答案】B
【解析】3/2=1,匹配 case1,输出 B。
10.设有:int a=5; switch(a%4) { case 1: a*=2; break; case 2: a/=2; default: a+=1; } 执行后 a 为( )
A. 5 B. 6 C. 10 D. 2
【答案】C
【解析】5%4=1,执行 case1:a=10,遇 break 跳出,无后续执行。
11.执行程序段:int m = 0;switch(0) {case 0: m++;case 1: m++; break; default: m++; },后,m 的值是( )
A. 1 B. 2 C. 3 D. 4
【答案】B
【解析】switch表达式的值为0,程序匹配并执行case 0,m自增变为1;由于case 0后没有break语句,发生穿透继续向下执行case 1中的m++,m变为2;随后遇到break语句直接跳出switch结构,default分支不再执行,因此最终m的值为2。
12.执行以下代码,变量m的值是( )
int a = 19, b = 24, m = 0;
switch(a % 3) {
case 0: m++; break;
case 1: m++;
switch(b % 2) {
default: m++; break;
}
}
A. 1 B. 2 C. 3 D. 0
【答案】B
【解析】a%3为1,匹配case 1,m变为1;进入内层switch,b%2为0,无case 0,执行default,m变为2。
13.以下程序段的输出结果是( )
int a = 0, b = 0;
switch(a) {
case 0: b++; break;
case 1: a++;
case 2: a++; b++;
}
printf("a=%d, b=%d
", a, b);
A. a=1,b=1 B. a=0,b=1 C. a=1,b=0 D. a=0,b=0
【答案】B
【解析】a=0匹配case 0,执行b++(b=1),遇到break跳出,a仍为0。
14.以下代码的输出结果是( )
int k = 5, n = 0;
while(k > 0) {
switch(k) {
default: break;
case 1: n += k;
case 2:
case 3: n += k;
}
k--;
}
printf("%d
", n);
A. 0 B. 4 C. 6 D. 7
【答案】D
【解析】k=5,4走default,n不变;k=3匹配case 3,n+=3(n=3);k=2匹配case 2,穿透到case 3,n+=2(n=5);k=1匹配case 1,n+=1(n=6),穿透到case 3,n+=1(n=7)。故n=7。
15.设有:int a=10; switch(a>5) { case 1: a--; break; case 0: a++; } 执行后 a 为( )
A. 9 B. 11 C. 10 D. 编译错误
【答案】A
【解析】关系表达式 a>5 结果为 1,匹配 case1,a 自减为 9。
二、阅读程序,写出运行结果(本大题共10小题。每空2分,合计20分)
1.(2026年)下列程序的运行结果是__________________。
#include <stdio.h>
int main(){
int a=5;
switch(a/3){
case 0:
printf("0");
break;
case 1:
printf("1");
case 2:
printf("2");
}
return 0;
}
【答案】12
2.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int x = 2;
switch(x)
{ case 1: x++;
case 2:
switch(x + 1)
{ case 3: x += 3; break;
case 4: x += 4;}
break;
case 3: x--; }
printf("%d", x);
return 0;}
【答案】5
3.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int m = 4;
switch(m % 3)
{ case 0: m = m + 1; break;
case 1:
switch(m / 2)
{ case 2: m -= 2;
case 3: m -= 1; }
break; }
printf("%d", m);
return 0;}
【答案】1
4.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int k = 5;
switch(k)
{ case 3: k++; break;
case 4: k++;
case 5:
k = k - 2;
switch(k)
{ case 2: k *= 3; break;
case 3: k *= 2; } }
printf("%d", k);
return 0;}
【答案】6
5.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int p = 2, q = 3;
switch(p + q)
{ case 4: p++; break;
case 5:
switch(q - p)
{ case 1: q += p; break;
case 2: q -= p; }
if(p < q)
p = q;
break; }
printf("%d %d", p, q);
return 0; }
【答案】5 5
6.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int x = 3, y = 1;
switch(x - y)
{ case 1: x++; break;
case 2:
if(x > y)
{ switch(y + 1)
{ case 2: y += x;
break; } }
else x = y;
break; }
printf("%d %d", x, y);
return 0; }
【答案】3 4
7.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int a = 6;
switch(a % 4)
{ case 2:
a = (a > 5) ? a-2 : a+2;
switch(a/2)
{ case 2: a += 3;
case 3: a -= 1; break; }
case 3: a *= 2; }
printf("%d",a);
return 0; }
【答案】12
8.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ char c = 'G';
int res = 0;
res = c - 'A';
if(res >= 5)
{ switch(res % 3)
{ case 0: res += 4; break;
case 1: res -= 2;
case 2: res *= 2; } }
else
{ res += 10; }
printf("%d",res);
return 0;}
【答案】10
9.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int x = 7, y = 4;
switch(x - y)
{ case 2:
if(x % y > 1) x = x + y;
else x = x - y;
break;
case 3:
switch(y)
{ case 3: x++; break;
case 4: x--; }}
printf("%d",x);
return 0;}
【答案】6
10.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ char ch = 'B';
int score = 0;
switch(ch)
{ case 'A': score += 10;
case 'B': score += 8;
case 'C':
if(score > 5) score -= 3;
break;
default: score = 0; }
printf("%d",score);
return 0;}
【答案】5
三、程序填空。按照题目要求,将正确内容填入答题卡相应位置,使程序完整(每空2分,共计30分)
1.(2025年)居民月用电量(度)采用阶梯计费方式。用电量 C:当0<C<=200时为第一阶梯,每度电 0.58 元;200<C<=500时为第二阶梯,每度电 0.73 元;超过 500 的部分为第三阶梯,每度电 0.92 元。试编程实现以下功能:输入月用电量 C(整数),计算并输出需支付的电费(元)。
#include <stdio.h>
int main(){
int c;
float m;
_________①__________
float m2=300*0.73;
printf("C=");
_________②_________
if(c<0){
printf("error! ");
return 1;
} else{
switch((c+99)/100){
case 0:
case 1:
case 2:
__________③_________
break;
case 3:
case 4:
case 5:
m=m1+(c-200)*0.73;
break;
___________④___________
m=m1+m2+(c-500)*0.92;
}
}
printf("m=%.2f",m);
return 0;}
【答案】①float m1=200*0.58; ②scanf("%d",&c);
③m=c*0.58; ④case 6: default:
2.(2023年)一件衣服 80 元,消费满 300 元,打九折;消费满 500 元,打 8 折。试编程实现以下功能:输入购买衣服件数,输出购买件数和需付金额(元)。
#include <stdio.h>
int main()
{ int s,n;
__________①_________
printf("n=");
scanf("%d",&n);
s = n*80;
switch(______②______)
{ case 0:
case 1:
case 2:
break;
case 3:
case 4:
d=0.9;
break;
_________③_________
d=0.8;
}
________④________
printf("n=%d,s=%d
",n,s);
return 0; }
【答案】①float d=1.0; ②s/100 ③default: ④s*=d; 或 s=s*d;
3.下列程序的功能是:输入分子、分母两个整数,判断分母是否合法,再判断分数是否为最简分数并输出结果。
#include <stdio.h>
int main()
{ int a, b, i, flag = 1;
scanf("%d%d", &a, &b);
if(______①_____)
{ printf("非法
");
return 0; }
for(i = 2; i <= (a < b ? a : b); i++)
{ if(________②________)
{ flag = 0;
_______③_______ }
}
if(_____④_____)
printf("是最简分数
");
else
printf("非最简分数
");
return 0; }
【答案】①b == 0 ②a % i == 0 && b % i == 0 ③break; ④flag
4.下列程序的功能是:输入年份和月份,输出该月份对应的天数,需考虑闰年对 2 月天数的影响。
#include <stdio.h>
int main()
{ int year, mon, day;
scanf("%d%d", &year, &mon);
switch(_______①______)
{ case 1:case 3:case 5:case 7:case 8:case 10:case 12:
day = 31; break;
case 4:case 6:case 9:case 11:
day = 30; break;
case 2:
if(___________②_________)
day = 29;
else
day = 28;
break;
default: day = -1;
}
if(_______③_______)
printf("非法月份
");
else
printf("%d天
", day);
return 0; }
【答案】①mon ②(year%4==0 && year%100!=0) || year%400==0
③day == -1
四、阅读程序:修改程序中的错误,不得增行或删行,也不得更改程序结构。请在答题卡中指出错误代码所在的行号,并给出该行修改后的程序代码。(每空2分,共计20分)
1.已知某公司员工的工资底薪为500元,员工销售的软件金额与提成方式如下:
销售额<=2000 没有提成
2000<销售额<=5000 提成8%
5000<销售额<=10000 提成10%
销售额>10000 提成12%;下列程序的功能是利用switch语句求出员工的工资。以下程序只允许修改四行。
L1 #include <stdio.h>
L2 void main()
L3 {
L4 float salary=500;
L5 int k;
L6 int profit ;
L7 printf("输入员工这个月的销售额:");
L8 scanf("%d",profit);
L9 if (profit/1000==0)
L10 k=profit/1000;
L11 else
L12 k=profit/1000;
L13 switch (k)
L14 {
L15 case 0:
L16 case 1:
L17 case 2:
L18 case 3:
L19 case 4:
L20 case 5:
L21 salary+=profit*0.08;
L22 break;
L23 case 6:
L24 case 7:
L25 case 8:
L26 case 9:
L27 case 10:
L28 salary+=profit*0.1;
L29 break;
L30 default:
L31 salary+=profit*0.12;
L32 break;
L33 }
L34 printf("员工这个月的工资为:%5.2f
",salary);
L35 }
【答案】①L8 scanf("%d",&profit);
②L9 if (profit%1000==0)
③L12 k=profit/1000+1;
④L17 case 2: break;
2.某加油站有a、b、c 3种汽油,售价分别为3.25、3.00、2.75(元/千克),也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。下列程序的功能是针对用户输入加油量x、汽油的品种y和服务的类型z,输出用户应付的金额。以下程序只允许修改四行。
L1 #include <stdio.h>
L2 void main()
L3 {
L4 float x, m1, m2, m;
L5 char y, z;
L6 scanf("%c,%c,%c", &x, &y, &z);
L7 switch ('y')
L8 {
L9 case 'a':
L10 m1 = 3.25;
L11 break;
L12 case 'b':
L13 m1 = 3.00;
L14 break;
L15 case 'c':
L16 m1 = 2.75;
L17 break;
L18 }
L19 switch (x)
L20 {
L21 case 'a':
L22 m2 = 0;
L23 break;
L24 case 'm':
L25 m2 = 0.05;
L26 break;
L27 case 'e':
L28 m2 = 0.1;
L29 break;
L30 }
L31 m = x * m1 + x * m1 * m2;
L32 printf("汽油种类是:%c
", y);
L33 printf("服务等级是:%c
", z);
L34 printf("用户应付金额是:%.3f
", m);
L35 }
【答案】①L6 scanf("%f,%c,%c", &x, &y, &z);
②L7 switch (y)
③L19 switch (z)
④L31 m = x * m1 - x * m1 * m2;
3.下列程序的功能是:要求从键盘上输入某个学生的四科成绩,求出该学生的最高分和最低分。以下程序只允许修改两行。
L1 #include <stdio.h>
L2 void main()
L3 {
L4 float s1,s2,s3,s4,min,max;
L5 printf("输入4个成绩:
");
L6 scanf("%f%f%f%f",&s1,&s2,&s3,&s4);
L7 min=max=s2;
L8 if (s2<min)
L9 min=s2;
L10 else if(s2>max)
L11 max=s2;
L12 if (s3<min)
L13 min=s3;
L14 else if(s3>max)
L15 max=s3;
L16 if (s4<min)
L17 min=s4;
L18 else if(s4<max)
L19 max=s4;
L20 printf("min= %3.2f max=%3.2f
",min,max);
L21 }
【答案】①L7 min=max=s1;
②L18 else if(s4>max)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:湖南省普通高校对口招生专业理论考试《计算机应用类专业综合考纲百套卷》,依据《湖南省普通高校对口招生计算机应用类专业综合知识基本要求及考试大纲》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第71卷,按《计算机编程语言——C语言》范围和要求编写。具体内容为:①switch语句;②分支结构程序设计实例。
湖南省《计算机应用类专业综合考纲百套卷》 第71卷
《计算机编程语言——C语言》
多分支语句
考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共15小题,每题2分,共30分)
1.关于switch语句中的case标签,下列说法正确的是( )
A. case后面的值可以是变量
B. case后面的值必须是常量表达式
C. case后面的值必须是按从小到大排列的
D. 两个case可以拥有相同的常量值
2.执行以下代码片段,变量a的最终值是( )
int a = 1;
switch(a) {
case 1: a++;
case 2: a += 2; break;
case 3: a += 3;
}
A. 1 B. 2 C. 4 D. 5
3.以下程序段的输出结果是( )
int x = 1, a = 0, b = 0;
switch(x) {
case 0: b++;
case 1: a++;
case 2: a++; b++;
}
printf("a=%d,b=%d
", a, b);
A. a=1,b=0 B. a=1,b=1 C. a=2,b=1 D. a=2,b=2
4.关于 C 语言 switch 语句的表达式,下列说法正确的是( )
A. 可以是任意浮点型表达式
B. 只能是整型、字符型、枚举型表达式
C. 可以是数组名表达式
D. 可以是指针类型表达式
5.设有定义char ch = '3';,以下 switch 语句语法合法的是( )
A. switch(ch) { case 3: ... }
B. switch(ch) { case "3": ... }
C. switch(ch) { case '3.0': ... }
D. switch(3.0) { case '3': ... }
6.程序段:int x=1; switch(x) { case 1: x++; case 2: x++; break; } 执行后 x 的值为( )
A. 1 B. 2 C. 3 D. 4
7.设有int n=0;,switch(n) { default: n++; case 0: n+=2; break; } 执行后 n 的值是( )
A. 0 B. 1 C. 2 D. 3
8.设有:char c='b'; switch(c) { case 'a': c++; case 'b': c+=2; break; case 'c': c--; } 执行后 c 的 ASCII 值为( )
A. 98 B. 100 C. 99 D. 101
9.设有:int k=3; switch(k/2) { case 0: puts("A"); case 1: puts("B"); break; } 输出结果为( )
A. A B. B C. A B D. 无输出
10.设有:int a=5; switch(a%4) { case 1: a*=2; break; case 2: a/=2; default: a+=1; } 执行后 a 为( )
A. 5 B. 6 C. 10 D. 2
11.执行程序段:int m = 0;switch(0) {case 0: m++;case 1: m++; break; default: m++; },后,m 的值是( )
A. 1 B. 2 C. 3 D. 4
12.执行以下代码,变量m的值是( )
int a = 19, b = 24, m = 0;
switch(a % 3) {
case 0: m++; break;
case 1: m++;
switch(b % 2) {
default: m++; break;
}
}
A. 1 B. 2 C. 3 D. 0
13.以下程序段的输出结果是( )
int a = 0, b = 0;
switch(a) {
case 0: b++; break;
case 1: a++;
case 2: a++; b++;
}
printf("a=%d, b=%d
", a, b);
A. a=1,b=1 B. a=0,b=1 C. a=1,b=0 D. a=0,b=0
14.以下代码的输出结果是( )
int k = 5, n = 0;
while(k > 0) {
switch(k) {
default: break;
case 1: n += k;
case 2:
case 3: n += k;
}
k--;
}
printf("%d
", n);
A. 0 B. 4 C. 6 D. 7
15.设有:int a=10; switch(a>5) { case 1: a--; break; case 0: a++; } 执行后 a 为( )
A. 9 B. 11 C. 10 D. 编译错误
二、阅读程序,写出运行结果(本大题共10小题。每空2分,合计20分)
1.(2026年)下列程序的运行结果是__________________。
#include <stdio.h>
int main(){
int a=5;
switch(a/3){
case 0:
printf("0");
break;
case 1:
printf("1");
case 2:
printf("2");
}
return 0;
}
2.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int x = 2;
switch(x)
{ case 1: x++;
case 2:
switch(x + 1)
{ case 3: x += 3; break;
case 4: x += 4;}
break;
case 3: x--; }
printf("%d", x);
return 0;}
3.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int m = 4;
switch(m % 3)
{ case 0: m = m + 1; break;
case 1:
switch(m / 2)
{ case 2: m -= 2;
case 3: m -= 1; }
break; }
printf("%d", m);
return 0;}
4.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int k = 5;
switch(k)
{ case 3: k++; break;
case 4: k++;
case 5:
k = k - 2;
switch(k)
{ case 2: k *= 3; break;
case 3: k *= 2; } }
printf("%d", k);
return 0;}
5.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int p = 2, q = 3;
switch(p + q)
{ case 4: p++; break;
case 5:
switch(q - p)
{ case 1: q += p; break;
case 2: q -= p; }
if(p < q)
p = q;
break; }
printf("%d %d", p, q);
return 0; }
6.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int x = 3, y = 1;
switch(x - y)
{ case 1: x++; break;
case 2:
if(x > y)
{ switch(y + 1)
{ case 2: y += x;
break; } }
else x = y;
break; }
printf("%d %d", x, y);
return 0; }
7.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int a = 6;
switch(a % 4)
{ case 2:
a = (a > 5) ? a-2 : a+2;
switch(a/2)
{ case 2: a += 3;
case 3: a -= 1; break; }
case 3: a *= 2; }
printf("%d",a);
return 0; }
8.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ char c = 'G';
int res = 0;
res = c - 'A';
if(res >= 5)
{ switch(res % 3)
{ case 0: res += 4; break;
case 1: res -= 2;
case 2: res *= 2; } }
else
{ res += 10; }
printf("%d",res);
return 0;}
9.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ int x = 7, y = 4;
switch(x - y)
{ case 2:
if(x % y > 1) x = x + y;
else x = x - y;
break;
case 3:
switch(y)
{ case 3: x++; break;
case 4: x--; }}
printf("%d",x);
return 0;}
10.下列程序的运行结果是__________________。
#include <stdio.h>
int main()
{ char ch = 'B';
int score = 0;
switch(ch)
{ case 'A': score += 10;
case 'B': score += 8;
case 'C':
if(score > 5) score -= 3;
break;
default: score = 0; }
printf("%d",score);
return 0;}
三、程序填空。按照题目要求,将正确内容填入答题卡相应位置,使程序完整(每空2分,共计30分)
1.(2025年)居民月用电量(度)采用阶梯计费方式。用电量 C:当0<C<=200时为第一阶梯,每度电 0.58 元;200<C<=500时为第二阶梯,每度电 0.73 元;超过 500 的部分为第三阶梯,每度电 0.92 元。试编程实现以下功能:输入月用电量 C(整数),计算并输出需支付的电费(元)。
#include <stdio.h>
int main(){
int c;
float m;
_________①__________
float m2=300*0.73;
printf("C=");
_________②_________
if(c<0){
printf("error! ");
return 1;
} else{
switch((c+99)/100){
case 0:
case 1:
case 2:
__________③_________
break;
case 3:
case 4:
case 5:
m=m1+(c-200)*0.73;
break;
___________④___________
m=m1+m2+(c-500)*0.92;
}
}
printf("m=%.2f",m);
return 0;}
2.(2023年)一件衣服 80 元,消费满 300 元,打九折;消费满 500 元,打 8 折。试编程实现以下功能:输入购买衣服件数,输出购买件数和需付金额(元)。
#include <stdio.h>
int main()
{ int s,n;
__________①_________
printf("n=");
scanf("%d",&n);
s = n*80;
switch(______②______)
{ case 0:
case 1:
case 2:
break;
case 3:
case 4:
d=0.9;
break;
_________③_________
d=0.8;
}
________④________
printf("n=%d,s=%d
",n,s);
return 0; }
3.下列程序的功能是:输入分子、分母两个整数,判断分母是否合法,再判断分数是否为最简分数并输出结果。
#include <stdio.h>
int main()
{ int a, b, i, flag = 1;
scanf("%d%d", &a, &b);
if(______①_____)
{ printf("非法
");
return 0; }
for(i = 2; i <= (a < b ? a : b); i++)
{ if(________②________)
{ flag = 0;
_______③_______ }
}
if(_____④_____)
printf("是最简分数
");
else
printf("非最简分数
");
return 0; }
4.下列程序的功能是:输入年份和月份,输出该月份对应的天数,需考虑闰年对 2 月天数的影响。
#include <stdio.h>
int main()
{ int year, mon, day;
scanf("%d%d", &year, &mon);
switch(_______①______)
{ case 1:case 3:case 5:case 7:case 8:case 10:case 12:
day = 31; break;
case 4:case 6:case 9:case 11:
day = 30; break;
case 2:
if(___________②_________)
day = 29;
else
day = 28;
break;
default: day = -1;
}
if(_______③_______)
printf("非法月份
");
else
printf("%d天
", day);
return 0; }
四、阅读程序:修改程序中的错误,不得增行或删行,也不得更改程序结构。请在答题卡中指出错误代码所在的行号,并给出该行修改后的程序代码。(每空2分,共计20分)
1.已知某公司员工的工资底薪为500元,员工销售的软件金额与提成方式如下:
销售额<=2000 没有提成
2000<销售额<=5000 提成8%
5000<销售额<=10000 提成10%
销售额>10000 提成12%;下列程序的功能是利用switch语句求出员工的工资。以下程序只允许修改四行。
L1 #include <stdio.h>
L2 void main()
L3 {
L4 float salary=500;
L5 int k;
L6 int profit ;
L7 printf("输入员工这个月的销售额:");
L8 scanf("%d",profit);
L9 if (profit/1000==0)
L10 k=profit/1000;
L11 else
L12 k=profit/1000;
L13 switch (k)
L14 {
L15 case 0:
L16 case 1:
L17 case 2:
L18 case 3:
L19 case 4:
L20 case 5:
L21 salary+=profit*0.08;
L22 break;
L23 case 6:
L24 case 7:
L25 case 8:
L26 case 9:
L27 case 10:
L28 salary+=profit*0.1;
L29 break;
L30 default:
L31 salary+=profit*0.12;
L32 break;
L33 }
L34 printf("员工这个月的工资为:%5.2f
",salary);
L35 }
2.某加油站有a、b、c 3种汽油,售价分别为3.25、3.00、2.75(元/千克),也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。下列程序的功能是针对用户输入加油量x、汽油的品种y和服务的类型z,输出用户应付的金额。以下程序只允许修改四行。
L1 #include <stdio.h>
L2 void main()
L3 {
L4 float x, m1, m2, m;
L5 char y, z;
L6 scanf("%c,%c,%c", &x, &y, &z);
L7 switch ('y')
L8 {
L9 case 'a':
L10 m1 = 3.25;
L11 break;
L12 case 'b':
L13 m1 = 3.00;
L14 break;
L15 case 'c':
L16 m1 = 2.75;
L17 break;
L18 }
L19 switch (x)
L20 {
L21 case 'a':
L22 m2 = 0;
L23 break;
L24 case 'm':
L25 m2 = 0.05;
L26 break;
L27 case 'e':
L28 m2 = 0.1;
L29 break;
L30 }
L31 m = x * m1 + x * m1 * m2;
L32 printf("汽油种类是:%c
", y);
L33 printf("服务等级是:%c
", z);
L34 printf("用户应付金额是:%.3f
", m);
L35 }
3.下列程序的功能是:要求从键盘上输入某个学生的四科成绩,求出该学生的最高分和最低分。以下程序只允许修改两行。
L1 #include <stdio.h>
L2 void main()
L3 {
L4 float s1,s2,s3,s4,min,max;
L5 printf("输入4个成绩:
");
L6 scanf("%f%f%f%f",&s1,&s2,&s3,&s4);
L7 min=max=s2;
L8 if (s2<min)
L9 min=s2;
L10 else if(s2>max)
L11 max=s2;
L12 if (s3<min)
L13 min=s3;
L14 else if(s3>max)
L15 max=s3;
L16 if (s4<min)
L17 min=s4;
L18 else if(s4<max)
L19 max=s4;
L20 printf("min= %3.2f max=%3.2f
",min,max);
L21 }
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$