计算机二级 C语言 一道题求解释

2006年秋浙江省高等学校计算机等级考试试卷(二级C)

#include <stdio.h>
void main()
{char c, s[80]="Happy New Year";
int i; void f(char *s,char c);
c=getchar();
f(s,c);
puts(s);
}
void f(char *s,char c)
{ int k=0,j=0;
while(s[k]!='0'{
if(s[k]!=c){
s[j]=s[k];
j++;
}
k++;
}
s[j]=‘\0’;
}

1.输入字母a,输出?
1.输入字母e,输出?
1.输入字母p,输出?
1.输入字母b,输出?
答案我有的,主要是看不懂,求讲解!!!跪谢!!!

这个简单啊
只需要了解函数void f(char *s,char c)的作用是什么你就清晰了。
#include <stdio.h>
void main()
{char c, s[80]="Happy New Year"; //s中储存了一串字符串
int i;
void f(char *s,char c);//声明函数f
c=getchar();//输入c
f(s,c);//调用f函数,并将s,c传参到函数
puts(s);//输出s
}
void f(char *s,char c)//函数f定义部分
{ int k=0,j=0;
while(s[k]!='0'){ //循环执行,直到s[k]的的字符为'0',s[k]的字符为'0'时表示字符串结尾了
if(s[k]!=c){ //判断s[k]是否等同于你输入的字符c
s[j]=s[k]; /*不等同的情况下将s[k]的值赋给s[j](这里的意思就是将字符串s的字符串重新排列)*/
j++; //j自增1
}
//等同的情况下不做任何动作,即忽略等同于输入的字符的字符,也就是去掉该字符
k++; //k自增1
}
s[j]='\0'; //循环结束后在新的s字符串后面加上结束符
}

f函数的功能就是将s字符串中所包含你输入的字符去掉再重新排列,所以答案是:
1,输入a:hppy new yer;
2,输入e:happy nw yar;
3,输入p:hay new year;
4,输入b:happy new year
还不懂的话可以追问~
温馨提示:内容为网友见解,仅供参考
无其他回答

计算机二级C语言程序的一个题目,不知道答案怎么来的。求解析
比如 int i=0;就是定义一个变量,并赋予初值0 一般是为了防止程序中误操作导致直接使用未赋值的变量进行计算 变量变量,之所以叫变量就是他的值是可以改变的,所以即使有初值也可以用赋值的手段来改变变量的值 这道题的话,因为scanf中要求的格式是%d,也就是整形,所以非整形的数字就被忽略了,所以...

计算机二级C语言程序的一个题目,不知道答案怎么来的。求解析
最后,int 类型的变量,是整数型,12.3是带小数点的,如果把12.3赋值的任何int类型的变量,那么编译器会自动四舍五入,变成12了,scanf()是个C语言自带的输入函数,这个函数的参数有两个比如上面的,scanf("%d",&k),这个%d是指明接收的数是int类型,如果是小数,那就是%f,&k的意思是将输入的...

计算机二级c语言实参形参一道题,跪求大神解答
这个函数是void型,在本题中实参传递给形参后,形参改变后的值无法传递回去,这一点回去翻下书,如果要改变值得话需要通过指针,所以对于结构体a来说,它里面的值依旧没有改变,所以答案选B

国家计算机二级C语言,这题怎么回事啊?
s中\\0是字符串结束符,在数值上就是0 所以,循环中遇到\\0就结束了,\\0前面只有0 1 2是数字,所以统计结果为3

计算机二级c语言问题,麻烦讲一下过程,麻烦不懂的千万不要回答,你回答会...
这种题你要弄清楚i++ 和 ++i 还有就是{}之间的变量 \/\/你的for执行2次,分别是0\/1,因此你的f里面都是计算elseelse{int a = 7; t += a++;}\/\/这里出来的t = 7;而计算后的a = 8;\/\/在到return时,return t += a++;\/\/注意此时的a为f里面的a,而不是else里面的a,因此这里的a...

计算机二级C语言题目,回答并解释!谢谢
第二步 number=1*12+0=12 第18题 程序输入1a0 第一步 number=0*12+1=1 因为 a 不在 A 和 Z范围内,所以跳出循环,此时number=1 第19题,程序修改第16行 程序输入a*0 因为a和*都不是 0到9,A 和 B 范围内,所以不能进行计算 number 值 所以 number=0*12+0=0 第20题,程序删除...

计算机二级c语言,我这最后一题能得几分?
因为这是递归调用,这里的返回值是很重要的,如果人工阅卷,估计会酌情给分,但如果是机器阅卷,给的分数应该会很少。空格无所谓的

计算机二级c语言考试,有代码不明白,请帮忙解析下
第一处--是让t指向最后一个字符,因为之前的循环让t指向字符串结束标记了 第二处是当字符串不结束,同时n个*,这个程序你把n想成2,可以画出执行过程,就容易理解了

计算机考试二级C机考最后一题怎么运行?
我见过c语言二级考试,一般后面的程序题是文件操作。这种程序题,同样需要编译运行,编译连接后,只是运行后出来的黑框框没有任何你所要的显示,是因为它都在文件中操作了,但是这个运行却是必不可少至关重要,你只要记得每次必点运行,出来一个黑框框在提交就应该是可以了。

计算机二级C语言题目,求余。
在不同的编程语言中有所不同,例如VB中是Mod,2 Mod 5 =2。C语言中是 \\, 21 \\ 5 =1. Java中是 %,60%7 = 4。)还有对一个很大的整数取个位十位百位……数字,例如常数m=23789 个位数a1= m % 10,百位数a2= m %100,千位数a3= m % 1000,万位数a4= m %10000.

相似回答