计算机等级C语言上机考试编程题分类总结_第1页
计算机等级C语言上机考试编程题分类总结_第2页
计算机等级C语言上机考试编程题分类总结_第3页
计算机等级C语言上机考试编程题分类总结_第4页
计算机等级C语言上机考试编程题分类总结_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机等级C语言上机考试编程题分类总结编程题目分类:(一)、数学题目:5、6、11、14、34、48、49编程的题目中,如果是数学题目,编程时用到阶乘或者是奇数项的积,则首先给变量赋初值为1,不能赋初值为0,同时把变量的类型定义为实型而不是整型。数学题目中结果都需要返回,如果说函数的类型是void 则是通过指针返回,如果不是void,则必须用return 返回。如果是表达式中的值为1,则在编写程序时用去1.0.而不能用1。C 语言中的除法的运算原则是整数除以整数,结果还是整数。数组中存储数据时以下标来存储的,在数组中下标从0 开始。解题详解:6、观察表达式,左边求出的是p 的值的一半,所以右边

2、的表达式的值的计算好后应该乘以2 才能得到p 的值,观察表达式的右边,右边表达式中有分子、分母以及各表达式的值的和,分子是阶乘、分母是奇数项的积,分子除以分母得到一项的值。由此定义三个变量:s1 代表分子,s2 代表分母、s3 代表各项的和,定义一个整型变量i,让变量i 从1 开始。知道循环的结束。int i;double s1=1.0,s2=1.0,s3=0.0;for(i=1;s1/s2=eps;i+)s3+=s1/s2;s1*=i;s2*=(2*i+1);return 2*s3;注意:此题目中要特别注意,循环语句的表达式2 的判断条件是s1/s2=eps,而不是i=n,循环语句的语句的顺

3、寻不能颠倒,即先加之后再计算。11、此题中要求能整除x,那么x 应该为分子,而不是分母,把满足条件的数组放到pp 所指的数组中,即pp 数组应用一个整型的变量来做pp 下标,数组下标从0 开始,所以定义一个整形变量k 并且赋初值为0;满足条件的个数通过形参传回。int i,k=0;for(i=1;i=x;i+)if(x%i=0&i%2=1) ppk+=i;*n=k;备注:此题目中不能把i 初值定义为0,否则程序运行时得不到结果。14、首先看清题意,题目中要求是小于形参n,不包括n,能被3 与7 整除,两者用逻辑与连接,平方根用平方根的函数sqrt;此题中要求的是自然数的和的平方根,而不是平方根

4、的和,所以要先把满足条件的数加起来后再开方。定义一个整型变量i,让该变量由1 直到n-1,用循环实现,一个整形变量s,让该变量存放的是满足条件的数的和,由于s 为全局变量,故应该赋初值为0;int i,s=0;for(i=1;in;i+)if(i%3=0&i%7=0)s+=i;return sqrt(s);34、观察表达式,表达式的分子为x 的n 次冥,分母为数字的阶乘,s 为表达式的累加和,定义三个变量s1 为分子,s2 为分母,s 为分子除以分母的和。float s1=1.0,s2=1.0,s=1.0;int i;for(i=1;i=n;i+)s1*=x;s2*=i;s+=s1/s2;re

5、turn s;备注:此时s 的值不能赋初值为0;如果s 得初值为0,此时表达式的值中没有第一项的值。并且必须用return 返回。48、该表达式的分子均为1,分母为该项和下一项的积,s 为最后表达式的累加和,定义一个整形变量I,用于代表某一项的序号,则i+1 到表达的是下一项的序号。float s=0.0;int i;for(i=1;i=n;i+)s+=1.0/(i*(i+1);return s;备注:分子为1.0,而不能是1;因为c 语言中规定,整型除以整型,得到的值仍然为整型,i+1 必须用括号括起来,如果没有用括号括起来,根据乘法运算规则,则先运算i*i,再运算i*i+1 的值。49、在

6、该表达式中,分子分母都是阶乘,可以看做是三个数之间的运算,其中的每一个数都是另外一个数的阶乘,定义三个变量,其中s1 代表的是m 的阶乘,s2代表的n 的阶乘,s3 代表的是m-n 的阶乘,表达式的值可以计算为:s1/(s2*s3);三个变量都是代表的是阶乘,所以在赋初值时应该赋初值为1 或者是1.0;float s1=1.0,s2=1.0,s3=1.0;int i;for(i=1;i=m;i+) s1*=i;for(i=1;i=n;i+) s2*=i;for(i=1;i=m-n;i+) s3*=i;return s1/(s2*s3);(二)、把满足条件的数放到数组中4、12、25、35、37

7、在做该类题目时,看清题目的要求,根基题目的要求解题,若只是把满足条件的删除或者是保留,则该类题目首先要定义一个整型变量并且赋初值0,根据题目意思把满足条件的存放到数组中,数组的下标同时加一往后走一个位置,如果是字符串类型的题目,在最后还要加上字符串的结束符0;如果是把字母的大小写进行改变,则根据原则:小写改大写,减32,大写改小写,加32.只要涉及到数组的题目,都要定义一个整型变量i 访问数组中的元素.在循环语句中,如果是字符串时,循环的条件是判断字符是否是结束符,而不是i=A&ssi=a&ssi=0&ssi=a&ssi=z)ssi-=32代码中:i 代表的是访问数组下标的变量。循环的条件是s

