哈工大 C语言程序设计精髓 MOOC慕课 6-12周编程题答案 下载本文

内容发布更新时间 : 2024/12/22 14:43:46星期一 下面是文章的全部内容请认真阅读。

switch (T[i++]){

case 'u':realTime-=(u+d);break; case 'f':realTime-=(f+f);break; case 'd':realTime-=(u+d);break; }

if (realTime <0){ count--; } }

printf(\ return 0; }\11.2 \/*

已知两个不同长度的降序排列的数列(假设序列的长度都不超过5),请编程将其合并为一个数列,使合并后的数列仍保持降序排列。

【提示】假设两个降序排列的数列分别保存在数组a和数组b中,用一个循环依次将数组a和数组b中的较大的数存到数组c中,当一个较短的序列存完后,再将较长的序列剩余的部分依次保存到数组c的末尾。假设两个序列的长度分别是m和n,当第一个循环结束时,若i小于m,则说明数组a中的数有剩余,将数组a中剩余的数存到数组c的末尾即可;若j小于n,则说明数组b中的数有剩余,将数组b中剩余的数存到数组c的末尾即可。在第一个循环中,用k记录往数组c中存了多少个数,在第二个循环中,就从k这个位置开始继续存储较长序列中剩余的数。

函数原型:void Merge(int a[], int b[], int c[], int m, int n)

函数功能:将两个长度分别为m和n、降序排列的子序列a和b合并后放到数组c中 程序运行结果示例1: Input m,n:3,2↙ Input array a:5 3 1↙ Input array b:4 2↙ 5 4 3 2 1

程序运行结果示例2: Input m,n:3,3↙ Input array a:31 27 -5↙ Input array b:98 30 -7↙ 98 31 30 27 -5 -7

输入两个数列长度的提示信息:\输入数列a的提示信息:\输入数列b的提示信息:\输入格式:

数列长度的输入格式:\数列中每个数据的输入格式:\输出格式:\*/

#include #include int main() {

printf(\ int m,n;

scanf(\ int merged[m+n]; printf(\ int i;

for (i=0;i

scanf(\ }

printf(\ for (i=m;i

scanf(\ } int j,t,k;

for (i=0;i

for (j=i+1;j

if (t

t=merged[i];

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

for (i=0;i

printf(\ } return 0; }\11.3 \/*

题目内容:从键盘输入两个长度小于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