热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c语言程序设计习题6,C语言程序设计习题6.doc

C语言程序设计习题6.doc习题习题6参考解答参考解答1请解释以下术语的含义地址指针指针变量直接访问间接访问解解1地址内存单元的编号叫做地址2指针内存单元的编号叫做地址通常也叫做指

253b171540df25e1b84436cbe50dfc72.gifC语言程序设计习题6.doc

习题习题 6 参考解答参考解答 1 请解释以下术语的含义 地址 指针 指针变量 直接访问 间接访问 解 解 1 地址 内存单元的编号叫做地址 2 指针 内存单元的编号叫做地址 通常也叫做指针 3 指针变量 在 语言中 允许用一个变量来存放指针 这种变量称为指针变量 4 直接访问 通过变量名称引用变量内存单元的方式称为直接访问 5 间接访问 利用了指针变量 通过变量的指针 即变量的内存地址 来引用内存 单元的值 这种方式称为间接访问 2 指针能参与哪几种运算 举例说明 解 解 1 指针变量和整数可以进行加 减运算 p p p i p i p i p i 2 指针变量可进行赋值运算 p 变量 a 的地址赋给 p 即指针 p 指向 a p array 数组 array 首地址赋给 p p 数组元素 array i 的地址赋给 p p max 函数 max 的入口地址赋给 p p1 p2 指针 p2 的值赋给指针 p1 即 p1 p2 所指的数据相同 3 同类指针变量在一定的条件下可以作相减运算 p q 4 同类指针变量在一定的条件下可以作比较运算 p q 3 判断下面两个程序的正误 若错误指出原因 1 include int main char p p DATA printf s n p return 0 解 解 该程序错 应为 printf s n p 2 include int main int p p 25 printf d p return 0 解 解 该程序错 指针变量没有赋初值 4 输入 3 个整数 输出其中最大数 要求用指针变量实现 解 解 include stdio h int main int a 0 b 0 c 0 int aa NULL bb NULL cc NULL p NULL aa printf 3 number scanf d d d printf a d b d c d n a b c p aa if p bb p bb if p cc p cc printf d n p return 0 程序运行情况如下 3 number 4 5 9 a 4 b 5 c 9 9 5 有 3 个整型变量 i j k 请编写一个程序 设置 3 个指针变量 p1 p2 p3 分别 指向 i j k 然后通过指针变量使 i j k 3 个变量的值顺序交换 即原来 i 的值赋给 j 把 j 的原值赋给 k 把 k 的原值赋给 i i j k 的原值由键盘输入 要求输出 i j k 的原值和 新值 解 解 include int main int i j k tmp int p1 p2 p3 scanf d d d printf Before change d t d t d n i j k p1 p2 p3 tmp p3 p3 p2 p2 p1 p1 tmp printf After change d t d t d n i j k return 0 程序运行情况如下 1 2 3 Before change 1 2 3 After change 3 1 2 6 输入一个 10 个元素的一维数组 在主函数中用 scanf 函数输入 用指针方式编程找 出最大和最小数 并指出最大数和最小数的位置 解解 int y max int p int n int max p i k 0 for i 0 i n i 这里判断到 i n 而不是 i n if max p i k i max p i 记得要在这里更新一下 max 的记录 return k define N 10 include int main int a N int i m max for i 0 i N i scanf d for i 0 i N i printf d a i m y max a N printf nmax a d d m a m return 0 程序运行情况如下 1 5 6 78 9 6 4 7 2 3 1 5 6 78 9 6 4 7 2 3 max a 3 78 7 输入一段文字 统计其中所包含的数字字符和字母字符个数 解 解 include include include define N 80 int cnum 0 dnum 0 全局变量用于在两个函数之间传递数据 int main char ch N void count char c int i n gets ch n strlen ch for i 0 i 0 return 0 程序运行情况如下 hello12345 5 5 8 请写出下列程序段的输出结果 1 include int main int a 1 2 3 4 5 6 p p a p 3 2 printf d d p p 3 return 0 解 解 1 6 2 include int main int a 1 2 3 4 5 6 int p p a printf 5d 5d 5d 5d n p p p p printf 5d 5d n p a 2 return 0 解 解 3 3 2 1 2 3 3 include include int main char s1 AbDeG char s2 AbdEg s1 2 s2 2 printf d n strcmp s1 s2 return 0 解 解 1 4 include include fun char w int n char t s1 s2 s1 w s2 w n 1 while s1 s2 t s1 s1 s2 s2 t s1 s2 int main char p 1234567 fun p strlen p puts p return 0 解 解 7654321 5 include int main char a Pascal C language dBase Coble char p int j p a 3 for j 3 j 0 j printf s n p return 0 解 解 Coble dBase C language Pascal 9 用一个函数实现两个字符串的比较 即自己写一个 strcmp 函数 strcmp s1 s2 如果 s1 s2 则函数返回值为 0 如果 s1 s2 返回它们两者第一个不同字符的 ASCII 码差值 如 BOY 与 BAD 第二个字符不同 O 与 A 之差为 79 65 14 如果 s1 s2 则输出正值 如果 s1 s2 则输出负值 两个字符串 s1 s2 由 main 函数输入 strcmp 函数的返回值也在 main 函数中输出 解 解 include int strcmp char s1 char s2 for s1 s2s1 s2 找不同的字符 return s1 s2 void main char a 10 b 10 gets a gets b printf d n strcmp a b 程序运行结果如下 hello world 15 10 设计一个程序 管理一个班的计算机成绩 要求采用一维数组来存储学生的成绩 解 解 include int main void float a 10 int i 0 double sum 0 0 float avg 0 0 for i 0 i 10 i printf 请输入第 d 个同学的成绩 i 1 scanf f printf n sum a i avg sum 10 0 printf f n avg return 0 程序运行结果如下 请输入第 1 个同学的成绩 85 请输入第 2 个同学的成绩 89 请输入第 3 个同学的成绩 90 请输入第 4 个同学的成绩 78 请输入第 5 个同学的成绩 69 请输入第 6 个同学的成绩 58 请输入第 7 个同学的成绩 78 请输入第 8 个同学的成绩 95 请输入第 9 个同学的成绩 100 请输入第 10 个同学的成绩 89 83 100000 11 输入 10 个整数 将其中最小的数与第一个数对换 把最大的数与最后一个数对换 用指针来实现 解 解 include void aa int array int i for i 0 i 10 i scanf d void bb int array int max min t int p max min array for p array p array 9 p if max p min p t max max array 9 array 9 t t min min array 0 array 0 t void cc int array int p for p array p array 9 p printf d p void main int number 10 aa number bb number cc number 程序运行结果如下 0 9 10 20 30 40 50 60 70 66 9 0 10 20 30 40 50 60 66 70 12 分析下列程序的运行结果 include int f1 int x return x 1 int f2 int x return x 1 int sum square int f int m int n int k sum 0 for k m k n k sum f k f k return sum int main printf result d n sum square f1 1 2 sum square f2 1 2 return 0 解 解 result 14



