C语言常见易错题集(分析及解答)(仅可用于交流,勿用于商业用途)
1.能正确表示a和b同时为正或同时为负的逻辑表达式是( D )。
A.(a>=0||b>=0)&&(a<0||b<0) B.(a>=0&&b>=0)&&(a<0&&b<0)
C.(a+b>0)&&(a+b<=0) D.a*b>0
解析:0是非正非负数
2.在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式( D )。
A.只能用逻辑表达式 B.只能用逻辑表达式或关系表达式
C.只能用关系表达式 D.可用任意表达式
3.有如下程序段
float x=2.0,y;
if(x<0.0) y=0.0;
else if(x<5.0)y=1.0/x;
else y=1.0;
printf("%f\n",y);
该程序段的输出结果是( C )。
A.0.000000 B.0.250000
C.0.500000 D.1.000000
解释:y是float类型,且除数是浮点数形式
4.求解以下值:
(1)0&&1||0 (2)0&&1||1 (3)1&&0||0&&1||1 (4)1||1&&0
解释(1):等价于((0&&1)||0)==》0||0==》0
解释(2):等价于((0&&1)||1)==》0||1==》1
解释(3):等价于((((1&&0)||0)&&1)||1)==》(((0||0)&&1)||1)==》((0&&1)||1)==》(0||1)==》1
解释(4):等价于(1||(1&&0))==》(1||0)==》1
总结:&&优先级大于||;&&于||结合性为做到右
6.若int k, m = 1; 则 k = -m--;语句后,k的值为多少?
解析:优先级相同时,由结合性判断。负号与自减优先级相同,且它们的结合性为右到左,因此k = -m-- 等价于k = -(m--),由于自减在变量右侧,因此得到 k = -m = -1
7.若函数的形参为一维数组,则形参数组可以不指定大小。
8.在函数的说明和定义时若没有指出函数的类型,则系统自动地认为函数的类型为整型。
9.函数可以返回一个值,也可以什么值也不返回。
10.若调用一个函数,且此函数中没有 return 语句,则该函数返回一个不确定的值。
11.若使用一维数组名作函数参数,则在被调函数中,不需要考虑形参数组的大小。
12.在 C 语言中,形参的缺省存储类是auto
13.C 语言中,函数的隐含存储类别是extern
14.若有定义语句:char s[10]="1234567\0\0";,则 strlen(s)的值是
15.以下关于 return 语句的叙述中正确的是:C
A.一个自定义函数中必须有一条 return 语句
B. 一个自定义函数中可以根据不同情况设置多条 return 语句
C. 定义成 void类型的函数中可以有带返回值的 return 语句
D.没有 return 语句的自定义函数在执行结束时不能返回到调用处
16.在宏定义#define PI 3.14159 中,用宏名 PI 代替一个字符串
解析:对宏的具体定义是: #define 标识符 字符串
宏替换只是字符替换。
17.C 语言字符数组可以存放字符串。
18.若函数有返回值,必须通过 return 语句返回。
19.C 语言中唯一一个不能被别的函数调用的函数是main函数。
20.在 C语言中,一个函数一般由两个部分组成【函数首部】、【函数体】
21.C语言中,关键字及编译预处理命令用小写字母书写。
22.由float x=3e-6,y=3e-6;不能得到x==y的逻辑值为真。
23.仅仅对存放字符串的数组才可以一次引用整个数组,其余均不能一次引用整个数组。
24.对于数值型的数组来说,不可以一次引用整个数组。
25.C语言中,函数间数据传递的方式有三种,即用返回值、参数、全局变量。
26.将整数值赋给枚举变量时需要作强制类型转换。
解析:
enum season {spring,summer,autumn,winter}s1,s2;
s1=summer;
s2=(enum season)2;
printf("s1=%d,s2=%d\n",s1,s2);
27.枚举类型不是一种基本的数据类型
解析:C语言数据类型分类:
- 基本类型
- 标准整数类型,以及扩充的整数类型
- 实数浮点类型,以及复数浮点类型
- 枚举类型
- void类型
- 派生类型
- 指针类型
- 数组类型
- 结构类型
- 联合类型
- 函数类型
28.自增自减:(有争议题)
int a = 99;
//(a++)--; //报错
//++(a--); //报错
//--a--; //报错
//++a--; //报错
(++a)--;
--(++b);
--++b;
29.fclose()用来关闭先前fopen()打开的文件,如果成功关闭,fclose()函数返回0,否则返回EOF。
30.表达式 c=fgetc(fp)!=EOF的功能是从fp指向的文件中读取字符,并判断文件是否结束。
31.在c语言中将文件视为无结构的字节流。
32.字符常量的长度肯定为1。
33.解释double x;x=218.82631;printf("%-6.2e\n",x);的输出格式
解析:
6-->代表域宽,共6位,负号、小数点、0都占一位宽(可见的都占一位)
.2-->代表小数点后位数
e-->代表用e表示法(按科学计数法显示)
-代表向左对齐
精华:%-m.nf(小数精度输出只能用于printf,不能用于scanf)
-代表向左对齐,无负号则代表向右边对齐(前面补空格)
.n-->代表小数点后位数
m-->先判断m与小数位的大小,m起码要大于(1+1+n+1+1+d)才能起到作用,其中d取决于编译器。其作用不是截断输出
e-->代表用e表示法(按科学计数法显示)
34.枚举类型声明/定义及使用:
enum 枚举类型 {枚举值列表}; //定义
正确:enum week {Su, Mo, Tu, We, Th, Fr, Sa};
错误:enum week={Su, Mo, Tu, We, Th, Fr, Sa};
错误:enum week {“Su”, “Mo”, “Tu”, We, Th, Fr, Sa};
//使用:
enum week a,b,c;
a = We;
b = Fr;
printf("%d",a);
35.以下数值中,不正确的八进制数或十六进制数是(C).
A:0x16
B:16
C:-16
D:0xaaaa
解析:八进制和十六进制数前面是不可带负号(原始数值是十进制,以10进制为运算基准)
因为十进制数是负数时,如-16、-99其二进制负号位为1 ,则将二进制转换为八进制或十六进制时负号位参与数值运算,因此算出的八进制或十六进制不含负号位。
(注:一般来说,负号是人为规定地加在十进制数上,其他进制无负号概念,因为负号在二进制最前位体现,且参与进制转换)
36.以下只有在使用时才为该类型变量分配内存的存储类说明是(B)。
A:auto 和 static
B:auto 和 register
C:register 和 static
D:extern 和 register
解析:在用静态static与外部extern定义变量时,系统立刻给其分配内存,而定义自动类auto与强制放入寄存器register类型变量时,只有当使用时才分配内存。
37.下列表达式中,可作为C 合法表达式的是(B)。
A:[3,2,1,0]
B:(3,2,1,0)
C:3=2=1=0
D:3/2/1/0
解析:
(3,2,1,0)是逗号表达式
3/2/1/0 将提示:被零除或对零求模
38.
C语言常见易错题集(分析及解答)(仅可用于交流,勿用于商业用途)的更多相关文章
- C++笔试易错题集(持续更新)
1.如下代码输出结果是什么? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include<stdio.h> char *myString() { ...
- C语言:易错题
1. int x=y=z=0;//实际只声明了变量x,而变量y,z并没有声明.可以修改为:int x=0,y=0,z=0; 或int x,y,z; x=y=z=0; 2.int z=(x+y)++;/ ...
- 【笔试题】Java 易错题精选
笔试题 Java 易错题精选 1.写出下列程序的运行结果( )String 不变性Java 值传递 public class Test { public static void main(String ...
- Bug是一种财富-------研发同学的错题集、测试同学的遗漏用例集
此文已由作者王晓明授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 各位看官,可能看到标题的你一定认为这是一篇涉嫌"炒作"的文章,亦或是为了吸引眼球而起的标 ...
- js常见易错点
原文:http://www.jianshu.com/p/1c77853d4f01 前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函 ...
- Java五道输出易错题解析(避免小错误)
收集了几个易错的或好玩的Java输出题,分享给大家,以后在编程学习中稍微注意下就OK了. 1. 看不见的空格? 下面的输出会正常吗? package basic; public class Integ ...
- C/C++程序员面试易错题
c部分::::::::::::::::::::::::::::::::::: . 关键字volatile有什么含意? 并给出三个不同的例 子. [参考答案]一个定义为volatile的变量是说这变量可 ...
- Java五道输出易错题解析(进来挑战下)
转自:http://blog.csdn.net/lanxuezaipiao/article/details/41985243 收集了几个易错的或好玩的Java输出题,分享给大家,以后在编程学习中稍微注 ...
- 杭电OJ2039——三角形(c++)(易错题:数据类型不确定)
三角形 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
随机推荐
- 【Django简介001】
一.Django全貌 urls.py 网址入口,关联到对应的view.py中的一个函数(或者generic类),访问网址就对应一个函数 view.py 处理用户发送的请求,从urls.py中对应过来, ...
- 王之泰201771010131《面向对象程序设计(java)》第十五周学习总结
第一部分:理论知识学习部分 第13 章 部署应用程序 1.jar文件 a) java 程序的打包:编译完成后,员 将.class 文件压缩打包为 .jar 文件后, GUI 界面 程序就可以直接双击图 ...
- python2 与 python3的区别
python2 与 python3的区别 几乎所有的python2程序都需要一些修改才能正常的运行在python3的环境下.为了简化这个转换过程,Python3自带了一个2to3的实用脚本.这个脚本会 ...
- 移动质量(MQ)测试系列
移动质量(MQ)测试 向移动开发者提供专业.稳定.全面.高价值的自动化测试平台. 发现 APP 中的各类隐患,包括 APP 崩溃.各类兼容性.功能性.性能问题等等. MQ 的 5 大功能(兼容性测试. ...
- Vue-admin工作整理(十): Vuex-Actions(模拟接口请求实现组件字段更新)
思路:通过提交一个 mutation,而不是直接变更状态,它可以包括异步操作,通过请求接口,定义一个方法,第一个参数为对象,在里面能够提取到一些东西,比如:commit,这是一个方法,调用这个comm ...
- spring AOP AspectJ 定义切面实现拦截
总结记录一下AOP常用的应用场景及使用方式,如有错误,请留言. 1. 讲AOP之前,先来总结web项目的几种拦截方式 A: 过滤器 使用过滤器可以过滤URL请求,以及请求和响应的信息,但是过 ...
- js 上下滚动加停顿效果,js 跑马灯加停顿效果
<div id="middle"> <ul id="slide1"> <li>尾号1183的用户刚刚领取了 78.23元 的 ...
- 如何运行一个Vue项目
一开始很多刚入手vue.js的人,会扒GitHub上的开源项目,但是发现不知如何运行GitHub上的开源项目,很尴尬.通过查阅网上教程,成功搭建好项目环境,同时对前段工程化有了朦朦胧胧的认知,因此将环 ...
- Phonics 自然拼读法 ai, oa,ie, ee,or,j Teacher:Lamb
课上内容(Lesson) 1. “L” 的介绍 Light L e.g. Love Like Life Dark L e.g. Apple world call 2. ...
- CSS清除浮动的一种简便的方法
在使用的浮动的元素的父元素添加该CSS样式 .clear{ overflow: auto; }