




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 1 页 共 20 页 C 语言复习题 语言复习题 2014 一 选择题一 选择题 请把答案填写在下面的横线上 否则不能得分 1 B2 D3 C4 D5 A6 B7 A8 D9 C10 D 11 C12 B13 D14 B15 D16 C17 D18 D19 A20 C 21 A22 D23 B24 C25 C26 B27 B28 A29 D30 A 31 C32 A33 B34 A35 C36 D37 B38 D39 A40 C 41 B42 D43 C44 C45 D46 D47 D48 C49 D50 C 51 A52 B53 B54 A55 C56 A57 B58 A59 B60 C 61 D62 C63 C64 B65 B66 C 1 下列关于 C 程序的说法错误的是 A 一个程序必须有一个 main 函数B 函数首部后面必须有分号 C 可以使用 来注释一段代码D 每个语句的末尾必须有分号 2 下列关于 C 程序的说法错误的是 A stdio h 是输入输出头文件B 一个 C 语句必须以分号结束 C VC6 0 中可以使用 来注释一行D define 命令不是预处理命令 3 下列选项中 不能作为 C 语言标识符的是 A totalB p405C 123D abc 4 若有 float x 123 41 printf 4 2f x 则执行后的输出结果为 A 12 3B 12 34C 123 4D 123 41 5 下列选项中 不能正确表示分式 3 4 的 C 语言表达式是 A 4 3B 4 3 0C 1 0 4 3D 4 float 3 6 若有定义 int x y 则表达式 x 1 y x 3 2 的值为 A 1B 2C 2 0D 2 5 7 下列关于 C 程序的说法错误的是 A C 语言程序的基本组成单位是语句B C 语言程序中一行可以写多条语句 C 每条语句必须以分号结束D 一个语句可以写在多行上 8 以下关于标识符的说法错误的是 A 标识符由字母 数字和下划线组成B 标识符不能与系统的关键字同名 C 首字符必须是字母或下划线D 不区分大小写 s 和 S 是同一个变量 9 表达式 7 4 7 2 的值是 A 4B 4 5C 6D 6 5 10 已知变量 a 和 b 是 int 型 若有语句 scanf a d b d 使 a 的值是 5 b 的值是 8 则正确的输入是 A 5 8 B 5 8 C a 5 b 8 D a 5 b 8 11 若有定义 int a float b 执行 scanf 3d f 语句时 从键盘输入 1234 567 8 则 a 和 b 的值分别是 A 1234 和 567 800000B 123 和 567 800000 C 123 和 4 000000D 234 和 567 800000 12 执行 printf f 1 0 3 语句后 正确的输出结果是 第 2 页 共 20 页 A 0 3B 0 333333 C 0 3 D 0 003 13 若要定义符号常量 PI 代表 3 14 正确的预处理命令是 A define PI 3 14 B define PI 3 14 C define PI 3 14D define PI 3 14 14 以下变量定义及初始化语句中正确的是 A double a 0 5 b 1 5 B char a 97 b b C int a b 0 D float a 1 b 15 以下关于算法的描述中不正确的是 A 算法中每一个步骤的含义都应该是确定的 B 算法中每一个步骤都应该能有效执行 C 正确的算法应在有限步骤内结束 D 正确的算法都必须有输入和输出 16 当一个关系表达式成立时 该表达式的值为 A 1B 0C 1D 不确定的非 0 值 17 关于 if 语句的说法正确的是 A 双分支语句中有可能两个分支都不执行 B if 多分支语句中不能没有最后的 else C if 语句中可以使用 continue 语句 D else 总是与前面最近的 没有与其它 else 配对的 if 配对 18 要判断 x 是否满足表达式 1 x 1 正确的 C 语言表达式是 A 1 x 1 x 1 while x 0 x x 1 执行完该程序段后 x 的值是 A 0B 1C 10D 9 20 若有定义 float x p 能正确输入一个值给 x 的语句是 A scanf f x B scanf lf C scanf f p D scanf lf 21 以下选项中 对变量的定义和初始化正确的是 A int a p B int a p a C int a p D int a p a 22 逻辑运算符两侧运算对象的数据类型为 A 只能是 0 或者 1B 只能是 0 或非 0 正数 C 只能是整型或字符型数据D 可以是任何类型的数据 23 在 c 语言中 执行完语句 for i 1 i 10 i 后 i 的值是 A 10B 11C 1D 不确定 24 定义了指向某个变量的指针 其含义是指针变量里存放的是该变量的 A 值B 名C 地址D 一个标志 25 若有语句 int pt a 4 pt 则下面均代表地址的一组选项是 A a ptB 想要建立如下图所示的存储结构 则正确的赋值语句是 pm A p m B p C p m D p 27 有语句 int a 3 b 5 p q p q 若要实现下图中所示的存储结构 则可以使用的 赋值语句是 3 14 第 3 页 共 20 页 A p q B p q C p q D p q 28 以下程序段中有个语句是错误的 则下列说法正确的是 int p i char q ch p q p 4 p q A p 和 q 的类型不一致 不能执行语句 p q B p 中应该存放地址值 因此不能执行 p 4 C q 虽然指向了具体的存储单元 但是该单元中没有具体的值 所以不能执行 p q D q 没有指向具体的存储单元 所以不能执行 p q 29 若输入字符串 abcde 则以下 while 循环体将执行 次 while ch getchar e printf A 5B 4C 6D 0 30 若 i j 已定义为 int 类型 则以下循环嵌套程序段中循环体一共要执行的次数是 for i 5 i 0 i for j 0 j 0 则执行语句 p p 4 后 p 指向的数组元素是 A a 4 B a 5 C a 6 D a 7 51 执行以下程序段的输出结果是 char s Program ptr for ptr s ptr g ptr printf c ptr A ProB ProgC ProramD 程序有错误 52 对以下说明语句的正确理解是 int a 10 6 7 8 9 10 A 将 5 个初值依次赋给 a 1 至 a 5 B 将 5 个初值依次赋给 a 0 至 a 4 C 将 5 个初值依次赋给 a 6 至 a 10 D 因为数组长度与初值的个数不相同 所以此语句不正确 53 以下给字符数组 str 定义和赋值正确的是 A char str 10 str China B char str China C char str 10 strcpy str abcdefghijkl D char str 10 abcdefghijkl 54 当接受用户输入的含有空格的字符串时 应使用 函数 A getsB getcharC scanfD printf 55 执行以下程序段的输出结果是 int a 1 8 2 8 3 8 4 8 5 8 printf d d n a 4 3 a 4 3 A 6 6B 8 8C 6 8D 8 6 56 以下说法正确的是 A p i 等价于 p i B char p for p s pscore 98 D strcpy p name LiMing 60 已知如下定义 则下面叙述不正确的是 第 6 页 共 20 页 struct stu int a float b stutype A struct 是结构体类型的关键字 B struct stu 是用户定义的结构体类型 C stutype 是用户定义的结构体类型名 D a 和 b 都是结构体成员名 61 当定义一个结构体变量时 系统为它分配的内存空间是 A 结构体中一个成员所需的内存容量 B 结构体中第一个成员所需的内存容量 C 结构体中占内存容量最大者所需的容量 D 结构中各成员所需内存容量之和 62 定义结构体类型 struct s int x float f a 3 则执行语句 printf d sizeof a 的输出 结果是 A 4B 12C 24D 8 63 执行下列程序段的输出结果是 struct c int x int y s 2 1 3 2 7 printf d s 0 x s 1 x A 14B 6C 2D 21 64 若执行 fopen 函数时发生错误 则函数的返回值是 A 地址值B NULLC 1D EOF 65 若要用 fopen 函数打开一个新的二进制文件 该文件要既能读又能写 则文件打开方式应是 A ab B wb C rb D ab 66 当顺利执行了文件关闭操作时 fclose 函数的返回值是 A 1B TRUEC 0D 1 二 填空题 参考答案见第二 填空题 参考答案见第 20 页 页 请把答案填在下面的横线上 否则不能得分 1 C 语言程序的基本单位是 2 要求运算对象必须是整型的运算符是 3 为了计算表达式 2013 yx 需要用到的数学函数是 写出函数名 4 若要计算实数 x 的绝对值 则要用到的数学函数是 写出函数名 5 结构化程序的三种基本控制结构是 选择结构和循环结构 6 C 语言程序设计中 单行注释以 符号作开始标记 7 C 语言程序设计中 多行注释以 符号作开始标记 以 符号作为结束 标记 8 C 语言的标识符只能由字母 和 组成 且第一个字符必须为字母或 9 C 语言中一个实数常量默认为 类型 10 C 语言中求字节的运算符是 11 若有 C 语言语句 scanf d d 如果要给变量 a 输入 5 变量 b 输入 6 则在程 第 7 页 共 20 页 序执行时 应该输入 然后回车 12 C 语言中表示换行的转义字符是 13 C 语言程序书写格式自由 一行可以写几个语句 一个语句也可以写在多行上 每条语句的最 后必须有一个 符号表示语句的结束 14 若有定义 int a 2 b 3 x x a b a b 则 x 的值为 15 switch 语句中 为了在其它条件都不满足时执行某个操作 应该使用 子句 16 如果循环体不需要执行任何操作 此时应使用 语句作为循环体 17 若要提前终止循环语句的执行 应该使用 语句 18 若有定义 int a p 要通过指针变量 p 来输入 a 的值 请填空 scanf d 19 若有定义 int x p 为了让 p 指向 x 应该执行的操作是 20 判断闰年的逻辑表达式为 y 4 0while k 0 k k 1 则循环体语句将会执行 次 28 设 i j k 均为 int 型变量 执行完语句 for i 0 j 10 i j i j k i j 后 k 的值为 29 设 x 为 int 型变量 请写出一个关系表达式 用以判断 x 同时为 3 和 7 的倍数时 关系表达式 的值为真 30 为了使函数能返回一个确定的值 必须使用 语句 31 定义一个函数没有返回值 则函数类型应为 32 指针作为函数实参时 实际传递的是某个变量的 33 普通变量做参数时 实参与形参占有 的内存单元 34 程序在调用一个函数的过程中 该被调函数又可以调用其它函数 这种情况称之为函数的 调用 35 一个 C 源程序中至少应包括一个 函数 36 如果在程序中用到函数 sqrt 则在程序开始处应使用命令 include 请填上 应该包含的文件名 37 从作用域的角度 变量可分为局部变量和 38 若有定义 int i p 为了使 p 指向 i 则能实现该功能的语句是 第 8 页 共 20 页 39 在 C 程序中 指针变量 p1 指向整型变量 a 如需要让指针变量 p2 也指向整型变量 a 则对应 的语句为 或者 40 若有定义 static int a 10 1 2 3 则 a 3 的值为 41 一维数组中 下标的取值是从 开始的 42 若有定义 int a 3 4 则该数组的最后一个元素是 43 若有定义 char p ABCD 执行 puts p 2 的输出结果为 44 若有定义 int a 10 p1 则 p1 p2 45 若有定义 int a 10 则 a 5 表示 46 设 int a 2 3 2 3 则数组元素 的值为 3 47 若有定义 double xx 3 5 则 xx 数组中行下标的最大取值为 48 若有定义 char s1 20 s2 China 则执行语句 strcpy s1 s2 2 后 字符数组 s1 中存放的 字符串为 49 字符串用一维字符数组形式进行存储 它以 结尾 50 有语句 char c I am a student 该字符串的长度是 c 3 51 若有定义 char str 10 用 str 存储一个字符串时 则该字符串的最大长度为 52 若有定义 int a 10 p 则 p 4 表示的数组元素是 a 53 连接两个字符串的库函数为 54 在 C 语言中 二维数组在内存中的存放顺序是 55 若二维数组 a 有 m 列 则在 a i j 前的元素个数为 56 若有枚举类型定义 enum weekday Sun 7 Mon Tue Wed 0 Thu Fri Sat 则枚举常量 Mon 的值为 57 若有结构体类型的定义 struct test char x int y float z 则该结构体类型的变量所占字节 数为 58 若有结构体类型的定义 struct test int x int y tt p 通过指针 p 引用结构体变量 tt 的 成员 x 的方法有 和 59 定义共用体类型的关键字是 60 共用体变量某一时刻只能存放其中 个成员的值 61 共用体变量的地址与它的所有成员的地址 62 访问文件时 文件指针变量的类型需定义为 63 以写方式打开文件 letter txt 的语句是 letter txt w 64 关闭文件指针 fp 指向的文件的语句是 三 程序填空题三 程序填空题 注 以下参考答案仅用于参考 若干答案也可以写成其它等价的形式 注 以下参考答案仅用于参考 若干答案也可以写成其它等价的形式 1 下列程序段要从键盘输入两个变量 x y 的值 并交换 x 和 y 请填空 int x y temp scanf d d x y y temp printf x d y d n x y 2 下面的程序段用于读入一个华氏温度 计算并输出对应的摄氏温度 华氏温度转换为摄氏温度 的公式为 32 9 5 FC 请填空 double C F printf Input F n scanf lf C 5 0 9 F 32 printf C 2f n C 3 下面的程序段用于计算周期为 T 秒的人造卫星离地面的平均高度 其中 地球质量 M 6 1024kg 地球半径 R 6 371 106m 人造卫星离地面的平均高度 H 的计算公式为 R MT H 3 2 211 4 1067 6 define PI 3 1415926 define M 6E24 define R 6 371E6 double T H x printf Input T scanf lf x 6 67E 11 M T T 4 PI PI H R pow x 1 0 3 printf H lf n H 4 下面的程序段用于从键盘输入 3 个正整数 找到最大数并输出 请填空 int a b c max scanf d d d max a if maxmax max b if c max max c printf max d n max 5 有如下分段函数 根据输入的 x 值计算 y 值 并输出 请填空 3 32 2 1153lg3 12 3 12 x x x x x e y x double x y scanf lf if x 2 y exp 2 x 1 3 第 10 页 共 20 页 x 3 else if y 2 x 1 else y 3 11 log10 3 x 5 printf y lf n y 6 闰年是指被能 4 整除 但不能被 100 整除 或者能被 400 整除的年份 请填空 int year scanf d if else printf not leap year n 7 从键盘读入一个百分制成绩 将其转换为对应的五级制并输出 请填空 int score scanf d 输入一个 0 100 之间的分数 score 10 switch case 10 case 9 printf A n break case 8 printf B n break case 7 printf C n break case 6 printf D n break printf E n default 8 下面的程序段用于计算 10 请填空 int i s s 1 for i 1 i A else if 空格 ch 或 ch 32 space 1 else 其它字符 other 1 printf upper d space d other d n upper space other 10 下面的程序段输出九九乘法表 请填空 for i 1 i 9 i for j 1 j j i 第 11 页 共 20 页 printf d d 3d j i j i printf n 11 下面的程序段用于输出 101 到 200 之间的所有素数 请填空 int m k i for m 101 m 200 m 2 k int sqrt m for i 2 i k i if m i 0 break if i k 1 printf 4d m 12 输出所有的水仙花数 水仙花数是指一个 3 位数 其各位数字的立方和等于该数本身 例如 153 13 53 33 请填空 int a b c i for i 100 i 10 x x 10 printf 最高位数字为 d n x 14 国民生产总值 GDP 每年递增 7 5 编写程序计算并输出需要多少年国民生产总值才能翻 一番 请填空 int year 0 double a 1 while a 2 a a 1 0 075 year printf 经过 d 年翻一番 n year 15 编写函数 fun 求 mn 请填空 fun int m int n double int i double t 1 for i 1 i n i 第 12 页 共 20 页 t t m return t 16 函数 fun 用于计算 n 1 n 18 请填空 double fun int n double r 1 int i for i 1 i n i r r i return r 17 若要通过函数调用语句 swap 交换 a b 的值 下面是函数 swap 的定义 请填空 void swap int pa int pb int t t pa pa pb pb t 18 以下程序的功能是 从键盘输入两个整数 a b 调用函数 swap 交换 a b 的值 最后输出交 换后的结果 请填空 void swap int p1 int p2 int t t p1 p2 t p1 p2 void main int a b scanf d d swap 19 下面的程序段是用冒泡法对数组 a 中的 10 个整数按从小到大排序 请填空 int a 10 8 6 4 9 7 3 5 1 2 0 i j t for i 0 i 9 i for j 0 ja j 1 t a j a j a j 1 a j 1 t 20 以下程序段将一个一维数组中的数逆序存放 请填空 int a 10 i j t for i 0 i 10 i scanf d 第 13 页 共 20 页 for i 0 j 9 i j i j t a i a i a j a j t for i 0 i 10 i printf d a i 21 下面的程序段把矩阵 A 中的元素转置后存放到矩阵 B 中 请填空 int a 3 4 1 2 3 4 5 6 7 8 9 10 11 12 i j b 4 3 for i 0 i 3 i for j 0 j 4 j b j i a i j 22 输入一个 M 行 M 列的二维数组 分别计算两条对角线上的元素之和 M 为符号常量 请填空 define N 5 void main int a N N i j s1 0 s2 0 printf input a d d matrix n N N for i 0 i N i for j 0 j 0 printf d n count 24 输入 6 个字符串 找出最大的字符串并输出 请填空 char str 6 50 int i k for i 0 i 6 i gets str i k 0 for i 1 i0 k i 第 14 页 共 20 页 printf the largest string is s n str k 25 函数 copy string 用于把字符串 from 拷贝到 to 中 请填空 void copy string char to char from while from 0 to from to 0 四 编程题四 编程题 注 每个程序的编写方法有多种 下面给出的只是其中一种 以供参考 注 每个程序的编写方法有多种 下面给出的只是其中一种 以供参考 1 编写一个程序 输入一个天数 求这个天数包含几周零几天 include void main int d a b scanf d a d 7 b d 7 printf d week s and d day s n a b 2 输入一行字符 统计其中空格的个数 include void main char ch int count 0 while ch getchar n if ch count 1 printf d n count include void main char ch int count 0 scanf c while ch n if ch count 1 scanf c printf d n count 3 设有分段函数 10 101 1 1313lg3 53 1 12 3 x x x x e x y x 编写程序 输入 x 的值 输出 y 值 include include void main 第 15 页 共 20 页 double x y scanf lf if x 1 y x x x 1 else if x 10 y 3 exp 2 x 1 5 else y 3 log10 3 x 1 13 printf y lf n y 4 输入 x 的值 根据下面的公式计算 y 值 10 101 1 53 12ln 2 3 x x x x x x y include include void main double x y scanf lf if x 1 y x 2 else if x 10 y log 2 x 1 else y pow 3 x 5 1 0 3 printf y lf n y 5 从键盘输入若干整数 以 0 作为结束标志 找出最大数并输出 include void main int x max scanf d max x while x 0 if x max max x scanf d printf max d n max 第 16 页 共 20 页 6 编写程序 计算 10 1 n n 即 1 2 3 10 include void main int i fact sum sum 0 fact 1 for i 1 i 10 i fact i sum fact printf d n sum 7 编写程序 判断一个指定的数是否是素数 include include void main int m i k scanf d k int sqrt m for i 2 i k i if m i 0 break if i k printf d is not a prime n m else printf d is a prime n m 8 编写程序求两个数的最大公约数 include void main int m n gcd scanf d d for gcd m gcd 1 gcd if m gcd 0 printf gcd d n gcd 9 函数 fun 的功能是计算下面表达式的值 第 17 页 共 20 页 1 3 1 2 1 1 n sum 请根据已经给出的代码完成 fun 函数 include double fun int n void main int n scanf d printf sum f n fun n 10 函数 isPrime 的功能是判断参数 m 是否是素数 如果是素数 返回整数 1 不是素数则返回整 数 0 请根据已经给出的代码完成该函数 include include int isPrime int m void main int m do 输入的 m 必须大于等于 2 printf Input m scanf d while m 1 if isPrime m 1 printf d is a prime n m else printf d is not a prime n m 11 函数 fun 的功能是计算下面表达式的值 int i double fact 1 sum 0 for i 1 i n i fact i sum 1 0 fact return sum int i k k int sqrt m for i 2 i k i if m i 0 return 0 return 1 第 18 页 共 20
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论