




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言讲义(第一讲)上间:两共90分钟
ScanfPrintfcC语言程序 int o //return 常量 常量表示固定的数据分类 整型常 浮点型常量5.43,-字符常 如‘?‘a‘F’“1236“nanabc” #definepi3.1415举例:inta;charc;注意:变量名属于标识符,需要符合标识符名规范。初始化:有两种形式。1.inta;a=10; 2.inta=10;**m.aCsigned(有符号)unsigned(无符号)两大例如,初始化变量inta -3;其实它等价于signed inta 字signed在这里可以省略,因为C语言默认就是有符号类型的,如果要定义无符号类型的数(也就是0和正整数)可以这样定义,unsignedint b= 为了说明清楚signed和unsigned的区别,首先需要了解数据在内存中是如2个字节的机器上来表示。unsignedinta1变量a在内存中就是以来的,用图表的形式表示:因为这里是unsignedint16位全部用来表示intb=-注意数字1和-1在内存中的是完全不一样的,请看在计算机中,整数是以原码的形式的,而负数是以补码的形式的,1,反码就是原码的各位取反,例如-1的补码是:1的原码是得到-1的补码是,unsignedint0---2signedint162进制,只不过第一位用来表示符(类型说明符)(表达式 把a 以unsignedchar和char的原码是:00000010,可知最不为1,因此转为有符号 是2。#include#include<stdio.h>intmain(void){unsignedchari=2;return0;}130的原码是:10000010,可知最为1,因此需要取它的补码,补码11111110,这是一个负数,取最作为-号,取最低7位作为数值得到的#include#include<stdio.h>intmain(void){unsignedchari=130;return0;}等于有符号数;如果有符号数的最为1,则将有符号数取补码,得到的数以char和unsignedchar的原码是:00000011,可知最不为1,因此转为无符号数之后也#include<stdio.h>intmain(void){chari=3;printf("%u\n",(unsigned#include<stdio.h>intmain(void){chari=3;printf("%u\n",(unsignedchar)i);return0;}-7的原码是:10000111,可知最为1,因此需要取它的补码,补码为11111001249。#include#include<stdio.h>intmain(void){chari=-7;printf("%u\n",(unsignedchar)i);return0;}11,则转换结果就是printfprintf(“格式控制字符串”,输出表列1)do以八进制形式输出无符号整数(以十六进制形式输出无符号整数(不输出前缀ufcs2)-、+、#-+输出符号(正号或负号#对c、s、d、u类无影响;对o类,在输出时加前缀o;对x对e、g、f0。长度格式符为h、l两种,h表示按短整型量输出,l#include<stdio.h>intmain(void){intlongfloat;//原来b的定义为float;doublechar.;printf("a(%%d)=%da(%%5d)=%5d,a(%%o)=%o,a(%%x)=%x\n\n",a,a,a,a);//%%可以输出%printf("a=%f\n",b);printf("c=%f\n",printf("c=%f\n",printf("c(%%lf)=%lf,c(%%f)=%f,printf("d(%%c)=%c,d(%%8c)=%8c\n",d,d);return0;}以四种格式输出实型量以四种格式输出实型量b的值。其中“%f”和“%lf”格式的输出相同,说明“l”符4位部分被截去。输出双精度实数,“%8.4lf44输出字符量d,其中“%8c8故在输出字符p7个空scanfscanf(“格式控制字符串”,地址表列其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也例如:&a、&bab#include<stdio.h>intmain(void){intreturn0;}输出提示,请用户输入a、b、c的值。执行scanf语句,等待用户输入。在scanf78或789其中有方括号[]格式doxuf或输入实型数(用小数形式或指数形式cs“*”scanf("%d%*d当输入为 3时,把1赋予a,2被跳过,3赋予b用十进制整数指定输入的宽度(即字符数 只把12345赋予变量a,其余部分被截去。又如:输 将把1234赋予a,而把5678赋予b%lfh使用scanf1).scanf函数中没有精度控制,如:scanf("%5.2f",&a);是的。不能企图用此2位的实数。2)scanf中要求给出变量地址,如给出变量名则会出错。如scanf("%d",a);是非法的,应改为scnaf("%d",&a);才是合法的。间隔则可用空格,TAB或回车作间隔。C编译在碰到空格,TAB,回车或数据(如对“%d”输入“12A”时,A即为数据)时即认为该数据结束。d、e、f则把'd'赋予a,''b,'e'赋予c。只有当输入为def时,才能把'd'赋于a,'e'赋予b,'f'赋予c。scanf("%c%c#include<stdio.h>intmain(void){charprintf("inputcharactera,b\n");return0;}由于scanf函数"%c%c"MNM。而输入改为MN时则可输出MN两字符。#include<stdio.h>intmain(void){charprintf("inputcharactera,b\n");scanf("%c%c",&a,&b);return0;}本例表示scanf格式控制串"%cc"之间有空格时,输入的数据之间可以有空其中用非格式符作间隔符,故输入时应为:5,6,7。又如:#include<stdio.h>intmain(void){intprintf("inputanumber\n");return0;}结果和输入数据不符。如改动程序如下4-11#include<stdio.h>intmain(void){longprintf("inputalonginteger\n");return0;}inputalong一、CC(+(*(/(%(++(>(<(==(>=(<=(!=(&&(||,非(!,共(&(|(!(^(<<(>>(=%=<<=条件运算符:这是一个三目运算符,用于条件求值((&(sizeof特殊运算符:有括号、下标、成员(->,)例如,在表达式a*b+c中,乘法运算的优先级高于加法运算符的优先级,所以先执行乘法a*b,而不是加法b+a,b=1,c=2;操作先执行,是先执行b=c呢?a=b。如果按前者,a=2,如果按后者,a1。的操作最先执行,然后从右到左依次执行。这样,c先赋值给b,然后b在赋值给aa2。类似地,具有左结合性的操作符(如位操作符“&”和=是右结合的,所以先计算(b+c+d),+是左结合的,所以先计算(b+c),然后再计算C+a+b,4+8等。具有左结合性。-时为单目运算,如-x,-5等具有左结合性。*/求余运算符(模运算符%的量均为整型,不能应用于float或double类型。求余运算的结果等于两数相除后的0合C语则的式子。表达式是由常量、变量、函数和运算符组合起来的式子。例如a*b/c-11运算符:1运算符记为“++”1。1运算符记为“--”1。11++ii1--ii1后再参与其它运算;i++i参与运算后,i1;i--i参与运算后,i1。在理解和使用上容易出错的是i++和i--{inti=4;}i42i153144行输出i41(5)5行输出i51(4)6行输出-41(5)7行输出-51(4)。int{return0;}本例中,20/7,-20/720.0/7和-20.0/7由于int{return0;}10031。在C<(小于<=(小于或等于>(大于>=(大于或等于==(等于5>0的值为“真”(a=3)>(b=5)3>50。4.1简单赋值运算符记为“=”“=”组建的式子称为赋值表达式。a=b=c=5可理解为a=(b=(c=5)),即表达式5,a,b,c5。这个表达式从右向左运算,在c5后,表达式c=55,接着b5a5。⑥凡是表达式可以出现的地方均可出现赋值表达式。例如,式子x=(a=5)+(b=8)5赋给a,8赋给ba与b相加,和赋给x,故x13。赋值运算中的自动类型转换0)。字符型赋给整型,由于字符型为一个字节,故将字符的ASCII码值放到整型量的低八位中,为0。整型赋给字符型,只把低八位赋给字符量。逻辑运算的结果只有两个:真(0)和假①与&&1&&212都成立时,②.或|| 条件1||条件2当条件1或条件2中有一个成立时就为真,③.非!!条件取反IntIntc=(a>5)&&(++b>=11);//此时a==10,b==11,c==1Intc=(a<5)&&(++b>=11);//此时提示:()优先级次序:!(非)&&(与)||(或单目:153个数值参与要求比较a和b的值,把数值大的存入到c中c=a>b?a:b例如条件语句: elsemax=(a>bab;max=(a>b)?a:b;a>ba赋予max,否则把b赋予maxa>bac>dca>bac>dc:d5-8】#includestdio.h>intmain(void){inta,b,max;return0;}在C语言中,逗号“,”的用法有两种:一种是用作分隔符,另一种是用作运算inta,b,c;C语言还允许用逗号连接表达式。例如x=5.6,y=2.1,10+x,x+y这里用三个逗号运123,...,表达式2*6a(结果是a=12),再计算a-4(只计算,不赋值),最后计算a+15(只计算,不赋值),27作为整个逗号表达式的值。请注aa的值仍然为12此逗号表达式的目的是实现变量a,b值互换,而不是使用整个表达式的值。由于逗号运算符的优先级最低,因此x=5+5,10+10与x=(5+5,10+10)前者是x1020;后者由于增加了一对括10+10作为整个表达式的值并赋予变量x,因此x20。逗号表达式(a=3*5,a*4),a+153*515a,再计算括号内的第二个表达式a*46060虽然作为括号所成的表达式的值,但是a15,因此最后计算a+1530。例intj=5;该赋值语句的执行顺序为:先对a6a+28,再计算a+399作为整个逗号表达式的值付给变量aa9。如果将一对括号去掉,a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医患关系管理在医疗行业中的重要性及实践
- 医疗科研数据共享的区块链解决方案
- 医疗服务品质与忠诚度之间的关联分析
- 医疗AI的伦理审查与公众信任度提升策略研究
- 医疗大数据的未来在保护中挖掘价值
- 医保行业的科技升级与变革
- 消防技术改进试题及答案观察
- 2025年建造师考试重要性试题及答案
- 常见问题中级审计师试题及答案
- 2025年护理管理中的项目管理技巧与试题及答案
- 2025年上半年江苏省常州市北港街道招聘街道城管协管员及内勤共15人易考易错模拟试题(共500题)试卷后附参考答案
- 2025国网陕西电力省管产业单位供电服务业务部招聘(379人)高频重点提升(共500题)附带答案详解
- 电力检修聘用合同证明
- DB21T 2733-2017 沿海防护林体系工程建设技术规程
- 湖北省武汉市部分学校2025届高三第三次模拟考试数学试卷含解析
- 舌尖上的潮州菜(劳动教育)学习通超星期末考试答案章节答案2024年
- 数据库PLSQL编程课件
- IATF16949年度管理评审计划
- 学校实验室危险化学品安全工作检查记录表
- 高职劳动教育学习通超星期末考试答案章节答案2024年
- 浙江省2024年全国中学生奥林匹克数学竞赛初赛试题 含解析
评论
0/150
提交评论