- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二级C语言上机部分考前复习资料.doc
全国计算机等级考试二级C语言考前复习资料
上机常见题型汇编
一、填空题(30分)两至三个空
注意:上机考试时要删除填空地方的数字和下划线
如:
long fun(int n)
{
if(___1___) /* 填空时要删除此处的___1___ 此处应该填写if(n1) */
return (n*fun(____2___));
return ___3___;
}
常见题型:加下划线的代码是可能考填空的!
累加求和,累乘求阶乘
例如:求1+2!+3!+4!+...+N!
long fun(int n)
{
long s=0,t=1;
int i;
for(i=1;i=n;i++){
t=t*i; /* t负责求解N! */
s=s+t; /* s负责求和,将每次求解的阶乘都加到s上 */
}
return s;
}
关键代码解析:
求n的阶乘:for(i=1;i=n;i++)
{ t=t*i; }
还可以用递归的方法:
long fun(int n){
if(n1)
return (n*fun(n-1));
return 1;
}
其它:1+1/(1+2)+1/(1+2+3)+...+1/(1+2+3+...+n)
double fun(int n)
{
double sum=0.0;
for(i=0;i=n;i++)
{
t=0.0;
for(j=1;j=i;j++)
{ t=t+j; /*此处主要是求分母的和*/
}
sum=sum+(double)1/t; /*求总和*/
}
return sum;
}
2.素数的判断(除了1和其自身外,不能被任何数整数的数为素数)
判断整数2—n内的所有素数,并将素数输出,返回素数的个数
关键代码:
int fun(int n)
{
int i,j,flag,n=0;
for(j=2;jn;j++)
{
flag=1; /* flag为标志变量,如果最后flag=1,则该数为素
数* /
for(i=2;ij;i++)/* 该层循环主要判断每一个数是否为素数*/
if(j%i==0)
{ flag=0;break; /*只要j正整除i,说明j不是素数,跳出循环*/
}
if(flag==1) /* flag=1说明是素数*/
{ n++;/*n用于统计素数的个数*/
printf(%d是素数,j);
}
}
return n;
}
大小写转化或者大小写字母的判断
例如:将Char ch[50]=AAAbbCCddDDeeHHkkmmZZ;数组中的大写转成小写,小写转成大写
关键代码:
for(i=0;ich.length;i++){
if(ch[i]=ach[i]=z) /*判断字母是不是小写*/
ch[i]=ch[i]-32; /*小写转大写,减去32即可*/
else if(ch[i]=Ach[i]=Z) /*判断字母是不是大写*/
ch[i]=ch[i]+32; /*大写转小写,加上32即可*/
}
闰年的判断
判断某一年是不是闰年,关键代码:
if(n%4==0n%100!=0||n%400==0)
printf(%d为闰年,n);
如果要求出1000-2000年中的所有闰年,则需要在外层套一个for循环
【分析】判断闰年只需要考虑两种情况:(1)年份能被4整除但不能被100整除(2)年份能被400整除
求一组数的中的最大数和最小数
void fun(int n,int x[])
{ int max,min,i;
max=min=x[0];/*先假设第一个数既是最大数,也是最小*/
for(i=0;in;i++)
{
if(x[i]max)
max=x[i]; /*将所有的最大数存放在max中*/
if(x[i]min)
min=x[i]; /*将所有的最小数存放在min中*/
}
printf(最大数为:%d,最小数为:%d,max,min);
}
6.逆转(将字符串中的字符逆转或者把数组中的元素逆转)
关键代码分析:
void fun(char *str)
{ int i,j,k;
j=strlen(str)-1; /*strlen(ch)是求出字符串的长度,减1是为
了定位到最后一个字符*/
for(i=0;ij;i++,j--)
{
k=str[i];str[i]=str[j];str[j]=k; /*互换首尾的字符,实现逆转*/
}
pri
文档评论(0)