ImageVerifierCode 换一换
格式:DOC , 页数:93 ,大小:1.08MB ,
资源ID:1256999      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1256999.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(国家计算机等级考试二级c语言南开100套题C语言Word格式文档下载.doc)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

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

1、;函数实参调用,函数作为另一个函数调用的实际参数出现。【解题思路】 填空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 conio.hmath.h/*found*/f(dou

2、ble x) if(x=0.0|x=2.0) return 0.0; else if(x0.0) return(x-1)/(x-2); else return(x+1)/(x-2);double fun(int n) int i; double s=0.0,y; for(i=-n; ifloat fun(int n) FILE *wf; int n; float s; system(nPlease enter N: scanf(%d,&n); s=fun(n);The result is:%fn , s);/*/ wf=fopen(out.dat,w fprintf (wf,%f,fun(11

3、); fclose(wf);/*/float fun(int n) int i,s1=0; /*定义整型变量s1,表示分母*/ float s=0.0; /*定义单精度变量s,表示每一项*/ for(i=1;ii+) s1=s1+i; /*求每一项的分母*/ s=s+1.0/s1;/*求多项式的值*/ return s; 【考点分析】 本题考查:计算给定表达式的值,根据题意判断表达式为1到n累加倒数之和。变量数据类型及强制转换操作。for循环语句,一般情况需要确定循环变量的取值范围。使用return语句完成函数值的返回。本题可以通过for循环语句来实现第1项到第n项的变化,然后计算各项的累加和

4、。方法是先根据题目要求定义变量(注意该变量的数据类型),然后对其进行初始化操作,因为该变量用作累加器,所以初始值应为0(或0.0,根据变量数据类型来确定),再通过for循环语句来完成累加过程。本题中s1用来表示式中每一项的分母,它可以由前一项的分母加项数得到。由于s1定义成一个整型,所以在s=s+1.0/s1中不能把1.0写成1。【解题宝典】 此类计算表达式值的程序,首先需要根据题意分析表达式的规律,得出通项,然后再完成程序语句。第二套请补充main函数,该函数的功能是:计算两个自然数n和m(m10000)之间所有数的和(n和m从键盘输入)。例如,当n=1,m=100时,sum=5050;当n

5、=100,m=1000时,sum=495550。请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序: int n,m; long sum; 【1】; system( printf(nInput n,mn scanf(%d,%dn,&m); while(n=m) 【2】;n+; sum=%【3】n,sum);【参考答案】 (1) sum=0 (2) sum+=n (3) ld 变量初始化,需要注意该变量是累加器还是累乘器:printf( )函数,其一般形式为格式控制符,输出表列)。其中,格式控制符用于指定输出格式,可由格式字符串和非格式字

6、符串两种组成,格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等,如%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。

7、请改正程序中的错误,使它能计算出正确的结果。double fun(int m) double t=1.0; int I; for(I=2;I=m;I+) t+=1.0/k; return I;int m; system( printf(nPlease enter 1integer number: scanf(nThe result is %1fn, fun(m);(1)错误:t+=1.0/k; 正确:t+=1.0/I;(2)错误:return I; 正确:return t;for循环语句的循环条件,这类题目的一般解法是根据题意确定循环变量的取值范围;函数返回值,其一般形式为return 表达式

8、;,该语句的功能是计算表达式的值,并返回给主调函数。(1)该题目考查分母成等差数列递增的一个数学公式,我们先看循环条件for(I=2;I+),i从2开始递增到m,所以t的值应该是由1.0/i的值逐步循环叠加后的结果,而不是t+=1.0/k;(2)return I;考查对程序的解读能力,当循环结束后(由输入m的值决定),函数返回当前t的值。请编写一个函数 void fun(char *tt,int pp),统计在tt字符串中a到z26个字母各自出现的次数,并依次放在pp所指数组中。例如,当输入字符串abcdefghabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 1 0 0

9、0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 void fun(char *tt,int pp )void main( ) char aa1000; int bb26, k;nPlease enter a char string :) ;%s,aa); fun(aa,bb); for (k=0 ;ka*ttz) pp*tt-+; /*将tt字符串中到26个字母各自出现的次数,依次放在pp数组中,任一个小写字母减去后所得结果正好是它对应的下标*/ 统计小写字母在指定字符串中出现次数。for循环语句,需要注意循环变量的取值范围。if条件语句要注意条件表达式的判定。第1个循环的

10、作用是初始化数组pp,未经赋值变量的量为一个不确定数字。由于它要将26个字母的个数依次放到数组pp中,即的个数存于pp0中,b的个数存于pp1中,c的个数存于pp2中,依此类推,而-的值正好为0,的值为1,- 的值为2,依此类推。任一个小写字母减去后所得结果正好是它对应的下标,所以就有了pp*tt-+,但*tt必须是小写字母,即if( )不应省略。 。第三套判断字符ch是否与串str中的某个字符相同,若相同什么也不做,若不同则插在串的最后。请勿改动函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。void fun (char *str,char ch) while (

11、*str &*str !=ch) str+; if(*str【1】ch) str0=ch; 【2】=0; char s81,c;nPlease enter a string :gets(s);n Please enter the character to search : c=getchar(); fun(【3】);nThe result is %sn,s);【参考答案】 (1) != (2) str1或*(str+1) (3) s,c if语句,一般掌握条件表达式的判定。函数的调用,其一般形式为函数名(实际参数表)根据题意若相同什么也不做,则应填入!=。若不同则插在串的最后,那么0就在字符串

12、的倒数第二了。函数传递的参数为输入的两个字符串,则填入s,c。分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AaaaBBb123CCccccd,则应输出结果:upper=5,lower=9。#includeA & *sZ)a+;b+;s+;main()char s100;int upper=0,lower=0;nplease a string :gets(s);fun(s,&upper,&lower);n upper=%d lower=%dn,upper,lower);(1) 错误:void fun(char *s, int a, int b) 正 确:void fun(ch

13、ar *s, int *a, int *b) a+;正确:(*a)+;(3)错误:b+;(*b)+;函数的参数传递和指针变量,理解指针变量作为函数的参数,函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中。(1)根据题中程序可以看出,函数fun传递的是地址,那么,在函数中就应该出现指针,所以改为void fun (char *s ,int *a, int *b)。(2)和(3)很明显,这里是要累加数值,因为a、b是指针变量,所以是错误的。请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串12

