c语言
文章平均质量分 61
焦糖饼干M
小白一枚。仅以博客记录自己的学习过程以及方便向各位大牛讨教。啊。真希望有一天能把最前面那一句删了呀 哈哈。
展开
-
c语言==字符数组与字符串,char的取值范围(1)
字符数组与字符串的初始化,sizeof与strlen的使用。char类型的取值范围原创 2016-06-04 14:55:07 · 4719 阅读 · 0 评论 -
自练题20170716
1.分页式管理每取一数据,要访问( )次内存? 答:3次,因为分页式存储管理读取数据时,要将其给你的相对地址转变为绝对地址,首先将相对地址转为(页号,页内偏移),然后根据页号去页表内查找,最后得到绝对地址。所以,首先去页表内查找就是去内存读取,访问一次,然后得到绝对地址之后,对内存进行读写,读写一次会访问两次内存,所以加起来是访问了三次内存2.SQL语言称为? 答:structure原创 2017-08-09 15:11:12 · 605 阅读 · 0 评论 -
c语言==expected identifier or * before *(24)
用c语言,make编译器编写了一个结构体,然后想给里面的变量赋不同的初值,但是每次都会报错。 检查了很多比如分号,括号,定义变量放在文件开头等等都还是错的 这个是程序 然后经别人提醒之后发现是头文件里面不可以定义只可以声明。原创 2016-12-21 09:18:06 · 1438 阅读 · 0 评论 -
c语言==判断一个数是否为2的整数次方【不使用循环】(23)
对于判断一个数是否为2的N次方问题,通常想到的最为直接的办法就是对这个数不断对2取余,为0就将该数变为该数除以2,直到最后该数为1为止。void judge(int n) { while(!(n % 2)) { n = n / 2; if(n == 1) { printf("原创 2016-12-20 09:20:21 · 524 阅读 · 0 评论 -
c语言==系统调用与库函数的区别(28)
系统调用与库函数的区别? (1)库函数是语言或应用程序的一部分,而系统调用是内核提供给应用程序的接口,属于系统的一部分 (2)库函数在用户地址空间执行,系统调用是在内核地址空间执行,库函数运行时间属于用户时间,系统调用属于系统时间,库函数开销较小,系统调用开销较大 (3)库函数是有缓冲的,系统调用是无缓冲的 系统调用依赖于平台,库函数并不依赖原创 2016-12-26 22:05:42 · 1211 阅读 · 0 评论 -
c语言==项目阶段性问题(27)
最近做了操作系统和苏嵌布置的项目任务。 操作系统的项目比较简单,遇到的问题也很少。除了之前的那个不能在头文件里面定义。然后算法也很简单,只要把一些情况考虑清楚了就行。 苏嵌的项目让我有点脑壳疼,目前还在纠结注册当中,老是有primary key must be unique,我明明给了他一个全局变量,并且每次都让他自加。尤其是退出了这个项目,再次进入的时候,那个id又从0开始,所以又会出现这个b原创 2016-12-24 07:56:22 · 274 阅读 · 1 评论 -
c语言==笔试题4(26)
1、请写出 float x 与“零值”比较的 if 语句答案:if(x>=0.000001&&x<=-0.000001)2、写出输出结果char* s = “AAA”;printf(“%s”, s);s[0] = 'B';printf(“%s”, s);答案: AAA,段错误解析:指针变量是全局变量,对应的是内存中的全局区域。字符串常量保存在只读的数据段,是不可以修改的3、用预处理指令#原创 2016-12-23 10:18:54 · 484 阅读 · 0 评论 -
c语言==笔试题6(25)
1、求输出结果:unsigned short A = 10;printf("~A = %u\n", ~A);char c=128;printf("c=%d\n",c);解析:~A =0xfffffff5,int值 为-11,但输出的是uint。所以输出4294967285第二题,c=0x10,输出的是int,最高位为1,是负数,所以它的值就是0x00的补码就是128,所以输出-128。答原创 2016-12-22 08:57:24 · 471 阅读 · 0 评论 -
c语言==野指针形成原理、造成的危害及避免方法(22)
野指针 : 随机指向一块内存的指针成为野指针。(因为在计算机中,内存的分配由操作系统来管理,要使用内存需要先向操作系统申请,系统分配后才可以使用,而野指针的内存空间是随机分配的,属于非法访问内存。) 野指针造成的错误叫做内存泄漏,但存在野指针并不一定每次运行程序都会出现段错误,因为可能某次给野指针随机分配的内存地址是其它变量已经申请过的内存地址,这种情况不会出现段错误。 怎样避免野指转载 2016-12-03 14:21:12 · 1354 阅读 · 0 评论 -
自练题20170718
1.在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是模式,内模式还是外模式? 外模式是用户能够看见和使用的局部数据的逻辑结构和特征的描述。外模式是用户的数据视图。 模式是全体数据的逻辑结构和特征的描述。模式又称为逻辑模式。 内模式是数据物理结构和存储方式的描述。内模式又称为存储模式。 所以这题是模式2.having子句后面应该跟什么表达式? 组条件原创 2017-08-09 15:42:56 · 433 阅读 · 0 评论 -
自练题20170719
1.设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有多少条有向边? 前面队列的开头是表头结点,后面跟着的都是表节点。 所以是m条2.把对关系SPJ的属性QTY的修改权授予用户李勇的T-SQL语句是( ) ①GRANT QTY ON SPJ TO ‘李勇’ ②GRANT UPDATE(QTY) ON SPJ TO ‘李勇’ ③GRANT UPDATE (QTY) ON原创 2017-08-14 19:46:43 · 631 阅读 · 0 评论 -
自练题20170729
1.G是一个非连通无向图,共有28条边,则该图至少有() 个顶点答:根据公式n(n-1)/ 2 = e,可以得到,同时无向图需要加1,所以结果为92.SQL 语言具有两种使用方式,它们在使用的细节上会有些差别,特别是 SELECT 语句。这两种不同使用方式的 SQL,分别称为交互式 SQL 和()答:嵌入式SQL3.设有两个事务T1、T2,其并发操作如图2所示,下面评价正确的是( )原创 2017-09-20 14:55:16 · 934 阅读 · 2 评论 -
自练题20170728
1.要保证数据库物理数据独立性,需要修改的是 模式 模式/内模式映射 模式/外模式映射 内模式答:选第二个,DBMS提供了两层映像:外模式/模式映像和模式/内模式映像。外模式到模式的映像,保证了数据的逻辑独立性,从模式到内模式的映像,保证了数据的物理独立性。2.若wait、signal操作的信号量S值初值为3,当前值为-1,则表示有( )等待进程 答:有一个,信号量表示的是可用的资源数。原创 2017-09-20 14:47:43 · 744 阅读 · 0 评论 -
自练题20170727
1.Linux 文件名的长度不能超过 _ 个字符答案:256个字符,windows上的文件名长度和文件路径有关 具体关系为:从根目录计算,文件路径长度最长为259个bytes。linux下的文件名长度和路径长度无关,这和windows还是有区别 linux下的文件名长度最长为255 bytes 即小于等于255 bytes linux下的最长文件路径长度为4096字节2.(3,2,1,0) 可原创 2017-09-20 14:45:23 · 333 阅读 · 0 评论 -
自练题20170726
1.一范式二范式三范式BC范式四范式五范式的定义答: 第一范式:指表中的属性都是原子属性,不能再拆分了 第二范式:在第一范式的基础上,要求非主属性都完全函数依赖于主键 第三范式:在第二范式的基础上,要求要求没有非主属性传递依赖于主键 BC范式:在第三范式基础上,要求所有非主键属性都必须依赖于主键 第四范式:在BC范式基础上,要求表中存在的多值依赖都必须是对主键函数依赖 第五范式:在第四范原创 2017-09-20 14:43:15 · 537 阅读 · 0 评论 -
自练题20170802
1.在ACCESS数据库的表设计视图中,不能进行操作的是()。 修改字段的类型 设置索引 增加字段 删除记录 答:选最后一个2.SQL语言是()的语言,易学习。 过程化 非过程化 格式化 导航式 答:选第二个3.有向图用邻接矩阵表示后,顶点i的入度等于邻接矩阵中( )的元素之和。 第i列 第i行 第i列与第i行之和 第i列或第i行 答:选第一个4.设一棵m叉树原创 2017-09-25 20:47:39 · 541 阅读 · 0 评论 -
自练题20170801
1.以下关于DBA职责的叙述中,不正确的是 DBA是数据库系统的超级用户,负责控制和管理各个用户的访问权限 DBA要负责监控数据库的运行 DBA要配合前端应用程序的开发 DBA要负责当数据库系统发生故障时进行恢复 答:选第一个2.在关系数据库设计中,设计关系模式(二维表)是数据库设计中哪个阶段的任务( )? 逻辑设计阶段 概念设计阶段 物理设计阶段 需求分析阶段 答:选第一个3.原创 2017-09-25 20:44:58 · 1253 阅读 · 0 评论 -
自练题20170725
1.某单位要求在大型服务器上安装一种多用户、多任务GPL操作系统,最适合的操作系统是? A Linux B Windows Server C Windows XP D OS/2 答:看到GPL,果断选了Linux。 对于B、C选项,Windows的这两个系统不开源,不支持GPL协议。 而D选项的OS/2系统是单用户多任务操作系统。 2.若系统在运行过程中,由于某种硬件故障原创 2017-08-14 20:55:59 · 1060 阅读 · 0 评论 -
自练题20170721
1.在数据库中,产生数据不一致的根本原因是? 答: 未对数据进行完整性控制2.二维表(关系模式)中各范式之间的关系为? 答: 3.快速排序的基准是什么 答: 快速排序就是找到一个基准点S,比S大的放在一边,比S小的放在S的另一边4.下面有关gpt磁盘和mbr磁盘的区别,说法错误的是? 答: MBR支持最大2TB磁盘,它无法处理大于2TB容量的磁盘 与主启动记录 (MBR) 分区方原创 2017-08-14 19:57:42 · 454 阅读 · 0 评论 -
c语言==测量各种数据类型的长度以及typedf关键字对数据类型的作用(21)
32位处理器存储单位 bit (位) 字节 = 8 bit 半字 = 2 个字节 = 16 bit 字 = 4 个字节 = 32 bit 字节长度: 变量在内存中所占的存储空间的长度 数据类型 字节长度 char 1 short 2 int 4 long 4 float 4 double 8 指针 4 指针类型为什么是4个字节? 因为所有的原创 2016-12-02 21:52:41 · 363 阅读 · 0 评论 -
c语言==8位数据越界处理(20)
8位有符号数的取值范围是-128~+127,为什么呢? 首先我们知道,计算机以补码的形式存储的,正数的补码是原码不变,负数的补码是原码的取反加1。 我们先来看+127,原码0111 1111对吧,若+128是多少呢,0111 1111 + 1 = 1000 0000 (原码),然后存储时,计算机一看是最高位为1,就保持符号位不变,后面7位取反加1,然后呢,进位舍弃,还是1000 0000(-12转载 2016-12-01 22:41:20 · 642 阅读 · 0 评论 -
c语言==一维数组与二维数组的详解(9)
一维数组 &a:对一维数组名,取地址,等于数组的地址 *(&a) = a:对一维数组的地址,取值,等于数组首元素的地址数组的地址保存在数组指针里,以下是对数组指针的声明,定义以及赋值int i;int a[5];int (*p)[5] = NULL;P = &a; //指向整个数组的地址//以下是通过这个指针,对数组a进行的输入和输出for(i = 0; i < 5; i++)原创 2016-07-18 21:00:29 · 879 阅读 · 0 评论 -
c语言==指针(8)
问:如何解释int num = 5;答:num是一个变量,所以要从三方面来回答,数据类型(占内存大小),作用范围(使用范围),存储类型来看。问:如何解释指针以及指针的指针*:取内容 &:取地址int num = 5;int * p = &num; num++:指的是num对应的内存空间自增,num = 6 p++:p对应的内存空间+1,步长为4,即0x1004 (*p)++:p指向的内存空原创 2016-07-16 14:52:33 · 531 阅读 · 0 评论 -
c语言==运算符(7)
tips:1、== 是判断相等的符号,但是有的时候会不慎写成=,这个时候编译的时候不会报错,但是这个语句就不会形成约束条件,这个条件下的语句会无条件执行。所以一般将数字写在左边,表达式写在右边,这样万一写错的话就会报错。2、&&是短路与,一旦前面的表达式错了,就不会执行后面的表达式。 3、||是短路或,一旦前面的表达式对了,就不会执行后面的表达式。 如int i = 0;int j = 0;原创 2016-07-16 14:27:43 · 714 阅读 · 0 评论 -
c语言==字符串的键入,遍历,输出(6)
atoi函数c语言中,atoi函数将字符串转变为数字,若遇到字母,就会停止输出#include <stdio.h>#define Max_size 1024#include <string.h>void atoi(char *a){ int temp = 0; int i = 0; int flag = 1; if(a[i] == '-') {原创 2016-07-14 14:18:25 · 2032 阅读 · 0 评论 -
c语言==进程虚拟地址的划分(5)
问:int a = 5;是什么意思?描述一个变量,要从三个方面来描述,因为变量有三大特点。 1、数据类型:说明变量占内存空间大小 2、作用栈:变量的有效范围,即变量的使用范围 3、存储类型:变量的存储方式,存储在哪个区域,以及具体是哪个关键字变量存储方式的划分(进程虚拟地址的划分):进程:执行任务的程序; 进程的活动空间:进程的虚拟地址空间;为了缓解内存紧缺的状况,32位机器给他划分了4个G原创 2016-07-11 15:23:12 · 506 阅读 · 0 评论 -
c语言==数据类型(4)
问:什么是数据类型?答:是数据集合的划分,不同数据类型对CPU的意义是不一样的右左法则流程:先找到变量名,向右看,向左看,向右看,向左看……直至全部结束例如: int **a; 先找到变量名a,然后向右看,是个分号,代表着结束,说明这就是个变量,然后向左看,是一个指针,说明他是一个指针。所以a是一个指针变量,向右看没有了,向左看又是一个指针,这时候找的是原来那个指针变量代表着什么,说明原来那个指原创 2016-07-11 10:30:53 · 504 阅读 · 0 评论 -
c语言==简介及相关常识(3)
问:为什么要学习c语言?答:因为内核的编写是用的c语言,为了方便编写与修改,我们一般使用c语言问:为何内核的编写要使用c语言?答:因为c语言有三大优点 1、c语言有出色的可移植性,能在多种不同体质结构的软、硬平台上运行。2、c语言具有简洁紧凑,使用灵活的语法机制,并能够直接访问硬件3、c语言有很高的运行效率注: 移植:指的是将一段代码运用到不同的软、硬平台上。 移植性好:一串代码不需要修改或修原创 2016-07-11 09:49:05 · 678 阅读 · 0 评论 -
c语言==一维数组与二维数组(2)
一维数组与二维数组排序,输出三角形原创 2016-07-07 17:34:06 · 1455 阅读 · 0 评论 -
c语言==数组和指针间的联系与区别(10)
数组与指针的联系例如,在某个函数的形参里,会有char ptr[100],这时编译器会将它默认看成是char * ptr,在函数里面可以自增,即ptr++。类似地,char src[3][100]也可以被看做是char *src[100]//传二维数组,用一维数组指针 //若此时*(src + i),即src[i],是加的100步长 //所以中括号里的100不可以省略,不然不知道步长是多少由此可原创 2016-07-21 14:04:38 · 447 阅读 · 0 评论 -
c语言==函数(11)
函数三要素函数名,形参和返回值函数名函数名是指针常量,他保存函数存放的地址,即函数的入口地址 命名要求:有自注释性和可读性。最多由五个下划线以及动词和单词组成。参数如何在传参的时候是传值还是传地址? 若要修改实参值,传实参地址 若只读实参值,传实参值传出参数:先前没有值,函数调用之后带出了一个值,相当于返回了一个值。 传入参数:参数原本有值,函数调用之后使用该值返回值在函数中,返回值尤为重要原创 2016-07-21 14:50:27 · 420 阅读 · 0 评论 -
c语言==常见问答细节点(19)
关键字const的作用是什么?const意味着只读,而本质上,const在谁的后面,谁就不可以被修改,如果const在最前面修饰,则向后推一位。 1) 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉用户这个参数的应用目的。 2) 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。 3) 合理地使用关键字const可以使编译原创 2016-11-29 16:33:55 · 210 阅读 · 0 评论 -
c语言==变量存储位置和堆栈的区别(18)
明显的看出全局变量还有static是存储在一起的,局部变量在一起,常数有自己的地方,malloc也是。从而可以知道虚拟地址空间的分配:栈空间存放局部变量,函数形参堆空间存放malloc,relloc,calloc分配空间、数据段里面有BSS区,rodate区,date区,BSS存放未初始化全局变量,rodate存放常量,date存放全局变量和static修饰的变量堆和栈的区别:1 堆是先进先出,而栈原创 2016-11-28 21:57:35 · 420 阅读 · 0 评论 -
c语言==两个结构体之间的相互调用(17)
指向结构体类型变量的使用 首先让我们定义结构体: struct stu { char name[20]; long number; float score[4]; } ; 再定义指向结构体类型变量的指针变量: struct stu *p1, *p2 ; 定义指针变量p 1、p 2,分别指向结构体类型变量。引用形式为:指针变量→成员; [例7-2] 对指向结构体类型变量的正确使用原创 2016-11-22 14:23:39 · 3840 阅读 · 0 评论 -
c语言==密码用*表示(16)
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int x = 0; char c; char Password[6]; printf("请输入密码\n\n"); while(x < 5 && c != 13) //13是回车符原创 2016-11-14 21:54:35 · 675 阅读 · 0 评论 -
c语言==字节、半字、字对齐方式(15)
一、字节对齐基本概念 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取原创 2016-11-13 21:14:48 · 1581 阅读 · 0 评论 -
c语言==复合数据类型(14)
struct结构体作用:封装数据,即将多种不同类型的数存在一起注释: 1、最后大括号后面记得加分号 2、结构体变量用.去访问 3、结构体指针用->去访问如给结构体定义一个stu对象,则sizeof(stu) 字对齐:给每个变量分配4个字节 半字对齐:分配2个字节(short)char a;short b;char c;sizeof(stu) = 8char a;char b;s原创 2016-07-25 11:38:30 · 537 阅读 · 0 评论 -
c语言==关键字(13)
关键字包括register,static,const,typedef,externregister含义:是寄存器变量 作用:请求编译器尽可能的将这个变量值保存在CPU内部的寄存器内,以节省CPU从内存中抓取数据的时间,提高代码的运行效率 适用变量:频繁被访问的变量,如循环变量 注意事项:1、只能修饰局部变量,而不能修饰全局变量或函数 2、不能通过取地址来得到变量的地址 3、修饰的变量一定要是C原创 2016-07-25 10:03:23 · 279 阅读 · 0 评论 -
c语言==函数指针(12)
函数指针顾名思义就是指向函数的指针,即保存函数地址的指针//函数int add(int a, int b);//函数指针int (*p)(int , int);//赋值//函数名即地址p = add;//整个函数的地址p = &add//两者都可以//函数指针调用函数int result = p(num1, num2);//若将int (*p)(int int)作为另一个函数的形参,原创 2016-07-21 15:28:59 · 399 阅读 · 0 评论 -
自练题20170730
1.所有的函数在定义它的程序中都是可见的,正确吗答:错误,类的某些私有或保护成员函数就不可见2.有一个用数组 C[1..m]表示的环形队列,m 为数组的长度。假设 f 为队头元素在数组中的位置,r 为队尾元素的后一位置(按顺时针方向)。若队列非空,则计算队列中元素个数的公式应为? (m+r-f)mod m r-f (m-r+f) mod m (m-r-f) mod m (r-f) mod原创 2017-09-20 15:00:18 · 896 阅读 · 0 评论