您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 重庆市计算机等级考试C语言上机模拟试题
重庆市计算机等级考试C语言上机模拟试题1、函数adddigit的原型为intadddigit(intnum);,其功能是求num各位数字之和。要求编制该函数并用如下所示的主函数进行测试,源程序存入test1.c。#include“stdio.h”#include“math.h”voidmain(){intadddigit(intnum);intn;scanf(“%d”,&n);printf(“sum=%d\n”,adddigit(n));}2、编制程序输出如下所示图形,源程序存入test11.c。1121123211234321123454321123456543213、编制程序实现功能:从键盘上输入若干个值为0~32767之间的正整数,并将每个整数的各位数字之和存放在数组a中。要求:被处理数据的个数由键盘输入指定(小于50个数):求每个整数各位数字之和的功能用自定义函数实现:源程序存入test21.c。4、编制程序实现其6Ⅹ6的整型矩阵的输入数据,然后求出其最大元素以及最大元素位置的下标并输出的功能,源程序存入test41.c。5、编程实现从键盘为一个6Ⅹ6整型数组输入数据,然后找出其每一行中的最小值保存在一维数组中,并输出该一维数组的所有元素。源程序存入test51.c。6、函数fac的原型为longfac(itj);,其功能是利用静态变量实现n!。要求编制该函数并用如下的主函数进行测试。源程序存入test61.c。7、函数chrn的原型为intchrn(char*s,charc);,其功能是测试字符c在字符串s中出现的次数。要求编制该函数并用相应的主函数进行测试。源程序存入test71.c。8、求出100~999之间能够被3整除,且至少有一位数字是5的所有整数。源程序存入test81.c。9、编写一个程序计算下式之和。1+(1+2)+(1+2+3)+……+(1+2+3+4+5+6+7+8+9+10).源程序存入test91.c。10、Fibonacci数列是这样一个数列,最前面的两个数分别是1和1,从第3个数开始,数列中每个数是其前面的两个数之和。请编写程序求该数列中前20个数且要求每一行输出10个数。源程序存入test91.c。11、下面程序的功能是:统计文本文件f.dat中字符的个数。请输入并完善程序,源程序存入test22.c。#include“stdio.h”voidmain(){FILE*fp;longnum=0l;if(()==NULL){printf(“cannotopenthefile\n”);return;}while()num=num+1;fclose(p);printf(“num=%d\n”,num);}12、下列程序是将一个二维数组行和列的元素互换,存到另一个二维数组中。请输入并完善程序。源程序存入test2.c。#include“stdio.h”voidmain(){int,j,arr1[2][3]={{2,4,6},{1,3,5}},arr2[3][2];printf(“Arrayarr1:\n”);for(i=0;i2;i++){for(j=0;;j++){printf(“%5d”,arr1[i][j]);=arr1[i][j];}printf(“\n”);}printf(“Arrayarr2:\n”);for(i=0;i3;i++){for(j=0;j2;)printf(“%5d”,arr2[i][j]);printf(“\n”);}}13、下述程序的功能是:在数组中同时查找最大元素下标和最小元素下标,并分别存放在main函数的变量max和min中。请输入程序并填空,源程序存入test12.c。#include“stdio.h”voidfind(int*a,intn,int*max,int*min){intk;*max=*min=0;for(k=1;kn;k++){if(a[k]a[*max])if(a[l]a[*min])*min=k;}}voidmain(){intx[]={5,8,-7,2,12,7,3,10};intmax,min;find();printf(“\n%d,%d\n”,max,min);}14、下面程序的功能是:输入两个字符串,将第二个字符串中ASCII码值为偶数的字符连接在第一个字符串的后面。请输入程序并填空,源程序存入test22.c。#include“stdio.h”voidmain(){chars1[80],s2[40];intI,j;printf(“pleaseinputtwostings:”);gets(s1);gets(s2);for(i=0;;i++);for(j=0;s2[j]!=’\0’;j++)if()s1[i++]=s2[j];puts(s1);}15、下列程序的功能是将一字符串s中的内容倒置。如输入的字符串为abcdefg,则输出的字符串为gfedcba。请输入程序并填空,源程序存入test32.c。#include“stdio.h”#include“string.h”voidmain(){voidf(char*s);chars1[80];gets(s1);f();puts(s1);}voidf(char*s){inti,k;chart;k=;for(i=0;ik/2;i++){t=s[i];;s[k-i-1]=t;}}16、下面程序是从键盘上输入十进制数据(可能超过32767),然后以二到十六进制数的形式输出。请输入程序并填空,源程序存入test42.c。#include“stdio.h”voidmain(){charb[16]={‘0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’};charc[64];intd,i=0,base;longn;scanf();scanf(“%d”,&base);do{c[i]=i++;n=n/base;}while(n!=0);for(--I;i=0;){d=c[i];printf(“%c”,b[d]);}}17、下面程序的功能是实现文件复制,源文件和目标文件文件名来自命令行。请输入程序并填空,源程序存入test52.c。#include“stdio.h”voidmain(intargc,char*argv[]){*fin,*fout;intcount=0,cif(argc!=3)return;if((fin=fopen(argv[1],”r”))==NULL||(fout=fopen(argv[2],”w”))==NULL){puts(“无法打开文件!“);;}while((c=fgetc(fin))&7!feof(fin))fclose(fin);fclose(fout);}18、下列函数功能是求n个学生成绩的平均分和最高分,并将这些数据从该函数返回到调用函数。请输入程序并填空,源程序存入test62.c。#include“stdio.h”floataverage(floatarray[],intn,){intI;floatsum=array[0];for(i=1;in;i++){if(array[i]*max)*max=array[i];sum=sum+array[i];}return}voidmain(){floata[]={13,21,35,47,52,67,74,86,99,10},max,aver;aver=average(a,10,&max);printf(“%f,%f\n”,max,aver);}19、下面的程序通过average计算数组中各元素的平均值。请输入程序并填空,源程序存入test72.c#include“stdio.h”floataverage(,intn){intx;floatavg;for(x=0;xn;x++)avg=avg+;avg=avg/n;returnavg;}voidmain(){inta[5]={2,4,6,8,10};floatmean;mean=average(a,5);printf(“mean=%f\n”,mean);}20、下面程序的功能是将字符串中的数字字符删除后输出。请输入程序并填空,源程序存入test82.c#include“stdio.h”voiddelnum(){intI,j;for(i=0,j=0;s[i]!=’\0’;i++)if(){s[j]=s[i];j++;}}voidmain(){chars[80];gets(s);delnum(s);printf(“\n%s\n”,s);}21、以下程序实现在屏幕上显示指定文本文件(文件名为:c:\abc.dat)内容的功能。源程序中前面标有星号的行有错误,请改正之。源程序存入test3.c。*include“stdio.h”voidmain()*{file*p;charc;*if((p=open(“c:\\abc.dat”,”w”))==NULL){printf(“cannotopenthefile\n”);return;}while(!feof(p)){c=fgetc(p);*getchar(c);}}22、在下面程序中,函数f的功能是求无符号整数num各位数字之积。请输入程序并改正程序中带“*”的行中的错误,使它能够正确地输出结果。源程序存入test31.c。#include“stdio.h”unsignedf(unsignednum)*{unsignedk=0;do*{k*=num/10;*num%=10;}while(num);return(k);}voidmain(){intx=35,y=550;printf(“%d,%d\n”,f(x),f(y));}23、如下程序使x与y变量之值进行交换。请输入程序并改正程序中带“*”的行中的错误,使它能够正确地输出结果。源程序存入test32.c。#include“stdio.h”voidmain(){voidswap(int*p1,int*p2);intx,y,*ptr1,*ptr2;scanf(“%d,%d”,&x,&y);printf(“%d\t%d\n”,x,y);*p1=&x;*ptr2=y;*swap(*ptr1,*ptr2);printf(“%d\t%d\n”,x,y);}voidswap(int*p1,int*p2){inttemp;temp=*p1;*p1=*p2;*p2=temp;}24、以下程序是求取矩阵A的两条对角线上元素之和。请输入程序并改正程序中带“*”的行中的错误,使它能够正确地输出结果。源程序存入test33.c。#include“stdio.h”voidmain(){inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;*intsum1=0;for(i=0;i3;i++)for(j=0;j3;j++)if(i==j)sum1=sum1+a[i][j];for(i=0;i3;i++)*for(j=2;j=0;j++)*if(i==j)sum2=sum2+a[i][j];printf(“sum1=%d,sum2=%d\n”,sum1,sum2);}25、以下程序是求a数组中偶数的个数和偶数的平均值。请输入程序并改正程序中带“*”的行中的错误,使它能够正确地输出结果。源程序存入test34.c。#include“stdio.h”voidmain(){inta[10]={1,2,3,4,5,6,7,8,9,10},k,i;floats=0,ave;for(k=i=0;i10;i++){if(a[i]%2!=0)*break;s+=a[i],k++;}*if(k=0){ave=s/k;*printf(“%f,%d\n”,k,ave);}}26、以下程序功能是删除一个字符串中的所有空格。请输入程序并改正程序中带“*”的行中的错误,使它能够正确地输出结果。源程序存入test35.c。#
本文标题:重庆市计算机等级考试C语言上机模拟试题
链接地址:https://www.777doc.com/doc-1979153 .html