c语言期末复习必备资料.pdf
《c语言期末复习必备资料.pdf》由会员分享,可在线阅读,更多相关《c语言期末复习必备资料.pdf(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1、函 数 fun的 功 能 是 计 算/n。double fun(double x,int n)int i;double y=l;for(i=l;i=n;i+)y=y*x;return y;)主 函 数 中 已 经 正 确 定 义 m、a、b变 量 并 赋 值,并 调 用 fun函 数 计 算:m=a-4+bN-(a+b:T3。实 现 这 一 计 算 的 函 数 调 用 语 句 为 _。答 案:1:fun(a,4)+fun(b,4)-fun(a+b),3)评 析:函 数 fun的 功 能 是 计 算 x的 n次 方,所 以 a的 4次 方 的 调 用 函 数 应 当 为 fun(a,4),b
2、的 4次 方 的 调 用 函 数 应 当 为 fun(b,4),(a+b)的 3次 方 的 调 用 函 数 应 当 为 fun(a+b),3),所 以,实 现 m二 aN+bM-(a+b厂 3这 一 计 算 的 函 数 458调 用 语 句 为:fun(a,4)+fun(b,4)-fun(a+b),3);。知 识 点:知 识 点/函 数/破 函 数 的 正 确 调 用,嵌 套 调 用,递 归 调 用 2、以 下 sstrcpyO函 数 实 现 字 符 串 复 制,即 将 t所 指 字 符 串 复 制 到 s所 指 内 存 空 间 中,形 成 一 个 新 字 符 串 s。请 填 空。void s
3、strcpy(char*s,char*t)w h i l e(*s+=);mainO char str 1 100,str2=z,abcdefgh,/;sstrcpy(strl,str2);printf(%sn”,strl);)答 案:1:*t+评 析:要 使 sstrcpyO函 数 实 现 字 符 串 复 制,必 须 将 t字 符 串 中 的 每 个 字 符 逐 个 拷 到 s字 符 串 中,所 以 可 以 使 用*s=*t;s+;t+。或 者 可 以 写 成*s+=*t+,本 题 只 有 一 个 空,可 以 填 入*t+。知 识 点:知 识 点/指 针/用 指 针 作 函 数 参 数 3、
4、以 下 程 序 给 指 针 p分 配 三 个 double型 动 态 内 存 单 元,请 填 空。#include mainO double*p;p=(doub1e*)ma11oc();p0=1.5;pl=2.5;p2=3.5;printf(z,%f%f%fnz,,p0,pl,p2);答 案:1:3*sizeof(double)评 析:malloc(size)在 内 存 的 动 态 存 储 区 中 分 配 一 个 长 度 为 size的 连 续 空 间。此 函 数 的 值(即 返 回 值)是 一 个 指 针,它 的 值 是 该 分 配 域 的 起 始 地 址。如 果 此 函 数 未 能 成 功
5、 地 执 行,则 返 回 值 为 0。本 题 中 要 求 分 配 三 个 double型 动 态 内 存 单 元,所 以 size处 应 当|为 3*sizeof(double)。知 识 点:知 识 点/指 针/各 类 型 的 指 针 及 指 针 变 量,通 过 指 针 引 用 各 类 型 数 据 4、以 下 程 序 运 行 后 的 输 出 结 果 是 omain()int a,b,c;a=25;b=025;c=0 x25;printf(z,%d%d 刎 n,a,b,c);答 案:25 21 37评 析:本 题 考 查 的 是 格 式 字 符 的 输 出。变 量 a、b、c分 别 为 十 进
6、制、八 进 制、十 六 进 制 的 25,格 式 字 符 d所 代 表 的 含 义 是,以 带 符 号 的 卜 进 制 形 式 输 出 整 数(正 数 不 输 出 符 号),所 以 本 题 a=25则 输 出 值 为 25;b=025转 换 为 10进 制:b=2*8+5=16+5=21,则 输 出 的 值 为 21;c=0 x25转 换 为 10进 制:c=2*16+5=32+5=37,则 输 出 的 值 为 37,而 且 printf中 三 个%d之 用 的 是 空 格,所 以 输 出 的 几 个 数 字 之 间 也 必 须 是 空 格。知 识 点:知 识 点/函 数/变 量 的 存 储
7、类 别,变 量 的 作 用 域 和 生 存 期 5、以 下 程 序 运 行 后 的 输 出 结 果 是 omain()char a=Language,b=Programe”;char*pl,*p2;int k;pl=a;p2=b;for(k=0;k=7;k+)if(*(pl+k)=*(p2+k)printf(线 c”,*(pl+k);答 案:gae评 析:本 题 考 查 的 是 字 符 指 针 变 量 与 字 符 数 组。解 题 过 程:(1)当 k=0时,*(pl+0)=V,*(p2+0)=P1,L!=P,(2)当 k=l时,*(pl+l)=a,*(p2+l)=r,a!=r,(3)当 k=2
8、时,*(pl+2)=,n,*(p2+2)=o,n!=o,(4)当 k=3时,*(pl+3)=g,*(p2+3)=g,g=g,(5)当 k=4时,*(pl+4)=u,*(p2+4)=r,u!=r,(6)当 k=5时,*(pl+5)=,a5,*(p2+5)=a,a=a,(7)当 k=6时,*(pl+6)=,g,*(p2+6)=m,g!=m,(8)当 k=7时,*(pl+7)=e,*(p2+7)=e,e=e,(9)当 k=8时 结 束 循 环(10)输 出 结 果 为:gaeo知 识 点:知 识 点/数 组 的 定 义 和 引 用/字 符 串 与 字 符 数 组 所 以 没 有 输 出 所 以 没
9、有 输 出 所 以 没 有 输 出 所 以 输 出 g所 以 没 有 输 出 所 以 输 出 a所 以 没 有 输 出 所 以 输 出 e6、以 下 程 序 通 过 函 数 SunFun和 f(x),x=0到 10,这 里 f(x)=x2+l,由 F函 数 实 现,请 填 空。main()printf(The sun=%dn/z,SunFun(10);SunFun(int n)int x,s=0;for(x=0;x=n;x+)s+F();return s;F(int x)return();答 案:1:x2:x*x+l评 析:本 题 考 查 的 是 函 数 的 调 用。解 题 过 程:(1)f(
10、x)的 含 义 为 X的 平 方 加 上 1(2)所 以 F(int x)的 返 回 值 应 该 为 x*x+l(3)SunFun(10)的 作 用 是 将 0到 10之 间 所 有 的 整 数 相 加 求 和(4)所 以 F()的 形 式 参 数 为 X。知 识 点:知 识 点/函 数/函 数 的 正 确 调 用,嵌 套 调 用,递 归 调 用 7、以 下 程 序 中,函 数 SumColumMin的 功 能 是:求 出 M行 N列 二 维 数 组 每 列 元 素 中 的 最 小 值,并 计 算 它 们 的 和 值。和 值 通 过 形 参 传 回 主 函 数 输 出。请 填 空。ttdefi
11、ne M 2#define N 4void SumColumMin(int aMN,int*sum)int i,j,k,s=0;for(i=0;iN;i+)k=0;for(j=l;jaj i)k=j;s+=;)_=s;main()(int xM N=3,2,5,1,4,1,8,3,s;SumColumMin();printf(绘 dn”,s);答 案:1:aki2:*sum3:x,&s评 析:本 题 考 查 的 是 函 数 参 数 的 传 送。解 题 过 程:(1)执 行 以 i为 变 量 的 for语 句 1)k=02)执 行 以 j为 变 量 的 for语 句 当 j=l 比 较 a0 0
12、和 al 0的 大 小,如 果 a0 0大 于 al 0则 k=l;如 果 a0 0大 于 al 0则 k=0 j=2所 以 结 束 循 环 3)此 时 aki就 代 表 第 一 列 中 最 小 的 值,要 累 计 所 有 列 中 的 最 小 值 的 和,应 该 在 第 一 空 内 填 写 aki,用 变 量 s累 加。(2)SumColumMin是 一 个 无 返 回 值 的 函 数,其 中 形 式 参 数*sum是 一 个 指 针 类 型,所 以 第 二 空 应 该 填 写*sum,用 来 将 该 指 针 变 量 指 向 s(3)当 主 函 数 main调 用 SumColumMin时,需
13、 要 两 个 实 际 参 数,一 个 代 表 被 操 作 的 数 组,一 个 为 指 向 累 计 和 的 指 针 变 量,所 以 第 三 个 空 应 该 为 x.&s,分 别 代 表 已 经 被 定 义 的 数 组 x,和 整 型 变 量 s的 地 址。知 识 点:知 识 点/函 数/函 数 的 正 确 调 用,嵌 套 调 用,递 归 调 用 8、以 下 程 序 的 输 出 结 果 是。main()(int a=0;a+=(a=8);printf(%dn,a);答 案:16评 析:本 题 的 考 查 点 是 表 达 式。表 达 式 a+=8相 当 于 a=a+8,对 表 达 式 逐 步 求 解
14、 过 程 如 下:a+=(a+8)此 时,a的 值 赋 值 为 8,而 不 再 是 0;a+=8a=a+8a=16故 本 题 答 案 为 16。知 识 点:知 识 点/函 数/形 式 参 数 与 实 在 参 数,参 数 值 的 传 递 9、以 下 程 序 的 输 出 结 果 是 _。ttdefine MAX(x,y)(x)(y)?(x):(y)main()int a=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf(dn,t);答 案:7评 析:本 题 的 考 查 点 是 宏 定 义。宏 替 换 后,表 达 式 t=MAX(a+b,c+d)*10 即 变 为:t
15、=(a+b)(c+d)?(a+b):(c+d)*10;由 于(a+b)(c+d)为 真,所 以 t=(a+b),即 为 7。故 本 题 答 案 为:7o知 识 点:知 识 点/编 译 预 处 理/宏 定 义:不 带 参 数 的 宏 定 义;带 参 数 的 宏 定 义 10、函 数 mycmp(char*s,char*t)的 功 能 是 比 较 字 符 串 s和 t的 大 小,当 s等 于 t时 返 回 0,当 st返 回 正 值,当 st时 返 回 负 值。请 填 空。mycmp(char*s,char*t)while(*s=*t)if(*s=,0J)return 0;+s;+t;return
16、();答 案:评 析:本 题 的 考 查 点 是 比 较 字 符 串 的 大 小。函 数 的 两 个 形 参 是 两 个 字 符 指 针 变 量,字 符 串 的 首 地 址 是 指 针 变 量 的 值,*s和*t表 示 字 符 串 数 组 S和 t的 笫 一 个 字 符,在 while循 环 中,是 通 过 s和 t值 的 不 断 变 化 改 变 两 个 串 的 第 一 个 字 符,要 返 回 s和 t的 第 一 个 不 同 字 符 的 ASCII码 的 差 值,必 须 使 用*s-*t 得 出。故 本 题 答 案 为:知 识 点:知 识 点/函 数/库 函 数 的 正 确 调 用 11、若
17、给 fun函 数 的 形 参 s传 送 字 符 串:6354abe,则 函 数 的 返 回 值 是。(字 符 串 中 包 括 空 格)long fun(char s)long n;int sign;for(;isspace(*s);s+);sign=(*s二=if(*s=,+,|*s=-)s+;for(n=0;isdigit(*s);s+)n=10*n+(*s,O);return sign*n;)答 案:6354评 析:本 题 的 考 查 点 是 函 数 的 返 回 值。这 个 函 数 的 目 的 是 提 取 出 由 函 数 的 形 参 传 送 来 的 字 符 串 中 的 数 字 字 符,并
18、通 过 相 应 各 个 字 符 位 置 计 算 出 它 们 数 值 形 式 的 恭,最 后 返 回 字 符 串 中 的 数 字 字 符 的 数 值 形 式,所 以 函 数 的 返 何 值 应 当 是 6354”。故 本 题 答 案 为:6354o知 识 点:知 识 点/函 数/函 数 的 正 确 调 用,嵌 套 调 用,递 归 调 用 12、以 下 程 序 段 的 输 出 结 果 为/char*p;int i,d;p=PDPl-O;for(i=0;i7;i+)d=isdigit(*(p+i);if(d!=O)printf(cn,*(p+i);答 案:1评 析:本 题 的 考 查 点 是 函 数
19、 isdigitO。这 段 程 序 的 目 的 是 按 从 左 至 右 的 顺 序 从 字 符 串 P中 找 出 阿 拉 伯 数 字 字 符,如 果 找 到,将 其 打 印 出 来。最 后 的 输 出 应 当 是:10知 识 点:知 识 点/函 数/库 函 数 的 正 确 调 用 13、下 列 程 序 中 字 符 串 中 各 单 词 之 间 有 一 个 空 格,则 程 序 的 输 出 结 果 是 o#includem a i n()char strl=How do you do,*pl=strl;strcpy(strl+strlen(strl)/2,zzes she);printf(z/%sn
20、/z,pl);答 案:How does she评 析:本 题 的 考 查 点 是 字 符 串 捋 贝 函 数 strcpy()。strlen(strl)是 求 sl字 符 串 的 长 度,为 13,然 后,进 行 除 2运 算,结 果 为 6。strcpy()函 数 是 把 字 符 串 cs she 拷 贝 到 strl后 的 第 6个 字 符 后 面,也 就 是 说,拷 贝 后 的 结 果 是 How does she故 本 题 答 案 为:How does she。知 识 点:知 识 点/函 数/库 函 数 的 正 确 调 用 14、下 面 的 函 数 strcat(strl,str2)实
21、 现 将 字 符 串 str2拼 接 到 字 符 串 strl后 面 的 功 能。请 填 空 使 之 完 整。char Estreat(strl,str2)char*strl,*str2;char*t=strl;while()strl+;w h i l e();return(t);)答 案:1:*strl!=02:*strl+=*str2+评 析:本 题 的 考 查 点 是 字 符 串 连 接 函 数 strcat()。函 数 strcat(strl,str2)实 现 将 字 符 串 str2连 接 到 字 符 串 strl后 面,所 以 首 先 要 找 到 字 符 串 strl的 串 尾,根
22、 据 C语 言 的 语 法 规 定,一 个 串 的 串 尾 一 定 是 一 个 隐 含 字 符 0,而 在 程 序 中,对 字 符 串 中 字 符 的 访 问 是 通 过 两 个 指 针 变 量 来 完 成 的,因 此 要 找 到 字 符 串 strl的 串 尾,要 判 断*strl是 否 为 0,要 找 到 字 符 串 str2的 串 尾,要 判 断*str2是 否 为 0,程 序 中 必 须 可 以 使 字 符 串 中 字 符 逐 一 顺 序 体 现,所 以 在 题 中 我 们 应 填 写*strl 和*strl+=*str2+。知 识 点:知 识 点/函 数/库 函 数 的 正 确 调
23、用 15、以 下 程 序 的 输 出 结 果 是 一 void fun()static int a=0;a+=2;p r i n t f a);)main()int cc;for(cc=l;cc4;cc+)fun();printf(n);答 案:246评 析:循 环 for(cc=l;cc 4;cc+)被 执 行 了 3次。在 函 数 fun中,由 于 a是 static型 变 量,所 以 函 数 第 1次 调 用 后,a=2;第 2次 调 用 后,a=4;第 3次 调 用 后,a=6。知 识 点:知 识 点/函 数/函 数 的 正 确 调 用,嵌 套 调 用,递 归 调 用 16、若 要 使
24、 指 针 p指 向 一 个 double类 型 的 动 态 存 储 单 元,请 填 空。p=malloc(sizeof(double);答 案:(double*)评 析:函 数 malloc返 回 的 是 void*而 不 是 double类 型 指 针。所 以 要 使 指 针 p指 向 一 个 double类 型 的 存 储 单 元 就 必 须 进 行 强 制 类 型 转 换。知 识 点:知 识 点/函 数/函 数 的 类 型 和 返 回 值 17、下 列 程 序 段 的 输 出 结 果 是。main()char b=Hello,you”;b5=0;printf(%sn”,b);答 案:He
25、llo评 析:字 符 串 中,数 值 0或 符 号 0表 示 字 符 串 的 结 束。本 题 中,b5被 赋 了 0值,表 明 字 符 串 b的 第 六 个 字 符 就 是 结 束 标 志。因 此,只 输 出 前 五 个 字 符,即 Hello。知 识 点:知 识 点/数 组 的 定 义 和 引 用/一 维 数 组 和 多 维 数 组 的 定 义、初 始 化 和 引 用 18、下 列 程 序 的 输 出 结 果 是。void fun(int*n)while(*n)-);printf+(*n);)mainO int a=100;fun(&a);答 案:0评 析:在 函 数 fun()中,whil
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 复习 必备 资料
限制150内