东北大学c语言编程试题及其答案.doc

上传人:土8路 文档编号:10377589 上传时间:2021-05-13 格式:DOC 页数:21 大小:39.50KB
返回 下载 相关 举报
东北大学c语言编程试题及其答案.doc_第1页
第1页 / 共21页
东北大学c语言编程试题及其答案.doc_第2页
第2页 / 共21页
东北大学c语言编程试题及其答案.doc_第3页
第3页 / 共21页
东北大学c语言编程试题及其答案.doc_第4页
第4页 / 共21页
东北大学c语言编程试题及其答案.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《东北大学c语言编程试题及其答案.doc》由会员分享,可在线阅读,更多相关《东北大学c语言编程试题及其答案.doc(21页珍藏版)》请在三一文库上搜索。

1、1. 本文由向闯向闯贡献 1编程:要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百位以上的数字,否则输出两数之和a+b。 #includemain()int a,b,c;printf(please input a=);scanf(%d,&a);printf(please input b=);scanf(%d,&b);if(a*a+b*b100)c=(a*a+b*b)/100;printf(%d,c);elseprintf(%dn,a+b);2编程:根据以下函数关系:当x=0,y=0;当0x=10,y=x;当10x20,y=sin(x);输入一个x值,计算出相应的y值并输出

2、。(提示:sin(x)属于math.h) #include#includemain()int x;float y;printf(please input x=);scanf(%d,&x);if(x=0)y=0;else if(0x)&(x=10)y=x;else if (10x)&(x=20)y=10;elsey=sin(x);printf(%fn,y);3编程:根据以下函数关系:当xx=1,y=x;当1x2,y=sin(x);输入一个x值,计算出相应的y值并输出。(提示:sin(x)、sqrt(x)属于math.h) 参考24编程:输入三个正整数x,y,z,将这三个数由小到大输出。 #inc

3、lude#includemain()int a3,i,max,j;printf(please input the 3 numbers:);for(i=0;i3;i+)scanf(%d,&ai);for(i=0;i3;i+)for(j=0;jaj+1)max=aj;aj=aj+1;aj+1=max;printf(the result is);for(i=0;i3;i+)printf( %d,ai);printf(n);#include main() int a,b,c,t;scanf(%d%d%d,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(

4、bc)t=b;b=c;c=t;printf(The answer is:%d,%d,%dn,a,b,c);5编程:从键盘输入一个年号,判断该年号是否为闰年,并输出结果。闰年是能被4整除但不能被100整除;或能被100整除且能被400整除的年号。 练习书上有,第一页6编程实现四位电话号码的升位。原来电话号码为1、3、5、7、9打头的号码前加2,原来电话号码为2、4、6、8打头的加3,例如:输入1234,则输出:21234。 #includemain()long x,y;printf(please input telephone number );scanf(%d,&x);y=x/1000;swi

5、tch(y)case 1:case 3:case 5:case 7:case 9:x=2*10000+x;break;case 2:case 4:case 6:case 8:x=3*10000+x;break;printf(the result is %ldn,x);7编程实现四位电话号码的升位。原来电话号码为1、2、3、4、5打头的号码前加3,原来电话号码为6、7、8、9打头的加2,例如:输入1234,则输出:31234。 参考68编程:已知分段函数:当x10时,y=2*x+1;当1x=10时,y=5*(x+1)*(x-2);当x=1时,y=1-2*x;从键盘输入x的值,计算y的值。 参考2

