东北大学c语言上机考试题库1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1编程:要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百位以上的数字,否则输出两数之和a+b。答案:#includestdio.hmain(){inta,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(%d\n,h);}}2编程:根据以下函数关系:当x=0,y=0;当0x=10,y=x;当10x=20,y=10;当x20,y=sin(x);输入一个x值,计算出相应的y值并输出。(提示:sin(x)属于math.h)答案:#includestdio.h#includemath.hmain(){intx,y;doublet;printf(输入x:);scanf(%d,&x);if(x=0){y=0;printf(Y值为%d\n,y);}elseif(x=10){y=x;printf(Y值为%d\n,y);}elseif(x=20){y=10;printf(Y值为%d\n,y);}else{t=sin(x);printf(Y值为%d\n,t);}}3编程:根据以下函数关系:当x0,y=-1;当0x=1,y=x;当1x=2,y=sqrt(x);当x2,y=sin(x);输入一个x值,计算出相应的y值并输出。(提示:sin(x)、sqrt(x)属于math.h)4编程:输入三个正整数x,y,z,将这三个数由小到大输出。答案:#includestdio.hmain(){intx,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%d\n,x,y,z);}5编程:从键盘输入一个年号,判断该年号是否为闰年,并输出结果。闰年是能被4整除但不能被100整除;或能被100整除且能被400整除的年号。答案:#includestdio.hmain(){ints;printf(输入年号:);scanf(%d,&s);if((s%4==0&&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。答案:#includestdio.hmain(){inta[4],i,b[5];printf(输入四位电话号码\n);for(i=0;i4;i++)scanf(%d,,&a[i]);switch(a[0]){case1:case3:case5:case7:case9:{b[0]=2;for(i=0;i5;i++)b[i+1]=a[i];}break;case2:case4:case6:case8:{b[0]=3;for(i=0;i5;i++)b[i+1]=a[i];}break;}for(i=0;i5;i++)printf(%d,b[i]);printf(\n);}7编程实现四位电话号码的升位。原来电话号码为1、2、3、4、5打头的号码前加3,原来电话号码为6、7、8、9打头的加2,例如:输入1234,则输出:31234。8编程:已知分段函数:当x10时,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)答案:#includestdio.h#includemath.hmain(){floata,b,c,s,m,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(三角形面积为%f\n,n);}}10编程:已知分段函数,当x=0时,y=3*x;当0x=10时,y=(x+1)*(x-2);当x10时,y=2*x*x;从键盘输入x的值,计算y的值。11编程:判定用户输入一个不大于999的正整数是否为一个回文数。回文数是指正读和反读都相同的数。答案:#includestdio.h#includemath.hmain(){ints,i,j,k,l;printf(输入数值:);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);elseif(k==l)printf(%d为回文数\n,s);elseprintf(%d不为回文数\n,s);}else{if(j==k)printf(%d为回文数\n,s);elseprintf(%d不为回文数\n,s);}}12编程:从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。转换的方式是:将a中较大的数码作为b的十位,剩余的数码作为b的个位。例如,当输入a=49,则结果b=94。答案:#includestdio.h#includemath.hmain(){inta,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为%d\n,b);}13编程:从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。转换的方式是:将a中较小的数码作为b的十位,剩余的数码作为b的个位。例如,当输入a=54,则结果b=45。14初始化数组a中包含10个不同的整数,要求从键盘输入一个整数,若这个整数在数组中则从数组中删除这个整数并输出删除后的数组,否则输出no。答案:#includestdio.hmain(){inta[10]={0,1,2,3,4,5,6,7,8,9},s,b[9],m=0,n,i,j;printf(输入数值:);scanf(%d,&s);for(i=0;i10;i++){if(a[i]==s){m=m+1;n=i;}}if(m==0)printf(no\n);else{for(j=0;jn;j++)b[j]=a[j];for(j=n;j9;j++)b[j]=a[j+1];for(j=0;j9;j++)printf(%d,b[j]);}printf(\n);}15初始化一字符串(字符串中的每个字符各不同),要求从键盘输入一个字符,删除字符串中和输入字符相同的字符,输出处理后的字符串。16计算一个4*4矩阵的主对角线的元素之和以及最大元素的值。要求初始化矩阵,输出计算结果并输出该矩阵。答案:#includestdio.h#includemath.hmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,8,7,6},{5,4,3,2}},sum=0,max=0,i,j;sum=a[0][0]+a[1][1]+a[2][2]+a[3][3];for(i=0;i4;i++){for(j=0;j4;j++){if(maxa[i][j])max=a[i][j];}}printf(对角线元素和为%d,\n最大值为%d\n,sum,max);}17计算一个3*3矩阵的所有元素之和以及所有元素中的最大元素的值。要求初始化矩阵,输出计算结果并输出该矩阵。18初始化一字符串(长度小于20个字符),取出第3个字符到第7个字符组成的子串,输出该子串。答案:#includestdio.hmain(){charstr1[11]={abcdefghijk},str2[5];inti,j=0;for(i=2;i7;i++){str2[j]=str1[i];j++;}for(j=0;j5;j++)printf(%c,str2[j]);printf(\n);}19编程计算一个a[3][4]数组的最小值所在位置,输出该位置以及a[3][4]矩阵。要求初始化矩阵。答案:#includestdio.hmain(){inta[3][4]={{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(a[i][j]=min){m=i;n=j;min=a[i][j];}}}for(i=0;i3;i++){for(j=0;j4;j++)printf(%d,a[i][j]);printf(\n);}printf(最小值所在位置为a[%d][%d]\n,m,n);}20初始化一矩阵a[4][4],计算每行的最大元素值,要求输出原始矩阵以及每行的最大元素值。答案:#includestdio.hmain(){inta[4][4]={{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;j4;j++){if(a[i][j]=max){m=i;n=j;max=a[i][j];}}printf(第%d行最大元素为%d:\n,i+1,a[m][n]);max=0;}for(i=0;i4;i++){for(j=0;j4;j++)printf(%d,a[i][j]);printf(\n);}}21初始化一矩阵a[4][4],计算每列的最大元素值,要求输出原始矩阵以及每列的最大元素值。22编程计算a[3][4]数组的最大值所在位置,输出该位置以及a[3][4]矩阵。要求初始化矩阵。23编程实现:计算矩阵a[3][4]每行元素的和。要求输出原始矩阵以及每行元素的和值。要求初始化矩阵。答案:#includestdio.hmain(){inta[3][4]={{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+=a[i][j];}printf(第%d行和为%d\n,i+1,sum);sum=0;}for(i=0;i3;i++){for(j=0;j4;j++)printf(%d,a[i][j]);printf(\n);}}24编程实现:计算矩阵a[3][4]每列元素的和。要求输出原始矩阵以及每列元素的和值。要求初始化矩阵。25一维数组中存放任意10个整数,从第四个数据开始直到最后一个数据,依次向右移动一个位置。输出原始数据和移动后的结果。要求初始化数组。例如:原始数据为:610298717182345,输出结果为:6102998717182345。答案:#includestdio.hmain(){inta[10]={0,1,2,3,4,5,6,7,8,9},i,b[11];for(i=0;i4;i++)b[i]=a[i];b[4]=a[3];for(i=5;i11;i++)b[i]=a[i-1];for(i=0;i10;i++)printf(%d,a[i]);printf(\n);for(i=0;i11;i

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功