东北大学c语言上机考试题库_第1页
东北大学c语言上机考试题库_第2页
东北大学c语言上机考试题库_第3页
东北大学c语言上机考试题库_第4页
东北大学c语言上机考试题库_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1编程:要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百位以上的数字,否则输出两数之和a+b。答案:#includemain()int a,b,c,k,h,i;printf(输入数字a和b);scanf(%d,&a);scanf(%d,&b);c=a*a+b*b;if(c100)i=c%100; k=(c-i)/100;printf(%d,k);else h=a+b;printf(%dn,h);2编程:根据以下函数关系:当x=0,y=0;当0x=10,y=x;当10x20,y=sin(x);输入一个x值,计算出相应的y值并输出。(提示:sin(x)属于math.h)答案:

2、#include#includemain()int x,y;double t;printf(输入x:); scanf(%d,&x);if(x=0)y=0; printf(Y值为%dn,y);else if(x=10)y=x; printf(Y值为%dn,y);else if(x=20)y=10; printf(Y值为%dn,y);elset=sin(x); printf(Y值为%dn,t);3编程:根据以下函数关系:当x0,y=-1;当0x=1,y=x;当1x2,y=sin(x);输入一个x值,计算出相应的y值并输出。(提示:sin(x)、sqrt(x)属于math.h)4编程:输入三个正整数

3、x,y,z,将这三个数由小到大输出。答案:#includemain()int x,y,z,i,j,h;printf(输入x,y,z为:);scanf(%d%d%d,&x,&y,&z);if(xy)i=x; x=y; y=i;if(yz)j=z; z=y;y=j;if(xy)h=x;x=y;y=h;printf(%d%d%dn,x,y,z);5编程:从键盘输入一个年号,判断该年号是否为闰年,并输出结果。闰年是能被4整除但不能被100整除;或能被100整除且能被400整除的年号。答案:#includemain()int s;printf(输入年号:); scanf(%d,&s);if(s%4=0&

4、s%100!=0)|(s%100=0&s%400=0)printf(%d年为闰年n,s);elseprintf(%d年不是闰年n,s);6编程实现四位电话号码的升位。原来电话号码为1、3、5、7、9打头的号码前加2,原来电话号码为2、4、6、8打头的加3,例如:输入1234,则输出:21234。答案:#includemain()int a4,i,b5;printf(输入四位电话号码n);for(i=0;i4;i+)scanf(%d,&ai); switch(a0)case 1:case 3:case 5:case 7:case 9:b0=2;for(i=0;i5;i+) bi+1=ai;bre

