c语言问题,求详细解释,在线等
【程序说明】输入一行字符,统计并输出其中数字字符、英文字符和其它字符的个数。要求定义并调用函数count(s,digit,letter,other)分类统计字符串s中数字...
【程序说明】 输入一行字符,统计并输出其中数字字符、英文字符和其它字符的个 数。要求定义并调用函数 count(s,digit,letter,other)分类统计字符串 s 中数字 字符、英文字符和其它字符的个数,函数形参 s 是字符指针,形参 digit,letter,other 的类型是整型指针,函数类型是 void.。 运行示例: Enter charaters:f(x,y)=5x+2y-6 Digit=3 Letter=5 Other=6 【程序】 #include<stdio.h>void count(char *s,int *digit,int *letter,int *other) { (9) while( (10) ) {if(*s>='0'&&*s<='9') (*digit)++; else if(*s>='a'&&*s<='z'||*s>='A'&&*s<='Z') (*letter)++; else (*other)++; s++; }
} main() {int i=0,digit,letter,other; char ch,str[80]; printf("Enter charaters:"); ch=getchar(); while( (11) ) {str[i]=ch; i++; ch=getchar(); } str[i]='\0'; ; (12) printf("Digit=%d Letter=%d Other=%d\n",digit,letter,other); } 【供选择的答案】 (9)A.int digit=0,letter=0,other=0; B.int *digit=0,*letter=0,*other=0; C.digit=letter=other=0; D.*digit=*letter=*other=0; // (10)A.*s++!='\0' B.*s++!='\n' C.*s!='\0' D.*s!='\n' // (11)A.ch!= '\0' B.ch!= '\n' C.ch== '\0' D.ch== '\n' // (12)A.count(str,&digit,&letter,&other) B.count(&str,&digit,&letter,&other) C.count(*str,digit,letter,other) D.count(*str,*digit,*letter,*other) 展开
} main() {int i=0,digit,letter,other; char ch,str[80]; printf("Enter charaters:"); ch=getchar(); while( (11) ) {str[i]=ch; i++; ch=getchar(); } str[i]='\0'; ; (12) printf("Digit=%d Letter=%d Other=%d\n",digit,letter,other); } 【供选择的答案】 (9)A.int digit=0,letter=0,other=0; B.int *digit=0,*letter=0,*other=0; C.digit=letter=other=0; D.*digit=*letter=*other=0; // (10)A.*s++!='\0' B.*s++!='\n' C.*s!='\0' D.*s!='\n' // (11)A.ch!= '\0' B.ch!= '\n' C.ch== '\0' D.ch== '\n' // (12)A.count(str,&digit,&letter,&other) B.count(&str,&digit,&letter,&other) C.count(*str,digit,letter,other) D.count(*str,*digit,*letter,*other) 展开
3个回答
展开全部
(9)D // 首先要将3个变量置0,AB不选,因为形参表中已经声明了,C不选
// 因为digit=letter=other=0,那么指向的地址改变,不再指向传进来的参数了。
(10)C // 因为下面有s++,所以只能选C和D,又因为str[i]='\0',所以选C。
(11)B // Enter charaters:f(x,y)=5x+2y-6 后面没接0,所以以\n结束输入
(12)A // str是数组名,代表数组首地址,所以不用加" &" ,*str 表示取str[0]的值。所以选A
// 因为digit=letter=other=0,那么指向的地址改变,不再指向传进来的参数了。
(10)C // 因为下面有s++,所以只能选C和D,又因为str[i]='\0',所以选C。
(11)B // Enter charaters:f(x,y)=5x+2y-6 后面没接0,所以以\n结束输入
(12)A // str是数组名,代表数组首地址,所以不用加" &" ,*str 表示取str[0]的值。所以选A
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询