C语言基础知识

本文详细解释了C++编程中的可重入性、静态局部变量的作用、复合语句、宏的使用注意事项、字节序和内存对齐规则,以及函数模板、面向对象概念和重载的条件。还涉及了内存分配、指针运算和代码质量的最佳实践,包括数组长度计算和单元测试覆盖率的要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 为了使得函数具有可重入性,应使用static局部变量。
    A:正确
    B:错误
    正确答案: B

  2. 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对大括号构成的代码)。
    A:正确
    B:错误
    正确答案: B

  3. 不允许把多条短语句写在一行中,即一行只写一条语句。
    A:正确
    B:错误
    正确答案: A

  4. 下列对于宏的描述,不正确的是:()
    A:宏会带来性能的缺失
    B:宏不进行类型检查
    C:宏可以做到函数无法做到的功能
    D:编译时宏的处理早于函数
    正确答案: A

#include<stdio.h>
int main()
{
    unsigned char i=7;
    int j=0;
    for(;i>0;i-=3)
    {
       ++j;
     }
     printf("%d\n",j);
     return 0;
}

请问该程序的输出是多少?

A:2
B:死循环
C:173
D:172
正确答案: C

  1. int *p[4] 与选择项中的 说明 () 等价
    A:int p[4]
    B:int *p
    C:int *(p[4])
    D:int (*p)[4]
    正确答案: C

  2. 在分布式环境或不同CPU间的通讯环境中,下面的描述中正确的是( ):
    A:不同字节序的CPU之间的通讯时,必须进行字节序转换
    B:字节对齐方式是在编译时决定的,因此应尽量在不同的CPU环境上使用相同的字节对齐方式
    C:由于不同编译环境对位域的处理可能有差异,因此应尽量避免使用位域进行通讯
    D:由于不同编译环境对枚举值所占有空间的定义有差异,因此应尽量避免使用枚举值进行通讯
    正确答案: A、B、C、D

  3. 下面哪些操作符前后要加空格( )
    A:++
    B:!
    C:=
    D:+
    正确答案: C、D

  4. 下面几种描述中,哪些是正确的( ):
    A:编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护
    B:外部接口函数参数的合法性检查应该由函数的调用者负责
    C:函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出
    D:应设计高扇入、合理扇出(小于7)的函数
    正确答案: A、B、C

  5. 下面关于一个类的静态成员描述中,不正确的是()
    A:静态成员变量可被该类的所有方法访问
    B:该类的静态方法只能访问该类的静态成员函数
    C:该类的静态数据成员变量的值不可修改
    D:子类可以访问父类的静态成员
    E:静态成员无多态特性
    正确答案: C

main()
{
 char*a[]={"work","at","alibaba"};
 char**pa=a;
 pa++;
 printf("%s",*pa);
}

