网站大全全部,国内10大设计公司,门户网站盈利模式,锡林浩特网站建设开发一、选择题 1、如果 x2014 #xff0c;下面函数的返回值是#xff08; #xff09; 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 答案解析 正确答案#xff1a;C 这个作用是对整型中0的个数进行统计… 一、选择题 1、如果 x2014 下面函数的返回值是 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的个数进行统计xx|(x1);的作用是每次循环把x的二进制中从右往左数的最后一位0变成1直道变 成全1的时候x1就溢出为全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: a1 答案解析 正确答案 C D 选项 a 计算时是首元素地址再加 1 就是 a[1] 的地址 AB 明显对 C 选项 a[0] 先和 结合形成一个表达式不能对表达式取地址会报错 5、以下选项中对基本类型相同的两个指针变量不能进行运算的运算符是 A: B: - C: D: 答案解析 正确答案 A A 错误因为两个地址相加无意义也可能越界所以规定不允许指针相加。 B 选项可以求出两个数据元素储存位置之间的相隔同数据类型的元素个数C 选项赋值没问题 D 选项判断两指针是否相同 二、编程题 1HJ37 统计每个月兔子的总数 统计每个月兔子的总数_牛客题霸_牛客网 (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项的和。 输入描述 输入数据有多组每组占一行由两个整数nn10000和m(m1000)组成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;
}