C语言for,while,ifelse,return语句的综合使用

合集下载

C语言循环语句

C语言循环语句
2012-5-20 21
5.7
break语句和 语句和continue语句 语句 语句和
• 功能:在循环语句和switch语句中,终止并 跳出循环体或开关体 • 说明: –break只能终止并跳出最近一层的结构 –break不能用于循环语句和switch语句 之外的任何其它语句之中
1、break语句
7
5.3 Do-while语句 语句
一般形式: do 循环体语句; while(表达式); 执行流程:
循环体语句
真(非0) 表达式 假(0)
2012-5-20 8
特点:先执行循环体,后判断表达式 说明: 至少执行一次循环体 do~while可转化成while结构
While循环 循环 赋初值 假(0) 表达式 真(非0) 非 循环体 假(0) 真(非0) 非 表达式 Do-While循环 循环
11
5.4
for循环 循环
for([表达式1] ;[ 表达式2] ;[ 表达式3]) 一般形式: 循环体语句; 执行流程:
表达式1 表达式 假(0) 表达式2 表达式 真(非0) 非 循环体语句
表达式3 表达式
2012-5-20
12
for语句最简单应用形式:
for(循环变量赋初值;循环条件;循环变量增值) { 循环体语句; } 例 用for循环求∑n 说明:
表达式1
表达式2 真(非0) ( 0) …… continue; …...
假(0) 表达式3
2012-5-20 25
例:把100~200之间的不能被3整除的数输出
main() { int n; for(n=100;n<=200;n++) {if(n%3==0) continue; printf(“%d”,n); } }

国家开放大学C语言程序设计章节测试参考答案

国家开放大学C语言程序设计章节测试参考答案

国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。

(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。

(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。

(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。

(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。

(√)3.C语言中使用的字符常量,其起止标记符是()。

a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。

a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。

a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。

a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。

a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。

a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。

a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。

a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。

a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。

a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。

c语言关键字总结

c语言关键字总结

所谓关键字也叫保留字,它是标识符的一种,标准规定它是编译器默认的某些类型,因此用户不可用它的一样的标识符去表示其他的东西。

标准C有32个关键字:一数据类型关键字 12 个:1 . char2 . short3 . int4 . long 5. enum 6. float 7. double 8.signed 9. unsigned 10. Struct 11. Union 12.void二控制类型关键字 12 个循环语句 1.for 2.do 3.while 4.break 5.continue条件语句 6.if 7.else 8.goto开关语句9.switch 10.case 11.default返回语句12.return三存储类型 4个1. auto //声明自动变量,一般不不用,局部变量默认都是auto型2.static //声明静态变量3.extern //声明一个外部变量4.register //声明寄存器变量四其他关键字 4个1.const //声明只读变量2.sizeof //运算符,计算数据占用内存3.typedef //自定义类型4.volatile //修改的变量可能改变注意,不要把 define ,include当做关键字,它们只是预编译伪指令。

C99标准又增加了5个关键字,分别是restrict 它只可以用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式inline 内敛函数,在C++中用的多,它是宏定义的一种优化实现方式_Bool unsigned int 型,在C99中被定义为布尔型,只可容纳0,1两个值_Complex复数类类型_Imaginary纯虚数类型C11 标准在C99的基础上又增加了一个关键字_Generic 泛型auto :声明自动变量break:跳出当前循环case:开关语句分支char :声明字符型变量或函数返回值类型const :声明只读变量continue:结束当前循环,开始下一轮循环default:开关语句中的“其它”分支do :循环语句的循环体double :声明双精度浮点型变量或函数返回值类型else :条件语句否定分支(与 if 连用)enum :声明枚举类型extern:声明变量或函数是在其它文件或本文件的其他位置定义float:声明浮点型变量或函数返回值类型for:一种循环语句goto:无条件跳转语句if:条件语句int:声明整型变量或函数long :声明长整型变量或函数返回值类型register:声明寄存器变量return :子程序返回语句(可以带参数,也可不带参数)short :声明短整型变量或函数signed:声明有符号类型变量或函数sizeof:计算数据类型或变量长度(即所占字节数)static :声明静态变量struct:声明结构体类型switch :用于开关语句typedef:用以给数据类型取别名unsigned:声明无符号类型变量或函数union:声明共用体类型void :声明函数无返回值或无参数,声明无类型指针volatile:说明变量在程序执行中可被隐含地改变while :循环语句的循环条件。

C语言第6章 if语句的应用

C语言第6章 if语句的应用
所有的负数相加,最后输出所有的正数和、负数 和。
#include<stdio.h> void main( ) { int nsum=0,n=0,psum=0,p=0; int i,x; …
for(i=1;i<=10;i++) { printf("请输入10个整数中的第%d个数:",i); scanf("%d",&x); if(x>=0) { psum+=x; p++; } else{ nsum+=x; n++; } 续行符:\ } printf("\n有%d个正数,和为%d\n \ 有%d个负数 和为%d\n",p,psum,n,nsum 最大值
#include <stdio.h> void main( ) { int a, b, c, max; /* max中放最大值 */ printf("input a, b, c: "); scanf("%d%d%d", &a, &b, &c); input a, b, c: 2 10 6
while(x) { if(x>0) printf("输入的整数%d 是正数.\n",x); else printf("输入的整数%d 是负数.\n",x);
printf("\n 请输入一整数(输入0程序退出):"); scanf("%d",&x); } return 0;
}
例6.4 从键盘输入10个整数,把所有的正数相加,
ch6_6_5.c
else if(grade>=60) printf("你的成绩为及格!\n"); else printf("你的成绩为不及格!\n");

C语言的用法

C语言的用法

4月26号if (表达式){语句A;语句B;}此时if 可以控制语句A和语句B由此可见:if 默认只能控制一个语句的执行或不执行,如果想控制多个语句的执行或不执行就必须把这些语句用{}括起来If…..else用法If(表达式)//为真{};Else 表达式为假执行else里的语句{};格式If (1)A;else if (2)B;Else if (3)C;elseD;A,B,C比较大小如果A>B则A与C比较A>C 则输出A A<C 则输出C否则B于C比较B>C 则输出B B<C 则输出C我们的重点是看懂程序!遇到不懂得琢磨15分钟没结果,就看答案,最后记下了!看懂答案接下来不是敲而是改一下!如何看懂一个程序?1 流程2每个语句的功能3试数对一些小算法的程序1 尝试自己去编程解决它,大部分人无法解决2 如果解决不了,就看答案关键是把答案看懂,这个要花很大的精力,也是我们学习的重点3看懂之后尝试自己去修改程序,并且知道修改之后程序的不同输出结果的含义4照着答案去敲,5调试错误6不看答案,自己独立把答案敲出来过几天再敲几遍直到不假思索就能敲出! 7如果程序实在无法彻底理解,就把它背会!If(表达式1)A;else if (表达式2)B;else if(表达式3)C;elseD;即便表达式1和表达式2都成立,也只会执行A语句;If(表达式1)A;else if (表达式2)B;else if(表达式3)C;else (表达式4)D;这样写是不对的,正确的写法是要么去掉表达式4,要么在else后面加if 循环定义:某些代码会被重复执行分类:1for 、2while、3do…..while1格式For (1;2;3)语句A2执行的流程【重点】3范围的问题4举列1+2+3+、、、、、+1004月27号强制类型转换:格式(数据类型)(表达式)功能:把表达式的值强制转化为前面所执行的数据类型例子:(int)(4.5+2.2) 最终值=6浮点数的存储所带来的问题Float和double都不能保证可以精确的存储一个小数Float i= 99.9;Printf (“%f\n”,i); // 最终在vc++6.0中的输出结果是:99.900002举列:有一个浮点型变量x,如何判断x的值是否是零If(|x-0000001|<=0.000001) //x和一个非常小的值相减是ELSE不是为什么循环中的更新变量不能定义成浮点型多个for循环的嵌套使用For(1; 2;3) //1For (4;5;6) //2A; //3B; //4步骤:1—2—4—5—A—6—5—判断后执行3—执行2成立—4—5—A—6—5不成立—执行3—2不成立—执行B整体是两语句,1,2,3是第一个语句4是第二个语句For(1; 2;3)For (4;5;6){A;B;}整体是一个语句进制1什么叫N进制逢N进一2把R进制转成十进制(234C)转换成十六进制=2*16的3次方+3*16的2次方+4*16的一次方+C*16的0次方3十进制转成R进制十进制转换成二进制:除2取余,把余数倒过来(185)转换成二进制=10111001十进制转换成八进制:除8取余,把余数倒过来(185)转换成八进制=271十进制转换成十六进制:除16取余,把余数倒过来(3981)转换成16进制=F8D4不同进制所代表的数值之间的关系十进制的3981转换成16进制F8D十进制的3981和16进制F8D所代表的本质都是同一个补充:&&左边的表达式为假右边的表达式肯定不会执行|| 左边的表达式为真右边的表达式肯定不会执行赋值运算符= += *= /= —=优先级别:算术> 关系> 逻辑> 赋值自增、自减、三目运算符、逗号表达式自增分类;前自增++i后自增i++区别:相同点:都是最终I的值加一不同点:前自增整体表达式的值I加一之后的值后自增整体表达式的值I加一之前的值Int i=j=3K=i++;M=++j; 结果I=4,j=4;k=3;m=4;为什么会出现自增?代码更精炼、自增速度更快、i+=1;、i++学习自增要明白的几个问题1编程应该尽量屏蔽掉前自增和后自增的差别2 i++ 和++I 单独成一个语句,不要把他作为一个完整复合语句来使用如int m =( i++) +( ++i)+ i+ i++ //是错的3三木运算符格式:A? B: C 等价于If(A)B;ElseC;#include <stdio.h>int main(void){int i;i = (3>2? 5:1);printf("%d\n",i);return 0;} 结果是5逗号表达式:格式:(A, B, C,D)功能:从左到右执行最终表达式的值是最后一项的值While1执行的流程格式:While(表达式) //判断表达式真假真执行语句,假跳出语句;2于for 的相互比较For 可以和while相互转换For (1 ; 2; 3) 等价于1;A; while (2){A;3;}while 和for可以相互转化,但for的逻辑性更强,更不容易出错,推荐多使用for3举列丛键盘输入一个数字,如果该数字是回文数,则返回yes,否则返回no,回文数:正着写和倒着写都一样,比如:121、12321#include <stdio.h>int main(void){int val; //存放待判断的数字int m;int sum = 0;printf("请输入您需要判断的数字:");scanf("%d",&val);m = val; m = 121while (m) 1次m=121 成立sum=sum*10+m%10=1 { m=m/10=12sum = sum*10 +m%10; 2次m=12成立sum=sum*10+m%10=12m/=10; m=m/10=1} 3次m=1成立sum=sum*10+m%10=121if (sum ==val) m=m/10=0printf ("Yes!\n"); 4次m=0 不成立elseprintf("no!\n");return 0;} 输入121结果yes 输入123结果no4月28号F1=1,f2=2;int n; n=6If (n==1) 1次i=3; 3<6;成立{ f3= 1+2=3; f1=2;f2=f3=3; i=4;F1=1; 2次i=4;i<6成立} f3=2+3=5; f1=3f2=5; i=5;If(n==2) 3次i=5<6 成立{ f3=f1+f2=3+5=8;f1=f2=5;f2=f3=8;i=6F2=2; 4次i=6<=6成立} f3= f1+f2=5+8=13 f1=f2=8;f2=f3=13;i=7; Else{ 5次i=7<6不成立For(i=3;i<n;++i){F3=f1+f2;;F1=f2;F2=f3;}}Printf(“%d\n”,f3)4什么时候使用while,什么时候使用for没法说,用多了自然就知道了!Do…while格式: do{A}while(表达式)Do..while并不等价于for,当然也不等价while例子:一元二次方程89讲主要用于人机交互Switch(val){Case 1: printf(“1层开!\n”); break;Case2: printf(“2层开!\n”); break;Case3: printf(“3层开!\n”); break;Default: printf(“没有盖到这一层!\n”); break;}Switch (表达式){Case 常量表达式1:语句1;break;Case 常量表达式2:语句2;break;Case 常量表达式2:语句3;break;Default:语句4 break;}第一、所有case后面的常量表达式为便于描述我们姑姐称为标签,这些标签都只能是(1)枚举常量(有些书称之为枚举元素)(2)数值常量(3)字符常量(4)常变量(5)宏名中的一种,注意普通变量,枚举变量是不能作为标签使用的第二,执行完一个CASE语句后,流程控制就转移到下一个CASE语句执行CASE 常量表达式只是起语句标号的作用,并不是在该处进行条件判断。

C语言程序设计:第5章 循环结构

C语言程序设计:第5章 循环结构
执行过程: 先执行循环体语句,再检查 循环条件表达式的值是否为真, 如果为真则继续执行循环体语句, 否则结束循环。
12
do...while语句(cont...)
课堂练习: 1.输出1---n之间的数,其中n从键盘输入。
int main(void) {
//1.定义变量i和n //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:输出i的值 return 0; }
} 相当于 while(1) {
}
26
小结
❖for(i=m;i<n;i++)//循环次数:n-m次 ❖for(i=m;i<=n;i++)//循环次数:n-m+1次
27
循环语句的练习
课堂练习: 1.输出n---1之间的数,其中n>1且n从键盘输入。 2.计算1*2*3*...*n的值(n的阶乘n!), 其中n从键盘输入。 3.计算10- 1/2 - 1/3 -....1/n的值 以上练习分别以while、do...while、for语句实现
int main(void) {
//1.定义变量i,n,sum //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:累加i的值 //7.输出计算结果 return 0; }
24
for语句(cont...)
{
sum = sum + i;
if(sum > 100)break;

《C语言程序设计课件》第四章-循环语句

《C语言程序设计课件》第四章-循环语句
scanf("&d",&n); while(n!=0)
{ sum+=n; scanf("%d",&n); }
printf("The sum is :%d\n",sum);
return 0; }
从任意 n 个实数中选出最大数 和最小数
从任意 n 个实数中选出最大数和最小数
#include <stdio.h> int main( ) {
/*程序4-1*/ #include <stdio.h> int main() {
int i,sum=0; i=1; while(i<=100) {
sum += i; i++; } printf("sum=%d\n",sum); return 0; }
【例4-2】输入一行字符以回车键结束,分别 统计出其中英文字母、空格、数字和其它字符 的个数。
#include <stdio.h> int main( ) {
int i,n;
printf("This program prints a table of squares.\n"); printf("Enter number of entries in table:");
scanf("%d",&n); i=1; while (i<=n)
【例】求整数1~100的累加和,使用for语句实 现。
#include <stdio.h> int main() {
int i,sum=0; for(i=1;i<=100;i++)

C语言32个关键字九种控制语句34种运算符

C语言32个关键字九种控制语句34种运算符

第一个关键字:auto用来声明自动变量。

可以显式的声明变量为自动变量。

只要不是声明在所有函数之前的变量,即使没加auto关键字,也默认为自动变量。

并且只在声明它的函数内有效。

而且当使用完毕后,它的值会自动还原为最初所赋的值。

自动变量使用时要先赋值,因为其中包含的是未知的值。

例:auto int name=1;第二个关键字:static用来声明静态变量。

可以显式的声明变量为静态变量。

也为局部变量。

只在声明它的函数内有效。

它的生命周期从程序开始起一直到程序结束。

而且即使使用完毕后,它的值仍旧不还原。

即使没有给静态变量赋值,它也会自动初始化为0.例:static int name=1.第三个关键字:extern用来声明全局变量。

同时声明在main函数之前的变量也叫全局变量。

它可以在程序的任何地方使用。

程序运行期间它是一直存在的。

全局变量也会初始化为0.例:extern int name;第四个关键字:register用来声明为寄存器变量。

也为局部变量,只在声明它的函数内有效。

它是保存在寄存器之中的。

速度要快很多。

对于需要频繁使用的变量使用它来声明会提高程序运行速度。

例:register int name=1;第五个关键字:int用来声明变量的类型。

int为整型。

注意在16位和32位系统中它的范围是不同的。

16位中占用2个字节。

32位中占用4个字节。

还可以显式的声明为无符号或有符号:unsigned int signed int .有符号和无符号的区别就是把符号位也当作数字位来存储。

也可用short和long来声明为短整型,或长整行。

例:int num;第六个关键字:float用来声明变量的类型。

float为浮点型,也叫实型。

它的范围固定为4个字节。

其中6位为小数位。

其他为整数位。

例:float name;第七个关键字:double用来声明为双精度类型。

它的范围为8个字节。

14位为小数位。

也可使用更高精度的long double 它的范围则更大,达到10字节。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档