C 语言30道例题东大期末考试+答案.docx

上传人:牧羊曲112 文档编号:3153699 上传时间:2023-03-11 格式:DOCX 页数:20 大小:42.26KB
返回 下载 相关 举报
C 语言30道例题东大期末考试+答案.docx_第1页
第1页 / 共20页
C 语言30道例题东大期末考试+答案.docx_第2页
第2页 / 共20页
C 语言30道例题东大期末考试+答案.docx_第3页
第3页 / 共20页
C 语言30道例题东大期末考试+答案.docx_第4页
第4页 / 共20页
C 语言30道例题东大期末考试+答案.docx_第5页
第5页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C 语言30道例题东大期末考试+答案.docx》由会员分享,可在线阅读,更多相关《C 语言30道例题东大期末考试+答案.docx(20页珍藏版)》请在三一办公上搜索。

1、C 语言30道例题东大期末考试+答案29题号 题目 第几题 1 编写一个售货机计算程序,用于水果店售货员算账。苹果每千克3.2元,1 梨每千克1.96元,香蕉每千克3元,樱桃每千克24元。某顾客购买1.5斤苹果,2斤梨,3斤香蕉,1.5斤樱桃,付给售货员100元。要求规范输出这位顾客购买各类水果的名称,对应的重量和应付价钱,显示顾客所付款项,输出应找回的款项。 #include #include void main float n4,apple=3.2,pear=1.96,banana=3,Cherry=24,price,charge,money; int i; printf(请输入水果重量苹

2、果 梨 香蕉 樱桃 (不买的水果请输入0):n); for(i=0;i4;i+) scanf(%f,&ni); printf(应付钱 %.2f 元n,price=apple*n0+pear*n1+banana*n2+Cherry*n3); printf(请输入付款数:);scanf(%f,&money); printf(应找钱 %.2f 元n,money-price); 2 编写一个程序,对输入的一组整数,分别统计其中正整数和负整数的个数。 #include main int i,sum1=0,sum2=0; printf(请输入一组整数,0结尾); scanf(%d,&i); while(i

3、!=0) if(i0) sum1=sum1+1; else sum2=sum2+1; scanf(%d,&i); 1 29题号 printf(%d,%d,sum1,sum2); printf(n); 题目 第几题 3 统计100-500之间各个数字之和为9的三位数,输出这些三位数。例如351的各个数字之和为9。 #include main int a,b,c,t; for(t=100;t500;t+) a=t%10; b=t/100; c=(t/10)%10; if(a+b+c=9) printf(%d,t); return 0; 4 编程求1-1000之间的所有完数。 #include ma

4、in int m,i,s; for(m=2;m1000;m+) s=1; for(i=2;i=m/2;i+) if(m%i=0) s=s+i; if(s=m) printf(%d is 完数,m); printf(n); 1 1 29题号 题目 第几题 5 已知银行整存整取存款不同期限的利率分别为:3.30%期限半年;3.50%期限一年;1 4.40%期限二年;5.00%期限三年;5.50%期限五年;到期利息税为5%。要求输入存取的本金和期限,求到期能从银行得到的利息、本金及总和。 6 输入三角形的三边长,判断这个三角形是否是直角三角形。 7 输入一串字符,统计其中数字、大写字母、小写字母以及

5、其他字符的个数。 8 编写程序:找出不超过1000的十位数字为1,个位数字为3或7的所有数。例如:13、17、113、317等。 #include main int a,b,c,t; for(t=10;t1000;t+) a=t%10; b=(t/10)%10; if(a=3|a=7)&b=1) printf(%d,t); printf(n); return 0; 1 1 1 9 某企业利润提成的规则如下:1)利润低于或等于10万元的,可提成奖金%10;2)1 利润高于10万元,低于20万元时,低于10万元的部分按%10提成,另外部分可以提成7.5%;3)利润高于20万低于40万元的,其中20

