IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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.turbo c环境下,下面程序运行的结果是()

1

2

3

4

5

6

7

8

9

10

11

#include?<stdio.h>

int?main()?{

????printf("\n");

????int?a[5]?=?{1,?2,?3,?4,?5};

????int?*p,?**k;

????p?=?a;

????k?=?&p;

????printf("%d",?*(p++));

????printf("%d",?**k);

????return?(0);

}

A:11
B:21
C:22
D:12

答案:D

解析: 程序首先定义了一个一维数组a,赋其初值,并定义一个同类型的指针变量p和一个指向指针的指针变量k,然后让指针变量p指向数组的首地址,接着将指针变量p的地址值赋给指向指针的指针变量k。在第一条输出语句中,首先我们需要弄清楚*(p++)的作用,它是先调用指针变量p的值,然后使其自加,输出效果等价于*p,因此,最后输出的结果是数组中的第一个元素。在第二条输出语句中,我们需要弄明白**k的作用,指向指针的指针变量类似于指针变量,如果用**k表示一个数值,可以确定这条输出语句的输出结果是一个数值,而非地址,从表达式k=&p可以看出,k的值是指针变量p的地址值,p的值改变后,k能实时得到改变,那么在第一条输出语句对p的改变,在第二条输出语句中得到了体现。因此,**k输出的是数组中的第二个元素.

2.

使文件指针重新定位到文件读写的首地址的函数是()

正确答案:C

A:ftell( )
B:fseek( )
C:rewind ()
D:ferror ()

解析:

??????????A中ftell() 函数用于得到文件位置指针当前位置相对于文件首的偏移字节数;

????????? B中fseek()函数用于设置文件指针的位置;

????????? C中rewind()函数用于将文件内部的位置指针重新指向一个流(数据流/文件)的开头;

????????? D中ferror()函数可以用于检查调用输入输出函数时出现的错误。

3.

STL中的一级容器有:

A:vector, deque, list, set, multiset, map, multimap.
B:序列容器,关联容器,容器适配器
C:set, multiset, map, multimap.
D:vector, deque, list.

正确答案:D

解析:

STL中一级容器是指, 容器元素本身是基本类型, 非组合类型。

set, multiset中元素类型是pair<key_type, key_type>;

map, multimap中元素类型是pair<key_type, value_type>;

4.以下哪项不属于STL container()

A:stack
B:queue
C:multimap
D:string

答案:D

解析:

序列容器:动态数组vector双端队列deque(本质是动态数组加索引),链表list。

关联容器:set,map,multiset,multimap,bitset(叫bit_array更合适)。
容器适配器:stack,queue,priority_queue

5.C语言结构体类型变量在程序执行期间()

A:所有成员一直驻留在内存中
B:只有一个成员驻留在内存中
C:部分成员驻留在内存中
D:没有成员驻留在内存中

正确答案:A

解析:结构体变量不管其包含有多少个成员,都应当看成是一个整体。在 程序运行 期间,只要在变量的生存期内,所有成员一直驻留在内存中,不可能出现有的成员驻留内 存,有的成员不驻留内存的情况。

6.

以下?scanf?函数调用选项中,?错误?的是()

1

2

3

4

5

struct?T?{

????char?name[20];

????int?age;

????int?sex;

}?a[5],?*pa=a;

scanf("%s",a[0].name);
scanf("%d", &pa[0].age);
scanf("%d",&(pa->age));
scanf("%d", pa->age);

正确答案:D

7.

下列程序段执行后,输出d的值为()

1

2

3

4

5

6

7

void main()

{

???int a=1,b=0,c=-1,d=0;

???d=++a||++b&&++c;

???cout<<d<<endl;

???return;

}

A:1
B:2
C:3
D:0

正确答案:A

解析:

运算符优先级:&&>||>=

所以先计算++b&&++c,++c为0,所以整体是false=0,再计算++a||0,++a为true,

所以整体是true=1,所以d=1

8.

以下只有在使用时才为该类型变量分配内存的存储类型的是()

A:auto和static
B:auto和register
C:register和static
D:extern和register

?正确答案:B

解析:局部变量也叫自动变量 在函数里定义int a也就是auto int a a的作用域只在这个函数里 为了节省内存空间,优化性能,编译器通常会将一次性使用的变量分配在栈上(先进后出,生命周期结束就出栈)。这样执行不同的函数的时候就会在一个栈上进行出入栈操作,更高效的利用内存。 一个变量用register来修饰,就意味着该变量会作为一个寄存器变量,让该变量的访问速度达到最快。一个程序逻辑中有一个很大的循环,循环中有几个变量要频繁进行操作,这些变量可以声明为register类型。

9.

数组a的定义语句为“float a[3][4];”,下列()是对数组元素不正确的引用方法。

A:a[i][j]
B:*(a[i]+j)
C:*(*(a+i)+j)
D:*(a+i*4+j)

正确答案:D

解析:

二维数组可以看成是指针的指针,b[][] = **b; 比如b[3][4]; 它是一个3行4列的二维数组,也可以看成是二级指针,一级存放的是行指针,然后每个行指针里面其实又是指向了4个列元素。 *(*(b+i)+j),*(b+i)是先取行指针,然后+j偏移到所要的列,然后*取值就得到i行j列的数据了。 D项是*a才对

10.

C++是不是类型安全的?

A:是
B:不是

正确答案:B

解析:可以参考:谈谈C++类型安全_btwsmile's blog-CSDN博客_c++类型安全icon-default.png?t=LA92http://blog.csdn.net/ixsea/article/details/6693178

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:09:27  更:2021-11-22 12:10:04 
 
开发: 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 7:07:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码