C语言基础练习题(含答案)

上传人:xgs****56 文档编号:9776193 上传时间:2020-04-07 格式:DOC 页数:70 大小:376KB
返回 下载 相关 举报
C语言基础练习题(含答案)_第1页
第1页 / 共70页
C语言基础练习题(含答案)_第2页
第2页 / 共70页
C语言基础练习题(含答案)_第3页
第3页 / 共70页
点击查看更多>>
资源描述
1 目录 第 1 3 章 C 语言基础知识习题 2 1 选择 题 2 2 填空题 7 3 答案及部分解析 9 第 4 章 选择结构习题 11 1 选择 题 11 2 填空题 17 3 答案及部分解析 23 第 5 章 循环结构习题 26 1 选 择题 26 2 填空题 32 3 答案及部分解题分析 39 第 6 章 数组 习题 41 1 单项 选择题 41 2 填空题 44 3 判断题 45 4 程序填空题 45 5 阅读程序 分析程序的功能 49 第 7 章 函数 习题 55 1 单项选 择题 55 2 填空题 56 3 判断题 57 4 程序填空题 58 5 写出下列程序运行结果 59 第 8 章 指针习题 67 1 选择 题 67 2 填空题 69 1 第 1 3 章 C 语言基础知识习题 1 选择题 1 以下不是 C 语言的特点的是 A 语言简洁紧凑 B 能够编制出功能复杂的程序 C C 语言可以直接对硬件操作 D C 语言移植性好 2 下列字符序列中 不可用作 C 语言标识符的是 A abc123 B no 1 C 123 D ok 3 正确的 C 语言标识符是 A buy 2 B 2 buy C buy D buy 4 请选出可用作 C 语言用户标识符的一组标识符 A void B a3 b3 C For D 2a define 123 abc DO WORD IF Case sizeof 5 下列符号中 不属于转义字符的是 A B 0 xAA C t D 0 6 不属于 C 语言关键字的是 A int B break C while D character 7 是 C 语言提供的合法关键字的是 A Float B signed C integer D Char 8 以下不能定义为用户标示符的是 A scanf B Void C 3com D int 9 一个 C 程序是由 A 一个主程序和若干子程序组成 B 一个或多个函数组成 C 若干过程组成 D 若干子程序组成 10 C 语言程序的基本单位是 A 程序行 B 语句 C 函数 D 字符 11 下列说法中 错误的是 A 每个语句必须独占一行 语句的最后可以是一个分号 也可以是一个回车换行符号 B 每个函数都有一个函数头和一个函数体 主函数也不例外 C 主函数只能调用用户函数或系统函数 用户函数可以相互调用 D 程序是由若干个函数组成的 但是必须有 而且只能有一个主函数 12 以下说法中正确的是 A C 语言程序总是从第一个定义的函数开始执行 B 在 C 语言程序中 要调用的函数必须在 main 函数中定义 1 C C 语言程序总是从 main 函数开始执行 D C 语言程序中的 main 函数必须放在程序的开始部分 13 C 编译程序是 A C 程序的机器语言版本 B 一组机器语言指令 C 将 C 源程序编译成目标程序 D 由制造厂家提供的一套应用软件 14 以下选项中 合法的用户标识符是 A long B 2abc C 3dmax D A dat 15 以下选项中 合法的实型常数是 A 5E2 0 B E 3 C 2E0 D 1 3E 16 已知大写字母 A 的 ASCII 码值是 65 小写字母 a 的 ASCII 码是 97 则用八进制表示 的字符常量 101 是 A 字符 A B 字符 a C 字符 c D 非法的常量 17 以下选项中 合法转义字符的选项是 A B 018 C xab D abc 18 以下选项中 正确的字符常量是 A F B C W D 19 以下选项中可作为 C 语言合法整数的是 A 10110B B 0386 C 0Xffa D x2a2 20 下列变量定义中合法的是 A short a 1 le 1 B double b 1 5e2 5 C long do 0 xfdaL D float 2 and 1 e 3 21 与数学式子 对应的 C 语言表达式是 129 x n A 9 x n 2 x 1 B 9 x n 2 x 1 C 9 pow x n 1 2 x 1 D 9 pow n x 2 x 1 22 若有代数式 则不正确的 C 语言表达式是 cdab3 A a c d b 3 B 3 a b c d C 3 a b c d D a b d c 3 23 已知各变量的类型说明如下 int m 8 n a b unsigned long w 10 double x 3 14 y 0 12 则以下符合 C 语言语法的表达式是 A a a b 2 a 8 B n n 3 18 C x 3 D y float m 24 以下符合 C 语言语法的赋值表达式是 A a 9 b c d 9 B a 9 b c d 9 C a 9 b b c 9 D a 9 b c 9 25 已知字母 A 的 ASCII 码为十进制数 65 且 S 为字符型 则执行语句 S A 6 3 后 S 中的值为 A D B 68 C 不确定的值 D C 26 在 C 语言中 要求运算数必须是整型的运算符是 1 A B C D 27 若有说明语句 char s 72 则变量 s A 包含一个字符 B 包含两个字符 C 包含三个字符 D 说明不合法 s 的值不确定 28 若有定义 int m 7 float x 2 5 y 4 7 则表达式 x m 3 int x y 2 4 的值是 A 2 500000 B 2 750000 C 3 500000 D 0 000000 29 在 C 语言中 char 型数据在内存中的存储形式是 A 补码 B 反码 C 原码 D ASCII 码 30 设变量 x 为 float 类型 m 为 int 类型 则以下能实现将 x 中的数值保留小数点后两位 第三位进行四舍五入运算的表达式是 A x x 100 0 5 100 0 B m x 100 0 5 x m 100 0 C x x 100 0 5 100 0 D x x 100 0 5 100 0 31 表达式 13 3 sqrt 16 0 8 的数据类型是 A int B float C double D 不确定 32 设以下变量均为 int 类型 则值不等于 7 的表达式是 A m n 6 m n m 1 B m n 6 m n n 1 C m 6 m 1 n 6 m n D m 6 m 1 n m n 1 33 假设所有变量均为整型 则表达式 x 2 y 5 y x y 的值是 A 7 B 8 C 6 D 2 34 已知 s 是字符型变量 下面不正确的赋值语句是 A s 012 B s u v C s 1 2 D s 1 2 35 已知 s 是字符型变量 下面正确的赋值语句是 A s abc B s 08 C s xde D s 36 若有以下定义 则正确的赋值语句是 int x y float z A x 1 y 2 B x y 100 C x D x int z 37 设 x y 均为 float 型变量 则不正确的赋值语句是 A x B x y 2 C y x 3 10 D x y 0 38 下列语句中符合 C 语言的赋值语句是 A a 7 b c a 7 B a 7 b a 7 C a 7 b b a 7 D a 7 b c a 7 39 putchar 函数可以向终端输出一个 A 整型变量表达式值 B 字符串 C 实型变量值 D 字符或字符型变量值 40 以下程序段的输出结果是 1 int a 12345 printf 2d n a A 12 B 34 C 12345 D 提示出错 无结果 41 若 x 和 y 均定义为 int 型 z 定义为 double 型 以下不合法的 scanf 函数调用语句为 A scanf d lx le B scanf 2d d lf C scanf x d o D scanf x o 6 2f 42 有如下程序段 int x1 x2 char y1 y2 scanf d c d c 若要求 x1 x2 y1 y2 的值分别为 10 20 A B 正确的数据输入是 注 代表空格 A 10A 20B B 10 A20B C 10 A 20 B D 10A20 B 43 若变量已正确说明为 float 类型 要通过语句 scanf f f f 给 a 赋予 10 0 b 赋予 22 0 c 赋予 33 0 不正确的输入形式为 A 10 B 10 0 22 0 33 0 22 33 C 10 0 D 10 22 22 0 33 0 33 44 有如下程序 若要求 x1 x2 y1 y2 的值分别为 10 20 A B 正确的数据输入是 注 代表空格 int x1 x2 char y1 y2 scanf d d scanf c c A 1020AB B 10 20 ABC C 10 20 D 10 20AB AB 45 已有定义 int a 2 和输出语句 printf 8lx a 以下正确的叙述是 A 整型变量的输出格式符只有 d 一种 B x 是格式符的一种 它可以适用于任何一种类型的数据 C x 是格式符 D 8lx 不是错误的格式符 其中数字 8 规定了输出字段的宽度 46 有如下程序段 对应正确的数据输入是 float x y scanf f f printf a f b f x y A 2 04 B 2 04 5 67 5 67 C A 2 04 B 5 67 D 2 055 67 47 有如下程序段 从键盘输入数据的正确形式应是 注 代表空格 float x y z 1 scanf x d y d z d A 123 B x 1 y 2 z 3 C 1 2 3 D x 1 y 2 z 3 48 以下说法正确的是 A 输入项可以为一个实型常量 如 scanf f 3 5 B 只有格式控制 没有输入项 也能进行正确输入 如 scanf a d b 5d C 当输入一个实型数据时 格式控制部分应规定小数点后的位数 如 scanf 4 2f D 当输入数据时 必须指明变量的地址 如 scanf f 49 根据定义和数据的输入方式 输入语句的正确形式为 注 代表空格 已有定义 float x y 数据的输入方式 1 23 4 5 A scan f f B scanf f f C scanf 3 2f 2 1f D scanf 3 2f 2 1f 50 根据下面的程序及数据的输入和输出形式 程序中输入语句的正确形式应该为 include stdio h main char s1 s2 s3 输入语句 printf c c c s1 s2 s3 输入形式 A B C 注 代表空格 输出形式 A B A scanf c c c B scanf c c c C scanf c c c D scanf c c 51 以下程序的执行结果是 include stdio h main int x 2 y 3 printf x d y d n x y A x 2 y 3 B x d y d C x 2 y 3 D x d y d 52 以下程序的输出结果是 注 代表空格 include stdio h main printf nstring1 15s programming printf nstring2 5s boy printf string3 2s girl A string1 programming B string1 programming string2 boy string2 boy string3 gi string3 gi C string1 programming D string1 programming 1 string2 boy string3 girl string2 boy string3 girl 53 根据题目中已给出的数据的输入和输出形式 程序中输入输出语句的正确内容是 include stdio h main int a float b 输入语句 输出语句 输入形式 1 2 3 注 代表空格 输出形式 a b 3 300 A scanf d f B scanf d 3 1f printf na b 5 3f a b printf na b f a b C scanf d f D scanf d f printf na b 5 3f a b printf na b f a b 54 阅读以下程序 当输入数据的形式为 12 34 正确的输出结果为 include stdio h main int a b scanf d d printf a b d n a b A a b 46 B 有语法错误 C a b 12 D 不确定值 55 若有定义 int x y char s1 s2 s3 并有以下输出数据 注 代表空格 1 2 U V W 则能给 x 赋给整数 1 给 y 赋给整数 2 给 s1 赋给字符 U 给 s2 赋给字符 V 给 s3 赋 给字符 W 的正确程序段是 A scanf x dy d s1 getchar s2 getchar s3 getchar B scanf d d s1 getchar s2 getchar s3 getchar C scanf d d c c c D scanf d d c c c c c c 2 填空题 1 C 语言的符号集包括 2 结构化设计中的三种基本结构是 3 C 语言源程序文件的后缀是 经过编译后生成文件的后缀是 经过链 接后生成文件的后缀是 4 C 语言的关键字都用 大写或小写 5 一个函数由两部分组成 它们是 6 函数体一般包括 7 C 语言是通过 来进行输入和输出的 8 以下程序的执行结果 1 include stdio h main short i 1 j 1 printf dec d oct o hex x unsigned u n i i i i printf dec d oct o hex x unsigned u n j j j j 9 以下程序的执行结果是 include stdio h main char s b printf dec d oct o hex x ASCII c n s s s s 10 以下程序的执行结果是 注 代表空格 include stdio h main float pi 3 1415927 printf f 4f 4 3f 10 3f pi pi pi pi printf n e 4e 4 3e 10 3e pi pi pi pi 11 以下程序的执行结果是 include stdio h main char c c 5 printf c c n c 12 以下程序输入 1 2 3 后的执行结果是 注 代表空格 include stdio h main int i j char k scanf d c d printf i d k c j d n i k j 13 有以下程序 若输入 9876543210 后的执行结果是 若输入为 98 76 543210 后的执行结果是 若输入为 987654 3210 后的执行结果为 注 代表空格 include stdio h main int x1 x2 char y1 y2 scanf 2d 3d 3c c printf x1 d x2 d y1 c y2 c n x y 14 若 x 和 y 均为 int 型变量 则以下语句的功能是 x y y x y x y 15 有一输入函数 scanf d k 则不能使 float 类型变量 k 得到正确数值的原因是 16 有如下程序段 输入数据 12345ffl678 后 u 的值是 1 v 的值是 2 1 int u float v scanf 3d f 3 答案及部分解析 一 选择题答案 1 B 2 B 3 A 4 B 5 B 6 D 7 B 8 D 9 B 10 C 11 A 12 C 13 C 14 B 15 C 16 A 17 A 18 C 19 C 20 A 21 C 22 C 23 A 24 B 25 A 26 D 27 A 28 A 29 D 30 B 31 C 32 C 33 B 34 B 35 C 36 C 37 C 38 D 39 D 40 C 41 D 42 A 43 B 44 D 45 D 46 A 47 B 48 D 49 B 50 A 51 D 52 D 53 A 54 D 55 D 14 解析 C 语言规定标识符只能由字母 数字和下划线三种字符组成 且第一个字符必须 为字母或下划线 而且不能与 C 语言规定的关键字同名 关键字如 auto break case char const continue default do double else entry extern for float goto if int int long register return short signed sizeof static struct unsigned while switch typedef void volatile unior 这些关键字先不必硬背下来 随着后续的学习 你 将发现它们都是一些数据的类型 语句等 自然会随着学习的深入 而记下来 15 解析 用指数形式表示一个实型常数时 E 或 e 之前必须有数字 且 E 后面指数必须为 整数 16 解析 101 为转义字符 相对应一个 ASCII 码字符 101 8 65 10 A 17 解析 转义字符的特征是以 开头 其后跟一些字符 如 n t b f 等代 表一些特殊的含义 而 后如跟数字 可以为八进制或者十六进制 将其转换为 对应的 ASCII 码值 就可以得出对应的字符 后跟八进制的写法 0nn 或 者 nn 表示 0 或者 后只能跟 1 或 3 位 0 7 之间的数字 后跟十 六进制的写法 xnn 或者 nn 表示 x 或者 后只能跟 1 或 2 位 0 9 及 a f A F 之间的字符 选项 B 的错误在于 8 不是八进制 而选项 C 的 错误在于没有 选项 D 的错误在于超长 多了一位 21 解析 B 的错误在于赋值语句的左侧只能为一个简单变量 如 n 3 n 18 C 的错误在 于 运算符只能适用于整型数据 D 的错误在于作类型转换时 应将类型加上括 号 即为 y float m 31 解析 逗号表达式的最终结果为最右端的表达式 即 x y 的值 其运算顺序是从左自 右的 第三个表达式 y 其隐含有两步操作 先取 y 的原值 再执行 y y 1 运 算 而本题中 虽然没有将 y 赋给某个变量 取其原值 但还是一定会执行加 运算的 因而 经过第三个表达式 y 已经自加为 6 故 x y 的值为 8 相对应 得表达式最终结果为 8 若本题改为 x 2 y 5 z y x z 则其结果应为 7 二 填空题答案 1 答案 英文字母 数字 一些有特定含义的标点符号 1 2 答案 顺序结构 选择结构 循环结构 3 答案 C OBJ EXE 4 答案 小写 5 答案 函数说明部分和函数体 6 答案 变量定义部分和执行部分 7 答案 输入和输出函数 8 答案 dec 1 oct 177777 hex ffff unsigned 65535 dec 1 oct 1 hex 1 unsigned 1 9 答案 dec 98 oct 142 hex 62 ASCII b 10 答案 3 141593 3 1416 3 142 3 142 3 141593e 00 3 1416e 00 3 142e 00 3 142e 00 注 由于 c 编译系统不同 我们上机使用的机器 其第二个 printf 语句实际结果 为 3 14159e 00 3 142e 00 3 14e 00 3 14e 00 即 小数点后取 5 位 11 答案 c h 12 答案 i 1 k j 2 13 答案 第一种情况的执行结果 x1 98 x2 765 y1 4 y2 1 第二种情况的执行结果 x1 98 x2 76 y1 y2 3 第三种情况的执行结果 x1 98 x2 765 y1 4 y2 2 14 答案 交换 x 和 y 的值 15 答案 1 格式符应为 f 2 变量前边未加取地址符 16 答案 1 123 2 45 000000 第 4 章 选择结构习题 1 选择题 1 已有定义 int x 3 y 4 z 5 则表达式 x y z 1 B if a b c C if ab c D if a b c 9 能正确表示 当 x 的取值在 58 40 和 40 58 范围内为真 否则为假 的表达式是 A x 58 则表达式 x z else if x 0 y 0 else y 1 B y 0 if x 0 y 1 else if x 0 if x 0 y 1 else y 1 D if x 0 if x 0 y 1 else y 0 else y 1 15 执行以下语句后 y 的值为 int x y z x y z 0 x y A 0 B 1 C 2 D 不确定值 16 已知 int a 1 b 2 c 3 以下语句执行后 a b c 的值是 if a b c a a b b c A a 1 b 2 c 3 B a 2 b 3 c 3 C a 2 b 3 c 1 D a 2 b 3 c 2 17 请阅读以下程序 该程序 include stdio h main int x 10 y 5 z 0 if x y z printf n else printf n A 有语法错不能通过编译 B 可以通过编译但不能通过连接 C 输出 D 输出 18 以下程序的运行结果是 include stdio h main int a 1 if a 1 printf d n a else printf d n a A 0 B 1 C 2 D 3 19 当 a 1 b 2 c 4 d 3 时 执行完下面一段程序后 x 的值是 if a b if c d x 1 else if a c if b d x 2 else x 3 else x 4 else x 5 A 1 B 2 C 3 D 4 20 执行以下程序段后 变量 x y z 的值分别为 int a 1 b 0 x y z x a b a b y a z b A x 0 y 0 z 0 B x 1 y 1 z 1 C x 0 y 1 z 0 D x 1 y 2 z 1 21 若 a b c d w 均为 int 类型变量 则执行下面语句后的 w 值是 a 1 b 2 c 3 d 4 w a b a b w w c w c w wb a c a c b A 5 B 4 C 6 D 不确定 23 若 a b c1 c2 x y 均为整型变量 正确的 switch 语句是 A switch a b B switch a case 1 y a b break case c1 y a b break case 0 y a b case c2 x a d break break default x a b C switch a a b b D switch a b case 3 default y a b break case 1 y a b break case 3 x a b break case 3 y b a break case 10 case 11 y a b break 24 执行下列程序 输入为 3 的数出结果是 include stdio h main int k scanf d switch k case 1 printf d n k case 2 printf d n k case 3 printf d n k case 4 printf d n k break default printf Full n A 3 B 4 C 3 D 4 5 4 25 假定等级和分数有以下对应关系 等级 A 分数 85 100 等级 B 分数 60 84 等级 C 分数 60 以下 对于等级 grade 输出相应的分数区间 能够完成该功能的程序段是 A switch grade case A printf 85 100 n case B printf 60 84 n case C printf 60 n default printf grade is error n B switch grade case A printf 85 100 n break case B printf 60 84 n case C printf 60 n default printf grade is error n C switch grade case A printf 85 100 n break case B printf 60 84 n break case C printf 60 n default printf grade is error n D switch grade case C printf 60 n break case B printf 60 84 n break default printf grade is error n break case A printf 85 100 n 26 有如下程序 写出该执行结果 include stdio h main float x 2 0 y if x 0 0 y 0 0 else if x 10 0 y 1 0 x else y 1 0 printf f n y A 0 000000 B 0 250000 C 0 500000 D 1 000000 27 以下程序的运行结果是 include stdio h main int a 2 b 1 c 2 if a b if b50 printf d a if a 40 printf d a if a 30 printf d a 2 设 int x 9 y 8 表达式 x y 1 的结果是 3 定义 int x y 执行 y x 1 x x 2 后 y 的值是 4 定义 int x 10 y z 执行 y z x x y z 后 x 的结果是 5 设 int a 1 b 2 c d e 执行 c a b d b a a e a b a a 请问 a b c d e 的结果是 6 设 int a 2 b 3 c d e f 执行 c a b d a b e a b f a b 请问 a b c d e f 的结果是 7 以下程序的运行结果是 include stdio h main int a b c s w t s w t 0 a 1 b 3 c 3 if c 0 s a b if a0 if c0 w a b else t c printf d d d s w t 8 以下程序的运行结果是 include stdio h main int a b c d e a c 1 b 20 d 100 if a d d else if b if d d d else d d printf d n n d 9 以下程序的运行结果是 include stdio h main int a b 250 c if c b 0 a 4 else if b 0 a 5 else a 6 printf t d t d n a c if c b 0 a 5 printf t d t d n a c if a c b a 4 printf t d t d n a c 10 下面程序根据以下函数关系 对输入的每个 x 值 计算出 y 值 请在 内填空 x y 2 x 10 x x 2 1 x 2 1 x x 1 x 1 include stdio h main int x y scanf d if 1 y x x 2 else if 2 y 1 x else if x a printf min d n min 16 以下程序实现这样的功能 商店卖西瓜 10 斤以上的每斤 0 15 元 8 斤以上的每斤 0 3 元 6 斤以上的每斤 0 4 元 4 斤以上的每斤 0 6 元 4 斤以下的每斤 0 8 元 从键盘输 入西瓜的重量和顾客所付钱数 则输出应付款和应找钱数 请在 内填入正确内容 include stdio h main float weight money rate printf the paid money of the client is scanf f printf the weight of the watermelon is scanf f if 1 rate 0 15 else if weight 8 rate 0 3 else if weight 6 2 else if weight 4 rate 0 6 3 rate 0 8 printf the account payable of the watermelon is f n weight rate printf the change for client is f n money weight rate 17 以下程序段的运行结果是 include stdio h main char ch1 a ch2 A switch ch1 case a switch ch2 case A printf good n break case B printf bad n break case b printf joke n 18 根据以下函数关系 对输入的每个 x 值 计算出相应的 y 值 请在 内填入正确内容 x y x 0 0 0 x 10 x 10 x 20 10 20 xb 的值为假时 便已经确定整个表达式的值为假 所以不必再 继续判断第二个表达式的逻辑值 由于没有执行第二个表达式 n c d 所以 n 的 值仍为 2 17 解析 if 的条件表达式 x y z 为赋值语句 x 5 为非零值 即为 if 1 printf n 23 解析 A 的错误在于 switch a b 其后有一个 B 的错误在于 switch a 的条件表 达式 a 没有括号 应该为 switch a C 的错误在于有两个 case 具有相同的入口值 28 解析 当输入 c 时 switch 语句执行情况为 当继续输入 h 时 switch 语句的执行情况为 212v switch ch case a case h default v1 case 0 v2 从此处向下执行 因为没有 break 语句 switch ch case a case h default v1 case 0 v2 从此处向下执行 因为没有 break 语句 重复上述过程 输入 5 个有效字符 则 v1 和 v2 执行 5 次自加操作 所以 v1 5 v2 5 二 填空题答案 1 答案 585858 解析 虽然三个 if 语句按照嵌套方式书写 但是程序仍然是依顺序运行的 会分别对每 一个 if 的条件表达式进行判断 若其条件表达式为真 就执行其后的语句 否则 不执 行 2 答案 1 解析 注意该表达式是关系表达式的双等号 所以其结果只能为 1 或 0 3 答案 4 4 答案 1 5 答案 在 Turbo C 编译系统下 结果为 a 2 b 3 c 2 d 3 e 1 若在 Visual C 下 结果为 a 2 b 3 c 2 d 3 e 0 解析 在 Turbo C 编译系统下 解题过程如下 第一个赋值语句 c a b 可分解为如下的几个语句 21 31 21 acbacb 此时 a 2 b 3 c 2 第二个赋值语句 d b a a 可分解为如下的几个语句 213 3 121 bdabd 此时 a 3 b 2 c 2 d 3 第三个赋值语句 e a b a a 中由于自加 自减运算符的优先级高于其它运 算符 故先运算 和 令 a 2 b 3 然后该等式中 a 的值都取 2 参与运算 故该等式 等价与 e 2 3 2 2 因此 e 的值等于 0 此时 a 2 b 3 c 2 d 3 e 0 在 Visual C 编译系统下 解题过程如下 前两条赋值语句 c a b d b a a 的运算过程和在 Turbo C 编译 系统一样 第三个赋值语句 e a b a a 可按步骤分解为如下的几个语句 2 0 3 121 aebabe 因此 其结果为 a 2 b 3 c 2 d 3 e 0 6 答案 a 3 b 2 c 1 d 1 e 0 f 0 解析 第一个赋值语句 c a b 可以分解为如下的语句 312 2 131 acbacb 第二个赋值语句 d a b 可以分解为如下的语句 1 3 12 1 dbadb 第三个赋值语句 e a b 可以分解为如下的语句 2 0 3 1 aee 第四个赋值语句 f a b 可以分解为如下的语句 213 0 11 bfabfa 由以上各步 可以得到 a 3 b 2 c 1 d 1 e 0 f 0 7 答案 2 0 0 解析 参看如下的注释语句 if c 0 s a b c 3 0 为真 所以执行 s a b 语句 即 s 2 if a 0 由于 a 1 故 a0 由于 b 3 故 b 0 为真 可以继续下面的语句 if c 0 w a b 由于 c 3 c0 w a b 这一对 if else 因 a2 16 答案 1 weight 10 2 rate 0 4 3 else 17 答案 good joke 18 答案 1 x8 y i printf d d x y A 10192 B 9876 C 10990 D 101091 3 当执行以下程序段时 x 1 do x x x while x A 循环体将执行一次 B 循环体将执行两次 C 循环体将执行无数多次 D 系统将提示有语法错误 4 执行以下程序后输出的结果是 main int y 10 do y while y printf d n y A 1 B 1 C 8 D 0 5 下面程序的输出结果是 main int x 3 y 6 a 0 while x y 1 a 1 if y x break printf x d y d a d n x y a 27 A x 4 y 4 a 1 B x 5 y 5 a 1 C x 5 y 4 a 3 D x 5 y 4 a 1 6 若 i j 已定义为 int 类型 则以下程序段中内循环的总的执行次数是 for i 5 i i for j 0 j 4 j A 20 B 24 C 25 D 30 7 请读程序 include main int x 1 y 0 a 0 b 0 switch x case 1 switch y case 0 a break case 1 b break case 2 a b break printf a d b d n a b 上面程序的输出结果是 A a 2 b 1 B a 1 b 1 C a 1 b 0 D a 2 b 2 8 若有以下程序段 w 和 k 都是整型变量 w k LB if w 0 goto LE w printf goto LB LE 则不能与上面程序段等价的循环语句是 A for w k w 0 w print B w k while w 0 printf w C w k do w printf while w 0 D for w k w w printf 9 下面程序的输出是 28 main char s 12134211 int k v1 0 v2 0 v3 0 v4 0 for k 0 s k k switch s k default v4 case 1 v1 case 2 v2 csse 3 v3 printf v1 d v2 d v3 d v4 d n v1 v2 v3 v4 A v1 4 v2 2 v3 1 v4 1 B v1 4 v2 9 v3 3 v4 1 C v1 5 v2 8 v3 6 v4 1 D v1 8 v2 8 v3 8 v4 8 10 有以下程序 include stdio h int abc int u int v main int c a 24 b 16 c abc a b printf d n c int abc int u int v int w while v w u v u v v w return u 输出结果是 A 6 B 7 C 8 D 9 11 在下列选项中 没有构成死循环的程序段是 A int i 100 while 1 i i 100 1 if i 100 break B for 29 C int k 1000 do k while k 10000 D int s 36 while s s 12 若输入 B 以下程序的运行结果为 main char grade scanf c switch grade case A printf 85 case B case C printf 60 case D printf 85 B 60 C 60 60 error D error 13 列程序运行的情况是 main int i 1 sum 0 while i 10 sum sum 1 i printf i d sum d i sum A i 10 sum 9 B i 9 sum 9 C i 2 sum 1 D 运行出现错误 14 有以下语句 i 1 for i 100 i sum i 与以上语句序列不等价的有 A for i 1 i sum i if i 100 break B for i 1 i 100 sum i i C i 1 for i 100 sum i D i 1 for sum i if i 100 break i 15 下面程序的运行结果为 main int n for n 1 n 10 n if n 3 0 continue printf d n A 12457810 B 369 C 12 D 12345678910 30 16 下面程序的运行结果是 main int x y z x 0 y z 1 x z y printf x d n x A x 4 B x 0 C x 2 D x 3 17 标有 的语句的执行次数是 int y i for i 0 i0 E 0 C E 0 D E 0 20 假定所有变量均已正确定义 下列程序段运行后 x 的值为 k1 1 k2 2 k3 3 x 15 if k1 x else if k2 if k3 x 4 else x 3 A 14 B 4 C 15 D 3 21 执行下面语句的输出为 int i 1 if i 0 printf n else printf n A B C c D 有错 执行不正确 22 下列程序的输出是 include main int i char c for i 0 i 5 i c getchar putchar c 程序执行时从第一列开始输入以下数据 代表换行符 u w xsta A uwxsta B u C u D u w w w x xs xsta 23 下列程序的输出为 31 include stdio h main int i j x 0 for i 0 i 2 i x for j 0 j 3 j if j 2 continue x x printf x d n x A x 4 B x 8 C x 6 D x 12 24 下列程序的输出为 include main int i j k 0 m 0 for i 0 i 2 i for j 0 j 3 j k k j m i j printf k d m d n k m A k 0 m 3 B k 0 m 5 C k 1 m 3 D k 1 m 5 25 在 C 语言中 为了结束 while 语句构成的循环 while 后一对圆括号中表达式的值应该 为 A 0 B 1 C true D 非 0 26 在 C 语言中 为了结束由 do while 语句构成的循环 while 后一对圆括号中表达式的 值应为 A 0 B 1 C true D 非 0 27 下列程序的输出为 include main int k 0 char c A do switch c case A k break case B k case C k 2 break case D k k 2 continue case E k k 10 break default k k 3 k while c G 32 printf d n k A k 3 B k 4 C k 2 D k 0 28 C 语言的 if 语句嵌套时 if 与 else 的配对关系是 A 每个 else 总是与它上面的最近的 if 配对 B 每个 else 总是与最外的 if 配对 C 每个 else 与 if 的配对是任意的 D 每个 else 总是与它上面的 if 配对 29 下列程序的输出为 include main int i 0 j 0 a 6 if i 0 j 0 a printf i d j d a d n i j a A i 0 j 0 a 6 B i 1 j 1 a 7 C i 1 j 0 a 7 D i 0 j 1 a 7 30 下列程序段的输出结果为 main int x 3 do printf 3d x 2 while x A 1 B 3 0 C 1 2 D 死循环 2 填空题 1 当输入 19 2 21 时下列程序运行的结果是 main int a b c max printf please scan three number a b c n scanf d d d max a if max b max b if max c max c printf max is d max 2 若输入字母 C 程序输出结果为 1 若输入字符 程序将 2 include main char c1 c2 c1 getchar while c1122 c1 getchar c2 c1 32 printf c c n c1 c2 33 3 以下程序运行的结果为 main int a b c x y z a 10 b 2 c a b x a b y a 0 z a 0 printf d d d d n c x y z 4 若输入 4 程序运行结果为 1 若输入 4 运行结果为 2 若输入 10 运行结果为 3 main int x y scanf d if x 1 y x printf x d y x d n x y else if x 10 y 2 x 1 printf x d y 2 x 1 d n x y else y 3 x 11 printf x d y 3 x 11 d n x y 5 以下程序运行的结果 main int i 1 sum 0 loop if i 10 sum i i goto loop printf sum d n sum 6 以下程序运行的结果 main int x 2 y z x 3 1 printf d x x y z 5 34 printf d x x y z printf d n x 7 以下程序运行的结果 include include main int i k m n 0 for m 1 m 10 m 2 if n 10 0 printf n k sqrt m for i 2 ik printf 2d m n 8 如果输入 1 2 3 4 程序运行输出的是 include main char c int i k k 0 for i 0 i 0 k k 10 c 0 printf k d n k 9 运行以下程序后 如果从键盘上输入 china 则输出结果为 include main int v1 0 v2 0 char ch while ch getchar switch ch case a case h default v1 case 0 v2 35 printf d d n v1 v2 10 程序运行结果是 include main int i for i 1 i 1 i if i 4 printf d t i break printf d t i 11 以下程序运行的结果是 include main int a b for a 1 b 1 a 20 break if b 3 1 b 3 continue b 5 printf d n a 12 以下程序运行的结果是 main int i 1 while i 10 if i 3 1 continue else printf d i 13 程序运行的结果是 main int n 0 while n 1 printf d t n printf d n n 14 此程序运行时 输入 qwert 程序的运行结果是 include main char c 36 while c getchar putchar c 15 对以下程序 当输入 65 14 时 其运行结果是 1 当输入 14 63 时 其运行结果是 2 当输入 25 125 时 其运行结果时 3 include main int m n scanf d d while m n while m n m n while n m n m printf m d n m 16 在执行以下程序时 为了使输出结果为 t 4 则给 a 和 b 输入的值应满足的条件是 main int s t a b scanf d d for i 1 i 1000 i for m 0 a 1 a i 2 a if i a 1 if 2 printf 4d i 18 鸡问题 100 元钱买 100 只鸡 公鸡一只 5 元钱 母鸡一只 3 元钱 小鸡一元钱三只 求 100 元钱能买公鸡 母鸡 小鸡各多少只 include main int cocks hens chicks 37 cocks 0 while cocks 19 hens 0 while hens 33 chicks 100 0 cocks hens if 5 0 cocks 3 0 hens chicks 3 0 100 0 printf d d d n cocks hens chicks 1 2 19 爱因斯坦的阶梯问题 设有一阶梯 每步跨 2 阶 最后余 1 阶 每步跨 3 阶 最后余 2 阶 每步跨 5 阶 最后余 4 阶 每步跨 6 阶 最后余 5 阶 只有每步跨 7 阶时 正 好到阶梯顶 问共有多少阶梯 main int ladders 7 while 1 ladders 14 printf d n ladders 20 下列程序计算平均成绩并统计 90 分及以上人数 main int n m float grade average average n m 1 while 2 scanf f if grade 0 break n average grade if grade 90 3 m if n printf 2f d n average n m 21 下列程序计算 Fibonacci 数列 1 1 2 3 5 8 13 的前 40 项 main int I long f1 f2 1 for I 0 I 20 I printf 12ld 12ld f1 f2 if I 2 printf n f1 f2 2 38 22 下列程序判断一个数是否为素数 include include main int I k m scanf d k sqrt 1 for I 2 I k I if m I 0 2 if 3 printf dyes n m else printf dno n m 23 求 100 499 之间的所有水仙花数 即各位
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!