《2022年重庆市计算机等级考试C语言上机模拟试题答 .pdf》由会员分享,可在线阅读,更多相关《2022年重庆市计算机等级考试C语言上机模拟试题答 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、重庆市计算机等级考试C 语言上机模拟试题1、 函数 adddigit 的原型为int adddigit(int num);, 其功能是求num 各位数字之和。 要求编制该函数并用如下所示的主函数进行测试,源程序存入test1.c。# include “ stdio.h”# include “ math.h”void main() int adddigit(int num); int n; scanf(“ %d” ,&n); printf( “ sum=%dn” ,adddigit(n); 2、 编制程序输出如下所示图形,源程序存入test11.c。1 121 12321 1234321 123
2、454321 12345654321 3、 编制程序实现功能:从键盘上输入若干个值为032767 之间的正整数,并将每个整数的各位数字之和存放在数组a 中。要求:被处理数据的个数由键盘输入指定(小于50 个数) :求每个整数各位数字之和的功能用自定义函数实现:源程序存入test21.c。4、 编制程序实现其66 的整型矩阵的输入数据,然后求出其最大元素以及最大元素位置的下标并输出的功能,源程序存入test41.c。5、 编程实现从键盘为一个66 整型数组输入数据,然后找出其每一行中的最小值保存在一维数组中,并输出该一维数组的所有元素。源程序存入test51.c。6、 函数 fac 的原型为lo
3、ng fac(it j);,其功能是利用静态变量实现n! 。要求编制该函数并用如下的主函数进行测试。源程序存入test61.c。7、 函数 chrn 的原型为int chrn(char *s,char c);,其功能是测试字符c 在字符串 s 中出现的次数。要求编制该函数并用相应的主函数进行测试。源程序存入test71.c。8、 求出100999 之间能够被3 整除,且至少有一位数字是5 的所有整数。源程序存入test81.c。9、 编写一个程序计算下式之和。 1+(1+2)+(1+2+3)+ +(1+2+3+4+5+6+7+8+9+10). 源程序存入test91.c。10、 Fibonac
4、ci数列是这样一个数列,最前面的两个数分别是1 和 1,从第 3 个数开始,数列中每个数是其前面的两个数之和。请编写程序求该数列中前20 个数且要求每一行输出10个数。源程序存入test91.c。11、下面程序的功能是:统计文本文件f.dat 中字符的个数。请输入并完善程序,源程序存入 test22.c。# include “ stdio.h”void main() FILE *fp; long num=0l; if( (fp=fopen( “ f.dat” ,” r” ) )=NULL) 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共
5、 9 页 printf( “ can not open the filen ” ); return; while( fgetc(fp)!=feof(fp) ) num=num+1; fclose(p); printf( “ num=%dn” ,num); 12、下列程序是将一个二维数组行和列的元素互换,存到另一个二维数组中。请输入并完善程序。源程序存入test2.c 。# include “ stdio.h”void main() int ,j,arr123=2,4,6,1,3,5,arr232; printf( “ Array arr1:n” ); for(i=0;i2;i+) for(j=
6、0; j3 ;j+) printf( “ %5d” ,arr1ij); arr2 ji =arr1ij; printf( “ n” ); printf( “ Array arr2:n” ); for(i=0;i3;i+) for(j=0; j2 ; j+ ) printf( “ %5d” ,arr2ij); printf( “ n” ); 13、下述程序的功能是:在数组中同时查找最大元素下标和最小元素下标,并分别存放在 main 函数的变量max 和 min 中。请输入程序并填空,源程序存入test12.c。# include “ stdio.h”void find(int *a,int n,
7、int *max,int *min) int k; *max=*min=0; for(k=1;ka*max) *max=k if(ala*min) *min=k; void main( ) int x=5,8,-7,2,12,7,3,10; int max,min; find( x,8,&max,&min ); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 9 页printf( “ n%d,%dn ” ,max,min); 14、下面程序的功能是:输入两个字符串,将第二个字符串中ASCII码值为偶数的字符连接在第一个字符串的后面。请输
8、入程序并填空,源程序存入test22.c。# include “ stdio.h”void main() char s180,s240; int I,j; printf( “ please input two stings:” ); gets(s1); gets(s2); for(i=0; s1i!= 0;i+); for(j=0;s2j!= 0 ;j+) if( s2j%2=0 ) s1i+=s2j; s1i= 0 ; puts(s1); 15、下列程序的功能是将一字符串s 中的内容倒置。如输入的字符串为abcdefg,则输出的字符串为gfedcba。请输入程序并填空,源程序存入test32
9、.c。# include “ stdio.h”# include “ string.h”void main() void f(char *s); char s180; gets(s1); f( s1 ); puts(s1); void f(char *s) int i,k; char t; k= strlen(s) ; for(i=0;i=0; i- ) d=ci; printf( “ %c” ,bd); 17、下面程序的功能是实现文件复制,源文件和目标文件文件名来自命令行。请输入程序并填空,源程序存入test52.c。# include “ stdio.h”void main( int ar
10、gc,char *argv) FILE *fin,*fout; int count=0,c if(argc!=3) return; if(fin=fopen(argv1,” r” )=NULL|(fout=fopen(argv2,” w” )=NULL) puts(“ 无法打开文件! “ );Exit(0) ; while(c=fgetc(fin)&!feof(fin) fputc(c,fout); fclose(fin); fclose(fout); 18、下列函数功能是求n 个学生成绩的平均分和最高分,并将这些数据从该函数返回到调用函数。请输入程序并填空,源程序存入test62.c。# i
11、nclude “ stdio.h”float average (float array,int n, float *max ) int i; float sum=array0; *max= array0 for(i=1;i*max) *max=arrayi; sum=sum+arrayi; return sum/n void main( ) float a=13,21,35,47,52,67,74,86,99,10,max,aver; aver=average(a,10,&max); printf( “n” ,max,aver); 精选学习资料 - - - - - - - - - 名师归纳总结
12、 - - - - - - -第 4 页,共 9 页 19、下面的程序通过average计算数组中各元素的平均值。请输入程序并填空,源程序存入test72.c # include “ stdio.h”float average ( int a ,int n) int x; float avg =0 ; for(x=0;xn;x+) avg=avg+ ax ; avg=avg/n; return avg; void main( ) int a5=2,4,6,8,10; float mean; mean=average(a,5); printf( “ mean=%fn” ,mean); 20、下面程
13、序的功能是将字符串中的数字字符删除后输出。请输入程序并填空,源程序存入test82.c # include “ stdio.h”void delnum( char s ) int i,j; for( i=0,j=0;si!= 0 ;i+) if( si 9)sj=si;j+; sj= 0 ; void main( ) char s80; gets(s); delnum(s); printf( “ n%sn” ,s); 21、以下程序实现在屏幕上显示指定文本文件(文件名为:c:abc.dat)内容的功能。源程序中前面标有星号的行有错误,请改正之。源程序存入test3.c。* # include
14、“ stdio.h”void main() * FILE *p; char c; * if(p=open( “ c:abc.dat” ,” r” )=NULL) printf( “ can not open the filen ” ); return; while(!feof(p) 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 9 页c=fgetc(p); * getchar( c); 22、在下面程序中,函数f 的功能是求无符号整数num 各位数字之积。请输入程序并改正程序中带“ * ”的行中的错误,使它能够正确地输出结果。源程序存
15、入test31.c 。# include “ stdio.h”unsigned f( unsigned num) * unsigned k=1; do * k%=num/10; * num/=10; while (num); return(k); void main( ) int x=35,y=550; printf( “ %d,%dn” ,f(x),f(y); 23、如下程序使x 与 y 变量之值进行交换。请输入程序并改正程序中带“*”的行中的错误,使它能够正确地输出结果。源程序存入test32.c 。# include “ stdio.h”void main() void swap(int
16、 *p1,int *p2); int x,y,*ptr1,*ptr2; scanf(“ %d,%d” ,&x,&y); printf( “ %dt%dn” ,x,y); * ptr1=&x; * ptr2=&y; * swap(ptr1,ptr2); printf( “ %dt%dn ” ,x,y); void swap( int *p1,int *p2) int temp; temp=*p1;*p1=*p2;*p2=temp; 24、以下程序是求取矩阵A 的两条对角线上元素之和。请输入程序并改正程序中带“*”的行中的错误,使它能够正确地输出结果。源程序存入test33.c 。# includ
17、e “ stdio.h”void main() int a33=1 , 2,3,4,5,6,7,8, 9,i,j; * int sum1=0,sum2=0; for(i=0;i3;i+) for(j=0;j3;j+) 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 9 页if(i=j) sum1=sum1+aij; for(i=0;i=0;j-) * if(i+j=2) sum2=sum2+aij; printf( “ sum1=%d,sum2=%dn ” ,sum1,sum2); 25、以下程序是求a 数组中偶数的个数和偶数的平均值。
18、请输入程序并改正程序中带“* ”的行中的错误,使它能够正确地输出结果。源程序存入test34.c 。# include “ stdio.h”void main() int a10=1 ,2,3,4,5,6,7,8,9,10,k,i; float s=0,ave; for(k=i=0;imax) max=si,k=i; if(k!=i-1) * max=si-1; si-1=sk,sk=max; puts(s); 29、已知数据文件a.dat 中存放有若干个(超过10 个)整数,以下程序的功能是:计算文件 a.dat 中前 10 个数的和并将求和结果存入文件a.dat 的尾部。请输入程序并改正程
19、序中带“ *”的行中的错误,使它能够正确地输出结果。源程序存入test38.c 。# include “ stdio.h”void main( ) * FILE *fp1,*fp2; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 9 页* int s=0,a,i; if(fp1=fopen( “ a.dat” ,” r” )=NULL) printf( “ can not open the file” ); return; for( i=0;i10;i+) * fscanf( fp1 , ” %d” ,&a) ;s+=a; fclos
20、e(fp1); if(fp2=fopen( “ a.dat” ,” a” )=NULL) printf( “ can not open the file” ); return; * fprintf(fp2, “ %d” ,s); fclose(fp2); 30、下面的程序通过average计算数组中各元素的平均值。请输入程序并改正程序中带“*”的行中的错误,使它能够正确地输出结果。源程序存入test39.c 。# include “ stdio.h”float average (int *pa,int n) int x; float avg =0; for(x=0;xn;x+) * avg=avg+*(pa+x ); avg=avg/n; return avg; void main( ) int a5=2,4,6,8,10; float mean; * mean=average(a,5); * printf( “ mean=%fn ” ,mean); 程序设计题你们自己上机练习精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 9 页