1、国家二级 C语言程序设计机试(程序设计题)模拟试卷 3及答案与解析 一、程序设计题 1 请编写函数 fun,该函数的功能是:删除一维数组中所有相同的数,使之只剩一个。 数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10 注意:请勿改动 main函数和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若 干语句。 试题程序: #include #define N 80 int fun(int
2、a, int n) void main() FILE*wf; int aN=2, 2, 2, 3, 4, 4, 5, 6, 6, 6, 6, 7, 7, 8, 9, 9, 10, 10, 10, 10, i, n=20; prinff(“The original data: n”); for(i=0; i #include void fun(char*s, char t) main() char s100, t100; void NONO(); prinff(“ nPlease enter string s: ”); scanf(“ s”, S); fun(s, t); prinff(“ nT
3、he result is: s n”, t); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函数, 输出数据,关闭文件。 * char S100, t100; FILE, *rf, *wf; int i; rf=fopen(“in dat”, “r”); wf=fopen(“out dat”, “w”); for(i=0; i #define M 4 int fun(int aM) main() int 8rr2M=5, 8, 3, 45, 76,一 4, 12, 82; void NONO(); prinff(“max= d n”, fun(arr); NON
4、O(); void NONO() *本函数用于打开文件 ,输入数据,调用函数,输出数据,关闭文件。 * FILE* wf; int alTM=5, 8, 3, 90, 76,一 4, 12, 82; wf=fopen(“out dat”, “W”); fprintf(wf, “inax= d n”, fun(arr); fclose(wf); 4 请编写一个函数 fun,它的功能是:将 SS所指字符串中所有下标为奇数位置的字母转换为大写 (若该位置上不是字母,则不转换 )。 例如,若输入 “abc4Efg”,则应输出 ”aBc4EFg”。 注意:请勿改动主函数 main和其他函数中的任何内容,
5、仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include #include #include #include void fun(char*ss) void main() FILE*wf; char tt81, s81=“ab04Efg”; system(“CLS”); printf(“ nPlease enter an string within 80 characters: n”); gets(tt); printf(“ nAfter chang, the string n s”。 tt); fun(tt); printf(“ nbecomes n s n”, tt)
6、; * wf=fopen(“out dat”, ”W”); fun(s); fprintf(wf, “ s”, s); fclose(wf); * 国家二级 C语言 程序设计机试(程序设计题)模拟试卷 3答案与解析 一、程序设计题 1 【正确答案】 int fun(int a, int n) int i, j=1; f10r(i 1; i=a&ssi=z) ssi=ssi一 32; 【试题解析】 本题要求将给定字符串中奇数位置的字母转换为大写,需要先判断奇数位置以及是否是小写字母,如果是再通过其转换方法进行转换。 从 C语言的学习中知道,只要将小写字母减去 32即转成大写字母,将大写字母加上 32即转成小写字母。本程序用 if语句实现转换功能。