中国大学MOOC-哈工大-C语言程序设计精髓第六-十二周编程题答案(7)

2018-12-21 12:01

}

int m,n;

scanf(\,&m,&n); int merged[m+n];

printf(\); int i;

for (i=0;i

scanf(\,&merged[i]); }

printf(\); for (i=m;i

scanf(\,&merged[i]); }

int j,t,k;

for (i=0;i

for (j=i+1;j

t=merged[j]; } }

if (k!=i){

t=merged[i];

merged[i]=merged[k]; merged[k]=t; } }

for (i=0;i

printf(\,merged[i]); }

return 0;

11.3

子串判断(4分)

题目内容:从键盘输入两个长度小于80的字符串A和B,且A的长度大于B的长度,编程判断B是不是A的子串,如果是,则输出”Yes”,否则输出”No”。这里所谓的该串的子串是指字符串中任意多个连续的字符组成的子序列。

函数原型:int IsSubString(char a[], char b[]) 函数功能:判断b是否是a的子串,是则返回1,否则返回0 程序运行结果示例1:

Input the first string:Abcdefghijk123↙

Input the second string:123↙ Yes

程序运行结果示例2:

Input the first str: abefsfl↙ Input the second str: befs↙ Yes

程序运行结果示例3:

Input the first str:aAbde↙ Input the second str: abc↙ No

输入第一个字符串的提示信息: \ 输入第二个字符串的提示信息: \ 输入单个字符的提示信息: \ 输入格式: 用 gets()函数 输出格式:

是子串,输出: \不是子串,输出: \

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

#include #include int main() {

printf(\); char a[80],b[80]; gets(a);

if (strlen(a)!=1)

printf(\); else{

printf(\); }

gets(b);

char *p=strstr(a,b);

if (p){

printf(\); }

else{

printf(\); }

return 0; }

11.4

凯撒密码(4分)

题目内容:凯撒密码是罗马扩张时期朱利斯?凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令,其原理很简单,就是通过将字母表中的字母移动一定位置而实现加密。例如,每个字母按字母表顺序向后移3位,如a加密后变成d,b加密后变成e,??x加密后变成a,y加密后变成b,z加密后变成c。请编写一个程序,将用户从键盘输入的文本字符串(只包含a~z的字符且长度小于100)进行加密后输出。

函数原型:void Caesar(char c[]) 函数功能:计算凯撒密码 程序的运行结果示例1: Input a string:baidu↙ edlgx

程序的运行结果示例2: Input a string:xyz↙ abc

输入提示信息:\

输入格式: 用 gets()函数 输出格式:用 puts()函数

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

#include #include int main() {

printf(\); char save[2][100]; int a, b, i, j;

gets(save[0]); i=0;b=3;

for (j = 0; j < strlen(save[0]); j++) {

if ((save[i][j] >= 'A'&& save[i][j] <= 'Z') || (save[i][j] >= 'a'&& save[i][j] <= 'z')) {

save[i][j] += b;

if (((save[i][j] >= 'A'&& save[i][j] <= 'Z') || (save[i][j] >= 'a'&& save[i][j] <= 'z')) == 0) {

save[i][j] -= 26; } }

}

}

puts(save[0]); return (0);

12.1

计算时间差(4分)

题目内容:

用结构体定义时钟类型,编程从键盘任意输入两个时间(例如4时55分和1时25分),计算并输出这两个时间之间的间隔。要求不输出时间差的负号。结构体类型定义如下: typedef struct clock {

int hour; int minute; int second; } CLOCK;

函数原型: CLOCK CalculateTime(CLOCK t1, CLOCK t2); 函数功能:计算并返回两个时间t1和t2之间的差

程序运行结果示例1:

Input time one:(hour,minute):4,55↙ Input time two: (hour,minute):1,25↙ 3hour,30minute 程序运行结果示例2:

Input time one:(hour,minute):1,33↙ Input time two: (hour,minute):5,21↙ 3hour,48minute

输入提示: \,minute):\ \,minute):\输入格式: \

输出格式:\

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

#include

typedefstruct Mytime {

int hour; int min; int sec; }T;

int main() {

T t1, t2, t3;

int sec1=0, sec2=0, sec3=0; }

printf(\,minute):\); scanf(\, &t1.hour, &t1.min);

printf(\,minute):\); scanf(\, &t2.hour, &t2.min);

sec1 = t1.hour * 3600 + t1.min * 60 + 0; sec2 = t2.hour * 3600 + t2.min * 60 + 0; if( sec1 >= sec2 )

sec3 = sec1 - sec2; else

sec3 = sec2 - sec1; t3.hour = sec3 / 3600; sec3 %= 3600;

t3.min = sec3 /60; t3.sec = sec3 `;

printf(\, t3.hour, t3.min); return 0;

12.2

奖学金发放(4分)

题目内容:

某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,每项奖学金获取的条件分别如下:

1) 院士奖学金:期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生每人均可获得8000元;

2) 五四奖学金:期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生每人均可获得4000元;

3) 成绩优秀奖:期末平均成绩高于90分(>90)的学生每人均可获得2000元;

4) 西部奖学金:期末平均成绩高于85分(>85)的西部省份学生每人均可获得1000元; 5) 班级贡献奖:班级评议成绩高于80分(>80)的学生干部每人均可获得850元;

只要符合上述条件就可获得相应的奖项,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚明的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。

现在给出若干学生的相关数据(假设总有同学能满足获得奖学金的条件),请编程计算哪些同学获得的奖金总数最高。

结构体类型定义如下:


中国大学MOOC-哈工大-C语言程序设计精髓第六-十二周编程题答案(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:桑树病虫害后期防治

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

马上注册会员

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