6-1 引用作函数形参交换两个整数
分数 5
全屏浏览题目
切换布局
作者 李廷元
单位 中国民用航空飞行学院
设计一个void类型的函数Swap,该函数有两个引用类型的参数,函数功能为实现两个整数交换的操作。
裁判测试程序样例:
#include <iostream> using namespace std; /* 请在这里填写答案 */ int main() { int a, b; cin >> a >> b; Swap(a, b); cout << a << " " << b << endl; return 0; }
输入样例:
3 5
输出样例:
5 3
1. void Swap(int &a,int &b) 2. { 3. int temp=a; 4. a=b; 5. b=temp; 6. }
6-2 小写转大写
分数 5
全屏浏览题目
切换布局
作者 李祥
单位 湖北经济学院
C语言标准函数库中包括 toupper 函数,用于将小写字母转换为大写字母。作为练习,我们自己编写一个功能与之相同的函数。
函数原型
char ToUpper(char x);
说明:参数 x
是任意字符的 ASCII 码。若 x
是小写字母的 ASCII 码,则函数值为对应大写字母的 ASCII 码,否则函数值与 x
相同。
裁判程序
#include <stdio.h> int IsLower(char x); char ToUpper(char x); int main() { char a, b; a = getchar(); b = ToUpper(a); putchar(b); putchar('\n'); return 0; } /* 你提交的代码将被嵌在这里 */
提示:利用前面作业中编写的 IsLower 函数判断小写字母。
输入样例1
k
输出样例1
K
输入样例2
W
输出样例2
W
输入样例3
!
输出样例3
!
关联习题:判断小写字母
1. char ToUpper(char x) 2. { 3. if(IsLower(x)) 4. { 5. return x-'a'+'A'; 6. } 7. else 8. { 9. return x; 10. } 11. }
6-3 求字符串长度
分数 5
全屏浏览题目
切换布局
作者 王和兴
单位 东北大学秦皇岛分校
本题要求实现一个函数,计算所给出字符串的长度。
函数接口定义:
int StrLen ( const char *str );
裁判测试程序样例:
#include <iostream> using namespace std; int main() { int StrLen(const char *str ); char a[1024]; gets(a); int n = StrLen(a); cout<<n<<endl; return 0; } /* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:
abcd
输出样例:
在这里给出相应的输出。例如:
4
1. int StrLen ( const char *str ) 2. { 3. int n=0; 4. while(str[n]!='\0') 5. { 6. n++; 7. } 8. return n; 9. }
6-4 使用类计算矩形的面积
分数 10
全屏浏览题目
切换布局
作者 李廷元
单位 中国民用航空飞行学院
定义并实现一个矩形类,有长和宽两个属性,由成员函数计算矩形的面积。
矩形类Rectang接口定义如下:
class Rectangle { public: void setLength(int l);//设置矩形的长度 void setWidth(int w); //设置矩形的宽度 int getArea(); //计算并返回矩形的面积 private: int length, width; //矩形的长度和宽度 };
请实现Rectangle类的成员函数。
裁判测试程序样例:
#include <iostream> using namespace std; class Rectangle { public: void setLength(int l);//设置矩形的长度 void setWidth(int w); //设置矩形的宽度 int getArea(); //计算并返回矩形的面积 private: int length, width; //矩形的长度和宽度 }; int main() { Rectangle r; int len, w; cin >> len >> w; r.setLength(len); r.setWidth(w); cout << r.getArea() << "\n"; return 0; } /* 你的代码将嵌在这里 */
输入样例:
10 20
输出样例:
200
1. void Rectangle::setLength(int l) 2. { 3. length=l; 4. } 5. void Rectangle::setWidth(int w) 6. { 7. width=w; 8. } 9. int Rectangle::getArea() 10. { 11. return length*width; 12. }
7-1 分段函数
分数 10
全屏浏览题目
切换布局
作者 王和兴
单位 东北大学秦皇岛分校
按照要求计算下列分段函数y的值。
y=⎩⎨⎧2x−14x−53x+5(x<2)(2≤x<10)(x≥10)
输入格式:
在一行中给出整数x。
输出格式:
在一行中按“y=result”的格式输出,其中result计算结果。结尾有换行。
输入样例:
在这里给出一组输入。例如:
3
输出样例:
在这里给出相应的输出。例如:
y=7
1. #include<bits/stdc++.h> 2. using namespace std; 3. int main() 4. { 5. double x; 6. cin>>x; 7. if(x<2) 8. { 9. cout<<"y="<<2*x-1; 10. } 11. else if(x>=10) 12. { 13. cout<<"y="<<3*x+5; 14. } 15. else 16. { 17. cout<<"y="<<4*x-5; 18. } 19. return 0; 20. }
7-2 统计字符
分数 10
全屏浏览题目
切换布局
作者 颜晖
单位 浙大城市学院
本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入格式:
输入为10个字符。最后一个回车表示输入结束,不算在内。
输出格式:
在一行内按照
letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。
输入样例:
1. aZ & 2. 09 Az
输出样例:
letter = 4, blank = 3, digit = 2, other = 1
1. #include<bits/stdc++.h> 2. using namespace std; 3. int main() 4. { 5. int cnt_e=0,cnt_b=0,cnt_n=0,cnt_o=0; 6. for(int i=0;i<10;i++) 7. { 8. char ch; 9. ch=getchar(); 10. if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) 11. { 12. cnt_e++; 13. } 14. else if(ch==' '||ch=='\n') 15. { 16. cnt_b++; 17. } 18. else if(ch>='0'&&ch<='9') 19. { 20. cnt_n++; 21. } 22. else 23. { 24. cnt_o++; 25. } 26. } 27. cout<<"letter = "<<cnt_e<<", blank = "<<cnt_b<<", digit = "<<cnt_n<<", other = "<<cnt_o; 28. return 0; 29. }
7-3 冒泡法排序之过程
分数 10
全屏浏览题目
切换布局
作者 颜晖
单位 浙大城市学院
本题要求使用冒泡法排序,将给定的n个整数从小到大排序后输出,并输出排序过程中每一步的中间结果。
冒泡排序的算法步骤描述如下:
第1步:在未排序的n个数(a[0]〜 a[n−1])中,从a[0]起,依次比较相邻的两个数,若邻接元素不符合次序要求,则对它们进行交换。本次操作后,数组中的最大元素“冒泡”到a[n−1];
第2步:在剩下未排序的n−1个数(a[0] 〜 a[n−2])中,从a[0]起,依次比较相邻的两个数,若邻接元素不符合次序要求,则对它们进行交换。本次操作后,a[0] 〜 a[n−2]中的最大元素“冒泡”到a[n−2];
……
第i步:在剩下未排序的n−k个数(a[0]〜a[n−i])中,从a[0]起,依次比较相邻的两个数,若邻接元素不符合次序要求,则对它们进行交换。本次操作后,a[0] 〜 a[n−i]中的最大元素“冒泡”到a[n−i];
……
第n−1步:在剩下未排序的2个数(a[0] 〜a[1])中,比较这两个数,若不符合次序要求,则对它们进行交换。本次操作后,a[0] 〜 a[1]中的最大元素“冒泡”到a[1]。
输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
输出格式:
在每一行中输出排序过程中对应步骤的中间结果,即每一步后a[0]〜 a[n−1]的值,相邻数字间有一个空格,行末不得有多余空格。
输入样例:
1. 5 2. 8 7 6 0 1
输出样例:
1. 7 6 0 1 8 2. 6 0 1 7 8 3. 0 1 6 7 8 4. 0 1 6 7 8
1. #include<bits/stdc++.h> 2. using namespace std; 3. int main() 4. { 5. int n; 6. cin>>n; 7. int a[10]; 8. for(int i=0;i<n;i++) 9. { 10. cin>>a[i]; 11. } 12. if(n==1) 13. { 14. cout<<a[0]<<endl; 15. return 0; 16. } 17. for(int i=0;i<n-1;i++) 18. { 19. for(int j=0;j<n-i-1;j++) 20. { 21. if(a[j]>a[j+1]) 22. { 23. swap(a[j],a[j+1]); 24. } 25. } 26. for(int k=0;k<n;k++) 27. { 28. if(k<n-1) 29. { 30. cout<<a[k]<<" "; 31. } 32. else 33. { 34. cout<<a[k]<<endl; 35. } 36. } 37. } 38. return 0; 39. }