上海市计算机二级考试(C语言)复习资料题目_第1页
上海市计算机二级考试(C语言)复习资料题目_第2页
上海市计算机二级考试(C语言)复习资料题目_第3页
上海市计算机二级考试(C语言)复习资料题目_第4页
上海市计算机二级考试(C语言)复习资料题目_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上海理工大学上海理工大学 上海市计算机二级考试 C 语言 复习资料题目 C 语言是一种面向过程的程序设计语言 函数 指针 地址和递归概念是它的难点 本复习资料以教学大纲为依据 提供各类题型和练习 重在 基本概念 常用算法 阅读分析程序 编程技能 等诸方面的强化训练 按照上海市计算机二级考试 C 语 言 的框架 提供 基础知识 读程序写结果 改错 编程序和程序指令填空 几部份 供学生学习参考 文末附习题参考解答 1 B 2 C 3 C 4 B 5 D 6 A 7 A 8 C 9 C 10 A 11 C 12 A 13 B 14 B 15 C 16 B 17 D 18 B 19 A 20 C 21 C 22 B 23 B 24 C 25 D 26 B 27 B 28 D 29 C 30 C 31 D 32 C 33 C 34 B 35 C 36 D 37 C 38 B 39 C 40 B 41 C 42 B 43 C 44 B 45 B 46 A 47 D 48 D 49 D 50 D 51 A 52 C 第一部份 基础知识第一部份 基础知识 1 下述循环的循环次数是 B 因为没有进入循环 int k 2 while k 0 printf d k k printf n A 无限次 B 0 次 C 1 次 D 2 次 2 在下列选项中 没有构成死循环的程序段是 C A int i 100 B for while 1 i i 100 1 if i 100 break C int k 1000 D int s 36 do k while k 10000 while s s 3 若有以下定义和语句 且 0 i 10 则对数组元素的错误引用是 C int a 0 1 2 3 4 5 6 7 8 9 p i p a A a i B a p a C p i D p a printf d n p 2 3 3 A 1 B 5 C 3 D 7 9 C 语言规定 在一个源程序中 main 函数的位置是 C A 必须在最开始 B 必须在系统调用的函数的后面 C 可以任意 D 必须在最后 10 一个 C 程序的执行是从 A A 本程序的 main 函数开始 到 main 函数结束 B 本程序的第一个函数开始 到本程序文件的最后一个函数结束 C 本程序的 main 函数开始 到本程序文件的最后一个函数结束 D 本程序文件的第一个函数开始 到本程序 main 函数结束 11 下面的四个选项中 均是不合法的用户标识符的选项是 C A A B float C b a D 123 P 0 la0 goto temp do A int INT 12 下面四个选项中 均是合法转义字符的选项是 A A B C 018 D 0 017 f 101 n xab x1f 13 sizeof float 是 B 求长度 A 一个双精度型的表达式 B 一个整型表达式 C 一种函数调用 D 一个不合法的表达式 14 下述循环的循环次数是 B int k 2 while k 0 printf d k k printf n A 无限次 B 0 次 C 1 次 D 2 次 15 若有以下定义和语句 且 0 i 10 则对数组元素的错误引用是 int a 0 1 2 3 4 5 6 7 8 9 p i p a A a i B a p a C p i D char b A B C D E F 则以下叙述正确的是 D A a 与 b 数组完全相同 B a 与 b 长度相同 C a 和 b 中都存放字符串 D a 数组比 b 数组长度长 18 C 语言中有关全局变量的说法 正确的是 B A 在使用到它的所有文件中均需定义 B 在函数体外定义一次 C 在 main 函数中定义 E 在 main 函数外定义 19 若有数组名作为函数调用时的实参 则传递给该函数形参的是 A A 数组的首地址 B 数组的第一个元素的值 C 数组中全部元素的值 D 数组元素的个数 20 下面程序段的输出结果是 int a 3 1 2 3 4 5 6 7 8 9 10 11 12 p 3 p a printf d n p 1 2 A 3 B 4 C 6 D 7 21 不属于 C 语言程序基本结构的是 A 顺序结构 B 选择结构 C 函数结构 D 循环结构 22 若有定义及赋值 int a 6 6 p p a 则下列各式中能表示元素 a 0 1 列地址的表达式是 A 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 printf k d n k A k 3 B k 4 C k 2 D k 0 27 设有如下定义 int x l y 1 则语句 printf d n x printf 4 1f n S a b A 14 0 B 31 5 C 7 5 D 10 5 31 下面程序输出结果是 main char a ABCDEFG k p fun a 0 2 fun a 4 6 printf s n a fun char s int p1 int p2 char c while p1 p2 c s p1 s p1 s p2 s p2 c p1 p2 A ABCDEFG B DEFGABC C GFEDCBA D CBADGFE 32 以下程序的输出结果是 main int a 1 i for i 0 i 4 i printf d func a func a int a int b 0 static int c 1 b c return a b c A 4444 B 4455 C 4567 D 5678 33 执行下面的程序后 y 的值是 main int a 2 4 6 8 10 int y 1 x p a 1 for x 0 x 3 x y p x printf d n y A 17 B 18 C 19 D 20 34 若使用下述程序段将整数 30 和浮点数 5 5 分别赋给变量 a 和 b 那么输入应该是 int a float b scanf a d b f A 30 5 0 B a 30 b 5 5 C 30 5 5 D a 30 b 5 5 35 设有如下定义 int ptr 则以下叙述中正确的是 A ptr 是指向一维数组的指针变量 B ptr 是指向 int 型数据的指针变量 C ptr 是指向函数的指针 该函数返回一个 int 型数据 D ptr 是一个函数名 该函数的返回值是指向 int 型数据的指针 36 设有以下定义 int a 4 3 1 2 3 4 5 6 7 8 9 10 11 12 int ptr 3 a p a 0 则以下能够正确表示数组元素 a 1 2 的表达式的是 A ptr 1 2 B p 5 C ptr 1 2 D a 1 2 37 若有以下定义和语句 且 0 i 10 则对数组元素的错误引用是 int a 0 1 2 3 4 5 6 7 8 9 p i p a A a i B a p a C p i D a SQR k m SQR k m printf d n a A 10 B 1 C 9 D 0 39 表达式 18 4 sqrt 4 0 8 的值的数据类型为 A intB float C double D 不确定 40 当 a 1 b 3 c 5 d 4 时 执行完下面一段程序后 x 的值是 if a b if c d x 1 else if a c if b d x 2 else x 3 else x 6 else x 7 A 1 B 2 C 3 D 6 41 判断 char 型变量 ch 是否为大写字母的正确表达式 A A ch A and ch A k 5 for i 0 i 10 i a i i for i 0 i 3 i p i a i i 1 for i 0 i 0 i 2 s 10 s ch i 0 printf d n s A 12ba56 B 6521 C 6 D 62 44 以下程序运行后的结果是 main char s int v 4 0 1 1 0 k i for k 0 s k k switch s k case 1 i 0 case 2 i 1 case 3 i 2 case 4 i 3 v i for k 0 k 4 k printf d v k A 0 1 2 3 B 0 1 1 8 C 5 6 7 8 D 0 2 4 6 45 下面程序输出结果是 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 0 b 0 main int a 25 prtv A 23 B 24 C 25 D 26 51 下面程序的输出是 int aa 3 3 2 4 6 main int i p for i 0 i 2 i if i 0 aa i i 1 p 1 else p printf d p A 23 B 26 C 33 D 36 52 该程序的执行结果是 include include main int fun char int char p p fun p strlen p puts p int fun char w int n char t s1 s2 s1 w s2 w n 1 while s1 s2 t s1 s1 s2 s2 t A B C D 53 试写出下列数学表达式的 C 语言表达式 54 下面程序的输出结果是 include main 2yx yx char a 1234 fun a printf n fun char s char t if s t s putchar t fun s 55 若有定义及赋值 int a 6 6 p p a 则下列各式中能表示元素 a 0 1 列地址的表达式是 A 则执行表达式 m a b A a i B a p a C p i D B int a 3 1 2 0 C int a 2 3 1 2 3 4 5 6 D int a 3 1 2 3 4 5 6 74 以下不正确的描述是 A break 语句不能用于循环语句和 switch 语句外的任何其它语句 B 在 switch 语句中使用 break 语句或 continue 语句的作用相同 C 在循环语句中使用 continue 语句结束本次循环 但不会终止整个循环 D 在循环语句中使用 break 语句是 会跳出循环体 提前结束循环 75 若有以下定义和语句 char s 12 a book printf d strlen s 则输出结果是 A 12 B 8 C 7 D 6 76 以下程序的输出结果是 main int a 2 i for i 0 i 3 i printf d func a func a int a int b 0 static int c 3 b c return a b c A 777 B 7 7 7 C 789 D 7 8 9 77 执行下面的程序后 y 的值是 main int a 2 4 6 8 10 int y 1 x p a 1 for x 0 x 3 x y p x printf d n y A 17 B 18 C 19 D 20 78 下面程序的输出是 int aa 3 3 2 4 6 main int i p for i 0 i 2 i if i 0 aa i i 1 p 1 else p printf d p A 23 B 26 C 33 D 36 79 设有以下定义 int a 4 3 1 2 3 4 5 6 7 8 9 10 11 12 int ptr 3 a p a 0 则以下能够正确表示数组元素 a 1 2 值的表达式的是 A ptr 1 2 B P 5 C ptr 1 2 D a 1 2 80 设有如下的程序段 char str Hello char ptr ptr str 执行完上面的程序段后 ptr 5 的值为 A o B 0 C 不确定的值 D o 的地址 81 假设已定义 char a 10 和 char p a 下面的赋值语句中 正确的是 A a 10 Turbo C B a Turbo C C p Turbo C D p Turbo C 82 下面程序输出结果是 main char a ABCDEFG k p fun a 0 2 fun a 4 6 printf s n a fun char s int p1 int p2 char c while p1 p2 c s p1 s p1 s p2 s p2 c p1 p2 A ABCDEFG B DEFGABC C GFEDCBA D CBADGFE 83 下列程序的输出结果是 main int a 5 2 4 6 8 10 p k p a k printf d p printf d n k A 4 4 B 2 2 C 2 4 D 4 6 84 如有 struct student int no char name 20 char sex struct int year int month int day birth struct student s 对变量 s 赋值 1984 年 11 月 11 日 正确方式是 A year 1984 month 11 day 11 B birth year 1984 birth month 11 birth day 11 C s year 1984 s month 11 s day 11 D s birth year 1984 s birth month 11 s birth day 11 85 以下程序的输出结果是 main union char i 2 int k r r i 0 0 r i 1 2 printf d n r k A 2 B 512 C 0 D 不确定 86 C 语言中 文件由 A 记录组成 B 由数据行组成 C 由数据块组成 D 由字符 字节 序列组成 87 要判断 char 型变量 m 是否是数字字符 可以使用表达式 A 0 m B float x 3 1 2 3 C long b 2 3 1 1 2 1 2 3 D double y 3 0 89 执行下面的程序后 a 的值为 main int a b for a 1 b 1 a 20 break if b 3 1 b 3 continue b 5 A 7 B 8 C 9 D 10 90 下面程序的运行结果是 main char ch 7 65ab21 int i s 0 for i 0 ch i 0 char c 2 w w c 0 0 x49 w c 1 0 x48 printf x n w a A 4948 B 4849 C D 94 C 语言中的文件类型只有 A 索引文件和文本文件两种 B ASCII 文件和二进制文件两种 C 文本文件一种 D 二进制文件一种 95 请写出将整数 n 0 n 9 转化为数字字符 ASCII 字符 的表达式 96 写出表达式 0 x1234 执行语句 x x x x 后 请写出 x 的值 第二部分第二部分 读程序读程序 写结果写结果 1 设有数组 a 的定义 int a 1 2 3 4 语句 a 3 a 0 a 1 a 2 执行后 数组 a 的各元素依次为 2 下面的程序段执行后 define ROUND3 x int x 1000 0 5 1000 0 printf f ROUND3 3 1416 输出的结果是 3 设有函数段如下 int efg int a int b if a b 0 return b else return efg b a b c efg 48 8 则 c 的值是 4 假设 m 是一个三位数 从左到右用 a b c 表示各位上的数字 现将该三位数上的百位 数与十位数交换 则从左到右各位数字是 bac 的三位数其表达式是 5 执行下面的程序后 include main char p1 p2 p1 How are you p2 p1 strlen p1 1 while p2 p1 printf c p2 for p2 p1 p2 0 p2 p2 2 printf c p2 printf n 输出的结果是 6 以下程序运行后 struct ks int a int b s 4 p main int n 1 i printf n for i 0 ia p a 则结果是 7 从键盘上输入 123 该程序的输出结果是 include main int c while c getchar n switch c 1 case 0 case 1 putchar c 4 case 2 putchar c 3 break case 3 putchar c 2 case 4 putchar c 1 break printf n 8 以下程序运行时 输入 10 个整型数 输出结果是 int a b void found value int array int n int p array end array end array n a b array for p array 1 pa a p else if p b b p return main int i number 10 printf enter 10 integer numbers n for i 0 i 10 i scanf d found value number 10 printf n a d b d n a b 9 执行该程序时 输出结果是 main int y 10 do y while y printf d n y 10 运行以下程序 从键盘上输入 china 则输出结果是 include main int v1 0 v2 0 char ch while ch getchar switch ch case a case h default v1 case o v2 printf d d n v1 v2 11 include void printletter static int c 57 if c 48 putchar c c printletter main printletter 12 main int a 5 1 3 5 7 9 int num 5 int p i for i 0 i 5 i num i p num for i 0 i 5 i printf 3d p p 13 main int fun int int int j 1 m 4 k k fun printf j d m d n j m printf The first k d n k k fun printf j d m d n j m printf The second k d n k int fun int x int y static int k 2 k x 1 x k y return k 14 include int count position data void search int p int n int st if p data count position st if n 1 search p 1 n 1 st 1 main inta 5 10 30 50 30 20 count 0 data 25 search a 15 1 printf count d position d n count position 15 int sumadd int func int data static int sum switch func case 0 sum data break case 1 sum data break case 2 sum data break return sum main sumadd 1 10 printf d sumadd 2 10 sumadd 2 20 printf d sumadd 2 10 16 void s int a int n int i j t for i 0 i 0 j a j 1 a j a j 1 t main int i b 6 24 12 14 32 22 34 s b 6 for i 0 i 6 i printf 4d b i printf n 17 void p int k int m i for m 2 m k m for i 2 i m i if m i break if i m printf 4d m printf n main p 13 18 include main int a 0 10 20 30 int n 0 p p a 1 n p n p n p n p printf n d a d d d d n n a 0 a 1 a 2 a 3 19 include void strselect char strs int n char dest int i for i 0 i n i dest i strs i i dest i 0 main char strs First Second Third Forth Fifth char rst 81 strselect strs 5 rst printf s n rst 20 include struct node int n struct node next void insert struct node head int newn struct node p q for p head p next NULL p p next q p next if newn 10 n 10 break q struct node malloc sizeof struct node q n newn q next p next p next q main struct node head p q head next NULL insert insert insert insert for p head next p NULL p p next printf d p n printf n for p head next p NULL q p p p next free q 21 include include main int fun char int char p p fun p strlen p puts p int fun char w int n char t s1 s2 s1 w s2 w n 1 while s12 scanf d devide i printf n 第三部分第三部分 程序改错程序改错 改正下列程序中的错误 并以 将 XX 行改为 YYY 的形式进行解答 代码左边的 1 2 是附加的行号 下同 1 本程序用二分法在一个单调不减次序排列的数组中查找某个数 若存在 输出该数及 它的下标位置 若不存在 输出表示找不到该数的信息 本程序有 3 个错 1 main 2 int a 10 2 5 6 8 11 15 18 22 60 88 3 int low high m i x 4 scanf f 5 low 0 6 high 10 7 while lowa m high m 1 11 else low m 1 12 13 if low high 14 printf d is found the position is d n x m 15 else 16 printf d is not found n x 17 2 由键盘输入长度不超过 80 的字符串 在按原样输出 本题有 2 个错 1 include 2 main 3 char str 80 4 int i 0 5 clrscr 6 while 1 7 scanf s str i 8 if str i n return 9 10 str i 0 11 printf s n str 12 3 以下程序用递归算法求 Xn 要求 n 0 请填空 本题 3 个错 1 main 2 float xn float int 3 float x y int n 4 printf Input x n n 5 scanf f d 6 if x 0 7 y xn x printf x n f n y 8 else printf x wrong n 9 10 float xn float x int n 11 float z 12 if n 0 printf n wrong n exit 0 13 if n 0 z 1 14 else if n 1 z x 15 else z xn x n 16 return z 17 4 求 ex的数学公式是 ex 1 x x2 2 x3 3 xn n 对下面的程序填空 设 n 15 本题 2 个错 1 double ex float x 2 double s 1 0 t 1 0 3 int i 1 4 while i 15 5 t x i 6 s s t 7 i 8 9 return s 10 11 main 12 float x 13 double e 14 scanf f 15 e ex x n 16 printf e f lf n x e 17 5 本程序用二分法在一个单调不减次序排列的数组中查找某个数 若存在 输出该数及它 的下标位置 若不存在 输出表示找不到该数的信息 本程序有 3 个错 1 main 2 int a 10 2 5 6 8 11 15 18 22 60 88 3 int low high m i x 4 scanf f 5 low 0 6 high 10 7 while lowa m high m 1 11 else low m 1 12 13 if low high 14 printf d is found the position is d n x m 15 else 16 printf d is not found n x 17 6 以下程序的功能是 从键盘上输入一个字符串后 输出其长度 本题有 3 个错 1 include 2 include 3 func char str 4 int num 0 5 while str num n num 6 return num 7 8 main 9 char str 10 p 10 gets p printf d n func p 11 7 本程序用于输入 n 个 100 100 间的整数 输入数据不对则重输 并计算其中的正整数之 和 有 2 个错 1 define N 10 2 int sum int x int n 3 int i 0 s 0 4 while i0 s s x i i 6 return s 7 8 main 9 int i 0 s a N flag 1 10 do 11 printf Enter d numbers 100 n 100 n i 1 12 scanf d 13 while flag 14 if 100 a i 15 else 16 printf data wrong again input n 17 printf d 18 19 i 20 while i N 21 s sum a N 22 printf sum d n s 23 8 以下程序的功能是 从键盘上输入一个字符串后 输出其长度 本题有 3 个错 1 include 2 include 3 func char str 4 int num 0 5 while str num n num 6 return num 7 8 main 9 char str 10 p 10 gets p printf d n func p 11 9 以下程序的功能是 函数 f 获得十进制正整数 n 为参数后 返回值是 n 的位数 例如 123 就是个三位数 本题有 3 个错 1 int f long n 2 int c 0 3 do 4 c 5 n n 10 6 while n 7 return c 8 9 main 10 long n 11 int num 12 scanf d n 13 num f n 14 printf ld has d numbers n n num 15 10 本程序用二分法在一个单调不减次序排列的数组中查找某个数 若存在 输出该数及 它的下标位置 若不存在 输出表示找不到该数的信息 1 main 2 int a 10 2 5 6 8 11 15 18 22 60 88 3 int low high m i x 4 scanf d 5 low 0 6 high 10 7 while lowa m high m 1 11 else low m 1 12 13 if low high 14 printf d is found the position is d n x m 15 else 16 printf d is not found n x 17 11 以下程序求 e 1 1 1 1 2 1 n 的解 本程序有 3 个错误 1 include 2 main 3 double e a 4 int i 1 5 e 1 0 6 a 0 0 7 do 8 a i 9 a e 10i i 1 11 while a 1e 12 12 printf 0 12f n e 13 12 程序 3 2 是在 5 个字符串中求最小字符串并输出结果 1 include 2 include 3main 4 char name 5 EXPRESSION VARIABLE 5 STATEMENT BLOCK FUNCTION 6 char temp 7 int i 8temp name 0 9for i 0 i name i 0 11temp name i 12printf s n temp 13 13 以下函数将一个 16 进制的字符串转化为十进制数 如 2A 转化为 42 字符串应该 仅由数字和大写字母 A 至 F 构成 若字符串中出现其它符号则返回 1 已知转化的整数在 有效范围内 本程序有 3 个错误 含算法错误 1 int hexvalue char str 2 int data i n 3 for i 0 str i 0 i 4 if str i A 4 float aver 5 for i 0 i n i 6 scanf d 7 sum max min 0 8 for i 1 i N i 9 if maxa i min a i 11 sum sum a i 12 aver sum max min N 2 13 printf average f n aver 14 16 由键盘输入长度不超过 80 的字符串 在按原样输出 本题有 2 个错 1 include 2 main 3 char str 80 4 int i 0 5 clrscr 6 while 1 7 scanf s str i 8 if str i n return 9 10 str i 0 11 printf s n str 12 17 以下程序用递归算法求 Xn 要求 n 0 请填空 本题 3 个错 1 main 2 float xn float int 3 float x y int n 4 printf Input x n n 5 scanf f d 6 if x 0 7 y xn x printf x n f n y 8 else printf x wrong n 9 10 float xn float x int n 11 float z 12 if n 0 printf n wrong n exit 0 13 if n 0 z 1 14 else if n 1 z x 15 else z xn x n 16 return z 17 18 下列程序中 函数 fun 的功能是根据以下公式 9 4 7 3 5 2 3 1 7 3 5 2 3 1 5 2 3 1 3 1 1 2 1 include 1 include 3 include 4 fun eps 5 double s t int n 1 6 s 0 7 t 1 0 8 while t eps 9 s t 10 t t n 2 n 1 11 n 12 13 return s 14 15 main 16 double x 17 printf nPlease enter a precision scanf lf 18 printf neps lf Pi lf n x fun x 19 19 函数 fun 的功能是 将一个数字字符串转换为一个整数 不得调用 C 语言提供的将字 符串转换为整数的函数 例如 若输入字符串 1234 则函数把它转换为整数值 1234 1 include 2 include 3 long fun char p 4 int i 0 sign 1 5 long num 0 6 if p i 7 sign 1 8 else 9 if p i 10 sign 1 11 if p i p i 12 i 1 13 else 14 i 0 15 while p i 0 16 num 10 17 num p i 18 i 19 20 num sign num 21 return num 22 23 main 24 char s 6 25 long n 26 printf Enter a string n 27 gets s 28 n fun s 29 printf s n n 30 20 函数 fun 的功能是 将两个乱序字符串升序合并 1 include 2 include 3 main 4 int i j k n 5 char a 80 zkcvbn b 80 askd 6 n strlen a 7 for i 0 i n 1 i 8 for j i 1 j n j 9 if a i a j j 16 for i n i j i 17 a i 1 a i 18 b k a j 19 a n 0 20 21 printf nmerge string is s a 22 21 下面程序用于输出数组 a 中指定第 col 列的全部元素 1 define N 4 2 void printcol int p int row int col 3 int i 4 printf No d column is n col 1 5 for i 0 i row i 6 printf t t d n p i col 7 8 main 9 int a N 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 col 10 int row sizeof a sizeof a 0 0 N 11 clrscr 12 do 13 scanf d 14 while 0 col N 1 15 printcol a row col 16 22 以下程序用于求出从键盘输入的字符串的实际长度 字符串中可以包含空格 跳格键 等 但回车结束符不计入 本题 3 个错 例如 输入 abcd efg 回车 应返回字符串长度 8 1 include 2 int teststrlen char s 3 char p s 4 while p 0 p 5 return p s 6 7 main 8 char s 9 scanf s s 10 printf s include d characters n s teststrlen s 11 23 下面程序用于统计从键盘输入的一个正整数 n 0 n 65535 中 0 的个数 并求出各 位数字中的最大者 本题有 3 个错 1 main 2 unsigned n count max t 3 count max 0 4 scanf u 5 do 6 t n 10 7 if t 0 count count 1 8 else 9 if max 0 12 printf count u max u n count max 13 24 下面的程序将输出如下的图形 要求顶端的 定位在第 21 字符位置 请改错 有 3 个错 1 printstar 2 int i j 3 for i 0 i 4 i 4 for j 0 j 20 j 5 printf n 6 for j 0 j 2 i 1 j 7 printf 8 9 10 main 11 printstar 25 程序 3 2 计算字符串 s 中最后一次出现子串 t 的地址 通过函数值返回 在主函数中输 出此地址开始的字符串 若未找到 函数返回 NULL 例如字符串 s 为 8abcd 当子 串为 567 时 输出为 5678abcd 当 t 为 789 时 输出 Not found 本题有 3 个错 1 include 2 char fun char t 3 char p r a 4 a null 5 while s 6 p s r t 7 while r 8 if r p r p 9 else break 10 if r 0 a s 11 s 12 13 return a 14 15 void main 16 char s 100 t 100 p 17 printf nPlease enter string s scanf s s 18 printf nPlease enter substring t scanf s t 19 p fun s t 20 if p printf nThe result is n p 21 else printf nNot found n 22 第四部分第四部分 编程序编程序 1 设有链表结点的结构及变量如下 struct st int num struct st next struct st head p1 p2 编写函数 create 是个无参数函数 创建链表 num 0 结束 返回指针值 指向首结点 head 2 对 N 个数据 降序排列并输出 3 有二维数组如下 1 2 3 4 5 6 7 8 910 11 12 现要求输入某元素所在的行和列 将其后的所有元素输出 必须用指针技术编程 例如 输入 2 3 表示从第二行第三列元素 7 开始输出其余元素 7 8 9 10 11 12 4 将一个磁盘文件的数据读到一个链表中去 队列或堆栈不论 要求如下 磁盘文件放在 A 盘的一级目录 即一级子文件夹 abc 下 文件名是 flile dat 链表结点的结构为 struct node char val strct node next 工作用的指针名为 h 和 p 5 试写一个函数 函数名为 f 以十进制正整数 n 为整型参数 函数的返回值是 n 的位数 例 278 是三位数 要求循环结构需用 do while 控制结构 6 将一个 n n 的矩阵行列转置后输出 转置功能由函数 reverse 实现 试编程 7 试用 do while 控制结构 计算下列级数的和 s 1 3 5 2i 1 当累加到某项 s 的值大于 100 时 该项及以后各项不再累加 结束循环求和 8 编程序用于将原字符串按某种规律变成密码 即将字母 A 变成 E B 变成 F W 变 成 A X 变成 B Z 变成 D 对小写字母也是如此编码 标点符号 空格维持原状 9 编写一个带参数宏 trans F 输入一个华氏温度 F 要求输出摄氏温度 c 公式是 取 2 位小数 cF 32 9 5 10 对非线性方程 f x 0 可用牛顿迭代公式 求解 要求方程式用函 1 n n nn xf xf xx 数名 f 导函数 f 名为 f1 迭代函数名为 g 假设函数 f 和 f 已有定义 编写出迭代函 数 g x 精度小于 10 5 11 编写 ptstar 无参数函数打印如下图形 顶端的 定位在屏幕第 25 字符位置 编出完整 程序 写出对 ptstar 的调用 12 试写一个函数 函数名为 f 以正整数 n 为整型参数 函数的返回值是下列级数的前 n 项的和 1 3 5 2n 1 要求用递归法计算级数的和 13 本程序的主程序为 main int b 24 12 14 32 22 34 printf d n f b 6 其中调用函数 f 该函数有二个参数 依次为整型数组 a 和整型数 n 函数的返回值是数组 的 a 0 到 a n 1 中的最大值 试写出函数 f 要求循环结构需用 for 控制结构 14 编写 sort 函数 对 N 个 int 型数据降升序排列 该函数有 2 个形参 int a 和 int n 采用 冒泡法 或 选择法 可任选 15 编写一个名为 prime 的函数 以 m 为整型参数 判别 m 是否为素数 若 m 为素数 则 返回 1 若 m 不是素数 则返回 0 16 编写一个名为 cntatoz 的函数 输入一行字符 统计其中的英文字母个数 大小写不论 17 设有 3 名学生成绩存在如下的数组中 int score 3 4 65 57 70 60 90 87 50 81 90 65 100 98 编程输出有成绩低于 60 分的某学生所有成绩 按 C 语言的规则 允许第 0 行 18 试用 do while 控制结构 计算下列公式的近似值 当计算某项的绝对值小于 0 0001 时 该项及以后各项不再累加 结束循环求和 19 试用 for 控制结构 求数组 a N 的前 k k N 个元素的最大值和最小值 将统 计结果分别存于变量 max 和 min 中 20 输入 10 个数 输出这 10 个数中仅出现一次的数 如输入 12 36 72 36 87 99 87 87 12 35 则输出 72 99 35 21 试设计一个函数 它能求出两个整型数的和与积 同时 再编写一个主程序 main 调 用上述函数以验证该函数的功能与正确性 22 输入若干非 0 实数 直到输入 0 时停止 要求输入的实数最多不超过 20 个 统计其中 正数的个数 负数的个数 23 输入一行字符 统计其中的英文字母个数 24 编写完整的程序 用公式 56 x 34 x 12 x 1s 642 1 3 1 2 1 1 1 1 n e 计算 e 的近似值 直到某项小于 10 7为止 25 定义一个带参数的宏 其功能是求一个数的绝对值 26 求出 1 1000 之间 水仙花数 要求的水仙花数是个三位数 它的各位数字之和等于 该数本身 例如 153 13 53 53 所以 153 是个水仙花数 27 应用递归算法求某数 a 的平方根 求平方根的迭代公式如下 1 x 2 1 0 0 x a x 28 将十进制正整数 m 转换成 k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论