《2022年重庆市计算机等级考试C语言上机模拟试题 .pdf》由会员分享,可在线阅读,更多相关《2022年重庆市计算机等级考试C语言上机模拟试题 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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 123454321 12345654321
2、3、编制程序实现功能:从键盘上输入若干个值为032767 之间的正整数,并将每个整数的各位数字之和存放在数组a 中。要求:被处理数据的个数由键盘输入指定(小于50 个数):求每个整数各位数字之和的功能用自定义函数实现:源程序存入test21.c。4、编制程序实现其66 的整型矩阵的输入数据,然后求出其最大元素以及最大元素位置的下标并输出的功能,源程序存入test41.c。5、编程实现从键盘为一个66 整型数组输入数据,然后找出其每一行中的最小值保存在一维数组中,并输出该一维数组的所有元素。源程序存入test51.c。6、函数 fac 的原型为long fac(it j);,其功能是利用静态变量
3、实现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、Fibonacci数列是这样一个数列,最前面的两个数分别是1 和 1,从第
4、3 个数开始,数列中每个数是其前面的两个数之和。请编写程序求该数列中前20 个数且要求每一行输出10个数。源程序存入test91.c。11、下面程序的功能是:统计文本文件f.dat 中字符的个数。请输入并完善程序,源程序存入 test22.c。#include“stdio.h”void main()FILE*fp;long num=0l;if()=NULL)名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 9 页 -printf(“can not open the filen”);return;while()num=num+1;fclose(p);printf(“num=%dn”,
5、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=0;j+)printf(“%5d”,arr1ij);=arr1ij;printf(“n”);printf(“Array arr2:n”);for(i=0;i3;i+)for(j=0;j2;)printf(“%5d”,arr2ij);printf(“n”);13、下述程序
6、的功能是:在数组中同时查找最大元素下标和最小元素下标,并分别存放在 main 函数的变量max 和 min 中。请输入程序并填空,源程序存入test12.c。#include“stdio.h”void find(int*a,int n,int*max,int*min)int k;*max=*min=0;for(k=1;ka*max)if(ala*min)*min=k;void main()int x=5,8,-7,2,12,7,3,10;int max,min;find();名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 9 页 -printf(“n%d,%dn”,max,min
7、);14、下面程序的功能是:输入两个字符串,将第二个字符串中ASCII码值为偶数的字符连接在第一个字符串的后面。请输入程序并填空,源程序存入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;i+);for(j=0;s2j!=?0?;j+)if()s1i+=s2j;puts(s1);15、下列程序的功能是将一字符串s 中的内容倒置。如输入的字符串为abcdefg,则输出的字符串为gfedcba。请输入程序并
8、填空,源程序存入test32.c。#include“stdio.h”#include“string.h”void main()void f(char*s);char s180;gets(s1);f();puts(s1);void f(char*s)int i,k;char t;k=;for(i=0;i=0;)d=ci;printf(“%c”,bd);17、下面程序的功能是实现文件复制,源文件和目标文件文件名来自命令行。请输入程序并填空,源程序存入test52.c。#include“stdio.h”void main(int argc,char*argv)*fin,*fout;int count
9、=0,c if(argc!=3)return;if(fin=fopen(argv1,”r”)=NULL|(fout=fopen(argv2,”w”)=NULL)puts(“无法打开文件!“);while(c=fgetc(fin)&7!feof(fin)fclose(fin);fclose(fout);18、下列函数功能是求n 个学生成绩的平均分和最高分,并将这些数据从该函数返回到调用函数。请输入程序并填空,源程序存入test62.c。#include“stdio.h”float average(float array,int n,)int I;float sum=array0;for(i=1;
10、i*max)*max=arrayi;sum=sum+arrayi;return 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);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 9 页 -19、下面的程序通过average计算数组中各元素的平均值。请输入程序并填空,源程序存入test72.c#include“stdio.h”float average(,int n)int x;float avg;for(x=0;xn;x+)a
11、vg=avg+;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、下面程序的功能是将字符串中的数字字符删除后输出。请输入程序并填空,源程序存入test82.c#include“stdio.h”void delnum()int I,j;for(i=0,j=0;si!=?0?;i+)if()sj=si;j+;void main()char s80;gets(s);delnum(s);printf(“n%sn”,s);21、以下程序实现在屏
12、幕上显示指定文本文件(文件名为:c:abc.dat)内容的功能。源程序中前面标有星号的行有错误,请改正之。源程序存入test3.c。*include“stdio.h”void main()*file*p;char c;*if(p=open(“c:abc.dat”,”w”)=NULL)printf(“can not open the filen”);return;while(!feof(p)名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 9 页 -c=fgetc(p);*getchar(c);22、在下面程序中,函数f 的功能是求无符号整数num 各位数字之积。请输入程序并改正程序
13、中带“*”的行中的错误,使它能够正确地输出结果。源程序存入test31.c。#include“stdio.h”unsigned f(unsigned num)*unsigned k=0;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
14、*p1,int*p2);int x,y,*ptr1,*ptr2;scanf(“%d,%d”,&x,&y);printf(“%dt%dn”,x,y);*p1=&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。#include“stdio.h”void main()int a33=1,
15、2,3,4,5,6,7,8,9,i,j;*int sum1=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)sum2=sum2+aij;printf(“sum1=%d,sum2=%dn”,sum1,sum2);25、以下程序是求a 数组中偶数的个数和偶数的平均值。请输入程序并改正程序中带“*”的行中的错误,使它能够正确地输出结果。源程序存入test34.c。#include“stdio.h”void main()int a1
16、0=1,2,3,4,5,6,7,8,9,10,k,i;float s=0,ave;for(k=i=0;is0)max=si,k=I;if(k!=i-1)*sk=si-1,sk=max;puts(s);29、已知数据文件a.dat 中存放有若干个(超过10 个)整数,以下程序的功能是:计算文件 a.dat 中前 10 个数的和并将求和结果存入文件a.dat 的尾部。请输入程序并改正程序中带“*”的行中的错误,使它能够正确地输出结果。源程序存入test38.c。#include“stdio.h”void main()*File*fp1,*fp2;名师资料总结-精品资料欢迎下载-名师精心整理-第 8
17、 页,共 9 页 -*int s,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;fclose(fp1);if(fp2=fopen(“a.dat”,”a”)=NULL)printf(“can not open the file”);return;*printf(“%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=%ldn”,mean);名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 9 页 -
限制150内