c语言week5

1-2. 对for(表达式1;;表达式3)可理解为for(表达式1;1;表达式3)。

若要保证for表达式能正常进行,首先要保证第2个表达式的条件判断值应该为真,从而保证循环进行。

一直到在循环语句里面出现break语句为止才跳出循环!0表示非,1表示true!没有条件就是直接执行,不进行判断,那么就是要找到真值,1就表示“真”,0表示“假”,一般来说是非0表示“真”。

1-3.

i++ 与 ++i 的主要区别有两个:

1、 i++ 返回原来的值,++i 返回加1后的值。

2、 i++ 不能作为左值,而++i 可以。

i++是先赋值,然后再自增;++i是先自增,后赋值。
用代码表示就是:
若 a = i++; 则等价于 a=i;i=i+1;
而 a = ++i; 则等价于 i=i+1;a=i;

1-4.do while循环的while后的分号是不可以省略的

1-5.若变量已正确定义,执行以下while语句将陷入死循环。
i = 1;
while (i <= 10) ;
i++;
TRUE. 分析:注意第二行末尾的;(阴间考法)

2-2.设变量已正确定义,则以下能正确计算f=n!的程序段是(D)

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

选项B中,f的初值为1,在for循环语句中,f依次乘以1,2,3,…,(n一1),算到n-1的时候循环就结束了,并没有把(n-1)++算在最后的结果里,最后计算得到f一(n一1)!

2-3.

要求以下程序的功能是计算:s=1+21​ + 31​ + ... + 101​,但运行后输出结果错误,导致错误结果的程序行是(D)

A.int n; float s;

B.for (n = 10; n > 1; n--)

C.s = s + 1 / n;

D.s=1.0

因为 s = s + 1 / n; n是 int 整型变量,1 / n 是整数除法,结果始终为0,应该将 1 改为浮点数,即s = s + 1.0f / n;

*下面程序的输出结果是(12,11) #include<stdio.h> main() {int x=10,*p=&x; printf("%d,%d",++x,++*p); }

在printf函数中 输出运算是从右至左的 先执行++*p *p指向x ++符号是先自加然后再赋值所以为11 然后再++x 也成为12 最后输出的时候先输出++x 再++*p 所以是12 11

2-9.

对于(1)(2)两个循环语句,____是正确的描述。

(1) while(1); (2) for(; ;);

A.(1)(2)都是无限循环

两者都没有约束条件

2-10.

若输入字符串:abcde<回车>,则以下while循环体将执行__0__次。

while ((ch=getchar ( ))== 'e')
  printf(" * ");

第一个是a,让程序无法进入循环

3-1.

whie是C语言中的关键字,代表循环。

while(i)和while(!i)的意思要看i这个变量(表达式)的值是真还是假(0和NULL就是假)。

while(1)和while(99)和while(-76)甚至while(3-100)这类只要括号中的值(或表达式的值)非0,意思一样,代表可以循环并执行循环体,如果是while(0),则代表不执行循环并跳过循环体。while(!9)这个表示对9这个表达式取反,9是真的,那么!9就是假的。

4-3.

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

 

*在C语言中,getchar代表读入一个字符,putchar代表输出一个字符。getchar的用法是输入时直接使用getchar()函数获取字符,putchar的用法是传入字符变量进行打印。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值