牛客网C++笔试题——错题集19/04/12


准备面试之前刷点笔试题,每天做个几十道题,总结下错题:


  1. 下面说明不正确的是()。
    A. char a[10]=“china”;
    B. char a[10],*p=a;p=“china”;
    C. char *a;a=“china”;
    D. char a[10],*p;p=a=“china”;
    正确答案:D。我的答案:C
    分析:首先D肯定错了,因为数组初始化好像没这么写过,数组应该也不能这样赋值;其次C为什么是对的,因为初始化的时候a的地址自动初始化成0xcccccccc(VS2017),而且还 能赋值,本来以为指针不分配空间不能赋值的。。。


  1. 在下列选项中,全部都是C++关键字的选项为( )。
    A. while IF Static
    B. break char go
    C. sizeof case extern
    D. switch float integer
    正确答案:C。 我的答案:B
    分析:记错了,B里面的应该是goto,还有以为sizeof不算关键字,算函数,或者宏之类的,后来看了下是操作符???和加减乘除一样。。。


void main() 
{ 
int a=5,b=0,c=0; 
if (a=b+c) printf ("***\n"); 
else  printf("$$$\n"); 
} 
  1. 阅读上面程序:
    以上程序()。
    A. 有语法错不能通过编译
    B. 可以通过编译但不能通过连接
    C. 输出***
    D. 输出$$$
    正确答案:D。我的答案:C
    分析:看错了,应该是D。。。首先写代码的时候很明显两个等于号写成一个不会报错,其次应该是以表达式的值作为判断条件,当然运算结果是0,所以是D。


  1. 在 C 语言中,能代表逻辑值“真”的是()。
    A. True
    B. 大于0的数
    C. 非0整数
    D. 非0的数
    正确答案:D。我的答案:C
    分析:C++里面也应该是true把,所以A不对,当然C里面好像没有布尔类型。其次C和D不能确定,当然现在确定了,记下来就行了。


  1. 下面哪些调用转换支持可变长度参数 ()。
    A. cdecl
    B. stdcall
    C. pascal
    D. fastcal
    正确答案:A。我的答案:B
    分析:简直是黑人问号???好像上面两个见过,下面两个都不认识,后来查了一下才知道,问题还挺复杂的,等会再写一篇好好研究下


1 #include "string.h"
2 int main() 
3 {
4    char *src = "hello,world";
5    char *dest = NULL;
6    int len = strlen(src);
7    dest = (char *)malloc(len);
8    char *d = dest;
9    char *s = src[len];
10   while (len-- != 0)
11      *d++ = *s--;
12   printf("%s", dest);
13   return 0;
14     
15}
  1. 请找出上面代码中的所有错误。说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”。
    A. 第7行要为’\0’分配一个空间
    B. 第9行改成char * s = &src[len-1]
    C. 第12行前要加上*d = ‘\0’
    D. 第13行前要加上free(dest)释放空间
    正确答案:ABCD。 我的答案:ABC
    分析:这个东西感觉就最后稍微有点纠结,前面的都是实际性问题,D选项是规范性问题。说是程序如果全运行完了,系统会自动释放掉程序占用的内存,包括这里malloc申请的;但是实际上,按规范来说,你申请了空间就要自己释放,不然的话再一些项目里面可能会出现问题,一般也不会等到所有程序都运行完的情况,这个养成个好习惯就行了。

10题错了6题,看来还要好好的修炼。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值