二级C语言往年试题.docx
- 文档编号:7335642
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:14
- 大小:18.68KB
二级C语言往年试题.docx
《二级C语言往年试题.docx》由会员分享,可在线阅读,更多相关《二级C语言往年试题.docx(14页珍藏版)》请在冰豆网上搜索。
二级C语言往年试题
【121105001·Modify1】程序功能:
调用函数f,去除数组中的负数,输入数组x[7],输出结果1346。
(frequency:
7)
#include
voidf(int*a,int*m)
{inti,j;
for(i=0;i<*m;i++)
if(a[i]<0){
for(j=i--;j<*m-1;j++)a[j]=a[j+1];
(*m)--;
}
}
voidmain()
{inti,n=7,x[7]={1,-2,3,4,-5,6,-7};
f(x,&n);
for(i=0;i printf("\n"); } 【121105001·Modify2】程序功能: 调用函数f,将1个整数首尾倒置。 例如: 若程序输入12345,则输出54321; 若程序输入-34567,则输出-76543。 (frequency: 3) #include #include longf(longn) {longm,y=0;m=fabs(n); while(m! =0){ y=y*10+m%10; m=m/10; } if(n>=0)returny; elsereturn-y; } voidmain() { printf("%ld\t",f(12345));printf("%ld\n",f(-34567)); } 【121105002·Modify1】程序功能: 将输出的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。 (例如: 输出十进制数79,将输出十六进制数4f)(frequency: 2) #include #include chartrans(intx) { if(x<10)return'0'+x; elsereturn'a'+x-10; } intDtoH(intn,char*str) { inti=0; while(n! =0) { str[i]=trans(n%16); n/=16;i++;} returni-1; } voidmain() { inti,k,n; char*str; scanf("%d",&n); k=DtoH(n,str); for(i=0;i<=k;i++)printf("%c",str[k-i]); } 【121105002·Modify2】程序功能: 输出一个字符串,将组成字符串的所有非英文字母的字符删除后输出。 (例如: 输入"abc123+xyz.5",应输出"abcxyz")。 (frequency: 2) #include #include voidmain() { charstr[256]; inti,j,k=0,n; gets(str); n=strlen(str); for(i=0;i /********1********/ if(tolower(str[i])>='a'&&tolower(str[i])<='z') { /********2********/ str[k]=str[i];k++; } str[k]='\0'; printf("%s\n",str); } 【121105004·Modify1】调用函数f,从字符中删除所有的数字字符。 (frequency: 5) #include #include #include voidf(char*s) {inti=0; while(s[i]! ='\0'){ if(isdigit(s[i]))strcpy(s+i,s+i+1); elsei++;} } voidmain() {charstr[80]; gets(str);f(str);puts(str); } 【121105006·Modify1】程序功能: 对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。 #include #include #definef(x)x*x-5*x+sin(x) voidmain() {intx;floatmax; max=f(0); for(x=2;x<=10;x++) if(max printf("%f\n",max); } 【121105006·Modify2】程序功能: 输入整数n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。 #include voidmain() {intm=0,t=1,n; while(scanf("%d",&n),n<0); while(! (t<=n&&t*2>=n)){ t=t*2; m++; } printf("%d\n",m); } 【121105007·Modify1】程序功能: 输入的一个小字母,将字母循环后移5个位置后输出。 (例如: "a变成""f","w"变成"b")。 #include voidmain() { charc; c=getchar(); if(c>='a'&&c<'v') c=c+5; else if(c>='v'&&c<='z') c='a'+c-'v'; putchar(c); } 【121105007·Modify2】程序功能: 将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。 (frequency: 2) #include voidDec2Bin(intm) { intbin[32],j; for(j=0;m! =0;j++) { bin[j]=m%2; m=m/2; } for(;j! =0;j--) printf("%d",bin[j-1]); } voidmain() { intn; scanf("%d",&n); Dec2Bin(n); } 【121105008·Modify1】程序功能是: 运行时输入整数n,输出n各位数字之和。 (例如: n=1308则输出12,n=3204则输出9)(frequency: 3) #include #include voidmain() {intn,s=0; scanf("%d",&n); n=fabs(n); /********1*******/ while(n>0) { s=s+n%10; /********2******/ n=n/10; } printf("%d\n",s); } 【121105008·Modify2】程序功能是: 运行时输入10个数,然后分别输出其中的最大值、最小值。 (frequency: 3) #include voidmain() {floatx,max,min;inti; /********1*******/ for(i=1;i<=10;i++) { scanf("%f",&x); /*******2********/ if(i==1){max=x;min=x;} if(x>max)max=x; if(x } printf("%f,%f\n",max,min); } 【121105010·Modify1】程序功能: 求出a中各相邻两个元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。 (例如: b[1]=a[1]+a[0],…….,b[9]=a[9]+a[8]) #include voidmain() { inta[10],b[10],i; printf("\nInput10numbers: "); for(i=0;i<10;i++)/*数组输入*/ scanf("%d",&a[i]); for(i=1;i<10;i++) b[i]=a[i-1]+a[i];/*计算b数组中的元素*/ for(i=1;i<10;i++) { printf("%3d",b[i]); if(i%3==0)printf("\n");/*每行打印3个数据*/ } } 【121105010·Modify2】程序功能: 将两个字符串连接起来。 (frequency: 2) #include voidmain() { chars1[80],s2[40]; inti=0,j=0; printf("\nInputthefirststring: "); scanf("%s",s1); printf("\nInputthesecondstring: "); scanf("%s",s2); while(s1[i]! ='\0') /******1******/ i++; while(s2[j]! ='\0') /******2******/ s1[i++]=s2[j++];/*拼接字符到s1*/ s1[i]='\0'; printf("\nNewstring: %s",s1); } 【121105011·Modify1】程序功能: 调用函数F计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x* x*x+5.5*x*x*x*x当x=1.7时的值。 #include floatf(float,float*,int); voidmain() {floatb[5]={1.1,2.2,3.3,4.4,5.5}; printf("%f\n",f(1.7,b,5)); } floatf(floatx,floata[],intn) {floaty=a[0],t=1;inti; for(i=1;i returny; } 【121105015·Modify1】m数列的第1,2项均为1,此后各项值均为该项前二项之和。 计算数列第30项的值。 #include longf(intn); voidmain() { printf("%ld\n",f(30)); } longf(intn) { if(n==1||n==2) return1; else returnf(n-1)+f(n-2); } 【121105015·Modify2】输入n,在输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。 #include #include #include voidmain() { inti,n; /*****1*****/ structaxy{floatx,y;}*a; scanf("%d",&n); a=(structaxy*)malloc(n*2*sizeof(structaxy)); for(i=0;i /*****2*****/ scanf("%f%f",&a[i].x,*a[i].y); for(i=0;i if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5) printf("%f,%f\n",a[i].x,a[i].y); } 【121105017·Modify1】程序功能是: 找出100~999之间所有的Armstrong数。 所谓Armstr ong数是指这个3位数各位上数字的立方和等于自身。 (例如: 若371=3*3*3+7*7*7+1*1 *1,则371就是Armstrong数)(frequency: 3) #include #include voidmain() { inti,a,b,c; for(i=100;i<=999;i++) { a=i/100; b=i/10%10; c=i%10; if(a*a*a+b*b*b+c*c*c==i) printf("%disaArmstrongnumber! \n",i); } } 【121105022·Modify1】程序功能: 该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。 (frquency: 2) #include structSTUDENT { charname[16]; intmath; intenglish; intcomputer; intaverage; }; voidGetAverage(structSTUDENT*pst)/*计算平均成绩*/ { intsum=0; sum=pst->math+pst->english+pst->computer; pst->average=sum/3; } voidmain() { inti; structSTUDENTst[4]={{"Jessica",98,95,90},{"Mike",80,80,90}, {"Linda",87,76,70},{"Peter",90,100,99}}; for(i=0;i<4;i++) { GetAverage(&st[i]); } printf("Name\tMath\tEnglish\tCompu\tAverage\n"); for(i=0;i<4;i++) { printf("%s\t%d\t%d\t%d\t%d\n",st[i].name,st[i].math,st[i].english, st[i].computer,st[i].average); } } 【121105023·Modify2】用递归法将一个六位整数n转换成字符串。 #include voiditoa(longi,char*s) { if(i==0) return; /******1******/ *s='0'+i%10; itoa(i/10,s-1); } voidmain() { longn; charstr[7]=""; scanf("%ld",&n); /******2******/ itoa(n,str+5); printf("%s",str); } 【121105330·Modify1】程序功能: 输入m,n(要求输入数均大于0),输出他们的最大公约数。 #include voidmain() {intm,n,k; while(scanf("%d%d",&m,&n),m<=0||n<=0); for(k=m m: n;n%k! =0||m%k! =0;k--); printf("%d\n",k); } 【121105330·Modify2】程序功能: 输入1个整数后,输出该数的位数。 (例如: 输入3214则输出4,输入-23156则输出5)。 #include voidmain() {intn,k=0; scanf("%d",&n); while(n){ k++; n=n/10; } printf("%d\n",k); } 【121105430·Modify2】程序功能: 用选择法对10个整数按升序排序。 #include #defineN10 voidmain() { inti,j,min,temp; inta[N]={5,4,3,2,1,9,8,7,6,0}; printf("\nThearrayis: \n");/*输出数组元素*/ for(i=0;i printf("%5d",a[i]); for(i=0;i { min=i; for(j=i+1;j /******1******/ if(a[min]>a[j])min=j; /******2******/ temp=a[min];a[min]=a[i];a[i]=temp;/*数据交换*/ } printf("\nThesortednumbers: \n");/*输出排序结果*/ for(i=0;i printf("%5d",a[i]); printf("\n"); } 【121105431·Modify2】程序功能: 分别统计字符串中英文字母,数字,和其他字符出现的次数。 #include #include voidmain() {chara[80];intn[3]={0},i;gets(a); for(i=0;i {if(tolower(a[i])>='a'&&tolower(a[i])<='z')/*统计字母个数*/ n[0]++; elseif(a[i]>='0'&&a[i]<='9')/*统计数字个数*/ n[1]++; else n[2]++; } for(i=0;i<3;i++)printf("%d\n",n[i]); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 往年 试题