2013秋C语言试卷标准答案(A卷)-20130114

更新时间:2023-08-25 21:27:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2013年秋C语言程序设计试卷标准答案(A卷)

一、单项选择题,每题2分,共15题。 (共30分)

1. D. 具有前述三个特征

2. B. _123

3. C. 3.0

4. C.

5. D. x>10&x<20 else总是与其之前最近的if配对

6. D. 80

7. A. a[10]=2;

8. C. &a[i]和a[i]

9. C. b=fun(a);

10. D. 嵌套调用和递归调用均可。

11. B. 地址

12. C. int *(q[5]);

13. C. stutype 是用户定义的结构体类型名

14. A. !

15. B. 0次

二、程序阅读题,每题3分,共10题。 (共30分)

1、D. 8,5,4,2

2、C. 19

3、D. 0 0 4

4、C. 12

5、A. 8

6、C. 求最大值的位置和最小值

7、C. ab5051

8、B. x=2, y=3

9、B. 34512

10、B. 7

三、填空题, 每题3分,共5题。 (共15分)

1.答案:m/10%10*100+m/100*10+m%10

2.答案:0

3.答案:36

4.答案:11

5. 答案:3

四、程序改错题, 每题5分。 (共10分)

注:共4题,每题中存在5个错误。限选2题。题目间评分不累计。

1.题目:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

#define N=11 //改为:#define N 11

for(i=N-1;i>=0;i--) // 改为:for(i=N-2;i>=0;i--)

a[i]=a[i-1];//改为:a[i+1]=a[i];

exit;}//改为:break;}

for(i=0;i<=N;i++) //改为:for(i=0;i<N;i++)

2. 题目:函数fun的功能是:计算正整数num的各位上的数字之积。例如,输入252,则输出应该是20。本程序中共有5处错误,请找出并改正。

#include “stdlio.h” //改为:#include “stdio.h”

long k; // k需要附初值,改为:long k=1;

num\=10; //改为:num/=10; 或 num=num/10;

scanf("%ld", n); //改为:scanf("%ld",&n);

printf("\n%ld\n",fun(long n)); // 改为:printf("\n%ld\n",fun(n));

3. 题目:fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的元素之和sum。本程序中共有5处错误,请找出并改正。

a=0; //改为:sum=0;

for(i=0;i<3;i++); //改为: for(i=0;i<3;i++)

scanf("%d",a[i][j]); //改为:scanf(“%d”,&a[i][j]);

sum=sum+a[i][j]; //改为:sum=sum+a[i][i]; 或 sum+=a[i][i];

printf("sum=%d\n,sum”); //改为:printf("sum=%d\n",sum);

4. 题目:下面程序的功能是:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min代表最低分,avg代表平均分。本程序中共有5处错误,请找出并改正。 float a[8],min,max,avg; // float a[10],min,max,avg;

for(i=0;i<=10;i++) // for(i=0;i<10;i++)

scanf("%f",a); // scanf("%f",&a[i]);

max=min=avg=a[1]; // max=min=avg=a[0];

if(min<a[i]) // if (min>a[i])

五、编程题。 (共15分)

题目:从文本文件stud.txt中读取学生成绩,并按照平均分进行降序排序。 注:程序开始部分已给出。

#include "stdio.h"

#include "stdlib.h"

struct student

{

int num;

char name[10];

float score[3];

float ave;

} stu[5];

参考答案:

void open()

{

FILE *fp;

int i;

//文件打开操作

fp=fopen("stud.txt","a+");

if(fp==NULL)

{

printf("cannot open the file\n");

exit(0);

}

for(i=0;i<5;i++)

{

printf("%10d%4s %f %f %f %f \n", stu[i].num,

stu[i].score[1], stu[i].score[2], stu[i].ave);

}

fp=fopen("stud.txt","a+");

}

//排序函数

void sort()

{

FILE *fp;

int i,j;

student t;

for(j=0;j<5;j++)

{

for(i=j+1;i<5;i++) stu[i].name, stu[i].score[0],

if(stu[i-1].ave<stu[i].ave)

{

t=stu[i];

stu[i]=stu[i-1];

stu[i-1]=t;

}

}

printf("平均分排序结果:\n");

printf("学号 姓名 成绩1 成绩2 成绩3 平均分\n");

for(i=0;i<5;i++)

printf("%d %4s %f %f %f %f\n", stu[i].num, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].ave);

fp=fopen("stu-sort.txt","a+");

for(i=0;i<5;i++) \

fprintf(fp,"%d %4s %f %f%f %f\n", stu[i].num, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].ave);

}

void main()

{

FILE *fp;

int i;

fp=fopen("stud.txt","a+");

if(fp)==NULL)

{

printf("cannot open the file\n");

exit(0);

}

for(i=0;i<5;i++)

{

fscanf(fp,"%d%s%f%f%f", &stu[i].num, &stu[i].name, &stu[i].score[0],

&stu[i].score[1], &stu[i].score[2]);

stu[i].ave=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;

}

fclose(fp);

open();

sort();

}

本文来源:https://www.bwwdw.com/article/25ei.html

Top