一些pta的基础题
- 一些pta的基础题 推荐度:
- 相关推荐
一些pta的基础题
5-1
语句填空:下列 for循环语句将输出: 0 1 2 0 1 2 0 1 2
for( i=1; i<=9; i++ )
printf(“%2d”, (i-1)%3);
5-2
执行以下程序段,输入12-78.5,输出78.5-12。
int n;
double x;
scanf(“%d-%lf”,&n,&x);;
printf(“%.1f-%d\n”, x, n);
5-3
表达式求值:
当a=1,b=2,c=3时,打印语句printf(“%d#%d#”,(a, b), a>b?(c=4):(c=5))的输出是__2#5#____。
5-4
执行以下程序段,输入3,输出(3)。
char ch;
scanf(“%c”,&ch);
putchar(‘(’);
printf(“%c”,ch);
putchar(‘)’);
5-5
输入一个正整数n,再输入n个字符,将这些字符输出,输出时在字符之间加一个空格,最后一个字符的后面没有空格。
输入格式:
在第1行输入一个正整数n
在第2行输入n个字符
输出格式:
在一行内输出n个字符,请注意:字符之间有一个空格,最后一个字符的后面没有空格。
输入样例:
5
Happy
输出样例:
H a p p y
#include <stdio.h>
int main()
{ char ch;int first = 1, k, n; scanf("%d\n", &n);for(k = 1; k <= n; k++){
ch=getchar();if ( first == 1){ putchar(ch);
first+=1;}else{
printf(" ");putchar(ch);}}return 0;
}
5-9
本题完成如下求解:
设现在时针指向8点,那么t(t>0)小时后时针指向的点数。
#include <stdio.h>
int main()
{
int t,b;
scanf(“%d”,&t);
b=(8+t-1)%12+1;
printf(“%d”,b);
return 0;
}
//不用(8+t)%12,避免出现指针指向0。t=4时 ,是12点,但是输出0
5-10
输入一个2位数a,计算出它的2位数字之和赋值给b
#include <stdio.h>
int main()
{
int a,b;
scanf(“%d”,&a);
b=(a%10)+(a/10);
printf(“%d”,b);
return 0;
}
5-11
输入某年某月某日,判断这一天是这一年的第几天?
#include <stdio.h>
int main(){int year,month,day;int sum;int leap;int T;scanf("%d",&T);while(T--) {scanf("%d %d %d",&year,&month,&day);switch(month) {case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=89;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;
default:printf("data error");break;}sum+= day;if(year%400==0|| (year%4==0&&year%100!=0))leap=1;elseleap=0;if((leap == 1)&&(month>2&&month<=12)) sum++;printf("It is the %dth day.",sum);}return 0;
}
5-12
计算分段函数,测试数据分别是-2、3、7。
#include <stdio.h>
#include<math.h>
int main( )
{ float x,f;int i;for (i=0; i<3; i++) {scanf("%f",&x);if(x<0)
f=fabs(x+1);else if(x>=0&&x<=5) f=2*x+1;else f=sin(x)+5;printf("x=%.2f,y=%.2f\n",x,f);}return 0;}
5-13
以下程序统计输入的一行字符中字母、数字、空格、其它字符的个数(行末以换行符结束,最后的换行符不统计在内)。例如,输入的一行字符为aB 3*则字母有2个,数字有1个,空格有1个,其它字符有1个。
提示:1、填写的代码要确保程序可以正确编译、运行得出结果;2、空格之后的括号里注明了分数,该括号不属于代码部分。
#include <stdio.h>
int main(){int letters, digits, spaces, others;
letters=0,digits=0,spaces=0,others=0;char ch;while(
ch=getchar(),ch!='\n'){if( (ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z') )letters++;else if( ch>='0'&&ch<='9')digits++;else if( ch==' ')spaces++;elseothers++;}printf("字母、数字、空格、其它字符分别有:%d %d %d%d 个\n",letters,digits,spaces,others);}
5-14
理解switch语句。
下列程序段将输出__2#3#___。
unsigned char x=255,y=‘\1’;
switch(!!x) {
case 0: printf(“0#”);break;
case 1:
switch(y) {
case 0: printf(“1#”);break;
case 1: printf(“2#”);break;
}
default: printf(“3#”);
}
5-15
输入年月日,输出该日是今年第几天?
#include<stdio.h>
int main()
{
int i, year, month, day, days;
scanf(“%d%d%d”, &year, &month, &day);
days=fun(year,month,day);
printf(“%d”, days);
return 0;
}
int fun(int year,int month,int day)
{
int days;
days=day;
switch(month-1)
{
case 11: days+=30;
case 10: days+=31;
case 9: days+=30;
case 8: days+=31;
case 7: days+=31;
case 6: days+=30;
case 5: days+=31;
case 4: days+=30;
case 3: days+=31;
case 2:
if(year%40&&year%100!=0||year%4000)
days+=29;
else
days+=28;
case 1:
days+=31;
}
return days;
}
5-16
写出与以下switch语句等价的else-if语句。
switch(op){
case ‘+’: printf(“%d\n”, value1 + value2); break;
case ‘-’: printf(“%d\n”, value1 - value2); break;
default: printf(“Error\n”); break;
}
if(op==‘+’){
printf(“%d\n”, value1 + value2);
}
else if(op==‘-’)
{
printf(“%d\n”, value1 - value2);
}else {
printf(“Error\n”);
}
5-17
写出与以下switch语句等价的else-if语句。
switch(op){
case ‘+’: printf(“%d\n”, value1 + value2);
case ‘-’: printf(“%d\n”, value1 - value2);
default: printf(“Error\n”);
}
if(op == ‘+’){
printf(“%d\n”,value1 + value2);
printf(“%d\n”, value1 - value2);
printf(“Error\n”);
}
else(op == ‘-’)
{
printf(“%d\n”, value1 - value2);
printf(“Error\n”);
}else {
printf(“Error\n”);
}
5-18
写出与以下switch语句等价的else-if语句。
switch (ch){
case ‘0’ : case ‘1’ : case ‘2’ : case ‘3’ : case ‘4’ :
case ‘-’:
minus++; break;
case ‘5’ : case ‘6’ : case ‘7’ : case ‘8’ : case ‘9’ :
digit ++;break;
default:
other ++; break;
}
if(ch==‘-’||(ch>=‘0’&&ch<=‘4’))
{
minus++;
}else if(ch>=‘5’&&ch<=‘9’)
{
digit ++;
}else {
other ++;
}
5-19
写出与以下switch语句等价的else-if语句。
switch (ch){
case ‘-’:
minus++; break;
case ‘0’ : case ‘1’ : case ‘2’ : case ‘3’ : case ‘4’ :
case ‘5’ : case ‘6’ : case ‘7’ : case ‘8’ : case ‘9’ :
digit ++;break;
default:
other ++; break;
}
if(ch==‘-’)
{
minus++;
}
else if(ch>=‘0’&&ch<=‘9’)
{
digit ++;
}
else
{
other ++;
}
5-20
输入3个整数,输出其中最大的数。
#include <stdio.h>
int main()
{int a, b, c, max;scanf("%d %d %d", &a, &b, &c);max = 0;if ( a > b ) {if ( a > c ) {
max=a;} else {
max=c;}} else {if
(b>c){max = b;} else {
max=c;}}printf("%d\n", max);return 0;
}
5-21
在玩牌程序中,每一组牌用数字1〜13代表。输入数字,显示相应的牌。其中2〜10直接显示数字,而数字1、11、12、13则分别用Ace、Jack、Queen、King来表示。
#include <stdio.h>
int main()
{int n;scanf("%d", &n);if(n >= 1 && n <= 13){switch (n){case 1:
printf("Ace\n"); break;case 11: printf("Jack\n"); break; case 12:
printf("Queen\n"); break;case 13: printf("King\n"); break; default:
printf("%d\n",n); break;}}else{printf("Error\n");}return 0;
}
- Facebook将于周二推出拯救生命新工具
- 学习报告:kmp
- Python KPM算法
- Xmanager 5远程连接CentOS7图形化界面
- springboot之Filter指定过滤URL的常见问题
- 全国所有城市人均GDP排名(包含县级市)
- Emgu CV 第一个实例
- EmguCV学习(二)
- 业务消息中心系统设计与实现(一)
- Android 强制应用全局横屏或竖屏
- php 根据父级id查出,php,
- 关于comparator升序、降序
- janus videoroom之媒体录制
- webrtc janus服务器部署在公网,coturn转发媒体流
- 物体检测中的小物体问题
- python基础教程:
- 常见问题