2022年第八章习题及答案.docx

上传人:H****o 文档编号:83122693 上传时间:2023-03-28 格式:DOCX 页数:18 大小:68.73KB
返回 下载 相关 举报
2022年第八章习题及答案.docx_第1页
第1页 / 共18页
2022年第八章习题及答案.docx_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《2022年第八章习题及答案.docx》由会员分享,可在线阅读,更多相关《2022年第八章习题及答案.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选学习资料 - - - - - - - - - 名师整理 优秀资源第八章 习题一、挑选题1、如 x 为整型变量, p 是指向整型数据的指针变量,就正确的赋值表达式是 ;)p=x C)*p=&x D)*p=*x A)p=&x B2、已知: int a10=1,2,3,4,5,6,7,8,9,10,*p=a;元素的表达式是();就不能表示数组 a 中A)*p B)a10 C)*a D)ap-a 3、已知 :int a34,*p=a;就 p 表示 ();A 数组 a 的 0 行 0 列元素 B 数组 a 的 0 行 0 的地址C 数组 a 的 0 行首地址 D 以上均不对4、设有说明 int *p

2、trM; 其中的标识符 ptr 是();A M 个指向整型变量的指针B 指向 M个整型变量的函数指针C 一个指向 M个整型元素的一维数组的指针D 具有 M个指针元素的一维指针数组, 每个元素都只能指向整型变量5、已知 :char str=OK.;对指针变量 ps 的说明和初始化是();A char ps=str; B char *ps=str; C char ps=&str; D char *ps=&str; 6、 如有以下调用语句 , 就不正确的 fun 函数的首部是 ;A void funint m, int x B void funint s, int h41 C void funint

3、 p, int *s D void funint n, int a main int a50,n; funn, &a9; 7、 有以下程序 void funchar *a, char *b a=b; *a+; main char c1=A, c2=a, *p1, *p2; p1=&c1; p2=&c2; funp1,p2; 名师归纳总结 printf“ &c&c n” ,c1,c2;第 1 页,共 9 页- - - - - - -精选学习资料 - - - - - - - - - 名师整理 优秀资源 程序运行后的输出结果是 ;A Ab B aa C Aa D Bb 8、 以下程序段的输出结果是

4、;A 2 1 4 3 B 1 2 1 2 C 1 2 3 4 D 2 1 1 2 void funint *x, int *y printf“ %d ,%d” , *x, *y; *x=3; *y=4;main int x=1,y=2; fun&x,&y; printf“ %d %d” ,x, y; 9、 有如下说明 int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 就数值为 9 的表达式是 ;A *P+9 B *P+8 C *P+=9 D P+8 10、有以下程序main int x8=8,7,6,5,0,0,*s; s=x+3 printf%dn,s2; 执行后输出结果

5、是 ;C 5 D 6 A 随机值B 0 11、 有如下程序 main char s=” ABCD” , *P;“ %sn” ,p;forp=s+l; ps+4; p+ printf 该程序的输出结果是 ;A ABCD B A C B D BCD BCD B C CD CD C D D D D 12、 已定义以下函数 funchar *p2, char *p1 名师归纳总结 while*p2=*p1.=0p1+;p2+; 第 2 页,共 9 页函数的功能是 ;- - - - - - -精选学习资料 - - - - - - - - - 名师整理 优秀资源A 将 p1 所指字符串复制到 p2 所指内

6、存空间B 将 p1 所指字符串的地址赋给指针 p2 C 对 p1 和 p2 两个指针所指字符串进行比较D 检查 p1 和 p2 两个指针所指字符串中是否有0 13、有以下程序main char *s=one,two,three,*p; p=s1; printf%c,%sn,*p+1,s0; 执行后输出结果是 ;Cw,one D o,two A n,two B t,one 14、 如有以下定义和语句 : int s45,*ps5; ps=s; 就对 s 数组元素的正确引用形式是 ;A ps+1 B *ps+3 C ps02 D *ps+1+3 15、有以下程序段main int a=5, *b,

