计 算 机 二 级 常 见 考 点 例 题 讲 解 简 要 说 明 : 题 号 200609112 表 示 2006 年 09 月 份 考 试 题,112 表 示 第 一 题 的 第 12 道 题, 若 为 第 2 题 的 第 5 题 表 示 成 205, 彩 色 的 选 支 表 示 正 确 答 案 ( 一 )C 程 序 的 结 构 本 章 常 见 考 点 主 要 有 2 个 :(1)C 程 序 的 构 成, 函 数 和 其 他 函 数 ;(2) 文 件 的 命 名 规 则 (1)C 程 序 的 构 成 ( 函 数 和 其 他 函 数 ) 本 知 识 点 主 要 考 察 对 于 main 函 数 的 理 解, 只 要 能 够 理 解 main 函 数 的 原 理 则 很 容 易 解 答 有 关 的 题 目 例 题 200609112(1): 下 列 叙 述 中 错 误 的 是 A) 一 个 C 语 言 程 序 只 能 实 现 一 种 算 法 B)C 程 序 可 以 由 多 个 程 序 文 件 组 成 C)C 程 序 可 以 由 一 个 或 多 个 函 数 组 成 D) 一 个 C 函 数 可 以 单 独 作 为 一 个 C 程 序 文 件 存 在 例 题 201003111(2): 以 下 叙 述 正 确 的 是 A)C 语 言 程 序 是 由 过 程 和 函 数 组 成 的 B)C 语 言 函 数 可 以 嵌 套 调 用, 例 如 :fun(fun(x)) C)C 语 言 函 数 不 可 以 单 独 编 译 D)C 语 言 中 除 了 main 函 数, 其 他 函 数 不 可 作 为 单 独 文 件 形 式 存 在 (2) 文 件 的 命 名 规 则 该 知 识 点 是 一 个 非 常 易 考 的 知 识 点, 需 要 完 全 掌 握 命 名 规 则 的 定
义, 才 能 容 易 做 出 正 确 的 选 择 例 题 200909112(3): 以 下 选 项 中 能 用 作 用 户 标 识 符 的 是 A)void B)8_8 C)_0_ D)unsigned 分 析 : 选 项 AD 是 关 键 字, 选 项 B 以 数 字 开 头, 标 识 符 不 能 以 数 字 开 头 例 题 201003113 (4): 以 下 C 语 言 用 户 标 识 符 中, 不 合 法 的 是 A)_1 B)AaBc C)a_b D)a b 分 析 : 标 识 符 不 能 用 - 只 能 用 下 划 线, 所 以 正 确 选 择 为 D ( 二 ) 数 据 类 型 运 算 符 和 表 达 式 本 章 考 察 的 主 要 知 识 点 包 括 :(1) 数 据 类 型 的 判 断 ;(2)C 语 言 的 表 达 式 ;(3) 赋 值 运 算 符 ;(4) 条 件 表 达 式 等 (1) 数 据 类 型 的 判 断 本 知 识 点 考 察 学 生 对 于 整 数 和 实 型 常 量 的 表 示 方 法 的 理 解 和 应 用 例 题 200903113(5): 以 下 选 项 中, 能 用 作 数 据 常 量 的 是 A)o115 B)0118 C)1.5e1.5 D)115L 分 析 :A 中 用 0 不 是 o,b 中 8 进 制 不 能 出 现 8,C 中 的 e 后 面 必 须 是 整 数, 所 以 正 确 选 择 为 D 例 题 200709113(6): 以 下 选 项 中, 合 法 的 一 组 C 语 言 数 值 常 量 是 A)028 B)12. C).177 D)0x8A
.5e-3 OXa23 4e1.5 10,000-0xf 4.5e0 Oabc 3.e5 分 析 : 只 有 B 是 正 确 的,ACD 错 误 和 上 题 类 似 (2)C 语 言 的 表 达 式 关 于 表 达 式 的 考 点, 需 要 注 意 区 分 C 语 言 中 的 表 达 式 和 数 学 中 的 表 达 式 之 间 的 差 别, 理 解 两 者 之 间 的 表 示 方 法 就 容 易 做 出 正 确 的 答 案 例 如, 在 数 学 中 6/9=0.66666666, 而 在 C 语 言 中 6/9=0, 这 个 是 一 定 要 注 意 的 问 题 通 过 下 面 2 个 练 习, 要 仔 细 体 会 这 个 特 点 例 题 200909114(7): 表 达 式 :(int)((double)9/2)-(9)%2 的 值 是 A)0 B)3 C)4 D)5 例 题 200909115(8): 若 有 定 义 语 句 :int x=10;, 则 表 达 式 x-=x+x 的 值 为 A)-20 B)-10 C)0 D)10 (3) 赋 值 运 算 符 赋 值 运 算 符 是 是 C 语 言 中 比 较 常 用 的 一 个 运 算 符, 也 是 等 级 考 试 中 常 考 的 知 识 点 这 里 注 意 三 个 问 题 : 一 是 赋 值 运 算 符 左 边 必 须 是 变 量 ; 二 是 注 意 赋 值 运 算 的 简 化 写 法 ; 三 是 注 意 和 == 的 区 别 例 题 200709117(9): 若 变 量 均 已 正 确 定 义 并 赋 值, 以 下 合 法 的 C 语 言 赋 值 语 句 是 A)x=y==5; C)x+n=i; B)x=n%2.5; D)x=5=4+1;
分 析 : 选 项 A 为 正 确, 相 当 于 先 判 断 y==5, 然 后 赋 值 CD 的 问 题 一 样, 赋 值 运 算 符 左 边 不 能 是 表 达 式, 要 求 是 变 量, 选 项 B 是 一 个 频 繁 考 察 的 问 题, 既 % 是 C 语 言 唯 一 一 个 要 求 参 与 运 算 目 必 须 是 整 形 的 运 算 符, 对 于 该 问 题 的 解 决, 需 要 对 C 语 言 的 特 点 必 须 清 楚, 比 如 运 算 符 * 和 c 语 言 中 = 的 4 种 用 法,% 和 优 先 级 的 问 题 等 等 例 题 201009116(10): 表 达 式 a+=a-=a=9 的 值 是 A)9 B)-9 C)18 D)0( 从 右 往 左 ) 分 析 : 这 个 相 当 于 是 一 个 连 续 用 到 运 算 符 的 问 题, 由 于 运 算 符 的 这 个 特 点, 这 个 题 目 只 有 这 样 的 一 种 形 式, 掌 握 就 可 以 了 (4) 条 件 表 达 式 例 题 200909119(11): 以 下 程 序 段 中, 与 语 句 :k=a>b?(b>c?1:0):0; 功 能 相 同 的 是 A)if((a>b)&&(b>c)) k=1; else k=0; B)if((a> b) (b>c) k=1; else k=0; C)if(a<= b) k=0; else if(b<=c) k=1; D)if(a> b) k=1; else if(b>c) k=1; else k=0; 分 析 : 本 问 题 的 正 确 选 择 为 A 这 是 由?: 运 算 的 顺 序 确 定 的,
这 里 还 考 察 了 if 用 法 的 掌 握 ( 三 ) 程 序 设 计 初 步 本 章 考 察 的 主 要 知 识 点 包 括 :(1) 数 据 的 输 入 输 出 ;(2) 选 择 结 构 与 选 择 语 句 的 用 法 ;(3) 循 环 结 构 与 循 环 语 句 的 用 法 (1)scanf 语 句 这 是 一 个 常 见 易 考 的 知 识 点, 需 要 注 意 2 个 内 容 : 一 是 形 式 相 符, 二 是 后 面 变 量 要 有 地 址 等 级 考 试 的 c 语 言 调 试 环 境 改 成 vc 后, 不 加 地 址 符 会 出 现 运 行 错 误 例 题 200903116(12): 若 有 定 义 语 句 :double x, y,*px,*py; 执 行 了 px=&x; py=&y; 之 后, 正 确 的 输 入 语 句 是 A)scanf( %f%f,x,y); B)scanf( %f%f,&x,&y); C)scanf( %lf%le,px,py); D)scanf( %lf%lf,x,y); 分 析 : 由 于 scanf 函 数 格 式 规 定, 必 须 为 地 址 变 量, 正 确 选 项 为 C (2)printf 语 句 考 察 的 重 点 是 与 输 出 格 式 字 形 式 相 符 的 输 出, 只 要 正 确 的 读 出 程 序 内 容 就 很 容 易 得 出 结 果 例 题 200903115(13): 程 序 段 :int x=12; double y=3.141593; printf( %d%8.6f, x, y); 的 输 出 结 果 是 A)123.141593 B)12 3.141593 C)12, 3.141593 D)123.1415930 分 析 : 考 察 的 是 输 出 语 句 的 输 出 形 式, 正 确 选 项 为 A 例 题 200909116(14): 有 以 下 程 序
#include <stdio.h> { int a=1,b=0; printf( %d,,b=a+b); printf( %d\n,a=2*b); 程 序 运 行 后 的 输 出 结 果 是 A)0,0 B)1,0 C)3,2 D)1,2 分 析 : 考 察 的 是 输 出 语 句 的 输 出 形 式, 正 确 选 项 为 D (3) 选 择 结 构 程 序 设 计 if 语 句 和 switch 这 是 非 常 主 要 的 知 识 点, 可 以 说 无 处 不 在, 因 为 是 C 的 基 础, 必 须 掌 握, 要 求 能 读 懂, 会 用, 牢 牢 掌 握 if 灵 活 容 易 理 解,switch 虽 然 不 易 理 解, 但 形 势 单 一, 记 住 一 个 例 子 很 容 易 掌 握 例 题 201003118(15): 以 下 选 项 中 与 if(a==1)a=b; else a++; 语 句 功 能 不 同 的 switch 语 句 是 A)switch(a) {case:a=b;break; default:a++; B)switch(a==1) {case 0:a=b;break; case 1:a++;
C)switch(a) {default:a++;break; case 1:a=b; D)switch(a==1) {case 1:a=b;break; case 0:a++; 分 析 : 只 有 选 项 B 和 题 中 所 考 核 的 意 义 一 致 基 于 以 下 几 点 : 一 是 switch 的 执 行 过 程, 二 是 分 清 哪 个 是 常 量 表 达 式, 哪 个 是 变 量 表 达 式, 三 是 注 意 break 的 用 法 例 题 201009118 (16): 有 以 下 程 序 #include<stdio.h> {int a=1,b=0; if(!a) b++; else if(a==0)if(a)b+=2; else b+=3; printf( %d\n,b); 程 序 运 行 后 的 输 出 结 果 是
A)0 B)1 C)2 D)3 分 析 : 本 题 考 察 if 语 句 的 用 法, 注 意 if 的 配 对 问 题, 根 据 if 关 系 选 择 A 例 题 201009119(17): 若 有 定 义 语 句 int a, b;double x; 则 下 列 选 项 中 没 有 错 误 的 是 A)switch(x%2) {case 0: a++; break; case 1: b++; break; default : a++; b++; B)switch((int)x/2.0 {case 0: a++; break; case 1: b++; break; default : a++; b++; C)switch((int)x%2) {case 0: a++; break; case 1: b++; break; default : a++; b++; D)switch((int)(x)%2) {case 0.0: a++; break; case 1.0: b++; break; default : a++; b++; 分 析 : 本 题 要 求 掌 握 case 语 句 的 用 法,AB 中 switch 后 面 表 达 式 要 求 整 型,D 中 case 后 要 求 整 形 常 量, 所 以 选 择 C (4) 循 环 结 构 程 序 设 计 while do-while 和 for 语 句 循 环 是 C 语 言 中 最 重 要 的 知 识 点, 也 是 常 考 必 考 的 内 容 大
多 数 阅 读 程 序 都 要 使 用 这 个 知 识 点, 需 要 注 意 循 环 执 行 过 程 以 及 语 句 的 分 类 形 式 例 题 201003120 (18): 有 以 下 程 序 #include "stdio.h" {int i,j,m=1; for(i=1;i<3;i++) {for(j=3;j>0;j--) {if((i*j)>3)break; m=i*j; printf("m=%d\n",m); 程 序 运 行 后 的 输 出 结 果 是 A)m=1 B)m=2 C)m=4 D)m=5 分 析 : 本 题 考 察 的 是 for 循 环 的 用 法, 这 里 是 二 重 循 环 注 意 j 循 环 是 递 减 的, 由 于 出 现 break, 是 赋 值 语 句, 只 是 最 后 一 次 赋 值 有 效 果, 所 以 答 案 是 A 例 题 201003121 (19): 有 以 下 程 序 #include<(stdio.h> {int a=l;b=2; for(;a<8;a++) {b+=a;a+=2; printf("%d,%d\n",a,b); 程 序 运 行 后 的 输 出 结 果 是 A)9,18 B)8,11
C)7,11 D)10,14 分 析 : 对 于 上 面 的 程 序 要 仔 细 研 读, 实 践 是 检 验 真 理 的 唯 一 标 准, 对 于 这 样 的 阅 读 程 序 问 题, 答 案 的 唯 一 标 准 是 机 器 的 运 行 的 结 果 根 据 for 的 执 行 过 程, 循 环 控 制 变 量 有 2 个 地 方 进 行 了 改 变, 因 此 循 环 并 不 是 执 行 了 7 次, 所 以 答 案 应 该 选 择 D 例 题 201009120 (20): 有 以 下 程 序 #include <stdio.h> {int a=1,b=2; while(a<6){b+=a;a+=2;b%=10; printf( %d,%d\n,a,b); 程 序 运 行 后 的 输 出 结 果 是 A)5,11 B)7,1 C)7,11 D)6,1 分 析 : 本 题 要 求 掌 握 while 语 句 的 用 法, 由 于 循 环 控 制 变 量 在 循 环 体 中 改 变, 故 循 环 了 3 次, 最 后 选 择 C 例 题 201009121 (21): 有 以 下 程 序 #include<stdio.h>
{int y=10; while(y--); printf( Y=%d\n,Y); 程 序 执 行 后 的 输 出 结 果 是 A)y=0 B)y= -1 C)y=1 D)while 构 成 无 限 循 环 分 析 : 本 题 要 求 掌 握 while 语 句 的 用 法, 这 里 要 注 意 的 是 while 语 句 的 循 环 体 实 际 上 是 一 个 空 语 句, 所 以 最 后 选 择 B ( 四 ) 数 组 本 章 考 察 的 主 要 知 识 点 包 括 :(1) 数 组 的 含 义 与 存 储 特 点 ;(2) 字 符 串 与 字 符 数 组 以 及 常 用 的 字 符 串 处 理 函 数 (1) 数 组 的 含 义 和 存 储 特 点 该 考 点 是 必 考 内 容, 需 要 从 基 本 概 念 入 手, 数 组 同 种 类 型 数 据 的 集 合, 其 定 义 方 式 和 访 问 方 式 都 必 须 掌 握 例 题 200709129(22): 设 有 定 义 :char p[]={ 1, 2, 3,*q=p;, 以 下 不 能 计 算 出 一 个 char 型 数 据 所 占 字 节 数 的 表 达 式 是 A)sizeof(p) B)sizeof(char) C) sizeof(*q) D)sizeof(p[0])
分 析 : 只 有 选 项 A 能 够 正 确 表 示 数 组 大 小, 其 它 选 项 BCD 表 达 的 是 变 量 的 大 小 例 题 201003125(23): 下 列 选 项 中, 能 正 确 定 义 数 组 的 语 句 是 A)int num[0..2008] ; B)int num[]; C)int N=2008; D)#define N 2008 int num[n]; int num[n]; 分 析 : 数 组 的 大 小 要 求 定 义 时 必 须 确 定, 所 以 只 有 选 择 D, 但 要 注 意, 在 C 语 言 中 第 一 数 组 初 始 化 时 二 维 数 组 一 维 下 标 可 以 省 略, 但 维 数 还 是 确 定 的, 二 是 在 把 数 组 作 为 函 数 形 参 时 可 以 不 定 义 数 组 的 大 小 (2) 字 符 串 与 字 符 数 组 以 及 常 用 的 字 符 串 处 理 函 数 例 题 200909(24): 下 面 有 关 C 语 言 字 符 数 组 的 描 述, 其 中 错 误 的 是 A) 不 可 以 用 赋 值 语 句 给 字 符 数 组 名 赋 字 符 串 B) 可 以 用 输 入 语 句 把 字 符 串 整 体 输 入 给 字 符 数 组 C) 字 符 数 组 中 的 内 容 不 一 定 是 字 符 串 D) 字 符 数 组 只 能 存 放 字 符 串 分 析 : 需 要 了 解 和 记 住 字 符 串 和 字 符 数 组 的 特 点, 正 确 选 项 为 D 例 题 200903129(25): 若 有 以 下 定 义 int x[10], *pt=x; 则 对 x 数 组 元 素 的 正 确 引 用 是 A)*&x[10] B)*(x+3)
C)*(pt+10) D)pt+3 分 析 : 在 数 组 元 素 的 引 用 中 可 以 认 为 一 个 * 和 一 个 [] 作 用 一 样, 一 维 数 组 元 素 要 求 有 一 个 * 或 者 一 个 [], 二 维 数 组 要 求 2 个 * 或 者 [], 这 里 是 一 维 数 组, 排 除 选 项 D, 而 选 项 AC 表 示 的 数 组 范 围 越 界 了, 所 以 选 择 B, 数 组 应 用 注 意 编 译 环 境 对 越 界 不 做 语 法 检 查, 引 用 数 组 越 界 属 于 逻 辑 错 误 ( 五 ) 函 数 数 的 应 用 本 章 考 察 的 主 要 知 识 点 包 括 :(1)C 语 言 函 数 的 调 用 ;(2) 函 (1)C 语 言 库 函 数 的 调 用 本 知 识 点 需 要 注 意 函 数 的 定 义 和 函 数 的 调 用, 函 数 包 括 库 函 数, 和 用 户 定 义 的 函 数, 使 用 函 数 是 要 注 意 两 个 问 题 : 一 是 加 头 文 件, 二 是 调 用 的 正 确 形 式, 使 用 用 户 定 义 的 函 数 注 意 先 声 明 在 使 用 例 题 201009134(26): 有 以 下 程 序, 程 序 中 库 函 数 islower (ch) 用 以 判 断 ch 中 的 字 母 是 否 为 小 写 字 母 #include<stdio.h> #include<ctype.h> void fun(char*p) {int i=0; while (p[i]) { if(p[i]== && islower(p i-1 )) p[i-1]=p[i-1]- a + A ; i++;
{ char s1[100]= ab cd EFG! ; fun(s1); printf( %s\n,s1); 程 序 运 行 后 的 输 出 结 果 是 A)ab cd EFG! B)Ab Cd EFg! C)aB cd EFG! D)ab cd EFg! 分 析 : 这 是 对 库 函 数 的 使 用 方 法 的 考 察, 字 符 串 应 该 用 %s 输 出, 正 确 输 出 结 果 应 为 选 项 C 例 题 201009210(27): 有 以 下 程 序 #include<stdio.h> int*f(int *p,int*q); { int m=1,n=2,*r=&m; r=f(r,&n); printf( %d\n,*r); int*f(int *p,int*q) { return(*p>*q)?p:q; 程 序 运 行 后 的 输 出 结 果 是 分 析 : 考 察 了 函 数 用 法, 同 时 用 到 了 指 针, 返 回 的 是 大 数 的 地 址, 所 以 输 出 大 的 数 是 2, 答 案 应 该 填 2
2. 函 数 的 应 用 例 题 201009212(28): 以 下 fun 函 数 的 功 能 是 在 N 行 M 列 的 整 形 二 维 数 组 中, 选 出 一 个 最 大 值 作 为 函 数 值 返 回, 请 填 空 ( 设 M,. N 已 定 义 ) int fun(int a[n][m)) {int i,j,row=0,col=0; for(i=0;i<n;i++) for(j=0;j<m; j++) if(a[i][j]>a[row][col]){row=i;col=j; return( ): 分 析 : 由 于 函 数 类 型 是 int 型, 因 此 要 返 回 一 个 整 数, 由 题 意 的 要 求, 只 能 填 a[row][col] ( 六 ) 指 针 本 章 考 察 的 主 要 知 识 点 包 括 :(1) 指 针 变 量 的 定 义 ;(2) 指 针 变 量 的 应 用 (1) 指 针 变 量 的 定 义 指 针 是 地 址, 指 针 变 量 其 实 也 是 一 个 变 量, 只 不 过 是 这 个 变 量 和 前 面 所 介 绍 的 变 量 不 同, 前 面 所 应 用 的 变 量 里 存 放 的 是 具 体 的 数 据 ( 某 个 类 型 的 数 ), 指 针 变 量 里 存 放 的 是 地 址 数 据, 用 法 理 解 都 可 以 用 类 比 的 方 法 例 题 200909137(29): 设 有 定 义 :char *c;, 以 下 选 项 中 能 够 使 字 符 型 指 针 c 正 确 指 向 一 个 字 符 串 的 是 A)char str[ ]= string ;c=str; B)scanf( %s,c); C)c=getchar();
D)*c= string ; 分 析 : 这 个 地 址 类 似 于 一 个 房 间 的 门 牌 号, 也 就 是 scanf 中 的 变 量 加 地 址 符, 正 确 选 项 为 A 例 题 201003127 (30): 若 有 定 义 int(*pt)[3];, 则 下 列 说 法 正 确 的 是 A) 定 义 了 基 类 型 为 int 的 三 个 指 针 变 量 B) 定 义 了 基 类 型 为 int 的 具 有 三 个 元 素 的 指 针 数 组 pt C) 定 义 了 一 个 名 为 *pt 具 有 三 个 元 素 的 整 型 数 组 D) 定 义 了 一 个 名 为 pt 的 指 针 变 量, 它 可 以 指 向 每 行 有 三 个 整 数 元 素 的 二 维 数 组 分 析 : 根 据 指 针 的 定 义 形 式, 只 有 选 项 D 是 正 确 的 (2) 指 针 变 量 的 应 用 指 针 变 量 的 应 用 是 一 个 难 点 指 针 应 用 灵 活 很 容 易 出 错, 尤 其 是 利 用 指 针 实 现 链 表 的 问 题 例 题 200709211(31): 以 下 程 序 的 输 出 结 果 是. #include <stdio.h> #include <string.h> char *fun(char *t) { char *p=t; return(p+strlen(t)/2); { char *str="abcdefgh"; str=fun(str); puts(str);
分 析 : 由 于 地 址 后 移, 所 以 输 出 efgh 例 题 200909133(32): 设 有 以 下 函 数 void fun(int n,char * s) { 则 下 面 对 函 数 指 针 的 定 义 和 赋 值 均 是 正 确 的 是 A)void (*pf)(); pf=fun; B)viod *pf(); pf=fun; C)void *pf();*pf=fun; D)void (*pf)(int,char);pf=&fun; 分 析 : 这 是 一 个 函 数 指 针 的 应 用 考 题, 从 理 解 函 数 指 针 的 概 念 着 手, 正 确 选 项 为 A ( 七 ) 结 构 体 与 共 用 体 本 章 考 察 的 主 要 知 识 点 包 括 :(1) 结 构 体 和 共 用 体 类 型 (2) 链 表 (1) 结 构 体 和 共 用 体 该 考 试 这 点 为 结 构 体 和 共 用 体 类 型 的 定 义 ; 结 构 体 变 量 数 据 的 定 义 和 引 用 ; 结 构 体 数 组 ; 结 构 体 指 针 等 结 构 体 是 由 不 同 类 型 但 有 关 联 变 量 组 成, 用 法 和 单 个 变 量 一 样, 结 构 体 类 型 变 量 的 表 示 方 法 有 成 员 表 示 法 (.) 和 成 员 指 向 表 示 法 (->) 例 题 201003136(33): 设 有 定 义 : struct complex { int real,unreal; data1={1,8,data2; 则 以 下 赋 值 语 句 中 错 误 的 是
A)data2=data1; C)data2.real=data1.real; B)data2=(2,6); D)data2.real=data1.unreal; 分 析 : 在 C 语 言 中 不 是 想 选 项 B 表 示 成 员 变 量 的, 所 以 错 误 的 表 示 方 法 是 选 项 B 例 题 2010031376 (34) 有 以 下 程 序 #include #include struct A { int a; char b[10]; double c;; void f(struct A t); { struct A a={1001,"zhangda",1098.0; f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c); void f(struct A t) { t.a=1002; strcpy(t.b,"changrong"); t.c=1202.0; 程 序 运 行 后 的 输 出 结 果 是 A)1001,zhangDa,1098.0 B)1002,changRong,1202.0 C)1001,ehangRong,1098.O D)1002,ZhangDa,1202.0 分 析 : 本 考 题 考 察 对 成 员 变 量 的 表 示 方 法, 同 时 还 考 察 了 关 于 字 符 串 库 函 数 的 应 用 以 及 参 数 为 结 构 体 变 量 的 函 数 调 用 调 用 函 数 输 出 结 果 应 该 选 择 选 项 A 例 题 201003138 (35): 有 以 下 定 义 和 语 句
struct workers { int num;char name[20];char c; struct { int day; int month; int year; s; ; struct workers w,*pw; pw=&w; 能 给 w 中 year 成 员 赋 1980 的 语 句 是 A)*pw.year=198O; C)pw->year=1980; B)w.year=1980; D)w.s.year=1980; 分 析 : 本 题 考 点 为 结 构 的 嵌 套 定 义 以 及 成 员 的 访 问 方 式, 访 问 结 构 体 成 员 方 法 有 2 种,AD 是 变 量 方 法,BC 是 指 针 方 法, 这 里 正 确 的 选 项 为 D (2) 链 表 链 表 问 题 是 等 级 考 试 中 最 难 的 问 题, 为 了 能 正 确 掌 握 问 题, 需 要 掌 握 链 表 的 建 立 输 出 插 入 和 删 除, 可 以 记 住 4 个 例 子, 多 体 会 例 题 200709216(36): 函 数 的 功 能 是 : 在 带 头 结 点 的 单 链 表 中 查 找 数 据 域 中 值 最 小 的 结 点, 请 填 空 #include <stdio.h> struct node { int data; struct node *next; ; int min(struct node *first)/* 指 针 first 为 链 表 头 指 针 */ { strct node *p; int m; p=first->next; m=p->data;p=p->next; for(;p!=null;p= )
if(p->data<m) m=p->data; return m; 答 案 :p->next 分 析 : 本 题 考 核 链 表 的 访 问 方 法, 为 了 能 循 环 输 出 链 表 中 的 数 据, 要 求 指 向 下 一 个 节 点, 因 此 只 能 填 p->next 例 题 200903215(37): 以 下 程 序 把 三 个 NODETYPE 型 的 变 量 链 接 成 一 个 简 单 的 链 表, 并 在 while 循 环 中 输 出 链 表 结 点 数 据 域 中 的 数 据 请 填 空 #include <stdio.h> struct node { int data; struct node *next: ; typedef struct node NODETYPE; { NODETYPE a, b, c,*h,*p: a.data=10;b.data=20; c.data=30; h=&a; a.next=&b; b.next=&c; c.next='\0 ; p=h; while(p) { printf( %d,, p->data); ; printf( \n ); 答 案 :p++ 分 析 : 本 考 题 考 核 的 是 链 表 中 节 点 的 访 问, 为 了 使 循 环 能 结 束 要 求 指 针 后 移, 所 以 答 案 应 该 是 p++
( 八 ) 文 件 对 于 文 件 来 说, 主 要 操 作 包 括 文 件 的 打 开 文 件 的 关 闭 和 文 件 的 读 写,C 语 言 是 通 过 函 数 来 实 现 的 经 常 考 察 的 是 打 开 函 数 fopen 和 关 闭 函 数 fclose, 文 件 读 写 函 数 fputc,fgetc,fread,fwrite,fscanf,fprintf 例 题 200903140(38): 有 以 下 程 序 #include <stdio.h> { FILE *f; f=fopen( filea.txt, w ); fprintf(f, abc ); fclose(f); 若 文 本 文 件 filea.txt 中 原 有 内 容 为 :hello, 则 运 行 以 上 程 序 后, 文 件 filea.txt 中 的 内 容 为 A)helloabc B)abclo C)abc D)abchello 分 析 : 本 题 考 核 如 何 进 行 写 文 件 内 容, 和 printf 函 数 的 使 用 类 似, 只 是 写 到 文 件 中, 正 确 选 项 为 C 例 题 2007096149(39): 读 取 二 进 制 文 件 的 函 数 调 用 形 式 为 : fread(buffer,size,count,fp); 其 中 buffer 代 表 的 是
A) 一 个 文 件 指 针, 指 向 待 读 取 的 文 件 B) 一 个 整 型 变 量, 代 表 待 读 取 的 数 据 的 字 节 数 C) 一 个 内 存 块 的 首 地 址, 代 表 读 入 数 据 存 放 的 地 址 D) 一 个 内 存 块 的 字 节 数 分 析 : 本 题 考 核 的 是 读 文 件 函 数 参 数 的 含 义, 根 据 函 数 定 义 形 式, 正 确 选 项 为 C