南京师范大学2010-2011学年第2学期。
c程序设计》课程期末上机试卷(b)
考试时间: 70分钟, 满分:40分,清注意按要求保存文件)
试卷密码c02
一、 改错题(20分)
题目】将一个整数插入一个已排序的数组而不改变数组的次序。
例如:将34插入数组:1 3 23 28 45 48 89 103 221。则数组变为:
含有错误的源程序如下:
#include <>
void main()
int num,i,j;
printf("insert data: "
scanf("%d",num);
for(i=10;i>=0;i--)
if(num<=a[i])
a[i+1]=a[i];
elsebreak;
a[9]=num;
printf ("now array a: "
for(i=0; i<=10;i++)
printf("%d ",a[i]);
printf("");
二、 编程题(20分)
题目】输入一个整数,在已有数组中进行二分查找,将查找结果写到文件。若找到,写入是第几个整数,若没找到,写入没找到。
编程要求】
1. main函数中的数组数值可以在定义时给定,调用函数查找数据,再将查找结果写入文件。
2. 功能函数int find(int a,int n,int x)在长度为n的数组a中查找整数x。找到返回x 在数组中的位置(下标+1),没找到返回-1。
最后将考生本人的学号也保存到文件中。
测试数据】 1 3 8 9 22 31 43 49 50 110
查找31运行结果】 1 3 8 9 22 31 43 49 50 110
31 at no.6
my no#include <>
void main()
int num,i,j;
printf("insert data: "
scanf("%d",&num);
for(i=8;i>=0;i--)
if(num<=a[i])
a[i+1]=a[i];
elsebreak;
a[i+1]=num;
printf ("now array a: "
for(i=0; i<10;i++)
printf("%d ",a[i]);
printf("");
#include<>
int find (int a,int n,int x)
int left,right,m;
left=0;right=n-1;
while(left<=right)
int x,loc;file *fp;
fp=fopen("d:\\21110108\\"w+")
printf("finded data :"
fprintf(fp,"finded data :"
scanf("%d",&x);
fscanf(fp,"%d",&x);
loc=find(a,10,x);
printf("%d at no.%d",x,loc);
fprintf(fp,"%d at no.%d",x,loc);
fprintf(fp," my number is 21110108");
fclose(fp);
11年6月c语言上机试卷 A
南京师范大学2010 2011学年第2学期。c程序设计 课程期末上机试卷 a 考试时间 70分钟,满分 40分,清注意按要求保存文件 试卷密码c01 一 改错题 20分 题目 以下程序的功能是找出所有的3位数的素数,并将其写入文件中。含有错误的源程序如下 include int prime int ...
13年6月C语言上机真题
一 改错题。注意事项 1.标有 error?的程序行有错,请直接在该行修改 2.请不要删除或修改 error?错误标志 3.请不要将错误行分成多行 4.请不要修改错误语句的结构或其中表达式的结构,如错误语句 if a b x x y 正确形式为if a b x x y 若改成 if b a x x ...
C语言上机试卷C
本试卷完成时间 90分钟 一 改错题 16分 程序功能 函数findword的功能是 在s指向的由若干个英文句子组成的字符串中搜索包含t指向子串的单词,将找到的所有包含t子串的单词复制到ch指向的二维数组中,函数返回找到的单词个数。称s字符串为 被搜索字符串 t子串为 搜索字符串 测试数据与运行结果...