C语言易错题
h阿泉有个梦
从现在开始,从零开始。让我们一起追逐梦想,不懈努力!
加油、加油、加油!!! 【个人原因,停更1年,1年后续更~】
展开
-
在C语言中,表示静态存储类别的关键字是?
题目: 在C语言中,表示静态存储类别的关键字是:( )A、autoB、registerC、staticD、extern答案:C解析:C语言中提供了auto、register、extern、static四种存储说明符。auto是C语言的一个关键字,关键字主要用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。register是声明寄存器类的寄存器变量的关键字static 关键字不仅可以用来修饰..原创 2022-02-01 23:44:59 · 4100 阅读 · 0 评论 -
C语言中空语言出现在任何位置都不会影响程序运行?
题目:以下说法错误的是( )A、 复合语句在算法上被看做一条语句B、算法正确的程序最终一定会结束C、赋值表达式末尾加分号就构成赋值语句D、空语言出现在任何位置都不会影响程序运行答案: D解析:例如在for循环中循环条件为空时,则不判断循环条件,变成死循环!死循环会影响程序运行!!!for( ){}...原创 2022-02-01 20:32:53 · 3741 阅读 · 0 评论 -
(C语言)若已有定义 int x=2,y=0,z=19;执行以下程序段后,输出的值为?
若已有定义 int x=2,y=0,z=19;执行以下程序段后,输出的值为if(!(x>=y)) z=x+y;else z=x*y;z=x+2019;printf("%d",z);A.2019 B.2021 C.0 D.2038答案:B这边说明一下,有的教材给的答案可能是A,但是A是错误的!!!解析:if(!(x>=y)) => 条件为 若x不满足 >= y,则执行 z=x+y , 如果 x>=y...原创 2021-11-24 11:22:07 · 1727 阅读 · 1 评论 -
C语言中 int y[5]={0,1,3,5,7,9};为什么是错误的?
解释说明:int y[5] 相当于 y数组的长度为:5,也就是说y数组中具有5个元素。那么{0,1,3,5,7,9}一共有6个元素,元素数目超过数组长度。所以这题错误;若改为:int y[6]={0,1,3,5,7,9}; 或者 int y[5]={0,1,3,5,7}; 则正确!...原创 2021-11-22 19:13:51 · 1410 阅读 · 0 评论 -
C语言中为什么 int c[][3]={{3},{},{3}};是错的?
首先解释一下二维数组: 类型说明符 数组名[常量表达式][常量表达式];例如 float a[2][3] 相当于定义a为2x3的数组 a[0] _____ a[0][0] a[0][1] a[0][2]a => a[1]_____a[1][0] a[1][1] a[1][2] a[2] _____a[2][0] a[2][1] a[2][2]那么int c[][3]={{3},{},{3}};为什么是错的呢...原创 2021-11-22 19:05:52 · 1159 阅读 · 0 评论 -
设变了x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是?(if(b==0)m=1;n=2;在C语言中怎么错?)
设变了x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是 A:if(x++);B:if(x>y && y!=0); else y++;C:if(x>0) x-- else x++;D:if(y<0) {;}原创 2021-11-17 03:07:54 · 977 阅读 · 0 评论 -
下列条件语句中,功能与其他语句不同的是?
下列条件语句中,功能与其他语句不同的是 A: if(a) printf("%d\n",x); else printf("%d\n",y);B: if(a==0) printf("%d\n",y); else printf("%d\n",x);C: if(a!=0) printf("%d\n",x); else printf("%d\n",y);D: if(a==0) printf("%d\n",x); else printf("%d\n",y);解释说明:A:if(a) =>a值原创 2021-11-17 02:54:00 · 4260 阅读 · 0 评论 -
以下4个选项,不能看作一条语句的是?
以下4个选项,不能看作一条语句的是 A:{;}B:a=0,b=0,c=0;C:if(a>0);D:if(b==0)m=1;n=2;A: 空语句(C语言中规定有空语句,就是只有一个分号。)B:赋值语句(C语言中规定:没有定义类型的 => 默认为整型)原创 2021-11-17 02:45:48 · 4015 阅读 · 0 评论 -
关于逻辑运算符两侧运算对象的叙述中正确的是?
以下关于逻辑运算符两侧运算对象的叙述中正确的是 A:只能是整数0或1B:只能是整数0或非0整数C:可以时结构体类型的数据D:可以是任意合法的表达式原创 2021-11-17 02:33:51 · 4683 阅读 · 0 评论 -
有以下程序段: int x; for(x=3;x<6;x++) printf((x%2)?(“**%d“):(“##%d\n“),x);
有以下程序段: int x; for(x=3;x<6;x++) printf((x%2)?("**%d"):("##%d\n"),x);解释:在printf语句中使用了简化的条件语句,“?”前是条件,“:”前为条件成立时结果,后为不成立时结果;printf((x%2)?("**%d"):("##%d\n"),x)语句的含意:当x为奇数时,x以("**%d")格式打印,否则x以("##%d\n")格式打印。原创 2021-11-17 02:28:39 · 1890 阅读 · 1 评论 -
(int)(11.0/3+0.5) 为何值为4?
(int)(11.0/3+0.5) 为何值为4?详解!!!原创 2021-11-17 00:59:18 · 3521 阅读 · 2 评论 -
C语言:a=3,k=(++a)+(++a); 易懂
一、++a与a++区别:++a: a先+1后才进行计算a++: 先进行计算后再+1二、解说:k = (++a) + (a++) => 计算过程如下(这里就是“脱括号计算”的过程了,a=3)k = (a + (a++)) => 第一次脱括号时:a=4 (++a:a先加1 3+1 再计算 => a=4然后参与计算)k = (a+a) => 第二次脱括号时:a=5(因为第一次脱括号结束后a=4,然后进行++a时 a变成5)k=...原创 2021-11-12 23:35:15 · 2045 阅读 · 3 评论 -
a=2, b=(float)(1/a) 为什么不是0.5 (易懂,好理解)
a=2, b=(float)(1/a) 为什么不是0.5 (易懂,好理解)原创 2021-11-17 00:51:29 · 3753 阅读 · 2 评论