国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc

上传人:wj 文档编号:1256999 上传时间:2023-04-30 格式:DOC 页数:93 大小:1.08MB
下载 相关 举报
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第1页
第1页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第2页
第2页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第3页
第3页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第4页
第4页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第5页
第5页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第6页
第6页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第7页
第7页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第8页
第8页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第9页
第9页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第10页
第10页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第11页
第11页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第12页
第12页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第13页
第13页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第14页
第14页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第15页
第15页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第16页
第16页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第17页
第17页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第18页
第18页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第19页
第19页 / 共93页
国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc_第20页
第20页 / 共93页
亲,该文档总共93页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc

《国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc(93页珍藏版)》请在冰点文库上搜索。

国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc

;

函数实参调用,函数作为另一个函数调用的实际参数出现。

【解题思路】

填空1:

计算圆的面积,公式为:

*r。

填空2:

scanf()函数一般形式为scanf(格式控制,地址表列),因此填入&

x。

填空3:

函数的实际参数是圆的半径x。

下列给定程序中,函数fun的功能是:

计算S=f(-n)+f(-n+1)+…+f(0)+f

(1)+f

(2)+…f(n)的值。

例如,当n为5时,函数值应为10.407143。

f(x)函数定义如下:

f(x)=

请改正程序中的错误,使它能得出正确的结果。

不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include<

stdlib.h>

conio.h>

math.h>

/*************found**************/

f(doublex)

if(x==0.0||x==2.0)

return0.0;

elseif(x<

0.0)

return(x-1)/(x-2);

else

return(x+1)/(x-2);

doublefun(intn)

