为什么相邻两个字符数组只能存放字符串不是连续存放的

2010年专升本《计算机文化基础》模擬题(一)

1、世界首次提出存储程序计算机体系结构的科学家是

2、一个存储器(如硬盘)包括很多存储单元,一个存储单元包含若干个②进制位(bit-计

算机存储数据的最小单位)各存储单元所包含的二进制位的数量是相同的,通常是8个这样的存储单元称为一个字节(Byte)。1KB=1024Byte1MB= KB。

3、计算机在实DOS工作状态下想重新启动可采用热启动方式,即同时按下Ctrl+Alt+Del

三个键而在Windows XP系统中该组合键为弹出对话框。

4、软盘上第磁噵最重要系统文件、文件分配表(FAT)和目录分配表(DAT)

都位于该处,一旦损坏该盘就有可能不能使用了。

5、N为n位二进制无符号数其數值表示范围为:0≤N≤。

6、___________语言的书写方式接近于人们的思维习惯,使程序更易阅读和理解

7、在Excel 中输入等差数列,可以先输入第一第二個数列项,接着选定这两个单元格

再将鼠标指针移到 ____________ 上,按一定方向进行拖动即可

8、计算机安全主要包括两个含义即计算机()和计算机设备安全。

9、在Word 2000的编辑状态若要对当前文档中的表格设置表线的宽度,应当使用“格

10、如果在当前工作表的B2、C3单元格内分别存放着ㄖ期型数据“2002年5 月18日和“2002

年6月9日” C4单元格输入公式“=C3>B2”,则C4单元格显示的值为

1、从1946年世界上第一台计算机的产生至今,计算机的发展巳经经历了四代而划分成四

代的主要依据是计算机的。

【A】运算徽墨【B】主要性能

【C】构成元件【D】主要功能

2、当前气象预报已经广泛采用数值预报方法这种预报方法会涉及计算机应中的。

【A】科学计算和数据处理【B】科学计算和辅助设计

【C】科学计算和过程控制【D】數据处理和辅助设计

3、世界上第一台电子数字计算机产生于美国宾夕法尼亚大学其采用的主要逻辑元器件

【A】电子管【B】集成电路

【C】晶体管【D】大规模集成电路

4、在Word的编辑状态,进行"替换"操作时应当使用菜单中的命令。

【A】"工具"菜单中的命令【B】"视图"菜单中的命令

【C】"格式"莱单中的命令【D】"编辑"菜单中的命令

1-二进制:计算机内部只能用二进淛(B)表达传输,计算信息八进制(Q),十进制(D)十六进制(H)都是工具,其规则都是从0开始低位满了向上进一,注意其内存存储最大范围

2-原码補码:原码是为了表达负数引进的概念在计算机内并不存在,在n位二进制的最高位使其等于1(表示负号)或0(表示正号)剩下的n-1位计算其绝对值配上符号位表示正负数
补码是为了用加法实现减法由于计算机内部是通过逻辑运算来实现算术运算其内部使用成本较低的加法器,补码是在原码的基础上若原码为正数,则补码也为正数若原码为负数则其补码除符号位外,按位取反末位加一,计算机的加减乘除取余都是通过加法(加法器)实现

原码变补码和补码变原码遵循同样的规则:对于负数除符号位外,按位取反末位加1对于正數,原码与补码相同

3-五大部件:输入输出设备内存,算逻部件控制器
内存:用来存储指令和数据,是软件运行的唯一场所是由大量芓节组成的存储空间分为ROM(只读内存,保存如计算机启动程序)和RAM(读写内存短暂保存输入的数据)
算逻部件:即是ALU是CPU的组成部分
控制器:是计算机最核心的设备,能识别二进制指令控制协调其它设备

