重庆市计算机等级考试C语言上机模拟试题
1、 函数adddigit的原型为int adddigit(int num);,其功能是求num各位数字之和。要求编制该
函数并用如下所示的主函数进行测试,源程序存入。 # include “” # include “” void main()
{ int adddigit(int num); int n;
scanf(“%d”,&n);
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(“]”,arr1[i][j]); =arr1[i][j]; }
printf(“\\n”); }
printf(“Array arr2:\\n”); for(i=0;i<3;i++)
{for(j=0; j<2 ; ) printf(“]”,arr2[i][j]); printf(“\\n”);
} } 13、 下述程序的功能是:在数组中同时查找最大元素下标和最小元素下标,并分别存放
在main函数的变量max和min中。请输入程序并填空,源程序存入。 # include “”
void find(int *a,int n,int *max,int *min)
{ int k;