牛客网-C++-2020.9.2
1. for循环语句能够被改写成(D)语句
A. 复合 B. if C. switch D. while
解析:
for循环可以写成while控制循环的次数,同时也可以被改写成do while语句
2. 以下程序的输出结果是(you&me)。
void main ()
{
char arr[2][4];
strcpy (arr[0],"you");strcpy (arr[1],"me");
arr[0][3]=’&’;
printf("%s \n",arr);
}
解析:
【解释】因为arr是一个2行4列的二维数组,每一行可以存放最多三个字符的字符串。
执行strcpy(art[0],"you”);后则将字符串"you”放置在数组arr的第一行上,即a[0][0]=’y’,
a[0][1]=’o’,a[0][2]=’u',a[0][3]=’\0’(字符串结尾符),执行strcpy(arr[1],”me”);后则将字符
串”me”放置在数组arr的第二行上,即a[1][0]=’m',a[1][1]=’e’,a[1][2]=’\0’(字符串结尾符),
由于二维数组在内存中是以行序存放的,执行arr[0][3]=’&’;后,第一行与第二行将视为
一个字符串"you&me”,而数组名则是该字符串的首地址。所以正确答案是A。
3. c++声明const int i,是在哪个阶段做到i只可读的?
答:编译
解析:const说明变量是常量,常量存储在常量区,在编译时就直接将其替换成相应的引用。
const int i = 10; 编译时候就和变量i做了对应,后面程序用到i的时候,直接从编译器的符号表中取10,不会再查找内存。在c++中 const修饰的变量是常量,分配在全局区的常量区,而我们的全局区和代码区在编译完了就已经确定,只有栈区和堆区才是运行是分配的。表示变量i是一个常变量,在编译阶段,程序后面只要出现i这个标识符都会被用10进行替换。这一点类似于宏,#define i 10.const用来说明所定义的变量是只读的。 这些在编译期间完成,编译器可能使用常数直接替换掉对此变量的引用。
源代码到可执行文件的过程:
源代码->预处理->编译->优化->汇编->链接->可执行文件
4. 运算符重载以后,其优先级和结合性都不能改变
解析:
void func(int *p)
{
static int num = 4;
p = #
(*p)--;
}
int main()
{
int i = 5;
int *p = &i;
func(p);
printf("%d", *p);
return 0;
}
最新文章
- (转)论python工厂函数与内建函数
- 重编译Linux命令源代码
- TCP/IP详解--发送ACK和RST的场景
- ERROR 1130: Host ’...′ is not allowed to connect to this MySQL server
- Android(java)学习笔记265:Android线程形态之 HandlerThread
- C#泛型比较大小
- SearchBox( 搜索框) 组件
- Git 操作标签的一些命令
- git中级技能
- 关于vertical-align和line-height的真知灼见
- Gradle 1.12 翻译——第十五章. 任务详述
- 优化之XML组件
- tofixed方法 四舍五入
- three.js初探,立体几何入手(一)
- Lua学习总结
- Vue2 第三天学习
- C6000 CSL 函数说明
- SQL Server 2008 R2提示评估期已过
- Python学习记录之(五)-----类进阶篇
- C++中的npos,size_t,size_type