C语言的题目!高手请进来帮忙!
1.以下函数fun的功能是将一个字符串的内容颠倒过来,请填空.#include<string.h>voidfun(charstr[]){inti,j,k;for(i=0,...
1.以下函数fun的功能是将一个字符串的内容颠倒过来,请填空.
#include <string.h>
void fun(char str[])
{
int i,j,k;
for(i=0,j=____;i<j;i++,____)
{k=str[i];str[i]=str[j];str[j]=k;
}
}
答案是strlen(str)-1,j--
为什么?详细点
2.对以下的程序,从第一列开始输入数据:2473回车,程序的输出结果是____
#include<stdio.h>
void main()
{
while(c=getchar())!=`\n`)
{
switch(c-`2`)
{
case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default :putchar(c+2);break;
}
}
printf("\n");
}
答案是668977
为什么?详细点
3.当输入为adf123fgf456kfg#时,下面程序的输出结果为:
#include<stdio.h>
void main()
{
char c;
int m=0,n=0;
while((c=getchar())!=`#`)
{
switch(c>=`a`&&c<=`z`)
{
case 1:m++;break;
case 2:n++;break;
}
}
printf("%d,%d\n",m,n);
}
答案是9,6
为什么?详细点
谢谢各位大侠了!!!! 展开
#include <string.h>
void fun(char str[])
{
int i,j,k;
for(i=0,j=____;i<j;i++,____)
{k=str[i];str[i]=str[j];str[j]=k;
}
}
答案是strlen(str)-1,j--
为什么?详细点
2.对以下的程序,从第一列开始输入数据:2473回车,程序的输出结果是____
#include<stdio.h>
void main()
{
while(c=getchar())!=`\n`)
{
switch(c-`2`)
{
case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default :putchar(c+2);break;
}
}
printf("\n");
}
答案是668977
为什么?详细点
3.当输入为adf123fgf456kfg#时,下面程序的输出结果为:
#include<stdio.h>
void main()
{
char c;
int m=0,n=0;
while((c=getchar())!=`#`)
{
switch(c>=`a`&&c<=`z`)
{
case 1:m++;break;
case 2:n++;break;
}
}
printf("%d,%d\n",m,n);
}
答案是9,6
为什么?详细点
谢谢各位大侠了!!!! 展开
2个回答
展开全部
#include <string.h>
void fun(char str[])
{
int i,j,k;
for(i=0,j=____;i<j;i++,____)
{k=str[i];str[i]=str[j];str[j]=k; //从第一个到最后一下颠倒
}
}
strlen(str)-1:解释:strlen(str)字符串的长度。 -1为数组的最大下标。数组是从0开始的
J--:解释:循环后减一,即从第一个到最后一下颠倒。
/***********************************************************/
#include<stdio.h>
void main()
{
while(c=getchar())!=`\n`)
{
switch(c-`2`)
{
case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default :putchar(c+2);break;
}
}
printf("\n");
}
说明:当=2时,C=2,C-2=0 执行以下两句。
case 0: //因为没break所以流程到下面
case 1:putchar(c+4); //break为退出选择。
//以上输出为6
当=4时,C=4,C-2=2,
case 2:putchar(c+4);break; //也为6
当=7时,C=7,C-2=5,执行
default :putchar(c+2);break;//default为以上都没时选择这句。
//为9
当=3时,C=3,C-2=1,执行
case 1:putchar(c+4);
case 2:putchar(c+4);break; //为77
//所以答案是668977
/**************************************************/
#include<stdio.h>
void main()
{
char c;
int m=0,n=0;
while((c=getchar())!=`#`) //输入赋给c
{
switch(c>=`a`&&c<=`z`)
{
case 1:m++;break;
case 2:n++;break;
}
}
printf("%d,%d\n",m,n);
}
//我想你这道题出错了吧。c>=`a`&&c<=`z`因为此语句不管怎样不可能为2.
//只有1或0
//所以我想应将case 2:n++;break; 改为case 0:n++;break;
//解释:c>=`a`&&c<=`z`此条件为a到z之间的小写。ASCII比较。
//所以m=9,n=6(其余数字)
void fun(char str[])
{
int i,j,k;
for(i=0,j=____;i<j;i++,____)
{k=str[i];str[i]=str[j];str[j]=k; //从第一个到最后一下颠倒
}
}
strlen(str)-1:解释:strlen(str)字符串的长度。 -1为数组的最大下标。数组是从0开始的
J--:解释:循环后减一,即从第一个到最后一下颠倒。
/***********************************************************/
#include<stdio.h>
void main()
{
while(c=getchar())!=`\n`)
{
switch(c-`2`)
{
case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default :putchar(c+2);break;
}
}
printf("\n");
}
说明:当=2时,C=2,C-2=0 执行以下两句。
case 0: //因为没break所以流程到下面
case 1:putchar(c+4); //break为退出选择。
//以上输出为6
当=4时,C=4,C-2=2,
case 2:putchar(c+4);break; //也为6
当=7时,C=7,C-2=5,执行
default :putchar(c+2);break;//default为以上都没时选择这句。
//为9
当=3时,C=3,C-2=1,执行
case 1:putchar(c+4);
case 2:putchar(c+4);break; //为77
//所以答案是668977
/**************************************************/
#include<stdio.h>
void main()
{
char c;
int m=0,n=0;
while((c=getchar())!=`#`) //输入赋给c
{
switch(c>=`a`&&c<=`z`)
{
case 1:m++;break;
case 2:n++;break;
}
}
printf("%d,%d\n",m,n);
}
//我想你这道题出错了吧。c>=`a`&&c<=`z`因为此语句不管怎样不可能为2.
//只有1或0
//所以我想应将case 2:n++;break; 改为case 0:n++;break;
//解释:c>=`a`&&c<=`z`此条件为a到z之间的小写。ASCII比较。
//所以m=9,n=6(其余数字)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询