行业知识
C语言:选择+编程(每日一练Day15)
���录
选择题:
题一:
题二:
题三:
题四:
题五:
编程题:
题一:寻找奇数
思路一:
题二:寻找峰值
思路一:
本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!
感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!
选择题:
题一:
1、有如下代码,则 *(p[0]+1) 所代表的数组元素是()
int a[3][2] = {1, 2, 3, 4, 5, 6}, *p[3];
p[0] = a[1];
A: a[0][1] B: a[1][0] C: a[1][1] D: a[1][2]
答案解析:
p是一个指针数组,p[0] = a[1];此处a[1]是二维数组的第二行的数组名,数组名表示首元素的地址,a[1]是a[1][0]的地址,所以p[0]中存储的是第2行第1个元素的地址,p[0]+1就是第二行第2个元素的地址,*(p[0]+1)就是第二行第二个元素了。所以C正确。
题二:
2、关于指针下列说法正确的是【多选】( )
A: 任何指针都可以转化为void * B: void *可以转化为任何指针
C: 指针的大小为8个字节 D: 指针虽然高效、灵活但可能不安全
答案解析:
C选项,指针占几个字节要看平台,64位环境下8个字节,32位环境下4个字节。
题三:
3、以下 scanf 函数调用选项中, 错误的是( )
struct T
{
char name[20];
int age;
int sex;
} a[5], *pa=a;
A: scanf("%s",a[0].name); B: scanf("%d", &pa[0].age);
C: scanf("%d",&(pa->age)); D: scanf("%d", pa->age);
答案解析:
该题考察的是通过scanf函数的调用对结构体数据类型进行初始化。scanf("输入控制符", 输入参数);功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。scanf输入时要通过地址找空间,B、C用了&是正确的。name属于字符数组的数组名,相当于数组的首地址,A正确。单独的pa->age可用于输出语句获取
值的形式,用在scanf中的时候需要&操作符,D错误。
题四:
4、如下函数 fun 计算 prod=1*2*3*…*n ,并返回计算结果值。但当 n>12 时,返回值不正确。要找出该程序的错误,正确的调试方法是( )
int fun(int n)
{
int prod = 1 , i = 0;
for(i = 1;i
上一篇:善通怎么读?
下一篇:谷歌怎么配置代理服务器?