【题目描述】
下面程序的输出结果是_________。
【我提交的答案】:22
【参考答案分析】:32【解析】while(表达式)的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假,结束while语句的执行,继续执行while语句后面的语句;i=0时满足循环条件,也满足if的条件,执行语句得i=11,a=11,第2次循环不满足if的条件,执行i。i=10,执行i =11;a -7后,得i=21,a=32,不满足i<20,循环结束。
【我的疑问】(如下,请求专家帮助解答)
编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式:
操作数1 运算符op 操作数2
然后,计算并输出表达式的值
指定的运算符为:
加()
减(-)
乘(*)
除(/)
代码如下,所给程序是否存在错误,若有,找出错误所在并改正。
A、default分支缺少break语句
B、第20行语句有错误,改成:
if (data2=0) printf("Division by zero!\n");
else printf("%f/%f = %f\n", data1, data2, data1/data2);
C、没有错误
D、第20行语句有错误,改成:
if (fabs(data2)<=eps) printf("division by zero!\n");
else printf("%f/%f = %f\n", data1, data2, data1/data2);
同时,第1行语句下方应加入
#include
#define EPS 1e-6
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作
D.do-while循环中,根据情况可以省略while
A.while语句的循环体至少无条件执行一次,for语句的循环体可能一次都不执行
B.while语句只能用于循环次数未知的循环,for语句只能用于循环次数已知的循环
C.在很多时候,while和for可以等价使用
D.while语句只能用于可迭代变量,for语句可以用任意表达式表示条件
设有C语句的程序段如下: while(i&&++j) { c=2.19; j+=k; i++; } 则经过词法分析后可以识别的单词个数是_______个。
A.19
B.20
C.21
D.23
A.输出的是1
B.输出的是1和-2
C.输出的是3和0
D.是死循环
构造一个语法制导翻译程序将C语言的循环语句 for(e1;e2;e3)s 翻译成四元式表示的如下语句序列。 begin e1; while(e2)do begin S; e3 end end
A.第6行代码: double e = 1.0第10行代码: term = term *n第13行代码: count++
B.第6行代码: double e = 0第10行代码: term = term *n第13行代码: count++
C.第6行代码: double e = 1.0第10行代码: term = term / n第13行代码: count++
D.第6行代码: double e = 0第10行代码: term = term / n第13行代码: count++
函数count(head)统计链表的结点个数,head为表头指针,阅读程序,要求将整个if语句改成while循环控制结构,其形式为【 】。 include<stdio.h> int count(NODE*head) { int n=0; if(head!=NULL) do { n++; head=head->next; } while(head!=NULL); return n;}