《国计算机等级考试二级c语言上机题汇编.pdf》由会员分享,可在线阅读,更多相关《国计算机等级考试二级c语言上机题汇编.pdf(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、国计算机等级考试二级国计算机等级考试二级 c c 语言上机题汇编语言上机题汇编网友常用标签(共网友常用标签(共 3 3 个):个):计算机等级考试二级上机试题1、编一个函数 fun(char s),函数的功能是把字符串中的内容逆置.例子如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba.试题程序:#include include stdio.hdefine N 81/注:该题的算法是先分别找出字符串的两头,然后同时逐一往中间移动,每移动一次都进行两字符的位置对换,直到中间字符(用 s+is+n1i 来控制).由于s+i 中一个地址,因此要注意把它的内容取出再
2、进行换位。即先进行取内容运算)/fun(char*s)int i=0,t,n=strlen(s);for(;s+is+n-1-i;i+)t=*(s+i);(s+i)=*(s+n1i);(s+n1-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 列)的转置(即行列互换)。例如,输入一面的矩阵:
3、程序输出:试题程序:include include conio.h/*这题的关键在于进行行列下标转换的算法,由矩阵的对称性我们不难看出在进行行列互换时 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,
4、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 返回偶娄这和。例如:数
5、组中的值依次为:1,8,2,3,11,6;则利用指针 odd 返回奇数之和24;利用指针 even 返回偶数之和 8.试题程序。#include#include conio.hdefine 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(!(ai2))*even+=ai;elseodd+=ai;main()int aN=1,9,
6、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 inclu
7、de conio.h#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;iinclude conio。h/*注:h 乘以 1000 后正好是原小数点后第三位做了新数的个位
8、数,然后再进行加 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(”
9、%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 stdio。hinclude/注:该题的算法是让 i 控制一个一个字符往后走,在移动过程中如果 si不是要删的字
10、符,则将其按顺序放到新串中(新串亦是用 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、请编写一个 u
11、nsigned fun(unsigned w),w 是一个大于 10 的无符号整数,若 w 是 n(n=2)位的整数,函数求出 w 的后 n1 位的数作为函数值返回.例如:w 值为 5923,则函数返回 923;w 值为 923 则函数返回 23。试题程序。include conio.hinclude=10000)return w10000;if(w=1000)return w1000;if(w=100)return w%100;return w10;main()unsigned x;printf(enter a unsigned integer number:”);scanf(”u,x);i
12、f(x10)printf(data error!”);else printf(the result:%un”,fun(x));8、编写函数 int fun(int lim,int aaMAX),该函数的功能是求出小于 lim的所有素数并放在 aa 数组中,该函数返回所求出素数的个数.试题程序.#include#include conio.h#define MAX 100/*注:循环 for(i=2;ik;i+)用于判断 k 是否为素数,原理是当用 2 到 k-1这间的数去对 k 求余,如余数为0(即被整除)则表示k 不是一个素数。语句if(i=k)用于判断在上一个 for()循环中 i 能否走
13、到 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(i10=0&i!=0)printf(n);printf(%5d”,aai);9、请编写函数 fun,函数的功能
14、是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如:二维数组中的值为则函数值为 61。试题程序。#include conio。hinclude stdio.hdefine M 4#define N 5/*注:该题的第一个 for()循环是计算矩阵的最上一行和最下一行的总和,第二个 for()是计算除两头元素以外的最左一列和最右一列的元素的和,最后 sun 就是周边元素的和。*/int fun(int aMN)int sum=0,i;for(i=0;iN;i+)sum+=a0i+aM1i;for(i=1;iM-1;i+);sum+=ai0+aiN1;return su
15、m;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。试题程序。#inc
16、lude include conio.h#include stdio.h/该题采用的排序法是选择法进行降序排序,算法是用外 for()循环从字符串的前端往后端走动,每走动一个字符都用内嵌的 for()循环在该字符后找出最小的字符与该字符进行换位.直到外 for()循环走到最后一个字符。此外,此题还要注意把首尾字符除开,即在最外层 for()循环中从 1 开始,只到 num2 即可。/int fun(char s,int num)int i,j,t;for(i=1;inum2;i+)for(j=i+1;jnum-1;j+)if(sisj)t=si;si=sj;sj=t;main()char s1
17、0;clrscr();printf(输入 7 个字符的字符串:);gets(s);fun(s,7);printf(”ns”,s);80#include stdio.hfloat 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);81include stdio。hinclude void fun(char a)
18、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
19、(s);printf(The string after moneing:n”);puts(s);82#include stdio。hinclude si;save=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);84include conio.hinclude stdio.hvoid fun(int a,in
20、t b,long c)int d,e,f,g;d=a/10;e=a10;f=b/10;g=b10;c=1000e+100d+10*g+f;main()int a,b;long c;clrscr();printf(Input a,b:”);scanf(”dd”,&a,&b);fun(a,b,c);printf(The result is:ldn,c);85include#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
21、=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,”GA02quot;,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”
22、,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,%dn7。3fn”,n,ave);for(i=0;in;i+)fprintf(out,%s%4。1fn”,hi。num,hi.s);fclose(out);86include conio.h#include void fun(int a,int b,long c)int d,e,f,g;d=a/10;e=a10;f=b/10;g=b%10;c=e*1000+g*100+d*10+f;main()in
23、t a,b;long c;clrscr();printf(Input a,b;”);scanf(%d%d”,a,&b);fun(a,b,&c);printf(”The result is:%ldn”,c);87include stdio.h#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
24、;main()STREC sN=GA05”,85,”GA03”,76,”GA02quot;,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:nquot;,n,ave);for(i=0;in;i+)printf(”%s 4。1fn”,hi.num,hi.s);printf(n);out=fopen(”out13.dat,”w”);fprintf(ou
25、t,%dn7.3fn,n,ave);for(i=0;ivoid fun(int a,int b,long*c)int d,e,f,g;d=a/10;e=a%10;f=b/10;g=b10;c=e*1000+f*100+d*10+g;main()int a,b;long c;clrscr();printf(”Input a,b:);scanf(%dd”,&a,&b);fun(a,b,&c);printf(The result is:%ldn”,c);89#include stdio。h#define N 16typedef struct char num10;int s;STREC;int fu
26、n(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*
27、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 stdio.h#define N 16typedef struct char num10;int s;STREC;int fun(STREC*a,STREC*b)int
28、 i,j,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,77,”GA017,64,”GA018”,64,”GA016,72;STREC hN;int i,n;FILE out;n=fun(s,h);print
29、f(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 conio。hinclude stdio。hvoid fun(int a,int b,long c)int d,e,f,g;d=a/10;e=a10;f=b/10;g=b%10;*c=1000g+100e+10
30、f+d;main()int a,b;long c;clrscr();printf(”Input a,b:”);scanf(dd”,a,&b);fun(a,b,c);printf(The result is:%ldn”,c);92include;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;jN;j+)if(aj。sp)p=aj。s;t=j;k=ai;ai=at;at=k;main()STREC sN=GA005”
31、,85,GA003,76,”GA002,69,”GA004,85,”GA001”,91,GA007”,72,”GA008”,64,";GA006”,87,”GA015,85,”GA013”,91,”GA012,64,quot;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”
32、);out=fopen(out16。dat,w”);for(i=0;iinclude stdio.hvoid fun(int a,int b,long c)int d,e,f,g;d=a/10;e=a10;f=b/10;g=b%10;*c=1000*g+100d+10f+e;main()int a,b;long c;clrscr();printf(Input a,b:);scanf(dd”,&a,&b);fun(a,b,&c);printf(The result is:ldn”,c);94#include include string。h#define N 16typedef struct c
33、har 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”,7
34、2;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);f
35、close(out);95#include conio.h#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;iN;i+)if(ai。s=lai。s#include stdio。hvoid fun(int a,int b,long*c)int d,e,f,g;d=a/10;e=a10;f=b/10;g=b%10;*c=1000f+100d+10*g+e;main()/*主函数*/int a,b;long c;clrscr
36、();printf(”Input a,b:”);scanf(”d%d”,a,&b);fun(a,b,c);printf(”The result is:%ldn”,c);98include stdio.h#include stdlib.h#define N 8struct slist double s;struct slist*next;typedef struct slist STREC;double fun(STREC*h)double sum,ave;STREC*q;sum=(h).s;q=h-next;while(q)sum+=(*q)。s;q=q-next;ave=sum/N;retu
37、rn ave;STREC*creat(double*s)STREC h,*p,q;int i=0;h=p=(STREC*)malloc(sizeof(STREC);ps=0;while(inext=0;return h;outlist(STREC*h)STREC p;p=hnext;printf(head );do printf(%4.1f,ps);p=pnext;while(p!=0);printf(nn);main()double sN=85,76,69,85,91,72,64,87,ave;STREC*h;h=creat(s);outlist(h);ave=fun(h);printf(”ave=6。3fn”,ave);99#include conio.h#include stdio.hvoid fun(int a,int b,long c)int d,e,f,g;d=a/10;e=a10;f=b/10;g=b%10;c=1000d+100*f+10e+g;main()int a,b;long c;clrscr();printf(”Input a,b:);scanf(d%d”,&b);fun(a,b,&c);printf(”The result is:,&a
限制150内