第二章 三种结构:程序是什么?程序,就是一系列遵循一定规则和思想并能够正确完成指定工作的代码(也成为指令序列)。程序=数据结构+算法 程序设计=数据结构+算法+程序设计方法+语言工具和环境本章介绍C程序执行过程中最基本的三种结构:顺序结构、分支结构、循环结构。理解和学习程序的执行过程,对于以后学习其他的编程语言,或者程序的调试,程序调Bug都有很好的帮助。2.1顺序结构——上到下:顺序,顾名思义,从上到下、从左到右……顺序结构就是一条一条的从上到下执行语句,所有的语句都会被执行,执行过的语句不会再次执行。[单选题]#include <stdio.h>int main(){ int s=0,a=1,n; scanf("%d",&n); do { s+=1; a=a-2; } while(a!=n); printf("%d",s); return 0;}以上代码,如果从键盘给n输入的值是-5,则程序的输出结果是( )。选项:[4, 2, 1, 3]
2.2选择结构——要抉择:选择结构又称为分支结构,还可细分为单分支、双分支和多分支。单分支只有if结构,还用来做判断;双分支一般指的是if...else结构;多分支一般指的是if-elseif结构和switch结构。
2.3循环结构——闭环结构跑跑圈:循环结构就是只要遵循指定条件,就重复执行某些语句,也即在特定条件下要重复执行语句。本节介绍三种实现循环结构的语句,分别是while语句, do...whilefor语句和for语句
[单选题]
以下程序的输出结果是( )。#include <stdio.h>
int main(){ int a, b; for(a=1, b=1; a<=100; a++) { if(b>=10) break; if (b%3==1) { b+=3; continue; } } printf("%d",a); return 0;}
[单选题]
从键盘输入三角形的三边长为a,b,c,按下面公式计算并输出三角形的面积。
程序代码如下,但程序运行后输出结果不正确,请找出有问题的语句。
#include <stdio.h>
#include <math.h>int main(){ float a, b, c; float s, area; printf("Input a,b,c:"); scanf("%f,%f,%f",&a,&b,&c); // 第1处 if (a+b>c && b+c>a && a+c>b) // 第2处 { s = 1/2 * (a + b + c); // 第3处 area = sqrt(s * (s - a) * (s - b) * (s - c)); // 第4处 printf("area=%.2f", area); } else { printf("It is not a triangle"); } return 0; }
[单选题]执行以下程序后的输出结果为( )#include <stdio.h>int main(){ int a=1,b=0; switch (a) { case 1: switch (b) { case 0: printf("**0**");break; case 1: printf("**1**");break; }break; case 2: printf("**2**");break; } return 0;}选项:[**0**, **0****1****2**, 有语法错误, **0****2**]
[单选题]下面程序代码的功能是判断输入的整数能否被5或7整除,如果能够整除,则输出该整数。请将划线处代码填写完整。#include <stdio.h>int main(){ int m; printf("Input m: "); scanf("%d", &m); if ( _______________ ) //能够被5或7整除 { printf("%d", m); } return 0;}选项:[m/5==0 && m/7==0, m%5==0 || m%7==0, m/5==0 || m/7==0
, m%5==1 && m%7==1]
[单选题]若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是( ):选项:[(x-y)<-10||!(y-x)>10, fabs(x-y)<10, x-y>-10 && x-y<10, (x-y)*(x-y)<100]
[单选题]以下程序运行后的输出结果是()#include <stdio.h>int main(){ int a=5,b=4,c=3,d; d=(a>b>c); printf("%d",d); return 0;}
选项:[5, 0
, 3, 1]
[单选题]以下程序运行后的输出结果是( )。#include <stdio.h>int main(){ int a,b,c; a=10; b=20; c=(a%b<1)||(a/b>1); printf("%d,%d,%d",a%b,a/b,c); return 0;}
选项:[10,0,1, 10,0,0
, 10,1,1, 10,1,0]
[单选题]计算1-1/2+1/3-1/4+.....+1/99-1/100+......直到最后一项的绝对值小于1e-4为止。代码如下,按要求在划线处填写适当的表达式或语句,使程序完整并符合题目要求。#include<stdio.h>#include<math.h>int main(){ int n = 1; float term = 1, sum = 0; _____(1)_________; while (fabs(term) >= 1e-4) //判末项大小 { term = sign / n; //求出累加项 sum = sum + term; //累加 ______(2)__________; //改变项的符号 n++; //分母加1 } printf("sum = %f", sum); return 0;}选项:[(1): float sign= -1(2): term = -term, (1): float sign=1(2): term = -term, (1): float sign= -1(2): sign = -sign, (1): float sign=1(2): sign = -sign]
[单选题]执行下列代码的结果是()#include<stdio.h>int main(){ int a=1234; printf("%2d",a); return 0;}选项:[1234, 12, 34, 程序出错,无结果
]