C/C++专项练习 (三)
来源:互联网 发布:淘宝二级页面打不开 编辑:程序博客网 时间:2024/06/09 13:41
1.在32位操作系统gcc编译器环境下,下面程序的运行结果为()
#include <iostream>using namespace std;class A {public: int b; char c; virtual void print() { cout << "this is father’s fuction! " << endl; }};class B: A {public: virtual void print() { cout << "this is children’s fuction! " << endl; }};int main(int argc, char * argv[]) { cout << sizeof(A) << "" << sizeof(B) << endl; return 0;}
- 12 12
- 8 8
- 9 9
- 12 16
答案 A
考虑一下对齐,以及虚函数表
2.写出下列程序的运行结果。
#include "stdio.h"int sum(int a){ auto int c = 0; static int b = 3; c += 1; b += 2; return (a + b + c);}int main(){ int i; int a = 2; for (i = 0; i < 5; i++) { printf("%d,", sum(a)); } }
- 6,8,10,12,14,
- 8,10,12,14,16,
- 10,12,14,16,18
- 12,14,16,18,20
答案:B
水题。。。
3.在小端序的机器中,如果:
union X{int x;char y[4];};
如果:
X a;a.x=0x11223344;//16进制
则:______
- a.y[0]=11
- a.y[1]=11
- a.y[2]=11
- a.y[3]=11
- a.y[0]=22
- a.y[3]=22
答案 : D
union共用同一段内存
4.下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a索取数组元素中的次大值放在a[3],以此类推。
例如:若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7;按规则移动后,数据排列为:1,9,2,8,3,7,4,6,5。形参n中存放a所指数组中数据的个数。
规定fun函数中的max存放的当前所找的最大值,px存放当前所找最大值得下标。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
试题程序。
#include<stdio.h>#define N 9void fun(int a[ ], int n){ int i, j, max, min, px, pn, t; for (i = 0; i < n - 1; i += 2) { max = min = __; px = pn = i; for (j = i + 1; j < n; j++) { if (max < __) { max = a[j]; px = j; } if (min > __ ) { min = a[j]; pn = j; } } if (pn != i) { t = a[i]; a[i] = min; a[pn] = t; if (px == i) px = pn; } if (px != i + 1) { t = a[i + 1]; a[i + 1] = max; a[px] = t; } }}int main( ){ int b[N] = {9, 1, 4, 2, 3, 6, 5, 8, 7}; printf("\nThe original data:\n"); for (int i = 0; i < N; i++) printf("% 4d", b[i]); printf("\n"); fun(b, N); printf("\nThe data after mocinng \n"); for (int i = 0; i < N; i++) printf("% 4d", b[i]); printf("\n");}
- 0 a[i] a[i]
- a[i] a[j] a[j]
- 0 a[j] a[j]
- a[i] a[i] a[i]
8.如何引用一个已经定义过的全局变量?
- 用引用头文件的方式
- 用extern关键字方式
- 使用static方式
答案:A B
9.std::vector::iterator重载了下面哪些运算符?
- ++
- >>
- *(前置)
- ==
答案 : A C D
可以在VS里查一下 iterator的实现代码
10.指出下面程序哪里可能有问题?
class CBuffer{ char * m_pBuffer; int m_size; public: CBuffer() { m_pBuffer=NULL; } ~CBuffer() { Free(); } void Allocte(int size) (1) { m_size=size; m_pBuffer= new char[size]; } private: void Free() { if(m_pBuffer!=NULL) (2) { delete m_pBuffer; m_pBuffer=NULL; } } public: void SaveString(const char* pText) const (3) { strcpy(m_pBuffer, pText); (4) } char* GetBuffer() const { return m_pBuffer; } }; void main (int argc, char* argv[]){ CBuffer buffer1; buffer1.SaveString("Microsoft"); printf(buffer1.GetBuffer());}
- 1
- 2
- 3
- 4
答案: C D
1处没有对传入的参数做合法性检测,为什么算是对的?!
1 0
- C/C++专项练习 (三)
- C/C++专项练习 (二)
- C/C++专项练习 (一)
- C/C++专项练习 (四)
- C/C++专项练习 (五)
- 《C/C++专项练习》— (1)
- 《C/C++专项练习》 — (3)
- 刷题笔记:C/C++专项练习1
- 刷题笔记:C/C++专项练习2
- 刷题笔记:C/C++专项练习3
- 刷题笔记:C/C++专项练习4
- 刷题笔记:C/C++专项练习5
- 刷题笔记:C/C++专项练习6
- 刷题笔记:C/C++专项练习7
- 练习三 Problem C
- C练习(三)
- c 练习三
- C语言程序练习三
- php学习--3 流程控制语句,字符串操作
- phpstorm 8.x注册码
- HDU5011-Game-西安赛区网络赛-博弈论-水题
- 2.1.3 Debugging of Shaders (about vertex input parameters) 着色器的调试(关于顶点输入参数)
- 数据结构基础题(第一篇)
- C/C++专项练习 (三)
- Android UI设计:ViewFlipper使图片循环滑动
- 计算机中的有符号数和无符号数
- 智能灯之Android控制端
- PHP 杂项函数
- 二维数组、指针、步长
- 官网下载Google Chrome离线安装包
- ExtJS Grid 每个Cell都显示tooltip
- 当Python和R遇上北京二手房(下)