:C 5.下面程序执行后的输出结果是0。 #include <stdio.h> void fun(char *cint d) (*c=*c+1;d=d+1; printf(%c.%c".*c.d): int mainO (char a='A, b='a; fun(&b,a); printf("%c.%cc"a,b): return O; ,
时间: 2024-03-24 18:39:47 浏览: 68
答案是:程序会报编译错误。主函数中的fun(&b,a);应该是fun(&b,&a);,同时在fun函数中缺少引号,应该是printf("%c.%c",*c,*d);。修改后的程序如下所示:
```c
#include <stdio.h>
void fun(char *c, int *d) {
(*c) = (*c) + 1;
d = d + 1;
printf("%c.%c",*c,*d);
}
int main() {
char a='A', b='a';
fun(&b,&a);
printf("%c.%c",a,b);
return 0;
}
```
执行后的输出结果是:B.bA。
相关问题
#include <stdio.h> #include <string.h> void fun(char *s,int num) { } void main() { char s[10]; gets(s); fun(s,7); printf("%s", s); }
这是一道需要填空的题目,题目思路是将字符串 `s` 中的前 `num` 个字符反转。可以使用两个指针分别指向字符串的首位和末位,依次交换两个指针所指向的字符,直到两个指针相遇为止。具体实现可以这样写:
```c
#include <stdio.h>
#include <string.h>
void fun(char *s, int num) {
int i = 0, j = num - 1;
while (i < j) {
char temp = s[i];
s[i] = s[j];
s[j] = temp;
i++;
j--;
}
}
void main() {
char s[10];
gets(s);
fun(s, 7);
printf("%s", s);
}
```
其中,`i` 和 `j` 分别表示指向字符串的首位和末位的指针,`temp` 是一个临时变量,用于交换两个指针所指向的字符。在循环中,每次将指针向中间移动一位,并交换两个指针所指向的字符,直到两个指针相遇为止。最终输出交换后的字符串即可。
这样开头写:#include <stdio.h> #include <stdlib.h> void PutRes(void); int fun(char *); int fun (char *p)
这段代码的开头定义了两个头文件:stdio.h 和 stdlib.h。这两个头文件分别提供了标准输入输出函数和内存管理函数的声明。
接下来是函数 PutRes 的声明,返回值为空,没有参数。注意,在 C 语言中,如果一个函数没有参数,需要在参数列表中显式地写上 void。
接下来是函数 fun 的声明,它有一个 char 类型的指针参数 p,返回值为 int 类型。这个函数的具体实现并没有给出,只是声明了函数名、参数和返回值类型。
阅读全文