C语言题库及答案.docx
- 文档编号:12155631
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:30
- 大小:24.45KB
C语言题库及答案.docx
《C语言题库及答案.docx》由会员分享,可在线阅读,更多相关《C语言题库及答案.docx(30页珍藏版)》请在冰点文库上搜索。
C语言题库及答案
第一题汇总
1要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百位以上的数字,否则输出两数之和a+b。
#include
main()
{
inta,b,m,n,sum;
printf("pleaseputina&b:
");
scanf("%d,%d",&a,&b);
if(a*a+b*b>100)
{
m=a*a+b*b;
n=m/100;
printf("%d*%d+%d*%d百位以上的数字为%d\n",a,a,b,b,n);
}
else
{
sum=a+b;
printf("两数之和为%d\n",sum);
}
}
2根据以下函数关系:
当x<=0,y=0;当0
(提示:
sin(x)属于math.h)
#include
#include
main()
{
floatx,y;
printf("pleaseputinx:
");
scanf("%f",&x);
if(x<=0)
y=0;
elseif(x<=10)
y=x;
elseif(x<=20)
y=10;
else
y=sin(x);
printf("y=%f",y);
}
3输入三个正整数x,y,z,将这三个数由小到大输出
main()
{
intx,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{t=x;x=y;y=t;}/*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("smalltobig:
%d%d%d\n",x,y,z);
}
4从键盘输入一个年号,判断该年号是否为闰年,并输出结果。
闰年是能被4整除但不能被100整除;或能被100整除且能被400整除的年号。
#include
main()
{inty;
scanf("%d",&y);
if(y%400==0||y%4==0&&y%100!
=0)printf("Yes.\n");
elseprintf("No.\n");
}
5编程实现四位电话号码的升位。
原来电话号码为1、3、5、7、9打头的号码前加2,原来电话号码为2、4、6、8打头的加3,例如:
输入1234,则输出:
21234。
6输入3个正整数,判断能否组成三角形,如果能够组成三角形,则输出三角形的面积,否则输出错误。
三角形面积公式:
area=sqrt(s(s-a)(s-b)(s-c)),其中s=1/2(a+b+c)。
(提示:
sqrt(x)属于math.h)
#include
#include
main()
{
inta,b,c;
printf("请输入三边边长:
");
scanf("%d,%d,%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
floats,area;
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形面积为%f",area);
}
else
printf("输出错误");
}
7判定用户输入一个不大于999的正整数是否为一个回文数。
回文数是指正读和反读都相同的数。
main()
{
longge,bai,x;
scanf("%ld",&x);
bai=x/100;
ge=x%10;
if(ge==bai)
printf("thisnumberisahuiwen\n");
else
printf("thisnumberisnotahuiwen\n");
}
8从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。
转换的方式是:
将a中较大的数码作为b的十位,剩余的数码作为b的个位。
例如,当输入a=49,则结果b=94。
#include
main()
{
inta,b,x,y;
printf("pleaseinputanumber");
scanf("%d",&a);
if(9 { x=a/10; y=a%10; if(x>=y) { b=a; } else { b=10*y+x; } printf("theresultis%d",b); } else printf("awrongnumber"); } 9将一个正整数分解质因数。 例如: 输入90,打印出90=2*3*3*5。 #include 10设有一分数列: 2/1,3/2,5/3,8/5,13/8,21/13,……试编程求出这个数列的前十项之和。 #include main() {inti,x,y,a; floatsum=0; x=2; y=1; for(i=1;i<20;i++) { sum+=(float)(x)/y; //printf("%d/%d\n",x,y); a=x; x=x+y; y=a; } printf("%7.5f\n",sum); } 11输入一个同学的C语言成绩,要求输出成绩等级'A','B','C','D','E'。 等级划分原则是: 90分以上者为'A',80-89分为'B',70-79分为'C',60-69分为'D',60分以下为'E'。 #include main() { intiNum; sacnf("%d",&iNum); switch(iNum/10) { case10: case9: printf("A\n");break; case8: printf("B\n");break; case7: printf("C\n");break; case6: printf("D\n");break; default: printf("E\n");break; } } 12求一个3*3矩阵两条对角线元素之和。 要求初始化该数组元素。 #include #definek3 intmain() { intenter; //intk=3; intarr[k][k]; inti,j,sum=0; for(i=0;i { for(j=0;j { scanf("%d",&enter); arr[i][j]=enter; if(i==j) { sum+=arr[i][j]; } } sum+=arr[i][k-i-1]; } if((k%2)==1) { sum-=arr[k/2][k/2]; } for(i=0;i { for(j=0;j { printf("%d",arr[i][j]); } printf("\n"); } printf("%d\n",sum); return0; } 13输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 #include #include main() {charc; intw=0,x=0,y=0,z=0; while((c=getchar())! ='\n') {if((c>='a'&&c<='z')||(c>='A'&&c<='z')) w++; elseif(c=='') x++; elseif(c>='0'&&c<='9') y++; else z++; } printf("w=%d,x=%d,y=%d,z=%d",w,x,y,z); } 14实现两个数的#法和$法运算。 如输入3,4,#,输出25;输入3,4,$,输出34;提示: #法和$法运算是自己定义的一种运算,a#b=a*a+b*b,a$b=a*10+b。 #include voidmain() { inta,b; charc; scanf("%d,%d,%c,",&a,&b,&c); switch(c) { case'#': printf("%d\n",a*a+b*b); break; case'$': printf("%d\n",a*10+b); } } 第二题汇总 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初始化一字符串(长度小于20个字符),取出第3个字符到第7个字符组成的子串,输出该子串。 #include main() { chara[20]={"asldfkjasldkf"}; inti; puts(a); for(i=2;i<7;i++) printf("%c",a[i]); printf("\n"); } 18编程计算一个a[3][4]数组的最小值所在位置,输出该位置以及a[3][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++) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 题库 答案