6、万元按前面的方法发放,另外的部分按5%提成;4)利润高于40万元的,40 万元按前面的方法提成,高于部分按3%提成。从键盘输入利润,输出应发的提成。 10 利用公式e=1/1!+1/2!+1/3!+1/n!计算e的值并输出。 1 #include main float e=1.0; int t=1,i=1; while(1.0/t0.00001) 29题号 i+; e=e+1.0/t; t=i*t; printf(%fn,e); 题目 第几题 11 从键盘输入一个字符串str,统计其中大写英文字母A,B,C,D出现的次数。要求输出原始字符串,以及统计的结果。 #include main cha

7、r str100; int n=0,i; gets(str); for(i=0;stri!=0;i+) if(stri=A|stri=B|stri=C|stri=D) n+; puts(str); printf(%d,n); 12 将字符串a中的每个字符用加3的方法加密并存入数组b中,再对b中的字符串解密存入数组c。要求:初始化字符串a,依次输出字符串a、b、c。 #include main char a=hdckskshalsjak,b100,c100; int i,j=0,u=0; for(i=0;ai!=0;i+) bj=ai+3; j+; bj=0; for(j=0;bj!=0;j+)

8、 2 2 29题号 cu=bj-3; u+; cu=0; puts(a); puts(b); puts(c); 题目 第几题 13 输入两个字符串str1和str2,计算并输出str2在str1中出现的位置,要求初始化字符串str1和str2,输出原始字符串str1和str2,以及位置结果值。 #include void main char str1=weallhopeforsuccess,str2=for,i,j=0,k,p; for(i=0;str1i!=0;i+) if(str2j=str1i) j+; k=i; p=j-1; else j=0; printf(%dn,k-p); put

9、s(str1); puts(str2); 14 从键盘输入一个字符串str和一个字符ch,删除字符串str中和输入字符ch相同的所有字符,输出原始字符串str以及删除字符ch后的字符串str。 15 从具有10个元素的一维整型数组中查找最小值的元素,然后与数组的第一个元素对调。要求:初始化一维数组,输出该数组以及对调元素的数组。 #include main 2 2 29题号 题目 第几题 int i,temp,b,a10=1,2,3,5,6,10,13,67,8,9; int max=a0; for(i=0;i10;i+) printf(%3d,ai); printf(n); for(i=0;

10、imax) max=ai; b=i; printf(max=%dn,max); temp=ab; ab=a0; a0=temp; for(i=0;i10;i+) printf(%3d,ai); printf(n); 16 在一个具有10元素的整型数组a中,删除数组元素值为奇数的所有数组元素。要求:初始化数组a,输出原始数组以及删除数据的数组。 #include void main int a10=2,4,2,5,6,7,3,7,4,8,b10; int i,j=0,k; for(i=0;i10;i+) printf(%5d,ai); printf(n); for(i=0;i10;i+) if(

11、ai%2=0) 2 29题号 bj=ai; j+; k=j; for(j=0;jk;j+) printf(%5d,bj); printf(n); 题目 第几题 17 将10个整数存入数组,删除数组中指定的第n个元素。 #include main int a10=1,2,3,4,5,6,7,8,9,10,i,j; for(j=0;j10;j+) if(aj=6) aj=aj+1; j+; printf(%d ,aj); 2 18 初始化一个4x5的矩阵,求其中最大元素和最小元素所在的行号,对调最大最小2 元素,输出行号、列号、对调后的矩阵。 #include main int a45=1,2,3

12、,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,i,j; int max=a00,min=a00,c=0,d=0,e=0,f=0; int temp; for(i=0;i4;i+) for(j=0;j5;j+) printf(%4d,aij); 29题号 题目 第几题 printf(n); for(i=0;i4;i+) for(j=0;jmax) max=aij; c=i; d=j; printf(max is %d,在第%d行第%d列,max,c,d); printf(n); for(i=0;i4;i+) for(j=0;j5;j+) if(aij

13、min) min=aij; e=i; f=j; printf(min is %d,在第%d行第%d列,min,e,f); printf(n); temp=acd; acd=aef; aef=temp; for(i=0;i4;i+) for(j=0;j5;j+) 29题号 printf(%4d,aij); printf(n); 题目 第几题 19 编写函数int fun(int n),判定n是否为十位数字为1,个位数字为3或7的数。2 若是,函数返回1,否则返回0。 要求:在主函数中调用fun函数,并在主函数中输出1000之间的所有十位数字为1,个位数字为3或7的数。 #include int