5、ak;case 2:case 4:case 6:case 8:b0=3; for(i=0;i5;i+) bi+1=ai;break; for(i=0;i10时,y=2*x+1;当1x=10时,y=5*(x+1)*(x-2);当x=1时,y=1-2*x;从键盘输入x的值,计算y的值。9编程:输入3个正整数,判断能否组成三角形,如果能够组成三角形,则输出三角形的面积,否则输出错误。三角形面积公式:area=sqrt(s(s-a)(s-b)(s-c),其中s=1/2(a+b+c)。(提示:sqrt(x)属于math.h)答案:#include#includemain()float a,b,c,s,m

6、,n;printf(输入3个边长值:);scanf(%f,%f,%f,&a,&b,&c); if(a+b=c|a+c=b|b+c=a)printf(不能构成三角形n);else s=(a+b+c)/2.0;m=s*(s-a)*(s-b)*(s-c); n=sqrt(m);printf(三角形面积为%fn,n);10编程:已知分段函数,当x=0时,y=3*x;当0x10时,y=2*x*x;从键盘输入x的值,计算y的值。11编程:判定用户输入一个不大于999的正整数是否为一个回文数。回文数是指正读和反读都相同的数。答案:#include#includemain()int s,i,j,k,l;pri

7、ntf(输入数值:);scanf(%d,&s);i=s%100;j=(s-i)/100; k=i%10;if(j=0) l=(s-k)/10; if(l=0) printf(%d为回文数n,s); else if(k=l) printf(%d为回文数n,s); else printf(%d不为回文数n,s); elseif(j=k)printf(%d为回文数n,s); else printf(%d不为回文数n,s); 12编程:从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。转换的方式是:将a中较大的数码作为b的十位,剩余的数码作为b的个位。例如,当输入a49,则结果b=94。

8、答案:#include#includemain()int a,b,i,j,h; printf(输入数值a:);scanf(%d,&a);i=a%10;j=(a-i)/10; if(ij) h=i; i=j; j=h;b=10*j+i;printf(b为%dn,b);13编程:从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。转换的方式是:将a中较小的数码作为b的十位,剩余的数码作为b的个位。例如,当输入a54,则结果b=45。14初始化数组a中包含10个不同的整数,要求从键盘输入一个整数,若这个整数在数组中则从数组中删除这个整数并输出删除后的数组,否则输出no。答案:#inclu

9、demain()int a10=0,1,2,3,4,5,6,7,8,9,s,b9,m=0,n,i,j;printf(输入数值:); scanf(%d,&s);for(i=0;i10;i+)if(ai=s)m=m+1;n=i;if(m=0)printf(non);elsefor(j=0;jn;j+)bj=aj;for(j=n;j9;j+)bj=aj+1;for(j=0;j9;j+)printf(%d,bj);printf(n);15初始化一字符串(字符串中的每个字符各不同),要求从键盘输入一个字符,删除字符串中和输入字符相同的字符,输出处理后的字符串。16计算一个4*4矩阵的主对角线的元素之和以

10、及最大元素的值。要求初始化矩阵,输出计算结果并输出该矩阵。答案:#include#includemain()int a44=1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,sum=0,max=0,i,j; sum=a00+a11+a22+a33;for(i=0;i4;i+)for(j=0;j4;j+)if(maxaij)max=aij;printf(对角线元素和为%d,n最大值为%dn,sum,max);17计算一个3*3矩阵的所有元素之和以及所有元素中的最大元素的值。要求初始化矩阵,输出计算结果并输出该矩阵。18初始化一字符串(长度小于20个字符),取出第3个字符到第7个字符

11、组成的子串,输出该子串。答案:#includemain()char str111=abcdefghijk,str25;int i,j=0; for(i=2;i7;i+)str2j=str1i;j+;for(j=0;j5;j+)printf(%c,str2j);printf(n);19编程计算一个a34数组的最小值所在位置,输出该位置以及a34矩阵。要求初始化矩阵。答案:#includemain()int a34=1,2,3,4,5,6,7,8,9,8,7,6,i,j,m,n,min=100; for(i=0;i3;i+)for(j=0;j4;j+)if(aij=min)m=i; n=j;min

12、=aij; for(i=0;i3;i+)for(j=0;j4;j+)printf(%d,aij);printf(n); printf(最小值所在位置为a%d%dn,m,n);20初始化一矩阵a44,计算每行的最大元素值,要求输出原始矩阵以及每行的最大元素值。答案:#includemain()int a44=1,2,3,4,5,6,7,8,9,8,7,6,4,5,6,7,i,j,m,n,max=0; for(i=0;i4;i+)for(j=0;j=max)m=i; n=j;max=aij;printf(第%d行最大元素为%d:n,i+1,amn);max=0; for(i=0;i4;i+)for

13、(j=0;j4;j+)printf(%d,aij);printf(n);21初始化一矩阵a44,计算每列的最大元素值,要求输出原始矩阵以及每列的最大元素值。22编程计算a34数组的最大值所在位置,输出该位置以及a34矩阵。要求初始化矩阵。23编程实现:计算矩阵a34每行元素的和。要求输出原始矩阵以及每行元素的和值。要求初始化矩阵。答案:#includemain()int a34=1,2,3,4,5,6,7,8,9,8,7,6,i,j,sum=0; for(i=0;i3;i+)for(j=0;j4;j+) sum+=aij;printf(第%d行和为%dn,i+1,sum);sum=0; for

14、(i=0;i3;i+)for(j=0;j4;j+)printf(%d,aij);printf(n);24编程实现:计算矩阵a34每列元素的和。要求输出原始矩阵以及每列元素的和值。要求初始化矩阵。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 a10=0,1,2,3,4,5,6,7,8,9,i,b11; for(i=0;i4;i+) bi

15、=ai;b4=a3;for(i=5;i11;i+)bi=ai-1;for(i=0;i10;i+)printf(%d,ai); printf(n); for(i=0;i11;i+)printf(%d,bi);printf(n);26编程实现:在任意字符串a中将与字符c相同的所有元素的下标值分别存放在数组b中,输出字符串a和数组b。要求初始化数组a。答案:#includemain()char a8=a,c,b,c,d,e,c,f;int b10,i,j=0,m=0;for(i=0;i8;i+)printf(%c,ai);if(ai=c)bj=i;j+; m+;printf(n);for(j=0;j

16、m;j+)printf(%d,bj);printf(n);27初始化一个存放10个整数的数组,删除其中所有的小于0的数据。例如:当前的数据为1 1 6 8 9 6 6 5 6 9 ,则输出结果为1 8 9 6 6 6 9。答案:#includemain()int a=1,2,-3,4,-5,6,i,j=0,m=0,b10; for(i=0;i0)bj=ai; j+;m+;for(j=0;jm;j+)printf(%d,bj);printf(n);28已知4X4矩阵,求行下标和列下标均为奇数的元素之和, 要求输出原始矩阵以及和值。例如A11、A13的行下标和列下标均为偶数。要求初始化矩阵。答案:

17、#includemain()int a44=1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,i,j,sum=0;for(i=0;i2;i+) sum+=a2*i+12*i+1; printf(%dn,sum);for(i=0;i4;i+)for(j=0;j4;j+)printf(%d,aij);printf(n);29函数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 i;for(i=0;in;i+)if(i%2=0)if(ai*big)*big=ai;return;main()int a=1,2,3,4,5,6,7,8,9,small=1000,big=0; fun(a,9,&small,&big);printf(偶数项最小值为%d,奇数项最大值为%dn,small,big);30函数void fun(int a,int n,int * big,in

19、t * small),该函数的功能是分别求出数组a中所有偶数项中的最小值与所有奇数项中的最大值,形参n给出数组中数据的个数;利用指针small返回偶数项中的最小值,利用指针big返回奇数项中的最大值。要求:在主调函数中初始化一个一维数组,并在主调函数中调用函数fun后在主调函数中输出结果。31编写函数void new(char str ),该函数将字符串str中ASCII值为偶数的字符删除,串中剩余字符形成一个新串。编写函数void stringcat(char str1,char str2)将原字符串str链接在新串的后面。编写一个程序,调用上述各个函数。要求:在main()函数中初始化字符

