程序1
#include <stdio.h>
main()
{ int j,k,s1,s2;
s1=s2=0;
for(j=0;j<=5;j++){
s1++;
for(k=1;k<=j;k++)
s2++;
}
printf("%d %d",s1,s2);
}
程序2
#include <stdio.h>
main()
{ int j,k,s1,s2;
s1=0;
for(j=1;j<=5;j++){
s1++;
for(k=1,s2=0;k<=j;k++)
s2++;
}
printf("%d %d",s1,s2);
}
程序3
#include <stdio.h>
main()
{ int j,k,s1,s2;
s1=0;
for(j=1;j<=5;j++){
s1++;
for(k=1;k<=j;k++,s2=0)
s2++;
}
printf("%d %d",s1,s2);
}
程序4
#include <stdio.h>
main()
{ int j,k,s1,s2;
s1=s2=0;
for(j=1;j<=5;j++,s1=0){
s1++;
for(k=1;k<=j;k++)
s2++;
}
printf("%d %d",s1,s2);
}
(13)程序1运行时。输出 (13) 。答案:D
A、0 15 B、5 0
C、5 5 D、5 15
(14)程序2运行时。输出 (14) 。答案:C
A、0 15 B、5 0
C、5 5 D、5 15
(15)程序3运行时。输出 (15) 。答案:B
A、0 15 B、5 0
C、5 5 D、5 15
(16)程序4运行时。输出 (16) 。答案:A
A、0 15 B、5 0
C、5 5 D、5 15
试题5(第小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。
【程序】
程序1
#include <stdio.h>
main()
{ int i,m=15,y=-1;
for(i=2;i<=m/2;i++)
if(m%i==0)y=0;
else y=1;
printf("%d",y);
}
程序2
#include <stdio.h>
main()
{ int i,m=15,y=-1;
for(i=2;i<=m/2;i++)
if(m%i==0){y=0;break;}
printf("%d",y);
}
程序3
#include <stdio.h>
main()
{ int i,m=15,y=-1;
for(i=2;i<=m/2;i++)
if(m%i==0)break;
if(i>m/2)y=1;
else y=0;
printf("%d",y);
}
程序4
#include <stdio.h>
main()
{ int i,m=15,y=-1;
for(i=2;i<=m/2;i++)
if(m%i==0){break;y=0;}
printf("%d",y);
}
(17)程序1运行时。输出 (17) 。答案:A
A、1 B、0
C、15 D、-1
(18)程序1运行时。输出 (18) 。答案:B
A、1 B、0
C、15 D、-1
(19)程序1运行时。输出 (19) 。答案:B
A、1 B、0
C、15 D、-1
(20)程序1运行时。输出 (20) 。答案:D
A、1 B、0
C、15 D、-1
麻烦在每个句子后面写下这个句子的意思,第二大题的后两个不会做,里面的else和break搞不清怎么弄。第一题的S1++是什么意思,是S1=S1+1的意思吗?都搞不清。
第一题看你的看懂了,第二题的这句:if(m%i==0){break;y=0;}
尤其是后面的break的那里不懂,那个大括号是什么意思,再说下。我懂了,分就给你了
程序2
#include
main()
{ int i,m=15,y=-1;//定义变量i、m 和y,并且令m等于15 ,y等于-1
for(i=2;i<=m/2;i++)//将i的值初始化为2,并且在i小于m除2(m=15 15除以2等于7.5,
//因为m是整形所以舍去0.7,即i要小于或等于7)的情况下继续循环,
//每循环一次i的值加一
if(m%i==0){y=0;break;}//如果m除i的余数等于0,则令y等于0,并跳出循环。
printf("%d",y);//打印y的值
}
当i=2时,i<7成立,进入循环内部,判断m%i(值为15对2取余 余数为1 不等于0,跳过if后面括号里的语句,继续执行)
当i=3时,i<7成立,进入循环内部,判断m%i(值为15对3取余 余数为0满足if条件,执行if后面括号里的语句,即则令y等于0,并跳出循环)
跳出循环后打印y的值(为0)
break就是跳出循环的意思,也就是循环到这里就不再继续做了。
大括号内的语句块可以看成一条语句。