5G、6G系统算法标准实习生

  1. 在C语言中,结构体是一种复合数据类型,可以作为函数参数和返回值使用。B选项正确,因为结构体变量可以作为实参传递给函数,这是C语言支持的基本特性。
  2. 在C语言中二维数组初始化时,第一维的大小可以省略,但第二维的大小必须明确指定。
    int a[2][]形式是不允许的,定义二维数组时必须指定列数。
    含有空的初始化列表{}是不合法的。虽然可以省略部分元素(此时会自动补0),但不能使用空的{}。
  3. define宏确实是在预处理阶段进行文本替换和展开,而const常量是在编译运行阶段才会被使用。
    define宏定义的内容在代码中出现多少次,就会被替换多少次,而const常量在程序运行时只有一份实体,可以节省内存空间。
    define宏在定义时确实不会分配内存,它只是一个文本替换的规则。只有在预处理展开后的代码在运行时才会占用相应的内存。
    实际上只有const常量在编译阶段会进行类型安全检查,而define宏是在预处理阶段就完成了简单的文本替换,不会进行类型检查。
  4. 在面向对象编程中,析构函数(destructor)是一种特殊的成员函数,用于在对象被销毁时进行清理工作。每个类最多只能有一个析构函数。
  5. read()函数是专门用于从输入流中读取指定长度字节的函数。它可以精确控制要读取的字节数,并将读取到的字节存储到指定的缓冲区中。
    get()函数通常用于读取单个字符,不能指定读取长度。
    getline()函数主要用于读取一行字符串,直到遇到换行符,不能指定具体的字节长度。
    cin是C++的标准输入流对象,本身不是函数,而是通过重载运算符>>来实现输入,不能直接指定读取长度。
  6. 友元本质上是普通函数,不在类范畴中,没有 this、成员的概念。
    友元类不具有传递性、继承性、双向性。
  7. 选项中的作用域运算符"::"不能被重载,因为它是用来访问命名空间和类的作用域的特殊符号,这个运算符的语义必须保持不变,否则会影响代码的基本组织结构。
    对象成员访问运算符"."同样不能重载,因为它是用来直接访问对象成员的基本运算符,如果允许重载会导致对象成员访问的基本语义被改变。
    条件运算符(三目运算符)"?:"也不能被重载,因为它涉及到程序的基本控制流程,允许重载可能会造成程序逻辑的混乱。
  8. print(a[::2])输出[2, 6, 20, 40],因为[::2]表示从列表开始到结束,步长为2。也就是取下标为0,2,4,6的元素。
    print(a[-2:])输出[30, 40],因为[-2:]表示从倒数第二个元素开始到列表末尾的所有元素。负数索引-2表示倒数第二个元素。
  9. 函数定义中使用 "*," 符号表示其后的参数必须使用关键字参数的形式传递。
    参数b必须以关键字参数的形式传入,即必须写成fun(1,b=某个值)的形式。
  10. 函数test(a,b,*args)中:
  • a和b是位置参数,会分别接收前两个参数值11和22
  • *args会将剩余的所有参数打包成一个元组(tuple)
  • 当执行test(11,22,33,44,55,66,77,88,99)时,前两个参数11和22分别赋值给a和b,剩余的参数33-99会被打包到args元组中
  1. enumerate()函数会返回一个包含索引和元素的迭代器,其中i是索引(从0开始),j是对应的元素值。
    对于lists = [1, 2, 3, 4],循环过程如下:
    第一次:i=0, j=1, tmp += 0×1 = 0
    第二次:i=1, j=2, tmp += 1×2 = 2
    第三次:i=2, j=3, tmp += 2×3 = 8
    第四次:i=3, j=4, tmp += 3×4 = 20
  2. 将元组a转换为集合(set()函数),集合中的元素均为不重复数据,则结果为{1, 2, 3}。
    a = (1,),a表示元组
    a = (1)中的a表示int型数据
    元组为不可变数据类型,改不了数值
  3. Python的列表(list)类型本身并不包含add()方法
  4. get()方法有两种调用形式:
  • dict.get(key): 如果key存在则返回对应值,不存在则返回None
  • dict.get(key, default): 如果key存在则返回对应值,不存在则返回指定的default值
  1. 解释型语言的两个典型特性就是非独立性和效率相对较低
  2. list()函数可以将元组转换为列表,这是一个合法的类型转换操作,结果为[1,2,3]。
    对于元组(1,2,3),从索引1到倒数第1个元素(不包含),结果为(2)。元组支持切片操作
    元组支持重复操作,a*3会将元组重复3次,结果为(1,2,3,1,2,3,1,2,3)。
  3. 如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略,如果异常的类型和except之后的名称相符,那么对应的except子句将被执行
    如果一个异常没有与任何的except匹配,那么在程序运行时,就会返回到上层的try中,并显示错误类型
    一个try语句可能包含多个except子句,分别来处理不同的特定的异常
    一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组
  4. strs.append('T')程序报错,对于字符串没有append()函数
    对字符串索引为0的元素进行修改,运行会报错,因为字符串属于不可变数据类型
  5. 当使用命令行 "python my.py v1 v2" 运行Python脚本时,sys.argv是一个包含命令行参数的列表,其中:
    argv[0] 存储的是脚本文件名 "my.py"
    argv[1] 存储的是第一个参数 "v1"
    argv[2] 存储的是第二个参数 "v2"
    argv[3] 不存在,因为命令行只传入了两个参数
  6. 移位相加法实现乘法的优点是占用的资源较少;缺点是速度比较慢,一个结果的输出需要花费多个时钟周期,在高位宽乘法运算中极为明显
    并行乘法器是在verilog直接用*表示,这种乘法器要用综合工具得到乘法结果
    并行乘法器耗用资源多
posted @ 2025-08-04 19:34  BJliberty  阅读(4)  评论(0)    收藏  举报