20、串str并输出原字符串str,调用各个函数后在主函数中输出处理后的新字符串str。要求:不允许使用字符串库函数。答案:#includevoid a(char str)char str2100;int i,j=0;for(i=0;stri!=0;i+)if(i%2!=0)str2j=stri;j+;str2j=0;for(i=0;str2i!=0;i+)stri=str2i;stri=0;void stringcat(char str1,char str2)int i,j,k;k=0;for(i=0;str1i!=0;i+)k=k+1;for(j=0;str2j!=0;j+)str1k+j=st

21、r2j;str1k+j=0;main() char str1=abcdefghijk;char str2=abcdefghijk;printf(%sn,str1); a(str2); stringcat(str1,str2);printf(%sn,str1);32编写函数void new(char str ),该函数将字符串str中下标值为偶数的字符删除,串中剩余字符形成一个新串。编写函数char strmax(char str )在新字符串中查找最大的字符。编写一个程序,调用上述各个函数。要求:在main()函数中初始化字符串str并输出原字符串str,调用各个函数后在主函数中输出处理后的新

22、字符串str以及最大字符。要求:不允许使用字符串库函数。33编写函数void new(char str ),该函数将字符串str中ASCII值为奇数的字符删除,串中剩余字符形成一个新串。编写函数int strln(char str )计算新串的长度。编写一个程序,调用上述各个函数。要求:在main()函数中初始化字符串str并输出原字符串str,调用各个函数后在主函数中输出处理后的新字符串str以及长度。要求:不允许使用字符串库函数。答案:#includevoid a(char str)int i,j=0;char str2100;for(i=0;stri!=0;i+)if(stri%2!=1