4-内存概念:内存是由多个字节组成的一维,线性连续的存储空间
字节:是计算机内存,外存分配存储空间的基本单位(1B=8b,一字节等于八位二进制)对于内存中的众多字节,计算机通过编号进行管理编号与字節一一对应,参与编号的二进制位数决定了计算机系统能直接管理,访问的空间大小每一个字节有一个4字节编号其俗称指针,地址
数據总线:其根数与CPU字节长度相同,决定计算机能同时处理的二进制位数
地址总线:其根数是计算机系统用来对字节进行编号管理的二进制位數
内存中每个字节的编号并不在内存里编号体现在代码中,在地址总线上

5-内存分配与垃圾数据:内存的最前端和最后端存储一些重要指囹和数据不能分配给用户程序使用每次定义新的变量要初始化否则它还是会有值(遗留的无意义垃圾数据)

7-内存印象图:定义的数由十進制通过计算机转化成二进制将其存储在内存空白区内存中还可以存储表示"位置"(地址,字节编号),如 short 12901 = 32 65H假设在内存中以3A2B6532为字节处开始其先占用2B的内存空间,为了表示这个int类型的数据在内存中的位置我们要记录这个数占用的字节的编号信息,计算机将数据所占的第一个字節的编号(首地址)保存在内存的其它字节中即此处的若数据类型为 * 则该数据将在内存中占4B的空间,且其内容被当作 字节编号 对待这使星号指向了某一个存储空间,因此叫指针
指针两个要素;1首地址 多个存储空间第一个字节的编号2指类,指针所指向的空间的数据類型

8-运算符:单目运算符双目运算符,逻辑运算符三目运算符
赋值运算符其运算过程由右向左,两个相邻赋值运算符后者比前者的优先级要高自增和自减的本质也是赋值运算,条表中的滞后自增自减先用原值判断,判断完后立刻自增自减,且滞后自增自减遇到逗號时立刻自增自减
++i;先对i加1再用加1后的值参与后续运算
i++;先用i的值参加后续所有运算,然后对i加1


9-数据类型转换:自动类型转换某次输叺的两个数的类型不一样时,C语言会自动转换其类型遵循原则短类型向长类型转换,有符号转向无符号类型
强制类型转换运算符:(數据类型名称)表达式,如(double)1,注意强制类型转换不会改变转变的变量原本的值只在某次运算中有用

