牛客刷题

  1. 使用printf函数打印一个double类型的数据,要求:输出为10进制,输出左对齐30个字符,4位精度。以下哪个选项是正确的? (C)
    A %-30.4e
    B %4.30e
    C %-30.4f
    D %-4.30f

这里题目要是主要是该类型为一个double类型的数据,输出类型为10进制,左对齐30个字符以及控制4位精度。double类型说明类型为%f,%e为指数类型的输出。默认输出为右对齐,如果需要左对齐则需要加上负号,控制30个字节因此负号后面为30,4位精度表示.后面为4,因此选C

  1. 请找出下面程序中有哪些错误:C
int main()
{int i=10;
int j=1;
const int *p1;//(1)
int const *p2=&i; //(2)
p2=&j;//(3)
int *const p3=&i;//(4)
*p3=20;//(5)
*p2=30;//(6)
p3=&j;//(7)
return 0;
}

A 1,2,3,4,5,6,7
B 1,3,5,6
C 6,7
D 3,5

常量指针:指针所指空间的值不能改变,不能通过指针解引用修改指针所指空间的值,但是指针的指向可以发生改变。
指针常量:指针本身是一个常量,指针的指向不能发生改变,但是指针所指空间的值可以发生改变,可以通过指针解引用改变指针所指空间的值。
区别:const关键字和*的相对位置来判断,如果const在*左边则是一个常量指针,如果const在*右边则是一个指针常量。
(6)中p2是一个常量指针,不能修改所指向的值,因此出错。
(7)中更改了p3指针,但是p3是一个指针常量,所指向不能发生变化,所以选择C

  1. 下面叙述错误的是(D)
char acX[]=”abc”;
char acY[]={‘a’,’b’,’c’};
char *szX=”abc”;
char *szY=”abc”;

A acX与acY的内容可以修改
B szX与szY指向同一个地址
C acX占用的内存空间比acY占用的大
D szX的内容修改后,szY的内容也会被更改

其中
A:acX和acY都是字符数组,内容都是可以修改的.
B:szX,szY所指向的都是常量指针,因此指向同一个地址
C:acX和acY的区别就是初始化方式不同,acX会自带一个\0,因此占4个字节比acY大
D:szX内容发生改变是其指针的指向发生了改变,不会影响常量字符串的内容,因此szY所指向的内容不变,因此选D

  1. 下列代码的运行结果是(C)
int a[]={1,2,3,4};
int *b=a;
*b+=2;
*(b+2)=2;
b++;
printf(“%d,%d\n”,*b,*(b+2));

A 1,3
B 1,2
C 2,4
D 3,2

题中,指针b指向数组a首元素,*运算符优先级高于+=,因此*b+=2中,先对b解引用,让数组a第一个值变为3。*(b+2)=2语句中先将指针b向后移动2个字节,也就是让a数组第三个元素变为2,b++就是让b指向位置向后移动1,也就是指向第二个元素位置。因此打印结果为2,4,选C

  1. 下列关于C/C++的宏定义,不正确的是(B)
    A 宏定义不检查参数正确性,会有安全隐患
    B 宏定义的常量更容易理解,如果可以使用宏定义常量的话,要避免使用const常量
    C 宏的嵌套定义过多会影响程序的可读性,而且很容易出错
    D 相对于函数调用,宏定义可以提高程序的运行效率

B:尽量使用const常量,因为宏定义没有类型安全检查,在预处理阶段进行替换,因此无法进行调试

  1. 有以下定义:
    int a[10];
    char b[80];
    函数声明为:
    void sss(char[],int[]);
    则正确的函数调用形式是(D)。
    A sss(a,b);
    B sss(char b[],int a[]);
    C sss(b[],a[]);
    D sss(b,a);

函数调用时如果参数是数组类型,传入数组名即数组地址即可。

  1. 用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数(D)
    A int *a[10];
    B int (*a)[10];
    C int (*a)(int);
    D int (*a[10])(int);

A:[]运算符优先级高于*因此a先和[]结合,所以a是一个数组,存放的是int类型的指针,指针数组
B:加了()后先和*结合,因此是一个指针,是一个数组指针
C:这是一个函数指针,有一个参数,参数类型是int。
D:这里a先和[]结合,是一个数组,再和*结合表示他数组里面存放的是指针,这个指针指向函数,因此是一个函数指针数组,并且传入参数是int类型,返回值也是int,因此选D

  1. 以下程序统计给定输入中每个大写字母的出现次数(不需要检查输入合法性,所有字母都为大写),则应在横线处填入的代码为(D)
void AlphabetCounting(char a[], int n) {int count[26] = {}, i, kind = 10;
for (i = 0; i < n; ++i)
_________________;
for (i = 0; i < 26; ++i) {printf("%c=%d", _____, _____);
}
}

A、++count[a[i]-‘Z’] ‘Z’-i count[‘Z’-i]
B、++count[‘A’-a[i]] ‘A’+i count[i]
C、++count[i] i count[i]
D、++count[‘Z’-a[i]] ‘Z’-i count[i]

这里的代码目的是要计算每个大写字母的出现次数,使用一个26个元素的整型数组来统计次数的,数组下标是每个大写字母的ASCLL码值减去最小大写字母的ASCLL码值,因此第一个空格处应该是count[‘Z’-a[i]] ,这样减出来的值是正的,A和B都有可能会出现数组下标为负的情况。C无法起到统计次数作用。

  1. 在32位cpu上选择缺省对齐的情况下,有如下结构体定义:
