PTA错题集3

while语句的一般形式如下,其中的循环体语句只能是一条语句。

while (表达式)
循环体语句

{}大括号括起来的是一条复合语句

i++可能增加到一个负数,所以有些程序是运行不下去的

有意义的程序段:运行了很短时间后结束。

题目

以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算每位学生的平均分并输出,但运行后结果不正确,调试中发现有一条语句出现的位置不正确。这条语句是 @A

int main(void)
 { 
 int n,k;
  float score, sum, ave;
   sum=0.0; 
   for(n=1; n<=10; n++)
    { 
    for(k=1; k<=4; k++)
     { scanf("%f",&score); 
     sum+=score; } 
     ave=sum/4.0; 
     printf("NO%d:%f\n",n,ave);
      } 
      return 0;
       }

n表示输入第几名学生的成绩
选A,应该在第一个for循环里边,第二个for循环上边

删除线格式 删除线格式删除线格式

在下列给出的表达式中,与while(E)中的(E)不等价的表达式是

(2)
A.
(!E==0)
B.
(E>0 || E<0)
C.
(E==0)
D.
(E!=0)
选C

b[i]++是什么意思
数组b中第i个元素在执行完本次处理后自动+1。

要本次处理没有完成之前是保持原先的值不变的。

2-15
语句if(x=0) y=1; else y=2;与( )等价。

(1)
A.
if(x!=0) y=2; else y=1;

B.
x=0; if(x==0) y=2; else y=1;

C.
if(x==0) y=1; else y=2;

D.
if(x=0) y=2; else y=1;

选B  if(x=0)是 x被赋值为 零

4-2
写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。

int x, y;
scanf("%d", &x);
if (x > 0){
y = 1;
}else if (x = 0){
y = 0;
}else{
y = -1;
}
输入10,x的值是

若输入-10,x的值是 0 因为有x被赋值为0

2-9添加到日历
假设a为float类型数,i为整型变量,则下述语句能将a中的数值保留小数点1位,并四舍五入的是____。

i=a*10+0.5, a=i/10.0;

若x为浮点型,则表达式x=10/4104都是整形
所以10/4得到2
2转成float,变成2.00000

需要得到2.5可以用10.f/4

1-8
任何一个程序都必须有而且只能有一个main函数。对。

2-8
下列叙述中错误的是

A.
计算机不能直接执行用C语言编写的源程序
B.
C程序经C编译程序编译后,生成扩展名为obj的文件是一个二进制文件
C.
扩展名为obj的文件,经连接程序生成扩展名为exe的文件是一个二进制文件
D.
扩展名为obj和exe的二进制文件都可以直接运行

选D

1-8
int a,b;
scanf(“a=%d,b=%d”,&a,&b);
the correct input should be: 5,6 错!!!

1-11
设变量已正确定义,执行以下程序段,顺序输入三个字符'Q',则输出Q。

ch = getchar(); 
putchar(ch);    错!!!

1-13
C语言中的整数可用十进制、八进制和二进制三种数制表示。
错!!!

1-21
C语言中,数字字符’1’的值(ASCII码)就是数字1
错!!!

1-23
C语言中,大小写字母’A’,‘B’,‘C’,…,‘Z’,‘a’,‘b’,‘c’,…,'z’的ASCII码按升序连续排列。
错!!!

1-30
变量初始化的含义,就是在定义变量时对变量赋值
。对!!!

***## ~~标题~~*** 

设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位四舍五入运算的表达式是(B)
A.n=(n100+0.5)/100.0
B.m=n
100+0.5,n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0
为什么这题是选B啊,

因为B是正确的.n是浮点数,乘100+0.5后,若原先小数第三位>=5,则+0.5后就向前进位了;否则不进位,赋给整型m后,小数部分丢弃,达到了四舍五入的目的;再除以100是恢复原数的大小.
比如:
n=3.1415→m=n100+0.5=314.15+0.5=314.65→314.n=314/100.0=3.14.这是不进位的情况;
n=3.1455→m=n
100+0.5=314.55+0.5=315.05→315.n=315/100.0=3.15.这是有进位的情况.
选项A能四舍五入,但不能保留2位小数;
选项C操作的不是小数后第三位而是第五位了;
选项D操作的不是小数后而是操作到小数点前面去了……

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒回顾,半缘君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值