IT认证历年计算机二级C程序设计试题总结.docx
- 文档编号:12369684
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:99
- 大小:36.46KB
IT认证历年计算机二级C程序设计试题总结.docx
《IT认证历年计算机二级C程序设计试题总结.docx》由会员分享,可在线阅读,更多相关《IT认证历年计算机二级C程序设计试题总结.docx(99页珍藏版)》请在冰豆网上搜索。
IT认证历年计算机二级C程序设计试题总结
1、求1+2+3+……….+100。
(循环)
#include
voidmain()
{
inti,sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf("%d",sum);
}
2、求1*2*3*……….*10。
(循环)
voidmain()
{
inti=0,j=1;
for(i=2;i<=10;i++)
{
j*=i;
}
printf("%d",j);
return0;
}
3、输入三个数字,输出他们的最大值。
(if)
#include
voidmain()
{inta,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d",d);
getch();/*暂停看运行结果*/
}
intmax(intx,inty,intz)
{intu;
if(x>=y&&x>=z)
u=x;
elseif(y>=x&&y>=z)
u=y;
else
u=z;
return(u);
4.用起泡法对十个数据排序(数组实现)
#include
main()
{inti,j,t;
staticinta[10]={5,7,4,2,3,6,1,0,9,8};
for(j=0;j<9;j++)
{for(i=0;i<9-j;i++)
{if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;
}
}
}
for(i=0;i<10;i++)
printf("%2d",a[i]);
}
5、输入十个数字,逆序输出。
(数组实现)
#include
main()
{inta[10],i=0;
for(i=0;i<=9;i++)
scanf("%f",&a[i]);
printf("\n");
for(i=9;i>=0;i--)
printf("%f",a[i]);
}
6输入两个数,交换他们的值并输出。
(元素交换)
#include
intmain()
{
intm,n,temp;
scanf("%d%d",&m,&n);
if(m { temp=m; m=n; n=temp; } printf("%d",m); return0; } 7.输出9*9乘法表。 (双层循环) #include voidmain() { inti=1; for(i;i<=9;i++) { intj=1; for(j;j<=i;j++) { printf("%d*%d=%d",i,j,i*j); } printf("\n"); } } 8.输入一行字符,将所有的小写字母转换成大写字母,大写字母转换成小写字母,其余字符不变。 输出转变后的这行字符。 #include"stdio.h" voidmain() { chara[n]; inti; scanf("%s",a); printf("大写为: "); for(i=0;i<=n;i++) { if(a[i]<='z'&&a[i]>='a') a[i]=a[i]-32; printf("%c",a[i]); } printf("\n小写为: "); for(i=0;i<=3;i++) { a[i]=a[i]+32; printf("%c",a[i]); } } 9、编写一个简单计算器程序,要求能够完成两个数的+,-,*,/四种运算。 输出运算式及运算结果。 (switch) 6.2 #include"stdio.h" main() {charc;inti=0,j=0,k=0,l=0; while((c=getchar())! =’\n’) {if(c>=65&&c<=90||c>=97&&c<=122)i++; elseif(c>=48&&c<=57)j++; elseif(c==32)k++; elsel++;} printf("i=%d,j=%d,k=%d,l=%d\n",i,j,k,l); } 6.6 #include"math.h" main() {intx=100,a,b,c; while(x>=100&&x<1000){a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b; if(x==(pow(a,3)+pow(b,3)+pow(c,3)))printf("%5d",x);x++;} } 6.7 main() {intm,i,j,s; for(m=6;m<10000;m++) {s=1; for(i=2;i if(m%i==0)s=s+i; if(m-s==0) {printf("%5ditsfastorsare1",m);for(j=2;j printf("%d",j);printf("\n");} } } 或 main() {intm,i,j,s; for(m=6;m<1000;m++) {s=m-1; for(i=2;i if(m%i==0)s=s-i; if(s==0) {printf("%5ditsfastorsare1",m);for(j=2;j printf("%d",j);printf("\n");} } } 6.8 main() {inti=1,n;doublet,x=1,y=2,s,sum=0; scanf("%ld",&n); while(i<=n){s=y/x;sum=sum+s;t=y;y=y+x;x=t;i++;} printf("%f\n",sum); } 11,P128例6.10(译码) #include voidmain() { charc; while((c=getchar())! ='\n') { c=c+4; if(c>'Z'+4||c>'z') c=c-26; } printf("%c",c); } printf("\n"); } 12,P1115.55.6(switch) 5.5 #include main() {intx,y; printf("输入x: "); scanf("%d",&x); if(x<1) {y=x; printf("x=%3d,y=x=%d\n",x,y); } elseif(x<10) {y=2*x-1; printf("x=%3d,y=2*x-1=%d\n",x,y); } else {y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x,y); } } 5.6 #include main() {floatscore; chargrade; case2: printf("请输入学生成绩: "); scanf("%f",&score); while(score>100||(score<0) {printf("\n输入有误,请重新输入: "); scanf("%f",&score); } switch((int)(score/10)) {case10: case9: grade=’A’;break; case8: grade=’B’;break; case7: grade=’C’;break; case6: grade=’D’;break; case5: case4: case3: case1: case0: grade=’E’; } printf("成绩是%5.1f,相应的等级是%c。 \n",score,grade); } 13,P108例5.5(一元二次方程求根)例5.6(求闰年) 5.5 #include voidmain() { intyear,leap; scanf("%d",&year); if(year%4==0) { if(year%100==0) { if(year%400==0) leap=1; else leap=0; } else leap=1; } else leap=0; if(leap) printf("%dis",year); else printf("%disnot",year); printf("aleapyear.\n") } 5.6 14,P31例2.17例2.18 2.17 输出50个学生中成绩高于80分者的学号和成绩 2.18 输出2000——2500年每一年是否闰年 #include voidmain() { intyear; year=2000; go: if(((year%4==0)&&(year%100! =0))||(year%400==0)) printf("%disrunnian",year); if(year<=2500) year=year++; if(year>2500) gotoend; gotogo; end: getch(); } 1.输入两个正整数,m和n,求其最大公约数和最小公倍数。 #include voidmain() { inthcf(int,int);/*函数声明*/ intlcd(int,int,int);/*函数声明*/ intu,v,h,l; printf("Pleaseinputtwonumbers: \n"); scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%d\n",h); l=lcd(u,v,h); printf("L.C.D=%d\n",l); } inthcf(intu,intv) { intt,r; if(v>u) {t=u;u=v;v=t;} while((r=u%v)! =0) {u=v;v=r;} return(v); } intlcd(intu,intv,inth) { return(u*v/h); } 2.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。 #include intletter,digit,space,others; voidmain() { voidcount(char[]); chartext[80]; printf("Pleaseinputstring: \n"); gets(text); printf("string: \n"); puts(text); letter=0; digit=0; space=0; others=0; count(text); printf("letter: %d,digit: %d,space: %d,others: %d\n",letter,digit,space,others); } voidcount(charstr[]) { inti; for(i=0;str[i]! ='\0';i++) if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) letter++; elseif(str[i]>='0'&&str[i]<='9') digit++; elseif(str[i]==32) space++; else others++; } 3.输入一个正整数求出它是几位数;输出原数和位数。 #include intdigit; voidmain() { voidcount(char[]); chartext[80]; printf("Pleaseinputnumbers: \n"); gets(text); printf("Numbers: \n"); puts(text); digit=0; count(text); printf("digit: %d\n",digit); } voidcount(charstr[]) { inti; for(i=0;str[i]! ='\0';i++) if(str[i]>='0'&&str[i]<='9') digit++; } 4.输入一个正整数,输出原数并逆序打印出各位数字。 #include voidinvertLongInt(long); voidmain() { unsignedlongiNumber; printf("Pleaseinputanumber: \n"); scanf("%ld",&iNumber); printf("Theinputnumberis: %ld\n",iNumber); printf("Theinversenumberis: "); invertLongInt(iNumber); } voidinvertLongInt(longx) { if(x>=0&&x<=9) printf("%d\n",x); else { printf("%d",x%10); invertLongInt(x/10); } } 5.从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩及相应的序号,当输入负数时结束输入。 6.从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。 将结果输出。 7.求1! +2! +3! +……+20! ,将结果输出。 #include voidmain() { floats=0,t=1; intn; for(n=1;n<=20;n++) { t=t*n; s=s+t; } printf("1! +2! +3! +……+20! =%e\n",s); } 8.打印以下图案: * *** ***** ******* #include voidmain() { inti,j; printf("Thepictureis: \n"); staticcharpicture[4][7]={{'','','','*'}, {'','','*','*','*'},{'','*','*','*','*','*'},{'*','*','*','*','*','*','*'}}; for(i=0;i<=3;i++) { for(j=0;j<=6;j++) printf("%c",picture[i][j]); printf("\n"); } } 9.打印以下图案: * ** *** **** #include voidmain() { inti,j; printf("Thepictureis: \n"); charpicture[4][4]={{'*'}, {'*','*'},{'*','*','*'},{'*','*','*','*'}}; for(i=0;i<=3;i++) { for(j=0;j<=3;j++) printf("%c",picture[i][j]); printf("\n"); } } 10.求下列试子的值: 1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。 #include voidmain() { floatsum=1.0,t,s=1; inti; for(i=1;i<=100;i++) { t=s/i; sum=sum+t; s=-s; } printf("1-1/2+1/3-1/4+……+1/99-1/100=%5.4f\n",sum); } 11.打印出100~999之间的所有水仙花数。 #include voidmain() { inti,j,k,n; printf("100~999之间的所有水仙花数are: \n"); for(n=100;n<1000;n++) { i=n/100; j=n/10-i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) printf("%d",n); } printf("\n"); } 12.求Sn=a+aa+aaa+…+aa…a之值,n,a由键盘输入。 #include voidmain() { inta,n,i=1,sn=0,tn=0; printf("a,n=: "); scanf("%d,%d",&a,&n); while(i<=n) { tn=tn+a; sn=sn+tn; a=a*10; ++i; } printf("a+aa+aaa+…+aa…a=%d\n",sn); } 13.打印以下图案: ******* ******* ******* ******* #include voidmain() { chara[7]={'*','*','*','*','*','*','*'}; inti,j,k; charspace=''; printf("Thepictureis: "); for(i=0;i<4;i++) { printf("\n"); printf(""); for(j=1;j<=i;j++) printf("%c",space); for(k=0;k<7;k++) printf("%c",a[k]); } printf("\n"); } 14.打印以下图案: 1 121 12321 1234321 15.打印以下图案: 1234321 12321 121 1 16.编写一个统计学生成绩程序,完成以下功能: 输入4个学生的2门课成绩;求出全班的总平均分,将结果输出。 #include #defineN4 structstudent { charnum[3]; charname[4]; floatscore[2]; floatavr; } stu[N]; voidmain() { inti,j; floatsum,average; for(i=0;i { printf("inputscoresofstudent%d: \n",i+1); printf("name: "); scanf("%s",stu[i].name); for(j=0;j<2;j++) { printf("score%d: ",j+1); scanf("%f",&stu[i].score[j]); } } average=0;/*计算*/ for(i=0;i { sum=0; for(j=0;j<2;j++) sum+=stu[i].score[j]; stu[i].avr=sum/2; average+=stu[i].avr; } average/=N; printf("Namescore1score2average\n"); for(i=0;i { printf("%5s%10s",stu[i].num,stu[i].name); for(j=0;j<2;j++) printf("%9.2f",stu[i].score[j]); printf("%8.2f\n",stu[i].avr); } printf("average=%5.2f\n",average); } 17.打印以下图案: ***** ***** ***** ***** ***** #include voidmain() { chara[5]={'*','*','*','*','*'}; inti,j,k; charspace=''; printf("Thepictureis: "); for(i=0;i<5;i++) { printf("\n"); printf(""); for(j=1;j<=i;j++) printf("%c",space); for(k=0;k<5;k++) printf("%c",a[k]); } printf("\n"); } 18.给出年、月、日,计算该日是该年的第几天。 #include voidmain() { intsum_day(int,int); intleap(intyear); intyear,month,day,days; printf("inputdate(year,month,day): "); scanf("%d,%d,%d",&year,&month,&day); printf("%d/%d/%d",year,month,day); days=sum_day(month,day); if(leap(year)&&month>=3) days=days+1; printf("isthe%dthdayinthisyear.\n",days); } intsum_day(intmonth,intday) { intday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; inti; for(i=1;i day+=day_tab[i]; return(day); } intleap(intyear) { intleap; leap=year%4==0&&year%100! =0||year%400==0; return(leap); } 19.求一个3*3的整型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IT 认证 历年 计算机 二级 程序设计 试题 总结