模块四:数据类型-1.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模块四:数据类型-1

模块四:数据类型 C语言源程序中所处理的任何数据(常量或变量)都是属于某一种数据类型的,数据类型将决定该类型的值在内存中占用空间的大小、数据值的表现形式及数据范围、可进行的运算及操作、变量值的组成情况等。 C中数据类型分为:基本类型、构造类型、指针类型、空类型四大类,其中基本类型包括整型、实型、字符型、枚举型;构造类型有:数组类型、结构体类型、共同体类型,指针类型的特殊性在于其变量中存放的是内存地址信息而不是内存中的值。 这一模块的重点是数组、结构体、指针类型。 (1)数组类型: 基本知识:一维及二维数组变量的定义及初始化、如何正确访问元素、一维字符数组操作字符串、会正确输入输出数组的元素、正确输出字符串,掌握string.h函数中的一些常用函数的使用,如:两个字符串的比较(例如:判断串s1是否大于s2,不能用s1s2,而应该用strcmp(s1,s2)0)、字符串的赋值、字符串的连接等。 算法:首先要理解一维数组名作实参和形式能数传地址的实质; 掌握在一维数组中:输入数组所有元素、输出数组所有元素、寻找最大数、最小数、求元素的平均值、查找某一个值是否是数组中的元素、数组元素逆置、某种常见排序算法等。 数组元素实际个数随着输入动态统计的方法:应当设定一个输入结束标志,在输入该标志之前的元素都依次作为数组的有效元素,该标志不计入内,用如下代码输入以-1为结尾标志的数组并输出所有的有效元素: #include stdio.h void main() { int a[100],num=0,i=0; do { scanf(%d,a[i++]); }while (a[i-1]!=-1); num=i-1; for (i=0;inum;i++) printf(%5d,a[i]); printf(\n%d\n,num); } 练习: 1、有数组a[m][n],则在a[i][j]之前的元素的个数为__i*n+j_。 以下一维数组的定义正确的是_D__ A、 int n=3, a[n]; B、#define N=3 int a[N]; C、 const int n=3; int a[n]; D、#define N 3 int a[N*3]; 3、以下一维数组定义及初始化正确的是_B___ A、int a[ ]; B、int a[]={1,2,3}; C、int a[3]={1,2,3,4}; D、int a[3]={,2,}; 4、以下选择中,能正确定义二维数组的是_AB____。 int a[10]={9,1,15,6,2,11,8,7,19,3};int *m=a; 则m[m[1]+2*m[4]]的值是___11___,*m+m[8]的值为__28____。”abc”; B、char s[]={”abc”}; C、char s[3]={‘a’,’b’,’c’}; D、char s[3]=”abc”; 7、下列描述中不正确的是______。 A、可以对字符型数组进行整体输入、输出 B、可以对整型数组进行整体输入、输出 C、字符型数组可以字符串D、不能通过赋值运算符=”对字符型数组进行整体赋值#include stdio.h int f (int *a, int num, int x); void main( ) { int a[10]={8,6,17,29,34,5,7,23,2,1}; int pos; pos=f (a,10,7); printf(%d,pos+1); } int f (int *a, int num, int x) { int i; for (i=0; inum; i++) if (x == a[i]) return i; return -1; }; (2)指针类型:定义形式为:数据类型 *指针变量名,例:int*p;注意p与*p的区别。指针变量若未赋值,不能对*p操作,若对指针赋值为空值,也不能对*p操作。 例如: int *f = NULL; scanf(%d,f)或 *f=10.5;都不正确 int t = A, *f; f = t或*f=t均正确;f=t,*f=t都不正确 int *f; f = NULL;正确 练习: 1、已知: char * = student; 则printf(%s\n, c+)输出为 B、*p=*b; C、a=b; D、*p =*b; 指针与数组的关系:对指针操作一维数组要熟练掌握,理解数组名是地址常量的概念,指针指向数组的时候执行p++、p- -的意义,以及数组元素的下标法访问及指针运算符访

您可能关注的文档

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档