项目四任务三 for语句 (练习)-《算法与程序设计—C#》(河北科学技术出版社第1版)同步精品课堂

2025-01-21
| 2份
| 18页
| 265人阅读
| 9人下载

内容正文:

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和本身整除的数,根据条件进行编程即可。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

项目四任务三 for语句 (练习)-《算法与程序设计—C#》(河北科学技术出版社第1版)同步精品课堂
1
项目四任务三 for语句 (练习)-《算法与程序设计—C#》(河北科学技术出版社第1版)同步精品课堂
2
项目四任务三 for语句 (练习)-《算法与程序设计—C#》(河北科学技术出版社第1版)同步精品课堂
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。