6、9编程:输入3个正整数,判断能否组成三角形,如果能够组成三角形,则输出三角形的面积,否则输出错误。三角形面积公式:area=sqrt(s(s-a)(s-b)(s-c),其中s=1/2(a+b+c)。(提示:sqrt(x)属于math.h) #include#includemain()float x,y,z;float area,s;printf(please input:);scanf(%f%f%f,&x,&y,&z);if(x+y=z)|(z+y=x)|(x+z=y)printf(non);elses=(x+y+z)/2;area=sqrt(s*(s-x)*(s-y)*(s-z);print

7、f(%fn,area);10编程:已知分段函数,当x=0时,y=3*x;当0x10时,y=2*x*x;从键盘输入x的值,计算y的值。 参考211编程:判定用户输入一个不大于999的正整数是否为一个回文数。回文数是指正读和反读都相同的数。 #includemain()int a,x,y,z;printf(please input a number );scanf(%d,&a);if(0a&a=999)x=a/100;y=(a-100*x)/10;z=a%10;if(x=0)if(y=z)printf(Yesn);elseprintf(non);else if(x=z)printf(yesn);e

8、lseprintf(non);12编程:从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。转换的方式是:将a中较大的数码作为b的十位,剩余的数码作为b的个位。例如,当输入a49,则结果b=94。 #includemain()int a,b,x,y;printf(please input a number );scanf(%d,&a);if(0a&a=y)b=a;elseb=10*y+x;printf(the result is %d,b);else printf(a wrong number);13编程:从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。转换的方式是

9、:将a中较小的数码作为b的十位,剩余的数码作为b的个位。例如,当输入a54,则结果b=45。 参考1214初始化数组a中包含10个不同的整数,要求从键盘输入一个整数,若这个整数在数组中则从数组中删除这个整数并输出删除后的数组,否则输出no。 #includemain()int a10=2,3,4,1,5,6,7,8,9,10,i,x,j,k;printf(please input a number );scanf(%d,&x);for(i=0;i10;i+)if(ai=x)for(j=i;j10;j+)aj=aj+1;for(k=0;k9;k+)printf(%3d,ak);break;els

10、e if(i=9)printf(no);15初始化一字符串(字符串中的每个字符各不同),要求从键盘输入一个字符,删除字符串中和输入字符相同的字符,输出处理后的字符串。 #includemain()char a7=howare;char b1;int i,j,k;printf(please input the string :);gets(b);for(i=0;i7;i+)if(ai=b0)for(j=i;j5;j+)aj=aj+1;for(k=0;k5;k+)printf(%c,ak);printf(n);break;else if(ai=0)printf(non);break;16计算一个4

11、*4矩阵的主对角线的元素之和以及最大元素的值。要求初始化矩阵,输出计算结果并输出该矩阵。 #includemain()int a44=2,123,1,5,4,22,56,23,5,7,89,23,1,2,3,4;int i,sum=0,max,j;for(i=0;i4;i+)sum=sum+aii;max=a00;for(i=0;i4;i+)for(j=0;j4;j+)if(maxaij)max=aij;printf(the sum is %d and the max number is %dn,sum,max);17计算一个3*3矩阵的所有元素之和以及所有元素中的最大元素的值。要求初始化矩阵

12、,输出计算结果并输出该矩阵。 参考16,懒得弄了18初始化一字符串(长度小于20个字符),取出第3个字符到第7个字符组成的子串,输出该子串。 #includemain()char a20=asldfkjasldkf;int i;puts(a);for(i=2;i7;i+)printf(%c,ai);printf(n);19编程计算一个a34数组的最小值所在位置,输出该位置以及a34矩阵。要求初始化矩阵。 参考1620初始化一矩阵a44,计算每行的最大元素值,要求输出原始矩阵以及每行的最大元素值。 #includemain()int a44=2,123,1,5,4,22,56,23,5,7,89

13、,23,1,2,3,4,i,j,max;for(i=0;i4;i+)max=ai0;for(j=0;j4;j+)printf(%3d,aij);printf(n);for(i=0;i4;i+)for(j=0;j4;j+)if(maxaij)max=aij;printf(the max number is %dn,max);21初始化一矩阵a44,计算每列的最大元素值,要求输出原始矩阵以及每列的最大元素值。 参考2022编程计算a34数组的最大值所在位置,输出该位置以及a34矩阵。要求初始化矩阵。 参考2023编程实现:计算矩阵a34每行元素的和。要求输出原始矩阵以及每行元素的和值。要求初始化矩

14、阵。 参考2024编程实现:计算矩阵a34每列元素的和。要求输出原始矩阵以及每列元素的和值。要求初始化矩阵。参考20 25一维数组中存放任意10个整数,从第四个数据开始直到最后一个数据,依次向右移动一个位置。输出原始数据和移动后的结果。要求初始化数组。 例如:原始数据为:6 10 2 9 8 7 17 18 23 45, 输出结果为:6 10 2 9 9 8 7 17 18 23 45。 #includemain()int a11=6,10,2,9,8,7,17,18,23,45,i;printf(the origin strings is);for(i=0;i3;i-)ai=ai-1;pri

15、ntf(the changed strings is);for(i=0;i11;i+)printf(%3d,ai);printf(n);26编程实现:在任意字符串a中将与字符c相同的所有元素的下标值分别存放在数组b中,输出字符串a和数组b。要求初始化数组a。 懒得弄,太简单27初始化一个存放10个整数的数组,删除其中所有的小于0的数据。例如:当前的数据为1 1 6 8 9 6 6 5 6 9 ,则输出结果为1 8 9 6 6 6 9。 #includemain()int a10=1,-1,-6,8,9,6,6,-5,6,9;int i;printf(the origin string is);

16、for(i=0;i10;i+)printf(%3d,ai);printf(n);printf(the change string is);for(i=0;i0)printf(%3d,ai);printf(n);28已知4X4矩阵,求行下标和列下标均为偶数的元素之和, 要求输出原始矩阵以及和值。提示:例如A00、A02的行下标和列下标均为偶数。要求初始化矩阵。 #includemain()int a44=2,123,1,5,4,22,56,23,5,7,89,23,1,2,3,4;int i,sum=0,j;for(i=0;i3;i=i+2)for(j=0;j3;j+)printf(%d,aij

17、);for(i=0;i3;i=i+2)for(j=0;j3;j=j+2)sum=sum+aij;printf(the result is %dn,sum);29已知4X4矩阵,求行下标和列下标均为奇数的元素之和, 要求输出原始矩阵以及和值。例如A11、A13的行下标和列下标均为奇数。要求初始化矩阵。 参考2830函数void fun(int a,int n,int *small,int *big),该函数的功能是分别求出一维数组a中所有奇数项中的最小值与所有偶数项中的最大值,形参n给出数组中数据的个数;利用指针small返回奇数项中的最小值,利用指针big返回偶数项中的最大值。要求:在主调函数

