c语言基础问题?

作者&投稿:中叔刚 (若有异议请与网页底部的电邮联系)
C语言基础题~

**a=10,x=18.18**
用scanf函数从键盘获取数据时,键盘输入的内容只替换引号内%d %f 等等其他的都不动,当然
是不用输入的,它只是起换行的作用。要注意空格数哦,空格也是不能出错的,


亲测

%2d读2位 %*2d 空读(不计) %ld读给y一个长整形
最后结果是x=12,y=567
所以x+y=579

字符串的长度与字符串在内存中所占的空间是不一样的。
C语言规定,字符串在内存中存储时,以'\0'作为结束标志。字符串的长度不包括'\0',所以字符串A的长度是14。15是该字符串在内存中所占的字节数,也就是说,必须是15个字节才能存储这个字符串。
补充一点:你用sizeof()测试A,结果是15(sizeof测的是内存空间大小);用strlen()测试A结果是14(strlen测的是字符串的长度).

哦,字符串长度应该是14,只是其所占用的内存空间为15.字符串长度是指字符串本身(包涵当中的空格或是其它符号)的长度,这是我的理解。我在网上找了下,这是别人的说法:

C字符串长度定义规范(转载自金庆的专栏)
因为总是见到C字符串长度相关的错误, 所有定个规范出来, 有利于减少错误.
关键在于C字符串有个结尾\0, 处理时需要注意.
定义字符串长度有两种方式, 一种是用字符串的大小, 一种是字符串的长度.
字符串的大小即内存空间的大小, 而串长度加1才是所需空间.

如果你用SIZEOF求长度,那么得到值是15,如果你是strlen求长度,得到值是14,sizeof 计算的是占用内存的空间要计算'\0',strlen求的字符串的长度,忽略不记'\0'

你用什么函数或者功能检测它的长度的?
我用的是Dev C++中的C编译器. sizeof 是15,而strlen是14

原因是sizeof 计算所有字符个数,而strlen已经假定'\0'是字符串以外的结束符号.
#include <stdio.h>
#include <stdlib.h>
main()
{
char A[]={"I am a student"};
printf("%d,%d",sizeof(A),strlen(A));
system("pause");
}

你这开始定义数组时就有错误!定义时[]中一定要写个数字,不然会出错!你那问题是14个普通字符再加一个转意字符\0工15个字节!数组中不能放满就以\0来填充,这点要记住!


关于C语言++用法的一个基础问题
c[s[i]]++就是c[s[i]]加1。s[i]是小于5的数,作为c[]的一个下标。自增运算符 ++ 使操作数的值加1,其操作数必须为可变左值(可简单地理解为变量)。问题在于:++ 可以置于操作数前面,也可以放在后面,如:++i;i++ ;++i表示,i自增1后再参与其它运算;而i++ 则是i参与运算后,i...

C语言程序设计中几个很基础的问题,求大神帮忙解答,感激不尽~~_百度...
AF 1%2为1除2的余数为1 int m=10\/11.0=0 10\/11.0应该为小数 然后转换成了int型为小数的整数部分及0 m==8 此时10==8为假则为0 2\/3为0 两int型相除 结果用int存储 ~m&m为0 因为自身与自身的反做交的话肯定是0 F ~(m|m)=~m=-11 此中的为二进制计算 G !m 为0 ...

计算机语言最基本的问题是什么?需要哪些思维?
计算机之所以能够比人类大脑更加快速准确地“计算”,正是在计算机克服了人类自然语言上述“三位一体性”的“缺陷”。计算机能够快速、准确地“计算”的最基本的原因,就是硬件与软件的分离、程序与数据的分离。这实际上也就是将我们人类自然语言中的思想与方法、方法与对象、思想与对象实行了分离。由于这些...

