第一篇:pascal编程基础练习题
pascal编程基础练习题
一、不定项选择和填空题
1、下列关于程序语言的叙述,不正确的是()
A、编写机器代码不比编写汇编代码容易
B、高级语言需要编译成目标代码或通过解释器解释后才能被CPU执行
C、同样一段高级语言程序通过不同的编译器可能产生不同的可执行程序
D、汇编代码可被CPU直接运行
E、不同的高级语言语法略有不同
2、下列哪一种程序设计语言是解释执行的()
A、Pascal
B、GWBASIC
C、C++
D、FORTRAN 3、解释程序的功能是()
A、将高级语言程序转换为目标程序
B、将汇编语言程序转换为目标程序
C、解释执行高级语言程序
D、解释执行汇编语言程序
4、下列中没有语法错误的PASCAL程序首都是()
A、PROGRAM A1;
B、PROGRAM A1(0utPut)
C、PROGRAM(Input,OutPut);
D、PROGRAM A1(Input OutPut);5、结构化程序的结构由三种基本结构组成,下面哪个不属于这三种基本结构()
A、顺序结构
B、输入输出结构构
C、分支结构
D、循环结构
6、Pascal程序必须包括()
A、程序首部、说明部分、语句部分
B、程序首部、说明部分
C、说明部分、语句部分
D、程序首部、语句部分
7、标准Pascal程序说明部分的正确顺序是()
A、LABEL—CONST—VAR—TYPE
B、VAR—CONST—LABEL—TYPE
C、LABEL—CONST—TYPE—VAR
D、CONST—VAR—TYPE—LABEL 8、下面对Pascal程序组成结构的描述错误的是()
A、程序体可以为空
B、程序的注释部分只能写在程序中一条语句的最后
C、程序首都的参数部分可有可无
D、一个完整的PASCAL程序的主程序只能有一个
9、要编写并执行—个PASCAL程序,—般的步骤是()
A、①用编辑软件编写源程序
②用PASCAL的编译程序把源程序转换成目标程序
③用连接程序把目标程序转换为可执行程序
④运行可执行程序
B、①用编辑软件编写源程序
②修改和调试源程序
③用PASCAL的编译程序把源程序转换成可执行程序
④运行可执行程序
C、①用编辑软件编写源程序
②用连接程序把源程序转换成可执行程序
③试运行可执行程序
④修改后再运行可执行程序
D、①用编辑软件编写源程序
②用连接程序把源程序转换为目标程序
③用PASCAL的编译程序把目标程序转换为可执行程序
④运行可执行程序
10、PASCAL源程序中不止确的注释语句是()
A、用一对“{”和“}”括起来的字符串
B、用一对“/*”和“*/”括起来的字符串
C、用—对“(*”和“*)”括起来的字符串
D、A)或 B)11、以下正确的PASCAL实数是()
A、0.56E2.5B、2.56E
2C、.318ED、34.E5 E、EF、3E-G、.1
5H、15.12、每个Pascal程序的分程序中都必须包括()
A、变量说明、语句
B、语句
C、类型定义、变量说明、语句
D、常量说明、变量说明、语句 13、下列中合法的Pascal标识符是()
A、Char set
B、RECORD
C、Abs
D、π
E、A1B2C3 F、FOR
G、2ab
H、a[1] 14、设a、b、c为整型变量,并有以下程序段
Read(a);Readln(b,c);
Readln(c,b);Readln(a,b);
writeln(a,b,c)
若运行时输入:
3<ENTER>5 6<ENTER>8 9<ENTER>
其中<ENTER>表示回车符,则输出是()
A、12
3B、147
C、784 15、下列表达式中,其值为TRUE的是()
A、150>=150
B、100>150
C、Abs(-200)<>200
D、Succ('A') E、'ab'<'abc' F、Succ(False)=True G、0dd(35+1)=FaLse H、219<>219 16、有变量说明: VAR i1,i2:Integer; r1,r2:Real; b1,b2:Boolean; 设各变量均已赋值,下列中错误的赋值语句是() A、b2:=Ord(r1>r2) B、i2:=i1+r 1C、b1:=i1=i2 D、b1:=b1+b2 E、i2:=i1+i2 DIV i 1F、i1:=i1/i 2G、r2:=3/5*Sqr(r1+r2) H、r1:=r2+r1 17、下面一段程序是用())语言书写的 int funcl(int n){ int i,sum=0; for(i = 1;i<=n;i++) sum+= i*i; return sum;} A、FORTRAN B、PASCAL C、C D、PROLOG E、BASIC 18、设全集E={1,2,3,4,5},集合A={1,4},B={l,2, 5},C={2,4),则集合(A∩B)∪~C为() A、空集 B、{1} C、{3,5} D、{1,5} E、{1,3,5} 19、运算17 MOD 4的结果是() A、7 B、3C、1D、4 20、已知a、b、c、d、e、f、g均为整数变量,其值分别为2、4、6、8、10、12、14,若输出结果为 4 10 14 则输出语句应是() A、Write(a:3,b:3);write(c:3,d:3,e:3);Write(f:3,g:3) B、Writeln(a:3,b:3);Write(c:3,d:3,e:3);Writeln(f:3,g:3) C、Writeln(a:3,b:3);Writeln(c:3,d:3,e:3);Writeln;Writeln(f:3,g:3); D、Write(a:3,b:3);Writeln;Write(c:3);Writeln(f:3,g:3);Write(f:3,g:3)21、把整数7转换为字符‘7’的表达式是哪一个() A、Chr(7)-0rd('0') B、Chr(7-0rd(0)) C、Chr(7+0rd('0')) D、Chr(7+0rd(0))22、下列类型定义中,合法的是() A、TYPE a=10..10; B、TYPE b=0..Sqr(10); C、TYPE c=1.0..10.0; D、TYPE d=10..5;23、以下运算符中运算优先级最高的是() A、+ B、OR C、>= D、DIV 24、已知有如下说明: VAR a,b:Integer; c,d:Real; 下面赋值语句合法的是() A、c:=a+b B、a:=Trunc(c) C、a:=a+b/c D、b:=a div d 25、设有变量说明:VAR s:(C,G,A,J,K);则函数Succ(A)的取值是() A、G B、3C、J D、B 26、表达式True AND NOT Odd(-202)<(7-3<=4)的值是() A、True B、False C、0 D、1 27、下列常量说明中合法的是() A、CONST color=red..blue; B、CONST CONST=10*5;C、CONST x1:=3.9; D、CONST abc='abc';28、已知a、b、c、d是同类型简单变量,且都已有互不相同的值,执行下列语句 b:=a; a:=c; d:=a; d:=b; 后,其值相等的变量是() A、a,d B、a,c C、c,b D、b,d 29、下面合法的常量是() A、.2 5B、“RED” C、'%' D、3E-2.5 30、设a、b、c、d、e均为整型变量,且s= 13、b= 2、c= 10、d= 3、e=2,则表达式a-b*c DIV d MOD e的值是:() A、1 3B、-7 C、1 1D、0 信息学奥赛pascal程序设计复习题 一、读下面程序段,请写出程序运行结果。read(a,b)if a<=b then begin t:=a;a:=b;b:=t;end;else read(b,a)writeln(‘a+b=’,a+b);end.输入:4,2,3,1 输出: 二、编程题 1、编程将能被2、3整除,但被5除余1的最小自然数找出来。 2、已知某数是2,3,5的倍数,被11除余10,被13除余7,被17除余13。求满足条件的最小自然数。(14684) 3、在屏幕上读入一个四位数,将千百十个位上的数打印出来。 4、求满足下列条件的三位数。(1)它的各位数字不同且不为零。 (2)这个数等于所有由它的各个数字所组成的两位数的和。 5、在屏幕上读入十个整数,并打印出来,并计算他们的和和平均数。 6、将一个不大于7位的自然数X的各位数字分离,并按从高位往低位的顺序分行打印。 7、将一个不大于2147483647的自然数X的各位数字分离,并按从高位到低位的顺序分行打印出来。 8、输入30个数a1,a2,a3,„a30,计算x和y的值。 9、已知x=a1+a2+„+a30, y=a1+a2+„+a15-a16-a17„-a30.分别输入一个班30个学生的语文成绩,数学成绩,英语成绩。求出每位学生的总分和平均分。 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 【程序3】 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。 【程序7】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用while语句,条件为输入的字符不为'n'.【程序8】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。 【程序9】 题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数。 【程序10】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? 【程序11】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 【程序12】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 【程序13】 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: 【程序14】 题目:输入某年某月某日,判断这一天是这一年的第几天? 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。 【程序15】 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。 【程序16】 题目:输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 【程序17】 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 1.程序分析:采取逆向思维的方法,从后往前推断。 【程序18】 题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 【程序19】 题目:打印出如下图案(菱形) * *** ****** ******** ****** *** * 1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。 【程序20】 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 1.程序分析:请抓住分子与分母的变化规律。 【程序21】 题目:求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。 【程序22】 题目:利用递归方法求5!。 1.程序分析:递归公式:fn=fn_1*4! 【程序23】 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大? 1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。 【程序24】 题目:给一个不多于5位的正整数,要求: 一、求它是几位数,二、逆序打印出各位数字。 【程序25】 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 【程序26】 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。 1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。 【程序27】 题目:求100之内的素数 【程序28】 题目:对10个数进行排序 1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。 【程序29】 题目:求一个3*3矩阵对角线元素之和 1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。 【程序30】 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 1.程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。 【程序31】 题目:将一个数组逆序输出。 1.程序分析:用第一个与最后一个交换。 【程序32】 题目:取一个整数a从右端开始的4~7位。 程序分析:可以这样考虑: (1)先使a右移4位。 (2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4) (3)将上面二者进行&运算。 【程序33】 题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析:2 13 3 14 6 4 15 10 10 5 1 【程序34】 题目:输入3个数a,b,c,按大小顺序输出。 1.程序分析:利用指针方法。 【程序35】 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 【程序36】 题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 【程序37】 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 【程序38】 题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 【程序39】 题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数) 【程序40】 题目:字符串排序。 【程序41】 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子? 【程序42】 题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。 【程序43】 题目:求0—7所能组成的奇数个数。 【程序44】 题目:一个偶数总能表示为两个素数之和。 【程序45】 题目:判断一个素数能被几个9整除 【程序46】 题目:两个字符串连接程序 【程序47】 题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。 【程序48】 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 【程序49】 题目:计算字符串中子串出现的次数 【程序50】 题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件“stud”中。 《Android编程初级》教学大纲 2013-11-21修订版 一、课程教学目标:(一)知识目标 本课程要求学生熟练使用LinearLayout线性布局及RelativeLayout相对布局完成UI界面设计,灵活运用Android程序设计中的四大组件Activity,Service,BroadcastReceiver,ContentProvider;并深刻理解连接四大组件的信使---Intent用法。 在本门课程设计了多个完整应用案例,分解为18个业务模块,涵盖67项知识点以及由这些知识点衍生或组合的题目,通过本门课程的学生,让同学们能够熟练应用Android开发工具包,为后续课程提供坚实的基础。(二)能力目标 通过AndroidAPI加强学生对android编程的运用能力;通过完整项目案例UI框架搭建,提高学生对android四大组件及常用控件的理解能力;对于复杂问题要借助ppt动态效果加以分析讲解,帮助学生理解和记忆。 在学习过程中转换角色让学生真正的成为学习主人,通过启发、点拨、设疑及解惑,激发学生的思维能力和创造能力;通过辅助大量的实战练习,锻炼学生的思考能力和动手的熟练程度。通过学习小组讨论、交流的过程,能真正做到提高学生的沟通表达能力。(三)素质目标 本门课程主要培养学生学习Android核心SDK编程能力,建立有效的学习方法,强化练习,促使学生燃烧激情,锐意进取,最终达成学生内在、外在与行为素养价值的全面提升。 采取立体监督学生记笔记,加注释,写总结,引导学生提高自学能力,对新技术有学习、钻研精神,有较强的实践能力。具有认真负责、严谨细致的工作态度和工作作风,具备良好的团队协作和沟通交流能力。具备分析综合决策能力,资源合理整合能力,环境适应能力,可持续发展能力,知识迁移能力。 二、课程教学内容(体现核心知识点及重难点): (一)教学内容: 第1单元 Android开课介绍(4课时) 1.1 介绍3G专业与前景 1.2 Android基本概念 1.2.1 Android简介 1.2.2 Android系统构架 1.3 1.4 讲解Android手机系统功能常用设置 Android常用软件介绍 第2单元 Android开发环境的搭建(4课时) 2.1讲解如何搭建Android开发环境 2.1.1 安装JDK和配置Java开发环境 2.1.2 安装Eclipse 2.1.3 SDK和ADT的安装和配置 2.2 Android项目目录结构分析 2.3 Android模拟器的使用以及常用adb命令 2.4开发第一个项目HelloWord 第3单元 Activity入门指南(4课时)[重点] 3.1 理解Activity 3.2 Activity的生命周期 3.2.1 讲解Activity生命周期的七个方法 3.2.2 讲解Activity生命周期的四种状态 3.3 消息模式Toast.makeText用法 3.4 Android Logcat使用 第4单元 用户界面View(一)(6课时)4.1 常用Layout介绍 4.1.1 LinearLayout线性布局用法 [重点] 4.1.2 RelativeLayout相对布局用法 [重点] 4.1.3 FrameLayout帧布局用法 4.1.4 TableLayout表格布局用法 4.1.5 AbsoluteLayout相对布局用法 4.2 多种布局Layout混合使用 第5单元 用户界面View(二)(4课时)5.1 常用组件介绍 5.1.1 Button按钮 5.1.2 TextView文本框 5.1.3 EditText可编辑文本框 5.1.4 ImageView图片框 5.1.5 ImageButton图片按钮 5.1.6 CheckBox复选框 5.1.7 RadioGroup单选框 5.2完成基于android计算器应用(作业)第6单元 用户界面View(三)(4课时)6.1 Spinner下拉列表 6.2 AutoCompleteTextView自动完成文本框 6.3 DatePicker日期选择控件 6.4 TimePicker时间选择控件 第7单元 用户界面View(四)(4课时)7.1 进度条组件介绍(2课时)7.1.1 ProgressBar进度条 7.1.2 SeekBar滑动条 7.1.3 RatingBar评分条 7.2 ListView列表(常见Adapter)(2课时)[重点] 第8单元 用户界面View(五)(4课时) 8.1 ExpandableListView 手风琴效果ListView(2课时) 8.2 TextSwitcher 文本切换器以及ImageSwitcher图片切换器(2课时)第9单元 用户界面View(六)(4课时) 9.1 Gallery画廊组件(1课时)9.2 GridView网格组件(1课时)9.3 SlidingDrawer 抽屉组件(2课时)第10单元 用户界面View(七) 10.1 菜单 Menu 10.1.1 选项菜单 Option Menu 10.1.2 上下文菜单 ContextMenu 10.1.3 子菜单 SubMenu 10.2 对话框 Dialog 10.2.1 Dialog介绍 10.2.2 AlertDialog的基本使用 10.2.3 自定义对话框CustomDialog 第11单元 用户界面View(八) (4学时) (4学时) 11.1 PopWindow 实现类似菜单效果 11.1 PopWindow 实现类似对话框效果 第12单元 标签页的实现 TabHost TabActivity(2课时)12.1 TabHost组件应用 12.1.1 Tabhost的子组件TabWidget和FrameLayout 12.1.2 Tabhost将标签放到界面底部 12.1.3 Tabhost的onTabChanged事件 12.1.4 标签页内容是另一个Activity时的用法 12.2 通过TabActivity实现标签页 第13单元 Android组件之间的信使Intent(4课时)[重点] 13.1 Intent对象及其属性 13.1.1 Intent的ComponentName属性 13.1.2 Intent的Action属性 13.1.3 Intent的Data属性 13.1.4 Intent的Category属性 13.1.5 Intent的Extras属性 13.2 系统标准Activity Action的应用 13.2.1 和打电话相关的标准Activity Action应用 13.2.2 访问浏览器和地图 13.3 Intent的实现策略 13.3.1 显式Intent 13.3.2 隐式Intent 第14单元 Android Service组件(4课时)[重点] 14.1 Service的概念 14.2 Service的生命周期 14.3 Service的用法 14.3.1 启动和停止Service 14.3.2 绑定一个已经存在的Service 第15单元 AIDL和远程Service调用(4课时)15.1 AIDL服务介绍 15.2 编写AIDL远程服务 15.3 AIDL和远程Service调用 第16单元 BroadcastReceiver的使用(4课时)[重点] 16.1 BroadcastReceiver简介 16.2 BroadcastReceiver接收系统自带的广播 16.3 自定义广播 第17单元 Android Notification的使用入门(2课时)17.1 通知Notification 通知管理器NotificationManager 第18单元Android数据存储之SharedPreferences 和File(4课时) 重点] 17.2 [ 18.1 数据存储之SharedPreferences 18.1.1使用 SharedPreferences保存数据 18.1.2使用 SharedPreferences读取数据 18.2 PreferenceActivity实现设置界面 18.3 数据存储之File 18.3.1 文件的保存与读取 18.3.2 文件的操作模式 18.3.3文件在SDCard的读写 第19单元 总复习(4课时)每周六阶段 复习2课时(6课时) 三、课程考核要求: 【目的要求】 【第一单元】 1.了解Android系统构架 【第二单元】 2.掌握如何搭建Android开发环境 3.掌握Android项目目录结构 4.掌握模拟器的使用以及常用adb命令 【第三单元】 5.掌握Activity的生命周期 6.掌握消息模式Toast.makeText用法 7.掌握Android Logcat使用 【第四单元】 8.掌握LinearLayout线性布局 9.灵活运用RelativeLayout相对布局 10.掌握TableLayout表格布局 11.掌握FrameLayout相对布局 12.了解AbsoluteLayout相对布局 【第五单元】 13.掌握Button按钮的用法 14.掌握TextView文本框用法 15.掌握EditText文本编辑框用法 16.掌握ImageView图片框用法 17.掌握ImageButton图片按钮的用法 18.掌握CheckBox复选框组件用法 19.了解RadioGroup单选框组件用法 【第六单元】 20.掌握Spinner下拉列表用法 21.掌握AutoCompleteTextView自动完成文本框用法 22.了解DatePicker日期选择控件用法 23.了解TimePicker时间选择控件用法 【第七单元】 24.掌握ProgressBar进度条用法 25.掌握SeekBar拖动条用法 26.了解RatingBar评分条用法 27.灵活运用ListView列表 【第八单元】 28.掌握ExpandableListView 手风琴效果ListView 29.掌握TextSwitcher 文本切换器以及ImageSwitcher图片切换器 【第九单元】 30.掌握Gallery画廊组件用法 31.灵活运用GridView网格组件 32.掌握SlidingDrawer抽屉组件 【第十单元】 33.掌握选项菜单Option Menu用法 34.掌握上下文菜单Context Menu用法 35.了解子菜单SubMenu用法 36.掌握AlertDialog对话框的基本用法 37.了解自定义对话框CustomDialog 【第十一单元】 38.掌握PopWindow 实现类似菜单效果 39.掌握PopWindow 实现类似对话框效果 【第十二单元】 40.了解tabhost组件结构 41.掌握tabhost的初始化过程 42.掌握如何使用tabhost标签切换事件 43.掌握如何将标签置于组件底部 44.掌握如何添加Activity到TabHost中 45.掌握如何通过TabActivity来实现标签页 【第十三单元】 46.掌握Intent对象及属性 47.掌握通过Action调用系统应用 48.掌握显式Intent用法 49.了解隐式Intent用法 【第十四单元】 50.了解Service的概念 51.掌握Service的生命周期 52.掌握如何启动和停止Service 53.掌握如何绑定一个已经存在的Service 【第十五单元】: 54.了解AIDL远程服务应用场景 55.掌握如何编写简单的AIDL远程服务 56.灵活运用AIDL远程Service方法调用 【第十六单元】: 57.掌握BroadcastReceiver组件 58.掌握如何接收系统自带的广播 59.灵活运用自定义广播 【第十七单元】: 60.掌握通知Notification用法 61.掌握通知管理器NotificationManager用法 【第十八单元】: 62.掌握如何使用SharedPreferences保存数据 63.掌握如何使用SharedPreferences读取数据 64.掌握如何通过PreferenceActivity实现设置界面 65.掌握文件的保存与读取 66.了解文件的操作模式 67.掌握SDcard文件的读写 四、推荐教材与主要参考科目: 1.《Android/Ophone开发完全讲义》李宁中国水利水电出版社 2.《Android应用开发详解》 郭宏志 电子工业出版社 一、常量 数字常量 i.普通数字:1,35,2.7 ii.指数形式:2.45e-2等价于2.45*10-2 注意e大小写皆可,e前面的数字不能省,就算是1也不能省,后面的数字一定要是整数 iii.长整型,单精度浮点型:3235L,32.5F 分别表示3235是长整型数据,32.5是单精度浮点型左,若不写上L,F则表示3235是整型,32.5是双精度浮点型,L,F大小写皆可 字符常量 i.普通字符常量:用单引号把一个字符括起来,如‟A‟,‟@‟ ii.转义字符常量:一对单引号括起来并以“”开头的字符序列,如‟n‟(回车)、‟123‟(8进制123对应的字符), ‟x23‟(16进制23对应的字符) 字符串常量 用一对双引号把一个字符序列括起来,如“ABCef”,系统存放字符串常量,每个字符分配一个字节,各字符所占字节紧邻,并且字符串末尾会给再开一个字节里面放一个’ ’做为结束标志。 符号常量 定义格式 #define 符号常量名 符号常量值,如#define N 20则定义了符号常量N,其值为20,注意符号常量名和符号常量值之间是用空格隔开,而不是写上=号,#define和符号常量名之间也有空格的。 题目:P7—1,5,6,7,9,10 二、标识符 命名规则 以数字,字母,下划线这三类字符组成,但只能以字母或下划线开头,而不能也数字开头,另外不能将关键字做为标识符。32个关键字表在P365附录B 变量名,函数名,符号常量名全都是标识符 题目:P7—2,3,4 三、变量 变量的定义格式 类型名 变量名;如 int a;定义了一个整型常量a。变量名是由人类随便定义的,符合命名规则的前提下,爱写啥就写啥。所以什么flag,cc,y1或者函数名fun,find等全部是自定的用来做为名字而已,没有更特别的意义。 类型名 int 整型,long 长整型: 用于存放整数,只是数值范围不同 float 单精度浮点型 double 双精度浮点型:用于存放实数,数值范围,精度不同 char字符型:用于存放字符 变量赋值,初始化 int a=3;定义的同时初始化 a=6*9;定义后在程序中进行赋值 变量的值 只有在赋值操作时才会被改变,即将其放在等号左边时才会改变它的值,或自增自减操作:a=5,a++,a--,像a+3并未改变a的值,只是使用了a的值而已. 自增自减运算 变量++,++变量,变量--,--变量 使变量的值自增1或自减1 等价于 变量=变量+1 变量=变量-1 ++,--放于变量前后效果的区别: 当自增自减运算做为表达式的一部分时,++,--放在变量前面是先自增自减再使用变量的值,放在变量后面则是先使用变量的值,再自增自减。如x=3;printf(“%d”,++x);则相当于执行了++x;printf(“%d”,x);这样的操作所以打印出4 再如x=3;printf(“%d”,x++);则相当于执行了printf(“%d”,x);x++;这样的操作,则打印出3,当然最后x的值还是4。 四、表达式 运算符和运算对象 一个运算符都有若干个运算对象,如 + 必然要跟两个运算对象才能进行加法运算:3+5。C语言里称需要跟n个运算对象的运算符为n元运算符。一元运算符有:!,(类型名)二元运算符有:+,-,*,/,%(求余), =,+=,-=,*=,/=,%=,< , > , <=, >=, = =(等于),!=(不等于),&&(且), ||(或)多元运算符有:, 运算符的优先级和结合性 i.优先级:同一个运算对象左右两边若同时有两个运算符,则这两个运算符优先级高的先进行运算。 ii.结合性:若同一个运算对象左右两边的两个运算符优先级相同,则根据结合性判断先进行哪个运算,自左自右结合性的先算左边的运算符,自右自左的先算右边的运算符。 iii.各运算符的优先级和结合性见P365附录C 强制类型转换 格式:(类型名)表达式。将后跟的表达式的值的数据类型转换为与圆括号内的类型名一致的类型。注意类型名一定要用()括起来。 算术表达式 i.算术运算符:+,-,*,/,%(求余)ii.由算术运算符加上运算对象构成算术表达式,如3+3*6-9/2 iii.值:跟我们小学时学的一样,就是表达式的计算结果 iv.整数除以整数结果取整数部分,故1/3得到的值是0 v.5%3 结果为2,想想小学除法,求余得到的是余数不是商。 赋值表达式 i.赋值运算符:=,+=,-=,*=,/=,%= ii.赋值表达式:变量=表达式,如x=3+6,x+=6-9,x+=x*=3+4 注意等号左边只能是变量 iii.复合赋值运算符的运算:以/=为例:x/=表达式 等价于 x=x/(表达式)iv.值:=号左边的变量最终的值 关系表达式 i.关系运算符:< , > , <=, >=, = =(等于),!=(不等于)ii.由关系运算符加上运算对象构成关系表达式,如3>=4, 2==a iii.值:满足相应运算符所指定的关系的值为1,否则为0 逻辑表达式 i.逻辑运算符:&&(且), ||(或),!(非)ii.由逻辑运算符加上运算对象构成逻辑表达式,如3&&4, x||!y iii.值:满足相应运算符所指定的关系的值为1,否则为0 iv.进行 ||或 运算时,若||左边的表达式值为1,则不再对右边的表达式v.进行运算。进行 &&且 运算时,若&&左边的表达式值为0,则不再对右边的表达式进行运算。 逗号表达式 i.逗号运算符:,ii.用逗号将各种表达式连续起来构成逗号表达式,如3+4,a=9,8*a iii.值:组成逗号表达式的各个表达式中的最后一个的值,如上例为8*a 题目:P7—11~17 P8—18~33 五、输入输出函数 scanf(“格式控制串”,变量地址表列);如scanf(“%d%c%d”,&a,&ch,&b); scanf(“%4f”,&x);注意: i.格式控制串可控制截取用户输入的前几个字符给变量,但不能控制输入几位小数给变量,如不能写成scanf(“%4.2f”,&x);ii.第二个参数给的是地址,即要么是&+变量名或数组元素名的形式,要么就是一个数组名或指针变量名,如int *p,a;p=&a;scanf(“%d”,p);iii.考试时注意看题目给你写好的scanf的格式 1.若其格式控制串内各格式符用“,”隔开如scanf(“%d,%c,%d”,&a,&ch,&b);那输入时也要用逗号隔开,如此例输入时应:3,+,5 2.若是这种格式scanf(“%d %d”,&a,&b);则输入时应:3 5;3.若是这种格式scanf(“%d%c%d”,&a,&ch,&b);则输入时应3+5,若写成3 + 5则a=3,ch=‘ ’(空格),b=任意值 (自己上机运行看看结果) printf(“格式控制串”,输出项表列);如float x=7.5;printf(“%8.2f”,x);此处的意思是将x打印出来,且占8列,保留两位小数。自己上机运行看看效果。 常用格式符汇总: i.%d:输入输出整型数据,%ld:输入输出长整型数据 ii.%c:输入输出字符型数据 iii.%f:输出单(双)精度浮点型数据,输入单精度型数据。 %lf:输入双精度型数据 iv.%s:输入输出一个字符串,用printf输出字符串时,输出项书写时可 为字符串常量,或字符数组名。如printf(“%s”,”hello”);或char str[10]=”hello”;printf(“%s”,str);v.%u:输入输出无符号整型,%o:输入输出八进制数,%x:输入输出十六进制数 getchar();函数调用后返回用户输入的一个字符,故需再定义一个变量来存放这个字符,即使用时应 char c;c=getchar();意思就是接收用户输入的一个字符,并将其赋值给变量c。 putchar(字符常量或字符变量名); 如char c=‟A‟;putchar(c);或putchar(„A‟);都会向屏幕输出字符A。 六、C语言的语句 表达式语句:由表达式末尾加上分号构成。 函数调用语句:由函数调用表达式加上分号构成。空语句: ; 选择结构语句:if语句 switch语句 循环语句:for语句 while语句 do while语句 复合语句:用花括号{}将以上任意语句括起来构成一条复合语句。 七、C程序的基本结构 void main(){ 声明部分:用来定义变量和声明自定义函数的原型,需以“;”结尾,如int x; 执行语句部分:第六点里介绍的各种语句,如x=3;printf(“%d”,x);} main函数外可写自定义函数。如 int max(){ return 0;} 八、选择结构语句 if(表达式)语句1 else 语句2 如果if语句的圆括号内的表达式值为非0,则执行语句1,值为0则执行语句2。 i.表达式可为任意表达式,if语句执行的实质是判断表达式的值是否为0来决定执行语句1还是语句2。另外请在此处表达严重关切,不管是高ii.手还是菜鸟经常会把判断两个数相等的符号“==”写成了一个等号“=”成为了赋值运算,这样的写法不会引发编译错误,但结果会与原意大大不同,所以考试前请再三提醒自己。 语句1和语句2都只能是一个语句,若要跟多条语句,切记用一对{}括起来,构成复合语句;也不要随便在圆括号后加“;”,因“ ;”构成一条空语句,这会使后面跟的语句1不再属于if语句的组成部分。 iii.if语句的三种结构 1.单边: if(表达式)语句 2.双边:if(表达式)语句1 else 语句2 3.多层(重点掌握): if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 … else 语句n 条件运算符 表达式1? 表达式2 : 表达式3 若表达式1的值非0,则取表达式2的值做为整个表达式的值,否则取表达式3的值为整个表达式的值。如 3>4? 1:2 该表达式的值为2 switch语句 switch(表达式){ case 表达式1:语句 case 表达式2:语句 … case 表达式n:语句 default: 语句 } 语句执行过程:先计算表达式的值,然后判断该值与表达式1到表达式n中的哪个相等,若与表达式i的值相等,则执行表达式i后的所有语句,当遇到break;语句时结束整个switch语句的执行。表达式1到表达式n的值都不相等的情况下执行default后跟的语句。每个case后可跟多条语句。 九、循环结构 for循环语句 for(表达式1;表达式2;表达式3)循环体语句 语句执行过程: 1.计算表达式1 2.判断表达式2的值是否为0,若为0,语句执行结束,若不为0,进入步骤3 3.执行循环体语句(需注意的是循环体语句只能有一个语句,若要包含多个语句要用一对{}括起来,构成一条复合语句,此处也不要随便加上 “;”,因一个“;”可构成一条空语句,这会使得后面真正的循环体语句不属于for循环语句的部分)。进入步骤4 4.计算表达式3,然后重新进入步骤2 while循环语句 do while循环语句 i.while(表达式)循环体语句 执行过程: 1.判断表达式的值是否为非0,若是进入步骤2,否则结束语句执行。2.执行循环体语句,重新回到步骤1。ii.do 循环体语句 while(表达式); 执行过程: 1.执行循环体语句,进入步骤2 2.判断表达式的值是否为非0,若是重新回到步骤1,否则结束语句执行。 这里要注意的地方跟for语句一样,即循环体语句只能有一个语句,若要包含多个语句要用一对{}括起来,构成一条复合语句,此处也不要随便加上 “;”,因一个“;”可构成一条空语句,这会使得后面真正的循环体语句不属于while循环语句的部分,另外do while循环的while(表达式)后是要加“;”的。 break语句:放在循环体内实现的功能是结束其所在的那层循环的执行。 十、数组 定义格式:数据类型 数组名[整型常量];如 int a[10];定义了一个整型数组,数组名为a,这个数组含有10个元素。 引用数组元素: 格式:数组名[下标] 切记下标值从0开始。下标可为常量,表达式,变量等,如int i=3; a[0]=5;a[3*2]=9; a[i]=7; 初始化:数据类型 数组名[整型常量]={数据表列};将数据表列的各个值依次赋值给数组的各个元素。如int a[5]={0,1,2,3,4};则数组a各元素a[0]到a[4]的值分别为0,1,2,3,4 遍历数组元素 数组定义后,我们不能对数组进行整体的操作,如int a[10];不能用a=3这样的操作将数组的各元素都赋值为3;而只能一个一个元素的进行赋值,如a[0]=3;a[1]=3;a[2]=3…a[9]=3; 当然此时我们就可以借助于一个for循环来控制下标的变化从而对数组的各个元素进行赋值 for(i=0;i<10;i++)a[i]=3; 当然这只是用for循环遍历数组各元素的最简单的例子,一般考试考的是找出数组元素的某种特性的极值,比如最大值,最小值,或对数组各元素进行排序,这时我们就可以使用for循环来遍历数组的各元素,然后在当前循环中得到一个元素再对其进行处理。如i=2时访问到的元素是a[2],你就可以问问它,你是不是最小值啊。 整型数组 int a[10];整型数组里的各个元素存放的是整数。a[3]=3; 字符型数组 char str[20];字符型数组里的各个元素存放的是字符。 str[3]=‟A‟; 十一、字符串函数 gets(字符数组名或字符指针变量); 如char str[10],* str2;str2=str;则gets(str);或gets(str2);都是接收用户输入的字符串如“ABC”存入到字符数组str中 puts(字符数组名或字符指针变量或字符串常量); 如char str[10]=”china”;char *str2;str=str2;则puts(str);或puts(str2);或 puts(“china”);都会在屏幕上打印出 china strlen(字符数组名或字符指针变量);字符串测长函数 char str[20]=”hello world!”; int len;len=strlen(str);得出的结果是len的值为12 strcat(字符串1的地址,字符串2的地址); 将字符串2的内容连接到字符串1的尾部。char str1[20]=”ABC”,str2[20]=”xyz”;strcat(str1,str2); 则程序运行的结果是str1内存放的字符串变为ABCxyz,当然str2存放的字符串还是xyz。 strcmp(字符串1的地址,字符串2的地址); 比较串1和串2哪个比较大。比较大小的依据是,两个字符串从左往右相应位置上第一个不相等的字符ASCII码值之差。char str1[20]=”ABCE”,str2[20]=”ABDE”;int i;i=strcmp(str1,str2);第一个不相等的字符为str1的‘C’和str2的‘D’,而二者相差-1,故-1做为strcmp函数执行的结果返回到被调用的位置,该位置位于赋值表达式内,故将其值赋值给i,即此时i的值就是-1. strcpy(字符串1的地址,字符串2的地址); 将字符串2的内容复制到字符串1内。char str1[20]=”ABC”,str2[20]=”xyz”;strcpy(str1,str2);此时str1的内容为”xyz”,当然str2的内容没变 strcpy(str1,”uvw”);此时str1的内容又变成了“uvw“。 十二、函数 函数定义 函数类型 函数名(形式参数列表){ 内部变量定义和声明部分 执行语句 } 如: int max(int x , int y){ int z; z= x > y ? x : y; return(z);} 注意点: 1.函数类型是指返回值的类型,即要与return语句后跟的表达式的值的类型一致。若函数类型为void则说明该函数无返回值,即函数体里不能出现return 语句。2.形式参数列表里定义的变量要记得给它们指定类型,而且如果同时要定义多个,应在每个前面都分别指定类型名,而不能写成int x,y;3.函数体里能写的语句跟main函数一样,在开头可定义所需要的变量,后面跟上一堆执行语句。 函数调用流程 以上面的函数为例,在main函数进行调用: void main(){ int a,b,c; scanf(“%d%d”,&a,&b);printf(“%d”,max(a,b));或 c=max(a,b);printf(“%d”,c)以上两种方法都会在屏幕中打印出a,b间的较大值。 调用函数的格式 函数名(实际参数列表);调用的时候像什么函数类型,形式参数的类型就不要加上去了。max(a,b)中max就是函数名,写上变量名a,b是实际参数列表,执行这个调用语句时,会先把a,b的值给相应位置的形式参数即执行了x=a,y=b这样的操作,然后开始执行max函数的函数体的语句。当max函数体里执行到一个return语句时,则max函数结束执行,将return后的表达式的值返回给main函数调用max函数的那个位置,即若上面a=3,b=5则max(a,b)return后的表达式的值应该是5也就是说执行完max后把5返回到调用max的位置可看成printf(“%d”,5);或另一种解法的c=5。} 十三、指针 指针变量的声明: 类型名 * 指针变量名; 通过指针变量访问它所指向的普通变量的值 先将普通变量的地址赋值给指针变量,再通过指针运算符* 得到普通变量的值。int *p,x,y;x=3;p=&x;则printf(“%d”,*p);会打印出3即x的值 y=*p;则y的值变为3 *p=5;则x的值变为5 指针变量加上(减去)一个位移的效果 若指针变量存入的是数组元素的地址,则其加一减一得到的是那个数组元素下一个或前一个元素的地址。int a[10];p=&a[3];*p得到的是a[3]的值。 若p++;此时p存放的是a[4]的地址&a[4];*p得到的就是a[4]的值。或p--;此时p存放的是a[2]的地址&a[2],*p得到的就是a[2]的值。 行指针 i.主要是对于二维数组来说的,二维数组每行都有自己的地址,第0行地址用 数组名 表示,第i行地址为 数组名+i;而想要得到二维数组里一个元素的地址,必需先得到其所在行的地址,然后再由那个地址得到元素的地址,比如说 int a[3][4];定义了一个二维数组,该二维数组第0行的地址为a,第1行的地址为a+1,第2行的地址为a+2,想从行的地址得到元素的地址,需在行地址前加上指针运算符“*”,即*a就是第0行首个元素的地址即a[0][0]的地址,而a[0][2]的地址就是在a[0][0]的地址基础上加上位移量2,即*a+2,然后想得到a[0][2]这个元素的值呢就再加上一个指针运算符“*”,即*(*a+2),类似地,想得到a[2][2]这个元素的值呢就是*(*(a+2)+2)ii.定义行指针变量: 类型名 (*变量名)[数组长度]; 如int(*p)[4],a[3][4];p=a;此时就可把p当成a来用,用法同上所述。 判断是否合法访问数组元素:若是指针法访问,判断指针后跟的是否地址;若是下标法访问,判断下标有无越界。 函数指针:函数名即为函数的地址(指针) i.函数指针变量的定义: 类型名(*变量名)(形参列表);如 int(*p)();ii.赋值:指针变量=函数名;设有个函数其函数名为max,则要将该函数的地址给p的话只要执行如下语句即可 p = max; 指针数组:指针数组的数组元素都是指针变量,是用来存放变量的地址的,定义格式为 类型名 * 变量名[数组长度];如int * p[10]; 指向指针的指针:指针变量也是一种变量,故在内存中也有对应的一个地址,而要存放指针变量的地址,就要求助于用来存放指针变量的地址的指针变量,定义格式 类型名 ** 变量名;如 int *p1;int **p2;int a=3;可进行赋值p1=&a;p2=&p1;则a、*p1和 **p2的值都是3.十四、宏定义 无参宏定义 #define 标识符 值 定义后,出现所定义的标识符的地方都将以定义时指定的值来代替。 #define M 2+3 main(){ int x; x=M*M;则x的值为2+3*2+3=11若想得到的结果是(2+3)*(2+3)则定义时也写成这样 #define M(2+3)} 注意#define、标识符、值之间都要用空格隔开,且宏定义结尾不需加分号。 带参宏定义 #define 标识符(参数表)值 #define S(x,y)x*y main(){ int a=3,b=4,c=5,d=6; printf(“a*b=%dn”, S(a,b));此时会打印出 a*b=12 printf(“a+b*c+d=%dn” , S(a+b,c+d));此时会打印出a+b*c+d=29,带参宏定义执行时是将a+b这样一个表达式代替x,c+d这样一个表达式代替y,所以S(a+b,c+d)进行的是a+b*c+d的运算,而不是将a+b的值给x,c+d的值给y然后再做x*y,这点跟函数调用传递参数是不一样的。} 自定义类型名typedef:对已存在的类型名取一个外号。 i.基本格式:typedef 原类型名 新类型名;ii.typedef int INTEGER;则int a,b;等价于INTEGER a,b;iii.typedef int NUM[10];则 int a[10];等价于 NUM a;a即为一个有10个元素的数组的数组名。 iv.typedef int * INTEGER;则int *a,*b;等价于INTEGER a,b; 十五、结构体,共用体,枚举类型 结构体 i.结构体类型的定义及变量的定义 struct 结构体名 {类型 成员1; 类型 成员2; …… 类型 成员n; }变量名;如 struct student { char name[10];long num;int score[4];}st1;定义类型时同时定义变量 struct student st2;定义类型后,用类型名定义变量 还有一种 struct { char name[10];long num;int score[4];}st3;不给类型名,直接定义变量 ii.结构体变量所占字节数:各成员各占字节数之和,如以上st1,st2,st3的字节数皆为10+4+2*4=22 iii.结构体数组的定义及初始化 struct student a[3]={{ “zhang”,20030001,89,90,91,92},{“liu”,20030002,68,69,70,71},{“li”,20030003,57,58,59,60} } iv.结构体成员的访问 1.结构体变量名.成员名 如st1.name[2] 2.通过指针访问:struct student *st;st=&st1;(*st).num 或 st->num 共用体 i.共用体类型的定义及变量的定义 union 共用体名 { 类型 成员名1; … 类型 成员名n; }; 变量的定义与结构体类似,也有三种方法。union data { int i;char ch;float f;}d1;定义类型时同时定义变量 union data d2;定义类型后,用类型名定义变量 union { int i;char ch;float f;}d3;不给类型名,直接定义变量 ii.共用体变量所占字节数:各成员所占字节数的最大值,如上d1,d2,d3所占字节数皆为4.(单精度浮点型变量所占字节数最多为4).iii.共用体成员的访问 1.共用体变量名.成员名 如d1.f 2.通过指针访问:union student *d;d=&d1;(*d).num 或 d->num 枚举类型 i.枚举类型的定义: enum 枚举名{枚举元素名1,枚举元素名2,…,枚举元素名n}; ii.枚举元素的值: 默认值分别为0、1、…、n-1。枚举元素的值也可在定义时重指定,对于没有指定值的元素,按顺序加1 如enum weekday{sun=7,mon=1,tue,wend,thur,fri,sat};则sun值为7,mon值为1,tue值为2,wend值为3,thur值为4,fri值为5,sat值为6 十六、Turbo C的使用 菜单激活: F10 菜单切换:左右方向键在不同菜单间切换,上下方向键在同一个菜单不同选项间切换。 载入文件:两种方法:1.找到源文件所在位置,直接将其拉到Turbo C快捷方式上;2.F3 运行程序: ctrl+F9 看程序运行结果:alt+F5 进入编辑状态:菜单Edit 保存: F2 插入状态切换: Insert键 最近很多人都在问如何学习编程。我觉得学习编程最重要的是入门,如果你入门的时候有一个好的方法和思路,打下比较扎实的基础,对今后的编程工作是很有益处的。即使在学习新的编程语言也无所谓,因为它们有很多相通之处,可以相互借鉴。 我认为可以先学习一下pascal,这个语言比较严谨,适合初学者。pascal它被称为教学语言,结构严谨,不像C语言那么灵活,易于理解和学习。然后可以继续学习C语言,这个语言比较灵活。有了pascal的基础,在进行C语言编程就不会因为C语言的灵活而有问题。后面的就可以学习VC什么的了。 C语言的书推荐谭浩强的,比较好。 我当时学习pascal和C语言的时候是将书后的习题都做了一遍,感觉效果很好。 当然了,学习什么语言也要看你具体准备从事什么行业。例如你要进行嵌入式开发,C就是很好的选择,如果是Windows开发,那么VC就不错。还有数据库方面的开发、网络开发等等。不同的语言适合不同的方面。要看自己的选择的,呵呵。 还有很多人说自己的基础很差,甚至中学毕业什么的。其实这个并不重要,比较说英语,在计算机语言里所用到的单词量很少,而且都是常用词,经常使用就记住了。当然,如果你要看原文资料或者帮助的话,专业词汇比较多,不过在金山词霸的帮助下,经常看,也是没什么大的问题的。至于数学什么的,其实数学只是培养你一个逻辑思维能力,在初学编程的时候影响不是很大。况且,作为一个基础编程人员来说,上面还有系统分析师、项目经理,他们会把需求分析、概要设计和详细设计做好的,你只要按照文档写代码就OK了。不过,要上更上一步的话,其他基础知识就非常重要了,毕竟你不能写一辈子代码。 在你学习好C语言以后,个人建议好好学习一下数据结构和软件工程。这两门对你的水平提高都是很有帮助的。特别是软件工程,它能够使你按照科学的工程方法进行软件开发,对今后的发展很有好处。 只是一家之言,有不到之处,还望见谅!第二篇:Java基础编程题
第三篇:Android编程基础教学大纲
第四篇:编程入门基础知识点总结
第五篇:学习电脑编程需要什么基础