一套简单的C语言上机试题及答案详解.doc_第1页
一套简单的C语言上机试题及答案详解.doc_第2页
一套简单的C语言上机试题及答案详解.doc_第3页
一套简单的C语言上机试题及答案详解.doc_第4页
全文预览已结束

下载本文档

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

文档简介

C 语言上机模拟试题(附详细答案)1.程序填空题 请补充main函数,该函数的功能是:从键盘输入一组字符串,以“*”结束输入,并显示出这个字符串。例如,输入abcdefghi*,结果显示adcdefghi。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!#include #include #define N 80main() int i=-1,j=0; char strN; system(cls); printf(n Input a string n); do i+;/*found*/ scanf(_1_);/*found*/ while(_2_); printf(n*display the string* n); while(ji) /*found*/ printf(_3_); j+; 2.程序修改题下列给定程序中,函数fun()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请改正程序中的错误,使其能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#include #include #include #define MAXLINE 20/*found*/fun(char *pstr6) int I, j; char *p; for(i=0;i5;i+) for(j=i+1;j0) p=*(pstr+i);/*found*/ *(pstr+i)=pstr+j; *(pstr+j)=p; main() int I; char *pstr6,str6MAXLINE; system(cls); for(i=0;i6;i+) pstri=stri; printf(Enter 6 string(1 string at each line):n ); for(i=0;i6;i+) scanf(%s,pstri); fun(pstr); printf(The strings after sorting:n ); for(i=0;i6;i+) printf(%sn,pstri);3.程序设计题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include #define N 8typedef structchar num10; double s; STREC;double fun(STREC *a,STREC *b,int *n)main() STREC sN=GA05,85,GA03,76, GA02,69,GA04,85,GA01,91, GA07,72,GA08,64,GA06,87; STREC hN,t; FILE *out; int I,j,n; double ave; ave=fun(s,h,&n); printf(The %d student data which is lower than %7.3f:n , n,ave); for(i=0;in;i+) /*输出成绩低于平均值的学生记录*/ printf(%s %4.1fn,hi.num,hi.s); printf(n); out=fopen(out.dat,w); fprintf(out,%dn%7.3fn,n,ave); /*输出平均值*/ for(i=0;in-1;i+) for(j=i+1;jhj.s) t=hi; hi=hj; hj=t; /*将成绩由低至高排列*/ for(i=0;i0) 改为:if(strcmp(*(pstr+i),*(pstr+j)0)(3)将*(pstr+i)=pstr+j; 改为:*(pstr+i)= *(pstr+j);【解析】(1)此程序是在排序,所以不需要返回值。(2)字符串比较函数的调用形式为strcmp(s1,s2),该函数用来比较s1和s2所指字符串的大小。比较方法是:依次对s1和s2中对应位置上的字符两两进行比较,当出现第一对不同的字符时,即由这两个字符决定所在串的大小(字符的大小依据是其ASCII码值)。3.【答案】【解析】(1)本题主要考查结构体数组的有关概念以及指针的运算。这里需要使用循环语句和条件判断语句来实现,第1个循环是求出总分,然后求出平均分。第2个循环的作用是将分数低于平均分的学生记录存入数组b中,最后低于平均分的学生人数通过形参n传回。(2)按上述分析写出的函数是:1.double fun(STREC *a,STREC *b,int *n) int i,j=0; double av=0.0; for(i=0;iN;i+) av=av+ai.

温馨提示

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

评论

0/150

提交评论