当前位置: 首页 > news >正文

C语言假期作业 DAY 13

一、选择题

1、如果 x=2014 ,下面函数的返回值是( )

int fun(unsigned int x)
{
int n = 0;
while(x + 1)
{
n++;
x = x | (x + 1);
} 
return n;
}

A: 20

B: 21

C: 23

D 25

答案解析

正确答案:C

这个作用是对整型中0的个数进行统计,x=x|(x+1);的作用是每次循环把x的二进制中从右往左数的最后一位0变成1,直道变 成全1的时候x+1就溢出为全0,循环结束。2014的二进制是0000 0000 000 0000 0000 0111 1101 1110,所以结果是 23 

2、下列语句定义 x 为指向 int 类型变量 a 的指针,其中哪一个是正确的( )

A: int a , *x = a;

B: int a , *x = &a;

C: int *x = &a , a;

D: int a , x = a; 

答案解析

正确答案: B

A 选项的 x 是指针,赋值时使用 a 不合适, C 选项在赋值时 a 变量还没定义, D 选项中的 x 不是指针。

3、下面有关空指针和未初始化指针,说法错误的是( )

A: 对0x0这个地址取值是非法的

B: 空指针可以确保不指向任何对象或函数; 而未初始化指针则可能指向任何地方

C: 空指针与任何对象或函数的指针值都不相等

D: malloc在其内存分配失败时返回的是一个未初始化的指针

答案解析

正确答案: D

malloc 函数在内存分配失败时返回 NULL ,其余选项都正确

4、若有定义 int a[8]; ,则以下表达式中不能代表数组元素 a[1] 的地址的是( )

A: &a[0]+1

B: &a[1]

C: &a[0]++

D: a+1

答案解析

正确答案: C
D 选项 a 计算时是首元素地址,再加 1 ,就是 a[1] 的地址, AB 明显对, C 选项 a[0] 先和 ++ 结合,形成一个表达式,不能对表达式取地址,会报错

5、以下选项中,对基本类型相同的两个指针变量不能进行运算的运算符是( )

A: +

B: -

C: =

D: ==

答案解析

正确答案: A
A 错误,因为两个地址相加无意义也可能越界,所以规定不允许指针相加。 B 选项,可以求出两个数据元素储存位置之间的相隔同数据类型的元素个数,C 选项,赋值,没问题, D 选项,判断两指针是否相同

二、编程题

1:HJ37 统计每个月兔子的总数

统计每个月兔子的总数_牛客题霸_牛客网 (nowcoder.com)

描述

有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问第n个月的兔子总数为多少?

本题有多组数据。

数据范围:每组输入满足 1 \le n \le 31 \1≤n≤31 

输入描述

多行输入,一行输入一个int型整数表示第n个月

输出描述

每一行输出对应的兔子总数

示例1

输入

1 2 3 4 5 9
输出

1 1 2 3 5 34

【答案解析】

这道题的关键在于寻找数字之间的规律,如果细心的同学会发现这其实是一个斐波那契数列。第 n 个月的兔子数量实际上就是第 n - 1 个斐波那契数。

#include <stdio.h>
int main()
{int n;while (~scanf("%d", &n)) {int num1 = 1, num2 = 1, ret = 0;for (int i = 2; i < n; i++) {ret = num1 + num2;num1 = num2;num2 = ret;}printf("%d\n", ret);}return 0;
}

2:ZJ16 数列的和

数列的和_牛客题霸_牛客网 (nowcoder.com)

描述

数列的定义如下:数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。

输入描述

输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。

输出描述

对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。

示例1

输入

81 4
2 2
输出

94.73
3.41

【答案解析】

求取一个数字的平方根可以使用数学库中的 double sqrt(double num) 函数完成,接下来只需要从数字自身开始进行求和并在求和后将 n 自身计算成为自身的平方根即可。

#include <stdio.h>
#include <math.h>
int main()
{double m, n;while (~scanf("%lf %lf", &n, &m)) {double sum = 0;while (m-- > 0){sum += n;//从自身开始以及每次的平方根进行求和n = sqrt(n);//n成为当前自身的平方根}printf("%.2lf\n", sum);}return 0;
}

http://www.lryc.cn/news/108728.html

相关文章:

  • 以产品经理的角度去讲解原型图---会议OA项目
  • C++ 外部变量和外部函数
  • C# Onnx Paddle模型 OCR识别服务
  • MCUXpresso for VS Code -- 基于VSCode开发RT1176
  • MySQL的使用——【初识MySQL】第二节
  • MySQL最终弹-并发(脏读,不可重复读,幻读及区别),JDBC的使用和安装,最全万字
  • ⌈C++⌋从无到有了解并掌握C++面向对象三大特性——封装、继承、多态
  • Element的el-select下拉框多选添加全选功能
  • python调用pytorch的clip模型时报错
  • MySQL 数据库 binLog 日志的使用
  • Apache Storm入门介绍之三分钟看懂Apache Storm
  • RF手机天线仿真介绍(三):调谐开关分析
  • Ubuntu20.04 + QT5.14.2 + VTK8.2.0 + PCL 1.10 环境配置
  • GPT Prompt编写的艺术:如何提高AI模型的表现力
  • Ubuntu18.04 安装opencv 4.8.0教程(亲测可用)
  • 【腾讯云Cloud Studio实战训练营】React 快速构建点餐页面
  • 自监督去噪:Noise2Self原理分析及实现 (Pytorch)
  • docker容器学习笔记1
  • 线程魔法:用Spring Boot的@Async注解开启异步世界
  • 面试热题(接雨水问题)
  • Meta AI研究团队新AI模型: Llama 2 大语言模型
  • CSS水平垂直居中
  • Yolov8-pose关键点检测:模型部署篇 | yolov8-pose.onnx python推理
  • Linux中提示No such file or directory解决方法
  • Sklearn-使用SVC对iris数据集进行分类
  • 项目经理必读:领导风格对项目成功的关键影响
  • 行业追踪,2023-08-04
  • 双链表(带哨兵位头节点)
  • MySQL - LOAD DATA LOCAL INFILE将数据导入表中和 INTO OUTFILE (速度快)
  • String ,StringBulider ,StringBuffer