下列程序的执行结果是()
A:at
B:atalibaba
C:ork
D:orkatalibaba
E:编译错误
F:运行溢出
正确答案: A

  1. 关于函数模板,描述错误的是?
    A:函数模板必须由程序员实例化为可执行的函数模板
    B:函数模板的实例化由编译器实现
    C:一个类定义中,只要有一个函数模板,则这个类是类模板
    D:类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化
    正确答案: A、C、D

  2. 在C++面向对象编程语言中,以下阐述不正确的是
    A:接口中可以用虚方法
    B:一个类可以实现多个接口
    C:接口不能被实例化
    D:接口中可以包含已经实现的方法
    正确答案: A、D

  3. 下面描述中,表达正确的有()
    A:公有继承是基类中的public成员在派生类中仍是public的
    B:公有继承是基类中的private成员在派生类中仍是private的
    C:公有继承是基类中的protected成员在派生类中仍是protected的
    D:私有继承是基类中的public成员在派生类中仍是private的
    正确答案: A、C、D

  4. 下面哪些可能是重载的基本条件()(注意:是可能为重载的基本条件)
    A:参数的类型不同
    B:参数的顺序不同
    C:函数的返回值类型不同
    D:参数的个数不同
    正确答案: A、B、D

  5. 关于函数输入参数的正确描述都有哪些?()
    A:始终用const限制所有指向只读输入参数的指针和引用
    B:值传递只用于原始类型(int,float…)的输入参数
    C:优先按const的引用取得其他用户定义类型的输入
    D:如果函数需要修改其参数副本,则可以考虑通过值传递代替通过引用传递
    正确答案: A、C、D

  6. 关于变量,正确的说法是( )
    A:若全局变量仅在单个C文件中访问,则可以将这个变量修改为全局变量,以降低模块间的耦合度。
    B:全局变量仅由单个函数访问,则可以将这个变量修改为该函数的静态局部变量,以降低模块间的耦合度。
    C:设计和使用全局变量,静态全局变量,静态局部变量的函数时,需要考虑重入问题。
    D:静态全局变量过大,可能导致堆栈溢出。
    正确答案: A、B、C

  7. 对所调用的函数的错误返回码要仔细,全面地处理。
    A:正确
    B:错误
    正确答案: A

  8. 设计函数时,应该将尽可能多的功能在一个函数中实现。
    A:正确
    B:错误
    正确答案: B

  9. 严禁使用未经初始化的变量作为右值。
    A:正确
    B:错误
    正确答案: A

  10. 下面的程序执行后,输出结果为()

void main ()
{
    unsigned long ulA = 0x11000000;
    printf("\r\n%x", *(unsigned char *)&ulA);
    return;
}

A:0
B:1
C:2
D:3
正确答案: A

  1. 在32位系统中,有如下的变量定义,
    char str[] = “\\0”;
    char *pcColor = “blue1” ;
    char acColor[] = “blue1” ;
    请计算:
    sizeof(str) sizeof(pcColor)
    sizeof(acColor) 分别等于()

A:3 3 6
B:3 4 6
C:3 5 6
D:3 6 6
正确答案: C

  1. 以下程序的输出结果为(  )
    A:8
    B:5
    C:6
    D:7
    正确答案: B

  2. 下面的程序执行后,输出结果为()

int main()
{
    long *p = 0x100;
  p += sizeof(long);
  printf("%x", p);
}

A:101
B:100
C:110
D:120
正确答案: C

  1. 设有以下宏定义:
 #define      N         3
 #define      Y(n)      ((N+1)*n)
 则执行语句:z = 2 * (N + Y(5 + 1));后,z的值为(   )

A:出错
B:42
C:48
D:54
正确答案: C

  1. 根据代码质量保证优先原则,下面哪个应最优先考虑 ( )中。
    A:规范/可读性、正确性、稳定/安全性、可测试性、全局效率、局部效率、个人表达方式/个人方便
    B:可测试性、正确性、稳定/安全性、规范/可读性、全局效率、局部效率、个人表达方式/个人方便
    C:正确性、稳定/安全性、可测试性、规范/可读性、全局效率、局部效率、个人表达方式/个人方便
    D:正确性、可测试性、规范/可读性、稳定/安全性、全局效率、局部效率、个人表达方式/个人方便
    正确答案: C

  2. 给出以下定义:char acX[ ]= “hellow”;
    char acY[ ]= {‘h’,‘e’,‘l’,‘l’,‘o’,‘w’};
    则正确的叙述为()

A:数组acX和数组acY等价
B:数组acX和数组acY的长度相同
C:数组acX的长度大于数组acY的长度
D:数组acX的长度小于数组Y的长度
正确答案: C

  1. 以下程序运行后,输出结果是( )
void main(  )
{ 
    char *szStr = "abcde";
    szStr += 2;
    printf("%lu \n",szStr);
    return;
}

A:cde
B:字符c的ASCLL码值
C:"abcde"这个常串中字符c所在的地址
D:出错
正确答案: C

  1. 单元测试的覆盖率要去至少达到( ):
    A:语句覆盖
    B:条件覆盖
    C:逻辑覆盖
    D:分支覆盖
    正确答案: A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值