《C语言概述练习题.pdf》由会员分享,可在线阅读,更多相关《C语言概述练习题.pdf(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、C 语 言 概 述 练 习 题 选 择 题 1.一 个 C程 序 的 执 行 是 从。A)本 程 序 的 m a in函 数 开 始,到 m a in函 数 结 束 B)本 程 序 文 件 的 第 一 个 函 数 开 始,到 本 程 序 文 件 的 最 后 一 个 函 数 结 束 C)本 程 序 文 件 的 第 一 个 函 数 开 始,到 本 程 序 m a in函 数 结 束 D)本 程 序 的 m a in函 数 开 始,到 本 程 序 文 件 的 最 后 一 个 函 数 结 束 2.以 下 叙 述 不 正 确 的 是 oA)一 个 C源 程 序 必 须 包 含 一 个 m a in函
2、 数 B)一 个 C源 程 序 可 由 一 个 或 多 个 函 数 组 成 0 C程 序 的 基 本 组 成 单 位 是 函 数 D)在 C程 序 中,注 释 说 明 只 能 位 于 一 条 语 句 的 后 面 3.以 下 叙 述 正 确 的 是 oA)在 对 一 个 C程 序 进 行 编 译 的 过 程 中,可 发 现 注 释 中 的 拼 写 错 误 B)在 C程 序 中,m a in函 数 必 须 位 于 程 序 的 最 前 面 0 C语 言 本 身 没 有 输 入 输 出 语 句 D)C程 序 的 每 行 中 只 能 写 一 条 语 句 4.一 个 C语 言 程 序 是 由 oA)一 个
3、 主 程 序 和 若 干 个 子 程 序 组 成 B)函 数 组 成 0 若 干 过 程 组 成 D)若 干 子 程 序 组 成 二、数 据 类 型、运 算 符 与 表 达 式 一)选 择 题 1.若 x、i、j、k 都 是 i n t型 变 量,则 计 算 下 面 表 达 式 后,x 的 值 为 x=(i=4,j=16,k=32)A)4 B)16 C)32 D)522.下 列 四 组 选 项 中,A)d efin eB)getcC)includeD)w hile3.下 列 四 组 选 项 中,A)WB)b-aC)f lo a tD)-123均 不 是 C语 言 关 键 字 的 选 项 是 _
4、 0IF typechar p r i n t fcase scan fgo pow均 是 不 合 法 的 用 户 标 识 符 的 选 项 是 _P_0 dogoto in tlaO _Aabc TEM P4.下 列 四 组 选 项 中,均 是 合 法 转 义 字 符 的 选 项 是。A)n,B)017 C)018 f xabD)0,xlf5.下 面 正 确 的 字 符 常 量 是 oA)c B),C)D)K,6.以 下 叙 述 不 正 确 的 是 oA)在 C 程 序 中,逗 号 运 算 符 的 优 先 级 最 低 B)在 C 程 序 中,MAX和 max是 两 个 不 同 的 变 量 C)
5、若 a 和 b 类 型 相 同,在 计 算 了 赋 值 表 达 式 a=b后,b 中 的 值 将 放 入 a 中,二 b 中 的 值 不 变 D)当 从 键 盘 输 入 数 据 时,对 于 整 型 变 量 只 能 输 入 整 型 数 值,对 于 实 型 变 量 只 能 输 入 实 型 数 值 7.以 下 叙 述 正 确 的 是 oA)在 C 程 序 中,每 行 只 能 写 一 条 语 句 B)若 a 是 实 型 变 量,C 程 序 中 允 许 赋 值 a=10,因 此 实 型 变 量 中 允 许 存 放 整 型 数 0 在 C 程 序 中,外 是 只 能 用 于 整 数 运 算 的 运 算 符
6、 D)在 C 程 序 中,无 论 是 整 数 还 是 实 数,都 能 被 准 确 无 误 地 表 示 8.已 知 字 母 A 的 ASCH码 为 十 进 制 数 65,且 c2为 字 符 型,则 执 行 语 句 c2=A+6-3后,c2中 的 值 为 oA)D B)689.sizeof(float)JiA)一 个 双 精 度 型 表 达 式 0 一 种 函 数 表 达 式 0 不 确 定 的 值 D)CB)一 个 整 型 表 达 式 D)一 个 不 合 法 的 表 达 式 10.设 C 语 言 中,一 个 int型 数 据 在 内 存 中 占 2 个 字 节,则 unsignedint型 数
7、据 的 取 值 范 围 为。A)0255 B)0-32767 0 065535 D)0 214748364711.设 有 说 明:char w;int x;float y;double z;则 表 达 式 w*x+z-y 值 的 数 据 类 型 为。A)float B)char C)int D)double12.设 以 下 变 量 均 为 int类 型,则 值 不 等 于 7 的 表 达 式 是 oA)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)(二)填 空 题 1.若 有 以 下 定 义,则 计
8、算 表 达 式 y+=y-=m*=y后 的 y 值 是【1】。int m=5,y=2;2.在 C 语 言 中,一 个 int型 数 据 在 内 存 中 占 2 个 字 节,则 int型 数 据 的 取 值 范 围 为 2。3.若 s是 int型 变 量,且 s=6,则 下 面 表 达 式 的 值 为【3】。s%2+(s+l)%24.若 a 是 int型 变 量,则 下 面 表 达 式 的 值 为【4】。(a=4*5,a*2),a+65.若 x 和 a 均 是 int型 变 量,则 计 算 表 达 式(1)后 的 x 值 为【5,计 算 表 达 式(2)后 的 x 值 为 6 o(1)x=(a=
9、4,6*2)(2)x=a=4,6*26.若 a 是 int型 变 量,则 计 算 下 面 表 达 式 后 a 的 值 为【7】。A=25/3%37.若 x 和 n 均 是 int型 变 量,月.x和 n 的 初 值 均 为 5,则 计 算 表 达 式 后 x 的 值 为【8】,n 的 值 为 9。x+=n+8.若 有 定 义:char c=010;则 变 量 c 中 包 含 的 字 符 个 数 为【10】。9.若 有 定 义:int x=3,y=2;float a=2.5,b=3.5;则 下 面 表 达 式 的 值 为 11(x+y)%2+(int)a/(int)b10.已 知 字 母 a 的
10、 ASCII码 为 十 进 制 数 97,且 设 ch为 字 符 型 变 量,则 表 达 式 ch=a+8-3的 值 为【12】o三、简 单 的 C 程 序 设 计(-)选 择 题 1.putchar函 数 可 以 向 终 端 输 出 一 个。A)整 型 变 量 表 达 式 B)实 型 变 量 值 0 字 符 串 D)字 符 或 字 符 型 变 量 值 2.printf函 数 中 用 到 格 式 符%5s,其 中 数 字 5 表 示 输 出 的 字 符 串 占 用 5 歹 U。如 果 字 符 串 长 度 大 于 5,则 输 出 按 方 式;如 果 字 符 串 长 度 小 于 5,则 输 出 按
11、 方 式。A)从 左 起 输 出 该 字 符 串,右 补 空 格 B)按 原 字 符 长 从 左 向 右 全 部 输 出 O 右 对 齐 输 出 该 字 符 串,左 补 空 格 D)输 出 错 误 信 息3.阅 读 以 下 程 序,当 输 入 数 据 的 形 式 为:25,13,10(注:表 示 回 车),则 正 确 的 输 出 结 果 为 omain()int x,y,z;scanf(%d%d%d,&x,&y,&z);printf(x+y+z=%dn”,x+y+z);)A)x+y+z=48 B)x+y+z=35 C)x+z=35 D)不 确 定 值 4.根 据 下 面 的 程 序 及 数 据
12、 的 输 入 和 输 出 形 式,程 序 中 输 入 语 句 的 正 确 形 式 应 该 为 0main()char chi,ch2,ch3;输 入 语 句 printf(,&chl,&ch2,&ch3);C)scanf(“机%c%c,&chl,&ch2,&ch3);D)scanf(rt%c%cw,&chl,&ch2,&ch3);5.已 知 c h 是 字 符 型 变 量,下 面 正 确 的 赋 值 语 句 是=A)ch=a+b;B)ch=0;C)ch=7+9;D)ch=5+9;/P(-)填 空 题 1.以 下 的 输 出 结 果 是 1】。main()short i:i=-4;printf(
13、wni:dec=%d,oct=%o,hex=%x,unsigned=%unw,i,i,i,i);)2.以 下 的 输 出 结 果 是 2】。main()char c=x;printf(ac:dec=%d,oct=%o,hex=%x,ASCH=%cn”,c,c,c,c);)3.以 下 的 输 出 结 果 是 3 main()int x=l,y=2;printf(x=%d y=%d*sum*=%dn”,x,y,x+y);printf(10 Squared is:%dnw,10*10);)4.假 设 变 量 a 和 b 均 为 整 型,以 下 语 句 可 以 不 借 助 任 何 变 量 把 a、b
14、中 的 值 进 行 交 换。请 填 空。a+=4;b=a-5;a-=6;5.若 x 为 int型 变 量,则 执 行 以 下 语 句 后 的 x 值 为【7】。x=7;x+=x-=x+x;z=m=OxFFFF6.有 一 输 入 语 句 scanf(%d”,k);则 不 能 使 float类 型 变 量 k 得 到 正 确 数 值 的 原 因 是 8 和【9】。四、逻 辑 运 算 与 判 断 选 取 控 制(-)选 择 题 1.逻 辑 运 算 符 两 侧 运 算 对 象 三 数 据 类 型 OA)只 能 是 0 和 1 B)只 能 是 0 或 非 0 正 数 0 只 能 是 整 型 或 字 符
15、型 数 据 D)可 以 是 任 何 类 型 的 数 据 2.判 断 char型 变 量 c h是 否 为 大 写 字 母 的 正 确 表 达 式 是。A)A=ch=A)&(ch=A)&(ch=Z)D)(A=ch)3.若 希 望 当 A 的 值 为 奇 数 时,表 达 式 的 值 为“真”,A 的 值 为 偶 数 时,表 达 式 的 值 为“假”。则 以 下 不 能 满 足 要 求 的 表 达 式 是 oA)A%2=1 B)!(A%2=0)C)!(A%2)D)A%24.设 有:int a=l,b=2,c=3,d=4,m=2,n=2;执 行(m=ab)&(n=cd)后 n 的 值 为 oA)1 B
16、)2 C)3 D)45.以 下 程 序 的 运 行 结 果 是 omain()int a,b,d=241;a=d/100%9;b=(-l)&(-l):printf(%d,%d”,a,b);A)6,1 B)2,1 C)6,0 D)2,06.已 知 int x=10,y=20,z=30;以 下 语 句 执 行 后 x,y,z 的 值 是 if(xy)z=x;x=y;y=z;A)x=10,y=20,z=30C)x=20,y=30,z=107.以 下 程 序 的 运 行 结 果 是。main()int m=5;if(m+5)printf(%dn,m);else;printf(%dnM,m-);)A)4
17、 B)5 C)6B)x=20,y=30,z=30D)x=20,y=30,z=20/PD)78.若 运 行 时 给 变 量 x 输 入 1 2,则 以 下 程 序 的 运 行 结 果 是 main()int x,y;scanf(%d,&x);y=x12?x+10:x-12;printf(%dn,y);)A)4 B)3 C)2 D)1/P(二)编 程 题 1.编 程 实 现:输 入 整 数 a 和 b,若 a?+b2大 于 100,则 输 出 a?+b?百 位 以 上 的 数 字,否 则 输 出 两 数 之 和。2.编 程 判 断 输 入 的 正 整 数 是 是 否 既 是 5 又 是 7 的 整
18、 倍 数。若 是,则 输 出 yes;否 则 输 出 no,3.用 switch编 程 实 现:-1(x0)y=0(x=0)1(X0)4.用 switch语 句 编 一 程 序,对 于 给 定 的 一 个 百 分 制 成 绩,输 出 相 应 的 五 分 制 成 绩,设:90分 以 上 为 A,80 89分 为 B,70 79分 为 C,60 69分 为 D,60分 以 下 为 E五、循 环 控 制(-)选 择 题 1.设 有 程 序 段 int k=10;while(k=0)k=k-l;这 下 面 描 述 中 正 确 的 是.a)while循 环 执 行 10次 b)循 环 是 无 限 循 环
19、 c)循 环 体 语 句 以 此 也 不 执 行 d)循 环 体 语 句 执 行 一 次 2.语 句 while(!E);中 的 表 达 式!E 等 价 于.a)E=0 b)E!=l c)E!=0 d)E=l3.下 面 程 序 段 的 运 行 结 果 是.int n=0;while(n+=2);printfn);a)2 b)3 c)4 d)有 语 法 错 4.下 面 程 序 的 运 行 结 果 是.#includemain()(int num=0;while(num=2)(num+;printf(/dn,num);/Pa)1 b)1 c)1 d)12 2 23 345.以 下 程 序 段.x=
20、-l;do(x=x*x;)while(!x);a)是 死 循 环 b)循 环 执 行 二 次 c)循 环 执 行 一 次 d)有 语 法 错 误 6.若 有 如 下 语 句 int x=3;doprintf(%dn”,x-=2);while(!(一 x);则 上 面 程 序 段 _.a)输 出 的 是 1 b)输 出 的 是 1和-2 c)输 出 的 是 3 和 0 d)是 死 循 环 7.下 面 程 序 的 运 行 结 果 是 _.#include/Pmain()int y=10;do y一;whi le(一 y);printf(%drT,y一);a)-l b)l c)8 d)08.若 i为
21、 整 型 变 量,则 以 下 循 环 执 行 次 数 是 _for(i=2;i=0;)printf(d”,i-);a)无 限 次 b)0次 c)l次 d)2次 9.执 行 语 句 for(i=l;i+4;);后 变 量 i 的 值 是 a)3 b)4 c)5 d)不 定 10.以 下 正 确 的 描 述 是.a)continue语 句 的 作 用 是 结 束 整 个 循 环 的 执 行 b)只 能 在 循 环 体 内 和 switch语 句 体 内 使 用 break语 句 c)在 循 环 体 内 使 用 break语 句 或 continue语 句 的 作 用 相 同 d)从 多 层 循 环
22、 嵌 套 中 退 出 时,只 能 使 用 goto语 句/P(二)、填 空 题 1.下 面 程 序 段 是 从 键 盘 输 入 的 字 符 中 统 计 数 字 字 符 的 个 数,用 换 行 符 结 束 循 环。请 填 空。int n=0,c;c=getchar();whi le(_)if()n+;c=getchar();)2.下 面 程 序 的 功 能 是 用 辗 转 相 除 法 求 两 个 正 整 数 的 最 大 公 约 数。请 填 空。#include main()int r,m,n;scanf(%d%d”,&m,&n);if(m n);r=m%n;while(r)m=n;n=r;r=_
23、;printf(/dn,n);3.下 面 程 序 的 运 行 结 果 是#include main()int a,s,n,count;a=2;s=0;n=l;count=1;while(count=7)n=n*a;s=s+n;+count;printf(s=%d,s);4.下 面 程 序 段 的 运 行 结 果 是 一 i=l;a=0;s=l;doa=a+s*i;s=-s;i+;Jwhile(i=10)printf(z,a=%d,z,a);5.下 面 程 序 段 的 运 行 结 果 是 i=l;s=3;dos+=i+;if(s%7=0)continue;else+i;while(s15);pr
24、intf i);六、数 组 1.以 下 为 一 维 整 型 数 组 aa)int a(10);c)int n;scanf(d,&n);int an;的 正 确 说 明 是 b)int n=10,an;d)#define SIZE 10int a SIZE;2.以 下 对 二 维 数 组 a 的 正 确 说 明 是.a)int a 3;c)double al4b)float a(3,4);d)float a(3)(4);3.若 二 维 数 组 a 有 m 歹 U,则 计 算 任 一 元 素 ai j在 数 组 中 位 置 的 公 式 为(假 设 a00位 于 数 组 的 第 一 个 位 置 上。
25、)a)i*m+j b)j*m+i c)i*m+j-l d)i*m+j+l4.若 二 维 数 组 a 有 m 列,则 在 前 的 元 素 个 数 为.a)j*m+i b)i*m+j c)d)i*m+j+l5.25.若 有 以 下 程 序 段:o o o o o oint a=4,0,2,3,1),i,j,t;for(i=l;i=O&taj)aj+l=aj;j;)aj+l=t;则 该 程 序 段 的 功 能 是.a)对 数 组 a 进 行 插 入 排 序(升 序)b)对 数 组 a 进 行 插 入 排 序(降 序)c)对 数 组 a 进 行 选 择 排 序(升 序)d)对 数 组 a 进 行 选
26、择 排 序(降 序)6.有 两 个 字 符 数 组 a、b,则 以 下 正 确 的 输 入 语 句 是 _.a)gets(a,b);b)scanf a,b);c)scanf(%s%s”,&a,&b):d)gets(a),gets(b);7.下 面 程 序 段 的 运 行 结 果 是.char a7=abcdef;/Pchar b4=ABC;strcpy(a,b);p r i n t f a 5);a)空 格 b)0 c)e d)f8.判 断 字 符 串 si是 否 大 于 字 符 串 s2,应 当 使 用 _.a)if(sls2)b)if(strcmp(si,s2)c)if(strcmp(s2
27、,si)0)d)if(strcmp(si,s2)0)9.下 面 程 序 的 功 能 是 从 键 盘 输 入 一 行 字 符,统 计 其 中 有 多 少 个 单 词,单 词 之 间 用 空 格 分 隔,请 选 择 填 空。Sinclude main()(char s80,cl,c2=,;int i=0,num=0;gets(s);while(si!=,0,)cl=si;if(i=0)c2=,;else c2=si-l;if(_)num+i+;/Pprintf(/zThere are%d words.nz,,num);)a)cl=,&c2=二 b)cl!=,&c2=二 c)cl=,&c2!=d)c
28、l!=,&c2!=,J10.下 面 程 序 的 运 行 结 果 是.#include main()char str二 SSSWLIA,c;int k;for(k=2;(c=strk)!=0;k+)switch(c)case r:+k;break;case L:continue;default zputchar(c);continue;)putchar(*);)a)SSW*b)SW*c)SW*A d)SW/P二、填 空 题 1.若 有 定 义:double x3 5;则 x 数 组 中 行 下 标 的 下 限 为,列 下 标 的 上 限 为.2.下 面 程 序 以 每 行 4 个 数 据 的 形
29、 式 输 出 a 数 组,请 填 空。ftdefine N 20main()int aN,i;for(i=0;iN;i+)scanf(%d,);for(i=0iN;i+)if()printf(/z%3dz,,ai);)printf(n);3.下 面 程 序 可 求 出 矩 阵 a 的 主 对 角 线 上 的 元 素 之 和,请 填 空。main()int a3 3=1,3,5,7,9,11,13,15,17,sum=O,i,j;for(i=0;i3;i+)for(j=0;j=l)for(j=i-l;j=0;j)printf(绘 d”,aj);)5.下 面 程 序 用 插 入 法 对 数 组 a
30、 进 行 降 序 排 序。请 填 空。main()int a5=4,7,2,5,1);int i,j,m;for(i=l;i=O&maj)_;j一;_for(i=0;i5;i+)printf(d,ai);printf(n);)6.下 面 程 序 的 功 能 是 在 三 个 字 符 串 中 找 出 最 小 的,请 填 空。#include#includemainOchar s20,str320;int i;for(i=0;i3;i+)gets(str i);s t r c p y(s,);if(strcmp(str2,s)O)strcpy(s,str2);printf(%sn,_);)7.下 面
31、 程 序 的 运 行 结 果 是.#includemain()char s=ABCCDA”;int k;char c;for(k=l;(c=sk)!=0;k+)switch(c)case A:putchar(%);continue;case B:+k;break;default:putchar(,*);case C rputcharC)jcontinue;)putchar(#);)一、选 择 题 1.以 下 正 确 的 说 法 是.建 立 函 数 的 目 的 之 一 是 a)提 高 程 序 的 执 行 效 率 b)提 高 程 序 的 可 读 性 c)减 少 程 序 的 篇 幅 d)减 少 程
32、序 文 件 所 占 内 存 2.以 下 正 确 的 函 数 定 义 形 式 是.a)double fun(int x,int y)b)double fun(int x;int y)c)double fun(int x,int y);d)double fun(int x,y);3.C 语 言 规 定,简 单 变 量 做 实 参 时,它 和 对 应 形 参 之 间 的 数 据 传 递 方 式 为 A)地 址 传 递 B)单 向 值 传 递 C)由 实 参 传 给 形 参,再 由 形 参 传 回 给 实 参D)由 用 户 指 定 传 递 方 式 4.C 语 言 允 许 函 数 值 类 型 缺 省 定
33、 义,此 时 该 函 数 值 隐 含 的 类 型 是.a)floatb)intc)longd)double5.已 有 以 下 数 组 定 义 和 f 函 数 调 用 语 句,则 在 f 函 数 的 说 明 中,对 形 参 数 组 array的 错 误 定 义 方 式 为.int a3 4;f(a);a)f(int a r r a y 6)b)f(int array3)c)f(int array 4)d)f(int array25)6.以 下 程 序 的 正 确 运 行 结 果 是.ttinclude void num()/Pextern int x,y;int a=15,b=10;x=a-b;
34、y=a+b;)int x,y;main()int a=7,b=5;x=a+b;y=a-b;num();printf(d,%dn?,,x,y);)a)12,2 b)不 确 定 c)5,25 d)l,12/P二、填 空 题 1.以 下 程 序 的 运 行 结 果 是 _.#includemain()int a=l,b=2,c;c=max(a,b);printf(max is%dn,c);)max(int x,int y)int x;z=(xy)?x:y;return(z);)2.函 数 gongyu的 作 用 是 求 整 数 numl和 num2的 最 大 公 约 数,并 返 回 该 值。请 填
35、空。gongyu(int numl,int num2)int temp,a,b;if(numl()num2)temp=numl;numl=num2;num2=temp;a=numl;b=num2;while(_)temp=a%b;a=b;b=temp;return(a);3.以 下 程 序 的 运 行 结 果 是 一 int a=5;int b=7;main()int a=4,b=5,c;c=plus(a,b);printf(A+B=%dn,c);)plus(int x,int y)int z;z=x+y;return(x);)4.以 下 程 序 的 运 行 结 果 是.main()inexO
36、;incy();inexO;incyO;incx();incyO;incx()int x=0;printf(z,x=%dt,z,+x);incyOstatic int y=0;printf Cny=%dn/,+y);)三、编 程 题 1.已 有 变 量 定 义 和 函 数 调 用 语 句:int x=57;isprime(x);函 数 isprime()用 来 判 断 一 个 整 形 数 a 是 否 为 素 数,若 是 素 数,函 数 返 回 1,否 则 返 回 0。请 编 写 isprime函 数。isprime(int a)()2.a 是 一 个 2X4的 整 型 数 组,且 各 元 素
37、均 已 赋 值。函 数 max_value可 求 出 其 中 的 最 大 的 元 素 值 max,并 将 此 值 返 回 主 调 函 数。今 有 函 数 调 用 语 句 max=max_value(a),请 编 写 max_value 函 数。max_value(int arrL 4)(八、编 译 预 处 理 一、选 择 题 1.以 下 叙 述 中 正 确 的 是.a)在 程 序 的 一 行 上 可 以 出 现 多 个 有 效 的 预 处 理 命 令 行 b)使 用 带 参 的 宏 时,参 数 的 类 型 应 与 宏 定 义 时 的 一 致 c)宏 替 换 不 占 用 运 行 时 间,只 占
38、用 编 译 时 间 d)在 以 下 定 义 中 C R 是 称 为“宏 名”的 标 识 符#define C R 0452.以 下 程 序 的 运 行 结 果 是.define MIN(x,y)(x)(y)?(x):(y)main()int i=10,j=15,k;k=10*MIN(i,j);printf(%dn,k);a)10 b)15 c)100 d)1503.若 有 宏 定 义 如 下:itdef ine X 5Sdefine Y X+l#define Z Y*X/2则 执 行 以 下 printf语 句 后,输 出 结 果 是 int a;a=Y;printf(%dn,Z);print
39、f(%dn,a);a)7 b)12 c)12 d)76 6 5 54.请 读 程 序:ttinclude/P#define MUL(x,y)(x)*ymain()(int a=3,b=4,c;c=MUL(a+,b+);printf(%dn”,c);)上 面 程 序 的 输 出 结 果 是.a)12 b)15 c)20 d)165.对 下 面 程 序 段:#define A 3#define B(a)(A+l)*a)x=3*(A+B(7);正 确 的 判 断 是.a)程 序 错 误,不 许 嵌 套 宏 定 义 b)x=93c)x=21d)程 序 错 误,宏 定 义 不 许 有 参 数 6.以 下
40、 正 确 的 描 述 是.a)C 语 言 的 预 处 理 功 能 是 指 完 成 宏 替 换 和 包 含 文 件 的 调 用 b)预 处 理 指 令 只 能 位 于 C 源 程 序 文 件 的 首 部 c)凡 是 C 源 程 序 中 行 首 以 标 识 的 控 制 行 都 是 预 处 理 指 令 d)C 语 言 的 编 译 预 处 理 就 是 对 源 程 序 进 行 初 步 的 语 法 检 查 7.在 文 件 包 含 预 处 理 语 句 的 使 用 形 式 中,当#include后 面 的 文 件 名 用(尖 括 号)括 起 时,找 寻 被 包 含 文 件 的 方 式 是 _.a)仅 仅 搜
41、索 当 前 目 录 b)仅 仅 搜 索 源 程 序 所 在 目 录 c)直 接 按 系 统 设 定 的 标 准 方 式 搜 索 目 录 d)先 在 源 程 序 所 在 目 录 搜 索,再 按 照 系 统 设 定 的 标 准 方 式 搜 索 九、指 针 一、选 择 题 1.变 量 的 指 针,其 含 义 是 指 该 变 量 的.a)值 b)地 址 c)名 d)一 个 标 志 2.若 有 语 句 int*point,a=4;和 point=&a;下 面 均 代 表 地 址 的 一 组 选 项 是.a)a,point,*&a b)&*a,&a,*pointc)*&point,*point,&a d)
42、&a,&*point,point3.若 有 说 明;int*p,m=5,n;以 下 正 确 的 程 序 段 的 是.a)p=&n;b)p=&n;scanf(%d,&p);scanf(%d,*p);c)scanf(d,&n);d)p=&n;*p=n;*p=m;4.下 面 程 序 段 的 运 行 结 果 是.char*s=abcde;s+=2;printf(%d,s);a)cde b)字 符 c c)字 符 c的 地 址 d)无 确 定 的 输 出 结 果 5.设 pl和 p2是 指 向 同 一 个 字 符 串 的 指 针 变 量,c 为 字 符 变 量,则 以 下 不 能 正 确 执 行 的 赋
43、 值 语 句 是.a)c=*pl+*p2;b)p2=c c)pl=p26.以 下 正 确 的 程 序 段 是 _.a)char str 20;scanf(%s,&str);c)char str 20;scanf&str2);7.若 有 说 明 语 句 char a=/zIt is mine”;char*p=It is mine”;则 以 下 不 正 确 的 叙 述 是 _.a)a+l表 示 的 是 字 符 t 的 地 址 d)c=*pl*(*p2);b)char*p;scanf(%s,p);d)char str20,*p=str;scanf(%s,p2);b)p指 向 另 外 的 字 符 串
44、时,字 符 串 的 长 度 不 受 限 制 c)p变 量 中 存 放 的 地 址 值 可 以 改 变 d)a 中 只 能 存 放 10个 字 符 8.下 面 程 序 的 运 行 结 果 是 _.ttinclude#include main()(char*sl=AbDeG”;char*s2=AbdEg”;sl+=2;s2+=2;printf(,%dn,/,strcmp(sl,s2);)a)正 数 b)负 数 c)零 d)不 确 定 的 值 9.下 面 程 序 的 运 行 结 果 是 _.#include ttinclude fun(char*w,int n)char t,*sl,*s2;sl=w
45、;s2=w+n-l;while(sls2)t=*sl+;*sl=*s2一;*s2=t;)main()char*p;p=1234567;fun(p,strlen(p);puts(p);a)7654321 b)1714171 c)1711717 d)717717110.若 有 以 下 定 义,则 对 a 数 组 元 素 的 正 确 引 用 是.int a5,*p=a;a)*&a5 b)a+2 c)*(p+5)d)*(a+2)11.若 有 定 义:int a2 3,则 对 a 数 组 的 第 i 行 j 列 元 素 地 址 的 正 确 引 用 为 a)*(ai+j)b)(a+i)c)*(a+j)d)
46、ai+j12.若 有 以 下 定 义,则 p+5表 示.int a10,*p=a;a)元 素 a 5的 地 址 b)元 素 a 5的 值 c)元 素 a 6的 地 址 d)元 素 a 6的 值 1.以 下 程 序 的 功 能 是:通 过 指 针 操 作,找 出 三 个 整 数 中 的 最 小 值 并 输 出。请 填 空。#include stdlib.hmain()int*a,*b,*c,num,x,y,z;a=&x;b=&y;c=&z;printf(“输 入 3 个 整 数:”);scanf(%d%d%d”,a,b,c);printf(d,%d,%dn,*a,*b,*c);num=*a;if
47、(*a*b);if(num*c)_;printf(输 出 最 小 整 数:%dn,num);2.下 面 程 序 段 的 运 行 结 果 是.char s80,*sp=HELL0!;sp=strcpy(s,sp);s0=h,;puts(sp);3.下 面 程 序 段 的 运 行 结 果 是.char str=,abcOdefOghi,z,*p=str;printf(%s,p+5);4.下 面 程 序 的 功 能 是 将 两 个 字 符 串 si和 s2连 接 起 来。请 填 空。#includemain()char si80,s280;gets(sl);gets(s2);conj(si,s2);
48、puts(si);)conj(char*pl,char*p2)char*p=pl;while(*pl)_;while(*p2)*pl=_;pl+;p2+;*pl=0;5.若 有 定 义:int a口=4,6,8,10,12,*p=a;则*(p+l)的 值 是 _.*(a+5)的 值 是.6.若 有 以 下 定 义:int a23=2,4,6,8,10,12;则 的 值 是 _.*(*(a+l)+0)的 值 是.7.以 下 程 序 将 数 组 a 中 的 数 据 按 逆 序 存 放,请 填 空。#define M 8main()int aM,i,j,t;for(i=0;iM;i+)scanf(%
49、d”,a+i);i=0;j=M-l;while(ij)(t=*(a+i);*()=t;i+;j;)for(i=0;iM;i+)printf(%3d”,*(a+i);)8.若 有 定 义:int a3 5,i,j;(且 0=i3,0=j5),则 a 数 组 中 任 一 元 素 可 用 五 种 形 式 引 用。它 们 是:(l)ai j(2)*(ai+j)(3)*(*);(4)(*(a+i)j(5)*(_+5*i+j)9.下 面 程 序 的 运 行 结 果 是.main()char*a=Pascal,C language,dBase,Coble;char(*p);int j;p=a+3;for(j
50、=3;j=0;j)printf(%sn”,*(p);)十、结 构 体 与 共 同 体 一、选 择 题 L C 语 言 结 构 体 类 型 变 量 在 程 序 执 行 期 间.a)所 有 成 员 一 直 驻 留 在 内 存 中 b)只 有 一 个 成 员 驻 留 在 内 存 中 c)部 分 成 员 驻 留 在 内 存 中 d)没 有 成 员 驻 留 在 内 存 中 2.下 面 程 序 的 运 行 结 果 是.main()(struct cmplxint x;int y;cnum2=l,3,2,7;printf(%dn,cnumCO.y/cnum0.x*cnuml.x);)a)0 b)l c)3