循环

一·.PTA实验作业

题目1.7-1 求交错序列前N项和

 本题PTA提交列表

 

2.设计思路

该式子分子是从1开始,然后逐次加1,直到第N项为N,所以用for循环,i表示分子,i在for循环中不断增加;而分母是从1开始,然后逐次加2,直到第N项为2N-1,用denominator表示分母所以分母应为denominator+=2;;而且前一项与后一项之间是一正一负的关系。所以应该定义一个flag=1;flag=-flag,来改变每一项的符号

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明

编译错误是因为在定义时将英文;弄成了中文的;

denominator=denominator+2那里少了;

题目2.7-7 计算阶乘和

 1.本题PTA提交列表

 

 

 2.设计思路

先定义一个N为不超过10的正整数,然后再定义一个sum,用来保存n个数的和;用for循环来一次一次的求1到N的阶乘数,即令j=1;在for(i=1;i<=N;i++)中计算j=j*i;sum=sum+j的值,最后输出sum。

 

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明

 

 

刚开始在Dev上可以运行,但是在PTA上却一分也没有,感觉很奇怪,之后经过检查发现输出格式不对,题目最后应该只是输出数字,而没有sum =;

题目3.

题目3.7-5 找出最小值

1.本题PTA提交列表

 

 2.设计思路

先定义一个正整数n,然后输入n,之后再输入一个整数number,将它当做最小的,即min=number,之后用for循环一个一个输入number,每次输入number之后,都要拿min和number比较,如果min>number,则min=number。i=i+1,继续下次循环,直至i=n时跳出for循环

 

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明

在Dev上可以运行出来,然后在PTA上不对,之后经过检查,发现多了printf("Enter n:::");printf("Enter number:::");

二.截图本周日集的PTA最后排名

三、同学代码结对互评

 

1.互评同学名称

洪依妍

2.我的代码、互评同学代码截图

 

 

 

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出里出问题。

 (1)我的代码是先用if-else来判断,当a!=b时执行else,在else中用for循环来简化

           同学的代码是用while语句来执行判断。

(2)我的代码比较复杂,而且长,但是也易让人看懂。、

          同学的代码比较简洁,让人一目了然。

(3)我更喜欢同学的那种代码

四、本周学习总结

 

1.你学会了什么?

1.1用while语句实现循环。

    while(表达式)语句,当表达式为非0值时,执行while语句中的内嵌语句。特点是先判断表达式,后执行语句

1.2用do...while语句实现循环

  do...while语句的特点是先执行循环体,然后判断循环条件是否成立。当表达式的值为非零时,返回重新执行循环体语句

 

1.3循环嵌套

   3种循环(while循环、do...while循环和for循环)可以相互嵌套。

2.本周的内容,你还不会什么?

   goto语句还不怎么会用。

 3.循环结构考试总结

 8. 以下正确定义与赋值的语句是________ A、int  x = y = -1               B、char c = 65;     C、float y == 1.0;               D、double x = 12.3E2.5

本题A\、D答案少了;    C答案应该将==改为=       

11. 以下说法正确的是________。 A、 在函数中可以使用多条 return 语句来返回一个结果 B、 若形参与实参类型不一致时,以实参类型为准 C、 当函数值的类型与返回值的类型不一致时,以返回值类型为准 D、 定义函数时,形参的类型说明可放在函数体内 

B答案应该是以形类型为准       C答案应该是以函数类型为准           D答案错在形参的类型说明不可以放在函数体内

 

14. 如下程序段的运行结果是_______。

#include <stdio.h>

int  main()

{

   int  a = 5,b = 4,c = 3,d = 2;

   if(a > b > c)

     printf(“%d\n”,d);

  else if((c-1 >= d)== 1)  

    printf(“%d\n”,d+1);

  else

     printf(“%d\n”,d+2);

   return 0;

}

A、2              B、3             C、4               D、5 

 当a>b是返回值为1,1不大于c,所以不执行if语句,跳入else if语句,c-1为2,会等于的,所以返回值为1与后面的1相等,所以执行else if语句

16. 以下 for 循环的执行次数是________。 for(x = 0,y = 0;(y = 3)&&(x <= 4);x++,y++) A、是无限循环          B、循环次数不定       C、执行 5 次       D、执行 4 次 

y=3返回值为1,所以当x<=4时,执行for循环;

20. 当执行程序段

x = -1;

do{

 x = x * x;

}while(!x);时, 循环体将___.  A. 执行零次       B. 执行一次      C. 执行两次     D. 执行无限次   

先做一遍循环,再判断!x是否成立

 

posted @ 2017-12-26 20:57  wangdan1  阅读(353)  评论(0编辑  收藏  举报