内容正文:
4.3:for语句
一、单项选择题
1、以下程序的运行结果是 ( )
public static void Main(){
int i;
int [] a=new int[10];
for(i=10;i>=0;i--){
a[i]=12-i;
Console.Writeline(“{0}{1}{2}”,a[1],a[4],a[7]);
}
}
A、1195 B、1089 C、1185 D、1099
2、下列代码输出结果正确的是( )
static void Main(string[] args){
int i, j;
for(i=1;i>=0; i--) {
for(j=0;j<=i;j++){
Console.WriteLine(“i*j={0}”,i*j);
}
}
}
A.i*j=0 B.i*j=1 C.i*j=1 D.i*j=0
i*j=0 i*j=0 i*j=1 i*j=1
i*j=0 i*j=1 i*j=0 i*j=0
3、在C#中,下列代码的运行结果是( )
int[] n=new int[]{15,19,21,,24};
for(int i=0;i<n.length;i++){
if(n[i]>20){
break;
}
Console.Write(n[i]);
}
A、15 B、19 C、21 D、24
4、下列哪个不是 C# 提供的循环语句( )
A. do…loop while…语句
B. for 语句
C. do…while 语句
D. while 语句
5、在下面循环语句中循环体执行的次数为( )。
for(int i=1; i<n; i++){
if(i>n/2)
break;
}
A. n/2 B. n/2+1 C. n/2-1 D. n-1
6、 结构化程序设计的 3 种基本结构是( )。
A. 顺序结构,if 结构,for 结构
B. if 结构,if…..else 结构,else if 结构
C. while 结构,do….while 结构,for 结构
D. 顺序结构,分支结构,循环结构
7、下面代码运行后,n 的值是( )。
int n = 4;
for (int i = 1; i < 50; i++){
if (n > 9){
break;
}
if (i % 2 != 0){
n += i;
}
}
A. 20 B.12 C. 13 D.6
8、以下程序的运行结果是( )
string s = “hello”;
for(int i=12; i>3 ; i-=3){
if(i==6)
Console.WriteLine(s+i);
break;
}
A.6 B.hello6 C.hello D.hello+6
9、 下列有关 for 语句的说法错误的是( )。
A.for 循环体语句中,可以包含多条语句,但要用花括号括起来
B.for 循环中,可以用 break 语句跳出循环体
C.for 循环是先判定表达式,后执行循环体语句
D.for 循环只能用于循环次数已经确定的情况
10、关于以下程序的结构描述中,正确的是?( )
for (int i=0 ; ; ){ 循环体; }
A. 循环体执行一次 B. 报错
C. 一直执行循环体 D. 程序无法执行
二、填空题
1、 循环语句“for(int i=25;i>=9;i=i-4)”循环次数为( )。
2、 int i=3;
for(int j=0; j<=10; j+=2){ i+=j; }
请问最终i的值为( )。
3、for循环中的三个控制参数用( )进行分隔。
4、在 C#中,下列代码的运行结果是( )。
for(int i=4; i>=0; i--){
Console.Write(i--);
}
5、执行下列程序后,j 的值为 ( )
int i, j;
for(i=0, j=0; i<=8; i++, j++){}
三、简答题(使用for语句进行编程)
1.求1-100之间的所有的偶数和。
2.求数组a中的最大值。(数组中元素有44, 64, 34, 24, 15, 75, 90, 34, 5, 67 )
3.经典问题:百钱买百鸡,公鸡5元,母鸡3元,小鸡1元三只,请问公鸡、母鸡、小鸡分别能买多少只?
4.斐波那契数列 1 1 2 3 5 8 输出第n项的值。
5.判断输入的数据是否是素数。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
4.3:for语句
一、单项选择题
1、以下程序的运行结果是 ( )
public static void Main(){
int i;
int [] a=new int[10];
for(i=10;i>=0;i--){
a[i]=12-i;
Console.Writeline(“{0}{1}{2}”,a[1],a[4],a[7]);
}
}
A、1195 B、1089 C、1185 D、1099
【答案】C
【解析】本题将for循环语句与数组结合使用,已知数组内有10个元素,观察for循环内发现i的值递减,我们选择输出的数据为a[1],a[4],a[7],a[7]=12-7=5;a[4]=12-4=8;a[1]=12-1=11;因此输出结果为1185,选C。
2、下列代码输出结果正确的是( )
static void Main(string[] args){
int i, j;
for(i=1;i>=0; i--) {
for(j=0;j<=i;j++){
Console.WriteLine(“i*j={0}”,i*j);
}
}
}
A.i*j=0 B.i*j=1 C.i*j=1 D.i*j=0
i*j=0 i*j=0 i*j=1 i*j=1
i*j=0 i*j=1 i*j=0 i*j=0
【答案】D
【解析】阅读程序,本题考察for循环的嵌套使用,当i的值为1时,j=0,j<=1符合题意,输出i*j=0;j自增变为1,j<=1符合题意,输出i*j=1;但此时再次自增的j值已不符合要求,结束第二层for循环,i的值自减变为0,再次进入内层循环,j=0, j<=0符合题意输出i*j=0;j自增变为1,i的值变为-1已不符合题意,结束循环,答案为D。
3、在C#中,下列代码的运行结果是( )
int[] n=new int[]{15,19,21,,24};
for(int i=0;i<n.length;i++){
if(n[i]>20){
break;
}
Console.Write(n[i]);
}
A、15 B、19 C、21 D、24
【答案】C
【解析】阅读程序可知,当数组内的值>20时跳出for循环,观察数组n,当运行到n[2]时会跳出循环,因此最后i的值为2,输出结果为21,答案选C。
4、下列哪个不是 C# 提供的循环语句( )
A. do…loop while…语句
B. for 语句
C. do…while 语句
D. while 语句
【答案】A
【解析】do…loop语句是VB语言中提供的循环语句,并不是C#语言提供的循环语句,答案选A。
5、在下面循环语句中循环体执行的次数为( )。
for(int i=1; i<n; i++){
if(i>n/2)
break;
}
A. n/2 B. n/2+1 C. n/2-1 D. n-1
【答案】A
【解析】根据题意可知,当i>n/2时跳出循环,所以当i的值为n/2+1时可跳出循环,但是i的初始值为1,所以循环次数为n/2,答案为A。
6、 结构化程序设计的 3 种基本结构是( )。
A. 顺序结构,if 结构,for 结构
B. if 结构,if…..else 结构,else if 结构
C. while 结构,do….while 结构,for 结构
D. 顺序结构,分支结构,循环结构
【答案】D
【解析】本题考到的是结构化程序设计的基本结构组成,3种基本结构为顺序、分支、循环,答案为D。
7、下面代码运行后,n 的值是( )。
int n = 4;
for (int i = 1; i < 50; i++){
if (n > 9){
break;
}
if (i % 2 != 0){
n += i;
}
}
A. 20 B.12 C. 13 D.6
【答案】C
【解析】阅读循环语句可知,当i的值为奇数时会执行第二个if语句内的语句,完成n值的变化,所以当i的值为1时,n=4+1=5;当i的值为3时,n=5+3=8;当i的值为5时,n=8+5=13;此时再次循环运行,满足条件n>9,跳出循环,因此最后n的值为13,答案选C。
8、以下程序的运行结果是( )
string s = “hello”;
for(int i=12; i>3 ; i-=3){
if(i==6)
Console.WriteLine(s+i);
break;
}
A.6 B.hello6 C.hello D.hello+6
【答案】B
【解析】阅读程序可知,当i的值为6时跳出循环并输出,由于变量s为字符串类型,s+i为字符串连接,因此答案为hello6,答案选B。
9、 下列有关 for 语句的说法错误的是( )。
A.for 循环体语句中,可以包含多条语句,但要用花括号括起来
B.for 循环中,可以用 break 语句跳出循环体
C.for 循环是先判定表达式,后执行循环体语句
D.for 循环只能用于循环次数已经确定的情况
【答案】D
【解析】阅读题意可知,for循环语句不仅可用于循环次数已经确定的情况,对于循环次数不确定的情况也可使用for循环语句,所以D选项说法错误,答案选D。
10、关于以下程序的结构描述中,正确的是?( )
for (int i=0 ; ; ){ 循环体; }
A. 循环体执行一次 B. 报错
C. 一直执行循环体 D. 程序无法执行
【答案】C
【解析】 表达式2和表达式3均省略,会导致循环没有终止条件,即会一直执行循环体无法停止,答案为C 。
二、填空题
1、 循环语句“for(int i=25;i>=9;i=i-4)”循环次数为( )。
【答案】5
【解析】根据for语句的执行流程来判断执行,循环第一次:i=25,符合条件i>=9,i=21;循环第二次:i=21,符合条件i>=9,i=17;循环第三次:i=17,符合条件i>=9,i=13;循环第四次:i=13,符合条件i>=9,i=9;循环第五次:i=9,符合条件i>=9,i=3;此时i的值已不符合循环要求,跳出for循环,循环结束,共循环5次。
2、 int i=3;
for(int j=0; j<=10; j+=2){ i+=j; }
请问最终i的值为( )。
【答案】33
【解析】第一次循环j的值为0,i=3+0=3;第二次循环j的值为2,i=3+2=5;以此循环,直到j的值为10时,i=23+10=33结束循环,最终i的值为33,答案为33。
3、for循环中的三个控制参数用( )进行分隔。
【答案】分号(;)
【解析】考察for循环语句的格式掌握,for循环中的三个表达式之间使用分号(;)进行分隔。
4、在 C#中,下列代码的运行结果是( )。
for(int i=4; i>=0; i--){
Console.Write(i--);
}
【答案】420
【解析】阅读程序可知,i的初值为4,符合判断条件,执行循环体i--,此时输出4,但i的值减1,再进行i的自减,循环往复,输出2和0,此时i的值为0,再进行i--,i的值变为-1不再符合条件,跳出循环,因此答案为420。
5、执行下列程序后,j 的值为 ( )
int i, j;
for(i=0, j=0; i<=8; i++, j++){}
【答案】9
【解析】观察以上程序可知,当i的值自增到9时跳出循环,j的值同i相同,因此跳出循环后j的值为9,即答案为9。
三、简答题(使用for语句进行编程)
1.求1-100之间的所有的偶数和。
【答案】
int sum=0;
for(int i=1;i<=100;i++){
if(i%2==0){
sum=sum+i;
}
}
Console.WriteLine(sum);
【解析】在C#中,判断一个整数是否为偶数可以使用模运算符 %。如果一个数除以2的余数为0,则该数是偶数;如果余数为1,则该数为奇数,在for循环里增加if判断,确定为偶数则进行数据累加,最终输出累加值。
2.求数组a中的最大值。(数组中元素有44, 64, 34, 24, 15, 75, 90, 34, 5, 67 )
【答案】
int[] a = new int[10] { 44, 64, 34, 24, 15, 75, 90, 34, 5, 67 };
int max = a[0];
for (int i = 1; i < a.Length; i++)
{
if (a[i] > max)
{
max = a[i];
}
}
Console.WriteLine("最大值" + max);
【解析】主要考察for语句与数组间的应用。
3.经典问题:百钱买百鸡,公鸡5元,母鸡3元,小鸡1元三只,请问公鸡、母鸡、小鸡分别能买多少只?
【答案】
for (int i = 1; i <= 20; i++){
for (int a = 1; a <= 33; a++){
for(int b=0;b<=99;b+=3){
int c=5*i+3*a+b/3;
int n=i+a+b;
if(c==100&&n==100){
Console.WriteLine("公鸡{0},母鸡{1},小鸡{2}",i,a,b);
}
}
}
}
Console.ReadLine();
【解析】主要考察学生的数学应变能力,根据题意进行合理编程即可。
4.斐波那契数列 1 1 2 3 5 8 输出第n项的值。
【答案】 int a = 1, b = 1, sum = 0;
Console.Write("请输入n值:");
int n = Convert.ToInt32(Console.ReadLine());
if (n == 1 || n == 2){
Console.WriteLine("1");
}
else{
for (int i = 3; i <= n; i++){
sum = a + b;
b = a;
a = sum;
}
Console.WriteLine("第n项的值:" + sum);
}
Console.ReadLine();
【解析】主要考察学生的逻辑思考能力,根据斐波那契数列的数字特点进行编程,结合if语句和for语句循环进行循环。
5.判断输入的数据是否是素数。
【答案】 Console.WriteLine("判断输入的数是否是素数");
Console.Write("输入的数:");
int n = Convert.ToInt32(Console.ReadLine());
for (int i = 2; i <= n; i++) {
if (n % i == 0 && n != i){
Console.WriteLine("不是素数");
break;
}else{
Console.WriteLine("是素数");
break;
}
Console.ReadKey();
【解析】通过了解素数是只能被1和本身整除的数,根据条件进行编程即可。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$