c语言简单问题2个

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:54:40
当执行下面程序的时候,输入下ABC,则输出结果是

#include "stdio.h"
#include "string.h"
main()
{
char ss[10]="12345";
gets(ss);
strcat(ss,"6789");
printf("%s\n",ss);
}

设函数fun的定义形式为
void fun(char ch,float x) {……}
则以下对函数fun的调用语句中,正确的是

A fun("abc",3.0);
B t=fun('D',16.5);
C fun('65',2.8);
D fun(32,32);

我是小白 说过程 为什么是那个
为什么第2道 答案书上给D啊?

第一道题:这道题你只要理解数组的存储就可以轻松解答了
char ss[10]="12345"; ss[10]={12345\0\0\0\0\0},因为是字符串所以没有赋值的就是\0。
gets(ss); 这句话就是输入ABC到数组中,此时ss[10]={ABC\05\0\0\0\0\0},ABC之后的\0是字符串结束的标志,必须有的,注意和后面的5分开
strcat(ss,"6789"); 这个strcat函数就是将两个字符串连接起来,连接点是从第一个\0开始的,所以ss[10]={ABC6789\0\0\0\0}.
printf("%s\n",ss);所以输出是ABC6789,因为字符串到结束标志\0就停止输出了
第二道题 同意一楼的解答

结果是ABC6789。
gets(ss)后就是把“12345”改写成了新输入的字符串。也就是“ABC”。
而strcat(ss,"6789")是把字符串“6789”连接在ss后。即ABC后。所以答案是ABC6789。

C。从定义void fun(char ch,float x)可以看出。这是个没有返回值(t=...B错误)的函数。它的参数是一个字符(“abc”...A错误。32...D错误)和一个实型。只有C是完全符合的。

#include "stdio.h"
#include "string.h"
main()
{
char ss[10]="12345";
gets(ss); //输入ABC 替换掉123
strcat(ss,"6789"); //把6789连接在ABC45后面并加上\0
printf("%s\n",ss); //打印出来ABC456789
}