c语言简单问题2个

当执行下面程序的时候,输入下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就停止输出了
第二道题 同意一楼的解答
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-08-25
#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
}

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

A fun("abc",3.0);
B t=fun('D',16.5); //正确 char ch代表只有一个字符 就是B
C fun('65',2.8);
D fun(32,32);
第2个回答  2008-08-25
结果是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是完全符合的。
第3个回答  2008-08-25
ANNNAL_S 正确~~

C语言问题 2道
int(x+y)=9 int(x+y)%4=9%4=1 int(x+y)%4\/2=1\/2=0 所以:4.5+1+0=5.5

两个关于C语言的问题。
1、在x=3的状态下进入do循环,第一次运行printf语句,首先使 x -= 2 ,x的内容减掉2,输出x的当前值,所以输出了1。接着进行循环条件判断,先进行 --运算,使x的内容变为0,!0的计算结果为真,循环继续进行。第二次运行printf首先 x-=2 即 x = 0-2,使x的内容变为-2,并被输出。当x...

求解C语言两个问题
1、int x=2,y=2,a;a=(x=x+1)丨丨(y=y+1),括号优先级最高,先计算第一个括号里面的x = x + 1,x = 3,3非0,为逻辑真 ||逻辑或运算符,一边为真,那结果一定为真,所以||右边就不计算了,整个结果为逻辑真赋值给a 最终就是a=1,x=3,y=2(y=y+1被优化掉不计算了)2、i...

两个关于C语言的问题
if(a>c) b=a;a=c;c=b;如果你明白可追问 第二题:首先,在 switch(x) {} 中,case 0与case 1之间没有break;所以执行完case 0后面的内容后还会执行case 1后面的内容,这就是为什么会输出 #,因为执行了default : printf ("#");其次,* 这个是得不到的,除非把switch (y=2)改...

c语言几个小小的问题 高手帮个忙
1. C 逗号在这里不合法 2. 输出2,虽然x是浮点型,但是10和4都是整型,所以先按整型运算,再将结果转换为浮点型 3. (++x, y++)表示这是一个逗号表达式,逗号表达式取最后一个表达式的值,也就是y++的值,所以输出结果是3和3 4. printf("%8.4g\\n",b); 这句输出8756,%g表示按%e或者...

求两个简单的c语言问题
printf("%.2lf %.2lf %.2lf\\n",rmb\/dollarToRMB*100,rmb\/euroToRMB*100,rmb\/yenToRMB*100);return 0;} \/ Sample Input:668.5200 908.0685 7.9852 1500 1500 \/ include <stdio.h> int main(int argc, char *argv[]){ int i;char str[10];gets(str);for(i=0;str[i];i++)...

两个C语言小问题,十分简单
\/\/先算(int)(x+y)=2.5+7%3*7%2\/4 =2.5+1*7%2\/4 =2.5+7%2\/4 =2.5+1\/4 \/\/1\/4是整数除,因此为0 =2.5+0 =2.5 a\/=a+a 相当于 a=a\/(a+a)=12\/24 \/\/12\/24是整数除,因此为0 =0

简单的C语言问题2:ptr[-1]的值为啥是5
而ptr是指针形,那么它占用了4个字节的地址,并且由于int *ptr=(int*)(&a+1);那么它的地址刚好接在a[4]后面,可以这样形容地址 数 起始地址 a[0] 0 a[1] 4 a[2] 8 a[3] 12 a[4] 16 ptr 20 那么这时ptr[0] 将会是一个可能随机或默认的值,而&ptr[-1] ...

初学者请教 两道简单的c语言编程题目
1. 用C语言自己的时间函数 difftime(time_t time1, time_t time0) \/ 86400 这样做得缺点是,这里的time_t类型,只支持到2037年 2. 自己定义函数 楼主用的方法,在实际编程里不常用,变化比较大。下面这个方法是直接计算两个日期到公元元年的天数 然后相减,这个是实际编程时的算法,经过很多程序...

求解C语言两个问题
int x=2,y=2,a;执行语句a=(x=x+1)丨丨(y=y+1),求x,y,a \/\/先执行表达式(x=x+1),执行后,表达式的结果为3,所以不计算或右边的表达式(y=y+1),再把或运算的结果1赋值给a,所以a的值为1 因此,执行后,x的值为3,y的值为2,a的值为1 int x=2,y;执行语句x=(y=3,2+y,...

相似回答
大家正在搜