C++PrimerPlus第六版_复习题-第七章
2022/4/20 17:12:44
本文主要是介绍C++PrimerPlus第六版_复习题-第七章,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
7.12
1 7.12 复习题 2 1. 使用函数的3个步骤是什么? 3 函数原型 函数定义 函数调用。 4 5 2. 请创建与下面的描述匹配的函数原型。 6 a. igor( )没有参数, 且没有返回值。 7 void igor(void); 8 b. tofu( )接受一个int参数, 并返回一个float。 9 float tofu(int value); 10 c. mpg( )接受两个double参数, 并返回一个double。 11 double mpg(double value1,double value2); 12 d. summation( )将long数组名和数组长度作为参数, 并返回一个long值。 13 long summation(long arr[],int size); 14 e. doctor( )接受一个字符串参数(不能修改该字符串) , 并返回一个double值。 15 double doctor(const char *str]; 16 f. ofcourse( )将boss结构作为参数, 不返回值。 17 void ofcourse(boss mpg); 18 g. plot( )将map结构的指针作为参数, 并返回一个字符串。 19 char * plot(map * mpg); 20 21 3. 编写一个接受3个参数的函数:int数组名、数组长度和一个int值, 22 并将数组的所有元素都设置为该int值。 23 void fun(int arr[],int size, int value) 24 { 25 for(int i=0;i<size;++i) 26 arr[i]=value; 27 } 28 29 4. 编写一个接受3个参数的函数: 指向数组区间中第一个元素的指 30 针、 指向数组区间最后一个元素后面的指针以及一个int值, 并将数组中 31 的每个元素都设置为该int值。 32 void fun(int * begin,int * end,int value); 33 for(int a=begin;a!=end;++a) 34 *a = value // 与答案不一致 35 5. 编写将double数组名和数组长度作为参数, 并返回该数组中最大值的函数。该函数不应修改数组的内容。 36 double fun(const double arr[], int size) 37 { 38 double = max; 39 max = arr[0]; 40 for(int i=1;i<size;++i) 41 (arr[i]>max)?(max = arr[i]):; 42 } 43 6. 为什么不对类型为基本类型的函数参数使用const限定符? 44 将const限定符用于指针,以防止指向的原始数据被修改。 程序传递基本类型(如int或double)时,它将按值传递, 以便函数使用副本。 这样, 原始数据将得到保护。 45 46 7. C++程序可使用哪3种C-风格字符串格式? 47 char * str ; char str[] ; "somestrs" ;string str; 48 8. 编写一个函数, 其原型如下: 49 int replace(char *str, char c1, char c2); 50 该函数将字符串中所有的c1都替换为c2, 并返回替换次数。 51 int replace(char *str, char c1, char c2) 52 { 53 int count=0; 54 char ch; 55 while(*str) 56 { 57 if(*str == C1){ 58 *str = c2; 59 ++count;} 60 ++str; 61 } 62 return count; 63 } 64 65 9. 表达式*"pizza"的含义是什么? "taco" [2]呢? 66 由于C++将“pizza”解释为其第一个元素的地址, 因此使用*运算 67 符将得到第一个元素的值, 即字符p。 由于C++将“taco”解释为第一个元 68 素的地址, 因此它将“taco”[2]解释为第二个元素的值, 即字符c。 换句话 69 来说, 字符串常量的行为与数组名相同。 70 71 10. C++允许按值传递结构, 也允许传递结构的地址。 如果glitz是 72 一个结构变量, 如何按值传递它? 如何传递它的地址? 这两种方法有何 73 利弊? 74 fun(glitz); void fun(glitz gmp); //按值传递它, 只要传递结构名glitz即可 75 fun(&glitz); void fun(glitz * gmp); 76 77 11. 函数judge( )的返回类型为int, 它将这样一个函数的地址作为参 78 数: 将const char指针作为参数, 并返回一个int值。 请编写judge( )函数 79 的原型。 80 int fun(const char* ); //int *pf(const char* ) 81 答: int judge(int *pf(const char* )); 82 83 12. 假设有如下结构声明: 84 struct applicant{ 85 char name[30]; 86 int credit_ratings[3]; 87 }; 88 a. 编写一个函数, 它将application结构作为参数, 并显示该结构的 89 内容。 90 void fun(applicant mpg) 91 { 92 cout<<mpg.name<<endl; 93 for(int i=0;i<3;++i) 94 cout<<mpg.credit_ratings[i]; 95 cout<<endl; 96 } 97 98 b. 编写一个函数, 它将application结构的地址作为参数, 并显示该 99 参数指向的结构的内容。 100 void fun(applicant *mpg) 101 { 102 cout<<mpg->name<<endl; 103 for(int i;i<3;++i) 104 cout<<mpg->credit_ratings[i]; 105 cout<<endl; 106 } 107 108 13. 假设函数f1()和f2()的原型如下: 109 void f1(applicant *a); 110 const char *f2(const applicant *a1, const applicant *a2); 111 请将p1和p2分别声明为指向f1和f2的指针; 将ap声明为一个数组, 112 它包含5个类型与p1相同的指针; 将pa声明为一个指针, 它指向的数组 113 包含10个类型与p2相同的指针。 使用typedef来帮助完成这项工作。 114 typedef void (*p_f1)(applicant *a); 115 p_f1 p1 = f1; 116 typedef const char *(*p_f2)(const applicant * , const applicant * ); 117 p_f2 p2 = f2; 118 119 p_f1 ap[5]; //包含指针的数组 120 p_f2 (*pa)[10]; // 包含10个类型与p2相同的指针 121 122 123 124
这篇关于C++PrimerPlus第六版_复习题-第七章的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-29从 Elastic 迁移到 Easysearch 指引
- 2024-12-29uni-app 中使用 Vant Weapp,怎么安装和配置npm ?-icode9专业技术文章分享
- 2024-12-27Nacos多环境配置学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos配置中心学习入门指南
- 2024-12-27Nacos配置中心学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos初识学习入门:轻松掌握服务发现与配置管理