`
YongjianChang
  • 浏览: 11081 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

二级C试题(6)

    博客分类:
  • C
c 
阅读更多

12、设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面2位,并将第3位四舍五入的是____。
A)x=x*100+0.5/100.0     B)x=(x*100+0.5)/100.0
C)x=(int)(x*100+0.5)/100.0  D)x=(x/100+0.5)*100.0
答案 C
(int)(x*100+0.5)  把float型数据(x*100+0.5)强转成int,这样就可以去掉小数点,+0.5就是为了四舍五入
例如x=4.256,则(4.256*100+0.5)=426.1   ,则(int)426.1/100.0=4.26


 int f(int x) {static int k=0;x+=k--;return x;} f(f(6))的值为什么是5?
f(6): k=0; x=6+0  k=-1   return 6;
f(f(6))=f(6)  k=-1; x=6-1; k=-2; return 5;
所以f(f(6))=5;
注意,x+=k-- 要先使用k的值,然后减一
static 是静态变量,一旦声明即拥有一块内存,直到程序执行完毕

28、若函数调用时的实参为变量,以下关于函数形参和实参的叙述正确的是。
A)函数的实参和其对应的形参共占同一存储单元。
B)形参只是形式上的存在,不占用具体存储单元。
C)同名实参和形参占同一存储单元。
D)函数的形参和实参分别占用不同的存储单元。
D
形参和实参的类型必须要一致,或者要符合隐含转换规则,当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变.

而如果函数的参数是指针类型变量,在调用该函数的过程中,传个函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身.所以在函数体内部可以改变实参的值.


下面有关for循环的正确描述是()
A for循环只能用于循环次数已经确定的情况
B for循环是先执行循环体语句,后判定表达式。
C 在for循环中,不能用break语句跳出循环体
D for循环体语句中,可以包含多条语句,但要用花括号括起来。
D


已知i.j.k为int型变量,若从键盘输入;1.2.3.回车,使i的值为l,j的值为2,k的值为3,以下选项中正确的输入语句
A) scanf("%2d%2d%2d",&i,&j,&k);
B) scanf(""%d %d %d",&i,&j,&k); 
C) scanf("%d,%d,%d",&i,&j,&k); 
D) scanf("i=%d,j=%d,k=%d",&i,&j,&k)
选c.因为题目中是1,2,3,所以要保持一致在写代码时。


若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是______。(Ц代表一个空格符)
A.ЦЦЦ1,2,3<回车>
B.1Ц2Ц3<回车>
C.1,ЦЦЦ2,ЦЦЦ3<回车>
D.1,2,3<回车>
正确答案:B
解析:scanf()函数的—般格式:scanf(格式控制,地址列表)。在输入多个数值数据时,若“格式控制”字符串中没有非格式字符作输入数据之间的间隔,则可用空格、TAB或回车作间隔。C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。本题由于格式控制符中用了逗号,所以在输入数据时,必须在输入的各数据间用逗号分隔,故选项B不正确。


若程序中有宏定义行 :#define N 100 则以下叙述中正确的是
A) 宏定义行中定义了标识符 N 的值为整数100
B) 在编译程序对C 源程序进行预处理时用100 替换标识符N
C) 对 C 源程序进行编译时用 100 替换标识符N
D) 在运行时用 100 替换标识符N

B

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics