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

c++作业整理2

  1. 直接访问就是直接利用变量的地址直接进行访问。
    答案:T
    解析:直接访问通过变量名(实际对应内存地址)访问数据,与间接访问(通过指针)相对。

  2. char *s="C Language"; 表示 s 是一个指向字符串的指针变量,把字符串的首地址赋予 s。**
    答案:T
    解析:字符串常量存储在静态区,s 指向其首地址。

  3. 执行语句 int *p = 1000; 后,指针变量 p 指向地址为 1000 的变量。**
    答案:F
    解析:直接赋值整数需强制类型转换(如 (int*)1000),且可能导致非法访问。

  4. 语句 int *p; *p = 50; 执行时,不会有任何错误。**
    答案:F
    解析:p 未初始化,解引用会导致野指针错误。

  5. 字符串常量实质上是一个指向该字符串首字符的指针常量。
    答案:T
    解析:字符串常量可视为指向首字符的常量指针。

  6. 对于定义 int a [5],p=a; 后,(p+1) 和(a+1) 的值是相同的。**
    答案:T
    解析:a 是地址常量,但允许读取和运算,a 的不可修改性:

    • a 是编译时确定的地址常量,不能重新赋值(如 a = &x 非法)。

    • 但可以读取 a 的值并进行运算(如 a + 1)。

  7. If variables are defined and assigned correctly, the expression ______ is wrong.
    答案:C. &&x
    解析:&& 是逻辑与运算符,需要两个操作数,单独使用 &&x 是错误的。

  8. 根据声明 int p[5], *a[5];,表达式 ______ 是正确的。
    **答案:C. *(a+1)=p**
    解析:a 是指针数组,*(a+1) 即 a[1](类型 int*),p 是 int*,赋值合法。

  9. 表达式 *p->str++ 的正确描述是 __。
    运算符优先级与结合顺序:->(成员访问)优先级高于 ++(后缀)和 *(解引用)。表达式 *p->str++ 等价于 *( (p->str)++ )

    分解步骤
    • *:解引用递增前的 str 值,得到字符 'a'

    • str++:后缀递增作用于 str 指针本身。

    • 返回 str 的原始值(指向 'a'),然后 str 自增,指向 'b'

    • p->str:访问结构体指针 p 指向的成员 str,即字符指针 a.str(指向字符串 "abc" 的首字符 'a')。

  10. For definitions: char s[2][3]={"ab", "cd"}, *p=(char *)s; the expression __ is correct and its value is equivalent to the element s[1][1].

    A.*(s+3)  B.*s+2  C.p[1][1]  D.*++p+2
    A 选项:s是二维数组名,s+3会超出数组范围,导致未定义行为,所以 A 选项错误。
    B 选项:*s等价于s[0],是一个指向字符数组的指针,*s + 2会指向s[0][2],而不是s[1][1],所以 B 选项错误。
    C 选项:p被强制转换为指向字符的指针,p[1][1]会访问到s数组之外的内存,导致未定义行为,所以 C 选项错误。
    D 选项:p指向s数组的首元素,++p会使p指向s[0][1]*++p会获取到字符b*++p + 2会得到字符d,即s[1][1],所以 D 选项正确。*++p + 2将字符'b'的 ASCII 码值98加 2,得到100100对应字符'd'(ASCII 码表中,'b' + 2 = 'd')。这种相等是基于字符编码的巧合,并非指针直接访问到了s[1][1]的内存位置。实际上,p此时仍指向s[0][1],但表达式通过计算字符值得到了相同的结果。

  11. For the function declaration void f(char ** p),the definition __ of var makes the function call f(var) incorrect。

    A.char var[10][10];

    B.char *var[10];

    C.void *var = NULL;

    D.char *v=NULL, **var=&v;
    选项分析
    A. char var[10][10];类型不匹配char(*)[10] 与 char** 不兼容,导致编译错误。数组名 var 退化为 指向一维数组的指针char(*)[10]),而非 char**var 是二维字符数组,类型为 char[10][10]

    B. char *var[10];数组名 var 退化为 char**,与函数参数类型一致,合法。var 是字符指针数组,类型为 char*[10]
    C. void *var = NULL;void* 可隐式转换为任意指针类型,包括 char**,语法合法(可能有警告,但无错误)。
    D. char *v=NULL, **var=&v;var 是 char**,直接匹配参数类型,合法。

