版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
常量变区运算符
单分支选择
程序设计基础
分支选择C
3抨结构-一函数定义
多分支选择函数<4函数调用
嵌套选择
概念&定义
while循环语句
/引用&运算
de...whiled环语句
指针与数组
指针行指甘
跳转语句C语言/指针数组
循环嵌套
指针与函数
[指向指针的指针
一维费组
-维数蛆一~~X
u0t组结构体(A共用体)类型定义
一二、字符数组丁结构体(&共用体)变量
字符率专组一-------'结构体&
文件&编注系统结构体数经
共用体
结构体指针
预处理文件链表
definetypedefindude打开&关闭定位谀写
思维导图1:C语言程序设计知识结构
第一课C语言程序设计基础
+道到常效
。斓好苜一不—0〉
八遗制常效修刑
mt(2字节》g厦示.一头)产/
Iona(4字节)+六选制*弦
9"丁J叱岭头))
float〈4字节〉j、实型’^辿卜、
——五)
二,林型舁二字符一;/
字符型char(1字节)-•卅.字^砂打y,
42nhqww.翔叫
■/'getcM)一
、C程序框架/"2,函数产0^^.
,、++-忸)♦•(iE。)"*取神)saeot单目运算一
/\库函数g二5…”*
/\/卜^»
«»»位移运算符-1
<。-一>卜乂有覆算将«双目於算符
**।>>位逻霸运*符-fMLM45.y\**丛—(呐皿
气,•苻V字符串处理函效]
/~二7Tl1南5g贝更“运算将J--a&«.].-班然
\\雌《皿<1?㈣瓣㈱
即(叫〉?:,三目运算将
/一»=♦=•=■/=%=&=*=F«=>>=It值度算身1\
在次支1'''设号运算与
'•题入g制蝉式.-'_jr力f用户自定—(详)
思维导图2:第一课C语言程序设计法础
本课主要知识点:C语言是一种结构化程序设计语言。三种基本结构:顺序、选择、
1.知识点:C程序基础循环。
A)例1:(2010-09-11)以下关于结构化程序设计的叙述中正确B)用C语言编写的源程序不能直接在计算机上运行
的是(C)
B5一个结构化程序必须同时由顺序、分支、循环三种结构组成C)通过编译得到的二进制目标程序需要连接才可以运行
C)结构化程序使用goto语句会很便捷
D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成
D)在C语言中,程序的模块化是利用函数实现的
E)由三种基本结构构成的程序只能解决小规模的问题的.exe文件
例2:(2011-03-26)计算机高级语言程序的运行方法有编译执行【解析】C程序开发过程:编辑一》(.c)编译一>(.obj)链接一)
可执行文件(.exe)
和解释执行两种,以下叙述中正确的是(A)
2.知识点:C语言程序的构成
A)C语言程序仅可以编译执行C程序是由函数构成的,一个C程序有且仅有一个main函数。一
个函数由两部分组成:函数的首部和函数体。函数体包括声明部分
B)C语言程序仅可以解释执行
和执行部分。一个C程序总是从main函数开始执行(即程序的入
OC语言程序既可以编译执行又可以解释执行口),由main函数结束,(即程序的出口)。
/\)例1:(2010-03-12)以下叙述正确的是(B)
D)以上说法都不对B)C语言程序是由过程和函数组成的
C)C语言函数可以嵌套调用,例如:fun(fun(x))
【解析】计算机不能直接理解高级语言,只能直接理解机器语言,
D>C语言函数不可以单独编译
所以必须要把高级语言翻译成机器语言,计算.机才能执行高级语
C语言中除了main函数,其他函数不可作为尊独文件形式存在
言编写的程序。翻译的方式有两种,一个是编译,一个是解释。C
例2:(2011-09-11)以下叙述中错误的是(C)
语言程序又可以编译。
A.C语言编写的函数源程序,其文件名后缀可以是C
例3:(2011-03-26)以下叙述中错误的是(D)B.C语言编写的函数都可以作为一个独立的源程序文件
A)C语言的可执行程序是由一系列机器指令构成的
C.C语言编写的每个函数都可以进行独立的编译并执行
D.一个C涪言程序只能有一个主函数B)若要保存带有多位小数的数据,应使用双精度类型
C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义
•3.知识点:标识符
结构体类型
命名规则:
D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型
①标识符中只能包含字母(a-z,A-Z),数字(0-9),下划线(_).
【解析】结构数据类型是根据已定义的一个或多个数据类型用构造
②第一个字符必须是字母或下划线。
的方法来定义的,一个结构类型的值可以分解成若干个“成员”或
*分类]类型说明符:int,float,double
都]①关键字(32个)I等“元素”,每个“成员”都是一个基本数据类型或又是一个构造类
](有固定含义,不可改变)型,C项正确。C语言没有逻辑类型,故D项惜误。
是I
L语句定义符:if,for,while等例2:(2011-03-26)定义无符号整数类为UInt,下面可以作
.(库函数的名字:printf,scanf等
小②预定义标识符
为类UInt实例化值的是(B)
口编译预处理命令名:include等
与(有特殊含义,可以改变)
A)-369B)36900.369D)整数集合
③用户自定义的标识符i格式合法,ii不能使用关键字,{1,2,3,4,5)
造见名知意【解析】无符号整数类型为只有正整数和0,所有选择B。
例1:(2010-03-13)以下C语言用户标识符中,不合法的是(D)•5.知识点:常量
A)_lB)AaBcC)a_bD)a-b•整型常量
4.知识点:数据类型十进制整常数:没有前缀,其数码为0-9。例如65535,-568
例1:(2010-03-16)以下关于C语言数据类型使用的叙述中错误八进制整常数:以0开头,其数码为0-7。例如015
的是(D)十六进制整常数:以0X或0、开头,其数码为0-9,A-F或a-f。
A)若要准确无误差的表示自然数,应使用整数类型例如0x2A
长整型数整型常数后缀为L或1。例如358000L故选A
•无符号数:整型常数后缀为U或u。例如158u字符常量:用单引号''括起来的一个字符。包括普通字符常量和
•实型常量的形式转义字符。
小数形式必须有小数点,小数点前后不能同时没有数字。普通字符常量:如‘a'、'A'、'1'。
指数形式:aEn(其中a表示十进制数,E除码标志,n阶码)。E转义字符:由一对单引号引起来的以、开头的若干字符的组合。如
前E后必须有数字,E后必为整数,可以带符号。例如2.1E-3.5E8、n'表示回车换行、表示反斜线符、表示单引号符、
例1:(2011-09-13)以下选项中关于C语言常量的叙述错误的是:表示双引号、'\ddd'表示八进制数、'\xhh'表示十六进制
(D)数。
A.所谓常量,是指在程序运行过程中,其值不能被改变的量例3:(2010-09-15)以下选项中能表示合法常量的是(C)
B.常量分为整型常量、实型常量、字符常量和字符串常量A)整数:1,200B)实数:L5E2.0C)字符斜杠:、\'
C.常量可分为数值型常量和非数值型常量D)字符串:“\007”
D.经常被费用的变量可定义成常量【解析】表示整常量不能用逗号分隔,A项错误:实型常用的指数
【解析】艰据常用的基本概念,则不难判断A.B.C均正确。
例1:(2009-04-13)以下选项中,能用作数据常量的是(D)形式E后必为整数,故B项错误:'\007'是转义字符,只能用单
A)oll5B)0118C)1.5el.5D)115L
引号括起来,不能用双引号或其他括号,故D项错误。例4:
【解析】八进制整常数以0开头,A项错误;八进制整常数的数码
(2010-03-26)以下选项中不能用作C程序合法常量的是(B)
味0-7,B项错误;实型常量的指数形式E后必为整数,故C项错
A)1,234B)'\123'0123D)"\x7G”
误;长整型数后缀为L或1,故D项正确。
【解析】A中的','在编译时会出错的,直接写成1234即可,B
例2:(2010-03-26)以下选项中可用作C程序合法实数的是(A)是一个三位八进制数代表的字符,C是一个数字常量,D是一个字
符串,其中\x7是•个•位十六进制数代表的字符,也即D中的字
A).leOB)3.0e0.2C)E9D)9.12E
符串是两个字符,如果sizeof的话是3,如果stCen的法是2。
【解析】实型指数表示方式“E前E后比有数,E后必须是整数”,•6.知识点:变量
•整型变量和实型变量【解析】在VC6平台上,int型占4个字节,double型占8个字节,
以考试标准故答案是Co
Viusal字符变量:一个字符变量只能存放一个字符。字符串不能存放在字
c++6.0为符变量中,只能用字符数组或指针存放字符串。
所占所占所占所占
例,说明各类型例1:(2009-09-22)有以下定义语句,编译时会出现编译错误的
位数字节数位次字节数
类型变量所是(C)
占的位数。A)chara='a':B)chara='\n';C)chara='aa';
类型D)chara-'\x2d';
short162unsigned324【解析】•个字符变量只能存放•个字符,A项字符变量存放的是
int普通字符常量;B.D项字符变量存放的转义字符;字符常量只能是
int324unsigned324单个字符,不能是字符串,'aa,不是单个字符,故C项错误。
long•7.知识点:ASCII码
long324float324•,0'的ASCII码值为48;的ASCII码值为65:的
unsigned162double648ASCII码值为97。
short•大写字母及小写字母的ASCII码值相差32。
例1:(2010-09-38)有以下程序例1:(2009-09-23)有以下程序
#include<stdio.h>#include<stdio.h>
main(0)main()
{ints,t,?\=100;doubleB=6;{charcl,c2;
s=sizeof(A);t=sizeof(B);cl='A*+'8'-,4';
printf(<;%d,%d\nM,s,t);c2='A>+'8'-'5';
)printf(u%c,%d\nM,cl,c2);
在VC6平台上编译运行,程序运行后的输出结果是(C))
A)2,4B)4,4C)4,8D)10,6已知字母A的ASCH码为65,程序运行后的输出结果是(A)
A)E,68B)D,69C)E,DD)输出无定值9.知识点:运算符的优先级
【解析】'A'的ASCII码值为65,'8'的ASCII码值为56,'4'级别由大到小:(逻辑)非》算(术运算符)〉关(系运算符)》(逻辑)
的ASCH型值为52,65+56-52=69,对应于字符'E'。'5'的ASCII及>(逻辑:或)条(件运算符)>赋(值运算符:
码值为53,65+56-53=68,对应于字符'D'。字符变量cl以%c格式•10.知识点:强制类型转换运算符
输出,即‘E'。字符变量c2以加格式输出,即68。故答案是A。•一般形式:(类型说明符)(表达式)
•8.知识点:进制转换功能:把表达式的运算结果强制转换成类型说明符所表示的类型
•十进制转换成二进制、八进制、十六进制:将十进制的数字除例1:(2099-04-06)表达式(int)((double)[5/2)+2.5)的值是4。
以2(8、16),得到的商数继续除以2,直到商为0,然后[解析](int)((double)(5/2)+2.5)-*(int)((double)2)+2.5)—
将各次相除所得的余数从后往前排列。(int)(2.000000+2.5)-*(int)(4.500000)T
•二进制、八进制、十六进制转换成十进制:将二(八、十六)例2:以下程序运行后的输出结果是()。
进制数的每一位数从高位到低位乘以2的n-1次耗,n为该
位所在的位数。mainO
二进制及八进制之间的转换:每个八进制数字转换成3位二进制{inta;
数字。
二进制及十六进制之间的转换:每个十六进制数字转换成1位二a=(int)((double)(3/2)+0.5+(int)1.99*2);
进制数字.
printf(飞d'n”,a);
例1:(2010-09)以下程序运行后的输出结果是2008。
#include<stdio.h>
mainO
答案:3
{inta=200,b=010;
printf("%d%d\n”,a,b):【解析】(3/2)=1,(double)(3/2)+0.5=1.5,(int)1.99*2=2,所
)以(double)(3/2)+0.5+(int)1.99*2=3.5,故a=30
【解析】人进制数010转换成十进制数为8,按“刷加”格式分别11.知识点:算术运算符:+、一、*、/、%
输出a、b,即2008。%:参及运算:的量均为整型。
/:当除号左右两边都是整数的时候,商也要是整数,如果不是整表达式的值。
数则舍弃小数部分。当参及运算量有一个为实型,则商为double例1:(2009-04-14)设有定义:intx=2:以下表达式中,值不为
型。6的是(D)
例1:(2011-09-14)若有定义语句:inta=10;doubleb=3.14;,A)x*=x+1B)x++,2*xC)x*=(l+x)
则表达式'A'+a+b值得类型是(C)D)2*x,x+=2
A.charB.intC.doubleD.float【解析】A项x=x*(x+l)=2*(2+D=6;B项x+4后,x的值为3,2*x
【解析】各种类型数据混合运算时,最终结果的类型可依据以的值为6,整个逗号表达式的值为6:C项x=x*(l+x)=2*3=6;D项
下转换规律:x=x+2=2+2=4,整个逗号表达式的值为4。故答案是D。
char->short->int->long->float->double13.知识点:自增自减运算符
例1:(2011-09-15)如有定义语句:intx=12,y=8,z;,在其后执++ii自加1后再参及运算
行语句z=0.9+x/y,则z的值为(B)i++i参及运算后再自加1
A.1.9B.1C.2D.2.4~ii自减1后再参及运算
【解析】x,y,z均为整型变星,因此x/y结果为1,即z-0.9+1-1.9,i—i参及运算后再自减1
z最终结戾为I++和--的运算对象只能为变量,不能是常量或表达式。
例1:(2010-09-14)有以下定义:inta;longb:doublex,y:例1:(2009-09-06)若有定义语句:inta=5;则表达式:a++的
则以下选项中正确的表达式是(A)值是5o
A)a%(int;(x-y)B)a=x!=y:C)(a*y)%b【解析】表达式a++的值是a未加1之前的值,即5。.
D)y=x+y=x
【解析】参及%运算的左右操作数均为整型,故A项正确,C项错当++或一及printf语句结合时,若++/—x的形式,则先自增/自
误。B项是赋值语句,不是表达式。赋值运算符左边必须是变量,而
减,然后输出;若x++/一的形式,则先输出x原值,在进行自增/
不是表达式,而D项中x+y=x,错误。
•12.知识点:逗号表达式自减操作。
一般形式:表达式1,表达式2……表达式n
例2:(2011-03-26)有以下程序
求值过程:自左向右依次求解,最后一个表达式的值为整个逗号
#include误。
main()例2:(2011-03-26)若有定义语句:inta=3,b=2,c=l:,以下选
{intx=OU;项中错误的赋值表达式是(A)
printf(*%d\n*»++x);A)a=(b=4)=3:B)a=b=c+i;C)a=(b=4)+c;
)D)a=l+(b=c=4);
程序迄行后的输出结果是(C)•【解析】赋值表达式的左边必须是变量不能是表达式。而答案
A中,(b=4)是一个赋值表达式。
A)12B)llC)1OD)9•复合赋ff!运算符和表达式
【解析】Oil是一个八进制的数,转为十进制则为1*8+1=9;++x+=、一=、*=、/=、%=><<=、>=、&=、N|=
是x先自滔1再参及其他运算,所以先x自增1为10再输出即为例2:(2010-09-16)表达式a+=a-=a=9的值是(D)
10,故选C。A)9B)-9018D)0
•14.知识点:赋值表达式【解析】赋值运算符的结合性是从右到左,a=9~a=a-9=0-
一般形式:变量名=表达式a=a+0=0+0=0。故答案是D©
赋值运算符左边必须是变量,而不是表达式,•15.知识点:位运算
例1:(2010-03-14)若有定义:doublea=22;inti=0,k=18;则•按位及运算&
不符合Ci吾言规定的赋值语句是(C)•规则:0&0=00&1=01&0=01&1=1
・按位或运算I
A)a=a++,i++:B)i=(a+k)<=(i+k):C)i=a%ll;
•规则:00=00|1=11|0=11|1=1
D)i=!a:•按位异或运算八
•规则:。△0=00Al=l1A0=l1A1=O
【解析】a为double型,参及%运第的操作数均为整型,故C项错
•求反运算、
•规则:2=1~1=0A)21B)ll06D)1
•左移运算《【解析】左移2位相当于该数乘以2、5«2相当于5乘以4等于
规则:把《〈左边的运算数的各一进位全部左移若干位,高位丢弃,20.20|1=21.故答案是A。
低位补0。左移一位相当于该数乘以2。左移n位相当于该数乘以•右移运算〉
2n0把》左边的运算数的各二进位全部右移若干位。高位补0,低位丢
例1:(2010-09-40)有以下程序弃。右移一位相当于该数除以2。右移n位相当于除以2n。
^include<stdio.h>例3:(2009-09-39)若有以下程序段
mainOintr=8:
{shortc=124;printf(u%d\nM,r»l):
c=c____D____:输出结果是(C)
printf(<;%d\nM,c);A)16B)8C)4D)2
)【解析】右移一位相当于该数除以2。8>>1相当于除以2,等于4,
若要使程序的运行结果为248,应在下划线处填入的是故答案是C。
A)»2B)|248O&0248D)«l16.知识点:关系运算符和表达式
【解析法移一位相当于该数乘以2,124A1相当于124乘以2,等例1:(2010-09-08)在C语言中,当表达式埔为0时表示逻辑值
于248。故答案是D。“假”,当表达式值为
例2:(2009-04-39)有以下程序非0时表示逻辑侑“真工
#include<stdio.h>例2:(2010-03-06)设x为ini型变量,请写出一个关系表达式
mainO(x%3==0)&&(x%7==0),用以判断x同时为3和7的倍数时,
{inta=5,b=l,t:关系表达式的值为真。
t=(a«2)b:•17.知识点:逻辑运算符和表达式
printf(“第d'n”,t);•逻辑运算符优先级从高到低:!、&&、I
•逻辑运算的序值表
程序运行言的输出结果是(A)aba&&ba||b!a
真真真真假(2)遇到控制字符,按照控制字符的规定输出,遇到非格式字符串
真假假真假按原样输出。
假真假真真例1;(2009-04-07)若变量x,y已定义为int类型且x的值为99,
假假假假真y的值为9,请将输出语句printf("x/y=%d”,x/y):补充完
进行逻辑演算时,若&&左边的值为0,则不杼对右边的运算对象进整,使其输出的计算结果形式为:x/y=Uo
行运算,整个表达式的值为0。例2:(2009-04-15)程序段:intx=12;double
例1:(2011-09-17)若有定义语句:intkl=10,k2=20;,执行表达y=3.141593;printf("%d%8.6fw,x,y):的输出结果是(A)
式(kl=kl〉k2)&&(k2=k2>kD后,kl和k2的值分别为(B)A)123.141593B)123.141593012,3.141593
A.0和1B.0和20C.10和1D.10和20D)123.1415930
【解析】kl〉k2为假,因此kl=kl>k2结果0,逻辑及左边表达式【解析】以%8.6f格式输出,即输出的总宽度为8,小数的位数为
为假,右力表达式不再处理,因此kl结果为0,k2不变,仍为206
例2:inta=2;则表达式(!a==l)&&(a++==2)的值为0,a的值为2。
【解析】!a为0,!a=l的值为。,&&左边时值为U,则不再对右知识点:格式输入函数scunfO
边的运算对象进行运算,所以a的值为2。(1)一般形式:scanf(“格式控制字符串”,地址列表);
若II左边的运算对象的值为1,则不再对右边的运算对象进行运(2)若格式控制字符串中有非格式字符串,则按原样输入。若格
算,整个表达式的值为1。式控制字符串中没有非格式字符作输入数据之间的间隔,则可用
例2:(2010-03-17)若a是数值类型,则逻辑表达式空格、Tab、回车作间隔。
(a==l)II[a!=l)的值是(A)例1:(2011-09-16)若有定义:inia,b;,通过语句
A)1B)002D)不知道a的值,不能scanf(“枇,d”,&a,&b);,能把整数3赋给变量a,5付给变量b的
确定输入数据是
【解析】a的值有两种情况:a等于1或a不等于I。故逻辑表达A.35B.3,5C.3;5D.35
式(a==D|(a!=l)的值为1。【解析】scanf格式字符串中两个%d之间带有非格式字符分号,运
18.知识点:格式输入函数printfO行时应原样输入。
(1)一般形式:printf(“格式控制字符串”,输出列表);例1:(2005-04-19)有以下程序
main()'name='和'num=',所以接受到的name值是后面的Lili,num
lintm,n,p;值为100U故选A。
scanf("n=%dn=%dp=%d",&m,&n,&p):(3)在输入字符数据时,若格式控制字符串中无非格式字符,则
prinlf(“%d%d%d\n”,m,n,p);认为所有输入的字符均为有效字符。空格会被当作字符赋值给变
}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,量。
P中的值为789,则正确的输入是(A)例3:(2009-04-23)有以下程序
A)m=123n=456p=789B)m=123n=456p=789#include<stdio.h>
C)m=123,n=456,p=789D)123456789mainO
【解析】scanf("m=%dn=%dp=%d",&m,&n,&p);格式控制字符串中{intal,a2;charcl,c2;
scanf(“%d%c%d%c",&al,&cl,&a2,&c2);
有非格式字符串,则按原样输入,故答案是A。printf(世d,%c,%d,%c",al,cl,a2,c2);
例2:(2011-03-26)有以下程序段}若想通过健盘输入,使得al的值为12,a2的值为34,cl的值为
字符a,c2的值为字符b,程序输出结果是:12,a,34,b则正确
charname[20]:的输入格式是(以下一代表空格,<CR>代表回车)
A)12a34b<CR>B)12_a_34_b<CR>C)12,a,34,b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临沂市沂南县2025-2026学年第二学期五年级语文第八单元测试卷(部编版含答案)
- 衡阳市衡阳县2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 忻州市偏关县2025-2026学年第二学期二年级语文第八单元测试卷部编版含答案
- 燃气输配场站运行工班组考核模拟考核试卷含答案
- 2026年工业大数据可视化技术与工具
- 果树栽培工岗后考核试卷含答案
- 唐山市新区2025-2026学年第二学期四年级语文第七单元测试卷(部编版含答案)
- 和田地区墨玉县2025-2026学年第二学期三年级语文第八单元测试卷(部编版含答案)
- 张家口市沽源县2025-2026学年第二学期五年级语文第八单元测试卷(部编版含答案)
- 咸阳市渭城区2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 知识产权标准体系
- 2025年川大mpa复试笔试真题及答案
- 状态监测中心建设方案
- (完整版)2026年劳动法实施细则全文
- 洒水车安全教育培训课件
- 武器装备相关课件
- 体育考研《运动生理学》王瑞元版备考复习题库(核心题)
- 表面工程复合电镀
- GB/T 8424.2-2001纺织品色牢度试验相对白度的仪器评定方法
- GB/T 16823.3-2010紧固件扭矩-夹紧力试验
- 劳务派遣服务方案
评论
0/150
提交评论