东北大学C语言主观题+答案.docx
- 文档编号:14530394
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:61
- 大小:29.85KB
东北大学C语言主观题+答案.docx
《东北大学C语言主观题+答案.docx》由会员分享,可在线阅读,更多相关《东北大学C语言主观题+答案.docx(61页珍藏版)》请在冰点文库上搜索。
东北大学C语言主观题+答案
主观题
题目
1编程:
要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百位以上的数字,否则输出两数之和a+b。
#include
main()
{
inta,b,c;
printf("pleaseinputa=");
scanf("%d",&a);
printf("pleaseinputb=");
scanf("%d",&b);
if(a*a+b*b>100)
{
c=(a*a+b*b)/100;
printf("%d",c);
}
else
printf("%d\n",a+b);
}
4编程:
输入三个正整数x,y,z,将这三个数由小到大输出。
#include
#include
main()
{
inta[3],i,m
ax,j;
printf("pleaseinputthe3numbers:
");
for(i=0;i<3;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
if(a[j]>a[j+1])
{
max=a[j];
a[j]=a[j+1];
a[j+1]=max;
}
}
printf("theresultis");
for(i=0;i<3;i++)
printf("%d",a[i]);
printf("\n");
}
5编程:
从键盘输入一个年号,判断该年号是否为闰年,并输出结果。
闰年是能被4整除但不能被100整除;或能被100整除且能被400整除的年号。
一解:
#include
main()
{
intyear;
printf("inputtheyear:
");
scanf("%d",&year);
if(year%4==0&&year%100!
=0;)
printf("%disaleapyear\n",year);
elseif(year%100==0&&year%400==0)
printf("%disaleapyear\n",year);
else
printf("%disnotaleapyear\n",year);
}
二解:
#include
intmain(void)
{
intyear;
scanf("%d",&year);
if((year%4==0)&&(year%100!
=0)||(year%400==0))
printf("这年是闰年\n");
else
printf("这年不是闰年\n");
}
6编程实现四位电话号码的升位。
原来电话号码为1、3、5、7、9打头的号码前加2,原来电话号码为2、4、6、8打头的加3,例如:
输入1234,则输出:
21234。
#include
main()
{
longx,y;
printf("pleaseinputtelephonenumber");
scanf("%d",&x);
y=x/1000;
switch(y)
{
case1:
case3:
case5:
case7:
case9:
x=2*10000+x;break;
case2:
case4:
case6:
case8:
x=3*10000+x;break;
}
printf("theresultis%ld\n",x);
}
7编程实现四位电话号码的升位。
原来电话号码为1、2、3、4、5打头的号码前加3,原来电话号码为6、7、8、9打头的加2,例如:
输入1234,则输出:
31234。
参考6
9编程:
输入3个正整数,判断能否组成三角形,如果能够组成三角形,则输出三角形的面积,否则输出错误。
三角形面积公式:
area=sqrt(s(s-a)(s-b)(s-c)),其中s=1/2(a+b+c)。
(提示:
sqrt(x)属于math.h)
#include
#include
main()
{
floatx,y,z;
floatarea,s;
printf("pleaseinput:
");
scanf("%f%f%f",&x,&y,&z);
if((x+y<=z)||(z+y<=x)||(x+z<=y))
printf("no\n");
else
{
s=(x+y+z)/2;
area=sqrt(s*(s-x)*(s-y)*(s-z));
printf("%f\n",area);
}
}
11编程:
判定用户输入一个不大于999的正整数是否为一个回文数。
回文数是指正读和反读都相同的数。
#include
main()
{
inta,x,y,z;
printf("pleaseinputanumber");
scanf("%d",&a);
if(0 { x=a/100; y=(a-100*x)/10; z=a%10; if(x==0) { if(y==z) printf("Yes\n"); else printf("no\n"); } elseif(x==z) printf("yes\n"); else printf("no\n"); } } 12编程: 从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。 转换的方式是: 将a中较大的数码作为b的十位,剩余的数码作为b的个位。 例如,当输入a=49,则结果b=94。 #include main() { inta,b,x,y; printf("pleaseinputanumber"); scanf("%d",&a); if(0 { x=a/10; y=a%10; if(x>=y) { b=a; } else { b=10*y+x; } printf("theresultis%d",b); } else printf("awrongnumber"); } 13编程: 从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。 转换的方式是: 将a中较小的数码作为b的十位,剩余的数码作为b的个位。 例如,当输入a=54,则结果b=45。 参考12 14初始化数组a中包含10个不同的整数,要求从键盘输入一个整数,若这个整数在数组中则从数组中删除这个整数并输出删除后的数组,否则输出no。 #include main() { inta[10]={2,3,4,1,5,6,7,8,9,10},i,x,j,k; printf("pleaseinputanumber"); scanf("%d",&x); for(i=0;i<10;i++) { if(a[i]==x) { for(j=i;j<10;j++) a[j]=a[j+1]; for(k=0;k<9;k++) printf("%3d",a[k]); break; } elseif(i==9) printf("no"); } } 15初始化一字符串(字符串中的每个字符各不同),要求从键盘输入一个字符,删除字符串中和输入字符相同的字符,输出处理后的字符串。 #include main() { chara[7]={"howare"}; charb[1]; inti,j,k; printf("pleaseinputthestring: "); gets(b); for(i=0;i<7;i++) { if(a[i]==b[0]) { for(j=i;j<5;j++) { a[j]=a[j+1]; } for(k=0;k<5;k++) printf("%c",a[k]); printf("\n"); break; } elseif(a[i]=='\0') { printf("no\n"); break; } } } 16计算一个4*4矩阵的主对角线的元素之和以及最大元素的值。 要求初始化矩阵,输出计算结果并输出该矩阵。 #include main() { inta[4][4]={{2,123,1,5},{4,22,56,23},{5,7,89,23},{1,2,3,4}}; inti,sum=0,max,j; for(i=0;i<4;i++) sum=sum+a[i][i]; max=a[0][0]; for(i=0;i<4;i++) { for(j=0;j<4;j++) if(max max=a[i][j]; } printf("thesumis%dandthemaxnumberis%d\n",sum,max); } 17计算一个3*3矩阵的所有元素之和以及所有元素中的最大元素的值。 要求初始化矩阵,输出计算结果并输出该矩阵。 参考16,懒得弄了 #include main() { inta[3][3]={{1,2,3},{6,7,8},{1,3,4}}; inti,j,s1=0,s2; for(j=0;j { s2=s2+a[i][j]; } s1=s1+s2; } printf("sum=%d\n",s1); } 18初始化一字符串(长度小于20个字符),取出第3个字符到第7个字符组成的子串,输出该子串。 #include main() { chara[20]={"asldfkjasldkf"}; inti; puts(a); for(i=2;i<7;i++) printf("%c",a[i]); printf("\n"); } 19编程计算一个a[3][4]数组的最小值所在位置,输出该位置以及a[3][4]矩阵。 要求初始化矩阵。 参考16 #include main() { inta[3][4]={{4,6,4,7},{8,5,2,14},{87,76,75,33}}; inti,j,c,b,min; min=a[0][0]; for(i=0;i<3;i++) { for(i=0;i<3;i++) { for(j=0;j<4;j++) { if(a[i][j] { min=a[i][j]; b=i+1; c=j+1; } } } printf("4647\n85214\n87767533\n"); printf("行=%d\n列=%d\n",b,c); } 20初始化一矩阵a[4][4],计算每行的最大元素值,要求输出原始矩阵以及每行的最大元素值。 #include main() { inta[4][4]={{2,123,1,5},{4,22,56,23},{5,7,89,23},{1,2,3,4}},i,j,max; for(i=0;i<4;i++) { max=a[i][0]; for(j=0;j<4;j++) { printf("%3d",a[i][j]); } printf("\n"); } for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(max max=a[i][j]; } } printf("themaxnumberis%d\n",max); } 21初始化一矩阵a[4][4],计算每列的最大元素值,要求输出原始矩阵以及每列的最大元素值。 参考20 22编程计算a[3][4]数组的最大值所在位置,输出该位置以及a[3][4]矩阵。 要求初始化矩阵。 参考20 23编程实现: 计算矩阵a[3][4]每行元素的和。 要求输出原始矩阵以及每行元素的和值。 要求初始化矩阵。 参考20 24编程实现: 计算矩阵a[3][4]每列元素的和。 要求输出原始矩阵以及每列元素的和值。 要求初始化矩阵。 参考20 #include main() { inta[3][4]={{4,6,4,7},{8,5,2,14},{87,76,75,33}}; inti,j,sum; for(i=0;i<3;i++) { sum=0; for(j=0;j<4;j++) sum+=a[i][j]; printf("第%d列和为%d\n",j+1,sum); } } 25一维数组中存放任意10个整数,从第四个数据开始直到最后一个数据,依次向右移动一个位置。 输出原始数据和移动后的结果。 要求初始化数组。 例如: 原始数据为: 610298717182345,输出结果为: 6102998717182345。 #include main() { inta[11]={6,10,2,9,8,7,17,18,23,45},i; printf("theoriginstringsis"); for(i=0;i<10;i++) printf("%3d",a[i]); printf("\n"); for(i=10;i>3;i--) a[i]=a[i-1]; printf("thechangedstringsis"); for(i=0;i<11;i++) printf("%3d",a[i]); printf("\n"); } 26编程实现: 在任意字符串a中将与字符c相同的所有元素的下标值分别存放在数组b中,输出字符串a和数组b。 要求初始化数组a。 #include main() { inta[10]={6,10,2,9,8,7,17,18,23,45}; intb[11]; inti,j; for(i=0;i<4;i++) { b[i]=a[i]; printf("%d",b[i]); } for(j=4;j<11;j++) { b[j]=a[j-1]; prinff("%d",b[j]); } printf("\n"); } 27初始化一个存放10个整数的数组,删除其中所有的小于0的数据。 例如: 当前的数据为1–1–68966–569,则输出结果为1896669。 #include main() { inta[10]={1,-1,-6,8,9,6,6,-5,6,9}; inti; printf("theoriginstringis"); for(i=0;i<10;i++) printf("%3d",a[i]); printf("\n"); printf("thechangestringis"); for(i=0;i<10;i++) { if(a[i]>0) printf("%3d",a[i]); } printf("\n"); } 28已知4X4矩阵,求行下标和列下标均为偶数的元素之和,要求输出原始矩阵以及和值。 提示: 例如A[0][0]、A[0][2]的行下标和列下标均为偶数。 要求初始化矩阵。 #include main() { inta[4][4]={{2,123,1,5},{4,22,56,23},{5,7,89,23},{1,2,3,4}}; inti,sum=0,j; for(i=0;i<3;i=i+2) { for(j=0;j<3;j++) printf("%d",a[i][j]); } for(i=0;i<3;i=i+2) { for(j=0;j<3;j=j+2) sum=sum+a[i][j]; } printf("theresultis%d\n",sum); } 29已知4X4矩阵,求行下标和列下标均为奇数的元素之和,要求输出原始矩阵以及和值。 例如A[1][1]、A[1][3]的行下标和列下标均为奇数。 要求初始化矩阵。 参考28 30函数voidfun(inta[],intn,int*small,int*big),该函数的功能是分别求出一维数组a中所有奇数项中的最小值与所有偶数项中的最大值,形参n给出数组中数据的个数;利用指针small返回奇数项中的最小值,利用指针big返回偶数项中的最大值。 要求: 在主调函数中初始化一个一维数组,并在主调函数中调用函数fun后,在主调函数中输出结果。 #include voidfun(inta[],intn,int*small,int*big) { intmax,min,i,j; min=a[0]; max=a[1]; if(n%2==0) { for(i=0;i<=n-2;i=i+2) { if(min>a[i]) min=a[i]; } for(j=1;j<=n-1;j=j+2) { if(max max=a[j]; } *small=min; *big=max; } else { for(i=0;i<=n;i=i+2) { if(min>a[i]) min=a[i]; } for(j=1;j<=n-1;j=j+2) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东北大学 语言 主观题 答案