7、 *c; c=&b; b=&a; 程序在执行了 c=&b:b=&a; 语句后,表达式: *c 的值是 ;A 变量 a 的地址 B 变量 b 中的值 C 变量 a 中的值 D 变量 b 的地址二、填空题1、要使指针变量与变量之间建立联系,可以用运算符 1 来定义一个指针变量,用运算符 2 来建立指针变量与变量之间的联系;2、已知 :int a23=1,2,3,4,5,6,*p=&a00; 就表示元素 a00 的方法有指针法 : 1 , 数组名法 : 2 ;*p+1 的值为 3 ;3、以下程序的输出结果是;main int arr =30,25,20,15,10,5, *p=arr; p+; pr

8、intf“ %d n” ,*p+3; 4、 以下程序调用 findmax 函数返回数组中的最大值;名师归纳总结 - - - - - - -第 3 页,共 9 页精选学习资料 - - - - - - - - - 名师整理 优秀资源findmaxint *a,int n int *p,*s; forp=a,s=a;p-an;p+ if s=p; return*s; main int x5=12,21,13,6,18; printf%dn,findmaxx,5; 5、 以下程序的功能是 : 将无符号八进制数字构成的字符串转换为十进制整 数;例如 , 输入的字符串为 :556, 就输出十进制整数 36

9、6;请填空; #include main char *p, s6; int n; p=s; getsp; n=*p-0; while_.=0 n=n*8+*p-0; printf%d n,n; 三、编程题1. 编程实现从键盘输入一个字符串,将其字符次序颠倒后重新存放,并输出这个字符串;2. 从键盘任意输入10 个整数,用函数编程实现运算最大值和最小值,并返回它们所在数组中的位置;3. 将 5 个字符串从小到大排序后输出;名师归纳总结 4. 编写一个能对任意m n 阶矩阵进行转置运算的函数Transpose ;第 4 页,共 9 页- - - - - - -精选学习资料 - - - - - -

10、- - - 名师整理 优秀资源第八章 习题答案一、挑选题 1-5 A B C C B 6-10 D A C B B 11-15 D A C C C 二、填空题1. 1* 2 & 2. 1 *p 2 *a 3 2 3. 10 4. *p*s 5. *+p 三、编程题1. 编程实现从键盘输入一个字符串,将其字符次序颠倒后重新存放,并输出 这个字符串;#include #include void Inversechar *pStr; main char str80; printfInput a string:n; getsstr; /* 输入字符串 */ */ Inversestr; /* 将存于

11、str数组中的字符串逆序存放printfThe inversed string is:n; putsstr; /* 输出字符串 */ /* 函数功能:实现字符串逆序存放 函数参数:字符指针变量, 所指向的储备单元存放源字符串,逆序后的字符串也存放于此 返回值:无*/ void Inversechar *pStr int len; char temp; char *pStart; /* 指针变量 pStart指向字符串的第一个字符*/ char *pEnd; /* 指针变量 pEnd 指向字符串的最终一个字符*/ len = strlenpStr; /* 求出字符串长度*/ for pStart

12、=pStr,pEnd=pStr+len-1; pStartpEnd; pStart+,pEnd- 名师归纳总结 - - - - - - -第 5 页,共 9 页精选学习资料 - - - - - - - - - 名师整理 优秀资源 temp = *pStart; *pStart = *pEnd; *pEnd = temp; 2. 从键盘任意输入 10 个整数,用函数编程实现运算最大值和最小值,并返回它们所在数组中的位置;#include int FindMaxint num, int n, int *pMaxPos; int FindMinint num, int n, int *pMinPos

13、; main int num10, maxValue, maxPos, minValue, minPos, i; printfInput 10 numbers:n ; for i=0; i10; i+ scanf%d, &numi; /* 输入 10 个数 */ maxValue = FindMaxnum, 10, &maxPos; /* 找最大值及其所在下标位置 */ minValue = FindMinnum, 10, &minPos; /* 找最小值及其所在下标位置 */ printfMax=%d, Position=%d, Min=%d, Position=%dn, maxValue,