8、si!=0,这事字符串是否结束的判断条件。从第一个字符开始,一直到遇到结束符为止。当取出一个字符后,对该字符进行判断,如果该字符满足条件的时候,执行ssi-=32;语句,即将小写字母改变成大写字母。12、先定义一个整型变量k,并且赋初值0,作为数组的下标,一个整型变量i 用来访问数组中的元素的下标.int i ,k=0;for(i=0;si !=0;i+)if(!(i%2=0&si%2=1)tk+=si;备注:if 条件中的内容是先将删除的写出来,再前面加上一个!,用来否定,则剩下的就是要保留的内容。把满足条件的存放到数组t 中,t 也是一个字符数组,所以要够成个字符串,必须在后面赋值结束符。

9、(三)、素数20、21判断一个数是否是素数的方法很多,我们只用掌握一种即可,首先掌握判断一个素数的方法;素数的定义:1、是自然数2、只能被1 和本身整除,2 到本身减一之间的数不能整除该数。判断m 是否为素数的格式:for(i=2;im;i+)if(m%i=0)break;if(m=i) 表明m 是素数;素数只能被1 和m,那么用2 到m-1 之间的数除m,如果有一个数能整除m,说明m 不是一个素数,就不用再判断后面的数值了,用一条break 语句提前结束函数;如果一直都不能整除,则说明m 是一个素数。那么用循环语句表示2 到m-1之间的数的语句为:for(i=2;im;i+),如果在这个范围

10、内的数值有一个数值能整除m,说明m 不是一个素数,则可以提前结束循环,break;那么结束之后这个循环中的变量I 的值小于m,如果m是一个素数的时候,则一直都不执行break语句;则循环语句结束的时候是在i=m 的时候退出循环。结束循环以后,进行i 和m 的比较,如果i 小于m,则表明m 不是一个素数;如果i 等于m,则表明m 是一个素数。20、把素数存放到数组中,先定义一个整型变量k,并且赋值为0,小于或者等于lim 的条件为:for(m=2;m=lim;m+) 所以代码为:int m,k=0,i;for(m=2;m=lim;m+) for(i=2;im;i+)if(m%i=0)break;

11、if(m=i) aak+=m;return k;21、大于m 的整数,m+1 就大于m,找k 个素数,那么循环的条件找到k 个为止,用j 代表找到素数的个数,则程序的代码:int i,j=1;for(m=m+1;j=k;m+)for(i=2;im;i+)if(m%i=0)break;if(m=i) xxj+=m;(四)、星号题目的解答方法:8、9、10、19、45该类题目的解答方法是用简便方法。具体步骤如下:以第8 题为例。1、单击上面的答题按钮。2、启动好了visual c+3、单击“文件”菜单下面的“打开”4、找到“prog1.c”,双击打开:5、不编写任何程序代码,直接编译程序,编译程序

12、时6、编译好程序之后直接连接程序:7、运行程序出现运行窗口,运行程序以后输入如果说窗口中没有出现“press any key to continue”的文字提示时,随便键入就可以了,之后按回车键结束。出现上面的窗口,再按回车键结束。8、单击“文件”中的“打开”9、找到“out.dat”这一个文件双击打开“out.dat”文件将每一行中的内容根据题意进行修改。即将每一行中的星号,除了开始的外,其余的全部删除。得到的结果为:10、单击“文件”菜单中的“保存”11、单击“文件”菜单下的“退出”回到了开始的界面,就可以交卷了。星号的其他题目也是一样的做法。(五)、结构体类型2、3、16、23、33所有

13、的结构体的类型的题目中都可以用简便方法进行解答,结构体的解答时要主要看程序中是否有nono()函数,如果有,要以该函数为准,如果没有该函数,则以main()函数为主。以第2 题为例:观察程序代码中的内容:首先,该程序代码中没有nono( )函数,那么就以main()函数为主。根据题意观察主函数中的内容,主要看主函数中的数据,也就是结构体中的数据。sN= GA005,85,GA003,76,GA002,69,GA004,85,GA001,96,GA007,72,GA008,64,GA006,87,GA015,85,GA013,94,GA012,64,GA014,91,GA011,90,GA017

14、,64,GA018,64,GA016,72;找到主函数中的fprintf 函数的内容:求的就是80 到98 范围内的数据,满足的个数以及写到out.dat 文件中。只用数就可以了。有8 个,观察代码中的这些代码,记住这是排序的格式,如果是小于号,那么说明是降序排列,如果是大于号是升序排序。此题中是升序。观察后米的代码的内容,都是找到fprintf 函数的内容:该函数的把排序后的内容写到out.dat 文件中。还要注意的是%4d 的功能,这是按照格式写到文件中,只是这个是后输入的数据占有4 个宽度,并且是右对齐。最后写到out.dat 文件中的内容应该是:保存程序后退出程序即可。(六)、数值平移

15、1、42数值平移的题目可以用简便方法解决,其步骤和上面所写的一样,只是在打开“out.dat”文件之后的操作有所不同,具体的为:以1 题为例:打开了“out.dat”文件之后,打开的是“in.dat”文件。在“in.dat”这个文件中,前面的数字代表的是平移的个数。根据题目要求,是把前面的字符平移到最后,在“out.dat”文件中进行修改,最后的结果为:单击“文件”菜单下面的“保存”,单击“文件”菜单下的“退出”。(七)、找出数组中的最大值或者最大值所在的下标18、29、36该类型题目可以用简便方法解决;解决此类题目时,首先要找到源程序中的以下内容,1、找到nono()函数,如果没有nono(

16、)函数,则找到主函数。2、找到fprintf 函数。3、打开“in.dat”文件和“out.dat”文件。4、进行相应的修改之后,保存和退出。以18 题为例。首先找到nono()函数,再找到fprintf 函数打开“in.dat”文件根据“in.dat”文件中的内容进行选择。以第一行为例,最大的是121,所在的下表是1,所以在“out.dat”文件中的内容,根据fprintf 函数的格式,应该先把下标写到文件中,再把数值写到文件中。所以“out.dat”文件中的内容为:要特别注意fprintf 函数的格式:其中的两个%d 之间是用逗号隔开,所以在把满足条件的数值存放到文件中时应该必须用逗号将两

17、河数值隔开,并且先把满足条件的数的下标写到文件中,再把该最大数写到文件中。单击“文件”菜单下面的“保存”,单击“文件”菜单下的“退出”。(八)、链表题目22链表题目很难,在解决该类问题的时候可以用简便方法。步骤和上面所写的一样;首先要找到源程序中的以下内容,1、找到nono()函数,如果没有nono( )函数,则找到主函数。2、找到fprintf 函数。3、打开“out.dat”文件和“in.dat”文件。4、进行相应的修改之后,保存和退出。该题目是把分数最高的学生的分数写到文件中。fprintf(out, %6.1lfn, max) ;其中最高分在写到文件中时要注意%6.1lf,写入的数据带

18、有一个小数,并且该数字占有6 个宽度,并且为右对齐。打开“in.dat”文件根据“in.dat”文件中的内容进行选择。以第一行为例,最大的是91,所以在“out.dat”文件中的内容,根据fprintf 函数的格式,应该先把下标写到文件中,再把数值写到文件中。所以“out.dat”文件中的内容为:单击“文件”菜单下面的“保存”,单击“文件”菜单下的“退出”。(九)、判断是否是回文数27此题是判断一个字符串是否为回文;步骤和上面的一样;一直到打开“out.dat”文件,打开后根据内容进行相应的修改和操作。根据内容修改为:单击“文件”菜单下面的“保存”,单击“文件”菜单下的“退出”。(十)、统计单

19、词的个数30此题是判断一个字符串是否为回文;步骤和上面的一样;一直到打开“out.dat”文件和“in.dat”文件,打开后根据内容进行相应的修改和操作。以第一行为例,第一行中出项的单词个数为:14 ,则把out.dat 文件的内容改为:单击“文件”菜单下面的“保存”,单击“文件”菜单下的“退出”。(十一)、二维数组15、17、24、26、31、32、40、41、43、50做该类题目的时候首先检查一下该源程序中是否有nono()函数,如果有则要打开“in.dat”文件,如果没有则只用看主函数中的内容。该类题目可以用简便方法解决。步骤和上面的一样;一直到打开“out.dat”文件和“in.dat”文件,打开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论