重庆市计算机等级考试C语言上机模拟试题 1、 函数adddigit的原型为int adddigit(int num);,其功能是求num各位数字之和。要求编制该函数并用如下所示的主函数进行测试,源程序存入。 # include “” # include “” void main() { int adddigit(int num); int n; scanf(“%d”, printf(“sum=%d\n”,adddigit(n)); } 2、 编制程序输出如下所示图形,源程序存入。 1 121 12321 1234321 1 3、 编制程序实现功能:从键盘上输入若干个值为0~32767之间的正整数,并将每个整数的各位数字之和存放在数组a中。要求:被处理数据的个数由键盘输入指定(小于50个数):求每个整数各位数字之和的功能用自定义函数实现:源程序存入。 4、 编制程序实现其6Ⅹ6的整型矩阵的输入数据,然后求出其最大元素以及最大元素位置的下标并输出的功能,源程序存入。 5、 编程实现从键盘为一个6Ⅹ6整型数组输入数据,然后找出其每一行中的最小值保存在一维数组中,并输出该一维数组的所有元素。源程序存入。 6、 函数fac的原型为long fac(it j);,其功能是利用静态变量实现n!。要求编制该函数并用如下的主函数进行测试。源程序存入。 7、 函数chrn的原型为int chrn(char *s,char c);,其功能是测试字符c在字符串s中出现的次数。要求编制该函数并用相应的主函数进行测试。源程序存入。 8、 求出100~999之间能够被3整除,且至少有一位数字是5的所有整数。源程序存入。 9、 编写一个程序计算下式之和。 1+(1+2)+(1+2+3)+……+(1+2+3+4+5+6+7+8+9+10). 源程序存入。 10、Fibonacci数列是这样一个数列,最前面的两个数分别是1和1,从第3个数开始,数列中每个数是其前面的两个数之和。请编写程序求该数列中前20个数且要求每一行输出10个数。源程序存入。 11、 下面程序的功能是:统计文本文件中字符的个数。请输入并完善程序,源程序存入。 # include “” void main() { FILE *fp; long num=0l; if(( )==NULL) { printf(“can not open the file\n”); return; } while( ) num=num+1; fclose(p); printf(“num=%d\n”,num); } 12、 下列程序是将一个二维数组行和列的元素互换,存到另一个二维数组中。请输入并完善程序。源程序存入 。 # include “” void main() { int ,j,arr1[2][3]={{2,4,6},{1,3,5}},arr2[3][2]; printf(“Array arr1:\n”); for(i=0;i<2;i++) {for(j=0; ;j++) { printf(“%5d”,arr1[i][j]); =arr1[i][j]; } printf(“\n”); } printf(“Array arr2:\n”); for(i=0;i<3;i++) {for(j=0; j<2 ; ) printf(“%5d”,arr2[i][j]); printf(“\n”); } } 13、 下述程序的功能是:在数组中同时查找最大元素下标和最小元素下标,并分别存放在main函数的变量max和min中。请输入程序并填空,源程序存入。 # include “” void find(int *a,int n,int *max,int *min) { int k; *max=*min=0; for(k=1;ka[*max]) if(a[l]