18、中初始化一个一维数组,并在主调函数中调用函数fun后,在主调函数中输出结果。 #includevoid fun(int a,int n,int *small,int *big)int max,min,i,j;min=a0;max=a1; if(n%2=0)for(i=0;iai)min=ai;for(j=1;j=n-1;j=j+2)if(maxaj)max=aj;*small=min;*big=max;elsefor(i=0;iai)min=ai;for(j=1;j=n-1;j=j+2)if(maxaj)max=aj;*small=min;*big=max;main() int i=0;int

19、 str1,str2;int a8=2,13,3,4,54,6,8,4,n;n=8; printf(the origin numbers are:); doprintf(%3d,ai);i+;while(i=7);printf(n);fun(a,n,&str1,&str2);printf(the min is %d the max is %dn,str1,str2);31函数void fun(int a,int n,int * big,int * small),该函数的功能是分别求出数组a中所有偶数项中的最小值与所有奇数项中的最大值,形参n给出数组中数据的个数;利用指针small返回偶数项中的

20、最小值,利用指针big返回奇数项中的最大值。要求:在主调函数中初始化一个一维数组,并在主调函数中调用函数fun后在主调函数中输出结果。 #includevoid newstr(char str)int i;int j=0;char newstr100;for(i=0;stri!=0;i+)if(stri%2!=0)newstrj=stri;j+;newstrj=0;for(i=0;i=j;i+)stri=newstri;void stringcat(char str1,char str2)char *p1,*p2;p1=str1;p2=str2;while(*p1)p1+;while(*p1+

21、=*p2+); main()int i;char str1=I love the northeasten university;char *p,str2100;puts(str1);p=str1;for(i=0;*(p+i)!=0;i+)str2i=*p+;str2i=0;newstr(str1);stringcat(str1,str2);puts(str1);32编写函数void new(char str ),该函数将字符串str中ASCII值为偶数的字符删除,串中剩余字符形成一个新串。编写函数void stringcat(char str1,char str2)将原字符串str链接在新串的

