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

C语言--每日五道选择题--Day2

第一题:

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]

答案及解析:C

首先要明确p是一个指针数组

p[0] = a[1];

此处a[1]是二维数组的第二行的数组名数组名表示首元素的地址,a[1]是a[1][0]的地址

所以p[0]中存储的是第2行第1个元素的地址,p[0]+1就是第二行第2个元素的地址

*(p[0]+1)就是第二行第二个元素了。

第二题:

2、关于指针下列说法正确的是( )【多选】

A: 任何指针都可以转化为void * 

B: void *可以转化为任何指针

C: 指针的大小为8个字节 

D: 指针虽然高效、灵活但可能不安全

答案及解析:ABD

A和B:因为指针都是4个/8个字节,指针直接可以任意转换,只是在解引用和对指针做加法的时候有区别。

C:指针占几个字节要看平台,64位环境下8个字节,32位环境下4个字节

D:指针高效但是不安全,因为可能会成为野指针

第三题:

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);

答案及解析:D

该题考察的是通过scanf函数的调用对结构体数据类型进行初始化。

scanf("输入控制符", 输入参数);

功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中

scanf输入时要通过地址找空间

A:name属于字符数组的数组名,相当于数组的首地址,A正确。

B、C用了&是正确的。

D:单独的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 <= n;i++){prod *= i;}return prod;
}

A: 监视变量prod的值,在prod *= i;行处设置断点,然后单步运行,直到发现错误原因

B: 监视变量prod的值,在return prod;行处设置断点,程序中断后,即可发现错误原因

C: 在prod=1;处设置断点,然后在函数调用堆栈中即可发现错误原因

D: 监视变量i的值,在for (i=1; i<=n; i++)行处设置断点,然后单步运行,直到发现错误原因

答案及解析:B

依题目已知情况,当n<=12时结果是正确的

说明是随着参数的变大计算过程中哪里出了问题

故而要在prod *= i;处设断点,查看原因。

错误原因是数据过大时整型溢出

第五题

5、下列给定程序中,函数 fun 的功能是:把形参a所指数组中的奇数按原顺序依次存放到 a[0]、a[1]、a[2]… 中,把偶数从数组中删除,奇数个数通过函数值返回。

例如,若a所指数组中的数据最初排列为: [9,1,4,2,3,6,5,8,7]

删除偶数后,a所指数组中的数据为: [9,1,3,5,7] ,返回值为5。

请在程序的下画线处填入正确的内容,使程序得出正确的结果( )

int fun(int a[], int n)
{int i, j;j=0;for (i=0; i<n; i++){if (a[i]%2== _________ ){a[j]=a[i]; _________;}}return _________;
}

A: 0  j++  j  

B: 1  j++  j+1 

C: 0  j++  j+1 

D: 1  j++  j

答案及解析:D

代码实现的思路应该是arr[i]是奇数的时候要存储起来

所以第一个空是1

最开始j是0,每次找到一个奇数就存储到arr[j]的位置,那接下里j需要+1

所以得第二个空是j++

当循环停止的时候,j其实就是奇数的个数

所以最后返回j,第三个空是j

所以选D。

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

相关文章:

  • C++——类和对象(初始化列表、匿名对象、static成员、类的隐式类型转换和explicit关键字、内部类)
  • 高德地图撒点组件
  • TCP/IP协议群
  • esxi 6.7下安装黑裙
  • C++初阶-类和对象(下)
  • MD5校验 C语言实现 (附源码)
  • 成功解决/bin/sh: cc: command not found和/bin/sh: g++: command not found
  • 理解ELMo 模型
  • oracle 基础语法总结
  • Visual Studio 2017附加依赖项
  • 获取狮子座明年恋爱运势预测API接口
  • USB HID在系统下通信的一些总结
  • [java进阶]——方法引用改写Lambda表达式
  • lvs dr+keepalived
  • 如何使新手小白编码能力暴涨之Devchat-AI
  • SAP ABAP基础语法-TCODE学习(八)
  • stm32-arm固件开发
  • LeetCode 面试题 16.17. 连续数列
  • 基于人工蜂鸟算法的无人机航迹规划-附代码
  • 51单片机汇编-点亮一个led
  • 每天一点python——day62
  • 基于SSM的智慧作业试题管理系统(有报告)。Javaee项目。
  • ESP32 未来能够取代 STM32吗?
  • Java连接Redis并操作Redis中的常见数据类型
  • Python 基于分位数-正态分布转换的评分算法
  • 如何修改CentOS登录时默认目录
  • JavaFX Scene Builder Gluon 控件详解
  • Vue路由(router-link)——高亮、动态传参
  • Java中将List转换为Map
  • 进程控制2——进程等待