C语言程序-分支结构题目及答案
C语言程序设计基础教程 4.7、多分支结构的应用
缺省{ }时,else总是和它上面离它最近的未配对的if配对
注意if与else 的配对关系。
多分支结构的应用—相关知识
C语言
多分支结构
自然语言
如果(条件1) { 语句1; } 否则 如果(条件2) { 语句2; } 否则 如果(条件3) { 语句3; } 否则 { 语句4; }
C语言的多分支 if (表达式1) 语句 1
划分等级
内容
CONTENT S
01
任务分析
02
相关知识
任务完成与总结
03
多分支结构的应用—任务分析
C语言
任务分析
百分变等级
—输入1个学生成绩,为其划分等级。
A
大于等于90分 大于等于80分小于90分 大于等于60分小于80分
A B C
C
C
D D B
小于60分
D
多分支结构的应用—相关知识
C语言
分支语句的嵌套
else if(表达式2) 语句2
else if(表达式3) 语句3 else 语句4
多分支结构的应用—相关知识
C语言
多分支流程结构
T 语句1
表达式1
F
表达式2
T 语句2
F
表达式3
T
F
语句3
语句4
多分支结构的应用—任务实现
C语言
任务实现
90--100 80—89 60—79
0—59
多分支结构的应用—任务实现
自然语言的分支
如果(条件) { 语句1; } 否则 { 语句2; }
自然语言的分支嵌套
如果(条件) { 如果(条件) 则 语句4; }
多分支结构的应用—相关知识
分支结构练习题2021.11.17
分支结构练习题2021.11.17C语言分支结构练习题 enjoy it !C语言分支结构练习题一、选择题1.假定所有变量均已正确定义,下列程序段运行后y的值是()。
int a=0, y=10;if (a=0) y--; else if(a>0)y++;else y+=y; A. 20B. 11C. 9D. 02.假定所有变量均已正确定义,下列程序段运行后x的值是()。
a=b=c=0; x=35;if (!a) x--; else if(b); if(c) x=3; else x=4; A. 34 y=-1;if(x!=0) if(x>0) y=1; else y=0; -1 (x<0) A. y = 0 (x=0) 1 (x>0)0 (x<0)-1 (x<0) 0 (x>0)C. y = -1 (x=0)D. y = 1 (x=0)1 (x<0) -1 (x=0) 0 (x>0)B. y =B. 4C. 35D. 33.下面的程序片段所表示的数学函数关系是()。
1 (x>0) int i=1; switch(i++){4. 假定i和j为int型变量,则执行以下语句后j的值为()。
case 1: for(j=0;j<9;j++) if (i==1) break; case 2: for(j=1;j<10;j++) if (i==2) break; case 3: printf(“i=%d\\n”,i); } A. 0B. 1C. 9D. 105. 在C语言的语句中,用来决定分支流程的表达式是()。
A. 可用任意表达式B. 只能用逻辑表达式或关系表达式 D. 只能用关系表达式C. 只能用逻辑表达式4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组1 / 8C语言分支结构练习题 enjoy it !成配对关系。
C语言第4章-分支结构.
§【源程序】 §main( ) §{ int grade; printf ( "input the grade:"); § scanf ("%d",&grade); § if (grade>=90) printf("A\n"); § else if(grade>=80) printf("B\n"); § else if(grade>=70) printf("C\n"); § else if(grade>=60) printf("D\n"); § else printf("E\n"); §}
§2.添break、可跳出。见下节
【例呢?
§ //百分制成绩的等级划分问题之解法3(不完善):
§ main( )
§ {int grade; printf("input the grade:");
§ scanf("%d",&grade);
§ switch(grade/10) //按单值匹配,故要将范围映射为单值
§4.各个case子句出现的次序对执行结果没任 何影响,即顺序可以任意布局。
§5.每一个case能够拥有一条或多条语句,其最大的 不同之处在于使用多条语句时不需要用“{}”括起来。
§6.多个case可以共用一组执行语句。例如:
§
┆
§
case ‘A’:
§
case ‘a’: ++count ; break ;
§
C语言课后实验设计题目及答案
设 total:桃子的总数
x1 :前一天的桃子数
x2 : 后一天的桃子数
day: 天数
计算公式:x1=(x2+1)*2 第1天的桃子数是第2天桃子数加1后的2倍。
(2)求1-1/2+1/3-1/4+⋯⋯,输入1个正整数n(n<=100),计算并输出1-1/2+1/3-1/4+⋯⋯的前n项和(保留3位小数)。
实验项目四 分支结构程序设计
题目
(1)输入四个整数,输出其中的最小值。
实验报告
1、主程序:
// zx.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
}
2、主程序:
// s.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
int main(int argc, char* argv[])
{
x=x*x*x*x;return(x);
}
int main(int argc, char* argv[])
{
float x;
printf("请输入X=");
scanf("%f",&x);
double s;
(完整版)C语言选择题(附答案)
第一单元C语言概述一、选择题1、C语言中主函数的个数为(A)个。
A)1 B)2C)无穷个D)任意个2、以下关于C语言描述错误的是(D)。
A)一个C程序总是从main函数开始执行TB)每个语句和数据声明的最后必须有一个分号TC)C语言的注释符是以“/*”开始并以“*/”结束的TD)一个C程序可以包含多个main函数F3、C 语言源程序文件后缀为(C )。
A).EXE B).OBJ C).C D).ASM4、C语言是由(C )组成的。
A)子程序B)主程序与子程序C)函数D)过程5、C语言属于(B )语言A)机器语言B)汇编语言C)高级语言D)面向对象语言第二单元C语言基础一、选择题1、C语言中普通整型变量int在内存中占(B )字节。
A)1 B)2 C)3 D)42、下列不是C语言基本数据类型的是(A )。
A)字符型B) 整型C) 浮点型D) 结构体3、有关自增、自减运算,以下只有(D )是正确的。
A) ---f B) ++78 C) a—b++ D) d++4、已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (A<B && !C>B)的值是(A )。
A)0 B)10 C)1 D)55、若有x=1,y=2,z=3,则表达式(x<y?x:y)= =z的值是(D )。
A)1 B)2 C)3 D)06、判断char型变量ch是否为大写字母的正确表达式是(C )。
A) ‘A’<=ch<=‘Z’B) (ch>=‘A’)&(ch<=‘Z’)C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch)7、判断整型变量digit是否为数字的正确表达式是(C )。
A) ‘0’<=ch<=‘9’B) (ch>=‘0’)&(ch<=‘9’)C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch)8、一个C程序的执行是从(A )。
C语言程序设计
>=90, A. (90-100)。 >=80, B. (80-89)。 >=70, C. (70-79)。 >=60, D. (60-69)。
>=0, E. (0-59)。 main( ) { float score; printf(“\n Enter a score(0-100):”); scanf(“%f”,&score); if (score>=90) printf(“A \n”); else if (score>=80) printf(“B \n”); else if (score>=70) printf(“C \n”); else if (score>=60) printf(“D \n”); else printf(“E \n”); }
次序任意
(4) 在switch开关分支语句结构中, default部分不是必须的, 如果没 有default部分, 则当e表达式的值与各case后的ci常量表达式的值 都不一致时, 则程序不执行该结构中的任何部分。 switch ( e ) { case c1: S1; break; case c2: S2; break; …… case cn: Sn; break; }
使用 switch-case 分支语句时,应注意以下几点: (1)switch 后面的e表达式 可以是整型常量或变量、字符型常量或变量、枚举 类型表达式。其结果值必须是整型数据或字符型数据。 switch ( e ) { case c1: S1; break; case c2: S2; break; …… case cn: Sn; break; default : Sn+1; break; } 例: main( ) { char a; switch (5+6/3) { .. .. } switch (a ) { .. .. } … }
第06课 分支结构丨专题练习(解析版)
第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语言分支结构程序举例
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.}本例可用于四则运算求值。
程序设计基础实验2(分支结构程序设计) - 答案
分支结构程序设计[实验目的]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语句的作用是什么?。
何钦铭-C语言程序设计(第3版)部分课后习题参考答案.docx
何钦铭《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语言程序设计期末考试试题(含答案)
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是( ) 。
C语言程序设计期末考试试题及参考答案
一、单项选择题(每题1分,共20分)(1)()是构成C语言程序的基本单位。
A)子例程B)过程C)子程序D)函数(2)下面标识符中正确的是()。
A) d&ef B) 6a C) z4x5c D) a3/b4(3)C语言规定,函数返回值的类型是由()。
A) return语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型所决定(4)以下选项中非法的表达式是()。
A) 0<=x<100 B) x+l=x+l C) (char)(65+3) D) i=j=0(5)表达式3.6-5/2+1.2+5%2 的值是()。
A) 3.8 B) 4.8 C) 3.3 D) 4.3(6)设int a=12,则执行完语句a+=a-=a*a后,a的值是()。
A) 552 B) -264 C) 144 D) 264(7)对if语句中表达式的类型,下面正确的描述是()。
A)必须是关系表达式B)必须是关系表达式或逻辑表达式C)必须是关系表达式或算术表达式D)可以是任意表达式⑻设有定义:intnl=0,n2,*p=&n2,*q=&nl;,以下赋值语句中与n2=nl;语句等价的是.A) *p=*q; B) p=q; C) *p=&nl; D) p=*q;(9)有以下程序#include <stdio.h>void main()( char cl,c2;cl='A'+'8'*4';c2='A'+'8'-'5‘;printf("%c,%d\n”,cl,c2); }已知字母A的ASCII码为65,程序运行后的输出结果是()。
A) E,D B) D,69 C) E,68 D)输出无定值(10)下列叙述中正确的是()。
A) break语句只能用于switch语句B)在switch语句中必须使用defaultC) break语句必须与switch语句中的case配对使用D)在switch语句中,不一定使用break语句(11)设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是()。
c++单双分支结构例题
c++单双分支结构例题C语言中,单分支结构和双分支结构是两种常用的控制结构,它们用于根据条件判断来决定程序的执行路径。
下面我们将通过一些例题来详细介绍这两种结构的使用。
一、单分支结构单分支结构是一个简单的if语句,它只有一个条件判断。
这种结构通常用于简单的条件判断场景。
例题1:求一个整数数组中最大的元素题目要求:编写一个C程序,输入一个整数数组,找出其中的最大元素并输出。
代码实现:```c#include <stdio.h>int main() {int arr[] = {10, 20, 30, 40, 50};int n = sizeof(arr) / sizeof(arr[0]);int max = arr[0];int i;for (i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}}printf("最大元素是:%d", max);return 0;}```上述代码中,我们使用了单分支结构。
在for循环中,我们判断当前元素是否大于最大值,如果是,则更新最大值。
最后输出最大值即可。
二、双分支结构双分支结构是一个if-else语句,它包含两个条件判断。
这种结构通常用于需要区分不同情况的处理场景。
例题2:求一组数字中各数的出现次数题目要求:编写一个C程序,输入一组数字,统计每个数字的出现次数并输出。
代码实现:```c#include <stdio.h>int main() {int nums[] = {1, 2, 2, 3, 3, 3};int n = sizeof(nums) / sizeof(nums[0]);int count[n]; // 用于存储每个数字的出现次数int i, j;for (i = 0; i < n; i++) {count[nums[i]]++; // 统计每个数字的出现次数}printf("数字出现次数如下:\n");for (j = 0; j < n; j++) {if (count[j] > 0) { // 只输出出现次数大于0的数字及其出现次数printf("%d: %d\n", j, count[j]);}}return 0;}```上述代码中,我们使用了双分支结构。
C语言顺序结构及分支结构编程案例(详解)
顺序结构入门——及熟悉环境1、输出Good Morining答案:#include<stdio.h>int main(){printf("Good Morining\n");return 0;}2、已知某种铅密度为11340kg/m3 ,求9.8厘米铅球有多少kg这里要求:pi的取值为3.141592657,小数用double表示,printf("%lf"输出)输入格式:仅仅一个小数输出格式:无输出样例:5.588431答案:#include <stdio.h>#define midu 11340int main(){double r = 0.049;double v ;double weigh;v = 4.0/3*3.141592657*r*r*r;weigh = v * midu;printf("%lf", weigh);}3、两个数相加输入两个整数输出两个整数的和比如输入:1 4输出:5答案:#include <stdio.h>void main(){int a,b;int sum;scanf("%d%d",&a,&b);sum = a+b;printf("%d\n",sum);}4、输入两个整数a,b,计算(a-b)*(a+b)比如输入: 1 4输出:-15答案:#include <stdio.h>void main(){int a,b;int sum;scanf("%d%d",&a,&b);sum = (a-b)*(a+b);printf("%d\n",sum);}5、两个数相加后乘以5输入:两个整数输出:两个整数的和乘以5比如输入: 1 4输出:25答案:#include <stdio.h>void main(){int a,b;int sum;scanf("%d%d",&a,&b);sum = (a+b)*5;printf("%d\n",sum);}6、已知某种铅密度为11340kg/m3 ,求输入球的直径(厘米数),求铅球有多少kg。
多分支结构程序设计习题(精)
多分支结构程序设计习题1、【水仙花数问题】题目描述:在三位整数中,有这样一种数:它每个数位上的数的立方和等于它本身,这样的数被称为“水仙花数”。
例如:153是一个水仙花数,因为153=13+53+33,请你编程测试下列各数是否为“水仙花数”。
测试数据:111 123 153 230 370 371 372 400 407 501 9992、【月份的天数问题】题目描述:给定某年某月,编程输出这个月的天数。
输入格式:1900 2 输出格式:282004 2 293、【个人所得税问题】-1600元)*税率;请编程实现以上计算方案。
输入格式:1000 输出格式:02500 904、【划分等级问题】题目描述:给出一百分制成绩(整型),要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。
90分以上为‘A’,80-89分为‘B’,70-79分为‘C’,60-69分为‘D’,60分以下为‘E’。
输入格式:92 输出格式:A45 E5、【运输打折问题】题目描述:某运输公司对用户计算运费。
路程(S)越远,每公里运费越低。
标准如下:其中基本运输费用为每吨每公里1元,现请你帮助该运输公司设计自动计费程序,帮助会计人员计算运输费用。
要求输入每次运输的载重(吨)、里程(公里),输出其运输费用。
输入格式:1 200 输出格式:20010 2500 22500简单分支习题部分参考答案5、求解一元二次方程#include <iostream.h>void main(){int a,b,c;cout<<"Please input a,b,c=";cin>>a>>b>>c;if ((a+b>c) && (b+c>a) && (a+c>b))if ((a*a+b*b==c*c) || (b*b+c*c==a*a) || (a*a+c*c==b*b))cout<<"Yes"<<endl;elsecout<<"No"<<endl;elsecout<<"Error"<<endl;}6、求解一元二次方程#include <iostream.h>#include <math.h>void main(){float a,b,c,d,x1,x2;cout<<"Please input a,b,c=";cin>>a>>b>>c;d=b*b-4*a*c;if (d<0)cout<<"Not real root"<<endl;elseif (d>0){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);cout<<"x1="<<x1<<endl;cout<<"x2="<<x2<<endl;}else{x1=-b/(2*a);cout<<"x1=x2="<<x1<<endl;}}7、排序问题#include <iostream.h>void main(){ int a,b,c,t;cout<<"Please input a,b,c=";cin>>a>>b>>c;if (a<b){t=a;a=b;b=t;}if (a<c){t=a;a=c;c=t;}if (b<c){t=b;b=c;c=t;}cout<<a<<"\t"<<b<<"\t"<<c<<endl;}8、大小写转换问题#include <iostream.h>void main(){char c;cout<<"Please input a char:";cin>>c;if (c>='A' && c<='Z')c=c+32;elseif (c>='a' && c<='z')c=c-32;cout<<c<<endl;}9、闰年问题#include <iostream.h>void main(){int year;cout<<"Please input year=";cin>>year;if (((year%4==0) && (year%100!=0)) || (year%400==0))cout<<"Yes"<<endl;elsecout<<"No"<<endl;}。
C语言第3章_分支结构
3.3练习与习题参考答案3.3.1练习参考答案3-1 例3-4中使用else-if 语句求解多分段函数,为了检查else-if 语句的三个分支是否正确,已经设计了三组测试用例,请问还需要增加测试用例吗?为什么?如果要增加,请给出具体的测试用例并运行程序。
解答:最好再增加两组测试用例,因为尚未对分段函数参数的边界值进行测试。
可再给出x=0和x=15时的两种情况。
3-2 计算符号函数的值:输入一个整数x ,计算并输出符号函数 sign(x) 的值。
试编写相应程序⎪ ⎩⎪ ⎨ ⎧ >=<−==010001)(x x x x sign y ,,,解答:#include<stdio.h>int main (void){int x, y;scanf ("%d", &x);if (x > 0) y = 1;else if (x == 0) y = 0;else y = -1;printf ("sign(%d) = %d\n", x, y);return 0;}3-3统计学生平均成绩与及格人数:输入一个正整数n,再输入n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数。
试编写相应程序。
解答:#include <stdio.h>int main (void){int count, grade, i, n;double average, sum;scanf ("%d", &n);count = 0;sum = 0;for (i = 1; i <= n; i++){scanf ("%d", &grade);sum = sum + grade;if (grade >= 60) {count++;}}if (n > 0) {average = sum / n;}else{average = 0;}printf ("average = %.1f\n", average);printf ("count = %d\n", count);return 0;}3-4统计字符:输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
C语言程序设计(第二版)习题参考答案
C语言程序设计(第二版)习题参考答案为了适应标题所需的字数限制,我将按照适当的格式和排版要求来回答C语言程序设计(第二版)习题的参考答案。
以下是部分习题的解答示例:1. 基本概念与语法1.1 变量和数据类型C语言中的变量用于存储不同类型的数据。
常见的数据类型包括整型、浮点型、字符型等。
例如,声明一个整型变量x并赋值为10的方法如下:```cint x = 10;```1.2 操作符和表达式C语言提供了丰富的操作符和表达式,用于进行数值计算和逻辑判断。
例如,使用逻辑与(&&)操作符可以判断两个条件同时成立的情况,示例如下:```cif (x > 0 && x < 100) {// 满足条件的代码```2. 流程控制2.1 分支结构流程控制中的分支结构用于根据条件来执行不同的代码块。
常见的分支结构有if语句和switch语句。
例如,使用if语句判断一个数的正负情况:```cif (x > 0) {printf("x是正数\n");} else if (x < 0) {printf("x是负数\n");} else {printf("x是零\n");}```2.2 循环结构循环结构用于多次执行相同的代码块。
常见的循环结构有for循环、while循环和do-while循环。
例如,使用for循环输出1到10的数字:for (int i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");```3. 函数和数组3.1 函数的定义和调用函数是一段完成特定功能的代码块,可以多次调用。
函数的定义包括函数名、参数列表和返回值类型。
例如,定义一个用于计算两个整数相加的函数:```cint add(int a, int b) {return a + b;}// 调用add函数int result = add(3, 5);printf("3 + 5 = %d\n", result);```3.2 数组的定义和使用数组是一种存储相同类型数据的集合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
01. 从键盘输入一个字符,如果是大写字母,就转换成小写;如果是小写字母,就转换成大写,如果是其他字符原样保持并将结果输出。
#include <>void main(){ char c;scanf("%c",&c);if(c>='A'&&c<='Z') c=c+32;else if(c>='a'&&c<='z') c=c-32;(printf("%c",c);}02. 从键盘输入一个数,判断其是否是5的倍数而不是7的倍数。
如果是,输出Yes,否则输出No。
#include <>void main(){ int a;scanf("%d",&a);if(a%5==0&&a%7!=0) printf("yes");,else printf("no");}03. 从键盘输入一个4位正整数,求其逆序数,并输出。
例如:若输入1234,则输出应该是4321。
#include <>void main(){ int n,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;printf("%d\n",m);}01. 从键盘输入一个字符,如果是字母,就输出其对应的ASCII码;如果是数字字符,就转换成对应整数并输出。
#include <>void main(){ char c;~scanf("%c",&c);if(c>='a'&&c<='z'||c>='A'&&c<='Z')printf("ASCII:%d",c);else if(c>='0'&&c<='9') printf("数字:%d",c-'0');02. 从键盘输入一个数,判断其是否能同时被3和5整除。
如果是,输出Yes,否则输出No。
#include <>void main()—{ int a;scanf("%d",&a);if(a%3==0&&a%5==0) printf("yes");else printf("no");}03. 从键盘输入一个4位正整数,求其各位数字之积,并输出。
例如:若输入2523,则输出应该是60。
#include <>void main()>{ int n,g,s,b,q,m;scanf("%d",&n);q=n/1000; b=n/100%10; s=n/10%10; g=n%10;m=g*s*b*q;printf("\n%d\n",m);}01. 根据以下函数关系编写一个程序,对输入的每个x值,计算出y 的值并输出。
、#include <>void main(){ int x,y;sc anf(“%d”,&x);if (x>-10 && x<0 ) y=x+10;else if (x<10) y=2*x;/else y=x*x;printf(“x=%d,y=%d\n ”,x,y);}02. 从键盘输入一个数,判断其是否是5的倍数而不是7的倍数。
如果是,输出Yes,否则输出No。
#include <>void main(){ int a;scanf("%d",&a);>if(a%5==0&&a%7!=0) printf("yes");else printf("no");}03. 从键盘输入一个五位整数,判断它是不是对称数,并输出判断结果。
如43234就是对称数。
#include <>void main(){ int n,g,s,b,q,w;。
scanf("%d",&n);w=n/10000; q=n/1000%10; b=n/100%10; s=n/10%10; g=n%10;if(w==g && q==s) printf("%d是对称数\n",n);else printf("%d不是对称数\n",n);}01. 编一个C程序,从键盘上输入一个字符:若该字符是数字字符,则把它转换为对应的整数并输出;若该字符是大写字母,则转换成小写并输出;若该字符是小写字母,则转换为大写并输出;"若该字符是其他字符,则不进行任何操作。
#include <>void main(){ char c;scanf("%c",&c);if(c>='0'&&c<='9') printf("%d\n",c-'0');else if(c>='A'&&c<='Z') printf("%c\n",c+32);else if(c>='a'&&c<='z') printf("%c\n",c-32);}"02. 输入三个整数,按从大到小的顺序输出。
#include <>void main(){ int a,b,c,t;scanf("%d%d%d",&a,&b,&c);if (a<b){ t=a;a=b;b=t; }if (a<c)&{ t=a;a=c;c=t; }if (b<c){ 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 <>#void main(){ int grade;scanf(“%d”,&grade);switch(grade/10){ case 10:case 9: printf(“A\n”);break;case 8: printf(“B\n”);break;case 7: printf(“C\n”);break;!case 6: printf(“D\n”);break;default:printf(”E\n”);break;}}01. 有一分段函数:1( x < -1 )(y = 2 x +9 ( -1 ≤ x ≤ 1 )5 x -3 ( x >1 )从键盘输入 x 的值,输出 y 的值。
#include <>void main(){ int x,y;s canf(“%d”,&x);if (x<-1) y=1;&else if (x<=1) y=2*x+9;else y=5*x-3;printf(“x=%d,y=%d\n ”,x,y);}02.编写一个C语言程序,要求从键盘输入三个整数,并根据对三个数的比较显示如下信息:①如果三个数都不相等则显示0;②如果三个数中有二个数相等则显示1;③如果三个数都相等,则显示2|#include <>void main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);if (a==b && b==c) printf(“2\n ”);else if (a==b || b==c || a==c ) printf(“1\n ”);else printf(“0\n ”);}?03. 从键盘输入一个数,判断它是否同时能被5和7整除,如果能输出“YES”,否则输出“NO”。
#include <>void main(){ int a;scanf("%d",&a);if(a%5==0&&a%7==0) printf("yes");else printf("no");}@01.输入三角形三边长,判定是否能够组成三角形,并输出判定结果。
能够组成三角形的条件是:任意两边之和大于第三边(三种情况)#include <>void main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);?if (a+b>c && b+c>a && a+c>b) printf(“YES\n ”);else printf(“NO\n ”);}02.从键盘输入一个四位正整数,输出其逆序数,并判断是否是对称数,如果是输出“YES”,否则输出“NO”。
提示:如果输入4253,先求出其每位上的数字,再重新组成其逆序数3524。
如果输入4224,求出其逆序数是4224,则其是对称数。
#include <>》void main(){ int n,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 ”);else printf(“NO\n ”);}03. 从键盘输入三个数,求其中最小者并输出。
#include <>void main(){ int a,b,c,min;scanf("%d%d%d",&a,&b,&c);if (a<b) min=a;else min=b;if (min>c) min=c;printf(“min=%d ",min);}。