C二级真题.docx
- 文档编号:8231523
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:48
- 大小:41.72KB
C二级真题.docx
《C二级真题.docx》由会员分享,可在线阅读,更多相关《C二级真题.docx(48页珍藏版)》请在冰豆网上搜索。
C二级真题
三、程序设计题目
1.编写程序,打印下列图案
*
**
***
****
*****
2.某数列前两项分别为1和2,其后每项为前两项之和,求此数列的第10个数。
3.一个8层的灯塔,每一层的灯数是上一层的2倍,一共有765盏灯,求灯塔底层的灯数。
(1)从键盘输入一个华氏温度,要求输出摄氏温度,公式为
C=5*(F-32)/9
(2)编写一个函数求y=(a-b)×(a+b),主函数用以输入a,b的值和输出y值。
(3)编一程序:
从键盘输入10个整数,计算并输出这10个数的平均数。
(4)通过键盘输入3*4矩阵,编写一个函数求所有元素中的最大值,其中主函数完成3*4矩阵的输入和最大元素的输出。
Key:
3.
(1)main()
{floatc,f;
scanf(“%f”,&f);
c=5.0*(f-32)/9;
printf(“c=%f”,c);
}
(2)intf(inta,intb)
{return(a-b)*(a+b);}
main()
{inta,b;
scanf(“%d,%d”,&a,&b);
printf(“y=%d”,f(a,b));
}
(3)main()
{inta[10],j;
floatave=0;
for(j=0;j<10;j++)
{scanf(“%d”,&a[j]);
ave=ave+a[j];
}
printf(“ave=%f”,ave/10);
}
(4)
#include
main()
{intmax(intarray[][4]);;
intk,j,a[3][4];
for(k=0;k<3;k++)
for(j=0;j<4;j++)
scanf(“%d”,&a[i][j]);
printf("themaxis%d",max(a));
}
intmax(intarray[][4])
{intk,j,max;
max=array[0][0];
for(k=0;k<3;k++)
for(j=0;j<4;j++)
if(array[k][j]>max)max=array[k][j];
return(max);
}
四、编程题(7+8+7+8,共30分)
1、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?
都是多少?
1、main()
{
inti,j,k;
printf("\n");
for(i=1;i<5;i++) /*以下为三重循环*/
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
if(i!
=k&&i!
=j&&j!
=k) /*确保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
}
2、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,求1000以内满足条件的数。
2、#include"math.h"
main()
{
longinti,x,y,z;
for(i=1;i<100000;i++)
{x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("\n%ld\n",i);
}
}
3、输出打印九九乘法表。
3、#include"stdio.h"
main()
{
inti,j,result;
printf("\n");
for(i=1;i<10;i++)
{for(j=1;j<10;j++)
{result=i*j;
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
}
printf("\n");/*每一行后换行*/
}
}
4、一个5位数,判断它是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同。
4、main()
{
longge,shi,qian,wan,x;
scanf("%ld",&x);
wan=x/10000;
qian=x%10000/1000;
shi=x%100/10;
ge=x%10;
if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
printf("thisnumberisahuiwen\n");
else
printf("thisnumberisnotahuiwen\n");
}
四.【程序设计】
功能:
将主函数中输入的字符串反序存放。
例如:
输入字符串"abcdefg",则应输出"gfedcba"。
注意:
请在Begin和End注释行之间填写代码,所有注释语句都不能删除。
#include"stdio.h"#include"string.h"
#include"conio.h"#defineN81
voidfun(charstr[],intn)
{/*********Begin**********/
【参考代码】
inti,j;
charc;
for(i=0,j=n-1;i {c=str[i]; str[i]=str[j]; str[j]=c;} /**********End**********/ } voidmain() {voidTestFunc();chars[N];intl;printf("inputastring: ");gets(s); l=strlen(s);fun(s,l);printf("Thenewstringis: ");puts(s);TestFunc();} 四【程序设计】 功能: 对任意输入的x,用下式计算并输出y的值。 (还可以尝试用case语句) -1x<0 y=0x=0 1x>0 #include"stdio.h" intfun(intn) {/*********Begin**********/ 【参考代码】 intm; if(n<0) m=-1; else if(n==0)m=0; elsem=1; returnm; /**********End**********/ } voidmain() {voidTestFunc(); intx,y; printf("enterx: "); scanf("%d",&x); y=fun(x); printf("x=%d,y=%d\n",x,y); TestFunc(); } 【程序设计】在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的平方和,并在fun()函数中输出。 #include"stdio.h" voidmain() {inti,j,s,a[3][3]; intfun(inta[3][3]); voidTestFunc(); for(i=0;i<3;i++) {for(j=0;j<3;j++)scanf("%d",&a[i][j]);} s=fun(a);printf("Sum=%d\n",s);TestFunc();} intfun(inta[3][3]) {/*********Begin**********/ 【参考代码】 intsum=0,i; for(i=0;i<3;i++) sum=sum+a[i][i]*a[i][i]; returnsum; /**********End**********/ } 【程序设计】题目: 用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。 #include"stdlib.h"#include"stdio.h"#defineN3 intsum(inta[][N]) {/*********Begin**********/ 【参考代码】 inti,j,k=0; for(i=0;i for(j=N-1-i;j k=k+a[i][j]; return(k); /**********End**********/} voidmain() {inta[N][N],i,j; voidTestFunc(); for(i=0;i {for(j=0;j {a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数 printf("%3d",a[i][j]); }printf("\n"); }printf("===================\n"); printf("sum=%5d\n",sum(a)); TestFunc(); 【程序设计】功能: 对任意输入的x,用下式计算并输出y的值。 5x<10 y=0x=10 -5x>10 #include"stdio.h" intfun(intn) {/*********Begin**********/ intm; if(n<10)m=5; elseif(n==10)m=0; elsem=-5;returnm; /**********End**********/ } voidmain() { intx,y;voidTestFunc();printf("enterx: "); scanf("%d",&x);y=fun(x); printf("x=%d,y=%d\n",x,y);TestFunc(); } 【程序设计】功能: 计算并输出给定整数n的所有因子之和(不包括1与自身)。 注意: n的值不大于1000。 例如: n的值为855时,应输出704。 #include"stdio.h" intfun(intn) {/**********End**********/ 【参考代码】 ints=0,i; for(i=2;i if(n%i==0)s=s+i; returns; *******Begin**********/ } voidmain() {voidTestFunc();printf("s=%d\n",fun(855));TestFunc();} voidTestFunc() {FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL) {printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged"); } OUT=fopen("out.dat","w");if(OUT==NULL) {printf("PleaseVerifyTheCurrentDir..ItMayBeChanged"); } for(i=0;i<5;i++) {fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);} fclose(IN);fclose(OUT); } 【程序设计】功能: 求x到y之间的奇数和(包括x和y)。 #include"stdio.h" intfun(intx,inty) {/*********Begin**********/ 【参考代码】 inti,s=0; for(i=x;i<=y;i++) if(i%2! =0)s=s+i; returns; /**********End**********/ } main() {ints; s=fun(1,1999); printf("s=%d\n",s); TestFunc(); 【程序设计】功能: 实现两个整数的交换。 例如: 给a和b分别输入: 60和65,输出为: a=65b=60 #include"stdio.h" #include"conio.h" voidfun(int*a,int*b) {/*********Begin**********/ 【参考代码】 intt; t=*a;*a=*b;*b=t; /**********End**********/ } main() {inta,b; voidTestFunc(); printf("Entera,b: "); scanf("%d%d",&a,&b); fun(&a,&b); printf("a=%db=%d\n",a,b); TestFunc(); } 【程序设计】编写函数fun求一个字符串的长度,在main函数输入字符串,并输出其长度。 #include"stdio.h" intfun(charp[]) {/*********Begin**********/ 【参考代码】 intn=0; while(p[n]! =’\0’)n++; returnn; /**********End**********/ } voidmain() {chara[20]; voidTestFunc(); intlen; printf("pleaseinputastring: \n"); gets(a); len=fun(a); printf("Thestring'slengthis: %d\n",len); TestFunc(); } 【程序设计】 请写一函数fun,该函数的功能是: 把数组a中的数按从大到小的顺序排列。 数组的值从主函数中输入,排序结果也在主函数中输出。 #include #defineN10 voidfun(inta[],intn) {/*********Begin**********/ inti,j,t;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级
![提示](https://static.bdocx.com/images/bang_tan.gif)