c语言习题及答案-爱课程mooc

更新时间:2024-05-10 00:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章

1.1

题目内容:

使用printf()在屏幕上输出 hello world!

提示:

#include int main() { }

printf(\ return 0;

输入格式:

输出格式:

输出提示信息:\

输入样例:

输出样例:

hello world!

#include int main() { printf(\ return 0; }

1.2

在屏幕上输出多行信息(3分)

题目内容:

使用printf()函数在屏幕上输出以下多行信息: hello world! hello hit!

hello everyone! 提示:

在printf()函数中转义字符?\\n?表示换行。

输入格式:

输出格式: 输出提示信息: \\\输入样例:

输出样例: hello world! hello hit! hello everyone!

#include int main() {

printf(\ printf(\

printf(\ return 0; }

1.3

计算半圆弧的周长及半圆面积(3分)

题目内容:

编程并输出半径r=5.3的半圆弧的周长及该半圆的面积,

输入格式: 无

输出格式:

半圆的面积输出格式: \

半圆弧的周长输出格式: \输入样例:

输出样例: Area=44.123632

的取值为3.14159。要求半径r和

必须利用宏常量表示。

circumference=16.650427

#include #define PI 3.14159 #define R 5.3 int main() {

printf(\

printf(\ return 0; }

1.4

计算长方体体积(3分)

题目内容:

编程并输出长1.2、宽4.3、高6.4的长方体的体积。要求长方体的长、宽、高必须利用const常量表示。

输入格式: 无

输出格式:

长方体的体积输出格式:\

输入样例:

输出样例:

#include int main() {

const float l=1.2; const float x=4.3; const float y=6.4;

printf(\ return 0; }

第三章

3.1

计算两个数的平方和(3分)

题目内容:

从键盘读入两个实数,编程计算并输出它们的平方和,要求使用数学函数pow(x,y)计算平方值,输出结果保留2位小数。 提示:使用数学函数需要在程序中加入编译预处理命令 #include

以下为程序的输出示例: please input x and y: 1.2,3.4↙ result=13.00

输入格式: \

输出格式:

输入提示信息:\输出格式:\

输入样例:

输出样例:

#include #include int main() {

printf(\ float x, y;

scanf(\

printf(\ return 0; }

3.2

逆序数的拆分计算(3分)

题目内容:

从键盘输入一个4位数的整数,编程计算并输出它的逆序数(忽略整数前的正负号)。例如,输入-1234,忽略负号,由1234分离出其千位1、百位2、十位3、个位4,然后计算4*1000+3*100+2*10+1 = 4321,并输出4321。再将得到的逆序数4321拆分为两个2位数的正整数43和21,计算并输出拆分后的两个数的平方和的结果。

以下是程序的输出示例:

Input x: -1234↙ y=4321 a=43,b=21 result=2290

输入格式: \

输出格式:

输入提示信息:\逆序数输出格式:\

逆序数拆分后的输出格式:\平方和的输出格式:\

输入样例:

输出样例:

#include int main() {

printf(\ int x;

scanf(\ if(x<=0) {

x=-x; }

int a,b,c,d; a=x/1000; b=x/100; c=x/10; d=x;

printf(\ printf(\

printf(\ return 0; }

3.3

拆分英文名(3分)

题目内容:

5↙ 5:odd 8↙ 8:even 9↙ 9:odd 12↙ 12:even 17↙ 17:odd -1↙

The total number of odd is 4 The total number of even is 2

程序运行结果示例2: Please enter the number: -1↙ over!

The total number of odd is 0 The total number of even is 0

输入格式: \

输出格式:

输入提示信息:\用户输入的第一个数据就是-1,输出格式:\奇数的输出格式:\偶数的输出格式:\

输入数据中奇数的个数统计:\输入数据中偶数的个数统计:\

输入样例:

输出样例:

#include int main(){

int s,odd=0,even=0;

printf(\ do{

scanf(\

if (s==-1&&odd==0&&even==0) printf(\ else if( s%2!=0 &&s!=-1) {printf(\ else if (s%2==0){printf(\

else even+=0; }while (s!=-1);

printf(\ printf(\

return 0; }

5.4

计算球的反弹高度(4分)

题目内容:

一个球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下并反弹......,求它在第5次和第10次落地时,分别共经过了多少米?第5次和第10次反弹分别是多高?要求计算结果保留到小数点后3位。用户从键盘输入想要计算的第n次(n<=15)。

程序运行结果示例1: input: 5↙ 5 times: 287.500 3.125

程序运行结果示例2: input: 10↙ 10 times: 299.609 0.098

输入格式: \

输出格式:

反弹次数:\

第n次反弹共经过多少米:\第n次的反弹高度:\输入提示信息:\

输入样例:

输出样例:

#include int main(){

int time,i;

float each=0,sum=0,h=100; printf(\ scanf(\ for (i=0;i

printf(\ printf(\ printf(\

return 0; }

第六章

6.1

程序改错v2.0(5分)

下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出 Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。 1. #include 2. int main() 3. { 4. int score; 5. char grade; 6. printf(\7. scanf(\8. if (score < 0 || score > 100) 9. printf(\10. else if (score >= 90) 11. grade = 'A’; 12. else if (score >= 80) 13. grade = 'B'; 14. else if (score >= 70) 15. grade = 'C'; 16. else if (score >= 60) 17. grade = 'D'; 18. else 19. grade = 'E'; 20. printf(\21. return 0; 22. }

程序运行结果示例1: Please input score: a↙ Input error! Please input score: -12↙ Input error! Please input score: 230↙ Input error! Please input score: 92↙ grade: A

程序运行结果示例2: Please input score: 88↙ grade: B

程序运行结果示例3:

Please input score: 73↙ grade: C

程序运行结果示例4:

Please input score: 65↙ grade: D

程序运行结果示例5:

Please input score: 27↙ grade: E

输入格式: \

输出格式:

输入提示信息:\

输入错误提示信息:\

输出格式:\注意:%c前面有一个空格)

输入样例:

输出样例:

#include int main() {

int score,m=0; char grade;

printf(\ do{

m=scanf(\ getchar();

if (m!=1 ||score < 0 || score > 100)

{ printf(\ }while (m==0); if (score >= 90) grade = 'A'; else if (score >= 80) grade = 'B'; else if (score >= 70) grade = 'C'; else if (score >= 60) grade = 'D'; else

grade = 'E';

printf(\ return 0; }

6.2

编程计算 a+aa+aaa+…+aa…a(n个a)的值(4分)

题目内容:

编程计算 a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。例如,当n=4,a=2,表示计算2+22+222+2222的值。

程序运行结果示例: Input a,n: 2,4↙ sum=2468

输入格式:

9.4

字符串逆序(4分)

题目内容:

用字符数组作函数参数编程,利用一个数组实现字符串(允许输入带空格的字符串)的逆序存放。要求如下: (1)在主函数中从键盘输入字符串,字符串的最大长度为80个字符。

调用Inverse()函数将字符串逆序存放,然后在主函数中输出逆序后的字符串。 (2)在子函数Inverse()中实现字符串的逆序存放。函数原型为: void Inverse(char str[]); 程序运行结果示例1: Input a string: abcde↙ Inversed results: edcba

程序运行结果示例2: Input a string: hello↙

Inversed results: olleh

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

输入提示信息:\ 输出提示信息:\\\n\用puts()输出字符串

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

#include #include #define maxn 80

void Inverse(char str[]); int main(){

char str[maxn];

printf(\ gets(str);

printf(\ Inverse(str); puts(str); return 0; }

void Inverse(char str[]) {

char ch;

int len = strlen(str),i;

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

本文来源:https://www.bwwdw.com/article/5r8g.html

Top