问题 填空题

请补充main函数,该函数的功能是:从字符串str中取出所有数字字符,并分别计数,然后把结果保存在数组b中并输出,把其他字符保存在N[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 <stdio.h> #include <conio.h> main() {int i,b[11];char *str="abl23456789cde090";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指向字符串s仕,通过p自加1来移动指针,访问字符串中的所有字符。

单项选择题
单项选择题