do { a[i]=*p; i++; }
/**********found***********/ while(*p++) a[i]=0; strcpy(s,a); } main()
{ int n; char s[80];
printf(\ printf(\
printf(\ fun(s,n);
printf(\ }
解题思路:
第一处: 指针p应指向s,所以应改为:p=s;。
第二处: 死循环,当do while循环执行一次,临时变量p应该指向字符串的下一位置,所以 应改为:while(*p++);。
***************************************************
请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机 函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0] 中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中, 其余依此类推, 把100岁 (含100)以上年龄的人数都放在d[10]中。结果在主函数
中输出。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。 给定源程序: #include
{ }
double rnd()
{ static t=29,c=217,m=1024,r=0; r=(r*t+c)%m; return((double)r/m); } main()
{ int age[N], i, d[M];
for(i=0; i for(i=0;i for(i=0;i<10;i++)printf(\ printf(\ NONO(d); } 解题思路: 本题是统计各年龄段的人数。 1. 初始化各年龄段人数为0。 2. 使用for循环以及求出各年龄的十位数字作为存放人数的地址,如果大于值大于10,则 存入d[10]中(大于110岁的人)。 参考答案: void fun( int *a, int *b) { int i, j ; for(i = 0 ; i < M ; i++) b[i] = 0 ; for(i = 0 ; i < N ; i++) { j = a[i] / 10 ; if(j > 10) b[M - 1]++ ; else b[j]++ ; } } double rnd() { static t=29,c=217,m=1024,r=0; r=(r*t+c)%m; return((double)r/m); } ※※※※※※※※※※※※※※※※※※※※※※※※※ 第05套: 给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本 文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将 字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include void fun(char *s, int a, double f) { /**********found**********/ __1__ fp; char str[100], str1[100], str2[100]; int a1; double f1; fp = fopen(\ fprintf(fp, \ /**********found**********/ __2__ ; fp = fopen(\ /**********found**********/ fscanf(__3__,\ fclose(fp); a1 = atoi(str1); f1 = atof(str2); printf(\ } main() { char a[10]=\ double c= 98.76; fun(a,b,c); } 解题思路: 本题是考察先把给定的数据写入到文本文件中,再从该文件读出并转换成相应的整数、浮 点数显示在屏幕上。 第一处:定义文本文件类型变量,所以应填:FILE *。 第二处:关闭刚写入的文件,所以应填:fclose(fp)。 第三处:从文件中读出数据,所以应填:fp。 *************************************************** 给定程序MODI1.C中函数fun的功能是: 对N名学生的学习成绩,按从高到低的 顺序找出前m(m≤10)名学生来, 并将这些学生数据存放在一个动态分配的连续存 储区中, 此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include STU *fun(STU a[], int m) { STU b[N], *t; int i,j,k; /**********found**********/ t=(STU *)calloc(sizeof(STU),m) for(i=0; i /**********found**********/ t(k)=b(j); b[j].s=0; } return t; } outresult(STU a[], FILE *pf) { int i; for(i=0; i fprintf(pf,\ fprintf(pf,\ } main() { STU a[N]={ {\ {\ STU *pOrder; int i, m; printf(\ outresult(a, stdout); printf(\ scanf(\ while( m>10 ) { printf(\ scanf(\ } pOrder=fun(a,m); printf(\ printf(\ for(i=0; i printf(\ free(pOrder); } 解题思路: 第一处: 语句最后缺少分号。 第二处: 应该使用方括号,而不是圆括号。 像此类,使用编译,即可发现。 *************************************************** 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库全国计算机二级C语言题库 - 南开100题(4)在线全文阅读。
相关推荐: