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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算机二级C语言考试编程题.docx

1、计算机二级C语言考试编程题编程题1.请编一个函数fun(char *s),函数的功能是把字符串中的内容逆置。例如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。 注意: 部分源程序存在文件prog.c中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include #include #include #include #define N 81/*本题的考核点是C语言中的for循环语句的使用。 解题思路:对于本题,我们给出的参考函数采取的算法是:将第一个元素与最后一个元素互换,第二个元素与倒数第二个互换的方式

2、进行倒排序。因为我们一次互换两个元素,所以for循环语句执行length/2次(length是字符串的长度)就可以把全部元素互换一遍。*/void fun ( char *s )int i ,length;char tmp;length = strlen( s ); /*统计字符串s中字符的个数*/for (i = 0;i length / 2; i+) /*以下三行即将s中的第i个字符与第length-i个字符进行交互*/ tmp = si; si = slength - i - 1; slength - i - 1 = tmp;NONO( )/* 请在此函数内打开文件,输入测试数据,调用

3、fun 函数,输出数据,关闭文件。 */ int i ; char aN ; FILE *rf, *wf ; rf = fopen(bc8.in, r) ; wf = fopen(bc8.out, w) ; for(i = 0 ; i 9 ; i+) fscanf(rf, %s, a) ; fun(a) ; fprintf(wf, %sn, a) ; fclose(rf) ; fclose(wf) ;main() char aN; system(cls); printf(Enter a string: );gets(a); printf(The original string is: );pu

4、ts(a); fun(a); printf(n); printf(The string after modified: ); puts(a); NONO( );2.编写程序,实现矩阵(3行3列)的转置(即行列互换)。例如,输入下面的矩阵: 100 200 300 400 500 600 700 800 900程序输出: 100 400 700 200 500 800 300 600 900 注意: 部分源程序存在文件prog.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include #include #include /*本题的考核点是

5、3行3列矩阵转置算法。 解题思路:通过两重循环和一个中间数组完成转置。方法是通过循环将原数组中的i行j列上的数赋值给中间数组的j行i列,最后再将中间数组的值赋给原数组,形成转置后的矩阵。*/void fun(int array33) int i,j;int b33; for (i=0;i3;i+) for (j=0;j3;j+) bji=arrayij;/*将矩阵行列互换*/ for (i=0;i3;i+) for (j=0;j3;j+) arrayij=bij;/*将b数组中的数据原封不动的保存在array数组中*/NONO( )/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,

6、输出数据,关闭文件。 */ int i,j; FILE *wf ; int array33=100,200,300, 400,500,600, 700,800,900; wf = fopen(a11.out, w) ; fun(array); for(i=0;i3;i+) for(j=0;j3;j+) fprintf(wf,%7dn,arrayij); fclose(wf) ;main() int i,j; int array33=100,200,300, 400,500,600, 700,800,900; system(cls); for (i=0;i3;i+) for (j=0;j3;j+

7、) printf(%7d,arrayij); printf(n); fun(array); printf(Converted array:n); for(i=0;i3;i+) for(j=0;j3;j+) printf(%7d,arrayij); printf(n); NONO( );3.编写函数 int fun(int lim,int aaMAX),该函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回求出素数的个数。 注意:部分源程序存在文件prog.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include #incl

8、ude #include #define MAX 200/*本题的考核点是找出小于指定数的所有素数的算法。 解题思路:从2到指定数lim,找出所有的素数,素数的判断方法是:只能被1和其自身整除,而不能被其它任何数整除的数。*/int fun(int lim,int aaMAX) int i,j=0,k=0; for (i=2;ilim;i+) /*判断i是否小于lim,如果i小于lim执行循环*/ for (j=2;ji;j+) /*判断i是否能被比它小的整数整除*/ if (i%j=0) break; /*假如i能被整除,则退出该层循环*/ if (j=i) aak+=i;/*假如i不能被比

9、它小的整数整除,则将i存入aa数组中*/ return k;NONO( )/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ int i,j,limit,sum; int aaMAX; FILE *rf, *wf ; rf = fopen(b14.in, r) ; wf = fopen(a14.out, w) ; for (j=0;j4;j+) fscanf(rf,%d,&limit); sum=fun(limit,aa); for(i=0;isum;i+) fprintf(wf,%dn,aai); fclose(rf) ; fclose(wf) ;ma

10、in() int limit,i,sum; int aaMAX; system(cls); printf(输入一个整数:); scanf(%d,&limit); sum=fun(limit,aa); for(i=0;isum;i+) if(i%10=0 & i!=0) printf(n); printf(%5d,aai); NONO();4.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如:二维数组中的值为 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0则函数值为61。 注意:部分源程序存在文件prog

11、.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include #include #include #define M 4#define N 5/*本题的考核点是c语言中嵌套循环语句和条件判断语句的使用。 解题思路:二维数组的周边元素的特点是:它有一个下标为0或为数组上界。所以我们只需判断数组的下标是否为0或数组上界即可。按行、列进行循环可以保证符合条件的元素只被运算一次。*/int fun ( int aMN ) int i, j, sum = 0; for (i = 0; i M; i+) for (j = 0; j N; j+) i

12、f (i = 0)|(i = M - 1)|(j = 0)|(j = N - 1) )/*判断aij是否为数组中的第一行或最后一行或第一列或最后一列*/ sum += aij;/*对a数组的周边元素求和*/ return sum;NONO( )/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ int i, j, y, k, aaMN ; FILE *rf, *wf ; rf = fopen(bc4.in, r) ; wf = fopen(bc4.out, w) ; for(k = 0 ; k 10 ; k+) for(i = 0 ; i M ; i+)

13、 for(j = 0 ; j N ; j+) fscanf(rf, %d, &aaij) ; y = fun ( aa ); fprintf(wf, %dn, y) ; fclose(rf) ; fclose(wf) ;main() int aaMN=1,3,5,7,9, 2,9,9,9,4, 6,9,9,9,8, 1,3,5,7,0; int i,j,y; system(cls); printf(The original data is:n); for (i=0;iM;i+) for(j=0;jN;j+) printf(%6d,aaij); printf(n); y=fun(aa); pri

14、ntf(nThe sum: %dn,y); printf(n); NONO( );5.请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。例如,原来的字符串为CEAedca,排序输出为CedcEAa。 注意:部分源程序存在文件prog.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include #include #include #include /*本题的考核点是对除首、尾字符外的其它字符按降序排列的算法。 解题思路:只对除首、尾字符外的字符排序,排序可用多种方法来实现,本题用的是选择法,通过一变量来

15、记录大数的下标,再与前面的数交换,从而实现降序排序。*/int fun(char *s,int num)int i,j,h,t; for (i=1;inum-1;i+) h=i; for (j=i;jnum-1;j+) if (shsj) h=j;/*从字符串的第i+1个字符到num-1个字符中找出最大的字符,并将其数组下标赋值给h*/ if (h!=i)/*判断找到的最大字符的下标是否为第i个字符*/ t=sh;sh=si;si=t;/*将sh与si中的字符进行交换*/ NONO( )/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ char s10;

16、 int j; FILE *rf, *wf ; rf = fopen(b15.in, r) ; wf = fopen(a15.out, w) ; for (j=0;j4;j+) fscanf(rf,%s,s); fun(s,7); fprintf(wf,%sn,s); fclose(rf) ; fclose(wf) ;main() char s10; system(cls); printf(输入7个字符的字符串:); gets(s); fun(s,7); printf(n%s,s); NONO();6.请编一个函数 void fun(int ttMN,int ppN),tt指向一个M行N列的二

17、维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。 注意:部分源程序存在文件prog.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include #include #include #define M 3#define N 4void fun(int ttMN,int ppN)int i, j, min; for(i = 0; i 4; i+) min = tt0i;/*将每列的第一个数赋值给min*/ for(j = 0; j ttji) min = ttji; ppi = min; /

18、*本题的考核点是C语言中循环嵌套语句的使用。 解题思路:从题目的要求来看,我们应建立一个两重循环来按行、列寻找最小元素。因为题目要求出每列中的最小元素,所以列循环应放在外面,行循环放在里面。我们给出的参考函数中,定义了一个变量min来保存最小元素,在行循环中比较出最小元素,并在行循环结束时赋给数组pp的相应元素。*/NONO( )/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ int i, j, k, m, tMN, pN ; FILE *rf, *wf ; rf = fopen(bc3.in, r) ; wf = fopen(bc3.out, w)

