C语言选择题(3道题),帮忙解答一下,谢谢!

1.分析下面的C语言代码:
int a=1,b=10;
do{
b-=a; a++;
}while (b- -<0);
则执行循环语句后b的值为()。 (单选题)。
A. 9 B. -2 C. -1 D. 8
答案: D

2.#include<stdio.h>
void main()
{
int a=3,b=2,c=1;
int x=10,y=20;
if(a<b)
if(b!=0)
if(!x)
y=1;
else if(x)
y=0;
y=-1;
printf("%d",y);
}
上面的C程序的输出结果是( )。 (单选题)。
A. 20 B. 1 C. 0 D. -1
答案: B

3、表达式18/4*sqrt(4.0)/8值的数据类型为()。 (单选题)
A. int B. float C. double D. 不确定
答案: C
分别解释一下,答案是怎么得来的……

你好:
第一题:
先执行循环体:b-=a; a++;
b=b-a=10-1=9,a=2,
再判断条件:b--<0 b=9>0 然后b-- (注意无论判断条件是否满足,都执行),b=8
第二题:
答案错了,应选D
程序应该这么看:
int a=3,b=2,c=1;
int x=10,y=20;
if(a<b) 一开始a>b就不满足条件,所以下面的不执行!
if(b!=0)
if(!x) y=1;
else
if(x) y=0;
y=-1; 只执行这句!
printf("%d",y);

所以y=-1
第三题:
18/4*sqrt(4.0)/8这个运算中有浮点型数据即sqrt(4.0),系统会自动把其他类型的数据想double转换。
比如:
float b=6.5;
int a=2;
那么a+b的类型就是float,因为这个表达式中最高的类型就是float,那么int 就会向float转换。

总结就是要是表达式中都要向类型高的转化。
明白了吗?
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-28
3、答案C
其结果为1。说明:C中表达式运算过程中,只要遇到符点型数据就会按符点型数据进行运算,其结果也是符点型。sqrt()函数的返回值是double型,所以,整个运算结果也是double.
2、答案D
else if(x)
y=0;
y=-1;
从这里可以看出 y=-1; 是一条单独的语句,与前面的所有语句都没有关系,程序只要执行到这里y值必然会是-1,所以其输出结果是-1
1、答案D
b-=a; =》b=10-1=9;
while (b--<0); 先检查b<0? 然后运行b--:=》b>0 , b=9-1=8 这里我们也可以看出,类似a++,a--,等操作,只要用到了变量a,则++,--运算就会执行。
第2个回答  2011-08-28
第一题 执行循环语句时,b-=a , 相当于 b=b-a为10-1=9,执行一次以后在判断能否满足条件执行下一次循环,判断语句为b--,即为b=b-1=8,因为8<0是假命题,逻辑值为0,不满足循环条件,退出循环。
第二题 答案应该是B吧 else是与上面最近if 配对,在本题中即与if(!x)配对。 if(a<b)
if(b!=0)
if(!x)
y=1;
else if(x)
y=0;
这是一个可以看做一个整体,因为if(a<b)当中的a<b为假命题,所以以后的完全不用看了,直接执行 y=-1;
printf("%d",y);
第3个回答  2011-08-28
给点分值啊,这样解的没意思。这都要用笔算的

C语言选择题(3道题),帮忙解答一下,谢谢!
第一题:先执行循环体:b-=a; a++;b=b-a=10-1=9,a=2,再判断条件:b--<0 b=9>0 然后b-- (注意无论判断条件是否满足,都执行),b=8 第二题:答案错了,应选D 程序应该这么看:int a=3,b=2,c=1;int x=10,y=20;if(ab就不满足条件,所以下面的不执行!if(b!=0)if(!x...

C语言几道多项选择题,请大家帮忙解答一下。
2.ABC A a(1,2)数组的引用根本没有()B a[1,3]即a[3],不符合二维数组 C a[2][0]数组的行越界,行的取值是0,1,取不到2 \/\/注意:此题的D选项是绝对正确的,相当于a【0】【0】3.CD 打开文件的方式是:FILE *fp;fp=fopen(文件名,使用文件方式);AB的使用方式不...

帮忙解答一道C语言选择题
答案是:A 这个可以分为2部分 第一部分typedef struct student STU;第二部分struct studrnt { };第一部分将结构体struct student定义为类型STU,所以可以用STU s;来声明一个结构体,所以D是对的 第二部分定义一个机构体struct student,所以可以用struct student s;来声明一个结构体,所以B是对的 选项...

C语言的题,都不难,帮忙解答,追加悬赏喔。麻烦把各个选项都解释解释最好...
这个题是因为C选项for语句在读入一个换行之后就停止了,所以并不能统计所有输入。第六题:这里的p是指针,他就相当于dt,++p->x = (d[1].x) = ++3 = 4,注意这里的++是作用于P的,所以要先递增p,后面的++p—>y,其实这个值是不确定的,以为p现在已经不是指向a中的元素了。所以有前面的值...

急求解答:C语言程序设计试题 请专长人士帮忙解答 谢!!!
一、填空题 1.一个函数一般由两部分组成,它们分别是函数名和函数体。2.一个C语言的程序至少应包含一个主函数。3.函数体用{符号开始,用}符号结束。4.欲将一个16位二进制的整数变量的高8位清零,而只保留低8位,可用的方法是和0x00ff进行与运算。5.数组在内存中是一块连续的储存区,数组名...

今天做C语言的试卷,有几题不会,望会的人帮忙解答一下!谢啦
第一题,选D,题目意思是用循环的方式输入10个到数组a[10]中,A,B明显不对C中会越界,应该是&a[i++],D暂时还有点不太好理解,第二题,结果为-1;因为while(x--);(请注意括号后面后有分号,这一句的目的就是x一直减减,直到x等于0,因为"--"是右结合运算符,所以执行完while(x--);...

求大神解答3道c语言的题目!急急急
9.20 *(ptr+y)就是a[y] 就是a[y]与8的比较,a[y]始终小于8,所以就是6 9.22 s[0]~s[5]分别为0(s[0]未初始化,初始值要看编译器对未初始局部变量处理方式而定),C,D,E,F,G,fun函数就是从G开始往前找到E,取E的下标 5.5 就如上面所说,sum是一个未初始化局部变量,...

有一道C语言的选择题,希望能帮忙给出详细解答,谢谢了
static struct s a[3]={{1,&a[1]},{2,&a[2]},{3,&a[0]}};然后看答案 A.ptr->i++ ptr指向a[1]然后指向属性i 此时i=2 运行完这句时候才执行i++ B.ptr++->I 结构体中没有I这个属性 C.*ptr->i ->的优先权大于*指针 所以相当于*(ptr->i)而i属性是int 不能用*指针去...

计算机有关c语言的一些问题选择 各位大大 求帮忙~~~
第五题:b 理由:赋值运算符的左侧必须是变量,不能是表达式,故d错。%运算符的操作数必须是整型数据,故c错,在C语言中不存在:=运算符,故a错。第六题:c 理由:字符常量要用单撇号括起来 第七题:a c 理由:C中支持两种注释方式:一是以\/*开始以*\/结尾的多行注释,二是以\/\/开头的单行...

有几道C语言题请大家帮我解答一下,各位哥哥姐姐帮帮忙啊!小弟感激不...
1. 变量名 2. 逗号表达式,其值取最后一项。78\/5 = 15(小数部分不要)3.选A,--x相当于x=x-1;4.321。求余运算 5.printf("格式控制", [输出参数1,...])scanf("格式控制", [&输入参数1,...])6.没题目

相似回答