大学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}非法,二维第二个是列

后面是几道易错的稍微难一点的题:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 12
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盒子桥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值