选择结构编程
1. c语言选择结构是怎么样的
C语言选择结构也称分支结构,就是让程序“拐弯”,有选择性的执行代码;换句话说,可以跳过没用的代码,只执行有用的代码。
C语言顺序结构就是让程序按照从头到尾的顺序依次执行每一条C语言代码,不重复执行任何代码,也不跳过任何代码。C语言循环结构就是让程序“杀个回马枪”,不断地重复执行同一段代码。
C语言中常用的编程结构有三种(其它编程语言也是如此),它们分别是:
顺序结构:代码从前往后依次执行,没有任何“拐弯抹角”,不跳过任何一条语句,所有的语句都会被执行到。
选择结构:也叫分支结构。代码会被分成多个部分,程序会根据特定条件(某个表达式的运算结果)来判断到底执行哪一部分。
循环结构:程序会重新执行同一段代码,直到条件不再满足,或者遇到强行跳出语句(break 关键字)。
2. 结构化程序设计的三种基本结构是什么。各有什么特点
答:
第一种:顺序结构
顺序结构表示程序中的各个操作时按照它们在源代码中的排列顺序依次执行的,其流程如图所示。
3. 其实C语言就是三种结构吧顺序结构、选择结构、循环结构
是的。
C语言为结构化的语言,C语言有三种结构:顺序结构、选择结构、循环结构。
循环结构又包含当型循环和直到型循环:
1、当型循环:先判断,后执行。最少执行0次。
2、直到型循环:先执行,后判断。最少执行1次。
(3)选择结构编程扩展阅读:
结构访问区别
结构体成员依据结构体变量类型的不同,一般有2种访问方式,一种为直接访问,一种为间接访问。
直接访问应用于普通的结构体变量,间接访问应用于指向结构体变量的指针。直接访问使用结构体变量名.成员名,间接访问使用(*结构体指针名).成员名或者使用结构体指针名->成员名。相同的成员名称依靠不同的变量前缀区分。
4. C语言编程 选择结构程序设计
最终结果——m=3
switch (a%3) →a为16,a%3为1 → 执行 case 1 → m初值为0,m++为1。注意,这里case1 并没有break,所以会继续向下执行完整个switch (a%3) → 执行switch (b%2) → b为21,b%2为1 → 执行default → m为1,m++为2 → 注意这里依然会继续执行case0 → m++为3,break跳出switch (b%2) →switch (a%3)语句结束 → 执行printf,此时m为3。
#include<stdio.h>
voidmain(){
inta=16,b=21,m=0;
switch(a%3){
case0:m++;break;
case1:m++;
switch(b%2){
default:m++;
case0:m++;break;
}
}
printf("m=%d ",m);
}
运行结果
5. C语言的选择结构编程练习 计算器
//实现计算机功能的程序 a program which can work the functions as a computer.
#include <stdio.h>//头文件
#include <conio.h>
void menu();//声明部分
void add();
void sub();
void mul();
void div();
void remain();
void add_n_to_m();
void factor();
main()
{
int i;
while(1)
{
system("cls");//清屏功能
menu();
printf("choose function:");
scanf("%d",&i);
switch(i)
{
case 1:add();getch();break;//调用部分
case 2:sub();getch();break;
case 3:mul();getch();break;
case 4:div();getch();break;
case 5:remain();getch();break;
case 6:add_n_to_m();getch();break;
case 7:factor();getch();break;
case 8: exit(0);break;
}
}
}
//以下是自己定义的函数
void menu()//菜单
{
printf("+====my counter===+\n");
printf("+功能如下: +\n");
printf("+ 1.加法 +\n");
printf("+ 2.减法 +\n");
printf("+ 3.乘法 +\n");
printf("+ 4.除法 +\n");
printf("+ 5.求余 +\n");
printf("+ 6.从n到m的和+\n");
printf("+ 7.阶乘 +\n");
printf("+ 8.退出 +\n");
printf("+=================+\n");
}
void add()//加法运算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
printf("%lf+%lf=%lf\n",a,b,a+b);
}
void sub()//减法运算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
printf("%lf-%lf=%lf\n",a,b,a-b);
}
void mul()//乘法运算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
printf("%lf*%lf=%lf\n",a,b,a*b);
}
void div()//除法运算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
if(b==0)//被除数不能为0
printf("error\n");
else
printf("%lf/%lf=%lf\n",a,b,a/b);
}
void remain()//求余运算
{
int a,b;
printf("input two numbers:");
scanf("%d%d",&a,&b);
if(b==0)//被除数不能为0
printf("error\n");
else
printf("%d%%%d=%d\n",a,b,a%b);
}
void add_n_to_m()//累加
{
int m,n,i=0,s=0;
printf("input n and m:");
scanf("%d%d",&n,&m);
if(n>m) printf("error.\n");//条件限制
else
{
for(i=n;i<=m;i++)
s+=i;
printf("%d+...+%d=%d\n",n,m,s);
}
}
void factor()//阶乘
{
int n,i,s;
printf("input a number:");
scanf("%d",&n);
if(n<=0) printf("error.\n");//条件限制
else
{
for(i=1,s=1;i<=n;i++)
s*=i;
printf("%d!=%d\n",n,s);
}