牛客网刷题——心里没数的题

1.

题目:

以下程序段的执行结果是()。
double  x;x=218.82631;
printf("%-6.2e\n",x);

A.输出格式描述符的域宽不够,不能输出
B.输出为21.38e+01
C.输出为2.19e+02
D.输出为-2.14e2

答案:

C。
%:表示格式说明的起始符号,也是转义符号,有一题 printf(“%%%%”)输出几个?答案输出%% 两个
-:有-表示左对齐输出,如省略表示右对齐输出 
0:有0表示指定空位填0,如省略表示指定空位不填 
m.n m指域宽,即对应的输出项在输出设备上所占的字符数。
n指精度。用于说明输出的实型数的小数位数。没有指定n时,隐含的精度为n=6位 
e格式表示以指数形式输出实数
那么这题的意思是以左对齐、指数形式、总长度m =6、小数n=2两位 输出 
如果实际长度大于域宽,则以实际长度为准

2.

题目:

某32位系统下, C++程序如下所示,sizeof 的值应为?
char str[] = “http://www.renren.com”  (长度为21)
char *p = str ; 

sizeof (str ) = ?(1)
sizeof ( p ) = ?(2)
void Foo ( char str[100]){
    sizeof( str ) = ?(3)
}
void *p = malloc( 100 );
sizeof ( p ) = ?(4)

A.22, 22, 100, 100
B.4, 4, 4, 4
C.22, 4, 4, 4
D.22, 4, 100, 4

答案:

C.
第一个长度为21,加上\0为22,第二个在32位操作系统中,指针大小为4,第三个,数组在作为函数的形参时,自动退化为同类型的指针,第四个指向开辟的内存的指针,大小仍然为4

数组长度就是你定义数组时方括号中数字的大小。
字符串长度就是字符的个数。
字符串所占空间大小就是字符串长度+1(1个结束符的长度);
作为函数的形参传递时数组退化为指针 

char c[10]={'x','y','z'},d[]={'x','y','z'}; 不以‘\0’作为结束标志的,它就没有串结束标志, 字符数组的长度,就是数组的长度
sizeof(c)=10,sizeof(d)=3

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值