版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章
C语言编程基础(第二部分)河南财经政法大学《计算机基础》C语言中的几种
变量类型字符型变量整型变量浮点型变量字符型变量用于存放
字符C语言语法规则:
字符型变量
对应的关键字是
char如何在C程序中
声明一个或多个字符型变量?
int
main(
){
return
0;
}chara;charb,c,d;声明一个变量名为a的字符型变量声明三个字符型变量;其变量名分别为b,c,d如何
给一个字符型变量赋予一个特定的值?基本方法:通过
赋值语句
int
main(
){charb,c,d;
return
0;
}b=‘x’;c=b;d=120;如何
将一个字符型变量的值输出到控制台?通过
标准输出函数printf将一个变量名为x的字符型变量的值输出到控制台的一种方式:
printf(“%c”,x);如何
给一个字符型变量赋予一个特定的值?基本方法:通过
赋值语句int
main(
){charb,c,d;
b=‘x’;c=b;d=120;
printf(“b=%c\n”,b);
printf(“c=%c\n”,c);
printf(“d=%c\n”,d);
return
0;}如何
从控制台接收用户输入的一个字符值?通过
标准输入函数scanfcharx;
scanf(“%c”,&x);请一位同学上台,编写一个程序;
要求:1.接收用户输入的两个字符;2.将这两个字符分别放在个字符变量中;3.将这两个变量的值输出到控制台;4.只能调用一次scanf函数;charx;
scanf(“%c”,&x);charx,y;
scanf(“%c%c”,&x,&y);charx,y;
scanf(“%c%c”,&x,&y);在用户输入
一个字符
后,把用户输入的
下一个字符
存放到
变量y中。在用户输入一个字符后,忽略用户接下来输入的连续空格字符;直到用户输入一个非空格字符,才把这个非空格字符存放到变量y中。C程序中的
三种
控制结构顺序结构分支结构循环结构顺序结构顺序结构#include<stdio.h>intmain(){
a=5; inta; printf("%d\n",a); return0;}#include<stdio.h>intmain(){ inta; a=5; printf("%d\n",a); return0;}✕✓#include<stdio.h>intmain(){ inta; a=4; a=5; printf("%d\n",a); return0;}#include<stdio.h>intmain(){ inta; a=4;
printf("%d\n",a); a=5; return0;}这两个程序的输出值是什么?54分支结构分支结构根据
分支判断表达式
的
值(真或假),决定程序的后继执行路线分支判断表达式分支1分支2真假单分支结构
if(表达式){
…
//分支1
}任何类型为int,double或float的表达式如果
表达式
的
值
为
真,
则执行
分支1中的语句;否则,
跳过
分支1中的语句。#include<stdio.h>intmain(){
inta;
scanf(“%d”,&a); if(a<0){
a=-a; }
printf("%d\n",a); return0;}这个程序的效果是什么?接收用户输入的一个整数输出这个整数的绝对值。双分支结构
if(表达式){
…
//分支1
}else{
…
//分支2
}如果
表达式
的
值
为
真,
则执行
分支1中的语句;否则,
执行
分支2中的语句。intmain(){
inta;
scanf(“%d”,&a); if(a<0){
a=-a; }else{
a+=2; }
printf("%d\n",a); return0;}这个程序的效果是什么?intmain(){
inta;
scanf(“%d”,&a); if(a==1||a==3||a==5){
printf(“NO”); }else{ printf(“YES”); } return0;}多分支结构
if(表达式1){
…
//分支1
}elseif(表达式2){
…
//分支2
}…
…{
…
…}elseif(表达式n){
…
//分支n}如果
表达式1
的
值
为
真,
则执行
分支1中的语句;否则如果
表达式2
的
值
为
真,
则执行
分支2中的语句;……否则如果表达式n
的
值
为
真,
则执行
分支n
中的语句。intmain(){
inta,b;
scanf(“%d%d”,&a,&b); if(a>b){
printf("%d\n",a); }else{
printf("%d\n",b); } return0;}这个程序的效果是什么?课堂练习练习1:接收用户输入的3个数字,输出其中的最小值程序输入3个数字程序输出3个数字中的最小值课堂参与请一位同学上台,编写上述程序int
a,
b,
c;…if(
a<b
&&
a<c
){
printf(“%d”,
a);}else
if(b<a
&&
b<c
){
printf(“%d”,
b);}else{
printf(“%d”,
c);}…课堂参与练习2:判断一个整数能否被7整除程序输入一个整数程序输出如果这个整数能被7整除,输出字符串true;否则,输出字符串false;请一位同学上台,编写上述程序int
a;…if(
a%7==0
){
printf(“true\n”);}else{
printf(“false\n”);}…练习3:判断一个整数的某个数位上是否存在数字7问题描述给定一个4位整数,判断这个数字的个位数、十位数、百位数和千位数这4个数字中是否存在数字7程序输入一个4位整数程序输出如果某个数位上的数字是7,输出字符串true否则,输出字符串false课堂参与请一位同学上台,编写上述程序int
a;…if(
(a%10)==7
){
//个位数是否等于7
printf(“true\n”);}else
if(
((a/10)%10)==7
){
//十位数是否等于7
printf(“true\n”);}else
if(
((a/100)%10)==7
){
//百位数是否等于7
printf(“true\n”);
}else
if(
((a/1000)%10)==7
){
//千位数是否等于7
printf(“true\n”);}else{
printf(“false\n”);}练习4:判断某一年是否是闰年程序输入一个表示年份的整数(如,2012)程序输出如果这个年份是闰年,程序输出true;否则,程序输出false;闰年的充分必要条件是:“年份能被400整除”或者“年份能被4整除,但不能被100整除”课堂参与请一位同学上台,编写上述程序int
year;…if(year%4==0
){if(
year%100==0){if(
year%400==0){printf(“true\n”);}else{printf(“false\n”);}}else{printf(“true\n”);}}else{printf(“false\n”);}两个常用函数
平方根函数XY函数平方根函数C标准库函数
sqrt:
double
sqrt(doublex);注意
#include<math.h>平方根函数
示例#include<stdio.h>#include<math.h>
intmain(){ doubled; doubler; scanf(“%lf”,&d);
r=sqrt(d); printf(“%lf\n”,r); return0;
}XY函数C标准库函数
pow:
double
pow(doublex,doubley);注意
#include<math.h>XY函数
示例#include<stdio.h>#include<math.h>
intmain(){ doublex,y; doubler; scanf(“%lf%lf”,&x,&y);
r=pow(x,y); printf(“%lf\n”,r); return0;
}C程序中的
三种
控制结构1.顺序结构2.分支结构3.循环结构循环结构循环条件
+
循环体循环结构:while(…){…}
while(表达式){
…
//循环体
}任何类型为int,double或float的表达式#include<stdio.h>intmain(){ intresult=0;
inti=1;
while(i<=100){ result+=i; i++; } printf("%d\n",result); return0;}while(){}示例这个程序的效果是什么?计算1+2+3+…+100的值#include<stdio.h>intmain(){
intresult=0;
int
i=1;
while(i<=100){ result+=i;
i+=2; }
printf("%d\n",result); return0;}while(){}示例这个程序的效果是什么?计算1+3+5+…+99的值while(){}示例intmain(){
intresult=0;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num); result+=num;
i++; }
printf("%d\n",result); return0;}计算用户输入的10个数字的和这个程序的效果是什么?while(){}示例intmain(){ intresult=0; intnum;
inti=1; while(i<=10){ scanf(“%d”,&num);
if(i==1){ result=num;
}else{
if(num>result){ result=num;
}
} i++; } printf("%d\n",result); return0;}计算用户输入的10个数中的最大值这个程序的效果是什么?0123456789101112131415intmain(){
intresult;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){
result=num;
}else{
if(num>result){
result=num;
}
}
i++; }
printf(“%d\n”,result);return0;}inumresult17720123456789101112131415intmain(){
intresult;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){
result=num;
}else{
if(num>result){
result=num;
}
}
i++; }
printf(“%d\n”,result);return0;}inumresult177263intmain(){
intresult;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){
result=num;
}else{
if(num>result){
result=num;
}
}
i++; }
printf(“%d\n”,result);return0;}0123456789101112131415inumresult177263-440123456789101112131415intmain(){
intresult;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){
result=num;
}else{
if(num>result){
result=num;
}
}
i++; }
printf(“%d\n”,result);return0;}inumresult1772693-44950123456789101112131415intmain(){
intresult;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){
result=num;
}else{
if(num>result){
result=num;
}
}
i++; }
printf(“%d\n”,result);return0;}inumresult1772693-4495012345678910111213141518186intmain(){
intresult;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){
result=num;
}else{
if(num>result){
result=num;
}
}
i++; }
printf(“%d\n”,result);return0;}inumresult1772693-4495012345678910111213141518186147intmain(){
intresult;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){
result=num;
}else{
if(num>result){
result=num;
}
}
i++; }
printf(“%d\n”,result);return0;}inumresult1772693-449501234567891011121314151818614722228intmain(){
intresult;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){
result=num;
}else{
if(num>result){
result=num;
}
}
i++; }
printf(“%d\n”,result);return0;}inumresult1772693-449501234567891011121314151818614722228-109intmain(){
intresult;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){
result=num;
}else{
if(num>result){
result=num;
}
}
i++; }
printf(“%d\n”,result);return0;}inumresult1772693-449501234567891011121314151818614722228-109292910intmain(){
intresult;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){
result=num;
}else{
if(num>result){
result=num;
}
}
i++; }
printf(“%d\n”,result);return0;}inumresult1772693-449501234567891011121314151818614722228-10929291025intmain(){
intresult;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){
result=num;
}else{
if(num>result){
result=num;
}
}
i++; }
printf(“%d\n”,result);return0;}inumresult1772693-449501234567891011121314151818614722228-1092929102511intmain(){
intresult;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){
result=num;
}else{
if(num>result){
result=num;
}
}
i++; }
printf(“%d\n”,result);return0;}请一位同学上台,编写一个程序;要求:在控制台输出
1-100之间能被6或者7整除的
所有数的和提示:
1.while循环结构 2.分支结构
intresult=0;
int
i=1;
while(i<=100){ if(
i%6==0
||
i%7==0){
result+=i;
}
i++; }循环结构:for(…){…}for(){}是
表示
循环结构
的
一种
简洁形式任何
while(){}循环
都可以改写为
for(){}循环for语句
和
while语句
的
对应关系for(表达式1;表达式2;表达式3){
循环体语句;
}for语句
的
一般形式表达式1;表达式2循环体语句;表达式3;真假入口出口表达式1;表达式2循环体语句;表达式3;真假入口出口
表达式1;while(表达式2){
循环体语句;
表达式3;
}for(表达式1;表达式2;表达式3){
循环体语句;
}#include<stdio.h>intmain(){ intresult=0;
inti=1; while(i<=100){ result+=i; i++; } printf("%d\n",result); return0;}for(inti=1;i<=100;i++){
result+=i;}循环变量初始化循环条件循环变量操作#include<stdio.h>intmain(){ intresult=0;
inti=1; while(i<=100){ result+=i; i++; } printf("%d\n",result); return0;}#include<stdio.h>intmain(){ intresult=0;
inti; i=1; while(i<=100){ result+=i; i++; } printf("%d\n",result); return0;}for(i=1;i<=100;i++){
result+=i;}#include<stdio.h>intmain(){ intresult=0;
inti=1;
while(i<=100){ result+=i; i+=2; } printf("%d\n",result); return0;}for(inti=1;i<=100;i+=2){
result+=i;}intmain(){
intresult=0;
int
num;
int
i=1; while(i<=10){
scanf(“%d”,&num);
if(i==1){ result=num;
}else{
if(num>result){ result=num;
}
}
i++; }for(int
i=1;i<=10;i++){
scanf(“%d”,&num);
if(i==1){ result=num;
}else{
if(num>result){ result=num;
}
}}循环结构
中的
break;
语句#include<stdio.h>intmain(){
inti,num; scanf(“%d”,&num);
for(i=2;i<=num;i++){ if(num%i==0){
break; } }
printf(“%d\n”,i); return0;}跳转到:
所在循环结构
的
下一条语句当用户输入了一个大于1的正整数,这个程序的效果是什么?大于1的正整数
的
最小的非1约数接收从控制台输出的两个整数
(假设是两个正整数)输出这两个数的最大公约数求两个正整数的最大公约数#include<stdio.h>intmain(){
inta,b,result;
scanf("%d%d",&a,&b);
result=a; while(1){ if((a%result==0)&&(b%result==0)){ break; } result--; }
printf("%d\n",result); return0;}请一位同学上台,编写一个程序;要求:接收从控制台输出的两个整数
(假设是两个正整数)输出这两个数的最小公倍数#include<stdio.h>intmain(){
inta,b,result;
scanf("%d%d",&a,&b); result=a; while(1){ if((result%a==0)&&(result%b==0)){ break; } result++; }
printf("%d\n",result); return0;}循环结构
中的
continue;
语句#include<stdio.h>intmain(){ intresult=0;
inti=1;
while(i<=100){ result+=i; i+=2; } printf("%d\n",result); return0;}计算1+3+5+…+99的值intmain(){ intresult=0;
inti=1;
while(i<=100){ if(i%2==0){ i++;
continue; }
result+=i; i++; } printf("%d\n",result); return0;}跳转到:
所在循环结构
的
条件判断语句
关于宏
形式:#definePI
3.14159
宏名(一般用大写,以区别一般变量)宏体(可以是一个复杂的表达式)作用与意义1.在源程序中,用简单的宏名指代复杂的宏体
2.程序更加直观注意:1.#define可出现在程序的任一行
2.宏的作用范围:由宏定义开始到程序末尾之间的区域3.宏定义不是C语句,不必在行尾加分号
形式:#definePI
3.14159
#definePI3.141593;#include<stdio.h>
intmain(){
doubleS;S=PI-PI;
printf(“%lf\n”,S); return0;
}S的值是多少?按下build后
……源文件可执行程序预编译编译连接没有宏的源文件二进制代码
#definePI3.141593;intmain(){
doubleS;S=PI-PI; return0;
}预编译intmain(){
doubleS;S=3.141593;-3.141593;; return0;}把源程序中的所有
PI
替换为
3.141593;源文件没有宏的源文件intmain(){
doubleS;S=3.141593;-3.141593;; return0;}intmain(){
doubleS;S=3.141593;
-3.141593;
; return0;}错误:
使用
宏
定义常量时,在结尾加
;#definePI3.14159;intmain(){
…
…
return0;}
#definePI3.14159
intmain(){
…
…
return0;
}✕✓一些常见的宏定义:
#define
MAX
1000;
//最大#define
MIN
10;
//最小#define
LEN
200;
//数组长度#define
JINGDU
0.00001
//精度运算符号算术运算符关系运算符号逻辑运算符号3>2+1||5+3<4*2&&15+1
这个表达式的值是多少?运算符号的优先级请课后自己学习!(见书243页)建议:
尽量使用括号,
显式控制运算顺序运算符号的优先级3+2*4在不知道“先加减、后乘除”的情况下,
如何控制运算顺序呢?(3+2)
*43+
(2*4)强制数据类型转换(int)(2.6)一个合法的表达式类型:int值:2#include<stdio.h>intmain(){ doublep;
intc;
scanf(“%lf”,&p); c=(int)(p+0.5);
printf(“%d”,c); return0;}这行语句的效果是什么?获得对p的小数部分进行
四舍五入
后的整数值分支结构
的
一种变体
条件表达式
条件表达式特定类型
的
双分支语句
的
一种变体条件表达式表达式1
?表达式2
:表达式3条件表达式的值:
如果
表达式1的值
为
真,则
该条件表达式的值
为
表达式2的
值;
否则
该条件表达式的值
为
表达式3的
值;
条件表达式inta=表达式1
?表达式2
:表达式3; inta;
if(表达式1){
a=表达式2;
}else{
a=表达式3; }#include<stdio.h>intmain(){
inta,b,max;
scanf(“%d,%d”,&a,&b);if(a>b){
max=a;}else{
max=b;}
printf(“%d”,max);return0;}接收用户输入的两个整数,并输出其中较大的数。用条件表达式改写左边的语句请一位同学,
将结果写在黑板上#include<stdio.h>intmain(){inta,b,max;
scanf(“%d,%d”,&a,&b);if(a>b){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 书籍服务营销方案范文(3篇)
- 智障儿童课堂活动方案策划(3篇)
- 牛舍喷涂保温施工方案(3篇)
- 2026北京市公开遴选公务员147人考试参考题库及答案解析
- 2026年PBAT树脂行业洞察报告及未来五至十年发展趋势报告
- 2026年中国东方航空集团有限公司人员招聘考试模拟试题及答案
- 2026年芜湖市环境卫生管理处招聘生活垃圾处置企业驻厂监督员笔试模拟试题及答案解析
- 2026年光学摄影器材行业洞察报告及未来五至十年发展趋势报告
- 生产公司活动策划方案范文(3篇)
- 电玩城设计施工方案(3篇)
- 法律职业资格考试主观题试题与参考答案(2026年)
- 2026年新教材人教版九年级上册英语期中复习 Unit 1-4 语法填空 专项练习题(含答案解析)
- 新能源项目保险方案
- 2026东营广饶县大王镇专职人民调解员岗位招聘23人笔试模拟试题及答案解析
- 道德与法治九年级上册最-全知识点(2026版)
- NB∕T 11970-2026 电动汽车充电设施接入运营安全评价规范
- 镀锌钢管表面处理工艺技术方案
- 2026秋苏教版四年级上册单元测试 第二单元 周长与面积
- BBT0060-2025包装容器 聚对苯二甲酸乙二醇酯(PET)瓶坯(高清)
- 工业中水回用系统建设实施方案
- 2026高考化学试题评析及教学启示-陕晋宁青卷
评论
0/150
提交评论