慕课-程序设计与算法(大学先修课)-郭炜-第八九周练习题
来源:互联网 发布:外卖系统源码 编辑:程序博客网 时间:2024/05/16 08:49
1.下面程序片段的输出结果是 Hello ,请填空
#include <iostream>using namespace std;int main() { char s[] = "Hello"; char * p; for(p=s;*p!=NULL;p++) cout << * p ; return 0;}
2.下面程序输出结果是 Tesla Tes 请填空
#include <iostream>using namespace std;void Print(const char * p1, const char * p2) { for(;p1<p2;p1++) cout << * p1;}int main() { const char * s = "Tesla123"; Print(s,s+5); cout << endl; Print(s,s+3); cout << endl; return 0;}
3.程序填空,使得输出结果为:
1,4,9,16,25,
h,e,l,l,o,!,
#include <iostream>using namespace std;void ForEach(void * a, int width, int num,void f(void *)){ for(int i = 0;i < num; ++i) f((char*)a+width*i);}void PrintSquare(void * p){ int * q = (int*)p; int n = *q; cout << n * n << ",";}void PrintChar(void * p) { char * q = (char*)p; cout << *q << ",";}int main(){ int a[5] = {1,2,3,4,5}; char s[] = "hello!"; ForEach(a,sizeof(int),5,PrintSquare); cout << endl; ForEach(s,sizeof(char),6,PrintChar); return 0;}
4.Memcpy之一
输入:
第一行是整数t
接下来是t个整数
再接下来是t个不带空格的字符串,长度不超过20
输出:
按原样输出t个整数和t个字符串
#include <iostream>using namespace std;void Memcpy(char * src,char * dest,int n){ for(int i=0;i<n;i++) { dest[i]=src[i]; }}int Strlen(char * s){ int i; for( i = 0; s[i]; ++i); return i;}int main() { int a; char s1[30]; char s2[30]; int t; cin >> t; for(int i = 0;i < t; ++i) { cin >> a; int b = 99999999; Memcpy((char*)&a,(char *) &b,sizeof(int)); cout << b << endl; } for(int i = 0;i < t; ++i) { cin >> s1; Memcpy(s1,s2,Strlen(s1)+1); cout << s2 << endl; } return 0;}
5.程序填空,使其输出结果是: 1,2,3,4, 10,12,14,16, 18,20,11,12,
#include <iostream>using namespace std;void Double(int * p, int n){ for(int i = 0;i < n; ++i) p[i] *= 2;}int main(){ int a[3][4] = { { 1,2,3,4},{5,6,7,8}, { 9,10,11,12 } }; Double(a[1],6); for(int i = 0;i < 3; ++i) { for(int j = 0; j < 4; ++j) cout << a[i][j] << ","; cout << endl; } return 0;}
6.Memcpy之二
输入:
第一行是整数n (1<=n<=10)
第二行是 n个整数
输出:
先原序输出输入数据中的n个整数
然后再输出:
1,2,3,4,5,1,2,3,4,5,
123434567
167896789
#include <iostream>using namespace std;void Memcpy( void * src, void * dest, int size){char * dest1 = (char *)dest; char * src1 = (char *)src; for (int i = size-1; i >= 0; i--) dest1[i] = src1[i];}void Print(int * p,int size){ for(int i = 0;i < size; ++i) cout << p[i] << ","; cout << endl;}int main(){ int a[10]; int n; cin >> n; for(int i = 0;i < n; ++i) cin >> a[i]; int b[10] = {0}; Memcpy(a,b,sizeof(a)); Print(b,n); int c[10] = {1,2,3,4,5,6,7,8,9,10}; Memcpy(c,c+5,5*sizeof(int)); //将c的前一半拷贝到后一半 Print(c,10); char s[10] = "123456789"; Memcpy(s+2,s+4,5); //将s[2]开始的5个字符拷贝到s[4]开始的地方 cout << s << endl; char s1[10] = "123456789"; Memcpy(s1+5,s1+1,4); //将s1[5]开始的4个字符拷贝到s1[1]开始的地方 cout << s1 << endl; return 0;}
7.编写一个 MyMax函数,可以用来求任何数组中的最大值 使得程序按要求输出
#include <iostream>using namespace std;void *MyMax(void *a, unsigned int b, int n, int(*fun)(void *, void *)){ int judge; int *max = (int *)a; for (int i = 1; i<n ; ++i) { judge = fun(max, (int *)a+i); if (judge < 0) max = (int *)a + i; } return max;}int Compare1(void * n1,void * n2){ int * p1 = (int * )n1; int * p2 = (int * )n2; return ((*p1)%10) - ((*p2)%10);}int Compare2(void * n1,void * n2){ int * p1 = (int * )n1; int * p2 = (int * )n2; return *p1 - *p2;}#define eps 1e-6int Compare3(void * n1,void * n2){ float * p1 = (float * )n1; float * p2 = (float * )n2; if( * p1 - * p2 > eps) return 1; else if(* p2 - * p1 > eps) return -1; else return 0; }int main(){ int t; int a[10]; float d[10]; cin >> t; while(t--) { int n; cin >> n; for(int i = 0;i < n; ++i) cin >> a[i]; for(int i = 0;i < n; ++i) cin >> d[i]; int * p = (int *) MyMax(a,sizeof(int),n,Compare1); cout << * p << endl; p = (int *) MyMax(a,sizeof(int),n,Compare2); cout << * p << endl; float * pd = (float * )MyMax(d,sizeof(float),n,Compare3); cout << * pd << endl; } return 0;}
8.指向指针的指针,程序填空使得输出指定结果
#include <iostream>using namespace std;int main(){ int x,y,z; x = 10; y = 20; z = 30; int * a[3] = { &x, &y,&z}; for(int *(*p)=a; p < a + 3; ++p) cout<< * (*p) << endl; return 0;}
9.填写内存交换函数 SwapMemory,使得程序输出指定结果
#include <iostream>using namespace std;void SwapMemory(void * m1,void * m2, int size){if (size > 5) { int *m11 = (int *)m1; int *m22 = (int *)m2; int temp; for (int i = 0; i < 5; i++) { temp = *(m11 + i); *(m11 + i) = *(m22 + i); *(m22 + i) = temp; } } else { char *m11 = (char *)m1; char *m22 = (char *)m2; char temp; for (int i = 0; i < size; i++) { temp = *(m11 + i); *(m11 + i) = *(m22 + i); *(m22 + i) = temp; } }}void PrintIntArray(int * a,int n){ for(int i = 0;i < n; ++i) cout << a[i] << ","; cout << endl;}int main(){ int a[5] = {1,2,3,4,5}; int b[5] = {10,20,30,40,50}; SwapMemory(a,b,5 * sizeof(int)); PrintIntArray(a,5); PrintIntArray(b,5); char s1[] = "12345"; char s2[] = "abcde"; SwapMemory(s1,s2,5); cout << s1 << endl; cout << s2 << endl; return 0;}
0 0
- 慕课-程序设计与算法(大学先修课)-郭炜-第八九周练习题
- 慕课-程序设计与算法(大学先修课)-郭炜-第二周练习题
- 慕课-程序设计与算法(大学先修课)-郭炜-第三周练习题
- 慕课-程序设计与算法(大学先修课)-郭炜-第五周练习题
- 慕课-程序设计与算法(大学先修课)-郭炜-第六周练习题
- 慕课-程序设计与算法(大学先修课)-郭炜-第七周练习题
- 慕课-程序设计与算法(大学先修课)-郭炜-第一周练习题
- 慕课-程序设计与算法(大学先修课)-郭炜-第四周练习题
- 程序设计与算法 第八、九周测验
- 算法第八章练习题20
- 第八届湘潭大学程序设计比赛
- 浙江中医药大学-数据结构与算法期末考试应用题、程序设计题
- Javascript高级程序设计第八九章
- 算法概论第八章练习题 8.19
- 算法概论第八章练习题 8.14
- 算法概论第八章练习题 8.10
- 算法概论第八章练习题8.3
- 算法概论第八章练习题 8.3
- linux cpufreq 调频实现
- 排序算法(2)-希尔排序
- 找图片啊图标啊什么的
- 读写文件函数【模板】
- 使用idea开发web项目
- 慕课-程序设计与算法(大学先修课)-郭炜-第八九周练习题
- 网络爬虫学习(一)
- xcode 真机测试添加普通apple id时,“xxxx”is not on any development teams
- Java数组的简单使用
- 主流浏览器内核
- 人脸识别之DeepFace
- 通过RobotFrameWork+APPIUM对安卓APK进行自动化测试
- Ajax总结
- 16. 3Sum Closest Medium