19、 ; for(m = 0 ; m 10 ; m+) for( i=0; iM; i+ ) for( j=0; jN; j+ ) fscanf (rf, %6d, &tij ); fun ( t, p ) ; for ( k = 0; k N; k+ ) fprintf (wf, %4d , p k ) ; fprintf(wf, n) ; fclose(rf) ; fclose(wf) ;main() int tMN=22,45,56,30, 19,33,45,38, 20,22,66,40; int pN,i,j,k; system(cls); printf(The original dat

20、a is:n); for (i=0;iM;i+) for (j=0;jN;j+) printf(%6d,tij); printf(n); fun(t,p); printf(nThe result is:n); for(k=0;kN;k+) printf(%4d,pk); printf(n); NONO( );7.编写一个函数,从传入的num个字符串找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:用*作为结束输入的标志。) 注意:部分源程序存在文件prog.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include #in

21、clude #include #include /*本题的考核点是从一组字符串中找出最长串的算法。 解题思路:通过求字符串长度函数对一组字符串的字符进行比较,并将地址赋给一指针变量。*/fun(char(*a)81,int num,char *max) int i; *max=a0;/*将第一个字符串赋值给max指针*/ for (i=1;istrlen(*max) *max=ai;/*假如字符串ai的长度比指针max中的字符串的长度长,则将ai字符串赋值给max指针*/NONO( )/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ char ss10

22、81,*ps; int n,i,j; FILE *rf, *wf ; rf = fopen(b16.in, r) ; wf = fopen(a16.out, w) ; for (j=0;j4;j+) i=0; fscanf(rf,%s,ssi); while(!strcmp(ssi,*)=0) i+; fscanf(rf,%s,ssi); n=i; fun(ss,n,&ps); fprintf(wf,max=%sn,ps); fclose(rf) ; fclose(wf) ;main() char ss1081,*ps; int n,i=0; system(cls); printf(输入若干个

23、字符串:); gets(ssi); puts(ssi); while(!strcmp(ssi,*)=0) i+; gets(ssi); puts(ssi); n=i; fun(ss,n,&ps); printf(nmax=%sn,ps); NONO();8.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。 例如,假定输入的字符串为:asd asasdfg asd as zx67 ask mklo,子字符串为:as,则应输出6。 注意:部分源程序存在文件prog.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#in

24、clude #include #include #include/*本题的考核点是统计子串在主串中出现次数的算法。 解题思路:将主串中的字符从第一个位置开始逐个与子串中的字符作比较,若子串出现在主串中,次数加1,主串中的指针移动到下一个位置继续与子串比较,反之,主串中的指针也同样移动到下个位置,直至主串中的字符全部比较结束。*/int fun(char *str,char *substr)unsigned int i=0; int j,k=0,add; while (istrlen(str) j=0;add=i; while (stradd=substrj) & (substrj!=0) ad

25、d+;j+; if (substrj=0) k+; i+; return k;NONO( )/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ char str81,substr3; int n,j; FILE *rf, *wf ; rf = fopen(b17.in, r) ; wf = fopen(b17.out, w) ; for (j=0;j4;j+) fscanf(rf,%s,str); fscanf(rf,%s,substr); n=fun(str,substr); fprintf(wf,n=%dn,n); fclose(rf) ; fclo

26、se(wf) ;main() char str81,substr3; int n; system(cls); printf(输入主字符串:); gets(str); printf(输入子字符串:); gets(substr); puts(str); puts(substr); n=fun(str,substr); printf(n=%dn,n); NONO();9. 程序定义了NN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。 例如:a数组中的值为 |0 1 2 7 9| |1 9 7 4 5|a= |2 3 8 3 1| |4 5 6 8 2| |5 9 1 4 1|则返回主程序后s的输出结果为:3.375000。 注意:部分源程序存在文件prog.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include #include #include #include#define N 5/*本题的考核点是二维数组、循环语句和

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

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