C语言的一个基础问题:printf("%c,'\\41'); 为什么输出的是 "!" ,感叹 ...
'\\'是转义字符,41是ASCII编码号。所有的ASCII码都可以用“\\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\\"来表示常见的那些不能显示的ASCII字符,如\\0,\\t,\\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。参考资料:http:\/\/baike.baidu.com\/view\/73...

汇编语言-->基础小问题
1.使AL中的高4位取反,低4位不变,执行什么指令?mov cl,4 shl ax,cl not ah shr ax,cl 补充回答:虽然我的答案也能实现要求的功能,但显繁琐和笨拙。取现1楼和2楼的答案:xor al,0f0h 当时没想到,汗!2.隐含指示堆栈段中某个数据偏移地址的寄存器是:BP,指示栈顶地址的寄存器是:SP。3...

c语言循环基础问题,求解析for(j=0;j<3;j++)这个小循环?
先看里循环:for (j = 0; j < 3; j++) k++; \/\/ k初值为0 第一次循环:j=0,满足j<3,执行k++,k变为1 第二次循环:j++变为1,满足j<3,执行k++,k变为2 第三次循环:j++变为2,满足j<3,执行k++,k变为3 最后j++变为3,不满足j<3,循环结束,此时j=3,k=3 接着...

语言基础知识
语言是人类最重要的交际工具,是人们进行沟通交流的主要表达方式。那么你对语言了解多少呢?以下是由我整理关于语言基础知识的内容,希望大家喜欢!语言表达方式 语言就广义而言,是一套共同采用的沟通符号、表达方式与处理规则,符号会以视觉、声音或者触觉方式来传递。严格来说,语言是指人类沟通所使用的语言-...

c语言基础数组问题
include <stdio.h> void main(){ int i;float sum=0.0,average;\/*因为涉及到除法,如果定义为整形,在除的过程系统会自动取整*\/ \/*为了保存小数点,应该定义为浮点型*\/ int a[10]={32,47,64,18,95,14,90,70,60,37};printf("order:\\tvalue\\n");\/*输出数组*\/ for(i=0;i<10;i...

一个C语言基础知识问题
include<stdio.h> \/\/加上这行!include<string.h> void main() \/\/加上void比较好。{ char b[]="\\x34\\034"; \/\/int改为char。printf("%d",strlen(b));}

C语言的问题 好像很基础 但是我不懂 求指教!!
break;U8FLAG可以等于1,因为unsigned char 表示数的范围是0到255,当U8FLAG=255时,在做++运算,U8FLAG就等于0了,再做一次++就等于1了,不过在上述程序中不可能实现U8FLAG=1呀!当U8FLAG=0时,while条件不符合,就 不进入循环了。除非在其他地方对U8FLAG还有什么操作。或者说代码有问题 ...

平乡县13111166315: 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的值.

平乡县13111166315: C语言 基本问题 -
通哈艾可: 1.typedef能通过已有类型定义新的类型.它的语法形式和变量声明一致(区别仅在于显式前置typedef关键字和语义),声明后的类型可以用来直接声明该类型的变量.typedef struct{ char dm[5];int sl; }PRO; PRO sell[200]; PRO cell; 这里声明了...

平乡县13111166315: 最基础的C语言问题 -
通哈艾可: 0'='0自然只能执行一次 第三题 判断语句是有错误的 应该是 if(c<='9'&&c&gt第一题 你的问题我没太看明白 希望把原来问题的代码附上 while(a)系统在编译的时候 是看a的值 是等于 1 或者是什么别的 第二题 按照你的代码 输出的结果 是2 9 程序 进...

平乡县13111166315: 关于C语言的一些基础问题 -
通哈艾可: 以下是我的理解,不知道是这个意思不?如果不是的话,可不可以再说明白一点或者举个例子也行~#include <stdio.h> void main(){ char c; printf("1.睡觉\n"); printf("2.游戏\n"); printf("3.骂人\n"); scanf("%c",&c); system("cls"); //printf("\...

平乡县13111166315: C语言最基础的问题
通哈艾可: char a[256]; //定义一个字符数组 main函数是int类型,最后必须返回一个整数,返回的整数是给系统的,不影响本程序的执行. return 0; //表示程序正常终止 return X; //X为非零,表示程序非正常终止. printf(a)或printf("%s",a)都行

平乡县13111166315: C语言程序设计基础的一些小问题
通哈艾可: 1.算法过程可以是无数据输入是说可以不需要进行输入操作. 2.复数解是比较全面的,如果你还没学过复数,你就可以认为无解(其实确切的说是无实数解),如果要了解,这个是数学上的问题,不是编程的问题了. 3.Y表示yes,条件成立,N表示no,表示条件不成立 4.素数又叫质数,是不能被除了1和它本身外别的数整除的数.如7,除了1和7本身,就不能被别的数整除了

平乡县13111166315: 有关C语言的简单基础问题
通哈艾可: 这样变成了输出scanf()函数的返回值,但是,scanf不是返回读的值,也不是返回成功与否,而是返回读了多少个值.你可以实验下,如果换成下面的话,输出2:#include<stdio.h> main(void) {int a;printf("%d",scanf("%d%d",&a,&a)); }

平乡县13111166315: C语言编程基础问题
通哈艾可: 如果只是简单的计算字符数的话就简单了 #include<stdio.h> #include<string.h> void main() {char str[100];printf("请输入一个字符串:\n");gets(str);printf("刚才输入的字符串字符数目为:%d\n",strlen(str)); }

平乡县13111166315: C语言基础问题 -
通哈艾可: 我想可以用一个标志位,比如可以定义一个int型变量sign,赋初值为0.如果找到相同信息,就置为1.否则什么都不做.这样到for循环结束后,可以判断sign的值,如果为0,就说明没有找到信息,可以用printf语句输出.把修改过的search()...

平乡县13111166315: 请教一个C语言很基础的问题?
通哈艾可: 简单的说,C语言源代码文件(.c),经过编译,生成目标文件(.obj),然后经过链接,也就是和其他目标文件(如果有的话)和所包含的头文件链接,生成可执行文件(.exe) EXE程序文件,上面的.EXE文件打开后马上又没有了. 这个,只要在您的源代码文件(.c)执行结束之前的地方,加一句 system("pause") 或者 getchar() 就可以暂停,以便观察结果..或者也可以用 getch(),这个需要引用头文件 conio.h

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