14、 maxPos, minValue, minPos; /* 函数功能:求 n 个数中的最大值及其所在下标位置 函数入口参数:整型数组 num,储备 n 个整数,整型变量 n,表示数组元素个数函数出口参数:整型指针变量 函数返回值:最大值 */ pMaxPos,指向的地址单元储备最大值在数组中的下标位置int FindMaxint num, int n, int *pMaxPos int i, max; max = num0; /* 假设 num0 为最大 */ 0 */ *pMaxPos = 0; /* 假设最大值在数组中的下标位置为for i = 1; i max max = numi; 名

15、师归纳总结 - - - - - - -第 6 页,共 9 页精选学习资料 - - - - - - - - - 名师整理 优秀资源*pMaxPos = i; return max ; /* 函数功能:求 n 个数中的最小值及其所在下标位置 函数入口参数:整型数组 num,储备 n 个整数,整型变量 n,表示数组元素个数 函数出口参数:整型指针变量 pMinPos,指向的地址单元储备最小值在数组中的下标位置 函数返回值:最小值 */ int FindMinint num, int n, int *pMinPos int i, min; min = num0; /*假设 num0 为最小 */ 0

16、*/ *pMinPos = 0; /*假设最小值在数组中的下标位置为for i = 1;i 10;i+ if numi min min = numi; *pMinPos = i; return min ; 3. 将 5 个字符串从小到大排序后输出;#include void mainvoid int i; char *pcolor5= red, blue, yellow, green, purple ; void fsortchar *color , int n; fsort pcolor, 5 ; fori = 0; i 5; i+ printf%s , pcolori; void fsor

17、tchar *color , int n int k, j; char *temp; fork = 1; k n; k+ forj = 0; j 0 名师归纳总结 - - - - - - -第 7 页,共 9 页精选学习资料 - - - - - - - - - 名师整理 优秀资源 temp = colorj; colorj = colorj+1; colorj+1 = temp; 4. 编写一个能对任意m n 阶矩阵进行转置运算的函数Transpose ;#include #define ROW 3 #define COL 4 void Transposeint *aCOL, int *atR

18、OW, int row, int col; void InputMatrixint *sCOL, int row, int col; void PrintMatrixint *sROW, int row, int col; main int sROWCOL; /*s 代表原矩阵 */ */ int stCOLROW; /*st代表转置后的矩阵printfPlease enter matrix:n; InputMatrixs, ROW, COL; /* 输入原矩阵 ,s 指向矩阵 s 的第 0 行, 是行指针 */ Transposes, st, ROW, COL; /*对矩阵 s 进行转置 ,

19、 结果存放于st 中*/ printfThe transposed matrix is:n; PrintMatrixst, COL, ROW; /*输出转置矩阵 ,*st指向 st 的第 0 行, 是行指针 */ /* 函数功能:对任意row 行 col 列的矩阵转置函数入口参数:指向一维整型数组的指针变量a,指向单元存放转置前的矩阵元素整型变量 row,矩阵的行数即二维整型数组的行数 整型变量 col ,矩阵的列数即二维整型数组的列数函数出口参数:指向一维整型数组的指针变量 函数返回值:无*/ at ,指向单元存放转置后的矩阵元素void Transposeint *aCOL, int *a

20、tROW, int row, int col int i, j; for i=0; irow; i+ for j=0; jcol; j+ *at+j+i = *a+i+j; 名师归纳总结 void InputMatrixint *sCOL, int row, int col /*输入矩阵元素 */ 第 8 页,共 9 页- - - - - - -精选学习资料 - - - - - - - - - 名师整理 优秀资源 int i, j; for i=0; irow; i+ for j=0; jcol; j+ scanf%d, *s+i+j; /* 这里 *s+i+j等价于 &sij*/ void PrintMatrixint *sROW, int row, int col /* 输入矩阵元素 */ int i, j; for i=0; irow; i+ for j=0; jcol; j+ printf%dt, *s+i+j; /*这里 *s+i+j等价于 sij*/ printf n; 名师归纳总结 - - - - - - -第 9 页,共 9 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