23、)str2j=stri;j+;str2j=0;for(i=0;str2i!=0;i+) stri=str2i;stri=0;int strln(char str)int i,m=0; for(i=0;stri!=0;i+)m+;return m;main()char str=abcdefg;int m;printf(原字符串为%sn,str);a(str);m=strln(str);printf(新字符串为%sn长度为%dn,str,m);34编写函数void new(char str ),该函数将字符串str中下标值为奇数的字符删除,串中剩余字符形成一个新串。编写函数char strmin(

24、char str )在新字符串中查找最小的字符。编写一个程序,调用上述各个函数。要求:在main()函数中初始化字符串str并输出原字符串str,调用各个函数后在主函数中输出处理后的新字符串str以及最小字符。要求:不允许使用字符串库函数。答案:#includechar strmin(char str)int i,a=1000;for(i=0;stri!=0;i+) if(stria) a=stri;return a;main()char str=bcdesgb,a;a=strmin(str);printf(%cn,a);35编写函数void new(char str ),该函数将字符串str

25、中下标值为偶数的字符删除,串中剩余字符形成一个新串。编写函数void strstoc(char str )将新字符串中的小写字母转换为大写字母。编写一个程序,调用上述各个函数。要求:在main()函数中初始化字符串str并输出原字符串str,调用各个函数后在主函数中输出处理后的新字符串str。要求:不允许使用字符串库函数。答案:#includevoid strstoc(char str)char str2=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;int i,j,m=0;for(i=0;stri!=0;i+) for(j=0;st

26、r2j!=stri;j+)m+;if(m26)stri=str2m+26;m=0;main()char str=abdsGFnm;strstoc(str);printf(%sn,str);36编写函数void new(char str ),该函数将字符串str中下标值为奇数的字符删除,串中剩余字符形成一个新串。编写函数void strstoc(char str )将新字符串中的大写字母转换为小写字母。编写程序,调用上述各个函数。要求:在main()函数中初始化字符串str并输出原字符串str,调用各个函数后在主函数中输出处理后的新字符串str。要求:不允许使用字符串库函数。37编写函数void

27、 strfun(char str ),该函数功能是把str字符串中的所有字符左移一个位置,串中的第一个字符移到最后。编写主程序,要求在main()函数中初始化字符串str并输出原字符串str,调用函数完成字符串移位后在主函数中输出处理后的新串。要求:不允许使用字符串库函数。38编写函数void revstr (char *str),其功能是把字符串str反序。例如字符串str为”abcde”时,则处理后为”edcba”, 要求:在main()函数中初始化字符串str并输出原字符串str,调用函数后在主函数中输出处理后的新字符串str。要求:不允许使用字符串库函数。39编写函数int strfu

28、n(char str, char a),其功能是计算str所指定字符串中,出现指定字符的个数,并返回此值。例如:若字符串:,输入字符为:1,则返回:3。要求在main()函数中初始化字符串str并输出原字符串str,调用函数strfun()后在主函数中输出处理后的返回值。要求:不允许使用字符串库函数。40编制函数void mystrcpy(char *str1,char *str2),其功能是实现将str2字符串中的所有的小写字母拷贝到str1字符串中。编写函数void strln(char str1 )计算str1串的长度。编写一个程序,调用上述各个函数。要求在main()函数中初始化字符串

29、str并输出原字符串str,调用函数后,在main()函数输出处理后的str1和str1的长度。41函数void dele(char *str)的功能是删除字符串中的所有数字字符,函数void strcopy(char *str1,char *str2)的功能是将字符串str2存入str1中。要求在main()函数中初始化字符串str并输出原字符串str,先strcopy()函数再调用dele()函数后,在main()函数输出处理后的str1。42编写函数void strfun(char str, int n,int k,int m),此函数的功能是:对一个长度为n的字符串str从其第k个字符

