启动这个专栏的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中都存放字符串
本题考查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,因为一个C语言程序执行就是从main函数开始的,只不过在main函数内部可以去调用其他的函数,然后再去不同的函数体执行,但是最后还是会回到main函数里,直到main函数结束。
3.对于条件表达式(k)?(i++):(i--)来说,其中的表达式k等价于()
A:k == 0
B:k == 1
C:k != 0
D:k != 1
这是一个条件表达式,k为真执行i++,k为假执行i--。又因为0为假,非0为真,所以这里的k等价于k != 0
4.运行以下程序后,如果从键盘上输入 65 14 <回车>,则输出结果为()
- #include
- 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
这个题就是不断进入循环算,细心一点就行
默认字节数为4字节,那么sizeof(rec)等于()
- struct
- {
- char type;
- int num;
- char name[10];
- }rec;
A:15
B:16
C:18
D:20
本题设计到结构体的内存规则问题,请看我的这篇博客:C/C++内存对齐规则(结构体、联合体、类)-CSDN博客