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

网站地图做计划任务浦江县做网站

网站地图做计划任务,浦江县做网站,app软件网站开发,乌苏市电力建设工程公司网站欢迎找我进行职业规划,超值的自我投资 -> 嵌入式软件工程师一对一指导 1.设有定义char *p[]{"Shanghai","Beijing","Honkong"};则结果为j字符的表达式是() A *p[1] 3 B *(p[1] 3) C *(p[3] 1) D p[3] […

欢迎找我进行职业规划,超值的自我投资 -> 嵌入式软件工程师一对一指导


1.设有定义char *p[]={"Shanghai","Beijing","Honkong"};则结果为j字符的表达式是()

A *p[1] +3

B *(p[1] +3)

C *(p[3] +1)

D p[3] [1]

解析:

p 是一个指针数组,其中每个元素都指向一个字符串字面量。

A. *p[1] + 3
这个表达式首先解引用 p[1](即指向 "Beijing" 的指针),得到 'B' 字符,然后将其 ASCII 值加 3,结果是 'E' 的 ASCII 值,而不是 'j'。

B. *(p[1] + 3)
这个表达式首先计算 p[1] + 3,它是指向 "Beijing" 字符串中第四个字符(从0开始计数)的指针(即指向 'j' 的指针),然后通过解引用得到 'j' 字符。这是正确的表达式。

C. *(p[3] + 1)
这个表达式试图访问 p[3],但数组 p 只有三个元素(索引为 0, 1, 2),所以 p[3] 是未定义的,这将导致未定义行为。(下角标错误)

D. p[3][1]
同样,这个表达式也试图访问 p[3],这是未定义的,因此这个表达式也是错误的。

综上所述,正确答案是 B,即 *(p[1] + 3),这个表达式将返回 'j' 字符。

2.有以下程序, 程序运行后的输出结果是( )

#include "stdio.h"
void main() {    int a[5] = {1, 2, 3, 4, 5}, b[5] = {0, 2, 1, 3, 0}, i, s = 0;    for(i=0; i < 5; i++) s = s + a[b[i]];    printf("%d\n", s);}

解析:

首先,我们有两个数组 a 和 b

int a[5] = {1, 2, 3, 4, 5};int b[5] = {0, 2, 1, 3, 0};

数组 a 包含值 {1, 2, 3, 4, 5},数组 b 包含值 {0, 2, 1, 3, 0}

接下来,我们有一个循环,它遍历数组 b 的每个元素,并使用这些元素作为数组 a 的索引来累加值:

​​​​​​​

for(i=0; i < 5; i++)     s = s + a[b[i]];

让我们逐步执行这个循环:

  1. 当 i = 0 时,b[0] = 0,所以 a[b[0]] = a[0] = 1。因此,s = s + 1s 变为 1

  2. 当 i = 1 时,b[1] = 2,所以 a[b[1]] = a[2] = 3。因此,s = s + 3s 变为 4

  3. 当 i = 2 时,b[2] = 1,所以 a[b[2]] = a[1] = 2。因此,s = s + 2s 变为 6

  4. 当 i = 3 时,b[3] = 3,所以 a[b[3]] = a[3] = 4。因此,s = s + 4s 变为 10

  5. 当 i = 4 时,b[4] = 0,所以 a[b[4]] = a[0] = 1。因此,s = s + 1s 变为 11

最后,程序输出 s 的值是 11

3.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则()

A 称为函数的直接递归调用

B 称为函数的间接递归调用

C 称为函数的循环调用

D C语言中不允许这样的递归调用

解析:

  1. 直接递归调用:指的是一个函数在其执行过程中直接调用自身。

  2. 间接递归调用:涉及两个或更多函数,其中一个函数调用另一个函数,而那个函数又直接或间接地调用回原来的函数。

  3. 循环调用:通常指的是一系列函数相互调用,形成一个闭环,但没有明确的递归结构(即不是函数自己调用自己)。

题目中的情况:函数funA调用了函数funB,而函数funB又调用了函数funA

  • 这不是直接递归调用,因为直接递归调用要求函数自己调用自己,而这里是两个函数相互调用。

  • 这是间接递归调用的一个例子,因为funAfunB通过彼此调用形成了一个间接的递归链。

  • 虽然函数间相互调用形成了一个闭环,但这不是传统意义上的循环调用,因为循环调用通常不涉及递归的概念。

  • C语言中允许这样的递归调用,只要递归不是无限的(即必须有终止条件来防止栈溢出)。

综上所述,这种情况最符合间接递归调用的定义。

因此,正确答案是 B 称为函数的间接递归调用。

4.执行以下语句,输出结果为()​​​​​​​

#include <stdio.h>
int main( ) {  char *p1 = "hello";  char *p2 = "world";  char *p3 = "a piece of cake";  char *str[] = {p1, p2, p3};  printf("%c", *(str[0] + 1));}

解析;

题目定义了三个字符串常量 p1p2, 和 p3,然后创建了一个字符指针数组 str,该数组包含这三个字符串的地址。接下来,我们使用 printf 函数来打印 str[0](即 p1 指向的字符串 "hello")的第二个字符。

char *p1 = "hello";  // p1 指向字符串 "hello"char *p2 = "world";  // p2 指向字符串 "world"char *p3 = "a piece of cake";  // p3 指向字符串 "a piece of cake"
char *str[] = {p1, p2, p3};  // str 是一个字符指针数组,包含 p1, p2, 和 p3 的地址
printf("%c", *(str[0] + 1));  // 打印 str[0](即 p1)指向的字符串的第二个字符

str[0] 是 p1,它指向字符串 "hello"str[0] + 1 是将指针 p1 向前移动一个字符位置,因此它现在指向 "hello" 中的 'e'

*(str[0] + 1) 解引用这个新的指针位置,得到字符 'e'

因此,printf("%c", *(str[0] + 1)); 会打印字符 'e'

所以,程序的输出结果是:e

未完待续,持续更新!

以防后边找不到可以点赞收藏下!

欢迎找我进行职业规划,超值的自我投资 -> 嵌入式软件工程师一对一指导

http://www.yayakq.cn/news/206190/

相关文章:

  • 网站建设门户wordpress 后台 324
  • 上海省住房与城乡建设厅网站gae+wordpress
  • 余姚网站建设公司设计教育网站
  • 领卷网站怎么做网站建设 logo
  • 网上购物有哪些网站?微信小店可以做分类网站
  • 宿州做网站的有吗网站制作优化排名
  • 淮安网站建设推广网站title重复的后果
  • 电脑公司网站源码安徽建设工程信息网查询平台公司
  • 学校网站建设规划书wordpress点击文章404
  • 网站建设专业简介谷歌外贸平台推广需要多少钱
  • 慈溪企业网站建设阿里云wordpress在哪里设置密码
  • c mvc网站开发杭州科技公司
  • 电子商务网站开发与建设试卷网站配色方法
  • 瀑布流网站后台麻将网站怎么做的
  • 北京互联网公司建网站路由器做映射后 内网可以访问到我的网站 但是外网无法访问
  • 免费字体设计 常见网站怎样做市场营销策划
  • huang色网站医院网站设计方案
  • php 网站版面素材网站制作推广招聘
  • 手机网站安全证书过期怎么处理网站实名认证资料
  • 网页制作与网站建设试题企业信息查询官网系统
  • 巴中网站制作公司公司网站建设需要注意哪些内容
  • 成都科技网站建设找帝国网站程序
  • 网站建设 兼职 外包阿里巴巴运营岗位
  • 用记事本做网站网站建设设计流程
  • 12380网站建设情况总结企业网站用户群
  • 怎么做公司官方网站企业网站设计模板
  • 网站空间付款方式网站内置多语言
  • 响应式酒店网站模板win优化大师官网
  • 移动网站建站做网站优化常用工具
  • 唐汉网站建设wordpress侧边栏浮动