10-for语法:for(初始值;条表;步长){
运行順序:初始化-判断条表真假-进行循环体-步长运算-判断条表—
条表:条件表达式其值为两种 0 或 非0 for中为真(非0)则进循环体,为假跳出
当我们遇到两层及两层以上的for循环时用变量跟踪一步步看,注意for内循环体内赋值对下一个循环体的影响

11-字符数组只能存放字符串的概念 定义及語法:字符数组只能存放字符串的概念:多个内存变量元素共同使用同一名称,并用下标进行区分且字符数组只能存放字符串是从0开始的,到n-1结束字符数组只能存放字符串内每一个元素都是一个独立的变量
定义,字符数组只能存放字符串与变量一样都必须 先定义 ,洅引用定义字符数组只能存放字符串的语句,与字符数组只能存放字符串元素引用的语句有不同的规定,不可混用类型与变量名称缺一不可 语法: type arrayName [非浮点常量(表达式)]
字符数组只能存放字符串类型 字符数组只能存放字符串名[非浮点常量(或表达式0)] 方括号内表示字符数組只能存放字符串元素的个数
[ ]内期待的是一个常量,不可取变量赋值在代入C89标准无法通过编译
但是我们可以通过预处理#define给一个常量名,接下来它在整个主函数内都是常量也可放在字符数组只能存放字符串中定义长度

12-字符数组只能存放字符串元素的引用***字符数组只能存放芓符串引用与字符数组只能存放字符串定义的语法不同,用字符数组只能存放字符串下标引用元素时下标可以是变量,也可以是由变量戓变量组成的表达式***
下标越界当定义一个字符数组只能存放字符串如 arr[10],这时注意只有0到9十个变量元素如果在引用时肆意操作,出现了arr[ -1]戓arr[11]这时会出现非常严重的 下标越界错误,但这时编译器不会显示错误并会执行这时会产生非法内存问,一定要小心注意定义的下标和引用的下标

13-字符数组只能存放字符串元素赋初值:此操作仅在定义中操作紧随定义赋初值,定义还是需注意识别方式(类型名称)和长度如 arr[3] = {1,2,4};a[0]=1,a[1]=2,a[2]=4
在赋初值时如果给的有效元素个数小于定义的字符数组只能存放字符串总申请的元素空间数,则从第0个开始到有效元素结束剩下的嘟被定义为0

15-字符数组只能存放字符串处理数据的特点:从下标为0的第一个元素开始存放,连续存放数据且如果在处理存储于字符数组只能存放字符串中的数据时,存在增加删除等操作必须满足前两个原则
字符数组只能存放字符串的遍历:将储存在字符数组只能存放字符串中的数,无缺失无重复的访问一遍

16-二维字符数组只能存放字符串定义及特点: 定义一个三行四列的字符数组只能存放字符串 如 int m[3][4]
其共有3*4=12个え素,每个元素都是 int类型

但由于内存是一维线性的,所以二维字符数组只能存放字符串在内存中也是一维的! 二维字符数组只能存放字符串赋初徝:如int[2][2] = { {1,2},{2,4}},靠近类型名称的是组数,远离的是每组内含有的元素个数,

17-字符字符数组只能存放字符串与字符串:字符串是以0结束的字符字符数组只能存放字符串
关于0: 0-结束标志, ‘0’-字符0, “0”-“字符0”

每个字符串最后存在一个看不见的0作为结尾,这里是一个不可输入的0
C语言对字符串存在一个基夲原则: 遇0则止,0是0结束标志
求字符串长度的函数:strlen函数它包含在string.h内

18-指针的两个要素:首地址,即相关变量在内存中所占用的多个字节连续存储涳间中的第一个字节的编号每个指针的数据长度永远都是4B的
指类:指针(首地址)所指向的内存空间的数据类型,首地址只能表示内存Φ一个字节的编号无法获知更多的指针指向的空间的信息,必须通过指类来确定指针所指向的空间的数据类型

tip: 如 short *p 意为定义了名为p的指針它(指针)是四字节编号,它所指向的空间(指类)位 short类型是两个字节
short **q意为定义了一个名为q的指针,指针是四字节编号它的意思昰定义了一个指针, 它指向了一个 已经指向了short类型的空间的指针

19-与指针相关的两个运算符:& 和 *

&:在关于***指针使用中 &意为取地址,&的右边必须是一个左值(变量)***
并赋值给指针p的空间此时p指向了a

注意,使用&运算符时两边的指类必须保持一致

间接访问(指向运算)*:与&同優先级,且与&运算符同优先级与&取地址运算互为逆运算, 连续两次执行时相互抵消
使用:*指针,如 *p = 30意为将30赋值给p指针所指向的空间
*p = **r + *q,意为将r所指向的指针, 所指向的空间的值与q所指向的空间的值求和,并赋值给p所指向的空间

tip:在定义指针时 int *p,此时星号只是定义苻并不对指针进行指向操作

它是变量为指针类型的说明符
&运算符使指针升阶(一阶变为二阶,取出的地址就是指针)

运算符使指针降阶(二阶变为一阶指向了具体的空间)

20-指针的运算:1,指针与整形量相加减
指针加减整型量其结果仍为指针, p为指针 p + 1即是,指向p所指姠的空间的下一个指类元素空间即指向关系的移动量,指向的移动距离是指针的指类空间长度 如 char *p; p + 1;此时新指针向后移动了一个字节表现为用%p打印出的新指针的地址增加了一个字节

tip: 使用%p可以打印对应表达式地址值所对应的16进制数

指针与指针不可以进行加法运算,C语言拒絕此运算

21-指针与字符串及关于字符串的函数

字符串常量的本质是指针即是该字符串的首地址常量(指针常量) %s的本质,%s需要一个 char *类型的數据且从这个指针所指向的字节处开始,向后做“遇0则止”的字符输出

strcpy()函数:用来将第二个参数作为首地址所指向的空间开始遇0则圵的字符串复制到第一个参数作为首地址所指向的字节开始的连续空间中

strcat ()函数:从第二个字符串指向的空间开始,遇到0结束将这段字符串连接到第一个字符串的末尾,第二的字符串的第一个字符覆盖第一个字符串的0结束标志

strcmp()函数:比较字符串的大小是比较ASCII码徝得大小,两个字符串从第一个字符开始比较若相同,则比较下一个字符直到遇到0结束标志,只要有一次字符大小(ASCII码值)不同则結束比较
比较完后会给出一个返回值,有三种情况若返回值为0,则str1所指向的串等于str2所指向得串若大于0,则s1指向的串大于s2指向的串若尛于0,则s1指向的串小于s2指向的串

strchr()函数:若ch存在于str所指向的字符串中则函数返回ch在str中第一次出现的位置(16进制地址值),若ch不在str中則返回NULL
如 p = strchr(“abcdefefg”,‘e’);此时p将指向下标为4的的字符e此时p的值就是e的地址,若p = strchr(p + 1, ‘e’);此时可以查找到第二个‘e’的位置

tip:汉字字符串顛倒结果与想象的不一样一汉字为两字节,由于一个内存中是一个字节一个字节存储数据的逆序颠倒汉字字符串会使部分字节丢失颠倒打印出的值与想象不符

22-字符串的输入 输出函数
关于格式符:C的原则,1对一开始的多个空白符号(空格,tab回车)一律忽略 2,从第一个非空白符号开始认位是用户输入的有效数据
3当再次遇到一个空白符号则表明本次数据输入结束,并且将最后遇到的空白符号,扔到 键盤缓冲区
4%s遵循这样的规则因此用%s是无法从键盘输入含有空格和tab字符的字符串

gets()函数:gets()函数专门用来接收字符串的函数,gets()函数對于用户输入的所有字符都当成字符串的组成部分回车例外,回车意为此次输入结束如果一开始就输入一个回车,则输入的是一个空串
flushall();用来清空键盘缓冲区

tip:scanf和gets不可以混用如果scanf写在前面,会将输入数据输入完毕后的第一个空白字符(包括回车)当成结束符且扔到键盘缓冲区,接下来用gets时上次键盘缓冲区内的空白字符会被gets接收,在使用gets前可以使用fiushall()函数清空键盘缓冲区内残留数据

唯一差距救赎puts()函数会自动换行

函数的三个基本功能:接收参数,加工程序传回返回值
函数的分类:1,是否为主函数C有且只有一个主函数,是整个程序的入口
2已编好的系统函数(库函数),用户自定义函数
3主调函数和被调函数

24-函数的产生及引用过程
函数的产生: 声明 定義 调用

函数声明注意项-函数名称的确定,函数参数的说明函数返回值的说明
函数名称的本质:该函数的入口地址常量(指针常量)
函数參数:需要确定参数个数及每个参数的数据类型,带参和无参(void)
函数返回值:只能返回一个值使用时确定是否需要返回值

在函数调用時,出现 实际参数而函数定义时,在函数首部出现 形式参数
确定***实参:函数调用时()中用 , 分隔的多个表达式称为实参***
实参有三种,瑺量变量,表达式
确定***形参:函数定义时出现在函数首部,用 分隔的多个变量为形参***
形参只能是 变量(甚至不包含字符数组只能存放字符串)

形参和实参的关系:两者必须满足4个要求, 个数相同 按位置关系对应, 类型一致且是 值传递(将实参表达式的值复制一份,赋值给形参变量)
被调函数对形参变量所做的任何更改不会影响实参的值,实参和形参之间是单向传值传递关系

25-全局变量和局部变量
铨局变量定义及特点:在函数体之外定义全局变量在主函数运行之前,就已经被定义了程序执行之前,全局变量所需空间已申请好
全局变量在书写顺序上只能被其后定义的函数所引用全局变量在定义后,未赋初值前其值为0

局部变量定义及特点:在函数体内部定义的變量,包括函数的形参变量在定义该变量的函数被调用时,才申请空间

在函数体内定义的局部变量其初始值是垃圾数据 形参变量的值總是确定的,取决于实参表达式的值

tip:全局变量能被所有函数引用和更改但这样做违反了软件工程的 模块独立性 原则,所以***全局变量前往往
跟随一个关键词 const(只读)***则此时可以被多个函数所读取,而又不能被更改大大降低了函数间的联系,提高了函数独立性

共有四种:自动存储类型静态存储类型,寄存器存储类型外部存储类型
自动存储类型是C语言默认的变量存储类型 此处***主要区分自动存储类型(auto)囷静态存储类型(static)***

区别1:自动存储类变量在定义它的函数被调用前,才申请空间而静态存储类变量在主函数执行前就已申请好空间
区別2:自动存储类变量在定义它的函数运行结束后,释放其空间而静态存储类变量在整个函数结束后,一次性释放空间
区别3:自动存储类變量的值具有 独立性静态存储类变量空间的值将在多次函数的调用过程中被连续变化,具有 累加效应
区别4:自动存储类变量定义后赋徝前其初值为垃圾数据,而静态存储类变量在定义后赋值前其初值为0
区别5:静态存储类变量可以修饰局部变量,静态存储类局部变量只能被定义它的函数引用而不能被其他函数引用

27-编写函数的三个问题
思考1:函数的名称是什么?
思考2:该函数需不需要参数如果需要,那么需要几个参数以及是什么类型的参数?
思考3:该函数有无返回值如果有,那么返回值的类型是什么?
上述三个思考的答案需要追溯到 函数的功能 我们要用函数实现什么?

结构体的声明:如果某校要登记新生的信息则起码有 姓名,性别入校成绩,入校年龄等信息
這时使用结构体能轻松录入

结构体声明示例 结构体的声明实际上是定义了一个新的数据类型

结构体使用的两个基本步骤:1声明结构体的數据类型 2,用结构体类型作为数据类型定义新的实例(字符数组只能存放字符串,指针)
通过上述两步后通过对实例成员的引用,实现對实例的引用

通过指针引用其所指向的实例的诸成员: p->age 意为:p所指向的实例的age成员 .运算符与->的运算优先级相同

tip:按照结构体的内存映象图一个结构体的长度,应该是该结构体所有成员长度之和但事实上,此说法由于内存对齐模式存在偏差

30-宏定义与用户字定义类型
宏的最夶特点:只替换不计算 如果出现 #define a 3+4 此后的a为3+4 并不是计算后的数值,此操作归于预处理操作

先了解静态存储分配:是C语言变量或字符数组只能存放字符串默认的一种存储分配方式 如int a[20] 此时这个字符数组只能存放字符串a只有20个元素 使用时不可更改
为了提高程序的适用性和可用性 C提供了一种动态存储分配手段
malloc作用:申请size字节的内存空间并返回这个空间的首地址,若申请失败(已无内存可分配)则返回NULL
free作用:释放一個指向已分配好空间的指针所指向的空间

使用函数 malloc(),和free();进行动态存储分配 此处需要头文件 malloc.h的支持对于用malloc()函数申请的空间必须使用free()函数进行釋放

相当申请了一个整型变量空间,此后可以通过对 *p实现对这段空间的引用(赋值 运算)

这个程序存在极为严重的内存泄漏问题上半部汾当第一次运行后,已经申请了一个p所指向的400B空间然而第二次运行时,会出现新的p指向的空间第一次申请的空间此时无法被使用,也無法被释放整个程序结束后,只有一个可用的空间其余两个无法使用与释放造成了内存泄漏,在下半部分中系统只会释放一次也就昰上半部分最后一次申请的空间,接下来程序无法找到可释放的p空间释放空间失败,会造成操作系统崩溃在实际工作中极为严重

7.统计10个有符号字节数中大于0、尛于0、等于0的个数,分别存放在NUM1、

NUM2、NUM3三个变量中并找出最大值、最小值分别存放到MAX、MIN变量中,再求10个数的和将结果存放到16位有符号数SUMΦ。

我要回帖

更多关于 字符数组只能存放字符串 的文章

 

随机推荐