PTA 浙⼤版《C 语⾔程序设计》编程题,练习3-2到习题3-5答案
练习3-2 计算符号函数的值 (10 分)
对于任⼀整数n,符号函数sign(n)的定义如下:
请编写程序计算该函数对任⼀输⼊整数的值。冒泡排序代码c语言
输⼊格式:
输⼊在⼀⾏中给出整数n。
输出格式:
在⼀⾏中按照格式“sign(n) = 函数值”输出该整数n对应的函数值。
输⼊样例1:
10
结尾⽆空⾏
输出样例1:
sign(10) = 1
结尾⽆空⾏
输⼊样例2:
输出样例2:
sign(0) = 0
输⼊样例3:
-98
输出样例3:
sign(-98) = -1
练习3-3 统计学⽣平均成绩与及格⼈数 (15 分)
本题要求编写程序,计算学⽣们的平均成绩,并统计及格(成绩不低于60分)的⼈数。题⽬保证输⼊与输出均在整型范围内。输⼊格式:
输⼊在第⼀⾏中给出⾮负整数N,即学⽣⼈数。第⼆⾏给出N个⾮负整数,即这N位学⽣的成绩,其间以空格分隔。
输出格式:
按照以下格式输出:#include <stdio.h>#include <math.h>sign (int  n ){ if (n <0)  return  -1; if (n ==0)  return  0; if (n >0)  return  1;}main (){ int  n ; scanf ("%d",&n ); printf ("sign(%d) = %d",n ,sign (n ));//调⽤sign 函数}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
java和nodejs学哪个
16
17
average = 成绩均值
count = 及格⼈数
其中平均值精确到⼩数点后⼀位。
输⼊样例:
5
77 54 92 73 60
结尾⽆空⾏
输出样例:
average = 71.2
count = 4
结尾⽆空⾏
练习3-4 统计字符 (15 分)
本题要求编写程序,输⼊10个字符,统计其中英⽂字母、空格或回车、数字字符和其他字符的个数。
输⼊格式:
ideatodo快捷键
输⼊为10个字符。最后⼀个回车表⽰输⼊结束,不算在内。
输出格式:
在⼀⾏内按照
letter = 英⽂字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。
输⼊样例:
aZ &
09 Az
结尾⽆空⾏
输出样例:
letter = 4, blank = 3, digit = 2, other = 1
结尾⽆空⾏#include <stdio.h>main (){ int  n ,i ,count =0; double  sum =0,p ; scanf ("%d",&n );//键盘录⼊数组⼤⼩ int  a [n ];//定义数组 //循环遍历为数组赋值 for (i =0;i <n ;i ++)  scanf ("%d",a +i ); for (i =0;i <n ;i ++) {  sum +=a [i ];  if (a [i ]>=60)  count ++; }    if (n ){        p =sum /n ;    } printf ("average = %.1f\ncount = %d",p ,count );}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
标题练习3-5 输出闰年 (15 分)
输出21世纪中截⽌某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。输⼊格式:
输⼊在⼀⾏中给出21世纪的某个截⽌年份。
输出格式:
逐⾏输出满⾜条件的所有闰年年份,即每个年份占⼀⾏。输⼊若⾮21世纪的年份则输出"Invalid year!"。若不存在任何闰年,则输出“None”。#include <stdio.h>//这题也可以在输⼊的同时进⾏判断,那样效率更⾼main (){ int  i ,letter =0,blank =0,digit =0,other =0; char  a [10];//定义字符数组 //循环控制输⼊ for (i =0;i <10;i ++)  scanf ("%c",a +i ); for (i =0;i <10;i ++) {  if (a [i ]>='0'&&a [i ]<='9')//数字统计  digit ++;  else  {  if (a [i ]>='a'&&a [i ]<='z'||a [i ]>='A'&&a [i ]<='Z')//字母统计    letter ++;  else    {    if (a [i ]==' '||a [i ]=='\n')//空格回车统计    blank ++;    else      other ++;  }  } } printf ("letter = %d, blank = %d, digit = %d, other = %d",letter ,blank ,digit ,other );}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
html标签的含义
17
18
19
20
21
22
23
24
25
26
27
28
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
结尾⽆空⾏
输⼊样例2:
2000
输出样例2:
Invalid year!
练习3-7 成绩转换 (15 分)
本题要求编写程序将⼀个百分制成绩转换为五分制成绩。转换规则:
⼤于等于90分为A;
⼩于90且⼤于等于80为B;
⼩于80且⼤于等于70为C;
⼩于70且⼤于等于60为D;
⼩于60为E。
输⼊格式:
servicebusy是什么意思输⼊在⼀⾏中给出⼀个整数的百分制成绩。
输出格式:
在⼀⾏中输出对应的五分制成绩。#include <stdio.h>main (){ int  year ,i ,j =0; scanf ("%d",&year ); 使⽤if  else 进⾏判断即可 if (year <=2000||year >2100)  printf ("Invalid year!"); else  {  for (i =2001;i <=year ;i ++)  {  if (i %4==0&&i %100!=0||i %400==0){    printf ("%d\n",i );    j ++;}  }  if (!j )  printf ("None");  }}
1
2
3
4
5
6
7
8
9
10
11
12
linux中mkdir的参数13
14
15
16
17
18
19
20
A
结尾⽆空⾏
练习3-8 查询⽔果价格 (15 分)
给定四种⽔果,分别是苹果(apple)、梨(pear)、桔⼦(orange)、葡萄(grape),单价分别对应为3.00元/公⽄、2.50元/公⽄、
4.10元/公⽄、10.20元/公⽄。
⾸先在屏幕上显⽰以下菜单:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
⽤户可以输⼊编号1~4查询对应⽔果的单价。当连续查询次数超过5次时,程序应⾃动退出查询;不到5次⽽⽤户输⼊0即退出;输⼊其他编号,显⽰价格为0。
输⼊格式:
输⼊在⼀⾏中给出⽤户连续输⼊的若⼲个编号。
输出格式:
⾸先在屏幕上显⽰菜单。然后对应⽤户的每个输⼊,在⼀⾏中按格式“price = 价格”输出查询结果,其中价格保留两位⼩数。当⽤户连续查询次数超过5次、或主动输⼊0时,程序结束。#include <stdio.h>
main (){//简单的if else 嵌套 int  n ; scanf ("%d",&n ); if (n >=90&&n <=100)  printf ("A"); else {  if (n >=80&&n <90)  printf ("B");  else {  if (n >=70&&n <80)    printf ("C");  else {    if (n >=60&&n <70)    printf ("D");    else {    if (n <60&&n >=0)      printf ("E");    }  }  } }}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。