30、起,删除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) char str2100; int i; for(i=0;ik;i+) str2i=stri; for(i=k;stri+m!=0;i+) str2i=stri+m; str2i=0; for(i

31、=0;str2i!=0;i+) stri=str2i; stri=0;main()char str=we are all students.;int n=20,k=7,m=3;printf(%sn,str);strfun(str,n,k,m);printf(%sn,str);43将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。答案:#includemain()int s,i,t,j=0,str100;printf(输入数值为:);scanf(%d,&s);t=s;for(i=2;t!=1;i+)if(t%i=0)t=t/i;strj=i;j+;i=i-1;strj=0;pr

32、intf(%d=%d,s,str0);for(j=1;strj!=0;j+)printf(*%d,strj);44设有一分数列:2/1,3/2,5/3,8/5,13/8,21/13, 试编程求出这个数列的前十项之和。45编写程序输出S=1-1/2+1/3-1/4+1/99-1/100的结果。答案:#include#includemain() double s=0.0,i,a,b; for(i=1.0;i6)总能表示为两个素数之和。答案:#includestir(int a)int i,m=0; for(i=1;i=a;i+)if(a%i=0)m+;if(m=2)return a;else re

33、turn 0;main()int s,a,b;printf(输入数值为:);scanf(%d,&s);for(a=1;as;a+) if(stir(a)b=s-a;if(stir(b)printf(%d=%d+%dn,s,a,b);60编写一个函数sum,输入n为偶数时,调用函数求1/2+1/4+1/n,当输入n为奇数时,调用函数 1/1+1/3+1/n答案:#includefloat sum(int n)int a,i;float s=0.0;a=n%2;if(a)for(i=1;i=n;i+=2)s+=1.0/i;elsefor(i=2;i6)总能表示为两个素数之和。62编写一个函数str

34、ingcat,其功能是完成两个字符串连接,要求:在主函数中初始化两个字符串,调用stringcat进行连接,并在主函数中输出连接后字符串(注意不允许使用库函数)。63编写一个函数substring,其功能是计算字符串中子串出现的次数。要求在主函数中初始化字符串和子串,调用函数substring后,在主函数中输出计算的结果。64编写一个函数string,其功能是将字符串中所有小写字母全部转换成大写字母,在主函数中,初始化一个字符串,调用函数string后,输出转换后的字符串。65编写函数void sort(char str ),该函数把str字符串按照ASCII码从小到大排序。在main()函数

35、中初始化字符串str,调用函数后输出处理后的字符串str。例如:如果str为”main”, 则函数调用后str为”aimn”。66从键盘输入一个整数,判断其为正数、负数还是零。如果为正数输出1,如果为负数输出-1,如果为零输出0。67初始化一个5X5的二维矩阵,计算主对角线上的元素之和。要求输出此矩阵,并输出主对角线之和。提示a00,a11之类的元素为主对角线元素。68已知数组int A10=1,2,3,4,5,4,3,3,6,7,编制函数int MyFun(int *pA)实现将数组中的所有值为3的元素删除。69计算分段函数的值。当x=10时,y=x*x+0.65;当x0时,y=x+1;当x

36、=50时,y=3*x*x+0。4567;当x0时,y=2x+1;当x=0时,y=2*x+2;要求输出结果保留4位小数。73初始化一个5X5的二维矩阵,计算次对角线上的元素之和。要求输出此矩阵,并输出次对角线之和。提示a40,a31,a22,a13,a04之类的元素为次对角线元素。74写一个函数strLen_0 (char *s1),其功能是统计字符串中数字的个数。在主函数中定义字符数组s1并初始化,调用strLen_0后由main函数输出结果。例如,调用函数前s1为”ABCde9”,调用后返回结果1,本题不许使用字符串处理函数。75实现两个数的#法和$法运算。如输入3,4,#,输出25;输入3,4,$,输出34;提示:#法和$法运算是自己定义的一种运算,a#b=a*a+b*b,a$b=a*10+b。答案:#includemain()int a,b,s,t;char c;printf(输入数值及符号:);scanf(%d,%d,%c,&a,&b,&c); s=a*a+b*b;t=a*10+b;if(c=35)printf(结果为%dn,s);el

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论