选择题

解析:考查
printf,%后面-表示输出左对齐,输出左对齐30个字符格式为%-30f,.后面表示精度。%e字符以指数形势输出,可以认为是double类型(也就是小数点后保留6位)的指数。为%f字符表示输出格式为double类型。所以上面题目要求的格式为%-30.4f。
C语言中要求我们掌握的各种输出如下:
整形输出:%d整型输出,%ld长整型输出,%u以十进制数输出unsigned型数据(无符号数);
进制输出:%o以八进制数形式输出整数,%x以十六进制数形式输出整数;
字符输出:%c用来输出一个字符,%s用来输出一个字符串;
浮点数输出:%f用来输出实数,以小数形式输出,%e以指数形式输出实数,%g根据大小自动选f格式或e格式,且不输出无意义的零。

解析:本题考查
const修饰及指针相关知识。指针常量:指针是个常量,即指针的指向不能改变,指针指向空间的内容可以改变;
常量指针:指针指向的空间是个常量,指针指向空间的值不能改变,指针的指向可以改变。
我们判断是指针常量还是常量指针通常是看
const和*所在的位置,如int *const p3 = &i中const后面紧跟的就是指针变量p3,这就是指针常量,指针的指向不能改变,指针指向空间的内容可以改变;而int const *p2 = &i中const后面紧跟的是*p2,此时就是常量指针,指针的指向可以改变指针,指向空间的值不能改变。(1)中
const修饰的是*p1,是常量指针,指针的值不能改变,指针的指向可以改变。只不过该指针没有给初始值,正确;(2)中
const修饰的是*p2,常量指针,指针的值不能改变,指针的指向可以改变,正确;(3)中
p2 = &j改变了指针p2的指向,正确;(4)中
const修饰的是p3,是指针常量即指针的指向不能修改,指向空间的内容可以修改,正确;(5)中修改了
p3指向空间的内容,没有修改指针指向,正确;(6)中想修改
p2指向空间的内容,但是p2是常量指针,不能够修改,错误;(7)中修改了
p3指针的指向,但是p3是指针常量,不能修改指针指向,错误。所以本题中错误的就是(6)、(7)。

解析:本题主要考查常量字符串。
acX和acY都是存在栈区的字符数组,acX和acY的区别在于acX存在\0,而acY中不存在\0,所以acX的空间比acY的空间大。而szX和szY字符指针指向的常量字符串是存在常量区(静态区)的,szX和szY这两个字符指针指向的是同一个地址,常量区的内容只能读不能被修改,所以D错误。


最低0.47元/天 解锁文章
912

被折叠的 条评论
为什么被折叠?



