版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言补习60分攻略C语言60分攻略基本概念汇编语言编写的程序必须经汇编为目标程序。高级语言编写的程序必须经编译为目标程序。C语言程序总是从main()函数开始执行,到main()函数结束。因此,C语言程序至少有一个main()函数。C语言60分攻略一、C语言的数据表示1.1常量和变量1.2表达式1.3数据类型简单类型、结构类型、指针类型1.4输入、输出C语言60分攻略1.1常量和变量1.常量常量是在程序执行中,值不发生改变的数据。其值预先决定,之后不变。有不同的数据类型。(1)常数(有的称直接常量、页面常量)例如的:整数:+5、-3、017(八进制)、0x1f(16进制)实数(浮点数):3.14、-1.2E-3、1E10单个字符:‘A’,占一个字节’\\’,转义字符‘\’‘\’非法’\77’(八进制ASCII码63,‘?’),’\78’非法’\x3f’(十六进制ASCII码63,‘?’)‘\x3g’非法字符串:“A”后面有\0,占两个字节E3,2E3.0不合法不是整型量占一个字节C语言60分攻略字符串“\*\077\\\x7f\n”的长度是:下列是整型常量的是:
0.00L0x7f0570582/2.0下列是实型常量的是:
-1E-3E101E23.141.2E2.3“\x7F”和’\x7F’的字节数分别为:521C语言60分攻略(2)符号常量
给常量起标识符名字。C语言的符号常量(用宏定义):
#definePI3.14159265注意:1.一般用大写字母。2,#defineM3不是C语句,后面没有“;”。3.可以做M+1,不能做M++.(3)地址常量
当数组在定义时,其变量名为其首地址,是地址常量。
inta[10];可以做a+1,不能做a++.
C语言60分攻略1.1常量和变量2.变量用各种操作来改变值数据。从“名”和“值”两个角度认识变量(1)变量名每个变量,要在使用前定义变量的名字,遵循标识符命名规则。只能用字母、数字和下划线组成。不能以数字开头。不能用保留字(int,printf,main…..)。合法a12a_3_abc非法12aa#intC语言60分攻略
变量定义就是申请数据的存储空间,登记数据的各种存储特性。例如:intm;2个字节longn;4个字节charch;1个字节floatx;4个字节doubley;8个字节可以用sizeof获得字长sizeof(char)=1sizeof(int)=2sizeof(double)=8C语言60分攻略(2)变量的值
变量值就是由变量名所指定空间上的存储数据内容。即变量的当前值。
数据内容用语言的操作语句来改变。赋值语句;键盘输入语句;
charchx;intm;/*变量的定义*/
chx=‘A’;m=12*3;
/*赋值语句*/scanf(“%d”,&m);
/*键盘输入语句*/②①变量初始化:定义变量时同时确定变量初值。例如:charchy=‘a’;intweight=2;
③C语言60分攻略1.2C语言的表达式1、算术表达式2、关系表达式3、逻辑表达式4、赋值表达式5、逗号表达式6、条件表达式7、其他表达式C语言的表达式:使用规定的运算符,将常量、变量、函数(调用)连结的一个有意义的式子。
C语言60分攻略1、算术表达式用算术运算符来表示对数据的算术运算求值过程。算术运算符:+-*/%2/3结果是0,2%3结果是25/2结果是5%2结果是C语言60分攻略2、关系表达式关系运算符:
>>=<<=(优先级较高)!===(优先级较低)关系表达式的结果:1(非0,真),0(假)分析:10<=a<=15a=9是假10<=a<=1510<=a假00<=15真所以要写成10<=a&&a<=15C语言60分攻略3、逻辑表达式用逻辑表达式来表示对数据的逻辑关系判断,运算结果是逻辑值“真”1或者“假”0。C逻辑运算符包括:!&&||
参加逻辑运算的数据必须是逻辑量,可以是逻辑类型的变量、常量,关系表达式或逻辑表达式。C语言中,没有专门的逻辑量,1是真值,0是假值。也认为非零的值为真值。如:inta=3,b=4,c=-5;(1)!((a<b)&&!c||1)(2)if(a)printf(“\nyes”);a,c均按非0(即真)处理C语言60分攻略逻辑运算规律①在&&(与)表达式中,若&&的左端为假,则不再计算另一端,该表达式值肯定为0(假)。②在||(或)表达式中,若||的左端为真,则不再计算另一端,表达式的值必定为1(真)。inta=5,b=1k=a<=3&&b-->0k?b?假,后面不算了k=0,b=1C语言60分攻略判断闰年的条件是:能被4整除但不能被100整除,或能被400整除。(x%4==0&&x%100!=0)水仙花数是指一个三位正整数,其各位数字的立方和等于该数本身(k*100+m*10+m==k*k*k+m*m*m+n*n*n)三角形的基本条件((a+b)>c)&&((c+b)>a)&&((c+a)>b))||(x%400==0)C语言60分攻略4、赋值表达式=,+=,-=,*=,/=,++(单目),--(单目)级别仅高于逗号表达式,右结合inta=3,c=2,ba=b=c;n*=m+2相当于n=n*(m+2)k=i++;先k=i,再i=i+1k=++i;先i=i+1,再k=ic赋值给b,b=2b赋值给a,a=2C语言60分攻略i++,++ik=i++作赋值运算,使用就是赋值.先做k=i,再做i=i+1i++先使用,后加1,++i先加1,后使用要充分理解中”使用”的实际意义k==i++作比较判断运算,使用就是比较判断先做k==i,是真还是假,再做i=i+1printf(“%d”,i++)作输出结果,使用就是输出结果.先输出i,再做i=i+1a=5-(i++)作减法,使用就是减.先做5-i,并赋给a,再做i=i+1C语言60分攻略5、条件表达式e1?e2:e3若e1为真,表达式的值为e2,否则为e3.
a=3,b=2;(--a==b++)?--a:b
++5?10:3表达式的值为100?10:3表达式的值为3-5?10:3表达式的值为10b=3;a=b>5?10:3;a=?赋值运算符优先仅高于逗号运算符a=(b>5?10:3);3k=(--a==b++)?--a:b
++;k=?11非0真C语言60分攻略6、逗号表达式表达式的值等于最后一个表达式的值,运算等级最低!
a=5,b=2,c=3a=7+b+c,
b++
a=(7+b+c,
b++)a=12a=27、强制类型转换表达式(单目)
intm;sqrt((float)m);a=5,a+5,a+=aa=10C语言60分攻略理解记忆运算符表
(高)(低)!++,--,等算数运算符关系运算符逻辑运算符&&||条件运算符赋值运算符
逗号运算符右结合单目运算符赋值运算符b=2a=5-(--b)()优先级最高,--b右结合-优先级其次=优先级最低--b,b=b-1,b为1再做5-b,即5-1等于4最后将4赋给aC语言60分攻略1.3数据类型简单类型构造类型指针类型整型实型字符型数组结构体共用体数值型枚举型空类型int2个字节long4个字节float4个字节double8个字节char1个字节成员类型字节数×个数struct各成员字节数之和union各成员字节数之最大者存放地址,与所指数据类型无关,2个字节不要求不要求C语言60分攻略1.3数据类型(1)整型类型名字节数输入、输出格式
int2%d
short2%d
long4%ld(2)实型1.简单类型类型名字节数输入、输出格式有效数字位float4
%f
7doubule8%lf16longdoubule16%lf19C语言60分攻略(3)字符型(输入、输出格式“%c”)
ASCII码,一个字符占1字节;char型数据与int型数据之间的关系
char型对应其ASCII码,只不过是占一个字节。大写字母与小写字母之差为32.char型变量既能以%c字符格式输出,也能以%d整型格式输出。能象int量一样进行算术运算。注意转义字符’\’的使用。
‘\n’
‘\*’‘\101’(A,8进制)‘\x41’(A,16进制)charch=‘k’;printf(“%d,%c”,ch-32,ch-32);107,KC语言60分攻略(4)字符串(输入、输出格式“%s”)所谓“字符串”是指若干有效字符的序列。C语言字符串可以包括字母、数字、专用字符、转义字符等。字符串常量:使用双引号
"China""BASIC""a+b=c""Li-Li"“39.4”“%d\n”“解放军““\*\077\\\x7f\n”字符型的一维数组(相当于字符串变量)charst[8],str[10];strcpy(st,"12345");strcpy(str,st);不能st=“12345”;str=st;这是赋值.可以charst[]=“12345”;这是初始化.C语言60分攻略2.结构类型“结构”一般可以称为数据元素,在不同的结构类型中,数据元素会有特定的名称。结构类型的数据由更加基本的成分组成。这些成分称为“数据项”,结构的子成员。1.3数据类型C语言60分攻略(1)数组
a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]1020304050607080
一个数组(array)是由相同类型的若干数组元素构成的有限序列。C语言的数定义:intb[8],a[8];charc[10];
2.结构类型元素下标从0开始C语言60分攻略例日期类型的定义(2)结构体C语言中实现:structDate{intmonth;/*月*/intday;/*日*/intyear;/*年*/};structDatemyd={12,16,1978};系统分配给它的内存是各成员所需内存量的总和。本例是6.
C语言60分攻略(1)指针:变量名的在内存中的存储地址。(2)指针变量inti=12,*p;P=&i;把存放变量i的地址的变量p称作指针变量。指针变量的存放内容是数据的地址。3.指针类型(放弃)(3)指针引用变量指针变量可以指向各种不同的数据类型,因此指针变量也要有不同的指针类型。如:intm,*p;floatx,*q;inta[],*rm=12;p=&m;x=3.14;q=&x;r=a;注意:是否用&C语言60分攻略1.4
输入、输出输出:printf(“…….”,…….)%d,%6d,%ld%c,%s
%f,%10.2f,%lf,%20.8lfchara[]=“abfgcde”,max,max_i;main(){…….printf(“max=%c\nmax_i%d=”,max,max_i);max=原样输出换行g3原样输出max_i=注意输出格式C语言60分攻略1.4输入、输出输入:scanf(“…….”,…….)%d,%ld对应intlong%c,%s对应charcharstr[]
%f,%lf对应flaotdouble常见错误inta,b;chard,e[20];scanf("%d,%f\n”,&a,&b);scanf("%d,%f”,a,b);scanf("%7.2f",&b);scanf("%s",&e);scanf("%f",&d);\n要多输入一个值缺&不能规定精度数组名是首地址,不要&类型不匹配C语言60分攻略(1)表达式语句(2)流程控制语句(3)复合语句C语言语句⒈指令语句⒉非指令语句⑴数据定义语句
floatx;intm;⑵编译预处理①宏定义
#definePI3.14159②文件包含处理
#include<stdio.h>二、C语言的程序结构与相关语句C语言60分攻略带参宏定义以文本按原样展开#defineMUL(x)x*x5/MUL(5+3)=5/5+3*5+3=19#defineMUL(x)(x)*(x)5/MUL(5+3)=5/(5+3)*(5+3)=5#defineMUL(x)((x)*(x))5/MUL(5+3)=5/((5+3)*(5+3))=5/64C语言60分攻略1.表达式语句的组成:
由一个表达式后接一个分号组成的。⒈一组语句括在一对花括号之中,称复合语句。
{c=getchar();putchar(c);}
注意,一个复合语句的后花括号之后不应再写分号。⒉在语法上是一个整体,相当于一个语句。
凡是能够使用简单语句的地方,都可以使用复合语句。一个复合语句中又可以包含另一个或多个复合语句。从键盘输入一个字符,并赋给c以字符形式输出字符变量的值cC语言60分攻略完成一定的控制功能。9种控制语句:判断语句条件判断语句if()…else…
多分支选择语句switch()…case循环语句
循环次数控制语句for()
先判断后执行循环控制语句while()
先执行后判断循环控制语句do…while()转移控制语句直接转移语句goto
终止语句break(用在循环结构、swicth)
跳转语句continue(仅用在循环结构)
返回语句return流程控制语句C语言60分攻略二、C语言的程序结构与相关语句程序的三种基本结构:顺序结构选择结构
if()…else…switch()…case
循环结构
for(){…..;}while(){……;}
do{……;}while()C语言60分攻略选择结构单分支结构
if(a==b)printf(“yes”);双分支结构
if(a==b)printf(“yes”);elseprintf(“no”);多分支结构switch_case
不能写成a=bC语言60分攻略多分支选择语句switch(表达式)
{case常量表达式1:语句序列1;[break;] case常量表达式2:语句序列2;[break;] ……… case常量表达式n:语句序列n;[break;] [default:语句序列n+1;]}
根据“表达式”的值从上至下去寻找与表达式的值相匹配的“case常量表达式”,执行一个分支后,再执行下一个分支,直到break结束,然后执行switch结构后面的程序。找不到匹配的入口标号时,执行“语句序列n+1”,然后结束。顺序向下执行程序。C语言60分攻略main(){inta=1,b=1;switch(a){case1:switch(b){case0:printf(“$”);break;case1:printf(“#”);break;case2:printf(“*”);}case2:printf(“^”);case3:printf(“@”);break;case4:printf(“&”);}}a=1case1:swtch(1)b=1printf#,break跳出switch(b)结构进入switch(a)结构case2:printf^case2:printf@break跳出switch(a)结构#^@C语言60分攻略for,while,do-while三种结构循环变量初始化,继续循环条件,改变循环变量是不可缺少的三个环节。for常用于循环次数已知的问题中。括号中的两个“;”不可省。while与do-while常用于循环次数未知的问题中。C语言60分攻略注意在for和while语句之后一般没有分号有分号表示循环体就是分号之前的内容(空循环体)while(i<100);
i++;for(i=0;i<100;i++);
printf("%d",i);if,swtich,while,for后面的语句只能是一句,因此,多句时别忘了{}。C语言60分攻略在while(e)和for(;e;)中的e是循环继续的条件,不能写其它条件!如果缺省,就是死循环!在if(e),while(e)和for(;e;)中e的值是逻辑值(0或非0)e一般是关系表达式,逻辑表达式或变量。if(x=1)if(x==1)main(){inti=1;do{i--;}while(i++);printf(“%d”,i--);}A)-1B)0C)1D)陷入死循环i=1i--,i=0while(i)终止循环i++,i=1输出i=1i--,i=0C语言60分攻略break,coutinuebreak只能用于switch和循环语句中,作用提前终止本层次switch和循环。coutinue是跳过循环体内尚未执行的语句,接着执行下次循环。C语言60分攻略常用的循环算法求素数、水仙花数、最小公倍数、最大公约数、分解多位数的数字,累加,累乘,分解质因数等。各种有规律的图案。while(m) { k=m%10;/*求最低位的数字*/ m=m/10;/*除去最低位的数字*/ }分解多位数的数字C语言60分攻略判断素数main(){inti,x,flag=0;scanf(“%d”,&x);for(i=2;i<x;i++)if(x%i==0){flag=1,break;}if(flag)printf(“%disaprime”,x);elseprintf(“%dis’taprime”,x);}C语言60分攻略求阶乘x!longfacto(intx){longy;for(y=1;x>0;--x)y*=x;return(y);}main(){longy;
for(
y=1;x>0;--x)y*=x;printf(“%ld”,y);}main(){intm,n;longcmn,facto();scanf("%d%d",&m,&n);cmn=facto(m)/(facto(n)*facto(m-n));printf("%ld\n",cmn);}求C(m,n)=m!/(n!*(m-n)!)C语言60分攻略数组的定义类型标识符数组名[常量表达式]错误的定义是:或intn;intn=10;scanf("%d",&n);inta[n];inta[n];
定义inta[5]时,a[0],a[1]…..=?随机数!只有inta[5]={3}后,后面几项自动赋0三数组C语言60分攻略数组的初始化
合法:inta[]={1,2,3,4,5};inti[][3]={1,2,3,4,5,6};
inta[5]={1,2,3};chara[4]=“boy”chara[3]={‘b’,’o’,’y’}不合法:inta[5]={,2,,4,5};inti[2][]={1,2,3,4,5,6};
inta[5]={};chara[4]={boy}C语言60分攻略用数组元素下标法访问数组元素。#include<stdio.h>voidmain(){inta[5]={1,3,5,7,9},i,*p;for(i=0;i<5;i++)printf("%d",a[i]);printf("\n");
从0开始或i<=4C语言60分攻略写程序框架(用函数)函数说明语句;mian(){定义变量;
输入数组;
调函数处理数组;
输出结果;}函数首部{定义函数内部变量;
处理数组;[返回](非void用);}C语言60分攻略用函数实现数组操作数值数组voidinv(intx[],intn);main(){inti,j,a[10];for(i=0;i<10;i++)
scanf(“%d”,a[i]);inv(a,10);for(i=0;i<M;i++)
printf(“%d”,a[i]);}字符数组voidinv(charx[])main(){inti,j;chara[50];gets(a);inv(a);puts(a);}多一个参数,表示元素个数可以整体输入,输出必须单个输入,输出C语言60分攻略数组的操作往往用循环结构.数值数组inta[10];for(i=0;i<10;i++)字符数组chara[50];for(i=0;a[i]!=‘\0’;i++)数值数组倒序for(i=0,j=M;i<j;i++,i--)
交换a[i],a[j]字符数组倒序for(i=0,j=strlen(a);i<j;i++,i--)
交换a[i],a[j]C语言60分攻略数值数组voidinv(intx[],intm){inti,j,k;j=m;for(i=0;i<j;i++,i--){k=x[i];x[i]=x[j];x[j]=k;}}字符数组voidinv(intx[]){inti,j,k;j=strlen(x);for(i=0;i<j;i++,i--){k=x[i];x[i]=x[j];x[j]=k;}}C语言60分攻略main(){inti,j,s=0,a[3][3];for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j||i+j==2)s+=a[i][j];printf("s=%d\n",s);}主对角线i==j副对角线i+j==2C语言60分攻略累加(积)#defineM10main(){inti,a[M],s=0;for(i=0;i<M;i++)scanf(“%d”,&a[i]);for(i=0;i<M;i++)
s+=a[i];printf(“s=%d”,s);}#defineM10main(){inti,a[M]
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教 八年级 语文 下册 第4单元《15.应有格物致知精神 第2课时》课件
- 2025 网络基础之网络监控系统的数据分析与可视化课件
- 2026年装饰公司入股合同(1篇)
- 眼霜化妆品生产项目可行性研究报告
- 2026年及未来5年市场数据中国旅游酒店行业市场深度分析及投资战略规划研究报告
- 信息技术信息系统在城市植物园植物养护与科普教育信息管理中的应用课件
- 2025 高中信息技术数据与计算之数据安全的多方计算隐私保护课件
- 洗衣机维修培训【课件文档】
- 2026年牛脂作为生物柴油原料市场格局分析
- 2026年氯己定浸渍敷料与半透膜聚氨酯敷料7天更换规范
- 5.1人民代表大会制度 课件(23张幻灯片)+内嵌视频 道德与法治统编版八年级下册
- 动火作业与受限空间安全管理标准
- 2026年当辅警笔试题库及一套完整答案
- 北京市东城区2025-2026学年高二上学期期末考试化学试卷(含答案)
- 国家基层糖尿病防治管理指南(2025版)
- 牛肝菌介绍教学课件
- 2025年山东省委党校在职研究生招生考试(政治理论)历年参考题库含答案详解(5卷)
- XB/T 405-2016铈铁合金
- GB/T 9966.16-2021天然石材试验方法第16部分:线性热膨胀系数的测定
- GB/T 3733.2-1983卡套式端直通接头体
- GA/T 1133-2014基于视频图像的车辆行驶速度技术鉴定
评论
0/150
提交评论