| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言试题十道(第四期) -> 正文阅读 |
|
[C++知识库]C语言试题十道(第四期) |
1.代码段 #include <stdio.h> int main() {
正确答案:?A 解析: 2.?补充下面函数代码: 如果两段内存重叠,用 memcpy 函数可能会导致行为未定义。 而 memmove 函数能够避免这种问题,下面是一种实现方式,请补充代码。 #include <iostream> using namespace std; void *memmove(void *str1, const void *str2, size_t n) { char *pStr1 = (char *)str1; char *pStr2 = (char *)str2; if () { for (size_t i = 0; i != n; ++i) { *(pStr1++) = *(pStr2++); } } else { pStr1 += n - 1; pStr2 += n - 1; for (size_t i = 0; i != n; ++i) { *(pStr1--) = *(pStr2--); } } return (); } pStr1 < pStr2 str1 pStr1+n < pStr2 str2 pStr1+n < pStr2 || pStr2+n < pStr1 str2 pStr2+n < pStr1 str1 正确答案:A 解析: 原型:void *memmove( void* dest, const void* src, size_t count ); 头文件:<string.h> 功能:由src所指内存区域复制count个字节到dest所指内存区域。 如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。但复制后src内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。? 当pStr1< pStr2时,即?pStr1的首地址小于???pStr2的首地址,正序拷贝 当pStr1> pStr2时,即?pStr1的首地址大于???pStr2的首地址,倒叙拷贝 3.? 在 C 语言中,C99除外,一维数组的定义方式为: 元素类型 数组名[E]; E 为(?? )。 常量表达式 整型表达式 整型常量或整型表达式 整型常量表达式 正确答案:D 4.设有 int x=11; 则表达式 (x++ * 1/3) 的值是( ) 3 4 11 12 正确答案:A 解析: x++是在;之后执行的,相当于(x*1/3);x++; (x*1/3)表达式算出的结果值为Int类型,自动去小数点 结果为3 5.以下正确的函数原型为() f1( int x; int y ); void f1( x, y ); void f1( int x, y ); void f1( int, int ); 正确答案;D 解析: 函数原型:指明函数的名字,返回的类型,有几个参数,这几个参数是什么类型,不需要函数体,也不需要形式参数的名字,其中用分号作为原型的结束符。 6. 执行下面代码后
后sum的值为(?) 7 8 9 10 正确答案:B 解析: sum = num ++ .到这里为止,和后面的++num. sum++完全是2段语句。 所以第一段。num++ 先赋值 7 给 sum, 再给自己加1. 此时 sum =7, num =8. 第二段:sum++,++num,? 各自给自己加一。 结果 sum =8, num = 9 7.对于char *pa[7]的描述中,正确的是( ) pa是一个指向数组的指针,所指向的数组是7个char型元素 pa是一个指向某数组中第7个元素的指针,该元素是char型变量 pa[7]表示数组的第7个元素的值,是char型的值 pa是一个具有7个元素的指针数组,每个元素是一个char型指针 正确答案:D 8.在C++, 基类至少含有一个虚函数时,下列哪一个可以做为对象继承之间的转换 static_cast dynamic_cast const_cast reinterpret_cast 正确答案:B 解析: dynamic_cast :? 继承体系安全向下转型或跨系转型;找出某对象占用内存的起始点 static_cast: 同旧式C转型,如int 到double const_cast: 常用于去除某个对象的常量性 reinterpret_cast 不具备移植性,常见用途是转化函数指针类型 9.下列叙述正确的是: 预处理命令行必须位于源文件的开头 在源文件的一行上可以有多条预处理命令 宏名必须用大写字母表示 宏替换不占用程序运行时间 正确答案:D 解析:?预处理指令指示在程序正式编译前就由编译器进行的操作,可放在程序中任何位置。源文件的每一行只能有一条预处理命令,如果指令一行放不下,可以通过反斜杠“/”进行控制。宏名通常由大写字母表示,而非必须宏是在预编译期间进行的,将代码中的指定字符转换,转换结束后,再进行编译,所以不占用程序运行时间 10. 对于代码段
则对data中的a成员的正确引用是() (*p).data.a (*p).a p->data.a p.data.a 正确答案:B 解析: 1、如果是指针指向结构体,就用? ?->? (“形状像个箭头,表示指向,记为指针访问结构体成员的方式”) 2、结构体类型名访问结构体成员变量 用,成员访问运算符? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 9:54:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |