《c++语言程序设计教程》习题及解答(6)

2019-08-31 12:42

int a=90; p=&a;

cout<<\ int b=50; rp=&b;

cout<<\ }

答: a=90,*rp=90 b=50,*rp=50

4.5 编程题(使用指针)

1. 已知4个字符串,编程输出它们中最小的一个。 答:编程如下:

#include #include

void swap(char p1[],char p2[]); void main() { char s1[10]=\ if(strcmp(s1,s2)) swap(s1,s2); if(strcmp(s3,s4)) swap(s3,s4); if(strcmp(s1,s3)) swap(s1,s3); cout<

void swap(char p1[],char p2[]) { char p[10]; strcpy(p,p1); strcpy(p1,p2); strcpy(p2,p); }

2. 将一个长度为n的字符串,编程实现其逆序输出。 答:编程如下:

#include #include void inverse(char []); void main() { char s[50]; cout<<\输入一个字符串:\ cin>>s; inverse(s); cout<<\反序后的字符串是 \}

void inverse(char p[]) { int n=strlen(p); int limit=n/2; for(int i=0;i

第 26 页 共 77 页

{ }

char t=p[i]; p[i]=p[n-i-1]; p[n-i-1]=t;

}

3. 已知一个二维int型数组,编程求出它的最小的元素值。 答:编程如下:

#include void main() { int n[3][2]={{3,8},{-5,9},{2,4}}; int lim=n[0][0]; for(int i=0;i<3;i++) for(int j=0;j<2;j++) if(n[i][j]

4. 已知字符型指针数组中存放若干个字符串,编程从键盘上修改其中某个字符串。 答:编程如下:

#include #include

char *str[5]={\char *modify(int,char []); void main() { int n; char s[10]; cout<<\修改第几个字符串:\ cin>>n; cout<<\该字符串修改为:\ cin>>s; cout<<\修改后的字符串是 \ cout<<\修改后字符指针数组中的字符串如下:\\n\ for(int i=0;i<5;i++) cout<

char *modify(int n,char s[]) { return *(str+n-1)=s; }

5. 有n个小孩排成一圈。从第1个小孩开始作1至3报数,凡报数为3的小孩从圈中出

来,求最后出圈的小孩的顺序号是多少? 答:编程如下:

#include void main() {

第 27 页 共 77 页

}

int n,num[100];

cout<<\输入排号人数:\cin>>n; int *p=num;

for(int i=0;i

int k=0,a=0; while(a

while(*p==0) p++;

cout<<\最后留下的是第 \号\

4.6 简单回答下列问题

1. 指针与一般变量有何不同?

答:指针是变量,它不同于一般量。其一是指针存放的是地址值,其二指针的类型是它所指向的变量类型。

2. 指针可以作哪些运算? 答:指针的运算有4种:

赋值运算

加减一个整型数运算

在一定条件下,两个指针可以比较运算 在一定条件下,两个指针可以相减运算

3. 指针可以作数组元素,这种数组叫什么数组? 答:指针作数组元素的数组称为指针数组。

4. 什么是字符指针?字符指针与字符数组有何不同?

答:指符指针是指向字符串的指针。字符指针是变量指针,字符数组名是常量指针。 5. 什么是引用?引用有哪些特征?

答:引用不是变量,是变量或对象的别名。引用的值和地址值都是被引用的变量的值和地址值。当被引用的变量值被改变,则引用的值也被改变,反之亦然。

第5章 函数

第 28 页 共 77 页

练习题5

5.1 判断题

√ 1.函数的调用可以嵌套,函数的定义不能嵌套。

× 2.C++语言中,函数可以用原型说明,也可用简单说明。 × 3.定义函数时,存储类可以缺省,数据类型也可以省略。 × 4.函数可以没有参数,但是不能没有返回值。

× 5.函数定义时必须给出函数体,函数体内至少有一条语句。 √ 6.没有参数的两个函数是不能重载的。

√ 7.函数调用方式有传值调用和引用调用两种,传值调用中又分传值和传址两种。 √ 8.函数的存储类有外部的和静态的两种,它们的作用域分别是程序级的和文件级的。 × 9.没有返回值的函数不能设臵为内联函数。

× 10.函数可以设臵默认的参数值,默认参数值必须设臵在函数定义时的形参上。 5.2 单选题

1.当一个函数没有返回值时,该函数类型应说明为( A )。 A.void B.int C.无 D.任意

2.下列关于设臵函数默认的参数值的描述中,错误的是( C )。 A.可对函数的部分参数或全部参数设臵默认值

B.在有函数说明时,默认值应设臵在函数说明时,而不是定义时 C.设臵函数默认参数值时,只可用常量不可用含有变量的表达式 D.设臵函数参数默认值应从右向左设臵

3.下列关于被调用函数中return语句的描述中,错误的是( D )。 A.一个函数中可以有多条return语句 B.return语句具有返回程序控制权的作用 C.函数通过return语句返回值时仅有一个 D.一个函数中有且仅有一条return语句 4.函数返回值的类型是由( B )决定的。 A.调用该函数的调用函数的类型 B.定义该函数时所指定的类型 C.return语句中表达式的类型

D.接收函数返回值的变量或对象的类型

5.下列设臵函数参数默认值的说明语句中,错误的是( C )。 A.int fun(int x , int y=10); B.int fun(int x=5, int =10); C.int fun(int x=5, int y); D.int fun(int x , int y=a+b); (其中,a和b是已定义过具有有效值的变量)

6.下列选择重载函数的不同实现的判断条件中,错误的是( D )。 A.参数类型不同 B.参数个数不同 C.参数顺序不同 D.函数返回值不同

7.已知:int fun (int &a),m=10;下列调用fum()函数的语句中,正确的是( C )。 A.fun(&m); B.fun (m*2); C.fun (m); D.fun (m++);

8.在函数的引用调用中,函数的实参和形参分别应是( C )。 A.变量值和变量 B.地址值和指针 C.变量名和引用 D.地址值和引用

9.在函数的传址调用中,函数的实参和形参分别应是( B )。 A.变量值和变量 B.地址值和指针

第 29 页 共 77 页

C.变量名和引用 D.地址值和引用 10.说明一个内联函数时,应加关键字是( A )。

A.inline B.static C.void D.extern 5.3 填空题

1.如果将调用一个函数的过程分为3个步骤,第1步是 转去执行被调用函数 ,第2步是 执行被调用函数的语句 ,第3步是返回操作。

2.函数的存储类分两种,它们分别是 外部 函数和内部函数,其中 内部 函数的存储类说明不可省略,该说明符是 static 。

3.使用关键字inline说明的函数称为 内联 函数,具有相同函数名但具有不同实现的函数称为 重载 函数。

4.在调用一个函数过程中可以直接或间接地调用该函数,则该函数称为 被调用 函数。这种调用称为 嵌套 调用。

5.在引用调用中,函数实参用 变量名 ,形参用 引用名 。 5.4 分析下列程序的输出结果 1.

#include int fun(int n) {

int p(1),s(0);

for(int i(1);i

p*=i; s+=p; }

return s; }

void main() {

int s=fun(4); cout<

2.

#include void fun(); void main() {

for(int i(0);i<4;i++) fun(); }

void fun() {

int a(0); a++; static int b; b++;

cout<<\ } 答: a=1,b=1 a=1,b=2 a=1,b=3

第 30 页 共 77 页


《c++语言程序设计教程》习题及解答(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:三相短路电流计算

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: