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/4为
10和4都是整形
所以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=n100+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=n100+0.5=314.55+0.5=315.05→315.n=315/100.0=3.15.这是有进位的情况.
选项A能四舍五入,但不能保留2位小数;
选项C操作的不是小数后第三位而是第五位了;
选项D操作的不是小数后而是操作到小数点前面去了……