推荐阅读
  • c语言二元插值,二维线性插值c语言
    c语言二元插值,二维线性插值c语言 ... [详细]
  • 本文详细介绍了在Luat OS中如何实现C与Lua的混合编程,包括在C环境中运行Lua脚本、封装可被Lua调用的C语言库,以及C与Lua之间的数据交互方法。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 本文介绍如何手动实现一个字符串连接函数,该函数不依赖于C语言的标准字符串处理函数,如strcpy或strcat。函数原型为void concatenate(char *dest, char *src),其主要作用是将源字符串src追加到目标字符串dest的末尾。 ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • 实现系统调用
    实现系统调用一、实验环境​本次操作还是基于上次编译Linux0.11内核的实验环境进行操作。环境如下:二、实验目标​通过对上述实验原理的认识,相信 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 使用Matlab创建动态GIF动画
    动态GIF图可以有效增强数据表达的直观性和吸引力。本文将详细介绍如何利用Matlab软件生成动态GIF图,涵盖基本代码实现与高级应用技巧。 ... [详细]
  • 想把一组chara[4096]的数组拷贝到shortb[6][256]中,尝试过用循环移位的方式,还用中间变量shortc[2048]的方式。得出的结论:1.移位方式效率最低2. ... [详细]
  • Hanks博士是一位著名的生物技术专家,他的儿子Hankson对数学有着浓厚的兴趣。最近,Hankson遇到了一个有趣的数学问题,涉及求解特定条件下的正整数x,而不使用传统的辗转相除法。 ... [详细]
  • 本文探讨了使用普通生成函数和指数生成函数解决组合与排列问题的方法,特别是在处理特定路径计数问题时的应用。文章通过详细分析和代码实现,展示了如何高效地计算在给定条件下不相邻相同元素的排列数量。 ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
  • 本文通过C++语言实现了一个递归算法,用于解析并计算数学表达式的值。该算法能够处理加法、减法、乘法和除法操作。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 本题要求计算一组正整数的最小公倍数(LCM)。输入包括多组测试数据,每组数据首先给出一个正整数n,随后是n个正整数。 ... [详细]
author-avatar
手机用户2502941585_336
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有