22、后面。编写一个程序,调用上述各个函数。要求:在main()函数中初始化字符串str并输出原字符串str,调用各个函数后在主函数中输出处理后的新字符串str。要求:不允许使用字符串库函数。 #includevoid strnew(char str)int i,j;for(i=0;stri!=0;i+)if(stri%2=0)for(j=i;strj!=0;j+)strj=strj+1;void stringcat(char str1,char str2)char *p1,*p2;p1=str1;p2=str2;while(*p1)p1+;while(*p1+=*p2+);main()int i;

23、char *p1,*p2;char str1100=howareyou,str2100=howareyou;for(i=0;str1i!=0;i+)printf(%c,str1i);printf(n);strnew(str1);p1=str1;stringcat(str1,str2);printf(%sn,p1);33编写函数void new(char str ),该函数将字符串str中下标值为偶数的字符删除,串中剩余字符形成一个新串。编写函数char strmax(char str )在新字符串中查找最大的字符。编写一个程序,调用上述各个函数。要求:在main()函数中初始化字符串str并输

24、出原字符串str ,调用各个函数后在主函数中输出处理后的新字符串str以及最大字符。要求:不允许使用字符串库函数。 #includeint i;void newstr(char str)int j=0;char newstr100;for(i=1;stri!=0;i+=2)newstrj=stri;j+;newstrj=0;for(i=0;i=j;i+)stri=newstri;char strmax(char str)char max1;max0=str0;for(i=0;stri!=0;i+)if(max0stri)max0=stri;return max0;main()char max2

25、;char str=I love the norheeasten university;puts(str);newstr(str);puts(str);max0=strmax(str);max1=0;puts(max);34编写函数void new(char str ),该函数将字符串str中ASCII值为奇数的字符删除,串中剩余字符形成一个新串。编写函数int strln(char str )计算新串的长度。编写一个程序,调用上述各个函数。要求:在main()函数中初始化字符串str并输出原字符串str,调用各个函数后在主函数中输出处理后的新字符串str以及长度。要求:不允许使用字符串库函数

26、。 参考3235编写函数void new(char str ),该函数将字符串str中下标值为奇数的字符删除,串中剩余字符形成一个新串。编写函数char strmin(char str )在新字符串中查找最小的字符。编写一个程序,调用上述各个函数。要求:在main()函数中初始化字符串str并输出原字符串str,调用各个函数后在主函数中输出处理后的新字符串str以及最小字符。要求:不允许使用字符串库函数。 参考3336编写函数void new(char str ),该函数将字符串str中下标值为偶数的字符删除,串中剩余字符形成一个新串。编写函数void strstoc(char str )将新

27、字符串中的小写字母转换为大写字母。编写一个程序,调用上述各个函数。要求:在main()函数中初始化字符串str并输出原字符串str,调用各个函数后在主函数中输出处理后的新字符串str。要求:不允许使用字符串库函数。 参考3737编写函数void new(char str ),该函数将字符串str中下标值为奇数的字符删除,串中剩余字符形成一个新串。编写函数void strstoc(char str )将新字符串中的大写字母转换为小写字母。编写程序,调用上述各个函数。要求:在main()函数中初始化字符串str并输出原字符串str,调用各个函数后在主函数中输出处理后的新字符串str。要求:不允许使

28、用字符串库函数。 #includeint i;lenstr(char str)i=0;doi+;while(stri!=0);return i; void strnew(char str)int n=lenstr(str);char newstr100;int j=0;for(i=0;in;i=i+2)newstrj=stri;j+;newstrj=0;for(i=0;ij;i+)stri=newstri;stri=0;void strstoc(char str)int n=lenstr(str);for(i=0;iA&striZ)stri=stri+32;main()char str=HoW

29、ArEYouHeLLOKittY;puts(str);strnew(str);puts(str);strstoc(str);puts(str);38编写函数void strfun(char str ),该函数功能是把str字符串中的所有字符左移一个位置,串中的第一个字符移到最后。编写主程序,要求在main()函数中初始化字符串str并输出原字符串str,调用函数完成字符串移位后在主函数中输出处理后的新串。要求:不允许使用字符串库函数。 #includevoid strfun(char str)char a1;int i,n;a0=str0;for(i=0;stri!=0;i+)stri=str