14、fun(int n) int a,b; a=n%10; b=n/10%10; if(a=3|a=7) if(b=1) return 1; else return 0; else return 0; main int a,n; for(n=3;n1001;n+) a=fun(n); if(a=1) printf(%5d,n); if(a=0) continue; 20 初始化数组为10个学生的某门课成绩,求出其中最高成绩、最低成绩及平均值,2 统计成绩低于60分的人数、高于平均值的人数和低于平均值的人数。要求:输29题号 题目 第几题 出原始成绩、最高成绩、最低成绩、平均成绩、低于60分的人数、

15、高于平均值的人数、低于平均值的人数。 21 已知矩阵a44,交换矩阵中最大元素所在的列与次大元素所在的列。 要求:编写函数void change(int a44)交换最大元素所在的列与次大元素所在的列; 在主函数中初始化原始矩阵,输出原始矩阵以及交换发生后的矩阵。 例如:初始化矩阵为: 交换后矩阵为: 1 4 5 8 1 5 4 8 3 2 6 7 #include void change(int a44) int i=0,j=0,n=0,m=0,x,y,s; int max,temp1,temp2; max=a00; for(i=0;i4;i+) for(j=0;j=max) max=aij

16、; x=i;y=j; temp1=axy; axy=0;max=a00; for(n=0;n4;n+) for(m=0;m=max) max=anm; s=m; axy=temp1; for(i=0;i4;i+) temp2=ais; ais=aiy; aiy=temp2; 3 29题号 题目 第几题 main int a44=1,2,15,16,5,6,7,8,9,10,11,12,13,14,3,4; int i,j; printf(Orignal:n); for(i=0;i4;i+) for(j=0;j4;j+) printf(%2d ,aij); printf(n); change(a

17、); i=0;j=0; printf(Changed:n); for(i=0;i4;i+) for(j=0;j4;j+) printf(%2d ,aij); printf(n); 22 编写函数void fun(char str30,char a),删除字符串str中所有a代表的字3 符,被删除后的字符依次向前移动。 要求:在主函数中初始化字符数组,并输入字符a,输出原字符数组及删除结果。 例如:初始化字符数组str30=”This is a test of C language.”,输入字符a=t,则删除之后的结果为”This is a es of C language.”。 23 编写函数

18、int StrCount(char* str1,char* str2)。Str1和str2为两个输入的字符串。函数统计str2在str1中出现的次数,返回该数值。要求:在主函数main中初始化str1和str2,调用函数StrCount(str1,str2)后输出结果。如输入str1为howareyouareGGGare,str2为are,那么调用函数StrCount后函数返回3。 #include int StrCount(char *str1,char *str2) int i=0,j=0,ncourt=0; for(i=0;*(str1+i)!=0;i+) if(*(str1+i)=*(

19、str2+j) for(j=0;j3;j+) 3 29题号 题目 第几题 if(*(str1+i+j)!=*(str2+j) break; if(j=3) j=0;ncourt+; return(ncourt); main char a=howareyouarehhare; char b=are; int n; n=StrCount(a,b); printf(%dn,n); 24 编写函数void StrMid(char* str1,int m,int n,char* str2)。Str1为一个输入的字符串,函数把str1从第m个字符开始的n个字符拷贝到str2中。函数没有返回值。要求在主函数

20、main中读入str1,调用函数StrMid(str1,m,n,str2)后输出str2的结果。如:输入str1为goodmorning,m为1,n为3,调用函数StrMid(str1,m,n,str2)后str2为ood。#include void StrMid(char* str1,int m,int n,char* str2) int i=0,j=0; for(i=m;im+n;i+) *(str2+j)=*(str1+i); j+; *(str2+j)=0; main char a=goodmorning; char b10; int n,m; scanf(%d%d,&m,&n); S

21、trMid(a,m,n,b); puts(a); 3 29题号 puts(b); 题目 第几题 25 编写函数catStr(char str1,char str2)用于进行两个字符串的连接,编写3 函数lenStr(char str)用于统计一个字符串的长度,并在主函数中调用。要求:不允许使用strcat和strlen字符处理库函数,在主函数以直接初始化的方式输入两个字符串str1和str2。如输入str1为howareyou,str2为me,调用catStr函数后str1为howareyoume,调用lenStr函数后输出11。#include void catStr(char str1,c

22、har str2) int i=0,j; while(str1i!=0) i+; for(j=0;str2j!=0;j+) str1i+j=str2j; str1i+j=0; int lenStr(char str) int i=0; while(stri!=0) i+; return(i); main char str1=howareyou,str2=me; int n; puts(str1); puts(str2); catStr(str1,str2); n=lenStr(str1); puts(str1); printf(%dn,n); 29题号 题目 第几题 3 26 编写函数void

