C语言考试题及答案_第1页
C语言考试题及答案_第2页
C语言考试题及答案_第3页
C语言考试题及答案_第4页
C语言考试题及答案_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

C 语言考试题及答案语言考试题及答案 一 单项选择题 10 分 每题 2 分 1 char p 10 该语句声明了一个 c A 指向含有 10 个元素的一维字符型数组的指针变量 p B 指向长度不超过 10 的字符串的指针变量 p C 有 10 个元素的指针数组 p 每个元素可以指向一个字符串 D 有 10 个元素的指针数组 p 每个元素存放一个字符串 2 若 int x 且有下面的程序片断 则输出结果为 D for x 3 x6 x printf x 2 d d n x A 3 B 3 C 3 D 3 4 4 4 4 5 5 5 5 3 在 while x 语句中的 x 与下面条件表达式等价的是 D A x 0 B x 1 C x 1 D x 0 4 已知 struct point int x int y struct rect struct point pt1 struct point pt2 struct rect rt struct rect rp rt 则下面哪一种引用是不正确的 D A rt pt1 x B rp pt1 x C rp pt1 x D rt pt1 x 5 若二维数组 a 有 m 行 n 列 则下面能够正确引用元素 a i j 的为 C A a j n i B a i n j C a i j D a i j CDDDC 二 分析程序并写出运行结果 25 分 每题 5 分 1 include stdio h main int n static char monthName Illegal month January February March April May June July August September October November December for n 1 n 12 n printf s n monthName n 运行结果是 January February March April May June July August September October November December 2 includestdio h define ARR SIZE 7 void YH int a ARR SIZE int n void PrintYH int a ARR SIZE int n main int a ARR SIZE ARR SIZE YH a ARR SIZE 1 PrintYH a ARR SIZE 1 void YH int a ARR SIZE int n int i j for i 1 i n i for j 1 j i j if j 1 i j a i j 1 else a i j a i 1 j 1 a i 1 j void PrintYH int a ARR SIZE int n int i j for i 1 i n i for j 1 j i j printf 4d a i j printf n 运行结果是 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 3 include stdio h main int i n for i 1 i 5 i printf Please enter n scanf d n if n 0 continue printf n d n n printf Program is over n 程序运行时输入 1 2 3 4 5 运行结果是 n 1 Please enter n Please enter n n 3 Please enter n Please enter n n 5 Program is over 4 include stdio h void Func int n main int i for i 0 i 2 i Func i void Func int n static int t 1 printf t d n t 运行结果是 t 1 t 2 5 include stdio h int Func int i main int i for i 3 i5 i printf d Func i printf n int Func int i static int k 10 for i0 i k return k 运行结果是 13 17 三 阅读并完成程序 在标有下划线的空白处填入适当的表达式或语句 使程序完整并符合题目要求 20 分 每空 2 分 1 下面程序用于读入 10 个字符串 然后找出最大的字符串并打印 include stdio h include string h main char str 10 80 maxstring 80 int i printf Enter ten strings n for i 0 i10 i scanf s str i strcpy maxstring str 0 for i 1 i10 i if strcmp maxstring str i 0 或 strcmp str i maxstring 0 strcpy maxstring str i printf The max string is s n maxstring 2 下面这个程序用于交换两个数组的对应元素的值 include stdio h define ARRAY SIZE 10 void Swap int x int y void Exchange int a int b int n void InputArray int a int n void PrintArray int a int n main int a ARRAY SIZE b ARRAY SIZE n printf Input array lenth n 10 scanf d n printf Input array a n InputArray a n printf Input array b n InputArray b n Exchange a b n printf After swap n printf Array a n PrintArray a n printf Array b n PrintArray b n void Swap int x int y int temp temp x x y y temp void Exchange int a int b int n int i for i 0 i n i Swap a i b i void InputArray int a int n int i for i 0 i n i scanf d a i void PrintArray int a int n int i for i 0 i n i printf d a i printf n 3 从键盘任意输入一个年号 判断它是否是闰年 若是闰年 输出 Yes 否则输出No 已知符合下列条件之一者 是闰年 能被 4 整除 但不能被 100 整除 能被 400 整除 include stdio h main int year flag printf Enter year scanf d year if year 4 0year 100 0 year 400 0 flag 1 else flag 0 if flag printf Yes n else printf No n 四 在下面给出的 4 个程序中 共有 15 处错误 包括语法错误和逻辑错 误 请找出其中的错误 并改正之 在错误的代码下边画一根横线 把正确的代码写在旁边 漏掉的代码正确插入合适的位置 30 分 每找 对 1 个错误 加 1 分 每修改正确 1 个 错误 再加 1 分 1 编程计算矩阵相乘之积 includestdio h define ROW 2 define COL 3 void MultiplyMatrix int a ROW COL int b COL ROW int c ROW ROW main int a ROW COL b COL ROW c ROW ROW i j printf Input array a n for i 0 iROW i for j 0 jCOL j scanf d a i j d printf Input array b n for i 0 iCOL i for j 0 jROW j scanf d b i j MultiplyMatrix a b c printf Results n for i 0 iROW i for j 0 jROW j printf 6d c i j c i j printf n void MultiplyMatrix int a ROW COL int b COL ROW int c ROW ROW int i j k for i 0 iROW i for j 0 jROW j for k 0 kCOL k c i j 0 c i j c i j a i k b j k b k j 2 编程输入 10 个数 找出其中的最大值及其所在的数组下标位置 include stdio h int FindMax int num int n int pMaxPos main int num 10 maxValue maxPos minValue minPos i printf Input 10 numbers n for i 0 i10 i scanf d num i num i maxValue FindMax num 10 maxPos maxPos printf Max d Position d n maxValue maxPos int FindMax int num int n int pMaxPos int i max max num 0 for i 1 i n i i 1 i n if num i max max num i pMaxPos i return max 3 韩信点兵 韩信有一队兵 他想知道有多少人 便让士兵排队报数 按从 1 至 5 报数 最末一个士兵报的数为 1 按从 1 至 6 报数 最末一个 士兵报的数为 5 按从 1 至 7 报数 最末一个士兵报的数为 4 最后再按 从 1 至 11 报数 最末一个士兵报的数为 10 你知道韩信至少有多少兵吗 include stdio h main int x x 0 while 1 if x 5 1 x 6 5 x 7 4 x 11 10 x 5 1 x 6 5 x 7 4 x 11 10 break x x printf x d n x 4 下面函数 Squeez 的功能是删除字符串 s 中所出现的与变量 c 相同的 字符 void Squeeze char s char c void Squeeze char s char c int i j j 0 for i 0 s i 0 i if s i c c s j s i j s i 0 s j 0 或 s j 0 五 编程 15 分 从键盘任意输入某班 10 个学生的成绩 调用 save 函数把数据存入到以你 的学号命名的磁盘文件中 然后打开该文件读出数据 对成绩进行由高 到低的排序 并打印成绩不及格的学生人数 最后再次调用 save 函数把 数据存入到原磁盘文件中 要求按照如下给出的函数原型进行编程 void save float score int n void Sort float score int n int Fail float score int n 要求用一维数组做函数参数编程实现成绩排序和统计成绩不及格的学生 人数 然后在主函数中打印这些结果 不能使用全局变量编程 参考程序如下 void load float score int n 3 分 FILE fp int i if fp fopen 02406101 rb NULL printf cannot open infile n return for i 0 in i if fread score i sizeof float 1 fp 1 if feof fp fclose fp return printf file read error n fclose fp void save float score int n 3 分 FILE fp int i if fp fopen 02406101 wb NULL printf cannot open file n return for i 0 in i if fwrite score i sizeof float 1 fp 1 printf file write error n fclose fp void sort float score int n 3 分 int i j k float t for i 0 in 1 i k i for j i 1 jn j if score j sco

温馨提示

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

评论

0/150

提交评论