电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

软考程序设计和程序设计语言知识点辅导汇总

40页
  • 卖家[上传人]:jia****ihe
  • 文档编号:80367314
  • 上传时间:2019-02-19
  • 文档格式:DOCX
  • 文档大小:87.42KB
  • / 40 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、软考程序设计和程序设计语言知识点辅导汇总函数定义在C程序设计中,将完成指定功能的C代码定义成函数,变成逻辑上一个相对独立的程序单位。函数定义需要指明函数返回值的类型、函数名、函数的形式参数(常简称形参)和函数体(包括说明和定义及语句序列)。函数定义的一般形式为存储类型说明符 数据类型说明符 函数名(形式参数表)形式参数说明序列说明和定义部分执行语句序列存储类型说明符或省缺,或为static.省缺表示一个全局函数,static表示一个静态函数,只供同一源程序文件中的函数使用。数据类型说明符用来指定函数返回值类型,可以是基本数据类型、某种指针类型、结构类型等。但不可以是数组类型。特别当函数不返回结果时,可用void明确指明函数不返回值。数据类型说明符也可省缺,省缺被默认为返回int型值。函数名是一个标识符。形式参数表是用远号分隔的若干形式参数,用不同的标识符指明各形式参数的名。形式参数说明序列用来说明各形式参数的数据类型,相同数据类型的形式参数可以一起说明。现在编写C程序的习惯是形式参数说明序列直接放在形式参数表中,即在形式参数说明表中顺序列出各形式参数的数据类型和形式参数的名称。如是这样

      2、,一般形式的第一行全部内容称为函数头,也称为函数模型。特别情况,函数可能不设形式参数,也就没有形式参数表和形式参数说明序列。但函数名后的一对圆括号是不可以没有的。一对花括号括住的部分称为函数体,函数体包括类型说明、变量定义和函数的执行语句序列。在函数体内可以有return语句终止函数的执行。如函数有返回值类型,则return语句中一定要有表达式,作为函数调用的返回值。多级指针当指针变量pp所指的变量ip又是一种指针时,呷就是一种指向指针的指针,称指针变量如是一种多级指针。定义指向指针变量的指针变量的一般形式为数据类型 * *指针变量名;例如,int * *pp,*ip ,i ;ip=&i;pp=&ip;定义说明pp是指向指针的指针变量;它能指向的是这样一种指针对象,该指针对象是能指向int型的指针变量。如上述代码让pp指向指针变量ip,中指向整型变量i.多级指针与指针数组有密切的关系。若有指针数组:char * lines = “ADA”,“ALGOL”,“C”,“C+”,“FORTRAN”,“PASCAL” ;则lines指针数组的每个元素分别指向以上字符串常量的首字符。在这里数组名

      3、lines可以作为它的首元素lines0的指针,lines+k是元素 linesk的指针,由于linesk 本身也是指针,所以表达式 lines+k的值是一种指针的指针。如有必要还可引入指针变量cp,让它指向数组lines的某元素,如cp=&linesk.这样,cp就是指向指针型数据的指针变量。在这里,cp是指向字符指针的指针变量,它应被定义成:char * *cp;为了定义这样的 cp,它的前面有两个*号。由于*自右向左结合,首先是“* cp”表示 cp是指针变量,再有*cp表示cp能指向的是某种指针类型,最后“char * *cp”表示指针变量cp能指向字符指针数据对象。如果有赋值cp=& linesl,让它指向数组元素lines1,则* cp引用 lines1,是一个指针,指向字符串“ALGOL”的首字符。* *cp引用lines10,其值是字符A.下面的代码实现顺序输出指针数组lines各元素所指字符串:for(c=lines;cpPrintf(“%sn”,*cp);设有数组a和指针数组pt有以下代码所示的关系:int a= 2,4,6,8,10 ;int *pt=&a3,&a

      4、2,a4,&a0,&1;int * *p;下面的代码利用指针数组pt和指针的指针p,遍历数组a:for( p=pt; pprintf(“%dt”,* *p);指针数组当数组元素类型为某种指针类型时,该数组就是指针数组。指针数组的定义形式为类型说明符 *数组名常量表达式 ;例如,int *p10 ;定义指针数组p的每个元素都是能指向int型数据的指针变量,p有10个元素,它们是p0 、pl、p9.和一般的数组定义一样,数组名p也可作为p0的地址。在指针数组的定义形式中,由于“ ”比“*”的优先级高,使数组名先与“”结合,形成数组的定义,然后再与数组名之前的“*”结合,表示此数组的元素是指针类型的。注意,在“*”与数组名之外不能加上圆括号,否则变成指向数组的指针变量。引人指针数组的主要目的是便于统一管理同类的指针。如利用指针数组能实现对一组独立的变量以数组的形式对它们作统一处理。如有以下定义:in a,b,c,d,e,f;int *apt=&a,&b,&c,&d,&e,&f;下面的循环语句能顺序访问独立的变量a、b 、c、d、e、f;for( k=0; k6;k+)printf(“%dt”

      5、,*aptk);/*其中*aptk可写成*(apt+k)*/当指针数组的元素分别指向二维数组各行首元素时,也可用指针数组引用二维数组的元素。以下代码说明指针数组引用二维数组元素的方法。设有以下代码:int a1020 ,i;int *b10;for(1=0;i10;i+)/*bi指向数组元素ai0*/bi=&ai0 ;则表达式aij与表达式bij引用同一个元素,即从指针数组方向来看,因bi指向元素ai0,*(bi+j)或 bij引用元素aij.另外,当指针数组的元素指向不同的一维数组的元素时,也可通过指针数组,如同二维数组那样引用各一维数组的元素。如以下代码所示:char w0 =“Sunday”,w1 =“Monday”,w2 =“Tuesday”,w3 =“Wednesday”, w4 =“Thursday”, w5 =“Friday”,w6 =“saturday”;char *wName =w0,wl,w2,w3,w4,w5,w6 ;则语句for(i=0;i=6;i+)printf(“%sn”, wNamei);输出星期的英文名称。代码wName24引用字符w24,其值为d.以下

      6、例子把一维数组分割成不等长的段,通过指针数组,把一维数组当作二维数组来处理。# include# define N 8int pN*(N+l)/2,i,j,*ptN ;void main() for(pt0=p, i=l;ipti=pti-1+i;for(i=0; ipti0=ptii=l;for(j=l;jptij=pti-1j-1+pti-1j;for(i=0;i N; i+) printf(“%*c”,40-2*i,);for(j=0; j=i ;j+)printf(“M”, ptij) ;printf(“n”);程序产生如下形式的二项式系数三角形:11 11 2 11 3 3 11 4 6 4 11 5 10 1O 5 11 6 15 20 15 6 11 7 21 35 35 21 7 1指向字符串的指针变目通常所说的字符串指针就是指向字符率某字符的字符指针。因字符率存储于字符数组中,所以字符串指针也就是指向数组元素的指针。为程序中引入的字符串常量提供存储空间有两种方法。一是把字符率常量存放在一个字符数组中。例如,char s=“I am a string.”;数组s共有15

      7、个元素,其中 s14 为0 字符。对于这种情况,编译程序根据字符串常量所需的字节数为字符数组分配存储,并把字符串复写到数组中,即对数组初始化。另一种方法是由编译系统将字符串常量与程序中出现的其它常量一起存放在常量存储区中。程序为了能访问存于常量存储区中的字符串常量,可用一个字符指针指向它的第一个字符。当字符串常量出现在表达式中时,系统将字符率常量放入常量存储区,而把表达式转换成字符指针,指向该字符串常量的第一个字符。因此,可在定义字符指针变量时给它初始化指向某字符串常量,或用字符申常量给字符指针变量赋值,这两种方法都使字符指针指向字符串常量的第一个字符。例如,char *cp1,*cp2=“I am a string”;/*定义字符指针变量,并赋初值*/cp1=“Another string”;/* 先定义字符指针变量,然后按需要赋初值*/上述代码使字符指针变量cp2指向字符率常量“I am a string”的第一个字符I,使cpl指向字符串常量“Another string”的第一个字符 A.指向二维数组中的某个一维数组的指针变量如有一个二维数组,且指针变量所指的是二维数组中的一整

      8、行,则指针变量另有一些很有意义的性质。设有二维数组为int a34=1,2,3,4,5,6,7,8 , 9,10,11,12 ;这里,数组a有3行4列。按行来看数组a,数组a有三个元素,分别为a0,a1,a2.它们又分别是一个一维数组,各有4个元素。例如,a0所代表的一维数组为a00 、a0l 、a0p2, a03.一维数组名表达式的值是数组首元素(下标为0)的地址,二维数组名a表达式是a的首行a0的地址。一般地,a+i可以看作二维数组a的第i+1行的首地址。因二维数组a能用a0.a1、a2 分别表示它的各行,所以a0能表示用a0标记的 a的第一行的首元素 a00 的地址;a1 能表示用 al 标记的 a的第二行的首元素 al0 的地址。一般地,ai能表示用 ai标记的a的第i+1行的首元素ai0的地址。由于数组的开始地址与数组首元素的地址相同,这样,a+i与ai应有相同的值,但它们的意义不同,a+i表示用ai标记的a的第i+1行的首地址,ai表示用ai标记的a的第i+l行的首元素ai0的地址。另外,因ai可写成*(a+i),所以a+i与*(a+i)也有不同意义,而值相等。ai或*(a+i) 表示二维数组a的元素ai0的地址,即&ai0.根据地址运算规则,ai+j即代表数组a的元素aij的地址,即&aij.因ai与*(a+i)等价,所以*(a+i) +j也与&aij等价。由二维数组元素aij的地址有多种表示形式,数组元素aij也有以下三种等价表示形式:*(ai+j)、*(*(a+i)+j)、(*(a+i)i.特别是对于a00,它的等价表示形式有*a0和*a.数组元素aij的地址也有三种等价的表示形式:ai+j、*(a+i)+j、&aij

      《软考程序设计和程序设计语言知识点辅导汇总》由会员jia****ihe分享,可在线阅读,更多相关《软考程序设计和程序设计语言知识点辅导汇总》请在金锄头文库上搜索。

      点击阅读更多内容
    TA的资源
    点击查看更多
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.