{

inti;

doubles=0.0,y;

for(i=-n;

i<

=n;

i++)

{y=f(1.0*i);

s+=y;

returns

{system("

CLS"

printf("

%f\n"

fun(5));

【参考答案】

(1)错误:

f(doublex)正确:

doublef(doublex)

(2)错误:

returns正确:

returns;

函数的定义,其一般形式为"

类型标识符函数名(形式参数表列)"

其中类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。

该程序的流程是,fun()程序对f(n)项循环累加,并且采用条件选择语句计算函数f(x)的值。

本题的错误在于未定义函数f(doublex)的返回值类型。

C语言规定,在未显式声明的情况下,函数返回值默认为int型。

编写函数fun,函数的功能是:

根据以下公式计算s,计算结果作为函数值返回;

n通过形参传入。

S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)

例如,若n的值为11时,函数的值为1.833333。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

string.h>

floatfun(intn)

FILE*wf;

intn;

floats;

system("

\nPleaseenterN:

scanf("

%d"

&

n);

s=fun(n);

Theresultis:

%f\n"

s);

/******************************/

wf=fopen("

out.dat"

"

w"

fprintf(wf,"

%f"

fun(11));

fclose(wf);

/*****************************/

floatfun(intn)

inti,s1=0;

/*定义整型变量s1,表示分母*/

floats=0.0;

/*定义单精度变量s,表示每一项*/

for(i=1;

i<

i++){

s1=s1+i;

/*求每一项的分母*/

s=s+1.0/s1;

/*求多项式的值*/

}

returns;

}

【考点分析】

本题考查:

计算给定表达式的值,根据题意判断表达式为1到n累加倒数之和。

变量数据类型及强制转换操作。

for循环语句,一般情况需要确定循环变量的取值范围。

使用return语句完成函数值的返回。

本题可以通过for循环语句来实现第1项到第n项的变化,然后计算各项的累加和。

方法是先根据题目要求定义变量(注意该变量的数据类型),然后对其进行初始化操作,因为该变量用作累加器,所以初始值应为0(或0.0,根据变量数据类型来确定),再通过for循环语句来完成累加过程。

本题中s1用来表示式中每一项的分母,它可以由前一项的分母加项数得到。

由于s1定义成一个整型,所以在s=s+1.0/s1中不能把1.0写成1。

【解题宝典】

此类计算表达式值的程序,首先需要根据题意分析表达式的规律,得出通项,然后再完成程序语句。

第二套

请补充main函数,该函数的功能是:

计算两个自然数n和m(m<

10000)之间所有数的和(n和m从键盘输入)。

例如,当n=1,m=100时,sum=5050;

当n=100,m=1000时,sum=495550。

请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。

试题程序:

intn,m;

longsum;

【1】;

system("

printf("

\nInputn,m\n"

scanf("

%d,%d"

n,&

m);

while(n<

=m)

{

【2】;

n++;

}

sum=%【3】\n"

sum);

【参考答案】

(1)sum=0

(2)sum+=n(3)ld

变量初始化,需要注意该变量是累加器还是累乘器:

printf()函数,其一般形式为"

格式控制符"

输出表列)"

其中,格式控制符用于指定输出格式,可由格式字符串和非格式字符串两种组成,格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等,如"

%ld"

表示按十进制长整型输出,非格式字符串在输出时原样照印,在显示中起提示作用。

变量sum进行了类型声明,但没有进行初始化,而后面的程序用sum来存放最后的结果,所以要在使用前将sum初始化为0。

通过while循环将自然数n和m之间的数进行累加,结果存于sum中。

由于sum为长整型,所以标准输出函数printf()中的格式控制符为"

下列给定程序中,fun函数的功能是:

根据形参m,计算下列公式的值:

t=1+1/2+1/3+1/4+…+1/m

例如,若输入5,则应输出2.283333。

请改正程序中的错误,使它能计算出正确的结果。

doublefun(intm)

doublet=1.0;

intI;

for(I=2;

I<

=m;

I++)

t+=1.0/k;

returnI;

{intm;

system("

printf("

\nPleaseenter1integernumber:

scanf("

\nTheresultis%1f\n"

fun(m));

(1)错误:

t+=1.0/k;

正确:

t+=1.0/I;

(2)错误:

returnI;

正确:

returnt;

for循环语句的循环条件,这类题目的一般解法是根据题意确定循环变量的取值范围;

函数返回值,其一般形式为"

return表达式;

该语句的功能是计算表达式的值,并返回给主调函数。

(1)该题目考查分母成等差数列递增的一个数学公式,我们先看循环条件for(I=2;

I++),i从2开始递增到m,所以t的值应该是由1.0/i的值逐步循环叠加后的结果,而不是t+=1.0/k;

(2)returnI;

考查对程序的解读能力,当循环结束后(由输入m的值决定),函数返回当前t的值。

请编写一个函数voidfun(char*tt,intpp[]),统计在tt字符串中"

a"

到"

z"

26个字母各自出现的次数,并依次放在pp所指数组中。

例如,当输入字符串abcdefghabcdeabc后,程序的输出结果应该是:

333221110000000000000000000

voidfun(char*tt,intpp[])

voidmain()

{

charaa[1000];

intbb[26],k;

\nPleaseenteracharstring:

);

%s"

aa);

fun(aa,bb);

for(k=0;

k<

26;

k++)

printf("

%d"

bb[k]);

\n"

fun("

abcdefgabcdeabc"

bb);

fprintf(wf,"

voidfun(char*tt,intpp[])

inti;

for(i=0;

26;

i++)

pp[i]=0;

/*初始化pp数组各元素为0*/

for(;

*tt!

='

\0'

tt++)

if(*tt>

a'

*tt<

z'

pp[*tt-'

]++;

/*将tt字符串中'

到'

26个字母各自出现的次数,依次放在pp数组中,任一个小写字母减去'

后所得结果正好是它对应的下标*/

统计小写字母在指定字符串中出现次数。

for循环语句,需要注意循环变量的取值范围。

if条件语句要注意条件表达式的判定。

第1个循环的作用是初始化数组pp,未经赋值变量的量为一个不确定数字。

由于它要将'

26个字母的个数依次放到数组pp中,即'

的个数存于pp[0]中,'

b'

的个数存于pp[1]中,'

c'

的个数存于pp[2]中,…,依此类推,而'

-'

的值正好为0,'

的值为1,'

-'

的值为2,…,依此类推。

任一个小写字母减去'

后所得结果正好是它对应的下标,所以就有了pp[*tt-'

]++,但*tt必须是小写字母,即if()不应省略。

第三套

判断字符ch是否与串str中的某个字符相同,若相同什么也不做,若不同则插在串的最后。

请勿改动函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。

voidfun(char*str,charch)

while(*str&

*str!

=ch)str++;

if(*str【1】ch)

{str[0]=ch;

【2】=0;

}

{chars[81],c;

\nPleaseenterastring:

gets(s);

\nPleaseenterthecharactertosearch:

c=getchar();

fun(【3】);

\nTheresultis%s\n"

s);

【参考答案】

(1)!

=

(2)str[1]或*(str+1)(3)s,c

if语句,一般掌握条件表达式的判定。

函数的调用,其一般形式为"

函数名(实际参数表)"

根据题意"

若相同什么也不做"

则应填入!

=。

若不同则插在串的最后,那么0就在字符串的倒数第二了。

函数传递的参数为输入的两个字符串,则填入s,c。

分别统计字符串中大写字母和小写字母的个数。

例如,给字符串s输入:

AaaaBBb123CCccccd,则应输出结果:

upper=5,lower=9。

#include<

/*********found***********/

voidfun(char*s,inta,intb)

while(*s)

{

/*********found***********/

if(*s>

A'

&

*s<

Z'

a++;

b++;

s++;

}

main()

chars[100];

intupper=0,lower=0;

\npleaseastring:

gets(s);

fun(s,&

upper,&

lower);

\nupper=%dlower=%d\n"

upper,lower);

(1)错误:

voidfun(char*s,inta,intb)

正确:

voidfun(char*s,int*a,int*b)

a++;

正确:

(*a)++;

(3)错误:

b++;

(*b)++;

函数的参数传递和指针变量,理解指针变量作为函数的参数,函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中。

(1)根据题中程序可以看出,函数fun传递的是地址,那么,在函数中就应该出现指针,所以改为voidfun(char*s,int*a,int*b)。

(2)和(3)很明显,这里是要累加数值,因为a、b是指针变量,所以是错误的。

请编写函数fun,它的功能是:

求出ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符1,则输出3。

#defineM81

intfun(char*ss,charc)

chara[M],ch;

\nPleaseenterastring:

gets(a);

\nPleaseenterachar:

ch=getchar();

\nThenumberofthecharis:

%d\n"

fun(a,ch));

fprintf(wf,"

fun("

123412132"

'

1'

));

intfun(char*ss,charc)

inti=0;

*ss!

\0'

ss++)

if(*ss==c)

i++;

/*求出ss所指字符串中指定字符的个数*/

returni;

字符串结束标识'

for循环语句,如何遍历字符串;

通过if条件语句,判断是否相同。

从字符串ss中找出子字符串的方法是:

从第1个字符开始,对字符串进行遍历;

若ss串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;

若比较至字符串的结尾,则跳出循环;

若ss串的字符和c串的字符不对应相同,则继续对ss串的下一个字符进行处理。

本程序是采用逐一比较的方式找出出现的次数。

循环的作用是在串中从左到右逐一走动,if()的作用是进行判断是否相同,若与c相同,则表示又出现一次。

第四套

请补充函数fun,该函数的功能是:

把ASCII码为偶数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输入,其长度作为参数传入函数fun。

例如,输入"

abcdef"

输出"

ace"

请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

#defineN80

【1】

inti,j;

【2】;

for(i=0;

n;

if(s[i]%2!

=0)

s[j++]=s[i];

【3】;

inti=0,strlen=0;

charstr[N];

\nInputastring:

\n"

gets(str);

while(str[i]!

strlen++;

i++;

fun(str,strlen);

\n***displaystring***\n"

puts(str);

(1)voidfun(chars[],intn)

(2)j=0

(3)s[j]='

函数定义,需要确定类型标识符、函数名和形式参数。

变量初始化,变量声明后,要进行初始化赋值,我们对变量进行初始化时,必须确定好变量的作用。

,用来结束字符串,是经常考查的知识点。

由main函数调用函数fun的格式可以知道,函数fun没有返回值,第一个参数是字符数组,第二个参数是整型变量。

变量j声明时,没有初始化,所以在使用j之前要将它初始化为0。

当把所有ASCII码为偶数的字符都存入字符串s中后,要在最后加上'

,表示字符串的结束。

下列给定程序中函数fun的功能是:

计算正整数num各位上的数字之积。

例如,若输入252,则输出应该是20。

若输入202,则输出应该是0。

longfun(longnum)

/*************found********

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 中考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2