大计基编程题(第十一周)
题目
- 题目一
- 题目描述
- 题解
- 题目二
- 题目描述
- 题解
- 题目三
- 题目描述
- 题解
- 题目四
- 题目描述
- 题解
- 题目五
- 题目描述
- 题解
- 题目六
- 题目描述
- 题解
- 题目七
- 题目描述
- 题解
题目一
题目描述
编写函数,寻找具有n个元素的一维数组中的最大值和最小值,并返回数组元素的平均值,函数原形如下:
double fun(int a[],int n,int *max,int *min);
如输入:
5
2 4 5 3 1
则输出为:
5
1
3.000000
题解
#include<stdio.h>
double fun(int a[],int n,int *max,int *min)
{int i,s;*max=*min=s=a[0];//把最大值最小值初始赋为数组中第一个数for(i=1;i<n;i++){if(a[i]>*max) *max=a[i];//找出最大值并赋给*maxif(a[i]<*min) *min=a[i];//找出最小值并赋给*maxs+=a[i];//求和}return (float)s/n;//返回浮点数
}
int main()
{int n,max,min,i,a[100];float avg;scanf("%d",&n);for(i=0;i<n;i++) scanf("%d,",&a[i]);avg=fun(a,n,&max,&min);//把max,min地址传入函数以便函数能修改它的值printf("%d\n%d\n%f\n",max,min,avg);return 0;
}
题目二
题目描述
编写函数,将一个二进制数(以字符串形式表示)转换为十进制数。函数原型如下:
double binTodec(char *str);
其中str为接收的二进制数,函数的返回值为对应的十进制数。
如输入:
1010
则输出为:
10
又如输入:
100
则输出为:
4
题解
#include<stdio.h>
#include<math.h>
#include<string.h>double binTodec(char* str);
main() {char str[30] = {'0'};scanf("%s", str);double binTode = binTodec(str);printf("%g",binTode);
}double binTodec(char* str) {int as, sum=0;for (int i = strlen(str)-1; i>=0; i--){as = str[i] - '0';sum += (pow(2, strlen(str)-i-1) * as);}return sum;
}
题目三
题目描述
编写函数,去掉一个字符串(长度不超过80)中除头部和尾部空格外的所有空格,并编写主函数进行调用测试(即返回去掉空格后的字符串。)。
注:字符串头部或尾部可能有多个空格。
题解
#include<stdio.h>
#include<string.h>int reTodec(char* str);
main() {char str[80];gets(str);reTodec(str);printf("%s", str);
}reTodec(char* str) {char str1[80] = {0};int i = 0;int j = 0;while (str[i]==' ')//头部空格保存{str1[i] = str[i];i++;}for ( i,j=i; i <strlen(str); i++)//两个变量的for循环,因为一个是str一个是str1{if (str[i] != ' '){str1[j]=str[i];j++;}}while (str[i-1] == ' ')//尾部空格保存{str1[j] = str[i-1];j++;i--;}strcpy(str, str1);
}
题目四
题目描述
输入一个字符串(其长度不超过81),分别统计其中26个英文字母出现的次数(不区分大、小写字母),并按字母出现次数从高到低排序,若次数相同,按字母顺序排列。字母输出格式举例,例如:A-3,表示字母A出现3次,C-0表示字母C没有出现。
输入格式:
第一行为输入,占一行,输入的字符串可能含有空格
输出格式:
第二行为输出,占一行。按照字母输出格式从高到低输出,各字母输出之间用一个空格字符分隔。
输入样例:
123abcAABXxwvUu+
输出样例:
A-3 B-2 U-2 X-2 C-1 V-1 W-1 D-0 E-0 F-0 G-0 H-0 I-0 J-0 K-0 L-0 M-0 N-0 O-0 P-0 Q-0 R-0 S-0 T-0 Y-0 Z-0
题解
//插入排序法
#include<stdio.h>
#include<string.h>int main()
{char str[81];gets(str);int letter_stat[26] = {0};//对应字母出现的次数char letter[26] = { ' ' };//便于后面打印对应大写字母for (int i = 0; i < 26; i++){letter[i] = i + 'A';}int i = 0;while (str[i]){int k = 0;if (str[i] >= 'A'&&str[i] <= 'Z'){k = str[i] - 'A';letter_stat[k]++;}else if (str[i] >= 'a'&&str[i] <= 'z'){k = str[i] - 'a';letter_stat[k]++;}i++;}for (int i = 0; i < 26; i++)//根据出现次数排序(插入排序法){int k = letter_stat[i];int temp = letter[i];int j = i - 1;while (j >= 0 && letter_stat[j] < k){letter_stat[j + 1] = letter_stat[j];letter[j + 1] = letter[j];j--;}letter_stat[j + 1] = k;letter[j + 1] = temp;}for (int i = 0; i < 25; i++){printf("%c-%d ", letter[i],letter_stat[i]);}printf("%c-%d", letter[25], letter_stat[25]);return 0;
}
题目五
题目描述
编写程序,按下列规则倒序输出子字符串。先输出最后的一个字符,再输出最后两个字符串,再输出后面三个字符…, 最后输出整个字符串。输入的字符串长度不超过100。
输入格式:一个字符串
输出格式:空格隔开的子字符串,用一个空格间隔。
输入输出样例如下所示:
输入样例:Hello
输出样例:o lo llo ello Hello
题解
#include<stdio.h>
#include<string.h>main() {char str[100];scanf("%s", str);for (size_t i = 0; i < strlen(str)-1; i++)//两重循环就可解决问题{for (size_t j = strlen(str) - i-1; j <= strlen(str)-1; j++){printf("%c", str[j]);}printf(" ");}printf("%s", str);
}
题目六
题目描述
编写程序,按下列规则倒序输出子字符串。先输出最后的一个字符,再输出最后两个字符串,再输出后面三个字符…, 最后输出整个字符串。输入的字符串长度不超过100。
输入格式:一个字符串
输出格式:空格隔开的子字符串,用一个空格间隔。
输入输出样例如下所示:
输入样例:Hello
输出样例:o lo llo ello Hello
题解
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
typedef long long ll;
ll gcd(ll x,ll y)//求最大公约数
{return y ? gcd(y,x%y):x;
}
void OUTput(ll a,ll b)//按照格式来去输出
{ll e = a/b;a -= e*b;if(e == 0 && a == 0)printf("0");if(e != 0)printf("%lld",e);if(a != 0 && e!= 0)printf(" ");if(a != 0)printf("%lld/%lld",a,b);return;
}
int main()
{ll n;ll a,b,c,d;scanf("%lld",&n);scanf("%lld/%lld",&a,&b);for(int i=1;i<=n-1;i++){scanf("%lld/%lld",&c,&d);ll g = gcd(b,d);//两个分母的最大公约数 ll mul = b/g*d;//两个分母的最小公倍数 ll e1 = mul/b;//第一个分数扩大的倍数 ll e2 = mul/d;//第二个分数扩大的倍数 a = a*e1 + c*e2;//相加后的分子 b = mul;if(a != 0)//排除当分子为零的情况 {ll gg = gcd(a,b);a /= gg;b /= gg;}}OUTput(a,b);return 0;
}
题目七
题目描述
题目描述:
恺撒加密法加密规则是:将原来的小写字母用字母表中其后面的第3个字母的大写形式来替换,大写字母按同样规则用小写字母替换,对于字母表中最后的三个字母,可将字母表看成是首未衔接的。如字母c就用F来替换,字母y用B来替换,而字母Z用c代替。编程实现以下功能:输入一个字符串,将其加密后输出。
输入输出格式:
输入:仅含有字母的字符串
输出:加密后的字符串
样例:
输入为:
AMDxyzXYZ
输出为:
dpgABCabc
题解
#include<stdio.h>
#include<string.h>
main() {int i = 0;char a[100];scanf("%s",a);for (i; i < strlen(a); i++) {if (a[i] >= 'a' && a[i] <= 'z') {a[i] = a[i] + 3 - 'a' + 'A';if (a[i] > 'Z') a[i] = a[i] - 26;}else if (a[i] >= 'A' && a[i] <= 'Z') {a[i] = a[i] + 3 - 'A' + 'a';if (a[i] > 'z') a[i] = a[i] - 26;}printf("%c", a[i]);}
}
大计基编程题(第十一周)相关推荐
- 大计基编程题(第十周)
第一题 叛逆期的小明什么都喜欢反着做,连看数字也是如此(负号除外),比如: 小明会把1234它看成4321:把-1234看成-4321:把230看成032 (032=32):把-230看成-032(- ...
- 大计基编程题(第十三周)
排序算法 如果不太了解各种排序算法可以参考菜鸟教程(希望对你有帮助) 菜鸟教程排序算法 题目 排序算法 题目一 题目描述 题解 题目二 题目描述 题解 题目三 题目描述 题解 题目四 题目描述 题解 ...
- 大计基编程题(第十二周)
排序算法 如果不太了解各种排序算法可以参考菜鸟教程(希望对你有帮助) 菜鸟教程排序算法 题目 排序算法 题目一 题目描述 题解 题目二 题目描述 题解 题目三 题目描述 题解 题目四 题目描述 题解 ...
- 中国大学MOOC C语言程序设计(大连理工大学) 课后编程题 第十一周题解(个人向仅供参考)
第11周 指针一 1 利用指针编写程序,统计字符串的长度.(10分) 题目内容:利用指针编写程序,统计字符串的长度.(不要使用求字符串长度函数) 输入格式: gets() 输出格式: "Le ...
- C语言编程>第二十一周 ⑥ 请补充main函数,该函数的功能是:从键盘输入一个字符串,即一个指定,然后把这个字符及其后面的所有字符全部删除,结果仍然保存在原串中。
例题:请补充main函数,该函数的功能是:从键盘输入一个字符串,即一个指定,然后把这个字符及其后面的所有字符全部删除,结果仍然保存在原串中. 例如:输入"1234567",指定字符 ...
- C语言编程>第十一周 ⑥ 某学生的记录由学号、5门课程成绩和平均分组成,学号和5门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分,并放在记录的ave成员中。
例题:某学生的记录由学号.5门课程成绩和平均分组成,学号和5门课程的成绩已在主函数中给出.请编写函数fun,它的功能是:求出该学生的平均分,并放在记录的ave成员中.请自己定义正确的形参.. 例如,若 ...
- C语言编程>第二十一周 ② 请补充main 函数,该函数的功能是:把一维数组中的元素逆置,结果仍然保存在原数组中。
例题:请补充main 函数,该函数的功能是:把一维数组中的元素逆置,结果仍然保存在原数组中. 注意:仅在横线上填写所需的若干表达式或语句,请勿改动函数中的其它任何内容. 代码如下: #include& ...
- C语言编程>第十一周 ② N名学生的成绩已在主函数中放入一个带头结点的链表结构中,a指向链表的头结点。请编写函数fun,它的功能是:找出学生的最高分,由函数返回。
例题:N名学生的成绩已在主函数中放入一个带头结点的链表结构中,a指向链表的头结点.请编写函数fun,它的功能是:找出学生的最高分,由函数返回. 请勿改动主函数main与其它函数中的任何内容,仅在函数f ...
- C语言编程>第十一周 ⑤ 请编写一个函数,用来删除字符串中的所有空格。
例题:请编写一个函数,用来删除字符串中的所有空格. 例如,输入we l come,则输出为welcome. 请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句. ...
最新文章
- 实现2D全景图的中心视野变换
- 孔雀翎----《Programming C# 》中文版 第4版
- linux 读取大量图片 内存,10 张图帮你搞定 TensorFlow 数据读取机制
- 《企业云桌面实施》-小技巧-04-VMWare Workstation-虚拟机强行关机开机
- 非线性振动 matlab,用MATLAB分析非线性弹簧振子的振动
- 教你一招画素描, 不写程序时陶冶陶冶情操
- 初学ctypes:打开进程并返回相关信息
- glacier2_Amazon Glacier的Scala客户端
- 菜鸟学数据库(四)——超键、候选键、主键、外键
- 鸿蒙应用学习笔记01:搭建鸿蒙应用开发环境
- gradle项目启动报错_如何用IDEA创建SpringBoot Gradle多项目工程?
- 计算机设备的存放,哪一种设备不能用于长期保存计算机数据
- snownlp中文文本情感分析
- 开发团队人员配备及工作分配
- 数据结构和算法-查找算法之黄金分割查找法
- 微信小程序的APPID问题
- HIS系统门急诊医保实时结算接口测试
- 齐家坪水电站施工组织设计(lunwen+任务书+外文翻译+cad图纸)
- IDEA插件下载慢怎么办,几步搞定
- discuz的htm模板代码分析
热门文章
- html 文本换行 \n 不换行 空格无效
- 【Druid】(八)Apache Druid 核心插件 Kafka Indexing Service SLS Indexing Service
- MySQL三种插入方式
- cesium采用primitive方式加载geojson数据
- 【sql】sql执行顺序
- matlab赌徒破产模型转移矩阵,[转载]【转】生成土地利用变化转移矩阵的方法
- Maven命令行 打包
- 覃超数据结构(二) 栈和队列
- [经验分享] 覃超直播课学习笔记
- Win10--在右键菜单中添加cmd.exe(在此处打开CMD窗口)