沈阳师范大学大一上册C语言PTA题目集以及答案(第三章 循环结构程序设计 填空题篇)
4-1
int i; for(i=1;i<10;i+=3){ printf(“*”);};循环体将执行
3
次。(填数字)
作者
黄隆华
单位
怀化学院
4-1
答案正确
(1 分)
4-2
执行以下程序段,i的值是
11
,sum的值是
55
。请注意,直接填数字,前后不要加空格等任何其他字符。
int i, sum;
sum = 0;
for (i = 1; i <= 10; i++){
sum = sum + i;
}
作者
颜晖
单位
浙江大学城市学院
4-2
答案正确
(2 分)
4-3
执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。
int fahr;
double celsius;
for (fahr = 91 ; fahr <= 100; fahr++)
celsius = 5.0 * (fahr - 32) / 9.0; /* 语句① /
printf("%4d%6.1f\n", fahr, celsius); / 语句② */
语句①执行了
10
次
语句②执行了
10
次
循环体语句共执行了
11
次
当循环结束时,变量fahr的值是
101
作者
颜晖
单位
浙江大学城市学院
4-3
部分正确
(2 分)
4-4
执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。
int fahr;
double celsius;
for (fahr = 121 ; fahr <= 125; fahr++) ;
celsius = 5.0 * (fahr - 32) / 9.0; /* 语句① /
printf("%4d%6.1f\n", fahr, celsius); / 语句② */
语句①执行了
5
次
语句②执行了
5
次
循环体语句共执行了
5
次
当循环结束时,变量fahr的值是
126
作者
颜晖
单位
浙江大学城市学院
4-4
部分正确
(2 分)
4-5
执行以下程序段,sum的值是
10
。
int i, sum;
for (i = 1; i <= 10; i++){
sum = 0;
sum = sum + i;
}
作者
颜晖
单位
浙江大学城市学院
4-5
答案正确
(1 分)
4-6
写出以下程序段A和程序段B的运行结果。请注意,直接填字母、单词或者两者的组合,前后不要加空格等任何其他字符。
/* 程序段A */
for( i = 1; i < 7; i++){
scanf("%d", &score);
score = score/10;
switch(score) {
case 10: case 9: case 8: case 7: case 6:
grade = ‘P’; break;
default:
grade = ‘F’; break;
}
putchar(grade);
}
printf(“Thanks”);
输入100 90 50 82 72 69, 输出
PPFPPPThanks
/* 程序段B */
for( i = 1; i < 7; i++){
scanf("%d", &score);
score = score/10;
switch(score) {
case 10: case 9: case 8: case 7: case 6:
grade = ‘P’; break;
default:
grade = ‘F’; break;
putchar(grade);
}
}
printf(“Thanks”);
输入100 90 50 82 72 69, 输出
Thanks
。
作者
颜晖
单位
浙江大学城市学院
4-6
答案正确
(2 分)
4-7
写出以下程序段A和程序段B的运行结果。请注意,直接填字母,前后不要加空格等任何其他字符。
/* 程序段A */
char grade;
int i, score;
for( i = 1; i < 6; i++){
scanf("%d", &score);
score = score/10;
switch(score) {
case 10:
case 9:
case 8: grade = ‘A’; break;
case 7: grade = ‘P’; break;
default: grade = ‘F’; break;
}
putchar(grade);
}
输入100 90 82 72 69, 输出
AAAPF
/* 程序段B */
char grade;
int i, score;
for( i = 1; i < 6; i++){
scanf("%d", &score);
score = score/10;
switch(score) {
case 10:
case 9:
default: grade = ‘F’; break;
case 8: grade = ‘A’; break;
case 7: grade = ‘P’; break;
}
putchar(grade);
}
输入100 90 82 72 69, 输出输出
FFAPF
作者
颜晖
单位
浙江大学城市学院
4-7
答案正确
(2 分)
4-8
写出以下4个程序段的运行结果。请注意,直接填数字,前后不要加空格等任何其他字符。
/* 程序段A */
int i, sum = 0;
for ( i = 1; i < 8; i++ ) {
if ( i%2 == 0 ) {
continue;
}
sum = sum + i;
}
printf("%d", sum);
程序段A的输出结果是
16
/* 程序段B */
int i, sum = 0;
for ( i = 1; i < 8; i++ ) {
if ( i%2 != 0 ) {
continue;
}
sum = sum + i;
}
printf("%d", sum);
程序段B的输出结果是
12
/* 程序段C */
int i, sum = 0;
for ( i = 1; i < 8; i++ ) {
if ( i%2 == 0 ){
break;
}
sum = sum + i;
}
printf("%d", sum);
程序段C的输出结果是
1
/* 程序段D */
int i, sum = 0;
for ( i = 1; i < 8; i++ ) {
if ( i%2 != 0 ) {
break;
}
sum = sum + i;
}
printf("%d", sum);
程序段D的输出结果是
0
作者
颜晖
单位
浙江大学城市学院
4-8
答案正确
(4 分)
4-9
若变量已正确定义,写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。
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;
}
}
输入1,变量is_prime的值是
0
输入2,变量is_prime的值是
1
输入11,变量is_prime的值是
1
输入25,变量is_prime的值是
0
作者
颜晖
单位
浙江大学城市学院
4-9
答案正确
(4 分)
4-10
若变量已正确定义,写出以下程序段的运行结果。
scanf ("%d", &m);
limit = sqrt(m) + 1;
for(i = 2; i <= limit; i++){
if(m % i == 0){
printf(“No”);
}else{
printf(“Yes”);
}
}
输入9,输出
YesNoYes
输入4,输出
NoYes
作者
颜晖
单位
浙江大学城市学院
4-10
答案正确
(2 分)
4-11
若变量已正确定义,写出以下程序段的运行结果。
scanf ("%d", &m);
limit = sqrt(m) + 1;
for(i = 2; i <= limit; i++){
if(m % i == 0){
printf(“No”);
break;
}
}
printf(“Yes”);
输入11,输出
Yes
输入25,输出
NoYes
作者
颜晖
单位
浙江大学城市学院
4-11
答案正确
(2 分)
4-12
若变量已正确定义,写出执行以下4个程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。
/* 程序段A */
scanf("%d", &m);
cnt = 0;
limit = sqrt(m) + 1;
for(i = 3; i <= limit; i += 2){
cnt++;
if(m % i == 0){
break;
}
}
执行程序段A,输入101,变量cnt的值是
5
/* 程序段B */
scanf("%d", &m);
cnt = 0;
limit = sqrt(m) + 1;
for(i = 2; i <= limit; i++){
cnt++;
if(m % i == 0){
break;
}
}
执行程序段B,输入101,变量cnt的值是
10
/* 程序段C */
scanf("%d", &m);
cnt = 0;
limit = m/2;
for(i = 2; i <= limit; i++){
cnt++;
if(m % i == 0){
break;
}
}
执行程序段C,输入101,变量cnt的值是
49
/* 程序段D */
scanf("%d", &m);
cnt = 0;
limit = m-1;
for(i = 2; i <= limit; i++){
cnt++;
if(m % i == 0){
break;
}
}
执行程序段D,输入101,变量cnt的值是
99
作者
颜晖
单位
浙江大学城市学院
4-12
答案正确
(4 分)
4-13
若变量已正确定义,写出执行以下3个程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。
/* 程序段A */
sum = 0;
i = 1;
while(1){
sum = sum + i;
i++;
if(i > 10){
break;
}
}
执行程序段A,i的值是
11
,sum的值是
55
/* 程序段B */
sum = 0;
i = 1;
while(1){
sum = sum + i;
if(i > 10){
break;
}
i++;
}
执行程序段B,i的值是
11
,sum的值是
66
/* 程序段C*/
sum = 0;
i = 1;
while(1){
i++;
if(i > 10){
break;
}
sum = sum + i;
}
执行程序段C,i的值是
11
,sum的值是
54
作者
颜晖
单位
浙江大学城市学院
4-13
答案正确
(6 分)
4-14
若变量已正确定义,执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。
i = 1;
while (i<= 10)
i++; /* 语句① /
printf("%d\n", i); / 语句② */
语句①执行了
11
次
语句②执行了
1
次
循环体语句共执行了
10
次
当循环结束时,变量i的值是
11
作者
颜晖
单位
浙江大学城市学院
4-14
部分正确
(3 分)
4-15
若变量已正确定义,写出以下程序段的运行结果。
scanf ("%d", &k);
while(k >= 0){
printf("%d#", k);
scanf ("%d", &k);
}
输入1 2 3 0 -1,输出
1#2#3#0#
输入1 0 2 3 -1,输出
1#0#2#3#
输入1 2 3 -1 9,输出
1#2#3#
作者
颜晖
单位
浙江大学城市学院
4-15
答案正确
(3 分)
4-16
若变量已正确定义,写出以下程序段的运行结果。
scanf ("%d", &k);
while(k > 0){
printf("%d#", k);
scanf ("%d", &k);
}
输入1 2 3 0 -1,输出
1#2#3#
输入1 0 2 3 -1,输出
1#
输入1 2 3 -1 9 0,输出
1#2#3#
作者
颜晖
单位
浙江大学城市学院
4-16
答案正确
(3 分)
4-17
若变量已正确定义,写出以下程序段的运行结果。
scanf ("%d", &k);
while(k >= 0){
scanf ("%d", &k);
printf("%d#", k);
}
输入1 2 3 0 -1,输出
2#3#0#-1#
输入1 0 2 3 -1,输出
0#2#3#-1#
输入1 2 3 -1 9,输出
2#3#-1#
作者
颜晖
单位
浙江大学城市学院
4-17
答案正确
(3 分)
4-18
若变量已正确定义,写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。
/* 程序段A */
count = 0;
scanf ("%d", &number);
t_number = number;
if(t_number < 0) {
t_number = -t_number;
}
do{
count++;
t_number = t_number / 10;
}while(t_number != 0);
执行程序段A,输入-1003
count的值是
5
number的值是
-1003
t_number的值是
0
/* 程序段B */
count = 0;
scanf ("%d", &number);
if(number < 0) {
number = -number;
}
do{
count++;
number = number / 10;
}while(number != 0);
执行程序段B,输入-1003
count的值是
number的值是
作者
颜晖
单位
浙江大学城市学院
4-18
部分正确
(2 分)
4-19
若变量已正确定义,写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。
/* 程序段A */
count = 0;
scanf ("%d", &number);
t_number = number;
if(t_number < 0) {
t_number = -t_number;
}
do{
count++;
t_number = t_number / 10;
}while(t_number != 0);
执行程序段A,输入0,count的值是
1
/* 程序段B */
count = 0;
scanf ("%d", &number);
t_number = number;
if(t_number < 0) {
t_number = -t_number;
}
while(t_number != 0){
count++;
t_number = t_number / 10;
};
执行程序段B,输入0,count的值是
0
作者
颜晖
单位
浙江大学城市学院
4-19
答案正确
(2 分)
4-20
若变量已正确定义,写出以下程序段的运行结果。
count = 0;
s = 0;
new_number = 0;
scanf ("%d", &number);
t_number = number;
if(t_number < 0) {
t_number = -t_number;
}
do{
digit = t_number % 10;
s = s + digit;
new_number = new_number * 10 + digit;
count++;
printf("%d#%d#%d#%d\n", count, digit, s, new_number);
t_number = t_number / 10;
}while(t_number != 0);
输入907
第1行输出
1#7#7#7
第2行输出
2#0#7#70
第3行输出
3#9#16#709
作者
颜晖
单位
浙江大学城市学院
4-20
答案正确
(3 分)
4-21
写出以下2个程序段的运行结果。
/* 程序段A */
int num = 0;
while(num <= 6){
num++;
if(num%3 == 0){
continue;
}
printf("%d#",num);
}
程序段A的输出结果是
1#2#4#5#7#
/* 程序段B */
int num = 0;
while(num <= 6){
num++;
if(num%3 == 0){
break;
}
printf("%d#",num);
}
程序段B的输出结果是
1#2#
作者
颜晖
单位
浙江大学城市学院
4-21
答案正确
(2 分)
4-22
若变量已正确定义,执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。
n = 4;
for(i = 1; i <= n; i++){
for(j = 1; j <= n; j++){
printf("%4d", ij); / 语句① /
}
printf("\n"); / 语句② */
}
语句①执行了
4
次
语句②执行了
16
次
作者
颜晖
单位
浙江大学城市学院
4-22
答案错误
(0 分)
4-23
若变量已正确定义,执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。
n = 5;
sum = 0;
for(i = 1; i <= n; i++){
item = 1; /* 语句① */
for (j = 1; j <= i; j++){
item = item * j; /* 语句② */
}
sum = sum + item; /* 语句③ */
}
语句①执行了
5
次
语句②执行了
15
次
语句③执行了
5
次
作者
颜晖
单位
浙江大学城市学院
4-23
答案正确
(3 分)
4-24
若变量已正确定义,写出以下程序段的运行结果。请注意,不要出现中文的标点符号。
n = 3;
for(i = 1; i <= n; i++){
for(j = 1; j <= i; j++){
printf("[%d#%d]\n", i, j);
}
}
第1行输出
[1#1]
,第2行输出
[2#1]
,
第3行输出
[2#2]
,第4行输出
[3#1]
,
第5行输出
[3#2]
,第6行输出
[3#3]
。
作者
颜晖
单位
浙江大学城市学院
4-24
答案正确
(6 分)
4-25
若变量已正确定义,写出以下程序段的运行结果。请注意,不要出现中文的标点符号。
n = 3;
for(i = 1; i <= n; i++){
for(j = 1; j <= i; j++){
printf("[%d#%d]", i, j);
}
printf("\n");
}
第1行输出
[1#1]
第2行输出
[2#1][2#2]
第3行输出
[3#1][3#2][3#3]
作者
颜晖
单位
浙江大学城市学院
4-25
答案正确
(3 分)
4-26
若变量已正确定义,执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。
for(num = 99; num <= 101; num++){
s = 0; /* 语句① /
t_num = num; / 语句② /
do{
s = s + t_num % 10;
t_num = t_num / 10; / 语句③ /
}while(t_num != 0);
printf("%d\n", s); / 语句④ */
}
语句①执行了
3
次
语句②执行了
3
次
语句③执行了
3
次
语句④执行了
3
次
作者
颜晖
单位
浙江大学城市学院
4-26
部分正确
(3 分)