C语言 、若有定义:int a=8,b=5,c; 执行语句c = a/b+0.4 ;后,c的值为( ).A) 1.4 B) 1 C) 2.0 D) 22 、以下程序中,while 循环的次数是( ).#include void main(void){ int i = 0;while (ib>a);}A) 2 B) 1 C) 0 D) 38、执行以
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 09:21:48
C语言 、若有定义:int a=8,b=5,c; 执行语句c = a/b+0.4 ;后,c的值为( ).A) 1.4 B) 1 C) 2.0 D) 22 、以下程序中,while 循环的次数是( ).#include void main(void){ int i = 0;while (ib>a);}A) 2 B) 1 C) 0 D) 38、执行以
C语言
、若有定义:int a=8,b=5,c; 执行语句c = a/b+0.4 ;后,c的值为( ).
A) 1.4 B) 1 C) 2.0 D) 2
2 、以下程序中,while 循环的次数是( ).
#include
void main(void)
{ int i = 0;
while (ib>a);
}
A) 2 B) 1 C) 0 D) 3
8、执行以下程序后,a的值为( ).
int *p,a = 10,b=1;
p = &a; a = *p + b;
A) 12 B) 编译出错 C) 10 D) 11
9、以下正确的叙述是( ).
A) 在C语言中,main函数必须位于文件的开头
B) C语言每行中只能写一条语句
C) C语言本身没有输入、输出语句
D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误
10、以下各语句或语句组中,正确的操作是( ).
A) char s[5]="abcde" B) char *s; gets(s);
C) char *s; s="abcde"; D) char s[5]; scanf("%s",&s);
11、设有以下说明语句,则下面的叙述中不正确的是( ).
struct ex {
int x ; float y; char z ;
} example;
A) struct结构体类型的关键字 B) example是结构体类型名
C) x,y,z都是结构体成员名 D) struct ex是结构体类型
12对以下程序段,while 循环执行的次数是( ).
int k=0
while (k=1) k++;
A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次
15、在下列选项中,不正确的赋值语句是( ).
A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;
你们这答案五花八门啊,第一题我敢肯定就是选择 B 啊注意是int
C语言 、若有定义:int a=8,b=5,c; 执行语句c = a/b+0.4 ;后,c的值为( ).A) 1.4 B) 1 C) 2.0 D) 22 、以下程序中,while 循环的次数是( ).#include void main(void){ int i = 0;while (ib>a);}A) 2 B) 1 C) 0 D) 38、执行以
注:水平不高……第一想帮帮你,第二我也在学习C++,所以想试试,如有错误,请您见谅
【1】选(B)
因为A,B,C都是整型,在商的过程中,小数点后面都没有了,所以得出结果的1.4,最后因为C的整型类型的缘故,导致后面的小数点0.4没有了,结果只是1
【2】选(B)
continue的作用是,符合IF判断条件则跳出循环,进行下一循环,则由于i=0,符合判断条件if(i<1),然后就跳出循环,再重复while循环,然后再判断,又符合,然后再再执行循环,无限下去……因此是死循环
【3】选(A)
由于switch(i)的循环体内,并没有break,导致每一个case,如果符合条件,就会一条条的执行下去
若i=1,依次执行case1,case2,default,由于case1没有贡献,case2使得a=8,default使得a=13
若i=2,依次执行case2,default,由case2使得a=16,default使得a=21
若i=3,依次执行case3,case1,case2,default,这样下去,到i=4的循环执行完毕后,再判断一下i的大小
最后就跳出了,答案是a=31
【4】选(C)
这道题,直接放到编译器……就可以了,但是强调的是……不同的编译器选择的自增自减的语句原则不同
以VISUAL C++为例,一般符合学习语法,但是TUBOR和C FREE等,对自增自减的语法有不同的规定
举个例子,n=(++a)+(++a)+(++a);,假如a=3,那么有的编译器会认为n等于15,但有的认为是12
因为有的编译器认为每次都要自增,但是有的编译器认为自增一次后,等到等式运算结束,碰到分号,结束语句后再进行处理自增(虽然a=6,但是不同编译器处理n值结果不一样).
本题如果按照visual C++来的话,应该是13 13.因为 n = (++x) + (++x);第一个x这时先自增成6,再参与加法运算,然后第二个x同理先自增,再运算,变成8,于是就是n=6+8;而m = (x--) + (x--);由n运算完毕的x是等于8的,参与m的减法运算之后,再自减,同理m=8+6;最后x还是等于5.
【5】选(C)
因为if ((++i>0)||(++j>0)) a ++;这一句,编译器是这样执行的,当或语句出现,只要第一个条件满足,立刻忽略后面的语句,即编译器编译啊编译啊,突然编译到++i>0,这句时,发现时TRUE,是正确的,由或概念,可知,if语句判断通过,于是编译器直接忽略后面的++j,于是j的值其实根本没有改变.
【6】选(D)
字符串的放置,人是看不见的,在机器内部,默认的放置时,比如说char a[]=”abc”;那么系统会拿出4个“盒子”,打个比喻,说成盒子,其实盒子就内存.abc分别装入三个盒子,最后一个盒子装的是“\0”,这个“\0”符号表示的是结束的意思,就是说,系统一碰到这个符号,默认认为输入的字符立刻结束.所以说,你定义的char a[]=”abc\0abc”;,系统编译时,一碰到\0立刻停止往数组内输入数据,实际上字符串输入数组只有abc.另外:\0符号,不会输出在屏幕上的.
【7】选(C)
关键在于printf(“%d”, c>b>a);,C=3,B=2,那么C>B,是真,真就是1,系统默认的,就好比一个if判断语句,什么也不写.if(){/*这里面是程序*/},那么判断的时候,怎么判断呢?如果数据进入时0,那么就为假,如果数据进入的是1或者非零,就是真,道理就在这里.而且符号大于号,是判断符号,不是赋值符号.因此C>B的事实是正确的,因此C>B结果是1,然后按照比较符号的调用左规则,继续和A比较,而1是等于A的,而不是大于A,那么此事件是假,为假事件,那么假事件结果就是0
【8】选(D)
p = &a,指的是*P这个指针现在等于a,注意是“星P”等于a,而P不是等于a的,P是a的地址,*P才是等于a,其实星P就是和a没有区别,a就是星P,星P就是a.然后a = *p + b;就是a=a+b;所以a=11了
【9】选(C)
所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作.预处理是C语言 的一个重要功能, 它由预处理程序负责完成.当对一个源文件进行编译时, 系统将自动引用预处理程 序对源程序中的预处理部分作处理, 处理完毕自动进入对源程序的编译.在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换, 这称为 “宏代换”或“宏展开”. 宏定义是由源程序中的宏定义命令完成的. 宏代换是由预处理程序自动完成的.至于正确选项:C语言本身没有输入 输出语句,其功能须通过调用相关函数来实现. 语言本身没有输入/输出语句 其功能须通过调用相关函数来实现.
【10】选(B)
这个……A项少了分号,C项既然是指针,那么取的应该是地址,最后一项,显然……字符串,如果不是GETS()函数,那么就应该用循环,才能实现SCANF的输入
【11】选(B)
显然example是结构体内某个具体的对象,而x,y,z都是关于example属性修饰之类的成员,比如说example可以代表一本例子样本的书,那么x,y,z可以代表修饰书的作者,出版时间,出版社,都是书的成员属性.而至于一个结构体类型有其专有的标志,它由两个单词组成,第一个关键字struct,第二个单词按标识符命名规则指定.
【12】选(A)
由于判断的条件不是K==1,注意是两个等号,由于只是一个等号,系统认为,条件是K=1,注意是把1赋值给K,然后就成了,然后进入循环.切记=是赋值,==是判断.以后所有的……个跟第七题,很像了,凡是非零的数据进入判断,都是真事件
汗……怎么直接15题
【15】选(D)
显然……你之前的题目里面就有A项的赋值方法,然后B项可以理解为将n3的值赋给n2,然后再把覆盖的n2赋给n1,C项理解为判断i与j是否相等,相等则事件真,k就等于1,若为假,k就等于零.D项错在等号的赋值符号是具有右结合性的,应从右至左处理符号.显然最后一项有错误
以上全为个人所写,绝无雷同,请勿传播……如有错误,请指出,共同进步