《2022年2022年计算机二级C语言题库之程序填空 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机二级C语言题库之程序填空 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机二级C语言题库之程序填空找 Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1#include<stdio.h>#include<math.h>void main()int i,a,b,c;for(i=100;i<=999;i+)a=i/100;_1_/b=i%100/10;c=i%10;if(_2_)/a*a*a+b*b*b+c*c*c=i printf("%d is a Armstrong number!n",i);输入 1 个整数后,输出该数的位数。(例:输入3214 则输出 4,输入-23156 则输出 5
2、)。#include<stdio.h>void main()int n,k=0;scanf("%d",&n);while(_1_)/n!=0 k+;_2_;/n=n/10 printf("%dn",k);求输入的整数各位数字之和,如输入234 则输出 9,输入-312 则输出 6。#include<stdio.h>#include<math.h>void main()int n,s=0;scanf("%d",&n);_ 1 _/if(n<0)n=-n;while(n!=0)_
3、2 _/s+=n%10;n=n/10;printf("%dn",s);名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -调用函数 f,将一个整数首尾倒置。例如:若程序输入12345,则输出 54321;若程序输入-34567,则输出-76543。#include<stdio.h>#include<math.h>long f(long n)long m,y=0;m=fabs(n);while(m!=0)y=y*10+m%10;_1_/m=m/10;if(n>=0)return y;else _2_/return-y;void
4、 main()printf("%ldt",f(12345);printf("%ldn",f(-34567);调用函数 f,从字符串中删除所有的数字字符。#include<stdio.h>#include<string.h>#include<ctype.h>void f(char*s)int i=0;while(si!='0')if(isdigit(si)_1_(s+i,s+i+1);/strcpy _2_ i+;/else void main()char str80;gets(str);f(str);p
5、uts(str);调用 find 函数在输入的字符串中查找是否出现"the"这个单词。如果查到返回出现的次数,如果未找到返回0。#include<stdio.h>int find(char*str)char*fstr="the"int i=0,j,n=0;while(stri!='0')for(_1_)/j=0;j<3;j+名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -if(strj+i!=fstrj)break;if(_2_)n+;/j>=3 i+;return n;void main(
6、)char a80;gets(a);printf("%d",find(a);输入的一个小写字母,将字母循环后移5 个位置后输出。例如:"a"变成"f","w"变成"b"。#include<stdio.h>void main()char c;c=getchar();if(_1_)/c>='a'&&c<='u'c=c+5;else if(c>='v'&&c<='z')_
7、2_/c=(c-'a'+5)%26+'a'putchar(c);将字符串 s中所有的字符'c'删除。#include<stdio.h>void main()char s80;int i,j;gets(s);for(i=j=0;_1_;i+)/si!='0'if(si!='c')sj=si;_2_/j+;sj='0'puts(s);名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -对 x=1,2,,,10,求 f(x)=x*x-5*x+sin(x)的最大值。#incl
8、ude<stdio.h>#include<math.h>#define f(x)x*x-5*x+sin(x)void main()int x;float max;_1_/max=f(1);for(x=2;x<=10;x+)_2_/if(f(x)>max)max=f(x);printf("%fn",max);输入三个整数,按由小到大的顺序输出这三个数。#include<stdio.h>void swap(_1_)/int*pa,int*pb /*交换两个数的位置*/int temp;temp=*pa;*pa=*pb;*pb=te
9、mp;void main()int a,b,c,temp;scanf("%d%d%d",&a,&b,&c);if(a>b)swap(&a,&b);if(b>c)swap(&b,&c);if(_2_)/if(a>b)swap(&a,&b);printf("%d,%d,%d",a,b,c);调用函数 f,去除数组中的负数,输入数组x7,输出结果为:1 3 4 6#include<stdio.h>/数组元素的删除void f(int*a,int*m)int i
10、,j;for(i=0;i<*m;i+)if(ai<0)for(j=i-;j<*m-1;j+)aj=aj+1;_1_;/*m=*m-1;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 8 页 -void main()int i,n=7,x7=1,-2,3,4,-5,6,-7;_2_;/f(x,&n);for(i=0;i<n;i+)printf("%5d",xi);printf("n");调用函数 f 计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当 x=1.7 时的
11、值。#include<stdio.h>float f(float,float*,int);void main()float b5=1.1,2.2,3.3,4.4,5.5;printf("%fn",f(1.7,b,5);float f(_1_)/float x,float*a,int n float y=a0,t=1;int i;for(i=1;i<n;i+)t=t*x;y=y+ai*t;_2_/return y;分别统计字符串中英文字母、数字、和其他字符出现的次数。#include<stdio.h>#include<ctype.h>
12、void main()char a80;int n3=0,i;gets(a);_1_/for(i=0;ai!='0'i+)if(tolower(ai)>='a'&&tolower(ai)<='z')/*统计字母个数*/n0+;else if(_2_)/*统 计 数 字 个 数*/ai>='0'&&ai<='9'n1+;else n2+;for(i=0;i<3;i+)printf("%dn",ni);将输入的十进制整数n 通过函数Dto
13、H 函数转换为十六进制数,并将转换结果以字符串形式输出。(例如:输入十进制数79,将输出十六进制4f。)#include<stdio.h>#include<string.h>char trans(int x)名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 8 页 -if(x<10)return'0'+x;else _1_/return'a'+x-10;int DtoH(int n,char*str)int i=0;while(n!=0)_2_/stri=trans(n%16);n/=16;i+;return i-1;v
14、oid main()int i,k,n;char*str;scanf("%d",&n);k=DtoH(n,str);for(i=0;i<=k;i+)printf("%c",strk-i);将输入的十进制正整数n 通过函数Dec2Bin 转换为二进制数,并将转换结果输出。#include<stdio.h>void Dec2Bin(int m)int bin32,j;for(j=0;m!=0;j+)binj=_1_;/m%2 m=m/2;for(;j!=0;j-)printf("%d",_2_);/binj-1
15、void main()int n;scanf("%d",&n);名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 8 页 -Dec2Bin(n);数列的第 1、2 项均为 1,此后各项值均为该项前二项之和。计算数列第30 项的值。#include<stdio.h>_1_/long f(int n);或者long f(int);void main()printf("%ldn",f(30);long f(int n)if(_2_)/n=1|n=2 return 1;else return f(n-1)+f(n-2);该程序计算
16、四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。#include<stdio.h>struct STUDENT char name16;int math;int english;int computer;int average;void GetAverage(struct STUDENT*pst)/*计算平均成绩*/int sum=0;sum=_1_;/pst->math+pst->english+pst->computer pst->average=sum/3;void main()int i;struct STUDENT st4="
17、;Jessica",98,95,90,"Mike",80,80,90,"Linda",87,76,70,"Peter",90,100,99;for(i=0;i<4;i+)GetAverage(_2_);/st+i printf("NametMathtEnglishtComputAveragen");for(i=0;i<4;i+)printf("%st%dt%dt%dt%dn",sti.name,sti.math,sti.english,puter,sti.average);
18、名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 8 页 -输入 m、n(要求输入数均大于0)。输出它们的最大公约数。#include<stdio.h>void main()int m,n,k;while(scanf("%d%d",&m,&n),_1_);/m<=0|n<=0 for(_2_;n%k!=0|m%k!=0;k-);/k=m>n?n:m printf("%dn",k);求出 a 中各相邻两个元素的和,并将这些和存放在数组b 中,按每行 3 个元素的形式输出。例如:b1=a0+a1,,,
19、b9=a8+a9。#include<stdio.h>void main()int a10,b10,i;printf("nInput 10 numbers:");for(i=0;i<10;i+)/*数组输入*/scanf("%d",&ai);for(i=1;i<10;i+)bi=_1_;/*计算 b 数组中的元素*/ai-1+ai for(i=1;i<10;i+)printf("%3d",bi);if(_2_)printf("n");/*每行打印 3 个数据*/i%3=0 输入整数 n(n>0),求 m 使得 2 的 m 次方小于或等于n,2 的 m+1 次方大于或等于n。#include<stdio.h>void main()int m=0,t=1,n;while(_ 1 _);/scanf(“%d”,&n),n<=0/逗号表达式while(!(t<=n&&t*2>=n)_ 2 _/t=t*2;m+;printf(“%dn”,m);名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 8 页 -