深圳 网站设计师 招聘,西数网站管理助手 伪静态,店招在线制作免费,wordpress 标签模板目录
一.选择题
1、以下程序段的输出结果是( )
2、若有以下程序#xff0c;则运行后的输出结果是#xff08; #xff09;
3、如下函数的 f(1) 的值为#xff08; #xff09;
4、下面3段程序代码的效果一样吗( )
5、对于下面的说法#xff0c;正确的是#xf…
目录
一.选择题
1、以下程序段的输出结果是( )
2、若有以下程序则运行后的输出结果是
3、如下函数的 f(1) 的值为
4、下面3段程序代码的效果一样吗( )
5、对于下面的说法正确的是
二编程题
1.尼科彻斯定理
2.等差数列 一.选择题
1、以下程序段的输出结果是( )
int main()
{char s[] \\123456\123456\t;printf(%d\n, strlen(s));return 0;
}A: 12 B:13 C: 16 D: 以上都不对 解析 考察的是转义字符 \\ 表示字符\\123表示字符{\t表示制表符; 转义字符通常考察两种: ①\ddd ddd表示1~3个八进制 ②\xhh hh表示1~2个十六进制 正确答案A 2、若有以下程序则运行后的输出结果是
#include stdio.h
#define N 2
#define M N 1
#define NUM (M 1) * M / 2
int main()
{printf(%d\n, NUM);return 0;
}A: 4 B: 8 C: 9 D: 6 解析 考察的是define宏定义 宏只是替换替换后NUM的样子是(211)*21/2计算得8 #define是宏定义只进行替换 正确答案B 3、如下函数的 f(1) 的值为
int f(int n)
{static int i 1;if (n 5)return n;n n i;i;return f(n);
}
A:5 B:6 C:7 D:8 解析: 考察的是函数递归 static修饰的局部变量——称为静态局部变量 static实际修改了局部变量的存储类型将原本应该存储在栈区的局部变量存储在静态区。静态区上数据存储的特点是程序结束变量才被释放。我们常见的全局变量就是存储在静态区上。现在我们分析static修饰后作用域和生命周期的变化 【作用域】作用域不变只是出作用域不被销毁 【生命周期】生命周期变长程序结束生命周期才结束 正确答案C 4、下面3段程序代码的效果一样吗( )
int b;
①const int* a b;
②int const* a b;
③int* const a b;
A: (2)(3) B: (1)(2) C: 都不一样 D: 都一样 解析 考察的是const; 将变量转成常量 但并不是真正的变成常量只是语法形式变成常量本质上还是变量 counst 修饰的变量不能再被改变 修饰指针有两种方法 counst int* p ; int * counst p; const 放在的左边 限制的指针指向的内容也就是说: 不能通过指针来修改指针指向的内容 但是指针变量是可以修改的也就是指针指向其他变量的 const 放在的右边 限制的是指针变量本身指针变量不能再指向其他对象 但是可以通过指针变量来修改指向的内容 正确答案:B 5、对于下面的说法正确的是 A: 对于 struct X{short s;int i;char c;}sizeof(X)等于sizeof(s) sizeof(i) sizeof(c) B: 对于某个double变量 a可以使用 a 0.0 来判断其是否为零 C: 初始化方式 char a[14] Hello, world!; 和char a[14]; a Hello, world!;的效果相同 D: 以上说法都不对 解析: 考察的是结构体和sizeof; A.没有考虑内存对齐 B.考察浮点型的比较由于浮点型存在误差不能直接判断两个数是否相等通常采用比较两个数差的绝对值是否小于一个很小的数作为误差 C.第二种的a代表首元素的地址地址是常量不可以改变 正确答案D 二编程题
1.尼科彻斯定理
验证尼科彻斯定理即任何一个整数m的立方都可以写成m个连续奇数之和。
例如
1^31
2^335
3^37911
4^313151719
输入一个正整数mm≤100将m的立方写成m个连续奇数之和的形式输出。
数据范围1≤m≤100
尼科彻斯定理——牛客网
#includemath.h
int main()
{int m 0;scanf(%d, m);//获得m的三次幂的数int ret pow(m, 3);printf(m的立方数%d\n, ret);//如果m是1if (m 1){printf(%d, m);}//找到首个元素int num m * m - m 1;//进行循环找到后面m个数字for (int i 0; i m; i){//打印首个数字if (i 0){printf(%d , num);}//打印后面的else {printf( %d , num);}num 2;}return 0;
} 通过示例发现,我们只要找到相加数字串的首个数字就可以通过2的方式找到后面m-1个 4^313151719; 首数字13是4*4-41得到的数字然后就是通过循环找到后面几个数字; 2.等差数列
等差数列 2581114。。。。 从 2 开始的 3 为公差的等差数列 输出求等差数列前n项和
数据范围1≤n≤1000 输入描述 输入一个正整数n。 输出描述 输出一个相加后的整数。
等差数列———牛客网
int main()
{int n 0;int arr[1000];scanf(%d, n);//将等差数列存入数组for (int i 0; i 1000; i){arr[i] 3 * (i 1) - 1;}//将等差数累加int sum 0;for (int j 0; j n; j){sum sum arr[j]; }printf(%d, sum);return 0;
}