西安聪智电子科技有限公司 www.conggo.com 4 月上机考试题库 编程题
编程题
考试做题要求:
1、按题目要求编写部分代码,不要改动已经有的代码。
2、在运行时如果遇到死循环,按 Ctrl+Break 键结束运
行。
3、题目做完后必须要有运行结果,没有运行结果没有
分。
1、请编写函数 fun,函数的功能是: 移动字符串中的内容,移
动的规则如下: 把第 1 到第 m 个字符, 平移到字符串的最后,
把第 m+1 到最后的字符移到字符串的前部。
例如, 字符串中原有的内容为: ABCDEFGHIJK, m 的值为
3, 则移动后, 字符串中的内容应该是: DEFGHIJKABC。
注意:部分源程序在文件 PROG1.C 中。
请勿改动主函数 main 和其它函数中的任何内容, 仅在函
数 fun 的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <string.h>
#define N 80
void fun1(char *w) /* 本函数的功能是将字符串中字符循环
左移一个位置 */
{
int i; char t;
t=w[0];
for(i=0;i<strlen(w)-1;i++)
w[i]=w[i+1];
w[strlen(w)-1]=t;
}
void fun(char *w, int m) /*可调用 fun1 函数左移字符 */
{
}
main()
{ char a[N]= "ABCDEFGHIJK";
int m;
printf("The original string:");puts(a);
printf("Enter m: ");scanf("%d",&m);
fun(a,m);
printf("The string after moving:");puts(a);
printf("");
NONO();
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
FILE *rf, *wf ; char a[N] ; int m, i ;
rf = fopen("c:\test\in.dat","r") ;
wf = fopen("c:\test\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d %s", &m, a) ;
fun(a, m) ;
fprintf(wf, "%s", a) ;
}
fclose(rf) ; fclose(wf) ;
}
2、学生的记录由学号和成绩组成,N 名学生的数据已在主
函数中放入结构体数组 s 中, 请编写函数 fun,它的功能是:
把指定分数范围内的学生数据放在 b 所指的数组中,分数
范围内的学生人数由函数值返回。
例如,输入的分数是 60 69, 则应当把分数在 60 到 69 的
学生数据进行输出,包含 60 分和 69 分的学生数据。主函
数中将把 60 放在 low 中,把 69 放在 heigh 中。
注意: 部分源程序在文件 PROG1.C 文件中。
请勿改动主函数 main 和其它函数中的任何内容,仅在函
数 fun 的花括号中填入你编写的若干语句。
#include <stdio.h>
#define N 16
typedef struct
{ char num[10];
int s;
} STREC;
int fun( STREC *a,STREC *b,int l, int h )
{
}
main()
{ STREC s[N]={{"GA005",85},{"GA003",76},
{"GA002",69},{"GA004",85},{"GA001",96},
{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",94},{"GA012",64},
{"GA014",91},{"GA011",90},{"GA017",64},
{"GA018",64},{"GA016",72}};
STREC h[N],tt;FILE *out ;
int i,j,n,low,heigh,t;
printf("Enter 2 integer number low & heigh : ");
scanf("%d%d", &low,&heigh);
if ( heigh< low ){ t=heigh;heigh=low;low=t; }
n=fun( s,h,low,heigh );
1