14、3412132,输入字符1,则输出3。#define M 81int fun(char *ss, char c) char aM, ch;nPlease enter a string: gets(a);nPlease enter a char: ch=getchar();nThe number of the char is: %dn, fun(a,ch); fprintf(wf,fun(123412132,1);int fun(char *ss, char c) int i=0;*ss!0ss+) if(*ss=c) i+;/*求出ss所指字符串中指定字符的个数*/ return i;字符串结

15、束标识for循环语句,如何遍历字符串;通过if条件语句,判断是否相同。从字符串ss中找出子字符串的方法是:从第1个字符开始,对字符串进行遍历;若ss串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串的结尾,则跳出循环;若ss串的字符和c串的字符不对应相同,则继续对ss串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,if( )的作用是进行判断是否相同,若与c相同,则表示又出现一次。第四套请补充函数fun,该函数的功能是:把ASCII码为偶数的字符从字符串str中删除,结果仍然保存在字符串str中,字符

16、串str从键盘输入,其长度作为参数传入函数fun。例如,输入abcdef,输出ace请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。#define N 80【1】 int i, j; 【2】; for (i=0;n;if(si%2!=0)sj+=si; 【3】; int i=0, strlen=0; char strN;nInput a string:n gets(str); while(stri!strlen+;i+; fun(str, strlen);n* display string *n puts (str);(1) void fun(c

17、har s,int n) (2) j=0 (3) sj=函数定义,需要确定类型标识符、函数名和形式参数。变量初始化,变量声明后,要进行初始化赋值,我们对变量进行初始化时,必须确定好变量的作用。,用来结束字符串,是经常考查的知识点。由main函数调用函数fun的格式可以知道,函数fun没有返回值,第一个参数是字符数组,第二个参数是整型变量。变量j声明时,没有初始化,所以在使用j之前要将它初始化为0。当把所有ASCII码为偶数的字符都存入字符串s中后,要在最后加上,表示字符串的结束。下列给定程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。long fun(long num)/*found*

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

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