2005 年 4 月 全 国 计 算 机 等 级 考 试 二 级 笔 试 试 卷 C 语 言 程 序 设 计 注 意 事 项 一 考 生 应 严 格 遵 守 考 场 规 则, 得 到 监 考 人 员 指 令 后 方 可 作 答 二 考 生 拿 到 试 卷 后 应 首 先 将 自 己 的 姓 名 准 考 证 号 等 内 容 涂 写 在 答 题 卡 的 相 应 位 置 上 三 选 择 题 答 案 必 须 用 铅 笔 填 涂 在 答 题 卡 的 相 应 位 置 上, 填 空 题 的 答 案 必 须 用 蓝 黑 色 钢 笔 或 圆 珠 笔 写 在 答 题 卡 的 相 应 位 置 上, 答 案 写 在 试 卷 上 无 效 四 注 意 字 迹 清 楚, 保 持 卷 面 整 洁 五 考 试 结 束 将 试 卷 和 答 题 卡 放 在 桌 上, 不 得 带 走 待 监 考 人 员 收 毕 清 点 后, 方 可 离 场
2005 年 4 月 全 国 计 算 机 等 级 考 试 笔 试 试 卷 二 级 公 共 基 础 知 识 和 C 语 言 程 序 设 计 ( 考 试 时 间 120 分 钟, 满 分 100 分 ) 一 选 择 题 ((1)-(10) 每 小 题 2 分,(11)-(50) 每 小 题 1 分, 共 60 分 ) (1) 数 据 的 存 储 结 构 是 指 ( ) A) 存 储 在 外 存 中 的 数 据 B) 数 据 所 占 的 存 储 空 间 量 C) 数 据 在 计 算 机 中 的 顺 序 存 储 方 式 D) 数 据 的 逻 辑 结 构 在 计 算 机 中 的 表 示 (2) 下 列 关 于 栈 的 描 述 中 错 误 的 是 ( ) A) 栈 是 先 进 后 出 的 线 性 表 B) 栈 只 能 顺 序 存 储 C) 栈 具 有 记 忆 作 用 D) 对 栈 的 插 入 与 删 除 操 作 中, 不 需 要 改 变 栈 底 指 针 (3) 对 于 长 度 为 n 的 线 性 表, 在 最 坏 情 况 下, 下 列 各 排 序 法 所 对 应 的 比 较 次 数 中 正 确 的 是 ( ) A) 冒 泡 排 序 n/2 B) 冒 泡 排 序 为 n C) 快 速 排 序 为 n D) 快 速 排 序 为 n(n-1)/2 (4) 对 于 长 度 为 n 的 线 性 表 进 行 顺 序 查 找, 在 最 坏 情 况 下 所 需 要 的 比 较 次 数 为 ( ) A)log2n B)n/2 C)n D)n+1 (5) 下 列 对 于 线 性 链 表 的 描 述 中 正 确 的 是 ( ) A) 存 储 空 间 不 一 定 是 连 续, 且 各 元 素 的 存 储 顺 序 是 任 意 的 B) 存 储 空 间 不 一 定 是 连 续, 且 前 件 元 素 一 定 存 储 在 后 件 元 素 的 前 面 C) 存 储 空 间 必 须 连 续, 且 前 件 元 素 一 定 存 储 在 后 件 元 素 的 前 面 D) 存 储 空 间 必 须 连 续, 且 各 元 素 的 存 储 顺 序 是 任 意 的 (6) 下 列 对 于 软 件 测 试 的 描 述 中 正 确 的 是 ( ) A) 软 件 测 试 的 目 的 是 证 明 程 序 是 否 正 确 B) 软 件 测 试 的 目 的 是 使 程 序 运 行 结 果 正 确 C) 软 件 测 试 的 目 的 是 尽 可 能 多 地 发 现 程 序 中 的 错 误 D) 软 件 测 试 的 目 的 是 使 程 序 符 合 结 构 化 原 则 (7) 为 了 使 模 块 尽 可 能 独 立, 要 求 ( ) A) 模 块 的 内 聚 程 度 要 尽 量 高, 且 各 模 块 间 的 耦 合 程 度 要 尽 量 强 B) 模 块 的 内 聚 程 度 要 尽 量 高, 且 各 模 块 间 的 耦 合 程 度 要 尽 量 弱 C) 模 块 的 内 聚 程 度 要 尽 量 低, 且 各 模 块 间 的 耦 合 程 度 要 尽 量 弱 二 级 C 语 言 程 序 设 计 试 卷 第 1 页 ( 共 13 页 )
D) 模 块 的 内 聚 程 度 要 尽 量 低, 且 各 模 块 间 的 耦 合 程 度 要 尽 量 强 (8) 下 列 描 述 中 正 确 的 是 ( ) A) 程 序 就 是 软 件 B) 软 件 开 发 不 受 计 算 机 系 统 的 限 制 C) 软 件 既 是 逻 辑 实 体, 又 是 物 理 实 体 D) 软 件 是 程 序 数 据 与 相 关 文 档 的 集 合 (9) 数 据 独 立 性 是 数 据 库 技 术 的 重 要 特 点 之 一 所 谓 数 据 独 立 性 是 指 ( ) A) 数 据 与 程 序 独 立 存 放 B) 不 同 的 数 据 被 存 放 在 不 同 的 文 件 中 C) 不 同 的 数 据 只 能 被 对 应 的 应 用 程 序 所 使 用 D) 以 上 三 种 说 法 都 不 对 (10) 用 树 形 结 构 表 示 实 体 之 间 联 系 的 模 型 是 ( ) A) 关 系 模 型 B) 网 状 模 型 C) 层 次 模 型 D) 以 上 三 个 都 是 (11) 算 法 具 有 5 个 特 性, 下 列 选 项 中 不 属 于 算 法 特 性 的 是 ( ) A) 有 穷 性 B) 简 洁 性 C) 可 行 性 D) 确 定 性 (12) 下 列 选 项 中 可 作 为 C 语 言 合 法 常 量 的 是 ( ) A)-80 B)-080 C)-8e1.0 D)-80.0e (13) 下 列 叙 述 中 正 确 的 是 ( ) A) 用 C 程 序 实 现 的 算 法 必 须 要 有 输 入 和 输 出 操 作 B) 用 C 程 序 实 现 的 算 法 可 以 没 有 输 出 但 必 须 要 有 输 入 C) 用 C 程 序 实 现 的 算 法 可 以 没 有 输 入 但 必 须 要 有 输 出 D) 用 C 程 序 实 现 的 算 法 可 以 既 没 有 输 入 也 没 有 输 出 (14) 下 列 不 能 定 义 的 用 户 标 识 符 是 ( ) A)Main B)_0 C)_int D)sizeof (15) 下 列 选 项 中, 不 能 作 为 合 法 常 量 的 是 ( ) A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0 (16) 数 字 字 符 0 的 ASCII 值 为 48, 运 行 下 列 程 序 的 输 出 结 果 是 ( ) { char a='1',b='2'; printf("%c,", b+ +); 二 级 C 语 言 程 序 设 计 试 卷 第 2 页 ( 共 13 页 )
printf("%d\n", b-a) A)3,2 C)2,2 B)50,2 D)2,50 (17) 下 列 程 序 的 输 出 结 果 是 ( ) { int m=12, n=34; printf("%d%d", m+ +,+ +n); printf("%d%d\n",n+ +,+ +m); A)12353514 B)12353513 C)12343514 D)12343513 (18) 有 定 义 语 句 :int b; char c[10];, 则 正 确 的 输 入 语 句 是 ( ) A)scanf("%d%s",&b,&c); B)scanf("%d%s",&b,c); C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c); (19) 有 下 列 程 序 : { int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); 若 想 从 键 盘 上 输 入 数 据, 使 变 量 m 中 的 值 为 123,n 中 的 值 为 456,p 中 的 值 为 789, 则 正 确 的 输 入 是 ( ) A)m=123 n=456 p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 (20) 下 列 程 序 的 输 出 结 果 是 ( ) { int a,b,d=25; a= d/10%9; b=a&&(-1); printf("%d,%d\n",a,b); A)6,1 C)6,0 B)2,1 D)2,0 (21) 下 列 程 序 的 输 出 结 果 是 ( ) { int i=1,j=2,k=3; if(i+ + = =1&&(+ +j= =3 k+ + = =3)) printf("%d %d %d\n",i,j,k); A)1 2 3 B)2 3 4 二 级 C 语 言 程 序 设 计 试 卷 第 3 页 ( 共 13 页 )
C)2 2 3 D)2 3 3 (22) 若 整 型 变 量 a b c d 中 的 值 依 次 为 :1 4 3 2 则 条 件 表 达 式 a<b? a c<d? c d 的 值 是 ( ) A)1 B)2 C)3 D)4 (23) 下 列 程 序 的 输 出 结 果 是 ( ) { int p[8]={11,12,13,14,15,16,17,18,i=0,j=0; while(i+ +<7) if(p[i]%2) j+ =p[i]; printf("%d\n",j); A)42 B)45 C)56 D)60 (24) 下 列 程 序 的 输 出 结 果 是 ( ) { char a[7]="a0\0a0\ 0"; int i,j; i=sizeof(a); j=strlen(a); printf("%d %d\n",i,j); A)2 2 B)7 6 C)7 2 D)6 2 (25) 下 列 能 正 确 定 义 一 维 数 组 的 选 项 是 ( ) A)int a[5]={0,1,2,3,4,5; B)char a[ ]={0,1,2,3,4,5; C)char a={'a', 'B', 'C'; D)int a[5]="0123"; (26) 下 列 程 序 的 输 出 结 果 是 ( ) int f1(int x,int y){return x>y?x y; int f2(int x,int y){return x>y?y x; { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf("%d,%d,%d\n",e,f,g); A)4,3,7 C)5,2,7 B)3,4,7 D)2,5,7 (27) 已 有 定 义 :char a[ ]="xyz",b[ ]={'x', 'y', 'z';, 下 列 叙 述 中 正 确 的 是 ( ) 二 级 C 语 言 程 序 设 计 试 卷 第 4 页 ( 共 13 页 )
A) 数 组 a 和 b 的 长 度 相 同 B)a 数 组 长 度 小 于 b 数 组 长 度 C)a 数 组 长 度 大 于 b 数 组 长 度 D) 上 述 说 法 都 不 对 (28) 下 列 程 序 的 输 出 结 果 是 ( ) void f(int *x, int *y) { int t; t=*x,*x=*y;*y=t; { int a[8]={1,2,3,4,5,6,7,8,i,*p,*q; p=a;q=&a[7]; while(p<q) { f(p,q); p+ +; q--; for (i=0;i<8;i+) printf("%d,",a[i]); A)8,2,3,4,5,6,7,1 C)1,2,3,4,5,6,7,8 B)5,6,7,8,1,2,3,4 D)8,7,6,5,4,3,2,1 (29) 下 列 程 序 的 输 出 结 果 是 ( ) { int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i+ +) p[i]=i; for(i=0;i<3;i+ +) printf("%d",a[1][i]); A)0 1 2 B)1 2 3 C)2 3 4 D)3 4 5 (30) 下 列 叙 述 中 错 误 的 是 ( ) A) 对 于 double 类 型 数 组, 不 可 以 直 接 用 数 组 名 对 数 组 进 行 整 体 输 入 或 输 出 B) 数 组 名 代 表 的 是 数 组 所 占 存 储 区 的 首 地 址, 其 值 不 可 改 变 C) 在 程 序 执 行 中, 数 组 元 素 的 下 标 超 出 所 定 义 的 下 标 范 围 时, 系 统 将 给 出 下 标 越 界 的 出 错 信 息 D) 可 以 通 过 赋 初 值 的 方 式 确 定 数 组 元 素 的 个 数 (31) 下 列 程 序 的 输 出 结 果 是 ( ) #define N 20 fun(int a[ ],int n,int m) { int i,j; for(i=m;i>n;i--)a[i+1]=a[i] { int i,a[n]={1,2,3,4,5,6,7,8,9,10; fun(a,2,9); for(i=0;i<5;i+ +) printf("%d",a[i]); 二 级 C 语 言 程 序 设 计 试 卷 第 5 页 ( 共 13 页 )
A)10234 B)12344 C)12334 D)12234 (32) 运 行 下 列 程 序 时, 输 入 1 2 3<CR> 的 输 出 结 果 为 ( ) { int a[3][2]={0,(*ptr)[2],i,j; for(i=0;i<2;i+ +) { ptr=a+i; scanf("%d",ptr); ptr+ +; for(i=0;i<3;i+ +) { for(j=0;j<2;j+ +) printf("%2d",a[i][j]); printf("\n"); A) 产 生 错 误 信 息 B)1 0 2 0 0 0 C)1 2 D)1 0 3 0 2 0 0 0 3 0 (33) 下 列 程 序 的 输 出 结 果 是 ( ) prt(int *m,int n) { int i; for(i=0;i<n;i+ +)m[i]+ +; { int a[ ]={1,2,3,4,5,i; prt(a,5) for(i=0;i<5;i+ +) printf("%d,",a[i]); A)1,2,3,4,5 B)2,3,4,5,6 C)3,4,5,6,7 D)2,3,4,5,1 (34) 下 列 程 序 的 输 出 结 果 是 ( ) { int a[ ]={1,2,3,4,5,6,7,8,9,0,*p; for(p=a;p<a+10;p+ +) printf("%d,",*p); A)1,2,3,4,5,6,7,8,9,0, C)0,1,2,3,4,5,6,7,8,9, B)2,3,4,5,6,7,8,9,10,1, D)1,1,1,1,1,1,1,1,1,1, (35) 下 列 程 序 的 输 出 结 果 是 ( ) 二 级 C 语 言 程 序 设 计 试 卷 第 6 页 ( 共 13 页 )
#define P 3 void F(int x){ return(p*x*x); { printf("%d\n",f(3+5)); A)192 B)29 C)25 D) 编 译 出 错 (36) 下 列 程 序 的 输 出 结 果 是 ( ) { int c=35; printf("%d\n",c&c); A)0 B)70 C)35 D)1 (37) 下 列 叙 述 中 正 确 的 是 ( ) A) 预 处 理 命 令 行 必 须 位 于 源 文 件 的 开 头 B) 在 源 文 件 的 一 行 上 可 以 有 多 条 预 处 理 命 令 C) 宏 名 必 须 用 大 写 字 母 表 示 D) 宏 替 换 不 占 用 程 序 的 运 行 时 间 (38) 若 有 下 列 说 明 和 定 义 union dt { int a; char b; double c;data; 下 列 叙 述 中 错 误 的 是 ( ) A)data 的 每 个 成 员 起 始 地 址 都 相 同 B) 变 量 data 所 占 内 存 字 节 数 与 成 员 c 所 占 字 节 数 相 等 C) 程 序 段 :data.a=5;printf("%f\n",data.c); 输 出 结 果 为 5.000000 D)data 可 以 作 为 函 数 的 实 参 (39) 下 列 语 句 或 语 句 组 中, 能 正 确 进 行 字 符 串 赋 值 的 是 ( ) A)char *sp; *sp="right!"; B)char s[10]; s="right!"; C)char s[10]; *s="right"; D)char *sp="right!"; (40) 设 有 如 下 说 明 : typedef struct ST { long a; int b; char c[2]; NEW; 则 下 列 叙 述 中 正 确 的 是 ( ) A) 以 上 的 说 明 形 式 非 法 B)ST 是 一 个 结 构 体 类 型 C)NEW 是 一 个 结 构 体 类 型 名 D)NEW 是 一 个 结 构 体 变 量 (41) 下 列 程 序 的 输 出 结 果 是 ( ) { int a=1,b; for(b=1;b<=10;b+ +) { if(a>=8) break; 二 级 C 语 言 程 序 设 计 试 卷 第 7 页 ( 共 13 页 )
if(a%2= =1) {a+ =5; continue; a=3; printf("%d\n",b); A)3 B)4 C)5 D)6 (42) 下 列 程 序 的 输 出 结 果 是 ( ) { char s[ ]="159",*p; p=s; printf("%c",*p+ +); printf("%c",*p+ +); A)15 B)16 C)12 D)59 (43) 有 下 列 函 数 : fun(char *a,char *b) { while(*a! ='\0')&&(*b! = '\0')&&(*a= =*b) { a+ +; b+ +; return(*a-*b); 该 函 数 的 功 能 是 ( ) A) 计 算 a 和 b 所 指 字 符 串 的 长 度 之 差 B) 将 b 所 指 字 符 串 复 制 到 a 所 指 字 符 串 中 C) 将 b 所 指 字 符 串 连 接 到 a 所 指 字 符 串 后 面 D) 比 较 a 和 b 所 指 字 符 串 的 大 小 (44) 有 下 列 程 序 : { int num[4][4]={{1,2,3,4,{5,6,7,8,{9,10,11,12,{13,14,15,16,i,j; for(i=0;i<4;i+ +) { for(j=0;j<i;j+ +) printf("%4c",' '); for(j= ;j<4;j+ +) printf("%4d",num[i][j]); printf("\n"); 若 要 按 下 列 形 式 输 出 数 组 右 上 半 三 角 1 2 3 4 二 级 C 语 言 程 序 设 计 试 卷 第 8 页 ( 共 13 页 )
6 7 8 11 12 16 则 在 程 序 下 划 线 处 应 填 入 的 是 ( ) A)i-1 B)i C)i+1 D)4-i (45) 下 列 程 序 的 输 出 结 果 是 ( ) point(char*p){ p+ =3; { char b[4]={'a','b','c','d',*p=b; point(p); printf("%c\n",*p); A)a C)c B)b D)d (46) 程 序 中 若 有 下 列 说 明 和 定 义 语 句 : char fun(char *); { char *s="one",a[5]={0,(*f1)( )=fun,ch; 下 列 选 项 中 对 fun() 函 数 的 正 确 调 用 语 句 是 ( ) A)(*fl)(a); B)*fl(*s); C)fun(&a); D)ch=*fl(s); (47) 有 下 列 结 构 体 说 明 和 变 量 定 义, 如 图 所 示, 指 针 p q r 分 别 指 向 此 链 表 中 的 三 个 连 续 结 点 struct node { int data; struct node *next; *p,*q,*r; 现 要 将 q 所 指 结 点 从 链 表 中 删 除, 同 时 要 保 持 链 表 的 连 续, 下 列 不 能 完 成 指 定 操 作 的 语 句 是 ( ) A)p->next=q->next; B)p-next=p->next->next; C)p->next=r; D)p=q->enxt; (48) 下 列 对 结 构 体 类 型 变 量 td 的 定 义 中, 错 误 的 是 ( ) A)typedef struct aa B)struct aa { int n; { int n; 二 级 C 语 言 程 序 设 计 试 卷 第 9 页 ( 共 13 页 )
float m; float m; AA; td; AA td; struct aa td; C)struct D)struct { int n; { int n; float m; float m; aa; td; struct aa td; (49) 下 列 与 函 数 fseek(fp,0l,seek_set) 有 相 同 作 用 的 是 ( ) A)feof(fp) B)ftell(fp) C)fgetc(fp) D)rewind(fp) (50) 有 下 列 程 序 : #include <stdio.h> void WriteStr(char *fn,char *str) { FILE *fp; fp=fopen(fn,"w"); fputs(str,fp); fclose(fp); { WriteStr("t1.dat","start"); WriteStr("t1.dat","end"); 程 序 运 行 后, 文 件 t1.dat 中 的 内 容 是 ( ) A)start B)end C)startend D)endrt 二 填 空 题 ( 每 空 2 分, 共 40 分 ) (1) 某 二 叉 树 中 度 为 2 的 结 点 有 18 个, 则 该 二 叉 树 中 有 1 个 叶 子 结 点 (2) 在 面 向 对 象 方 法 中, 类 的 实 例 称 为 2 (3) 诊 断 和 改 正 程 序 中 错 误 的 工 作 通 常 称 为 3 (4) 在 关 系 数 据 库 中, 把 数 据 表 示 成 二 维 表, 每 一 个 二 维 表 称 为 4 (5) 问 题 处 理 方 案 正 确 而 完 整 的 描 述 称 为 5 (6) 下 列 程 序 运 行 时 若 从 键 盘 输 入 :10 20 30<CR> 输 出 结 果 是 6 #include <stdio.h> { int i=0, j=0, k=0; scanf("%d%*d%d",&i,&j,&k); printf("%d%d%d\n",i,j,k); 二 级 C 语 言 程 序 设 计 试 卷 第 10 页 ( 共 13 页 )
(7) 下 列 程 序 运 行 后 的 输 出 结 果 是 7 #define S(x) 4*x*x+1 { int i=6, j=8; printf("%d\n",s(i+j)); (8) 下 列 程 序 运 行 后 的 输 出 结 果 是 8 { int a=3,b=4,c=5,t=99; if(b<a&&a<c)t=a;a=c;c=t; if(a<c&&b<c)t=b,b=a,a=t; printf("%d%d%d\n",a,b,c); (9) 下 列 程 序 运 行 后 的 输 出 结 果 是 9 { int a, b,c; a=10; b=20; c=(a%b<1) (a/b>1); printf("%d %d %d\n",a,b,c); (10) 下 列 程 序 运 行 后 的 输 出 结 果 是 10 { char c1,c2; for(c1='0',c2='9';c1<c2;c1+ +,c2--) printf("%c%c",c1,c2); printf("\n"); (11) 已 知 字 符 A 的 ASCII 代 码 值 为 65, 下 列 程 序 运 行 时 若 从 键 盘 输 入 :B33<CR> 则 输 出 结 果 是 11 #include <stdio.h> { char a,b; a=getchar( );scanf("%d", &b); a=a-'a'+'0'; b=b*2; printf("%c %c\n",a,b); (12) 下 列 程 序 中,fun() 函 数 的 功 能 是 求 3 行 4 列 二 维 数 组 每 行 元 素 中 的 最 大 值 请 填 空 void fun(int, int, int(*)[4],int*); { int a[3][4]={{12,41,36,28,{19,33,15,27,{3,27,19,1,b[3],i; fun(3,4,a,b); for(i=0;i<3;i+)printf("%4d",b[i]); 二 级 C 语 言 程 序 设 计 试 卷 第 11 页 ( 共 13 页 )
printf("\n"); void fun(int m, int n, int ar[ ][4], int *br) { int i, j, x; for(i=0;i<m;i+ +) { x=ar[i][0]; for(j=0;j<n;j+ +) if(x<ar[i][j]) x=ar[i][j]; 12 =x; (13) 下 列 程 序 运 行 后 的 输 出 结 果 是 13 void swap(int x,int y) { int t; t=x;x=y;y=t;printf("%d %d ",x,y); { int a=3,b=4; swap(a,b); printf("%d %d\n",a,b); (14) 下 列 程 序 运 行 后 的 结 果 是 14 #include <string.h> void fun(char *s, int p, int k) { int i; for(i=p;i<k-1;i+ +) s[i]=s[i+2]; { char s[ ]="abcdefg"; fun(s,3,strlen(s)); puts(s); (15) 下 列 程 序 运 行 后 的 输 出 结 果 是 15 #include <string.h> { char ch[ ]="abc",x[3][4]; int i; for(i=0;i<3;i+ +) strcpy(x[i],ch); for(i=0;i<3;i+ +) printf("%s",&x[i][i]); printf("\n"); (16) 下 列 程 序 运 行 后 的 输 出 结 果 是 16 fun(int a) { int b=0; static int c=3; b+ +; c+ +; return(a+b+c); 二 级 C 语 言 程 序 设 计 试 卷 第 12 页 ( 共 13 页 )
{ int i, a=5; for(i=0;i<3;i+ +)printf("%d%d",i,fun(a)); printf("\n"); (17) 下 列 程 序 运 行 后 的 输 出 结 果 是 17 stuct NODE { int k; struct NODE *link;; { struct NODE m[5],*p=m,*q=m+4; int i=0; while(p! =q) { p->k=+ +i; p+ +; q->k=i+ +; q--; q->k=i; for(i=0;i<5;i+ +) printf("%d",m[i].k); printf("\n"); (18) 下 列 程 序 中 huiwen() 函 数 的 功 能 是 检 查 一 个 字 符 串 是 否 是 回 文, 当 字 符 串 是 回 文 时, 函 数 返 回 字 符 串 :yes!, 否 则 函 数 返 回 字 符 串 :no!, 并 在 主 函 数 中 输 出 所 谓 回 文 即 正 向 与 反 向 的 拼 写 都 一 样, 例 如 :adgda 请 填 空 #include <string.h> char*huiwen(char *str) { char *p1,*p2; int i,t=0; p1=str; p2= 18 ; for(i=0);i<=strlen(str)/2;i+ +) if(*p1+ +! =*p2--){t=1;break; if( 19 ) return("yes!"); else return("no!"); { char str[50]; printf("input:"); scanf("%s",str); printf("%s\n", 20 ); 二 级 C 语 言 程 序 设 计 试 卷 第 13 页 ( 共 13 页 )
2005 年 4 月 笔 试 试 卷 参 考 答 案 一 选 择 题 (1)D) (2)B) (3)D) (4)C) (5)A) (6)C) (7)B) (8)D) (9)D) (10)C) (11)B) (12)A) (13)C) (14)D) (15)B) (16)C) (17)A) (18)B) (19)A) (20)B) (21)D) (22)A) (23)B) (24)C) (25)B) (26)A) (27)A) (28)D) (29)D) (30)C) (31)B) (32)B) (33)B) (34)A) (35)D) (36)C) (37)D) (38)D) (39)D) (40)C) (41)B) (42)A) (43)D) (44)B) (45)A) (46)A) (47)D) (48)C) (49)D) (50)B) 二 填 空 题 (1) 1 19 (2) 2 对 象 (3) 3 程 序 调 试 (4) 4 关 系 (5) 5 算 法 (6) 6 10300 (7) 7 81 (8) 8 435 (9) 9 10201 (10) 10 0918273645 (11) 11 1B (12) 12 br[i] (13) 13 4 3 3 4 (14) 14 abcfg (15) 15 abcbcc (16) 16 010111212 (17) 17 13431 (18) 18 str+strlen(str)-1 19 i>strlen(str)/2 20 huiwen(str) 全 国 计 算 机 等 级 考 试 二 级 C 语 言 视 频 教 程 ( 2011 版 ):http://v.educity.cn/chapters.asp?csid=88