江苏省计算机二级C语言2005年春(4)

2020-05-08 11:35

void sort(struct T items[],int low,int high) {struct T temp; int k,j;

for(k=low;k

for(j=low;jitems[j+1].name) ② {temp=items[j];items[j]=items[j+1];items[j+1]=temp;} }

void main(void)

{struct T stu[4]={\ ③ \ int k;

sort(stu,0,4);

printf(\ for(k=0;k<5;k++)

printf(\ ④ }

【知识点】冒泡排序、结构体数组、程序的调试

【解析】程序中的错误一般可以分为两类,一类是语法错误,即程序中有拼写错误,书写不

符合C语言的规定等,此类错误可通过调试(按F9键),根据提示进行改正。另一类是逻辑错误,程序调试已通过(报success),但运行结果不正确,此类错误的修改必须要理解程序后方能改正。

本题使用起泡法完成排序,①处j

j+1才取到high-k-1,例如,刚开始当k为0时,最后一个比较的元素下标为high-1,而实际上根据实参(值已为4)传递而来的最后一个元素的下标应为high,故①处应改为j

①j

②if(strcmp(items[j].name, items[j+1].name)>0) ③stu[5]

④stu[k].name, stu[k].num

二、编程题

【知识点】字符串处理、函数调用、数据文件的使用

【解析】编程题的结果一般都是客观的,这样便于老师主观阅卷评分,虽然考生个人的准考

证号是各异的,对评阅老师却是可以通过所交磁盘标签直接观察到,故必须如实输入,不能直接套用题中例子。注意,按要求必须调用函数,且使用数据文件完成输出。使用数据文件有5大步骤:①#include ,②用FILE *定义指针,③用fopen(\打开文件并赋值给指针,④用fprintf输出结果,⑤用fclose关闭文件。

【注意】fopen(\中盘符A:后要加双斜杠表示根目录,因为C语言用转义

字符'\\\\'才能表达字符\\;另外,文件的命名一定要严格按照规定处理,千万不要随便命

名。 【参考答案】 #include #include #include

void count(char a[],char w[][10],int n,int b[]) {int i=0,j,k=0;char s[10]; for(i=0;a[i]!=0;i++)

{if(isalpha(a[i]))s[k++]=a[i]; /* isalpha函数用于判断字符是否为字母*/

/*此句将连续字母组成的一个单词存放于s中,便于与二维数组中的某一行进行比较*/ else

{s[k]= '\\0'; /*加上'\\0'才能使s中存放的是字符串,才能使用strcmp函数进行比较*/ for(j=0;j

if(strcmp(s,w[j])= =0){b[j]++;break;} k=0; /*让s重新存放另一个单词*/ } } }

main() {FILE *fp;

char line[80]=\/*按要求初始化,用二维字符数组的一行存放一个单词便于后面比较处理*/ int c[6]={0},m;

count(line,word,6,c);fp=fopen(\ if(fp= =NULL){printf(\ for(m=0;m<6;m++)fprintf(fp,\

fprintf(fp,\注意输入实际准考证号*/ .. fclose(fp); }


江苏省计算机二级C语言2005年春(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:优秀示范管理小区迎检资料总目录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: