国计算机等级考试二级c语言上机题汇编_第1页
国计算机等级考试二级c语言上机题汇编_第2页
国计算机等级考试二级c语言上机题汇编_第3页
国计算机等级考试二级c语言上机题汇编_第4页
国计算机等级考试二级c语言上机题汇编_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

国计算机等级考试二级c语言上机题汇编网友常用标签(共3个): 计算机等级考试二级上机试题1、 编一个函数fun(char *s),函数的功能是把字符串中的内容逆置。例子如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。试题程序:#include #include #include #define N 81/*注:该题的算法是先分别找出字符串的两头,然后同时逐一往中间移动,每移动一次都进行两字符的位置对换,直到中间字符(用s+is+n-1-i来控制)。由于s+i中一个地址,因此要注意把它的内容取出再进行换位。即先进行取内容运算*) */fun(char *s) int i=0,t,n=strlen(s);for(;s+is+n-1-i;i+)t=*(s+i);*(s+i)=*(s+n-1-i);*(s+n-1-i)=t;main() char aN;clrscr();printf(Enter a string:); gets(a);printf(The original string is:);puts(a);fun(a);printf(n);printf(The string after modified:);puts(a); 2、 写程序,实现矩阵(3行3列)的转置(即行列互换)。例如,输入一面的矩阵:程序输出:试题程序:#include #include /*这题的关键在于进行行列下标转换的算法,由矩阵的对称性我们不难看出在进行行列互换时aj在好是与aji互换,因而只要我位让程序走完矩阵的左上角即可(用for(i=0;i2;i+)再套for(j=i+1;j3;j+)来完成左上角的走动。*/int fun(int array33) int i,j,t;for(i=0;i2;i+)for(j=i+1;j3;j+)t=arrayij;arrayij=arrayji;arrayji=t;main() int i,j;int array33=100,200,300,400,500,600,700,800,900;clrscr();for(i=0;i3;i+)for(j=0;j3;j+)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);3、 请编一个函数fun(int *a,int n,int *odd,int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给了数组中数据的个数:利用指针odd返回奇数之和,利用指针even返回偶娄这和。例如:数组中的值依次为:1,8,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8。试题程序。#include #include #define N 20/*注:该题的算法是:用for()循环一步一步地找元素,用if(!ai%2)来判断是否是奇数,%运算是求余运算,当对2求余为1时表示原数为奇数,否则为偶数。*/fun(int *a,int n,int *odd,int *even) int i; *even=0;*odd=0;for(i=0;in;i+)if(!(ai%2)*even+=ai;else*odd+=ai;main() int aN=1,9,2,3,11,6,i,n=6,odd,even;clrscr();printf(The original data is:n);for(i=0;in;i+) printf(%5d,*(a+i);printf(nn);fun(a,n,&odd,&even);printf(The sum of odd numbers:%dn,odd);printf(The sum of even number:%dn,even);4、 要求程序的功能是:把20个随机数存入一个数组,然后输出该数组中的最小值。其中确定最小值的下标的操作在fun函数中实现,请给出该函数的定义。试题程序。#include #include #define VSIZE 20int vectorVSIZE;/*注:该题的算法是用一个变量(j)来存储最小值元素的下标,在循环过程中让每个元素都与原最小值元素进行大小比较(if(listilistj),如发现更小的则让j重新拥有最小值元素的下标(j=i)。*/int fun(int list,int size) int i,j=0;for(i=1;isize;i+)if(listilistj)j=i;return j;main()int i;clrscr();for(i=0;iVSIZE;i+)vectori=rand();printf(Vector%d=%6dn,i,vectori);i=fun(vector,VSIZE);printf(nMininum:vector%d=%6dn,i,vectori);5、 请编一个函数float fun(double h),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)。例如:h值为8.32433,则函数返回8.32;h值为8.32533,则函数返回8.33。试题程序。#include #include /*注:h乘以1000后正好是原小数点后第三位做了新数的个位数,然后再进行加5运算时。如原小数点后第三位为4及以下则加5后还是不能进一位(即四舍),如是5及以上则加5后该位就要向前进一位数(即五入)。进行加5运算后除10再赋给一个整型变量此时就只有原小数点第二位及以前各位保留在整型变量中,最后再对整型变量除100,这样又出现了两位小数。该题中,进行四舍五入后一定要赋给一个整型变量才能将不用部分彻底变成0 。*/float fun(float h) long t;h=h*1000;t=(h+5)/10;return (float)t/100;main()float a;clrscr();printf(Enter a:); scanf(%f,&a);printf(The original data is:);printf(%fnn,a);printf(The result :%6.2fn,fun(a);6、 编写函数fun,函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。若程序执行时,输入字符串为:turbo c and Borland c+从键盘上输入字符:n,则输出后变为:turbo c ad borlad c+如果输入的字符串不存在,则字符串照原样输出。试题程序。#include #include /*注:该题的算法是让i控制一个一个字符往后走,在移动过程中如果si不是要删的字符,则将其按顺序放到新串中(新串亦是用s来做,只是用k来控制新串的下标,由于要删除一些元素,因此新串的下标总是比原下标i要慢。因而可用此法即同一字符串变量的方法。*/int fun(char s,int c)int i,k=0;for(i=0;si;i+)if(si!=c) sk+=si; sk=0;main() static char str=turbo c and borland c+;char ch;clrscr();printf( :%sn,str);printf( :);scanf(%c,&ch);fun(str,ch);printf(str=%sn,str);7、 请编写一个unsigned fun(unsigned w),w是一个大于10的无符号整数,若w是n(n=2)位的整数,函数求出w的后n-1位的数作为函数值返回。例如:w值为5923,则函数返回923;w值为923则函数返回23。试题程序。#include #include /* 注:由于unsigned型整数在0-65535这间,只要它大于10000则对10000求余即得出后面4位,否则如果大于1000则对1000求余得出后3位数,这样一层一层往小的判断。由于return的作用除了返回值以外,还有当执行到return时就跳出该程序,所以可以连续的用if()语句。 */unsigned fun( unsigned w ) if(w=10000) return w%10000;if(w=1000) return w%1000;if(w=100) return w%100;return w%10;main() unsigned x;printf( enter a unsigned integer number : );scanf( %u,&x);if(x10) printf(data error!);else printf (the result :%un, fun(x);8、 编写函数int fun(int lim,int aaMAX),该函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回所求出素数的个数。试题程序。#include #include #define MAX 100/*注:循环for(i=2;i=k)用于判断在上一个for()循环中i能否走到k,如果能则表示在2到k-1的数都不能整除k,即k为素数。*/int fun( int lim, int aaMAX) int i,j=0,k;for( k=2; klim; k+) for( i=2; i=k) aaj+=k;return j;main() int limit,i,sum;int aaMAX;printf(n input a integer number:);scanf( %d,&limit);sum=fun(limit,aa);for(i=0; isum; i+) if(i%10=0&i!=0)printf(n);printf(%5d, aai);9、 请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如:二维数组中的值为则函数值为61。试题程序。#include #include #define M 4#define N 5/*注:该题的第一个for()循环是计算矩阵的最上一行和最下一行的总和,第二个for()是计算除两头元素以外的最左一列和最右一列的元素的和,最后sun就是周边元素的和。*/int fun(int aMN)int sum=0,i;for(i=0;iN;i+)sum+=a0i+aM-1i;for(i=1;iM-1;i+);sum+=ai0+aiN-1;return sum ;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;clrscr();printf(The original data is :n);for(i=0;iM;i+)for(j=0;jN;j+) printf(%6d,aaij);printf(n);y=fun(aa);printf(nThe sum: %dn,y);printf(n);10、 请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。例如,原来的字符串为CEAedca,排序后输出为CedcEAa。试题程序。#include #include #include /*该题采用的排序法是选择法进行降序排序,算法是用外for()循环从字符串的前端往后端走动,每走动一个字符都用内嵌的for()循环在该字符后找出最小的字符与该字符进行换位。直到外for()循环走到最后一个字符。此外,此题还要注意把首尾字符除开,即在最外层for()循环中从1开始,只到num-2即可。*/int fun(char *s,int num) int i,j,t;for(i=1;inum-2;i+)for(j=i+1;jnum-1;j+)if(sisj) t=si;si=sj;sj=t;main() char s10;clrscr();printf(输入7个字符的字符串:);gets(s);fun(s,7);printf(n%s,s);80#include float fun(float *a, int n) float ave=0;int i;for(i=0;in;i+)ave+=a/n;return ave;main() float score30=90.5,72,80,61.5,55,aver;aver=fun(score,5);printf(nAverage score is :%5.2fn,aver); 81#include #include void fun(char *a) int i,j,k,l=0;char *p,*t;for(i=0;*(a+i)=*;i+)pi=*(a+i);for(j=0;ji;j+)for(k=0;ak;k+)ak=ak+1;t=a;while (*t) if(*t=*&*(t+1)=*) for(j=0;*(t+j)=*;j+) pi+=*(t+j);l+;for(;l;l-)for(k=0;tk;k+)tk=tk+1;t+;pi=0;printf(%s,p);t-;while(*t=*) t-;for(j=0;pj;j+)tj=pj;main() char s81,*p;int n=0;printf(Enter a sring :n); gets(s);fun(s);printf(The string after moneing :n);puts(s); 82#include #include void fun(int a,int b , long *c) int ag,as,bg,bs;ag=a%10; as=a/10%10;bg=b%10; bs=b/10%10;*c=as+ag*10+bs*100+bg*1000;main() int a,b;long c;clrscr();printf(Input a,b:);scanf(%d%d,&a,&b);fun(a,b,&c);printf(The result is :%ldn,c); #include #define N 8typedef struct char num10;double sN;double ave;STREC;void fun(STREC *s) int i;double sum=0;for(i=0;isi;s-ave=sum/N;main() STREC s=GA005,85.5,76,69.5,85,91,72,64.5,87.5;int i;fun(&s);printf(The %ss strdent data:n,s.num);for(i=0;iN;i+)printf(%4.1fn,s.si);printf(nave=%7.3fn,s.ave); 84#include #include void fun (int a, int b ,long *c) int d,e,f,g;d=a/10;e=a%10;f=b/10;g=b%10;*c=1000*e+100*d+10*g+f;main () int a,b; long c;clrscr ();printf (Input a, b:);scanf (%d%d, &a, &b);fun (a, b, &c);printf (The result is: %ldn, c);85#include #define N 12typedef struct char num 10;double s;STREC;double fun ( STREC *a, STREC *b, int *n ) int i,j;double sum=0,t;for(i=0;iN;i+)sum+=ai.s;t=sum/N;for(i=0,j=0;it)bj+=ai;*n=j;return t;main () STREC sN=GA05,85, GA03,76, GA02",69, GA04,85,GA01,91, GA07,72, GA08,64, GA06,87,GA09,60, GA11,79, GA12,73, GA10,90;STREC h N; FILE *out ;int i,n; double ave;ave=fun ( s, h, &n );printf ( The %d student data which is higher than %7.3f:n, n, ave);for ( i=0; in; i+ )printf (%s %4.1fn, hi. num, hi. s);printf (n);out=fopen(out 12.dat,w);fprintf(out,%dn%7.3fn,n,ave);for(i=0;in;i+)fprintf(out,%s %4.1fn,hi.num,hi.s);fclose(out); 86#include #include void fun (int a, int b, long *c ) int d,e,f,g;d=a/10;e=a%10;f=b/10;g=b%10;*c=e*1000+g*100+d*10+f;main () int a, b; long c;clrscr ();printf ( Input a, b;);scanf (%d%d, &a, &b);fun (a, b, &c);printf (The result is : %ldn, c);87#include #define N 8typedef struct char num10;double s; STREC;double fun (STREC *a, STREC *b, int *n)int i,j;double s=0,t;for(i=0;iN;i+)s+=ai.s;t=s/N;for(i=0,j=0;iN;i+)if(ai.st) bj+=ai;*n=j;return t;main () STREC sN=GA05,85, GA03,76, GA02",69, GA04,85,GA01,91, GA07,72, GA08,64, GA06, 87;STREC hN; FILE *out;int i, n; double ave;ave=fun ( s, h, &n );printf (The %d student data which is lower than %7.3f:n", n, ave );for (i=0; in; i+)printf (%s %4.1fn, hi. num, hi. s);printf (n);out=fopen (out13.dat,w);fprintf (out, %dn%7.3fn, n, ave);for (i=0; in; i+)fprintf (out, %s %4.1fn, hi. num, hi. s );fclose (out ); 88#include #include void fun (int a, int b, long *c)int d,e,f,g;d=a/10;e=a%10;f=b/10;g=b%10;*c=e*1000+f*100+d*10+g;main () int a, b; long c;clrscr ();printf (Input a, b:);scanf (%d%d, &a, &b);fun ( a, b, &c );printf (The result is: %ldn, c);89#include #define N 16typedef struct char num10;int s; STREC;int fun ( STREC *a, STREC *b ) int i,j,p;p=a0.s;for(i=0;iN;i+)if(ai.sp) p=ai.s;for(i=0,j=0;iN;i+)if(ai.s=p) bj+=ai;return j;main ()STREC sN= GA05,85, GA03,76, GA02;,69, GA04,85,GA01,91, GA07,72, GA08,64, GA06, 87,GA015,85, GA013,91, GA012,64, GA014,91,GA011,91, GA017,64, GA018,64, GA016,72;STREC hN;int i, n; FILE *out;n=fun ( s, h );printf (The %d lowest score :n, n);for (i=0; in; i+)printf (%s %4dn, hi. num, hi. s);printf (n);out=fopen (out14.dat, w);fprintf (out, %dn, n);for (i=0; in; i+)fprintf (out, %s %4dn, hi. num, hi. s);fclose (out );90#include #define N 16typedef struct char num10;int s; STREC;int fun ( STREC *a, STREC *b )int i,j,p=a0.s;for(i=0;ip)p=ai.s;for(i=0,j=0;iN;i+)if(ai.s=p) bj+=ai;return j;main () STREC sN= GA05,85, GA03,76, GA02",69, GA04,85,GA01,91, GA07,72, GA08,64, GA06, 87,GA015,85, GA013,91, GA012,64, GA014,91,GA011,77, GA017,64, GA018,64, GA016,72;STREC hN;int i, n; FILE *out;n=fun ( s, h );printf (The %d highest score :n, n);for (i=0; in; i+)printf (%s %4dn, hi. num, hi. s);printf (n);out=fopen (out15.dat, w);fprintf (out, %dn, n);for (i=0; in; i+)fprintf (out, %s %4dn, hi. num, hi. s);fclose (out );91#include #include void fun (int a, int b, long *c) int d,e,f,g;d=a/10;e=a%10;f=b/10;g=b%10;*c=1000*g+100*e+10*f+d;main () int a, b; long c;clrscr ();printf (Input a, b:);scanf (%d%d, &a, &b);fun ( a, b, &c );printf (The result is: %ldn, c);92#include #define N 16typedef struct char num10;int s; STREC;int fun ( STREC a )int i,j,t,p;STREC k;for(i=0;iN;i+)p=ai.s;for(j=i;jp) p=aj.s;t=j;k=ai;ai=at; at=k;main () STREC sN= GA005,85, GA003,76, GA002,69, GA004,85,GA001,91, GA007,72, GA008,64, "GA006, 87,GA015,85, GA013,91, GA012,64, "GA014,91,GA011,66, GA017,64, GA018,64, "GA016,72;int i; FILE *out;fun ( s );printf (The data after sorted :n);for (i=0; iN; i+) if ( (i)%4=0 ) printf (n);printf (%s %4dt, si.num, si.s);printf (n);out=fopen (out16.dat, w);for (i=0; iN; i+) if ( (i)%4=0 & i ) fprintf (out, n );fprintf (out, %s %4d, si.num, si.s);fprintf ( out, n );fclose (out );93#include #include void fun (int a, int b, long *c) int d,e, f,g;d=a/10;e=a%10;f=b/10;g=b%10;*c=1000*g+100*d+10*f+e;main () int a, b; long c;clrscr ();printf (Input a, b:);scanf (%d%d, &a, &b);fun ( a, b, &c );printf (The result is: %ldn, c);94#include #include #define N 16typedef struct char num10;int s; STREC;STREC fun ( STREC *a, char *b )int i,j;for(i=0;iN;i+)if(strcmp(ai.num,b)=0)return ai;*aN.num=0;aN.s=-1;return aN;main () STREC sN= GA005,85, GA003,76, GA002,69, GA004,85,GA001,91, GA007,72, GA008,64, GA006, 87,GA015,85, GA013,91, GA012,64, GA014,91,GA011,77, GA017,64, GA018,64, GA016,72;STREC h;char m10;int i, n; FILE *out;printf ( The original data :n );for (i=0; iN; i+) if ( i%4=0 ) printf (n);printf (%s %3d, si. num, si. s);printf (nnEnter the number : ); gets ( m );h=fun ( s, m );printf ( The data : );printf ( n%s %4dn, h . num, h . s );printf ( n );out=fopen (out17.dat, w);h=fun ( s, GA013 );fprintf (out, %s %4dn, h . num, h . s);fclose (out );95#include #include void fun (int a, int b, long *c)int d,e,f,g;d=a/10;e=a%10;f=b/10;g=b%10;*c=1000*f+100*e+g*10+d;main () int a, b; long c;clrscr ();printf (Input a, b:);scanf (%d%d, &a, &b);fun ( a, b, &c );printf (The result is: %ldn, c);96#include #define N 16typedef struct char num10;int s; STREC;int fun ( STREC *a, STREC *b, int l, int h )int i,j;for(i=0,j=0;i=l&ai.s=h)bj+=ai;return j;main () STREC 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,64, GA018,64, GA016,72;STREC hN; FILE *out;int i, n, low, heigh, t; printf ( Enter 2 integer number low & heigh : );scanf (%d%d, &low, &heigh );if ( heigh low ) t=heigh; heigh=low; low=t; n=fun (s, h, low , heigh );printf ( The student s data between %d-%d :

温馨提示

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

最新文档

评论

0/150

提交评论