栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【牛客网】每天刷题--第七天

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【牛客网】每天刷题--第七天

目录

1.已知 int i=3; 下面 do_while 语句循环次数为()

2. 下列关于C/C++的宏定义的说法中,不正确的是:

3.下面程序段的运行结果是()

4.如下c++程序

5.以下程序的输出是()

6.下列程序输出的 * 个数是()


1.已知 int i=3; 下面 do_while 语句循环次数为()
do {
    i--;
    cout << i << endl;
} while (i != 1);

答案:2

解析:

cout 表示输出语句,endl表示换行(即endline),二者中间的是输出内容

要通过while()才算一次,没通过就不算。

2. 下列关于C/C++的宏定义的说法中,不正确的是:

答案:A

解析:

宏定义由预编译器来处理,当你定义一个记号#define RATIO 1.652时,RATIO可能从未被编译器看到,而直接被预处理其移走了,如果你的定义是#define RATIO ,在预处理进行一个宏替换的时候,由于你调用地方的特殊性,你会获得一个莫名奇妙的错误,但是如果你使用的const double RATIO = 1.652,当你没有初始化这个变量,则在这个变量出错地方编译器将给出错误信息,可以方便程序设计者很快的找出错误所在。这就是在effective C++中作者所说的尽量以const enum inline 替换define 条款。

3.下面程序段的运行结果是()
char s[]="abcdefgh",*p =s; 
p += 3; 
printf("%dn", strlen(strcpy(p,"ABCD"))); 

答案:4

解析:

strcpy(p,"ABCD”)的功能是将字符串”ABCD”复制到指针变量p所指向的内存

单元中,其返回值是指针p所指内存单元的地址,然后计算p所指字符串的长度,显然是

4。所以正确答案是C。

4.如下c++程序
int i=0x22222222; 
char szTest[]="aaaa";  //a的ascii码为0x61 
func(I, szTest);    //函数原型为void func(int a,char *sz);

 请问刚进入func函数时,参数在栈中的形式可能为 (左侧为地址,右侧为数据—)

 答案:D

解析:

            1,对于x86,栈的增长方向是从大地址到小地址

            2,对于函数调用,参数的入栈顺序是从右向左

            3,函数调用入栈顺序是  右边参数-->左边参数-->函数返回地址

符合的只有D

C明显不对,即使栈增长方向是从小地址到大地址,0x00000000也明显不是函数返回地址

5.以下程序的输出是()
struct HAR {
    int x,y;
    struct HAR *p;
} h[2];
int main()
{
    h[0].x = 1;
    h[0].y = 2;
    h[1].x = 3;
    h[1].y = 4;
    h[0].p = &h[1];
    h[1].p = h;
    printf("%d,%d n", (h[0].p)->x, (h[1].p)->y);
}

 答案:3,2

解析:

h是大小为2的结构体数组,对其两个元素

进行赋值后得内存映像如图1-1所示,其输出结果应为3,

2。故正确答案是D。

 

  6.下列程序输出的 * 个数是()
class Point {
public:
    Point(int xx = 0, int yy = 0) {
        X = xx;
        Y = yy;
    }
    Point(Point &p) {
        X = p.X;
        Y = p.Y;
        cout << "*";
    }
private:
    int X, Y;
};

class Line {
public:
    Line(Point xp1, Point xp2) : p1(xp1), p2(xp2) {}
private:
    Point p1, p2;
};

答案:4

解析:

Line (Point xp1, Point xp2):p1(xp1),p2(xp2)中使用的是传值,myp1和myp2传值给xp1,xp2时使用了两次复制构造函数.

p1(xp1),p2(xp2)又使用了两次,因此一共是四次。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/849268.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号