1、高级语言程序设计模拟试题解析1. 输入一个字符串,内有数字和非数字字符,例如:“A123x456 17960? 302tab5876”,将其中连续的数字作为一个整数,依次存在到一数组a中。例如,123放在a0,456放在a1统计共有多少个整数,并输出这些数。(完成fun函数)如:输入A123x456 17960? 302tab5876,输出为共有5个整数,分别为123,456,17960,302,5876。#includevoid fun(char *p,int t,int *x) int main() char st80; int a80,n,i; gets(st); fun(st,a,&n
2、); printf(共有%d个整数:n,n); for(i=0;in;i+) printf(第%d个整数为:%dn,i+1,ai); return 0;2完成encrypt函数,实现加密功能:将字符串中所有小写英文字母循环加密。如a到b,b到c,,z到a。如输入zy have a little apple!,输出为:az ibwf b mjuumf bqqmf!#include #include void encrypt(char *s) int main() char t180,ch; gets(t1); printf(nthe original data is :%s,t1); encry
3、pt(t1); printf(nthe resulted data is :%s,t1); printf(n); return 0;3. 用选择法实现对10个整数按从小到大的顺序排序输出(要求完成sort函数)。#includeint main() int a10,i,j; void sort(int *); for(i=0;i10;i+) scanf(%d,&ai); printf(nthe original data is :); for(i=0;i10;i+) printf(%d ,ai); sort(a); printf(nthe result data is :); for(i=0;
4、i10;i+) printf(%d ,ai); puts(); return 0; void sort(int *p) 4. 编写一个函数实现字符串复制功能,不能使用strcpy函数。(完成copy_string函数)#includeint main() char a100,b20; void copy_string(char *,char *); gets(b); printf(n the original data is :%s,b); copy_string(a,b); printf(n the result data is :%sn,a); return 0; void copy_st
5、ring(char *p,char *q) 5. 完成fun函数:统计tt所指字符串中a到z共26个小写字母各自出现的次数,并依此放在pp所指数组中。例如:当输入abcdefgabcdeabc后,程序的输出结果应该为:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0#include void fun(char *tt,int pp)void main() char aa1000; int bb26,k; printf(nplease enter a char string:); scanf(%s,aa); fun(aa,bb); for(k=0;k26;k+) pri
6、ntf(%d ,bbk); printf(n); 6. 用冒泡法实现对10个整数按从大到小的顺序排序输出(完成sort函数)。#includeint main() int a10,i,j; void sort(int *); for(i=0;i10;i+) scanf(%d,&ai); printf(nthe original data is :); for(i=0;i10;i+) printf(%d ,ai); sort(a); printf(nthe result data is :); for(i=0;i10;i+) printf(%d ,ai); puts(); return 0; v
7、oid sort(int *p) 7编写函数:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。如输入:i am a little ,little apple!,变换后为:i aM A LiTtLe ,LiTtLe aPpLe!#include #include #define MAX 100void fun(char *ss)void main() char tt51; printf(input a string within 50 characters:n); gets(tt); printf(nnafter changing,the stringn
8、%s,tt); fun(tt); printf(nbecomesn %s,tt); printf(n); 8. 有一篇文章,共有4行,每行有10个字符。要求分别统计出其中英文大写字符、小写字母、数字、空格以及其他字符的个数。(完成count函数)#includeint main() void count(char (*p)10,int ); char str410; int wzxmt5=0,0,0,0,0;/分别统计大写、小写、数字、空格、其他字符个数 printf(input 4 string:n); for(int i=0;i4;i+) gets(stri); count(str,wzx
9、mt); printf(n the result is big character n is :%d,wzxmt0); printf(n the result is little character n is :%d,wzxmt1); printf(n the result is digit character n is :%d,wzxmt2); printf(n the result is space character n is :%d,wzxmt3); printf(n the result is other character n is :%d,wzxmt4); return 0;vo
10、id count(char (*p)10,int wzxmt) 9. 从键盘输入5个学生的信息(包括姓名,成绩),存到磁盘文件上。然后再从磁盘文件上读取第1,3,5个学生数据输入计算机,并在屏幕上显示出来。要求完成save函数和read函数。#include#include#define N 5struct Student char name10; int socre;studN;void save() void read() int main() printf(please enter data of student:n); for(int i=0;iN;i+) scanf(%s,%d,st
11、udi.name,&studi.socre); save(); read(); return 0;10. 从键盘上读入3个字符串,对它们按字母大小的升序排序,然后把排好序的字符串送到磁盘文件中保存,把文件保存到d盘根目录下,完成write函数。#include#include#includevoid write(char (*st)20,FILE *fp1) void output(FILE *fp2) char buf30; if (fp2=fopen(d:file.txt,r)=NULL) printf(cant open filen); exit(0); while (fgets(buf
12、,20,fp2) printf(%s,buf); fclose(fp2);int main() FILE *fp; char a320,t10; int i,j,k; printf(Enter three strings:n); for(i=0;i3;i+) gets(ai); write(a,fp); output(fp); return 0;11. 从键盘输入两个字符串,分别保存在磁盘文件“file1”和“file2”中,完成hebing函数,要求把两个文件中的信息合并(按字母顺序排序),输出到一个新文件“file3”中去。(file1、file2和file3都存放在d盘根目录下)#inc
13、lude#includevoid creatfile() FILE *fp; char st20; printf(输入第一个字符串:); gets(st); if (fp=fopen(d:file1.txt,w)=NULL) printf(can not open file); exit(0); fputs(st,fp); fclose(fp); printf(n输入第二个字符串:); gets(st); if (fp=fopen(d:file2.txt,w)=NULL) printf(can not open file); exit(0); fputs(st,fp); fclose(fp);
14、void hebing(char st,int n) void output(FILE *fp1,int n) char ch; if (fp1=fopen(d:file3.txt,r)=NULL) printf(can not open file); exit(0); printf(n); while (ch=fgetc(fp1)!=EOF) putchar(ch); printf(n); fclose(fp1);int main() FILE *fp; int i,j,n,i1; char c100,t,ch; creatfile(); if(fp=fopen(d:file1.txt,r)
15、=NULL) printf(ncan not open filen); exit(0); printf(file1:n); for(i=0;(ch=fgetc(fp)!=EOF;i+) ci=ch; putchar(ci); fclose(fp); i1=i; if(fp=fopen(d:file2.txt,r)=NULL) printf(ncan not open filen); exit(0); printf(nfile2:n);for(i=i1;(ch=fgetc(fp)!=EOF;i+) ci=ch; putchar(ci); fclose(fp); hebing(c,i); prin
16、tf(nfile3:n); output(fp,i); return 0;12. 写一个函数,完成将任意一个数组中的值按逆序重新存放。(数组长度不超过6位)要求:数组内容的内容输入和重新存放后的输出都要在主函数中实现。如:输入内容为5个整数,分别为8 6 5 4 1,重新存放后输出为:the result is 1,4,5,6,8。13. 写一个判断素数的函数,在主函数输入一个整数,是素数时输出yes,否则输出no,结果要求在主函数中输出。14. 用递归调用的方法求n!。如:输入为5,输出为5!=120。15. 编写一个函数,实现在一个升序排列的整型数组1,3,5,7,14,23,45,87,
17、155,231;中插入任意一个整数的功能,保持整型数组仍然升序排列, 并在main函数中调用此函数,输入数据和最后输出都在主函数中实现。#includeint a11=1,3,5,7,14,23,45,87,155,231;int main() int c,i; void fun(int a,int c); printf(input an integer:); scanf(%d,&c); fun(a,c); for(i=0;i11;i+) printf(%d ,ai); printf(n); return 0; void fun(int a,int t) 16. 输入两个整数,要求用两个函数求
18、出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。如:输入36和60,输出为:zdgys=12,zxgbs=18017. 建立动态数组,输入5个学生的成绩,统计低于60分的学生成绩的个数,要求输入和输出功能在主函数中完成。18. 输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。19. 按以下递归公式求函数的值。 例如,当给n输入5时,输出为result is 18,(要求用递归实现,并且输入和输出都要在主函数中实现)。20. 用递归法将一个整数n转换成字符串。(n为不超过6为的整数)如输入为483,输出为:转换后的字符串为:483;如输入为-13579,输出为:转换后
19、的字符串为:-13579。注意:输入和输出都要在主函数中实现。21. 编写一个函数,用来分别求数组score_1(有5个元素)和数组score_2(有10个元素)各元素的平均值。要求:输入和输出都要在主函数中实现。如:输入第一个数组内容为:1 2 3 4 5,第二个数组内容为:2 4 6 8 10 12 14 16 18 20,输出分别为3和11。 22. 编写一个函数,实现将两个字符串连接起来,并在main函数中调用此函数,不要调用系统提供的strcat函数。(两个字符串长度之和不超过100)如输入第一个字符串为I LOVE,第二个字符串为: my motherland,则输出为I LOVE
20、 my motherland。23. 有一个一维数组score,内放10个学生成绩,编写完成ave函数求平均成绩,并将10个成绩中不及格(小于60)的成绩和该成绩在数组中的序号输出。#includeint main() void ave(int a10); int a10,i; for(i=0;i10;i+) scanf(%d,&ai); ave(a); return 0; void ave(int a10) 24. 编写完成fun函数,比较两个字符串的大小,并在main函数中调用此函数,不要调用strcmp函数。要求:输入和输出都要在主函数中实现。如:根据输入不同输入内容,对应输出“两个字符
21、串相等”、“第一个字符串大”、“第二个字符串大”。#include#include int fun(char a,char b) int main() char a100,b100,i; gets(a); gets(b); i=fun(a,b); switch(i) case 0:printf(第一个字符串大n);break; case 1:printf(第二个字符串大n);break; default:printf(两个字符串相等n); return 0; 25. 编写一个函数,将一个字符串中的原音字母赋值到另一个字符串中,并在main函数中调用此函数,输入数据和最后输出都在主函数中实现。2
22、6. 编程实现:编写完成retu函数,实现统计第二个字符串在第一个字符串中出现的次数,在主函数中调用统计函数并输出结果。如:第一个字符串为sdjfzhyishgzhyzhyiszdhxnwzxmt,第二个字符串为zhy,输出结果为:3#include#includeint main() int retu(char a,char b); char c200,d100; gets(c); gets(d); printf(出现的次数为:%dn,retu(c,d); return 0;int retu(char a,char b) 27. 有3个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键
23、盘输入3个学生数据,要求完成max函数和print函数,找到并输出平均成绩最高分的学生的信息(包括学号、姓名、3门课程成绩、平均分数)(用结构体知识)。#include#define N 3struct Student int num; char name20; float score3; float aver;int main() void input(struct Student stu); struct Student max(struct Student stu); void print(struct Student stu); struct Student stuN,*p=stu;
24、input(p); print(max(p); return 0; void input(struct Student stu) int i; printf(请输入各个学生的信息:学号、姓名、三门课成绩:n); for(i=0;iN;i+) scanf(%d%s%f%f%f,&stui.num,stui.name,&stui.score0,&stui.score1,&stui.score2); stui.aver=(stui.score0+stui.score1+stui.score2)/3; struct Student max(struct Student stu) void print(
25、struct Student stu) 28. 设计候选人得票统计程序,有3个侯选人(分别是库里、哈登、勒布朗),共有50张选票,最后统计出各人的得票结果。(完成count函数)#include #include struct person char name20; int cnt;void count(struct person st,char *tt) void output(struct person st) int i; printf(n); for(i=0;i3;i+) printf(n%15s%5d张票,sti.name,t);int main() char *xp50=库里,哈登
26、,勒布朗,勒布朗,库里,库里,勒布朗,库里,勒布朗,库里,库里,库里,库里,库里,库里,库里,库里,库里,库里,库里,库里,库里,勒布朗,勒布朗,哈登,勒布朗,勒布朗,库里,库里,哈登,库里,哈登,库里,库里,库里,库里,库里,哈登,哈登,哈登,哈登,库里,库里,哈登,哈登,哈登,库里,库里,库里,库里; struct person leader3=库里,0,哈登,0,勒布朗,0; count(leader,xp); output(leader); printf(n); return 0;29. 学生记录由学号和成绩组成,N名学生的数据已经在主函数中放入结构体数组,编写完成fun函数,把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n返回,平均分通过函数值返回。#include #define N 8typedef struct char num10;double s;STREC;double fun(STREC *a,STREC *b,int *n) void main() STREC sN=gao05,85,gao03,76,gao02,69,gao04
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2