问题 问答题

填空题请补充main函数,该函数的功能是:从字符串str中取出所有数字字符,并分别计数,然后把结果保存在数组b中并输出,把其他字符保存在b[10]中。例如:当str1=“ab123456789cde090”时,结果为:0:2 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:2 other charactor:5注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include#includemain(){ int i,b[11]; char *str="ab123456789cde090"; char *p=str; clrscr(); printf("*** the origial data ***\n"); puts(str); for(i=0;i<11;i++) b[i]=0; while(*p) { switch(【1】) { case ’’0’’:b[0]++;break; case ’’1’’:b[1]++;break; case ’’2’’:b[2]++;break; case ’’3’’:b[3]++;break; case ’’4’’:b[4]++;break; case ’’5’’:b[5]++;break; case ’’6’’:b[6]++;break; case ’’7’’:b[7]++;break; case ’’8’’:b[8]++;break; case ’’9’’:b[9]++;break; 【2】 } 【3】 } printf("****** the result ********\n"); for(i=0;i<10;i++) printf("\n%d:%d",i,b[i]); printf("\nother charactor:%d",b[i]);}

答案

参考答案:【1】*p 【2】default: b[10]++; 【3】p++;

解析:填空1:根据switch语句中case后面的常量表达式,可以看出,switch后面括号中的表达式应该是字符串str中的各字符,而指针p就是指向字符串str。填空2:和各个case后面的常量表达式不匹配的都属于其他字符,保存在b[10]中。填空3:指针p指向字符串str,通过p自加1来移动指针,访问字符串中的所有字符。

选择题
问答题