沈阳师范大学大一上册C语言PTA题目集以及答案(第三章 循环结构程序设计 程序填空题篇)
5-1
用数组来求fibonacci数列问题,打印前20项数列,每行打印4个数。
#include<stdio.h>
int main()
{
int i;
int f[20]={1,1};
for (i=2;i<20;i++)
f[i]=
f[i-2]+f[i-1]
;
for (
i=0
;i<20;i++)
{if(
i%4==0
)printf("\n");
printf("%d ",f[i]);
}
return 0;
}
作者
郑晶晶
单位
武警后勤学院
时间限制
400 ms
内存限制
64 MB
5-1
答案正确
(3 分)
5-2
语句填空:下列 for循环语句将输出: 0 1 2 0 1 2 0 1 2
for( i=1; i<=9; i++ ) printf("%2d",
(i-1)%3
);
作者
徐镜春
单位
浙江大学
时间限制
400 ms
内存限制
64 MB
5-2
答案正确
(1 分)
5-3
输入一个正整数,判断其是否为素数。
scanf ("%d", &m);
if ( m == 1) {
is_prime = 0;
} else if (m == 2) {
is_prime = 1;
} else if (m % 2 == 0) {
is_prime = 0;
} else{
is_prime = 1;
limit = sqrt(m) + 1;
for(i = 3; i <= limit; i += 2){
if(m % i == 0){
is_prime = 0;
break;
}
}
}
if
is_prime == 1
{
printf(“Yes\n”);
}else{
printf(“No\n”);
}
作者
颜晖
单位
浙江大学城市学院
时间限制
400 ms
内存限制
64 MB
5-3
部分正确
(4 分)
5-4
输入15个字符,统计其中空格或回车、数字字符和其他字符的个数。要求使用switch语句编写。
输入格式:
输入为15个字符。最后一个回车表示输入结束,不算在内。
输出格式:
在一行内按照
blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。请注意,等号的左右各有一个空格,逗号后有一个空格。
输入样例:
12 &Zk
09 005Az
输出样例:
blank = 3, digit = 7, other = 5
include <stdio.h>`
int main()
{
int blank, digit, i, other;
char ch;
blank = digit = other = 0;
for(i = 1; i <= 15; i++){
ch = getchar();
switch
if(i<=15)
{
case ’ ‘:case ‘\n’:blank++;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;
}
}
printf("blank = %d, digit = %d, other = %d\n", blank, digit, other);
return 0;
}
作者
颜晖
单位
浙江大学城市学院
时间限制
400 ms
内存限制
64 MB
5-4
部分正确
(3 分)
5-5
计算并输出一个非零整数序列(序列非空)中偶数的平均值。所有输入数据用空格隔开,用0结束输入。输出数据保留2位小数。
#include <stdio.h>
int main()
{
int number;
int sum,n;
double average;
n = 0;
sum = 0;
scanf("%d",&number);
while(
number!=0
){
if(number%2 == 0){
sum += number;
n ++;
}
scanf("%d",&number);
;
}
average=sum/(n1.0)
;
printf("%.2lf\n",average);
return 0;
}
作者
王从银
单位
吉首大学
时间限制
4 ms
内存限制
1 MB
5-5
答案正确
(3 分)
5-6
以下程序统计输入的一行字符中字母、数字、空格、其它字符的个数(行末以换行符结束,最后的换行符不统计在内)。例如,输入的一行字符为aB 3则字母有2个,数字有1个,空格有1个,其它字符有1个。
提示:1、填写的代码要确保程序可以正确编译、运行得出结果;2、空格之后的括号里注明了分数,该括号不属于代码部分。
#include <stdio.h>
int main(){
int letters, digits, spaces, others;
ch=getchar();
;
char ch;
while(
ch!=’\n’
){
if(
(ch>=‘a’&&ch<=‘z’)||(ch>=‘A’&&ch<=‘Z’
)
letters++;
else if(
ch>=‘0’&&ch<=‘9’
)
digits++;
else if(
ch==’\0’
)
spaces++;
else
others++;
}
printf(“字母、数字、空格、其它字符分别有:%d %d %d %d 个\n”,letters,digits,spaces,others);
}
作者
周强
单位
青岛大学
时间限制
400 ms
内存限制
64 MB
5-6
部分正确
(1 分)
5-7
请写出与以下for语句等价的while语句。
for (fahr = lower; fahr<= upper; fahr++){
celsius = (5.0 / 9.0) * (fahr - 32);
printf("%4d%6.1f\n", fahr, celsius);
}
fahr = lower;
while (fahr<= upper){
celsius = (5.0 / 9.0) * (fahr - 32);
printf("%4d%6.1f\n", fahr, celsius);
fahr++;
}
作者
颜晖
单位
浙江大学城市学院
时间限制
400 ms
内存限制
64 MB
5-7
答案正确
(3 分)