一、选择题
1、如果 x=2014 ,下面函数的返回值是( )
cppint 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 a8; ,则以下表达式中不能代表数组元素 a1 的地址的是( )
A: &a0+1
B: &a1
C: &a0++
D: a+1
答案解析
正确答案: C
D 选项 a 计算时是首元素地址,再加 1 ,就是 a1 的地址, AB 明显对, C 选项 a0 先和 ++ 结合,形成一个表达式,不能对表达式取地址,会报错
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 个斐波那契数。
cpp#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 数列的和
描述
数列的定义如下:数列的第一项为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 自身计算成为自身的平方根即可。
cpp#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; }
C语言假期作业 DAY 13
一起去看雪62023-08-11 21:29
相关推荐
lqqjuly29 分钟前
计算理论—图灵机、复杂性、信息论与机器学习的理论基础IronMurphy37 分钟前
List 经典问Hiter_John43 分钟前
Golang的循环语句绍磊leo1 小时前
Go 实现类似 FastAPI 的后端服务:从入门到实战一条泥憨鱼1 小时前
Java网络编程:Socket通信从入门到起飞hope_wisdom1 小时前
C/C++数据结构之二叉树基础磊 子1 小时前
STL算法库讲解1Hiter_John1 小时前
Golang的条件判断8Qi81 小时前
LeetCode 474:一和零(Ones and Zeroes)—— 题解 ✅27669582921 小时前
谷歌google cookie逆向角度分析