c语言习题及答案-爱课程mooc 下载本文

for(i = 0; i < len / 2; i++) {

ch = str[i];

str[i] = str[len - i - 1]; str[len - i - 1] = ch; } }

第十章

10.1

水手分椰子(4分)

题目内容:

五个水手在岛上发现一堆椰子,先由第1个水手把椰子分为等量的5堆,还剩下1个给了猴子,自己藏起1堆。然后,第2个水手把剩下的4堆混合后重新分为等量的5堆,还剩下1个给了猴子,自己藏起1堆。以后第3、4个水手依次按此方法处理。最后,第5个水手把剩下的椰子分为等量的5堆后,同样剩下1个给了猴子。请用迭代法编程计算并输出原来这堆椰子至少有多少个。

输入格式: 无 输出格式:\输入样例: 输出样例:

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!

#include check(int n) {

int i;

for(i=0; i<5; i++) {

if(n%5!=1) return 0; n=n/5*4; }

return 1; }

int main() {

int i;

for(i=6; i<10000; i++) {

if(check(i))

{

printf(\ break; } }

return 0; }

10.2

找最值(4分)

题目内容:

从键盘任意输入10个整数,用指针变量作函数参数编程计算最大值和最小值,并返回它们所在数组中的位置。函数原型如下所示: int FindMax(int num[], int n, int *pMaxPos);//函数返回最大值,pMaxPos返回最大值所在的下标 int FindMin(int num[], int n, int *pMinPos);//函数返回最小值,pMaxPos返回最小值所在的下标 程序运行结果示例: Input 10 numbers: -1 2 3 45 92 8 9 12 7 8↙

Max=92,Position=4,Min=-1,Position=0

输入格式: \ 输出格式:

提示信息:\

输出结果:\ 输入样例: 输出样例:

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb

#include

int FindMax(int num[], int n, int *pMaxPos); int FindMin(int num[], int n, int *pMinPos); int num[10];

int i,maxdex=0,mindex=0;

int main(){

int max,min; int m,n;

printf(\ for (i=0;i<10;i++)

scanf(\ max=FindMax(num,10,&m); min =FindMin(num,10,&n);

printf(\ return 0; }

int FindMax(int num[], int n, int *pMaxPos)

{

*pMaxPos=num[0]; for (i=1;i

if (num[i]>*pMaxPos) {*pMaxPos=num[i]; maxdex=i; } return maxdex; }

int FindMin(int num[], int n, int *pMinPos) {

*pMinPos=num[0]; for (i=1;i

if (num[i]<*pMinPos) {*pMinPos=num[i]; mindex=i; } return mindex; }

10.3

星期查找(4分)

题目内容:

任意输入英文的星期几,通过查找如图所示的星期表,输出其对应的数字,若查到表尾,仍未找到,则输出错误提示信息。

提示:用一个二维字符数组weekDay来存放如图所示的星期表的内容(字符串)。输入待查找的字符串,然后在星期表中顺序查找与输入字符串相匹配的字符串。找到的字符串在星期表数组中的第一维下标(行号)即为题目所求。 程序运行结果示例1: Please enter a string: Friday↙ Friday is 5

程序运行结果示例2: Please enter a string: Fruday↙ Not found!

输入格式: 字符串输入采用gets()函数 输出格式:

输入提示信息:\:\\n\ 找到了,输出:\ 没找到,输出:\

输入样例: 输出样例:

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!

#include #include #define max 50 int main() {

char week[7][10] ={\ int i,flag=0; char find[max];

printf(\ gets(find);

for (i=0; i<7; i++)

if (strcmp(week[i],find)==0) {

flag=1; break; } if(flag==0)

printf(\ else

printf(\ return 0; }

10.4

杨辉三角形(4分)

题目内容:

编程打印具有如下形式的杨辉三角形,其中输出数据的行数n从键盘输入,并且n<=10。 程序运行结果示例1: Input n (n<=10): 5↙ 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1

程序运行结果示例2: Input n (n<=10): 7↙ 1 1 1 1 2 1