30、i+1;n=i;strn=a0;strn+1=0;main()char str=hello;puts(str);strfun(str);puts(str);39编写函数void revstr (char *str),其功能是把字符串str反序。例如字符串str为”abcde”时,则处理后为”edcba”, 要求:在main()函数中初始化字符串str并输出原字符串str,调用函数后在主函数中输出处理后的新字符串str。要求:不允许使用字符串库函数。 #includevoid revstr(char *str)int i,nLen;char t;nLen=5;for(i=0;i2;i+)t=*(

31、str+i);*(str+i)=*(str+nLen-1-i);*(str+nLen-1-i)=t;main()int i;char str6=Hello;puts(str);revstr(str);puts(str);40编写函数int strfun(char str, char a),其功能是计算str所指定字符串中,出现指定字符的个数,并返回此值。例如:若字符串:123412132,输入字符为:1,则返回:3。要求在main()函数中初始化字符串str并输出原字符串str,调用函数strfun()后在主函数中输出处理后的返回值。要求:不允许使用字符串库函数。 #includeint st

32、rfun(char str,char a)int i,num=0;for(i=0;stri!=0;i+)if(stri=a)num+;return num;main()int n;char str=Thenortheastenuniversity;char a;printf(the origin string is);puts(str);printf(n);printf(please input the string you want:);scanf(%c,&a);n=strfun(str,a);printf(this string totally appear %d timesn,n);41

33、编制函数void mystrcpy(char *str1,char *str2),其功能是实现将str2字符串中的所有的小写字母拷贝到str1字符串中。编写函数void strln(char str1 )计算str1串的长度。编写一个程序,调用上述各个函数。要求在main()函数中初始化字符串str并输出原字符串str,调用函数后,在main()函数输出处理后的str1和str1的长度。 #includevoid mystrcpy(char *str1,char *str2)int j=0,i;while(*str1)str1+;for(i=0;*(str2+i)!=0;i+)if(*(str

34、2+i)=a&*(str2+i)=z)*(str1+j)=*(str2+i);j+;*(str1+j)=0;strlen(char str)int n=0;don+;while(strn!=0);return n;main()int n;char str1100=goodbye;char str2=IwIlLbeBacK;char *p1,*p2;p1=str1;p2=str2;n=strlen(str1); printf(the origin str1 is %sn,p1);printf(the length is %dn,n);mystrcpy(p1,p2);printf(the new

35、str1 is);puts(str1);n=strlen(str1);printf(the new length is %dn,n);printf(n);42函数void dele(char *str)的功能是删除字符串中的所有数字字符,函数void strcopy(char *str1,char *str2)的功能是将字符串str2存入str1中。要求在main()函数中初始化字符串str并输出原字符串str,先strcopy()函数再调用dele()函数后,在main()函数输出处理后的str1。 #includevoid dele(char *str)int i,j;for(i=0;*(

36、str+i)!=0;i+)if(*(str+i)=A&*(str+i)=z)continue;elsefor(j=i;*(str+j)!=0;j+)*(str+j)=*(str+j+1);i-;void strcopy(char *str1,char *str2)while(*str1)str1+;while(*str1+=*str2+);main()char str1100=qoAe127sDaS7k32Ed8;char str2=I1lo2ve5myu52niver23sity1;char *p1,*p2;p1=str1;p2=str2;strcopy(p1,p2);printf(the

37、origin string is :);puts(str1);printf(n);dele(p1);printf(the new string is);puts(str1);printf(n);43编写函数void strfun(char str, int n,int k,int m),此函数的功能是:对一个长度为n的字符串str从其第k个字符起,删除m个字符,组成长度为n-m的新串(其中:n、m=80,k=n)。要求在main()函数中初始化字符串str并输出原字符串str,调用函数后,在main()函数输出处理后的新串。在输入字符串“we are all students.”,利用此函数进行删除“all”的处理,并输出处理后的字符串。 #includevoid strfun(char str,int n,int k,int m)int i,j;for(i=0;i=m;i+)for(j=k;jn;j+)strj=strj+1;main()char str=we are all students;int n=19,k=7,m=3;printf(the origin string is :);puts(str);strfun(str,n,k,m);printf(the new string is :);puts(str);

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1