23、 fun(char *t,char a,char b),将字符串t中所有a代表的字符用b所代表的字符替换。 要求:在主函数中初始化字符数组,并输入字符a和b,输出原字符数组及替换结果。 例如:初始化字符数组str30=”This is a test of C language.”,输入字符a=t,b=T则替换结果为”This is a TesT of C language.”。#include void fun(char *t,char a,char b) int i=0; for(i=0;*(t+i)!=0;i+) if(*(t+i)=a) *(t+i)=b; main char str20

24、; char a,n; gets(str); scanf(%c %c,&a,&n); fun(str,a,n); puts(str); 27 编写函数int fun(char *t,char a),统计字符串t中有多少个变量a代表的字3 符。 要求:在主函数中初始化字符数组,并输入字符a,输出原字符数组及统计结果。 例如:初始化字符数组str30=”This is a test of C language.”,输入字符a=s,则统计结果为3。 #include int fun(char *t,char a) int i=0,ncount=0; for(i=0;*(t+i)!=0;i+) if(

25、*(t+i)=a) ncount+; return(ncount); 29题号 main char str100; char c; int n; gets(str); scanf(%c,&c); n=fun(str,c); printf(%dn,n); 题目 第几题 28 编写函数void fun(int *p,int n)对于一个存放任意10个整数的一维数组,从第n(0=n=9)个数据依次向左移动一个位置。 要求:在主函数中初始化数组,输入n值,输出原始数组和移动后的数组。 例如:初始化数组为6 10 2 9 8 7 17 18 23 45,如果n=6 移动后的数组为:10 2 9 8 7

26、7 17 18 23 45#include void fun(int *p,int n) int i; for(i=0;in-1;i+) *(p+i)=*(p+i+1); main int a10=1,2,3,4,5,6,7,8,9,10; int n,i=0,j=0; for(i=0;i10;i+) printf(%d ,ai); printf(n); scanf(%d,&n); fun(a,n); for(j=0;j10;j+) printf(%d ,*(a+j); printf(n); 29 编写函数函数void newcopy,其功能是删除old所指向字符串中的所有大写字母,并将删除后

27、的字符串存入new中。要求,在主函数中输入一个字符串并输出原始字符串,调用上述函数后,输出删除了小写字母后的字符串。 3 3 29题号 题目 第几题 #include void newcopy(char *New,char *Old) int i,j=0; for(i=0;*(Old+i)!=0;i+) if(*(Old+i)=97&*(Old+i)=122) *(New+j)=*(Old+i); j+; *(New+j)=0; main int i=0; char a20; char *p=a; gets(a); newcopy(p,a); for(i=0;*(p+i)!=0;i+) pri

28、ntf(%c,*(p+i); printf(n); 30 编写函数void dele(char *s,char *p),其功能是删除字符串p中的所有数字字符保存于字符串s中。要求:在main函数中初始化字符串s并输出原字符串s,调用上述函数后输出处理后的新字符串s。 #include void dele(char *s,char *p) int i=0,j=0; for(i=0;*(p+i)!=0;i+) if(!(*(p+i)=48&*(p+i)=57) *(s+j)=*(p+i); j+; *(s+j)=0; 3 29题号 main char a=abc12ef5ghij8yz; char *p; p=a; puts(a); dele(p,a); printf(%sn,p); 题目 第几题

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号