系列练习题(C/C++)

这篇博客包含了C/C++的系列练习题目,涉及指针运算如*(p++)、*(p)++、*(++p),多线程编程组件如NSThread、NSOperationQueue和GCD,以及sizeof操作符的使用。此外,还讨论了SQL的COUNT函数和Linux后台启动进程的符号&。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、*(p++)、*(p)++、*(++p)

#include<stdio.h>
int main()
{
	int*p = NULL;
	int a[]={1,2,3,4};
	p=a;
/*  *(p++) += 100;
	printf("%d,%d,%d,%d,%d\n",*p,a[0],a[1],a[2],a[3]);*/ //2,101,2,3,4
	
/*	*(p)++ += 100;
	printf("%d,%d,%d,%d,%d\n",*p,a[0],a[1],a[2],a[3]);*/ //2,101,2,3,4
	
/*	*(++p) += 100;
	printf("%d,%d,%d,%d,%d\n",*p,a[0],a[1],a[2],a[3]);*/ //102,1,102,3,4
	return 0;
}
//*(p++),指针p先进行*运算,然后指针++
// *(++p),指针先++,再进行*运算 

2、以下属于ios常用的多线程编程组件有:

(1)NSThread

(2)NSOperationQueue

(3)GCD


3、已下代码输出的是

#include<stdio.h>
class A
{
	public:
		A(){ printf("A");}
		~A(){ printf("~A");}
};
class B: public A
{
	public:
		B(){ printf("B");}
		~B(){ printf("~B");}
};
    
int main()
{
    A* c = new B[2];
    delete[] c;
    return 0;
}



解析:
在C++中,析构函数的作用是:当一个对象被销毁时,调用析构函数对类对象和对象成员进行释放内存资源。
当我们定义一个指向派生类类型对象指针时,构造函数按照从基类到派生类的顺序被调用,但是当删除指向派生类的基类指针时,派生类的析构函数没有被调用,只是调用了基类的析构函数,此时派生类将会导致内存泄漏
我们需要将基类的析构函数声明为虚函数,此时在调用析构函数的时候是根据ptr指向的具体类型来调用析构函数,此时会调用派生类的析构函数。


4employee的表结构及数据结构如图所示,以下语句结果分别为:

ID      Name      Score
1       jack        1
2       tom         1
3       rose       null

select count(*) from employee;
select count(1) from employee;
select count(Score) from employee;

3 3 2

解析:Count(1)和Count(*)实际上的意思是,评估Count()中的表达式是否为NULL,如果为NULL则不计数,而非NULL则会计数。
比如 select count( ) from tablename  则结果为零,而 select count(*) 或者 count(1)或者count('anything') from tablename 则都可以统计到表中所有行数。


5、sizeof操作符

#include<iostream>
#include<stdio.h> 
using namespace std;
class A
{ 
   public:
	A(){};
	virtual play(){}; 
};
int main()
{
        A a;
	cout<<sizeof(a); //4
} 

class A{
/*
public:
 A(){};
 virtual play(){
 };*/
};

int main()
{
 A a;
 cout<<sizeof(a);//1
 } 

class A{

public:
 A(){};
 /*virtual play(){
 };*/
};

int main()
{
 A a;
 cout<<sizeof(a);//1
 } 


6、缺省的Linux系统中,从后台启动进程,应在命令的结尾加上符号&



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值