C 高级编程练习题

发布 2021-04-23 05:34:28 阅读 4604

1. 函数声明和函数定义有什么区别?

答:1) 函数声明是函数的原型,强调函数如何被使用,不包含函数的实现**;2) 函数定义给出函数的实现**。

2. const char *p1; char * const p2;的区别。

答:1) const位于星号的左侧, const用来修饰指针所指向的变量,即指针指向为常量;2)const位于星号的右侧,const用来修饰指针本身,即指针本身是常量。

3. delete与 delete 区别。

答:delete只会调用一次析构函数,而delete会调用动态分配的多个对象的析构函数。

4. 解释堆和栈的区别。

答:1) 栈:由编译器自动分配释放,存放函数的参数、局部变量等。

通常在超出作用域后由系统自动释放。2) 堆:一般由程序员负责分配与释放,若程序员不释放,占用的内存直到程序结束才由os**。

5. 在什么时候需要使用“常引用”?

答:如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。

6. 全局变量和局部变量在内存中的区别。

答:1) 全局变量储存在静态数据区,程序加载时分配并初始化,程序结束时释放;2) 局部变量在栈中,进入变量作用域后分配,超出其作用域后释放;3) 全局变量不初始化会执行缺省初始化,如整型变量缺省初始化为0,局部变量不初始化不会执行缺省初始化,往往为垃圾值。

7. 简述内存的分配方式。

答:1) 静态存储区,是在程序编译时就已经分配好的,在整个运行期间都存在,如全局变量、常量。2) 栈上分配,函数内的局部变量和形参在栈上分配。

3) 堆上分配,动态分配,用new分配内存,用delete来释放内存。

8. 指针的几种典型应用情况。

int *p[n];-指针数组,每个元素均为指向整型数据的指针。

int (*p) [n];-指向一维数组的指针,这个一维数组含有n个整型数据。

int *p返回指向整型指针的函数。

int (*p指向函数的指针,要求函数无参并返回整型。

9. 说明0、’\0’、’0’、“0”的区别。

答:0表示整数常量,值为0;’\0’表示ascii码值为0的字符常量;’0’表示ascii码值为48的字符常量;“0”为字符串常量,其中包含’0’和’\0’两个字符。

10. 说明下面程序中存在的问题。

#include

int main()

int arr[10], p=arr;

int i;

for( ;p cin>>*p;

for(; a cout<<*arr<<‘0’;

return 0;

答:arr为数组名,对应地址不可修改,不能应用++arr运算。

11. 有如下定义,请写出访问a[2][3]元素的不同方法。

int a[4][5];

int (*p)[5] =a;

答:a[2][3]、p[2][3]、*a[2]+3)、*p[2]+3)、*a+2)+3)、*p+2)+3)

1. 写出下面程序的运行结果。

#include

using namespace std;

int main()

double numone = 2.5;

int numtwo = 3;

double quotient = numone/2;

cout<<"quotient: "quotient = numtwo/2;

cout<<"quotient: "return 0;

2. 写出下面程序的运行结果。

#include

using namespace std;

int main()

int number = 103;

int digit, tens, hundreds;

digit = number %10;

tens = number/10)%10;

hundreds = number/100)%10;

cout<<"hundreds: "tens<<"digit: "return 0;

3. 运行下面的程序3次,分别输入,写出每次程序执行的输出结果。

#include

using namespace std;

int main()

int grade;

cout<<"enter a grade(1-100):

cin>>grade;

if(grade>=85)

cout<<"excellent";

else if(70<=grade<85)

cout<<"pass";

elsecout<<"fail";

return 0;

4. 写出下面程序的运行结果。

#include

using namespace std;

bool check( int score, int baseline)

if( score >=baseline )

return true;

return false;

bool check(int score, int baseline = 60);

int main()

int score=65;

if( check(score) =true)

cout<<"passed!";

elsecout<<"failed!";

if( check(score, 70) =true)

cout<<"passed!";

elsecout<<"failed!";

return 0;

5. 写出下面程序的运行结果。

#include

using namespace std;

int fun(int a);

double fun(double a);

char fun(char a);

int main()

cout< cout< cout< cout< return 0;

int fun(int a)

double fun(double a)

char fun(char a)

char result=a;

if(a>='a'&&a<='z')

result=a-32;

if(a>='a'&&a<='z')

result=a+32;

return result;

6. 写出下面程序的运行结果。

#include

using namespace std;

int gcd(int m, int n)

if(n==0)

return m;

return gcd(n, m%n);

int main()

cout<<"1:"

7. 写出下面程序的运行结果,假定输入"hello_123"。

#include

using namespace std;

int main()

char word[50];

cout<<"enter a word:";

cin>>word;

for(int i=0; word[i]!=0'; i)

cout<<"upper case: "return 0;

8. 写出下面程序的运行结果,假定输入"hello123_world"。

#include

using namespace std;

int main()

char word[50];

cout<<"enter a string:";

cin>>word;

int pos=0;

for(int i=0; word[i]!=0'; i)

word[pos]='0';

cout<<"result: "return 0;

9. 写出下面程序的运行结果。

#include

using namespace std;

int main()

int i,j;

for(i=0;i<5;i++)

for(j=i;j<5;j++)cout<<"

cout< }

return 0;

10. 写出下面程序的运行结果。

#include

using namespace std;

int sum( int a, int b=1, int c=3 )

return a+b+c;

int main()

int sum(int a, int b=3, int c=4);

cout< cout< cout< return 0;

11. 写出下面程序的运行结果。

#include

using namespace std;

char & elem(char *s, int n)

return s[n];

int main()

char str=helloworld";

elem(str,1)= a';

cout< return 0;

12. 写出下面程序的运行结果。

#include

using namespace std;

int x=10;

int main()

int x=15;

cout<

C 高级编程

第六章熟悉类与对象。6.1 电子 示例介绍。6.2 编写类。6.2.1 类定义。1.方法与成员。2.访问控制。3.声明的顺序。6.2.2 定义方法。1.访问数据成员。2.调用其他方法。指针。6.2.3 使用对象。1.堆栈中的对象。2.堆中的对象 6.3 对象的生命周期。6.3.1 创建对象。1.编写...

高级C 编程题库

高级语言程序设计 编程题。1.从键盘输入3个整数,求其中的最大数和最小数,并输出结果。2.从键盘上输入一个3 3的整数矩阵,求其各行的平均值并输出,输出时保留两位小数。3.输出x2的值,x取值从0到10。4.从键盘上输入一个3 4的整数矩阵,要求输出其最大元素的值,以及它的行号和列号。5.编写一个程...

c高级编程指南

第1章文件结构。每个c c程序通常分为两个文件。一个文件用于保存程序的声明 declaration 称为头文件。另一个文件用于保存程序的实现 implementation 称为定义 definition 文件。c c程序的头文件以 h 为后缀,c程序的定义文件以 c 为后缀,c 程序的定义文件通常以...