机 密 启 用 前 2005 年 9 月 全 国 计 算 机 等 级 考 试 二 级 笔 试 试 卷 C 语 言 程 序 设 计 24 注 意 事 项 一 考 生 应 严 格 遵 守 考 场 规 则, 得 到 监 考 人 员 指 令 后 方 可 作 答 二 考 生 拿 到 试 卷 后 应 首 先 将 自 己 的 姓 名 准 考 证 号 等 内 容 涂 写 在 答 题 卡 的 相 应 位 置 上 三 选 择 题 答 案 必 须 用 铅 笔 填 涂 在 答 题 卡 的 相 应 位 置 上, 填 空 题 的 答 案 必 须 用 蓝 黑 色 钢 笔 或 圆 珠 笔 写 在 答 题 卡 的 相 应 位 置 上, 答 案 写 在 试 卷 上 无 效 四 注 意 字 迹 清 楚, 保 持 卷 面 整 洁 五 考 试 结 束 将 试 卷 和 答 题 卡 放 在 桌 上, 不 得 带 走 待 监 考 人 员 收 毕 清 点 后, 方 可 离 场 * * * 版 权 所 有, 任 何 单 位 或 个 人 不 得 保 留 复 制 和 出 版, 违 者 必 究 * * * 教 育 部 考 试 中 心 二 00 五 年 七 月 制
2005 年 9 月 全 国 计 算 机 等 级 考 试 笔 试 试 卷 二 级 公 共 基 础 知 识 和 C 语 言 程 序 设 计 ( 考 试 时 间 120 分 钟, 满 分 100 分 ) 一 选 择 题 ((1)-(10) 每 小 题 2 分,(11)-(50) 每 小 题 1 分, 共 60 分 ) (1) 下 列 叙 述 中 正 确 的 是 ( ) A) 程 序 设 计 就 是 编 制 程 序 B) 程 序 的 测 试 必 须 由 程 序 员 自 己 去 完 成 C) 程 序 经 调 试 改 错 后 还 应 进 行 再 测 试 D) 程 序 经 调 试 改 错 后 不 必 进 行 再 测 试 (2) 下 列 数 据 结 构 中, 能 用 二 分 法 进 行 查 找 的 是 ( ) A) 顺 序 存 储 的 有 序 线 性 表 B) 线 性 链 表 C) 二 叉 链 表 D) 有 序 线 性 链 表 (3) 下 列 关 于 栈 的 描 述 正 确 的 是 ( ) A) 在 栈 中 只 能 插 入 元 素 而 不 能 删 除 元 素 B) 在 栈 中 只 能 删 除 元 素 而 不 能 插 入 元 素 C) 栈 是 特 殊 的 线 性 表, 只 能 在 一 端 插 入 或 删 除 元 素 D) 栈 是 特 殊 的 线 性 表, 只 能 在 一 端 插 入 元 素, 而 在 另 一 端 删 除 元 素 (4) 下 列 叙 述 中 正 确 的 是 ( ) A) 一 个 逻 辑 数 据 结 构 只 能 有 一 种 存 储 结 构 B) 数 据 的 逻 辑 结 构 属 于 线 性 结 构, 存 储 结 构 属 于 非 线 性 结 构 C) 一 个 逻 辑 数 据 结 构 可 以 有 多 种 存 储 结 构, 且 各 种 存 储 结 构 不 影 响 数 据 处 理 的 效 率 D) 一 个 逻 辑 数 据 结 构 可 以 有 多 种 存 储 结 构, 且 各 种 存 储 结 构 影 响 数 据 处 理 的 效 率 (5) 下 列 描 述 中 正 确 的 是 ( ) A) 软 件 工 程 只 是 解 决 软 件 项 目 的 管 理 问 题 B) 软 件 工 程 主 要 解 决 软 件 产 品 的 生 产 率 问 题 C) 软 件 工 程 的 主 要 思 想 是 强 调 在 软 件 开 发 过 程 中 需 要 应 用 工 程 化 原 则 D) 软 件 工 程 只 是 解 决 软 件 开 发 中 的 技 术 问 题 (6) 在 软 件 设 计 中, 不 属 于 过 程 设 计 工 具 的 是 ( ) A)PDL( 过 程 设 计 语 言 ) B)PAD 图 C)N-S 图 D)DFD 图 (7) 下 列 叙 述 中 正 确 的 是 ( ) A) 软 件 交 付 使 用 后 还 需 要 再 进 行 维 护 B) 软 件 工 具 交 付 使 用 就 不 需 要 再 进 行 维 护 C) 软 件 交 付 使 用 后 其 生 命 周 期 就 结 束 D) 软 件 维 护 是 指 修 复 程 序 中 被 破 坏 的 指 令 (8) 数 据 库 设 计 的 根 本 目 标 是 要 解 决 ( ) A) 数 据 共 享 问 题 B) 数 据 安 全 问 题 C) 大 量 数 据 存 储 问 题 D) 简 化 数 据 维 护 (9) 设 有 如 下 关 系 表 : 二 级 C 语 言 程 序 设 计 试 卷 第 1 页 ( 共 13 页 )
R S T A B C A B C A B C 1 1 2 3 1 3 1 1 2 2 2 3 2 2 3 3 1 3 则 下 列 操 作 中 正 确 的 是 ( ) A)T=R S B)T=R S C)T=R S D)T=R/S (10) 数 据 库 系 统 的 核 心 的 是 ( ) A) 数 据 模 型 B) 数 据 库 管 理 系 统 C) 数 据 库 D) 数 据 库 管 理 员 (11) 下 列 叙 述 中 错 误 的 是 ( ) A) 用 户 所 定 义 的 标 识 符 允 许 使 用 关 键 字 B) 用 户 所 定 义 的 标 识 符 应 尽 量 做 到 见 名 知 意 C) 用 户 所 定 义 的 标 识 符 必 须 以 字 母 或 下 划 线 开 头 D) 用 户 定 义 的 标 识 符 中 大 小 写 字 母 代 表 不 同 标 识 (12) 下 列 叙 述 中 错 误 的 是 ( ) A)C 语 句 必 须 以 分 号 结 束 B) 复 合 语 句 在 语 法 上 被 看 作 一 条 语 句 C) 空 语 句 出 现 在 任 何 位 置 都 不 会 影 响 程 序 运 行 D) 赋 值 表 达 式 末 尾 加 分 号 就 构 成 赋 值 语 句 (13) 下 列 叙 述 中 正 确 的 是 ( ) A) 调 用 printf() 函 数 时, 必 须 要 有 输 出 项 B) 使 用 putchar() 函 数 时, 必 须 在 之 前 包 含 头 文 件 stdio.h C) 在 C 语 言 中, 整 数 可 以 以 十 二 进 制 八 进 制 或 十 六 进 制 的 形 式 输 出 D) 调 节 getchar() 函 数 读 入 字 符 时, 可 以 从 键 盘 上 输 入 字 符 所 对 应 的 ASCII 码 (14) 下 列 关 于 函 数 的 叙 述 中 正 确 的 是 ( ) A) 每 个 函 数 都 可 以 被 其 他 函 数 调 用 ( 包 括 main 函 数 ) B) 每 个 函 数 都 可 以 被 单 独 编 译 C) 每 个 函 数 都 可 以 单 独 运 行 D) 在 一 个 函 数 内 部 可 以 定 义 另 一 个 函 数 (15) 若 有 语 句 :char *line[5]; 下 列 叙 述 中 正 确 的 是 ( ) A) 定 义 line 是 一 个 数 组, 每 个 数 组 元 素 是 一 个 基 类 型 为 char 的 指 针 变 量 B) 定 义 line 是 一 个 指 针 变 量, 该 变 量 可 以 指 向 一 个 长 度 为 5 的 字 符 型 数 组 C) 定 义 line 是 一 个 指 针 数 组, 语 句 中 的 * 号 称 为 间 址 运 算 符 D) 定 义 line 是 一 个 指 向 字 符 型 函 数 的 指 针 (16) 有 下 列 程 序 段 : typedef struct NODE { int num;struct NODE *next; OLD; 下 列 叙 述 中 正 确 的 是 ( ) A) 以 上 的 说 明 形 式 非 法 B)NODE 是 一 个 结 构 体 类 型 C)OLD 是 一 个 结 构 体 类 型 D)OLD 是 一 个 结 构 体 变 量 (17) 下 列 叙 述 中 错 误 的 是 ( ) A) 在 C 语 言 中, 对 二 进 制 文 件 的 访 问 速 度 比 文 本 文 件 快 二 级 C 语 言 程 序 设 计 试 卷 第 2 页 ( 共 13 页 )
B) 在 C 语 言 中, 随 机 文 件 以 二 进 制 代 码 形 式 存 储 数 据 C) 语 句 FILE fp; 定 义 了 一 个 名 为 fp 的 文 件 指 针 D)C 语 言 中 的 文 本 文 件 以 ASCⅡ 码 形 式 存 储 数 据 (18) 当 把 四 个 表 达 式 用 作 if 语 句 的 控 制 表 达 式 时, 有 一 个 选 项 与 其 他 三 个 选 项 含 义 不 同, 这 个 选 项 是 ( ) A)k%2 B)k%2= =1 C)(k%2)! =0 1 1 D)!k%2= =1 (19) 下 列 不 能 正 确 计 算 代 数 式 sin 2 ( ) 值 的 C 语 言 表 达 式 是 ( ) 3 2 A)1/3 *sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3 C)pow(sin(0.5),2)/3 D)1/3.0*pow(sin(1.0/2),2) (20) 下 列 能 正 确 定 义 且 赋 初 值 的 语 句 是 ( ) A)int nl=n2=10; B)char c=32; C)float f=f+1.1; D)double x=12.3e2.5; (21) 下 列 程 序 的 功 能 是 : 给 r 输 入 数 据 后 计 算 半 径 为 r 的 圆 面 积 s 程 序 在 编 译 时 出 错 /* Beginning */ { int r; float s; scanf("%d",&r); s=*π*r*r; printf("s=%f\n",s); 出 错 的 原 因 是 ( ) A) 注 释 语 句 书 写 位 置 错 误 B) 存 放 圆 半 径 的 变 量 r 不 应 该 定 义 为 整 型 C) 输 出 语 句 中 格 式 描 述 符 非 法 D) 计 算 圆 面 积 的 赋 值 语 句 中 使 用 了 非 法 变 量 (22) 设 有 定 义 :int k=1,m=2; float f=7; 则 下 列 选 项 中 错 误 的 表 达 式 是 ( ) A)k=k> =k B)-k+ + C)k%int(f) D)k> =f> =m (23) 设 有 定 义 :int a=2,b=3,c=4;, 则 下 列 选 项 中 值 为 0 的 表 达 式 是 ( ) A)(!a= =1)&&(!b= =0) B)(a<b)&&! c 1 C)a && b D)a (b+b)&&(c-a) (24) 有 下 列 程 序 段 : int k=0,a=1,b=2,c=3; k=a<b?b:a;k=k>c?c:k; 执 行 该 程 序 段 后,k 的 值 是 ( ) A)3 B)2 C)1 D)0 (25) 设 变 量 a b c d 和 y 都 已 正 确 定 义 并 赋 值 若 有 下 列 if 语 句 if(a<b) if(c= =d) y=0; else y=1; 该 语 句 所 表 示 的 含 义 是 ( ) 二 级 C 语 言 程 序 设 计 试 卷 第 3 页 ( 共 13 页 )
A) y = 0 1 a< b且 c= d a b B) y = 0 1 a< b且 c= d a b且 c d C) y = 0 1 a< b且 c= d a< b且 c d D) = 0 1 二 级 C 语 言 程 序 设 计 试 卷 第 4 页 ( 共 13 页 ) y a < b且 c= d c d (26) 有 下 列 程 序 段 int n,t=1,s=0; scanf("%d",&n); do{ s=s+t;t=t-2; while(t! =n); 为 使 此 程 序 段 不 陷 入 死 循 环, 从 键 盘 输 入 的 数 据 应 该 是 ( ) A) 任 意 正 奇 数 B) 任 意 负 偶 数 C) 任 意 正 偶 数 D) 任 意 负 奇 数 (27) 设 变 量 已 正 确 定 义, 则 以 下 能 正 确 计 算 f=n! 的 程 序 段 是 ( ) A)f=0; B)f=1; for(i=1;i<=n;i+ +) f*=i; for(i=1;i<n;i+ +) f*=i; C)f=1; D)f=1; for(i=n;i>1;i+ +)f*=i; for(i=n;i> =2;i--)f*=i; (28) 设 有 定 义 :int n1=0,n2,*p=&n2,*q=&n1;, 以 下 赋 值 语 句 中 与 n2=n1; 语 句 等 价 的 是 ( ) A)*p=*q; B)p=q; C)*p=&n1; D)p=*q; (29) 若 有 定 义 :int x=0,*p=&x;, 则 语 句 printf("%d\n",*p); 的 输 出 结 果 是 ( ) A) 随 机 值 B)0 C)x 的 地 址 D)p 的 地 址 (30) 设 fun() 函 数 的 定 义 形 式 为 ( ) void fun(char ch,float x){ 则 下 列 对 函 数 fun 的 调 用 语 句 中, 正 确 的 是 A)fun("abc",3.0); B)t=fun('D',16.5); C)fun('65',2.8); D)fun(32,32); (31) 有 下 列 程 序 : { int a[10]={1,2,3,4,5,6,7,8,9,10,*p=&a[3],*q=p+2; printf("%d\n",*p+*q); A)16 B)10 C)8 D)6 (32) 有 下 列 程 序 : { char p[ ]={'a','bv,'c',q[ ]="abc"; printf("%d%d\n",sizeof(p),sizeof(q)); ; A)4 4 B)3 3 C)3 4 D)4 3 (33) 有 下 列 程 序 : #define f(x)=(x*x)
{ int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); prinft("%d,%d\n",i1,i2); A)64,28 B)4,4 C)4,3 D)64,64 (34) 有 下 列 程 序 : { char a1='m',a2='m'; printf("%c\n",(a1,a2)); 下 列 叙 述 中 正 确 的 是 ( ) A) 程 序 输 出 大 写 字 母 M B) 程 序 输 出 小 写 字 母 m C) 格 式 说 明 符 不 足, 编 译 出 错 D) 程 序 运 行 时 产 生 出 错 信 息 (35) 有 下 列 程 序 : #include <stdio.h> { char c1='1',c2='2'; c1=getchar( ); c2=getchar( ); putchar(c1); putchar(c2); 当 运 行 时 输 入 :a<cr> 后, 下 列 叙 述 正 确 的 是 ( ) A) 变 量 c1 被 赋 予 字 符 a,c2 被 赋 予 回 车 符 B) 程 序 将 等 待 用 户 输 入 第 2 个 字 符 C) 变 量 c1 被 赋 予 字 符 a,c2 中 仍 是 原 有 字 符 2 D) 变 量 c1 被 赋 予 字 符 a,c2 中 将 无 确 定 值 (36) 有 下 列 程 序 : { int k=5,n=0; while(k>0) { switch(k) { default:break; case 1: n+ =k; case 2: case 3: n+ =k; k--; printf("%d\n",n); A)0 B)4 C)6 D)7 (37) 有 下 列 程 序 : 二 级 C 语 言 程 序 设 计 试 卷 第 5 页 ( 共 13 页 )
{ int a[ ]={2,4,6,8,10,y=0,x,*p; p=&a[1]; for(x=1;x<3;x+ +) y+ =p[x]; printf("%d\n",y); A)10 B)11 C)14 D)15 (38) 有 下 列 程 序 : void sort(int a[ ],int n) { int i,j,t; for(i=0;i<n-1;i+ +) for(j=i+1;j<n;j+ +) if(a[i]<a[j]){ t=a[i]; a[i]=a[j]; a[j]=t; { int aa[10]={1,2,3,4,5,6,7,8,9,10,i; sort(aa+2,5); for(i=0;i<10;i+ +)printf("%d,",aa[i]); printf("\n"); A)1,2,3,4,5,6,7,8,9,10, B)1,2,7,6,3,4,5,8,9,10, C)1,2,7,6,5,4,3,8,9,10, D)1,2,9,8,7,6,5,4,3,10, (39) 有 下 列 程 序 : void sum(int a[ ]) { a[0]=a[-1]+a[1]; { int a[10]={1,2,3,4,5,6,7,8,9,10; sum(&a[2]); printf("%d\n",a[2]); A)6 B)7 C)5 D)9 (40) 有 下 列 程 序 : void swap1 (int c0[ ],int c1[ ]) { int t; t=c0[0]; c0[0]=c1[0]; c1[0]=t; void swap2(int *c0,int *cl) { int t; t=*c0; *c0=*c1; *c1=t; 二 级 C 语 言 程 序 设 计 试 卷 第 6 页 ( 共 13 页 )
{ int a[2]={3,5, b[2]={3,5; swap1(a,a+1); swap2(&b[0],&b[1]); printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]); A)3 5 5 3 B)5 3 3 5 C)3 5 3 5 D)5 3 5 3 (41) 有 下 列 程 序 : #include<string.h> { char p[ ]={'a', 'b', 'c',q[10]={ 'a', 'b', 'c'; printf("%d%d\n",strlen(p),strlen(q)); 下 列 叙 述 中 正 确 的 是 ( ) A) 在 给 p 和 q 数 组 赋 初 值 时, 系 统 会 自 动 添 加 字 符 串 结 束 符, 故 输 出 的 长 度 都 为 3 B) 由 于 p 数 组 中 没 有 字 符 串 结 束 符, 长 度 不 能 确 定, 但 q 数 组 中 字 符 串 长 度 为 3 C) 由 于 q 数 组 中 没 有 字 符 串 结 束 符, 长 度 不 能 确 定, 但 p 数 组 中 字 符 串 长 度 为 3 D) 由 于 p 和 q 数 组 中 都 没 有 字 符 串 结 束 符, 故 长 度 都 不 能 确 定 (42) 有 下 列 程 序, 其 中 函 数 f() 的 功 能 是 将 多 个 字 符 串 按 字 典 顺 序 排 序 ( ) #include <string.h> void f(char *p[ ],int n) { char *t; int i,j; for(i=0;i<n-1;i+ +) for(j=i+1;j<n;j+ +) if(strcmp(p[i],p[j]>0){t=p[i]; p[i]=p[j], p[j]=t; { char *p[5]={"abc","aabdfg","abbd","dcdbe","cd"; f(p,5); printf("%d\n",strlen(p[1])); A)2 B)3 C)6 D)4 (43) 有 下 列 程 序 : #include <string.h> void f(char *s,char *t) { char k; k=*s; *s=*t; *t=k; s+ +; t--; if(*s) f(s,t); { char str[10]="abcdefg",*p; p=str+strlen(str)/2+1; f(p,p-2); 二 级 C 语 言 程 序 设 计 试 卷 第 7 页 ( 共 13 页 )
printf("%s\n",str); A)abcdefg B)gfedcba C)gbcdefa D)abedcfg (44) 有 下 列 程 序 : float fl(float n) { return n*n; float f2(float n) {return 2*n; { float (*p1)(float),(*p2)(float),(*t)(float),y1,y2; p1=f1; p2=f2; y1=p2(p1(2.0)); t=p1; p1=p2; p2=t; y2=p2(p1(2.0)); printf("%3.0f, %3.0f\n",y1,y2); A)8,16 B)8,8 C)16,16 D)4,8 (45) 有 下 列 程 序 : int a=2; int f(int n) { static int a=3; int t=0; if(n%2){ static int a=4; t+ =a+ +; else{ static int a=5; t+ =a+ +; returnt+a+ +; { int s=a,i; for(i=0;i<3;i+ +) s+ =f(i); printf("%d\n",s); A)26 B)28 C)29 D)24 (46) 有 下 列 程 序 : #include <string.h> struct STU { int num; float TolalScorc; ; void f(structstu p) { struct STU s[2]={{20044,550,{20045,537; p.num=s[1].num; p.totalscore=s[1].totalscore; 二 级 C 语 言 程 序 设 计 试 卷 第 8 页 ( 共 13 页 )
{ struct STU s[2]={{20041,703,{20042,580; f(s[0]); printf("%d %3.0f\n",s[0]. num,s[0]. TotalScore); A)20045 537 B)20044 550 C)20042 580 D)20041 703 (47) 有 下 列 程 序 : #include <sting.h> struct STU { char name[10]; int num; ; void f(char *name,int num) { struct STU s[2]={{"sundan",20044,{"penghua",20045; num=s[0].num; strcpy(name,s[0].name); { struct STU s[2]={{"yangsan",2004,{"lisiguo",20042,*p; p=&s[1]; f(p->name,p->num); printf("%s %d\n", p->name,p->num); A)SunDan 20042 B)SunDan 20044 C)LiSiGuo 20042 D)YangSan 20041 (48) 有 下 列 程 序 : struct STU { char name[10]; int num; float TotalScore; ; void f(struct STU *p) { struct STU s[2]={{"sundan",20044,550, {"Penghua",20045,537, *q=s;+ +p; + +q; *p=*q; { struct STU s[3]={{"yangsan",20041,703,{"lisiguo",20042,580; f(s); printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].totalscore); A)SunDan 20044 550 B)Penghua 20045 537 C)LiSiGuo 20042 580 D)SunDan 20041 703 (49) 下 列 程 序 的 功 能 是 进 行 位 运 算 : 二 级 C 语 言 程 序 设 计 试 卷 第 9 页 ( 共 13 页 )
{ unsigned char a,b; a=7^3; b=~4 & 3; printf("%d%d\n",a,b); A)4 3 B)7 3 C)7 0 D)4 0 (50) 有 下 列 程 序 : #include <stdio.h> { FILE *fp; int i,k,n; fp=fopen("data.dat","w+"); for(i=1;i<6;i+ +) {fprintf(fp, "%d ",i); if(i%3= =0) fprintf(fp,"\n"); rewind(fp); fscanf(fp,"%d%d",&k,&n); printf("%d%d\n",k,n); fclose(fp); A)0 0 B)123 45 C)1 4 D)1 2 二 填 空 题 ( 每 空 2 分, 共 40 分 ) (1) 数 据 管 理 技 术 发 展 过 程 经 过 人 工 管 理 文 件 系 统 和 数 据 库 系 统 3 个 阶 段, 其 中 数 据 独 立 性 最 高 的 阶 段 是 1 (2) 算 法 复 杂 度 主 要 包 括 时 间 复 杂 度 和 2 复 杂 度 (3) 在 进 行 模 块 测 试 时, 要 为 每 个 被 测 试 的 模 块 另 外 设 计 两 类 模 块 : 驱 动 模 块 和 承 接 模 块 ( 桩 模 块 ) 其 中 3 的 作 用 是 将 测 试 数 据 传 送 给 被 测 试 的 模 块, 并 显 示 被 测 试 模 块 所 产 生 的 结 果 (4) 一 棵 二 叉 树 第 六 层 ( 根 结 点 为 第 一 层 ) 的 结 点 数 最 多 为 4 个 (5) 数 据 结 构 分 为 逻 辑 结 构 和 存 储 结 构, 循 环 队 列 属 于 5 结 构 (6) 下 列 程 序 运 行 后 的 输 出 结 果 是 6 { int x=0210; printf("%x\n",x); (7) 下 列 程 序 运 行 后 的 输 出 结 果 7 { int a=1,b=2,c=3; if(c=a) printf("%d\n",c); else printf("%d\n"b); (8) 已 有 定 义 :double *p;, 请 写 出 完 整 的 语 句, 利 用 malloc 函 数 使 p 指 向 一 个 双 精 度 型 的 动 态 存 储 单 元 8 (9) 下 列 程 序 运 行 后 的 输 出 结 果 是 9 二 级 C 语 言 程 序 设 计 试 卷 第 10 页 ( 共 13 页 )
{ char c; int n=100; float f=10; double x; x=f* =n/ =(c=50); printf("%d %f\n",n,x); (10) 下 列 程 序 的 功 能 是 计 算 :s=1+12+123+1234+12345 请 填 空 { int t=0,s=0,i; for(i=1;i< =5;i+ + { t=i+ 10 ; s=s+t; printf("s=%d\n",s); (11) 已 知 字 母 A 的 ASCII 码 为 65, 下 列 程 序 运 行 后 的 输 出 结 果 是 11 { char a,b; a='a'+'5'-'3'; b=a+'6'-'2'; printf("%d %c\n",a,b); (12) 有 下 列 程 序 : int sub(int n) { return(n/10+n%10); { int x,y; scanf("%d",&x); y=sub(sub(sub(x))); printf("%d\n",y); 若 运 行 时 输 入 :1234<CR>, 程 序 的 输 出 结 果 是 12 (13) 下 列 函 数 sstrcat( ) 的 功 能 是 实 现 字 符 串 的 连 接, 即 将 t 所 指 字 符 串 复 制 到 s 所 指 字 符 串 的 尾 部 例 如 :s 所 指 字 符 串 为 abcd,t 所 指 字 符 串 为 efgh, 函 数 调 用 后 s 所 指 字 符 串 为 abcdefgh 请 填 空 #include <string.h> void sstrcat(char *s,char *t) { int n; n=strlen(s); while(*(s+n)= 13 ){s+ +,t+ +; (14) 下 列 程 序 运 行 后 的 输 出 结 果 是 14 #include <string.h> char *ss(char *s) { char *p,t; p=s+1;t=*s; while(*p){*(p-1)=*p;p+ +; *(p-1)=t; 二 级 C 语 言 程 序 设 计 试 卷 第 11 页 ( 共 13 页 )
return s; { char *p,str[10]="abcdefgh"; p=ss(str); printf("%s\n",p); (15) 下 列 程 序 运 行 后 的 输 出 结 果 是 15 int f(int a[ ],int n) { if(n> =1)return f(a,n-1)+a[n-1]; else return 0; { int aa[5]={1,2,3,4,5,s; s=f(aa,5); printf("%d\n",s); (16) 下 列 程 序 运 行 后 的 输 出 结 果 是 16 struct NODE { int num; truct NODE *next; ; { struct NODE s[3]={{1, '\0',{2, '\0',{3, '\0',*p,*q,*r; int sum=0; s[0].next=s+1; s[1].next=s+2; s[2].next=s; p=s; q=p next; r=q next; sum+ =q next num; sum+ =r next->next num; printf("%d\n",sum); (17) 下 列 程 序 的 功 能 是 输 出 如 下 形 式 的 方 阵 : 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 请 填 空 { int i,j,x; for(j=4;j 17 ;j--) { for(i=1;i<=4;i+ +) { x=(j-1)*4+ 18 ; printf("%4d",x); printf("\n"); 二 级 C 语 言 程 序 设 计 试 卷 第 12 页 ( 共 13 页 )
(18) 下 列 函 数 rotate 的 功 能 是 : 将 a 所 指 N 行 N 列 的 二 维 数 组 中 的 最 后 一 行 放 到 b 所 指 二 维 数 组 的 第 0 列 中, 把 a 所 指 二 维 数 组 中 的 第 0 行 放 到 b 所 指 二 维 数 组 的 最 后 一 列 中,b 所 指 二 维 数 组 中 其 他 数 据 不 变 #define N 4 void rotade(int a[ ][N],int b[ ][N]) { int i,j; for(i=0;i<n;i+ +) { b[i][n-1]= 19 ; 20 =a[n-1][i]; 二 级 C 语 言 程 序 设 计 试 卷 第 13 页 ( 共 13 页 )