写一程序,若干个字符串(待排序的字符串个数不会超过100个,每个字符串长度不超过20个字符),按字典序对这些字符串进行排序并输出。

输入格式:

若干行,每行一个只包含大小写字母的字符串,为待排序字符串,这些字符串的最后一个字符串为“end”。

输出格式:

每行一个字符串,按字典序输出,字符串end不输出。

#include<bits/stdc++.h>
using namespace std;int main()
{priority_queue<string,vector<string>,greater<string>>pq;string zf;cin>>zf;while(zf!="end"){pq.push(zf);cin>>zf;}while(!pq.empty()){cout<<pq.top()<<endl;pq.pop();}return 0;
}

    稷下英才实验班有个同学叫虎子,有一天虎子刷到了一道编程题:给M(M<=100)组数据,每组数据有N个正整数(N<=100),要求把每组的N个数按升序排成一行。虎子觉得应该用指针和函数实现比较高效,但总是调试不出来,你能帮帮他吗?

    输入格式:

    输入包括M+1行,第一行是两个正整数M、N;M表示总共多少组数据,下面M行每行包含N个正整数。(输入数据之间会用空格隔开)

    输出格式:

    输出包括M行,每行分别对应输入中M组数据的升序序列,数与数之间用一个空格隔开。

    #include<bits/stdc++.h>
    using namespace std;int main()
    {int m,n;cin>>m>>n;while(m--){int a[n];for(int i=0;i<n;i++){cin>>a[i];}sort(a,a+n);for(int i=0;i<n;i++){cout<<a[i];if(i<n-1)cout<<" ";}if(m>=1)cout<<endl;}return 0;
    }

    http://www.xdnf.cn/news/6587.html

    相关文章:

  1. 纯前端实现基于位置的天气和动态背景图片
  2. 行为型模式:责任链模式
  3. 代码随想录 算法训练 Day2:数组
  4. 第七节第三部分:从JDK8开始接口新增的方法、接口的多继承、注意事项
  5. 一.android Studio开发系统应用——导入TvSettings源码
  6. Medical | 药品追溯码【待续】
  7. 2025-5-15Vue3快速上手
  8. 散热片为何“失效”?热阻路径建模的常见误区解析
  9. 并发控制:确保多线程环境下的数据一致性与完整性
  10. SymPy | 使用SymPy求解多元非线性方程组
  11. 3DVR制作的工具或平台
  12. windows ffmpeg msvc x64编译
  13. keil uniFlash烧录出现八字节对齐错误
  14. 并发编程(二)
  15. ProfibusDP主站转ModbusRTU/TCP与横河AXG电磁流量计通讯案例
  16. 语音识别——声纹识别
  17. bfs搜索加标记连通区域id实现时间优化(空间换时间)
  18. C++文件操作--1 文本文件操作
  19. MYSQL之基本查询(CURD)
  20. 基于javaweb的JSP+Servlet家政服务系统设计与实现(源码+文档+部署讲解)
  21. c++,windows,多线程编程详细介绍
  22. 机器视觉对位手机中框点胶的应用
  23. Oracle统计信息收集时的锁持有阶段
  24. 全面指南:Xinference大模型推理框架的部署与使用
  25. 平替BioLegend品牌-FITC 标记 CD11c 抗体 [N418],精准识别小鼠树突细胞
  26. [Harmony]大文件持久化
  27. Spring-messaging-MessageHandler接口实现类ServiceActivatingHandler
  28. Pangle出海指南:如何实现ROI最大化?
  29. Spring Boot多数据源配置的陷阱与终极解决方案
  30. 在 Vue 中使用 Three.js 渲染 GLB 格式模型