大学C语言期末考试·选择题·易错点难点总结笔记 |
您所在的位置:网站首页 › 模拟灯光易错点 › 大学C语言期末考试·选择题·易错点难点总结笔记 |
这是我刷的错题,然后错题知识点归纳,每一套题一个编号段 第一套题1、%二元运算符,左结合性,左右都为整数,不能是双精度型 2、数组【0】第一个和【4】第五个, 3、字符0为NULL 4、结构体变量定义时注意事项 typedef,struct 5、0开头八进制不能有8、0x开头十六进制、十六进制有abcdef 6、e表示以10为底数的幂数,须为整数,e前面后面都要有数字 7、标识符:字母、下划线、数字组成,,,不能关键字,不能是数字开头 8、pow(底数,次方数),abs()整数型绝对值,fabs()浮点型绝对值,exp(e的n次方) 9、getchar()一个数字一个数字的读入 10、逻辑运算符左右可为任意合法表达式 11、x是大于1的奇数 x%2 == 0 错误 12、while(a–);最后a==-1。草错了但是while还没有接受到 13、void (*pf)()指针型函数,void *pf()返回值为指针变量 14、char *s; s=“BOOK!” 15、字符串’\0’不算字符长度 16、\,\n字符串中的转字字符,分别算一个字符 17、自动变量auto,不自动赋 确定 的初值。 18、静态变量satic,不会每调用一次赋一次初值。 19、数组变量的角标 20、将值传给某个指针变量的地址,原来的值并不改变。 21、宏定义中的计算 #define f(x) xx 引用f(a+1) = a+1a+1a+1 = 3a+1;f((a+1))=44*4=64 第二套题1、结构体变量的形参和实参,传值和传址不一样。 6、八进制数以0开头且不能包含数字8 7、等号=有右结和性,不能将一个数赋值给一个表达式。 8、a=(b=4)+(c=6),,得a = 10;+优先= 9、输入的数据格式必须与scanf()内的格式控制串完全匹配scanf("%d;%d",&a,&b);则需要输入3;5 10、#define定义的计算式直接计算 #define M N+1 #define N 5 #define f(x) (xM) == xN+1 11、feof(fp)如果读到文件末尾,eof函数值为0值,否则为0 12、素数只能被1或自身整除的数 第三套题1、符号常量是指在程序中通过宏定义用一个符号名来代表的常量 #define 2、if条件为逻辑与表达式时,&&如果第一个为假则不再判断第二个表达式(短路原理) 3、switch语句没有break则一直运行 4、宏定义制作简单的替换 5、10^5=15异或运算,不同时为1 6、软件设计划分为高内聚低耦合、模块大小规模适当、模块的依赖关系适当 7、常量不属于标识符 第四套题1、实型常量(浮点数)只有十进制一种 2、&&和||逻辑表达式短路的现象,前面一个表达式计算之后,可能不会计算后一个表达时 3、#include命令行可以出现在程序文件的中间 4、++P->a的效果是是成员a增加1 5、switch语句没有分号 6、#define语句也没有分号 7、指针指向字符串,sizeof(b) = 4,占四个字节 8、指针变量名->成员名,(*指针变量名).成员名, 第五套题1、二维数组定义时行坐标不能省略 2、字符数组不能直接赋值 mark=“abc”,指针好像可以 3、指针指向一个数组首地址时,可用p[3]使用 4、*p++同一运算优先级,从右向左运算,现地址+1再取内容 5、逗号运算符,取最后一个值(a+b,b+3) 6、输入数组名时不用取地址符& 7、短路原理,a=b=c=d=m=n=2;(m=a>b)&&(n=c>d) 8、数组定义int a[2][]={{1,2},{3,4}}错误 int d[3][2]={{1,2,1},{1,2,3},{1,2,3}}错误超标了 9、数组定义的第二个[]内不能省略,如果省略将不知道有多少列了,无穷列会溢出 10、从本程序的main开始到本程序的main函数结束 第六套题1、strcmp(s,t)比较s>t则返回大于0的数 2、int a=5,b=4,c=3; d =(a>b>c)结果为0,,,因为先运行a>b结果为1,然后1>c为假 3、for(i=9;i>=0;i–) a[i] = 10 - i;注意a[i]也是从9开始的 4、a[10]= {10,9,8,7,6,5,4,3}; sum(&a[2]); a[0]=a[1]+a[2]; 得到结果为a[2] = a[3]+a[4] 5、int x=1,y=1; (!x||y–)的值为1,他是或运算 第八套题1、能正确表示a和b同时为正或同时为负的逻辑表达式 a*b>0 2、printf("%s,%8s,%8.3s",“china”,“china”,“china”) china,000china,00000chi 3、函数不可以嵌套定义 4、strcmp() (1)strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值. (2)比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。 5、 C语言形参表中出现的a[ ]是什么意思,怎么用? 代表一个指针,数组名实际上是一个指向数组首元素的指针,实际调用的时候只要把数组名当作实参传递给函数的形参就可以了 6、是表达式就一定有数值——赋值表达式:表达式数值是最左边的数值,a=b=5,该表达式为5,常量不可以赋值,printf("%d",a=5+9)输出14 7、&&和||的短路现象,优先级! > && > || 8、018的数值是非法的,八进制是没有8的 9、%符号两边要求是整数,不是整数就错了 10、%ld是long int 的格式输出 附加:1、do-while后面有个;分号 2、!=号的级别高于= while(c=getchar()!=’/n’)和while((c=getchar())!=’/n’)区别,输入ab的话第一个c=1,第二个为ab 3、*p++和(p)++的区别,第一个是p地址加1之后才取值,第二个是取值之后,值加1,++的优先级高于 4、数组名:表示第一个元素的地址,数组名不可以自加,他是地址常量名,若a[10]只要出现a++,a=a+2即是错误的 5、a+1=&a[1] 6、 int a[]={1,2}合法,int a[][4]={2,4,5}合法 int a[4][]={2,3,4}非法,二维第二个是列 后面是几道易错的稍微难一点的题:
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |