版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八讲
C语言编程基础(第二部分)北京大学
信息科学技术学院2013年11月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个数字中的最小值课堂参与请一位同学上台,编写上述程序课堂参与练习2:判断一个整数能否被7整除程序输入一个整数程序输出如果这个整数能被7整除,输出字符串true;否则,输出字符串false;请一位同学上台,编写上述程序练习3:判断一个整数的某个数位上是否存在数字7问题描述给定一个4位整数,判断这个数字的个位数、十位数、百位数和千位数这4个数字中是否存在数字7程序输入一个4位整数程序输出如果某个数位上的数字是7,输出字符串true否则,输出字符串false课堂参与请一位同学上台,编写上述程序练习4:判断某一年是否是闰年程序输入一个表示年份的整数(如,2012)程序输出如果这个年份是闰年,程序输出true;否则,程序输出false;闰年的充分必要条件是:“年份能被400整除”或者“年份能被4整除,但不能被100整除”课堂参与请一位同学上台,编写上述程序两个常用函数
平方根函数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;
inti=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.分支结构循环结构: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;}跳转到:
所在循环结构
的
条件判断语句运算符号算术运算符关系运算符号逻辑运算符号3>2+1||5+3<4*2&&15+1
这个表达式的值是多少?运算符号的优先级请课后自己学习!(见书243页)建议:
尽量使用括号,
显式控制运算顺序运算符号的优先级3+2*4在不知道“先加减、后乘除”的情况下,
如何控制运算顺序呢?(3+2)
*43+
(2*4)强制数据类型转换#include<stdio.h>intmain(){ doublep;
intc;
scanf(“%lf”,&p);
c=5/p;
printf(“%d”,c); return0;}#include<stdio.h>intmain()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银矿尾矿资源利用经济分析考核试卷
- 2024-2030年中国数码显微镜市场需求潜力及发展前景预测分析研究报告
- 2024-2030年中国数控特种机床行业发展分析及投资风险预测研究报告
- 场地转租合同
- 财务管理协议合同书
- 天成大联考2025届高考预测密卷:英语试题试卷含解析
- 新疆呼图壁县第一中学2024-2025学年高三3月教学质量检测试题英语试题含解析
- 四川省成都市双流区双流棠湖中学2025届高三下第三次调研考试英语试题含解析
- 2024医院人员聘用合同范本范文
- 2024北京市农药买卖合同范本
- 学校三级家长委员会组织机构
- 职工之家建设
- 集装箱英语(全集)
- 附件1:辽宁省科技计划科技报告格式模板
- 桥式起重机使用手册
- LNG点供市场现状与未来
- 教科小学科学上册实验开出率统计表
- 给排水水力计算表格(建筑给排水)
- 税务管理培训课件(共35页).ppt
- 企业法人任命书范本
- 再审检察建议或抗诉申请书
评论
0/150
提交评论