关于c语言的知识点不足的地方
在最近的一次c语言考试之前,自己根据老师说的会出原题的卷子的总结
关于代码的自动对齐,dev c++ CTRL+shift+A/a
关于运算顺序的csdn上有,常考的有/ %等 上地址
https://blog.csdn.net/qq_28518147/article/details/101079884
float是C语言提供的合法数据类型关键字。 常量不能再等号左面 逗号表达式只看最后一项
在C语言中,要求参加运算的数必须 是 整数的运算符是%
逗号表达式,从左到右计算,最右边的表达式的值作为整个括号表达式的值
c语言的基本控制结构:顺序结构、选择(判断)结构、循环结构
#o是以八进制来输出
#x是以十六进制进行输出
一个实型变量的值肯定是精确的 错误的× 因为 指针只是指向一块地址。是当引用指针指向的变量时,由于出现类型转换,会出现精度损失。
Int main()
{ int y= 456 ;
printf( “ y=%7o \n ” ,y); // 710(前面有4个空格)
printf( “ * y=% -7o* \n ” ,y); //-通俗一点就是从左往右排,然后就是710 *(空格依旧是4个)
printf( “ * y=% 07o* \n ” ,y); //这个的意思是空位用0来表示,所以会有0000710*
}
A ascii 65
a ascii 97
在定义二维数组时可省略行数,但是列数必须指出
在C语言中,字符串以'\0'作为结束符,因此数组x的长度为7+1=8,而数组y的长度等于7。
‘\0’在c语言中是终止的符号,出现这个,后面的别看了(只是说在下面的这种例子。。)
例子:
数组的长度是固定的,而其中元素的数据类型必须相同
选C aa是数组名的同时也是这个数组首元素的首地址,也就是aa=&aa[0] 找aa[1]的地址就是首地址偏移一个整形位,所以A D 对 B就是对元素aa[1]取地址 所以ABD对 C中&小于后置++的优先级所以&aa[0]++等价于 &(aa[0]++)所以先对aa[0]中的元素值加1后,在对aa[0]取址,结果还是aa[0]的地址 故C错
本题考核的知识点是函数gets()的应用。函数gets()的调用形式为gets(str_adr);str_adr是存放字符串的起始地址。可以是字符数组名、字符指针或字符数组元素的地址。gets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。换行符读入后,不作为字符串的内容。本题中定义一个长度为10的字符数组和一个指针变量b,并且通过赋值让它指向数组a。选项A)、选项B)、选:C)和选项D)中只有选项B)中gets函数的参数a[0]不能表示数组a的首地址,故选项B)不正确。所以,4个选项中选项B)符合题意。
[命题目的] 考查continue和break语句的使用。 [解题要点] continue是结束本次循环,直接进入到下次循环中,break用于循环语句中的作用是直接跳出本层循环,能从多层循环中退出的语句除了goto语句, exit,return等语句也能直接跳出多层循环。 [考点链接] continue和break语句在while语句中的作用。
在 if 语句中又包含一个或多个 if 语句称为嵌套if语句
关于从从后向前排序
for(i=0;i<n/3;i++)
{
s=a[i];
a[i]=a[n-1-k];
a[n-1-k]=s;
}
关于从小到大排序
for{j=0;j<n-1;j++}
{ if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。
C语言中,int型数据在内存中的存储形式是 补码
在C语言中,字符型数据在内存中以 ASCII码形式存在
"\'abc\376"
第1个\告诉其后的\有效,第3个\告诉其后的'有效,后面abc都有效,这总共是5个字符;第4个\后跟 着一个3位数字,就被解释成了以8进制表示的ASCII码,8进制376是16进制0xFE,它是个小黑方 块,所以共有6个有效字符。而C/C++在字符串的最后要自动放一个结束符'\0',因此最后需要7个字 节来存放这个字符串。
宏替换时先求出实参表达式的值,然后代入形参运算求值。 (× )
用%s 格式符输出字符串时,输出字符不包括结束符 ’\0’。 (√)
c 语言中函数定义不允许嵌套,但调用可嵌套。 (√)
函数可以调用自己。 (√ )
在一个源程序中, main 函数的位置必须在最开始。 (× )
所有变量在声明时都必须给定一个类型。 (√ )
一个C程序由若干个源程序文件组成,而一个这样的文件可以有若干个函数和预处理命令以及全局变量声明部分组成
C 源程序的基本单位是 函数 。
运行 C 程序的步骤是:编辑源程序 →编译,得到 目标 程序→连接,得 到 可执行 程序→运行,得到结果。
算法的确定性是指:算法中的每一个步骤都应当是确定的
已知梯形的上底为 a,下底为 b,高为 h,用 C 语言写的正确的面积公式 是B 1.0/2(a+b)h
putchar函数可以向终端输出一个 字符或字符型变量值
、一个 C 语言程序是由.函数组成
在宏定义 #define PI 3.14159中,用宏名 PI 代替一个 字符串
C 语言程序从 main() 函数开始执行,所以这个函数要写在 程序文件的任何位置
构成数组的所有元素的数据类型必须是相同的
用指针法引用数组元素允许数组元素的下标越界
定义数组时的长度可以是整型常量表达式
fun(float x) {float y; y=3*x-4; return y; }
关于这个函数,返回值为int
答案是int,这是因为函数fun(float x)的类型没有明确申明。而C语言规定,缺省类型说明的函数, 其默认类型为int。
C语言是一门高级语言
C 语言源程序文件经过编译后,生成目标文件的后缀是 obj
算法的特点:有穷性,确定性,有零个或多个输入,有一个或多个输出,有效性
转义字符的理解
“"对于这类字符的开始,首先要确定这是几进制,然后转化成10进制,对照ascii码即可
算法有:自然语言,流程图,伪代码
%u是十进制
字符串 "china" 在内存中占据的存储空间是 5 个字节。这个是错误答案,是6个字节,因为有\0结束的字符的存在(注意,只要是语句字串,这样的"",都会有以\0存在的结束标志,它也占一个字符。(再次拓展,字符"\0"是字符串的结束标记,其 ASCII 码值为 0。)
还有存在这样的也需要注意
char a[]="abcd";char b[]={'a','b','c','d'}; 则 a 和 b 两数组长度不相同。a的字节是5,b的字节是4.。上面已经说了,至于b,因为是单个字符组成的数组,没有终止的\0来作为结束的标志
C语言源程序文件经过编译后,生成目标文件的后缀是 .obj
C语言程序从 main()函数开始执行,所以这个函数要写在程序文件的任何位置(只要可以被调用就行了,写哪里都行,c语言的规则是当声明函说是为了调用函数知道在哪,然后去执行。)
构成数组的所有元素的数据类型必须是相同的
用指针法引用数组元素允许数组元素的下标越界
定义数组时的长度可以是整型常量表达式
补充:上面说的是字节,也就是sizeof函数,而strlen是用来计算字符串内容长度。sizeof也是储存长度,也是用sizeof, char a[]={"wocao"} sizeof(a)的返回值为6 ,而strlen(a) 的返回值则为5,为什么是6?因为后面有一个\0来作为终止,和上面说过的一样为什么是5?因为只计算当前的内容长度,通常在写程序时比较常用,例如数组。。。
关于第四章,最后一节
在C语言程序中,函数的定义不能嵌套,函数的调用可以嵌套
C程序是函数的集合,包括标准库函数和用户自定义函数
在C语言程序中,被调用的函数必须在main函数中定义 这句话是错误的 因为调用的函数在调用之前必须进行声明,因为所有程序执行是从main()开始的,所以建议声明在main()之前,而不是在main()中声明。
一个完整的c源程序是由一个且仅由一个主函数和零个以上的非主函数构成
在一个C程序中,main函数可以在任何地方出现
实参可以是常量、变量、表达式、函数等。 错误 形参只能是变量,在被定义的函数中,必须指定形参的类型。
函数未被调用时,系统将不为形参分配内存单元
实参与形参的个数应相等,且实参与形参的类型必须对应一致
当形参是变量时,实参可以是常量、变量或表达式
函数调用时,当实参和形参都是基础类型变量时,他们之间数据传递的过程是实参将其值传递给形参,调用结束时形参并不将其值回传给实参。
函数的形参和实参分别占用不同的存储单元
实参与其对应的形参占用相同的存储空间,是占用不同的储存空间。
C语言中函数返回值的类型是由定义函数时所指定的函数类型决定
C语言规定,程序中各函数之间 既允许直接递归调用也允许间接递归调用 函数调用时,只要符合函数的使用,程序中的各个函数间既可以直接调用其他函数,也可以递归调用其自身。
C语言中,凡未指定存储类别的局部变量的隐含存储类别是 auto
在一个C源程序文件中,要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是 static
ps:本人是小白一名,如有写的不对,请大家指导。
关于c语言的知识点不足的地方的更多相关文章
- 学Android开发,入门语言java知识点
学Android开发,入门语言java知识点 Android是一种以Linux为基础的开源码操作系统,主要使用于便携设备,而linux是用c语言和少量汇编语言写成的,如果你想研究Android,就去学 ...
- JavaScript语言基础知识点图示(转)
一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运算符 4.JavaScript 数组 5.Ja ...
- JavaScript 语言基础知识点总结
网上找到的一份JavaScript 语言基础知识点总结,还不错,挺全面的. (来自:http://t.cn/zjbXMmi @刘巍峰 分享 )
- JavaScript语言基础知识点图示
原文:JavaScript语言基础知识点图示 一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运 ...
- C/C++编程笔记:C语言入门知识点(三),请收藏C语言最全笔记!
今天我们继续来学习C语言的入门知识点,第一课:C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记! 21. 输入 & 输出 当我们提到输入时,这意味着要向程序填充一些数据.输入可 ...
- c语言小知识点
大一时学c语言,总结的一些自己感觉很零碎且容易忘的知识点,不对之处请指正 1.字符串不管中间是否有数值0,结尾一定有数值02.浮点类型的变量存储并不精确3.printf格式串自动右对齐,加负号左对齐4 ...
- C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记!
今天我们继续来学习C语言的入门知识点 11. 作用域规则 任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问.C 语言中有三个地方可以声明变量: 在函数或块内部的局部变量 ...
- C语言一些知识点总结
一.关键字 1. 什么是关键字 1> 关键字就是C语言提供的有特殊含义的符号,也叫做“保留字” 2> C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义 auto doubl ...
- lua语言自学知识点----Lua与.Net相互调用
知识点: LuaInterface作用是用来完成Lua与C#的相互调用. LuaInterface核心库:1.luainterface.dll 用于C#读取lua(放在bin目录同级) 2.luane ...
随机推荐
- Java基础学习之数据类型、基础语法与数组(3)
目录 1.数据类型 1.1.基本数据类型 1.2.引用数据类型 1.3.自动装箱与拆箱 2.基础语法 2.1.标识符 2.2.修饰符 2.2.1.访问控制修饰符 2.2.2.非访问控制修饰符 2.3. ...
- Libp2p 简介
这是一个翻译的系列文章,原文参考:Introduction :: libp2p Documentation 欢迎来阅读libp2p相关文档,不论你是刚开始学习如何用libp2p来搭建P2P系统, 还是 ...
- Docker 命令自动补全?要的
前言 不知道这个小伙伴有多久没用过 Docker 了, 突然对我说 Docker 命令怎么发生变化了 docker run ... #变成了 docker container run ... 他说,本 ...
- Go语言的context包从放弃到入门
目录 一.Context包到底是干嘛用的 二.主协程退出通知子协程示例演示 主协程通知子协程退出 主协程通知有子协程,子协程又有多个子协程 三.Context包的核心接口和方法 context接口 e ...
- vue 中 this.$options.data() 重置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【题解】NOI 系列题解总集
每次做一道 NOI 系列的估计都很激动吧,对于我这种萌新来说( P1731 [NOI1999]生日蛋糕 练习剪枝技巧,关于剪枝,欢迎看我的垃圾无意义笔记 这道题是有一定难度的,需要运用各种高科技剪枝( ...
- uni-app快速入门教程
1.什么是uni-app? uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.H5.以及各种小程序(微信/支付宝/百度/头条/QQ/ ...
- 关于Switch Case的优化
switch case虽然是代替if else而出现的,并不好维护,有时候使用switch还不如使用if else. 但没有别的东西能代替switch case了吗?答案当然是否定的,现在就有两种方式 ...
- js常见正则表达式
常见正则匹配表达式 export let rege = { //验证URL isUrl: (val) => { if (val == null || val == "") r ...
- Spring自带的定时任务框架Schedule的优缺点及使用
spring自带的定时任务框架的有点:简单,拆箱即用 spring自带的定时任务框架的缺点: 不支持集群:为避免重复执行的问题 不支持生命周期统一管理:不重启服务情况下关闭,启动任务 不支持分片任务: ...