沈阳师范大学大一上册C语言PTA题目集以及答案(第三章 循环结构程序设计 选择题篇)

沈阳师范大学大一上册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 分)

  • 11
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值