struct A{unsigned a : 19;
unsigned b : 11;
unsigned c : 4;
unsigned d : 29;
char index;
};

则sizeof(struct A)的值为(C)
A 9
B 12
C 16
D 20

这里是以位段的形式进行定义的。unsigned类型会开辟4个字节空间,位段占用数据类型,如果前一个数据空间足够的话则会和前一个放在同一4个字节中,否则会开辟一个新的空间。因此这里a和b存放在4个字节中,c占4个比特位,放不进去,需要新开4个字节空间,d也放不进c的4个字节空间中,因此也需要重新开辟4个字节空间,最后index是char类型需要开辟一个字节空间,因此一共是13.最后根据内存对齐的原则,对齐数按照最大宽度也就是4,所以最终结果为16选择C

  1. 下面代码会输出(A)
int main(){int a[4]={1,2,3,4};
int *ptr=(int*)(&a+1);
printf("%d",*(ptr-1));
}

A 4
B 1
C 2
D 3

这里&a+1是将指针偏移整个数组大小,因此整型指针ptr指向4的后一个位置。最后ptr-1将指针向前移动一个整型的大小也就是指向4的位置,所以解引用后打印的值为4,选择A

牛客刷题——part2相关推荐

  1. 牛客刷题日记(2021-12-8)

    牛客刷题日记(2021-12-8) 题目: 以下哪个接口的定义是正确的?( )interface B { void print() { } ;}interface B { static void pr ...

  2. 【Shell牛客刷题系列】SHELL5 打印空行的行号:一起学习grep命令搭配正则表达式的使用

    该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...

  3. 【牛客刷题专栏】0x27:JZ29 顺时针打印矩阵(C语言编程题)

    前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失. 个人刷题练习系列专栏:个人CSDN牛客刷题专栏. 题目来自:牛客/题库 / 在线编程 / 剑 ...

  4. 牛客刷题日记(2021-11-24)

    牛客刷题日记(2021-11-24) 题目: 下面程序的输出是:() String x="fmn"; x.toUpperCase(); String y=x.replace('f' ...

  5. 牛客刷题-Java面试题库【动态更新添加题目】(2023.06.19更新)

    讲在前面 ✨ 牛客刷题日记–理解为重中之重 刷题一方面是持续的了解到自己哪方面比较欠缺,另一方面也是从各大厂的面试题可以看出当前所需的技术栈的偏重点,持续的巩固基础和查漏补缺,一如代码深似海–学无止境 ...

  6. 【字节面试题】牛客刷题偶遇字节后端笔试面经 撸它

    想要看更加舒服的排版.更加准时的推送 关注公众号"不太灵光的程序员" 每日八点有干货推送,微信随时解答你的疑问 牛客刷题偶遇 字节后端笔试0715 撸它 一共两道编程题. 1. 给 ...

  7. 最长上升子序列(LIS),牛客刷题

    目录: 最长上升子序列(LIS) 1.模板(数据较小) 2.模板(数据较大) 牛客刷题 1. 牛客练习赛107A:如见青山 2.牛客小白月赛65A牛牛去购物 3.牛客小白月赛65B牛牛去购物 4.牛客 ...

  8. 【Shell牛客刷题系列】SHELL4 输出第5行的内容:回顾head、tail命令和sed、awk命令的使用

    该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...

  9. 【Shell牛客刷题系列】SHELL1 统计文件的行数:学习wc命令和文本三剑客awk、grep、sed命令

    该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...

  10. 【Shell牛客刷题系列】SHELL21 格式化输出:来看个printf命令的小彩蛋~

    该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Shell>.欢迎关注专栏~ 本 ...

最新文章

  1. 驾驶员行为监控系统:需要它来管理车队
  2. 车辆动力学基础(1)
  3. java修改title_js修改title
  4. plt.errorbar画误差曲线
  5. MySQL + MyBatis 批量插入时存在则忽略或更新记录
  6. Python Pytest装饰器@pytest.mark.parametrize多样参数化(二)
  7. 再不解决延迟不当,小心你的内存被打爆
  8. 设计自己的高并发架构
  9. Codeforces903E Swapping Characters
  10. 微信小程序之 ----组件
  11. webserver技术总结之一:webserver概念
  12. 什么是僵尸进程(Zombie)?
  13. 远程控制软件teamviewer简介
  14. 如何使用计算机计算平方面积,平方怎么算面积公式-3种方法详解须知
  15. html css 分页样式,css中分页样式
  16. Delta RPMs disabled because /usr/bin/applydeltarpm not installed解决办法
  17. Excel的IYQ钓鱼
  18. 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定
  19. PHP 开发与代码审计(总结)
  20. 航天器/控制器飞行能够实现自主控制么?

热门文章

  1. 2020 第一周工作总结:TAGE分支预测器算法
  2. 迷宫小游戏c语言代码,C语言编写的迷宫小游戏-源代码
  3. python缩进块是什么,Python块缩进
  4. 恩淑 2004-12-18
  5. 源码角度了解Skywalking之Skywalking是如何进行JVM监控的
  6. 阿里云数据库与自建数据库的性能对比
  7. 阿里云mysql空间不足_阿里云数据库MySQL系统文件导致实例空间满的解决办法
  8. 时间排序的SACK未确认报文链表
  9. vue2 - 基于Export2Excel.js导出Excel案例(js-xlsx插件二次封装使用)
  10. nodejs 系统 临时文件夹