C语言试题(答案带解析).docx
C语言试题(答案带解析)
题目描述:
编写一个C语言程序,实现一个函数`reverseString`,该函数接受一个字符串作为参数,并将该字符串反转。要求不使用额外的字符串或数组,只能通过修改原字符串实现反转。
函数原型:
```c
voidreverseString(charstr);
```
输入:
一个字符串,例如Hello,World!
输出:
反转后的字符串,例如!dlroW,olleH
答案:
```c
includestdio.h
includestring.h
voidreverseString(charstr){
intlen=strlen(str);
chartemp;
for(inti=0;ilen/2;i++){
temp=str[i];
str[i]=str[leni1];
str[leni1]=temp;
}
}
intmain(){
charstr[]=Hello,World!;
printf(Originalstring:%s\n,str);
reverseString(str);
printf(Reversedstring:%s\n,str);
return0;
}
```
解析:
1.函数定义:
`reverseString`函数接受一个`charstr`类型的参数,这意味着它接受一个指向字符数组(字符串)的指针。
2.计算字符串长度:
使用`strlen`函数计算输入字符串的长度。`strlen`是标准库函数,用于计算字符串的长度,不包括终止字符`\0`。
3.交换字符:
通过一个循环,将字符串的前半部分与后半部分对应的字符进行交换。循环的条件是`ilen/2`,这样可以确保不会重复交换,并且不会超出字符串的范围。
4.使用临时变量:
在交换过程中,使用一个临时变量`temp`来存储一个字符,这样可以在不丢失原字符的情况下完成交换。
5.主函数:
在`main`函数中,定义了一个字符串`str`并初始化为`Hello,World!`。然后打印原始字符串,调用`reverseString`函数,并打印反转后的字符串。