今天的自我表述:
启动这个专栏的21天了,这也是我学习C/C++开始的第5个月,收获还是很多的,我在5个月之前还是个摆烂仔,从来没想过自己可以坚持这么久,讲真的已经习惯了这种感觉,所以并没有什么坚持不下去的,有时候逼自己一把才是对的。我记得在9月份才刚刚弄博客,现在也有2W访问了,时间的累积是非常恐怖的,我希望大家也可以,跟我一起,每天做题,每天学习!
这里要说一句,在牛客网的选择题,我会选择比较好的题记录下来,里面某些题的答案以及题目是有歧义的,所以大家不要担心自己,努力就好!
第一题
对两个字符 a 和 b 进行初始化,则以下叙述正确的是()
1 2 |
|
A:sizeof(a) > sizeof(b)
B:strlen(a) > strlen(b)
C:a与b数组完全相同
D:a和b中都存放字符串
答案及解析 A
本题考查strlen函数和sizeof运算符,相关博客在这:全网最详细的sizeof运算和strlen函数讲解(通过多种数据类型举例)_小程序面包园的博客-CSDN博客
A:正确,sizeof对于数组的计算,是算元素个数的,元素个数*元素类型所占字节数;但是字符串中包含了一个隐藏的\0,所以a的结果是6,b是5;
B:错误,strlen函数是计算字符串或字符数组的长度的,但是strlen函数是以\0为结束标志的,在字符串a中有隐藏的\0,但是b字符数组这样写法中没有隐藏的\0,所以长度是未知的,因为\0 的位置未知。
C:错误,a有隐藏的\0,位置就紧随F后面,而b中的\0位置未知,所以不相同
D:错误,字符串是默认在末尾有\0的
第二题
2.一个C程序的执行是从( )
A:本程序的main函数开始,到main函数结束
B:本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C:本程序的main函数开始,到本程序文件的最后一个函数结束
D:本程序文件的第一个函数开始,到本程序main函数结束
答案及解析 A
本题答案选择A,因为一个C语言程序执行就是从main函数开始的,只不过在main函数内部可以去调用其他的函数,然后再去不同的函数体执行,但是最后还是会回到main函数里,直到main函数结束。
第三题
3.对于条件表达式(k)?(i++):(i--)来说,其中的表达式k等价于()
A:k == 0
B:k == 1
C:k != 0
D:k != 1
答案及解析 C
这是一个条件表达式,k为真执行i++,k为假执行i--。又因为0为假,非0为真,所以这里的k等价于k != 0
第四题
4.运行以下程序后,如果从键盘上输入 65 14 <回车>,则输出结果为()
#include <stdio.h> int main() { int m, n; printf("Enter m,n;"); scanf("%d%d", &m,&n); while (m!=n) { while (m>n) { m=m-n; } while (n>m) { n=n-m; } } printf("m=%d\n",m); return 0; }
A:m=3
B:m=2
C:m=1
D:m=0
答案及解析 C
这个题就是不断进入循环算,细心一点就行
第五题
默认字节数为4字节,那么sizeof(rec)等于()
struct { char type; int num; char name[10]; }rec;
A:15
B:16
C:18
D:20
答案及解析 D
本题设计到结构体的内存规则问题,请看我的这篇博客:C/C++内存对齐规则(结构体、联合体、类)-CSDN博客