C语言程序-分支结构题目及答案
- 格式:doc
- 大小:31.50 KB
- 文档页数:8
【个人观点】练习3-1#include<stdio.h>int main(void){int vx,vy;printf("请输入两个数vx、vy:");scanf("%d%d",&vx,&vy);if(vx % vy)puts("vy不是vx的约数\n");elseputs("vy是vx的约数\n");return (0);}练习3-2#include<stdio.h>int main(void){int vx,vy;puts("请输入两个整数:");printf("整数:");scanf("%d",&vx);printf("整数:");scanf("%d",&vy);if(vx == vy)printf("它们相等");elseprintf("它们不相等");printf("\n");return (0);}#include<stdio.h>int main(void){int vx,vy;puts("请输入两个整数:");printf("整数:");scanf("%d",&vx);printf("整数:");scanf("%d",&vy);if(vx > vy)printf("前者大于后者");elseprintf("前者不大于后者");printf("\n");return (0);}练习3-3#include<stdio.h>#include<math.h>int main(void){int vx,vy;puts("请输入一个整数:\n");printf("整数:");scanf("%d",&vx);vy = fabs(vx);printf("它的绝对值是%d",vy);printf("\n");return (0);}【注】:用数学函数时,加上头文件#include<math.h> 练习3-4#include<stdio.h>#include<math.h>int main(void){int vx,vy;puts("请输入两个整数:\n");printf("整数A:");scanf("%d",&vx);printf("整数B:");scanf("%d",&vy);if(vx == vy)puts("A等于B\n");elseif(vx > vy)puts("A大于B\n");elseputs("A小于B\n");printf("\n");return (0);}【注】这个三分支结构要掌握练习3-5#include<stdio.h>#include<math.h>int main(void){int vx,vy,vz,min;puts("请输入三个整数:\n");printf("整数A:");scanf("%d",&vx);printf("整数B:");scanf("%d",&vy);printf("整数C:");scanf("%d",&vz);min = vx;if(vy < min)min = vy;if(vz < min)min = vz;printf("最小的数是%d:\n",min);printf("\n");return (0);}练习3-6#include<stdio.h>#include<math.h>int main(void){int vx,vy,vz,w,max;puts("请输入三个整数:\n");printf("整数A:");scanf("%d",&vx);printf("整数B:");scanf("%d",&vy);printf("整数C:");scanf("%d",&vz);printf("整数D:");scanf("%d",&w);max = vx;if(vy > max)max = vy;if(vz > max)max = vz;if(w > max)max = w;printf("最大的数是%d:\n",max);printf("\n");return (0);}练习3-7#include<stdio.h>int main(void){int vx,vy;puts("请输入两个整数:\n");printf("整数A:");scanf("%d",&vx);printf("整数B:");scanf("%d",&vy);if(vx > vy)printf("它们的差是%d:\n",vx - vy);elseif(vx < vy)printf("它们的差是%d:\n",vy - vx);elseprintf("它们的差是");printf("\n");return (0);}练习3-8#include<stdio.h>int main(void){int vx;puts("请输入一个整数:\n");scanf("%d",&vx);printf((vx != 0)?"该整数不是":"该整数是");printf("\n");return (0);}练习3-9#include<stdio.h>int main(void){int vx,vy,vz;puts("请输入三个整数:\n");printf("整数A:");scanf("%d",&vx);printf("整数B:");scanf("%d",&vy);printf("整数C:");scanf("%d",&vz);if(vx == vy == vz)printf("三个值都相等");elseif(vx == vy || vx == vz || vy == vz) printf("有两个值相等");elseprintf("三个值各不相同");printf("\n");return (0);}练习3-10#include<stdio.h>int main(void){int vx,vy,r1;puts("请输入两个整数:\n");printf("整数A:");scanf("%d",&vx);printf("整数B:");scanf("%d",&vy);r1 = ((vx > vy)?vx - vy:vy - vx);if(r1 <= 10)printf("它们的差值小于等于");elseprintf("它们的差值大于等于");printf("\n");return (0);}练习3-11#include<stdio.h>int main(void){int vx;puts("请输入一个整数:\n");scanf("%d",&vx);switch(vx % 2) {case 1:puts("该整数是奇数"); break;case 0:puts("该整数是偶数"); break;}printf("\n");return (0);}练习3-12#include<stdio.h>int main(void){int month;puts("请输入月份:\n");scanf("%d",&month);switch(month) {case 3:puts("是春天"); break;case 4:puts("是春天"); break;case 5:puts("是春天"); break;case 6:puts("是夏天"); break;case 7:puts("是夏天"); break;case 8:puts("是夏天"); break;case 9:puts("是秋天"); break;case 10:puts("是秋天"); break;case 11:puts("是秋天"); break;case 12:puts("是冬天"); break;case 1:puts("是冬天"); break;case 2:puts("是冬天"); break;default:puts("输入月份不存在!\a\a"); break;}printf("\n");return (0);}。
第6课分支结构(专题练习)1. 下面选项对分支结构理解错误的是()。
A. 能够根据判断条件,执行不同的语句块。
B. 条件判断只有真和假两种结果。
C. 语句块只能是一条语句。
D. 条件判断通常用关系表达式或逻辑表达式来进行描述。
【答案】C【解析】A 正确B 正确C 错误语句块可以是一条语句,也可以是多条语句。
D 正确2. Python中if-else语句是哪种结构的语法格式()A. 单分支结构B. 双分支结构C. 多分支结构D. 顺序结构【答案】B【解析】A 错误单分支结构使用的是if语句。
B 正确双分支结构使用的是if-else语句。
C 错误多分支结构使用的是if-elif-else语句。
D 正确顺序结构没有固定的语句,只需要自上而下、依次执行每一条语句即可。
3. 条件是由条件表达式来构成的,条件表达式的值为()。
A. 真和假B. 1和2C. 数字D. 字符串【答案】A【解析】分支结构中的条件判断通常用关系表达式或逻辑表达式来进行描述,表达式的结果要么成立,也称为真(true);要么不成立,也称为假(false)。
4. 下面哪个选项不属于分支结构的关键字()。
A. ifB. elifC. elseD. switch【答案】D【解析】在Python中,要构造分支结构可以使用if、elif和else关键字。
一般如果只有一种情况,可以单独使用if;如果有两种情况,可以使用if和else配套;如果有三者及以上,需要if、elif和else三者共同使用。
这里提醒一点,在Python中是没有switch语句结构的。
5. 能正确表示“只需满足a大于等于10和a小于等于0两个条件中的一个即可”的条件表达式是()。
A. a>=10 and a<=0B. a>=10 or a<=0C. a>=10 && a<=0D. a>=10 | a<=0【答案】B【解析】A 错误and表示两个条件必须同时满足。
C语言分支结构程序举例输入三个整数,输出最大数和最小数。
1.#include<stdio.h>2.int main(void){3.int a,b,c,max,min;4.printf("input three numbers: ");5.scanf("%d%d%d",&a,&b,&c);6.if(a>b){7.max=a;8.min=b;9.}else{10.max=b;11.min=a;12.}13.if(max<c){14.max=c;15.}else if(min>c){16.min=c;17.}18.printf("max=%d\nmin=%d",max,min);19.return0;20.}本程序中,首先比较输入的a、b的大小,并把大数装入max,小数装入min中,然后再与c比较,若max小于c,则把c赋予max;如果c小于min,则把c赋予min。
因此max内总是最大数,而min内总是最小数。
最后输出max和min的值即可。
计算器程序。
用户输入运算数和四则运算符,输出计算结果。
1.#include<stdio.h>2.int main(void){3.float a,b;4.char c;5.printf("input expression: a+(-,*,/)b \n");6.scanf("%f%c%f",&a,&c,&b);7.switch(c){8.case'+':printf("%f\n",a+b);break;9.case'-':printf("%f\n",a-b);break;10.case'*':printf("%f\n",a*b);break;11.case'/':printf("%f\n",a/b);break;12.default:printf("input error\n");13.}14.return0;15.}本例可用于四则运算求值。
分支结构程序设计[实验目的]1、进一步理解逻辑量的表示方法。
2、掌握C语言的逻辑运算符及逻辑表达式的正确使用。
3、熟练掌握if 语句与switch语句的正确应用。
[实验内容和步骤]1、有如下函数,请编程,输入x的值,输出y的值。
x (x<1)y= 2x-1 (1<=x<10)3x-11 (x>=10)#include <stdio.h>void main() {int x , y ;printf("Please input x : ") ;scanf("%d" , &x) ;if ( x < 1)y = x ;else if ( x >=1 && x < 10)y = 2 * x - 1 ;elsey = 3 * x - 11 ;printf("y = %d\n" , y) ;}2、根据学生成绩档次输出:成绩A档输出“85~100”成绩B档输出“70~84”成绩C档输出“60~69”其它输出“不及格”#include <stdio.h>void main() {int score ;printf("Please Input score: ") ;scanf( "%d" , &score ) ;if ( score >=85 && score <= 100)printf("85 ~ 100\n") ;else if (score >= 70 && score < 85)printf("70 ~ 84\n") ;else if (score >= 60 && score < 70)printf("60 ~ 69\n") ;elseprintf("bujige\n") ;}[问题讨论]1、对于多分枝选择结构何时使用if语句的嵌套,何时使用switch语句?2、 switch语句中break语句的作用是什么?。
100个经典C语言编程例子(答案另附)1:计算 A+B 的问题时间限制:1000MS 内存限制:10000K总提交数:1347 正确数:655问题描述输入两个整数 a 和 b ,计算 a+b 的结果并输出。
输入两个整数输出一个整数输入样例1 2输出样例32:Hello World!时间限制:1000MS 内存限制:65536K总提交数:848 正确数:693问题描述编写第一个C语言程序。
在屏幕上输出:Hello World!输入程序没有输入输出Hello World!输入样例输出样例Hello World!提示1、输出的内容要与题目的要求完全一样,不能多字符也不能少字符。
3:两个整数的值互换时间限制:1000MS 内存限制:65536K总提交数:1235 正确数:530问题描述输入两个整数a,b ,将 a 和 b 的值互换,并输出。
例如:输入: 2 5输出: 5 2输入两个整数输出两个整数输入样例2 5输出样例5 2提示注意输入和输出的格式,两个数据之间用一个空格隔开。
问题来源4:计算三门课程总分和平均分时间限制:1000MS 内存限制:65536K总提交数:1190 正确数:482问题描述输入三门课程的成绩,输出总分和平均分。
要求:(1)输入三个数,用空格隔开。
输入的数可以是小数。
(2)输出两个数,用空格隔开。
输出的数保留两位小数。
例如:输入: 75 80 90输出: 245.00 81.67 输入输入三个数,用空格隔开。
输入的数可以是小数。
输出输出两个数,用空格隔开。
输出的数保留两位小数。
输入样例75 80 90输出样例245.00 81.67问题来源5:鸡兔同笼问题时间限制:1000MS 内存限制:65536K总提交数:872 正确数:443问题描述这个问题,是我国古代著名趣题之一。
大约在1500年前,《孙子算经》中就记载了这个有趣的问题。
书中是这样叙述的:“今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。
何钦铭《C语言程序设计》(第3版)课后习题参考答案习题11.对C 语言来说,下列标识符中哪些是合法的,哪些是不合法的?total, _debug, Large&Tall, Counter1, begin_解答:合法标识符:total, _debug, Counter1;不合法标识符:Large&Tall, begin_。
2.改写本章1.4 节中的流程图1.2,求1~100 中能被6 整除的所有整数的和。
解答:3.改写本章1.4 节中的程序,求1~100 中能被6 整除的所有整数的和,并在编程环境中验证该程序的运行结果。
解答:#include <stdio.h>int main(void){int i, sum = 0;for(i = 1; i <= 100; i++)if (i % 6 == 0)sum = sum + i;printf("%d", sum);return 0;}4.对于给定的整数n(n>1),请设计一个流程图判别n 是否为一个素数(只能被1 和自己整除的整数),并分析该流程图中哪些是顺序结构、哪些是分支结构与循环结构。
解答:在流程图中,分支结构和循环结构如图1.2 所示,自上而下的2 个实线框和2 个虚线组成了顺序结构。
习题21.求整数均值:输入4 个整数,计算并输出这些整数的和与平均值,其中平均值精确到小数点后1 位。
试编写相应程序。
解答:#include <stdio.h>int main (void){int num1, num2, num3, num4;double average, sum;scanf ("%d%d%d%d", & num1, & num2, & num3, & num4);sum = num1+ num2+ num3 + num4;average = sum / 4;printf ("Sum = %.0f; Average = %.1f\n", sum, average);return 0;}2.阶梯电价:为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50 千瓦时(含50 千瓦时)以内的,电价为0.53 元/千瓦时;超过50 千瓦时的,超出部分的用电量,电价上调0.05 元/千瓦时。
c语言分支程序设计测试题目及答案1. 单选题:以下哪个关键字用于C语言中的条件语句?A. ifB. elseC. whileD. for答案:A2. 判断题:以下代码段能否正确判断一个整数是否为偶数?```cint num = 10;if (num % 2 == 0)printf("偶数");elseprintf("奇数");```正确错误答案:正确3. 填空题:在C语言中,以下代码段的功能是____。
```cint a = 5;if (a > 0)printf("正数");else if (a == 0)printf("零");elseprintf("负数");```答案:判断变量a的正负4. 简答题:请解释C语言中的三元运算符的用法。
答案:C语言中的三元运算符是 `条件表达式 ? 表达式1 : 表达式2`,其中条件表达式为真时,执行表达式1,否则执行表达式2。
5. 编程题:编写一个C语言程序,判断用户输入的年份是否为闰年。
```c#include <stdio.h>int main() {int year;printf("请输入一个年份:");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) printf("%d是闰年。
\n", year);elseprintf("%d不是闰年。
\n", year);return 0;}```6. 多选题:以下哪些条件可以使得if语句执行其内部代码块?A. 条件表达式为真B. 条件表达式为假C. 条件表达式返回非零值D. 条件表达式返回零值答案:AC7. 改错题:以下代码段中存在错误,请指出并修改。
五《C语言程序设计》实验四选择结构程序设计一、实验目的1、掌握分支语句的格式和功能。
2、掌握选择结构的程序设计。
3、掌握分支结构的嵌套。
二、实验内容与要求1、编程,计算下列分段函数值:x2+3x-4,x<0且x≠-4f(x)= x2-6x+5,0=x<10且x≠1及x≠5x2-4x-1,其他要求如下:(1)用if语句实现分支。
自变量x与函数值均采用双精度类型。
(2)自变量x值从键盘输入,且输入前要有提示信息。
(3)数据的输出格式采用以下形式:x=输入值,f(x)=计算值(4)分别以-3.0,-1.0,0.5,1.5,2.5,3.5,4.5,5.5为自变量,运行该程序。
记录结果。
(5)源程序以sy4_1.c存盘。
2、编程,将一个百分制成绩转换成等级制成绩。
具体要求如下:(1)百分制与等级制的对应关系如下:(2)用switch语句实现该功能。
(3)用键盘输入百分制成绩,输入前要有提示信息。
(4)要能判断输入数据的合理性,对于不合理的数据应输出错误信息。
(5)输出结果中应包含百分制成绩和成绩等级。
(6)分别输入成绩-10,99,60,85,70,101,45,运行该程序。
记录结果。
(7)源程序以sy4_2.c存盘。
三、思考题1、实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?2、如何设置选择结构中的判断条件?它在程序设计中的意义何在?实验五循环结构程序设计(1)一、实验目的1、掌握循环的概念。
2、掌握三种常用的循环语句的格式和功能。
3、初步掌握循环结构的编程方法。
二、实验内容与要求1、编程,分别利用三种循环语句,求1+2+3+…50之和。
要求如下:(1)输出计算结果;数据的输出格式采用以下形式:1+2+3+…50=计算值(2)源程序分别以sy5_1.c、sy5_2.c、sy5_3.c存盘。
2、编程,穷举算法解百马百担问题(有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?)要求如下:(1)输出计算结果;在数据输出之前应有提示信息。
C语言程序设计期末考试试题(含答案)C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( )A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是( )A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( )A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。
#includemain(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是( )A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是( )#include{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是( )#includemain(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、<B、十C、%D、!=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。
21.htm
01.从键盘输入一个字符,如果是大写字母,就转换成小写;如果是小写字母,就转换成大写,如果是其他字符原样保持并将结果输出。
#include<stdio.h>
voidmain()
}
02.Yes,
{inta;
if(a%5==0&&a%7!=0)printf("yes");
elseprintf("no");
}
03.从键盘输入一个4位正整数,求其逆序数,并输出。
例如:若输入1234,则输出应该是4321。
#include<stdio.h>
voidmain()
{intn,g,s,b,q,m;
scanf("%d",&n);
q=n/1000;b=n/100%10;s=n/10%10;g=n%10;
m=g*1000+s*100+b*10+q;
}
01.
}
02.从键盘输入一个数,判断其是否能同时被3和5整除。
如果是,输出Yes,否则输出No。
#include<stdio.h>
voidmain()
{inta;
scanf("%d",&a);
if(a%3==0&&a%5==0)printf("yes");
elseprintf("no");
}
03.从键盘输入一个4位正整数,求其各位数字之积,并输出。
例如:若输入2523,
printf(“x=%d,y=%d\n”,x,y);
}
02.从键盘输入一个数,判断其是否是5的倍数而不是7的倍数。
如果是,输出Yes,否则输出No。
#include<stdio.h>
voidmain()
{inta;
scanf("%d",&a);
if(a%5==0&&a%7!=0)printf("yes");
elseprintf("no");
}
03.就
}
01.编一个C程序,从键盘上输入一个字符:
若该字符是数字字符,则把它转换为对应的整数并输出;
若该字符是大写字母,则转换成小写并输出;
若该字符是小写字母,则转换为大写并输出;
若该字符是其他字符,则不进行任何操作。
#include<stdio.h>
voidmain()
{charc;
scanf("%c",&c);
if(c>='0'&&c<='9')printf("%d\n",c-'0');
elseif(c>='A'&&c<='Z')printf("%c\n",c+32);
}
02.
{t=b;b=c;c=t;}
printf(“%d,%d,%d",a,b,c);
}
03.给出一个百分制的成绩,要求输出成绩等级“A”、“B”,“C”,“D”,“E”。
90分以上的为:“A”级,80~89分的为“B”,70~79分的为“C”,60~69分的为“D”,
60分以下的为“E”。
#include<stdio.h>
voidmain()
{intgrade;
scanf(“%d”,&grade);
switch(grade/10)
{case10:
case9:printf(“A\n”);break;
case8:printf(“B\n”);break;
case7:printf(“C\n”);break;
default
}
}
01.
}
02.
息:
①如果三个数都不相等则显示0;
②如果三个数中有二个数相等则显示1;
③如果三个数都相等,则显示2
#include<stdio.h>
voidmain()
{inta,b,c;
scanf(“%d%d%d”,&a,&b,&c);
if(a==b&&b==c)printf(“2\n”);
elseif(a==b||b==c||a==c)printf(“1\n”);
elseprintf(“0\n”);
}
03.从键盘输入一个数,判断它是否同时能被5和7整除,如果能输出“YES”,否则输出“NO”。
#include<stdio.h>
{inta;
}
01.
????
}
02.从键盘输入一个四位正整数,输出其逆序数,并判断是否是对称数,如果是输出“YES”,否则输出“NO”。
?????提示:如果输入4253,先求出其每位上的数字,再重新组成其逆序数3524。
???????????如果输入4224,求出其逆序数是4224,则其是对称数。
#include<stdio.h>
voidmain()
{intn,g,s,b,q,m;
scanf("%d",&n);
q=n/1000;b=n/100%10;s=n/10%10;g=n%10;
m=g*1000+s*100+b*10+q;
if(n==m)printf(“YES\n”);
}
03.
}。