一个C语言的初级问题?

作者&投稿:锁荆 (若有异议请与网页底部的电邮联系)
C语言一个初级问题~

int main() {int i = 0,j=0;char str1[50], str2[80];cout << "输入字符串1: " << endl;cin.getline(str1, 50);cout << "输入字符串2: " << endl;cin.getline(str2, 50);//检查str1的字符长度while (str1[i]!= '\0') {i++;}//cout << i << endl;//在str1后添加字符str2//cout << str2[50] << endl;//这个打印没什么意义,而且越界。 //cout << j << endl;while (str2[j] != '\0') {//这里应该是\0, 你打成\o了。 这个是最大的问题。 str1[i++] = str2[j++];}//加一个结束符str1[i] = '\0';cout << str1 << endl;//输出直接用str1system("pause");return 0;}输入要确保两个字符串加起来不到50个字节。

把这行 for (i = 1; m = a[0], i < 10; i++) {
改成:for (i = 1, m = a[0]; i < 10; i++) {
你把m = a[0]放到了第一个分号后面去了,自然是错误的,每次循环都会把m赋值成a[0]。

递归调用,
mystery( a, b - 1 )也是调用int mystery( int a, int b )这个函数,
可以这样理解:

mystery(5,3) = 5 + mystery(5,2) = 5 + 5 + mystery(5,1) = 5 + 5 + 5 = 15;

所以这个函数返回a *b, 前提是b大于等于1,否则会陷入死循环!因反复递归,堆栈会使用完而程序崩溃。

这个是递归函数,比如你输入a = 2,b = 3

第一次 return 2+mysery(2,2)
第二次 return 2+{2 + mysery(2,1)}
第三次 b=1 return a=2

所以这个函数的作用是把 a累加b次

“return a + mystery( a, b - 1 ); // mystery( a, b - 1 );这个值应该是什么啊?”

没明白你的意思,什么是“ // mystery( a, b - 1 );这个值应该是什么啊?”你的递归调用没有错,不知道你想实现什么功能?


c语言初级问题
include<stdio.h> void main(){ int y=3,x=3,z=1;printf("%d %d\\n",(++x,y++),z+2);\/\/(++x,y++)为逗号表达式,输出最后一个表达式的结果 \/\/y初始化为3,但是y++是后加加,所以是先输出3,y再加1 \/\/第二个3是z+2的结果 \/\/可以通过更改y的值,来求证一下,也可以再添加一条...

一个简单的c语言问题
include <stdio.h>#include <string.h>int main(int argc, const char *argv[]){ char password[32]; \/\/存放设定好的密码 char usrpw[32]; \/\/存放接收你输入的密码 int try_times = 3; \/\/设定允许输入的错误次数 printf("please set your password:");\/\/设定密码 ...

请教一个很简单的c语言问题,我是初学者
仅分析第二条语句printf("a%cb%c\\bc%c\\tabc\\n",c1,c2,c3); } 其中a输出a-》“a”,c输出c1也就是a-》“aa”,b输出b-》“aab”,c输出c2也就是b-》“aabb”,\\b输出退格,把上一个b擦掉了-》“aab”,c输出c-》“aabc”,c输出c3->"aabcc",\\t输出TAB符号,前进八个空格-...

几个关于C语言的问题
1. c是char类型,表示一个字符。2. sizeof是操作符,不是函数,sizeof(float)求的是一个float类型变量在内存中占用多少字节,它是整型值。3. abs是求int类型的绝对值,fabs是求double类型的绝对值,表达式的结果是浮点数,此处应该选用fabs;求x的3次方,可以是x*x*x,或者使用库函数pow(x, 3)...

C语言 一个关于switch循环语言的初级问题
& & & i = 1 ,i%5 是1 ,进入case 1 分支, 输出 # 然后break跳出switch i = 2 , i%5 是2,进入case 2分支,输出& i= 3 ,i%5是3 ,没有case 3 进入default分支,换行,没有break顺序执行后面的case 2 输出 & i=4, ,i%5是4,和i=3一样,也进入default分支 换行,...

一个简单的C语言问题
&a[0]++是错的。既然a是数组,那么数组名a就是它的首地址,所以说a+1即是第二个元素的地址(也就是a[1]的地址)。对地址+1,会自动加上地址指向内存的大小,比如现在a指的是int,然后a+1,实际的结果是地址值加上了int占内存大小2 而&a[0]++根本就是错的语句,&a[0]得到的是地址值,...

一个很简单的C语言问题
2. 错误 1.c 13: 未定义的符号'value'在 main 函数中.3. scanf ("%f,&number"); 改语句中的引号标错,改为 scanf ("%f",&number);4.用double定义变量时一定要在输入中限定他的类型lf%。5.还有你程序里面没有子程序为什么要加一个return 0;呢?这样就没有返回值啦!你只有一个主...

求高手帮我分析几个C语言的问题~
include<math.h>表示数学类型函数的头文件,如果用到sin()之类的数学函数则要写这一行 2、不是,那个是for的格式,不能改for( ; ;)第一个;前表示初值,第二个表示判断条件,后面的表示为下一次循环做准备 3、嗯 也可以用a=a+1 4、{e=10*a+5*b+2*c+d;if(e==100) s++;}表示将一...

C语言的一个初级问题
pa,pb是指针,pa=pb是pa指向b的地址。*pa=*pb是将a变量赋b变量的值,即22.就此题*pa的值都是一样的,但pa的意义却不同,前者指向 b的地址,后者指向a的地址

c语言非常基本问题的疑惑。。一个初学者的烦恼!
看了你的问题, 主要在于指针方面,毕竟指针是C的精华, 是要下点功夫才能搞懂!1. 3x^n\/(2x-1) 不能写成 3*pow(x,n)*(1\/(2x-1)) 因为括号的优先级比*高,它会先算1\/(2x-1), 1\/(2x-1)要么=0, 要么=1; 所以应写成(3*pow(x,n))\/(2x-1)2. 转义字符也占占空间,但只占一个...

丹凤县18786521950: C语言编程初学问题 -
镡皆力雷: (1)程序输出:c1=a;c2=b;c1=97;c2=98;因为:你用%c,就是你要输出一个字符,97的ascii码就是小写字母a,98为b; (2)如果你把c1=197,c2=198,应该会提示隐式转换吧,如果定义char c1,c2,默认为有符号的char型,取值范围为-128~127,因此输出的是197-256=-59,198-256=-58,貌似用%c一般机器输出的是?吧,一般的就输出0-127能输出字符吧. (3)换成int和(2)的%c一样,%d就是int的值.

丹凤县18786521950: c语言初等问题 -
镡皆力雷: x=x-2&&(y=y+1);------ x= (x-2)&&(y=y+1); x-2为0,不执行y=y+1 x-=2&&(y+=1);-------- x-= (2)&&(y+=1); 2不为0,执行y+=1 x=x-2;和x-=2;等价,也就是说两条语句等价,但两个表达式不是哪都能互换 还有问题根源如楼上所说,赋值“=”和复合运算“-=”的优先级不一样

丹凤县18786521950: 关于C语言的初级问题
镡皆力雷: 无符号类型和 有符号类型的区别就是取值范围和正负问题. 取值范围:对于同一类型,如果所占的字节为n的话,它的无符号类型的范围就是0~(2^8n)-1;有符号类型的范围就是-(2^8n)/2-1~(2^8n)/2; 正负问题:从上面的取值可以看出,无符号类型只有正数,有符号类型包括正负数; 具体在什么时候用,要看你的程序设计了..

丹凤县18786521950: C语言初级问题 -
镡皆力雷: 前面那个就是一个数据类型的问题 如果你写成x=5.0/2.0; 或者float i,j; i=5; j=2; x=i/j; 看看结果吧,其他的不用我说了 后面那个,其他的不说,先说你的scanf("%f%f%c",&x,&y,&o)吧,X,Y都是数字,中间没一个","或空格,或其他的分隔符,你怎么判断你的输入啊?我改成scanf("%f,%f,%c",&x,&y,&o)后在机子上跑了,完全没问题!

丹凤县18786521950: C语言的一些初级问题.
镡皆力雷: 加换行符代表按enter键结束输入;不加也可以; 那个表达式肯定是错误的,不能那么写; &这个是取地址符,就是把数存在那个内存里.

丹凤县18786521950: 几个关于c语言的初级题目 -
镡皆力雷: 你的程序有的有问题,我都修改过了,你自己看下. 1. 当程序执行i=2和i=4的时候,程...

丹凤县18786521950: C语言问题 初级
镡皆力雷: 首先在C盘放一个mp3声音文件,在打印输出aaa的同时,播放这段mp3声音文件.就可以看到输出aaaa的同时播放声音了. #include <stdio.h>#include <windows.h>#pragma comment(lib, "winmm.lib") int main(){ mciSendString("open \"C:\\aaa.mp3\" alias file", NULL, 0, NULL); mciSendString("play file", NULL, 0, NULL); printf("aaa"); getchar();}

丹凤县18786521950: 一个C语言的基础问题 -
镡皆力雷: 解答:1、 c语言是以分号做为语句的结束.for循环是一个语句所以就必须得有分号,不然编译无法通过,出现语法错误.for语句是循环条件和循环体的组合.你这里给出了循环条件,但是没有循环体.循环体为空.然后以分号表示这个for语句...

丹凤县18786521950: 初级C语言问题
镡皆力雷: printf("%s",a); 输出ABCD printf("%s",*a); 输出类型不匹配的错误信息. printf("%c",*a); 输出A(字符串的第一个字符A) printf("%d",*a); 输出65(字母A的ASCII码)

丹凤县18786521950: c语言初级问题 -
镡皆力雷: #include void main() { int n[3][3]={0}; int k=0,i,j,num; while(k%2==0) { scanf("%d", } i=0;j=k/2; n[i][j]=1; for(num=2;num<=k*k;num++) { if((((i-1)<...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网