本文目录一览:
- 1、C语言程序如下输出为什么是39???
- 2、C语言中输入39要输出12,就是3加9怎么弄
- 3、C语言程序设计里面的39个关键字,哪些一般不使用,也就是一般考试不会考呢?
- 4、C语言 39. 填空题 以下程序的运行结果是________。
- 5、C语言,运行为什么是39?
C语言程序如下输出为什么是39???
short类型是2个字节,但存0x39时,高字节是0,低字节存0x39,而c[0]大小是一个字节,刚好对应0x39所以输出就是39了
同理c[1] 输出是0, c[2]输出是38......
数组的第0个元素在低位,我觉得再加上“int数组元素高位在前”会好理解点,其实就是告诉你c[0]对应的是39,而不是0
C语言中输入39要输出12,就是3加9怎么弄
参考代码:
#includestdio.h
int fun(int n){
int sum=0;
while(n){
sum+=n%10;
n/=10;
}
return sum;
}
int main(){
int n;
scanf("%d",n);
printf("%d\n",fun(n));
return 0;
}
C语言程序设计里面的39个关键字,哪些一般不使用,也就是一般考试不会考呢?
volatile:说明变量在程序执行中可被隐含地改变。就这一个基本不会出现。其他的就难说了,给你理出来1 数据类型关键字(12个): (1) char :声明字符型变量或函数
(2) double :声明双精度变量或函数
(3) enum :声明枚举类型
(4) float:声明浮点型变量或函数
(5) int: 声明整型变量或函数
(6) long :声明长整型变量或函数
(7) short :声明短整型变量或函数
(8) signed:声明有符号类型变量或函数
(9) struct:声明结构体变量或函数
(10) union:声明共用体(联合)数据类型
(11) unsigned:声明无符号类型变量或函数
(12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
2控制语句关键字(12个): A循环语句
(1) for:一种循环语句(可意会不可言传)
(2) do :循环语句的循环体
(3) while :循环语句的循环条件
(4) break:跳出当前循环
(5) continue:结束当前循环,开始下一轮循环
B条件语句
(1)if: 条件语句
(2)else :条件语句否定分支(与 if 连用)
(3)goto:无条件跳转语句
C开关语句
(1)switch :用于开关语句
(2)case:开关语句分支
(3)default:开关语句中的“其他”分支
D返回语句
return :子程序返回语句(可以带参数,也看不带参数)
3 存储类型关键字(4个) (1)auto :声明自动变量 一般不使用
(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)
(3)register:声明积存器变量
(4)static :声明静态变量
4 其它关键字(4个): (1)const :声明只读变量
(2)sizeof:计算数据类型长度
(3)typedef:用以给数据类型取别名(当然还有其他作用
(4)volatile:说明变量在程序执行中可被隐含地改变
二、C语言中的9中控制语句 goto语句:无条件转向;
if语句:判断语句;
while循环语句;
do-while语句:先执行循环体,然后判断循环条件是否成立. 之后继续循环;
for语句:循环,可替代while语句; 只是用法不同;
break语句跳出本层的循环;(只跳出包含此语句的循环)
continue语句:继续(一般放到循环语句里,不在执行它下面的语句,直接跳到判断语句例:for语句,就直接跳到第二个分号处,while语句,就直接跳到while()的括号里;
switch语句:多相选择;
return语句:返回;
C语言 39. 填空题 以下程序的运行结果是________。
MAIN: x= 5 y= 1 n= 1
FUNC: x= 6 y=21 n=11
MAIN: x= 5 y= 1 n=11
FUNC: x= 8 y=31 n=21
C语言,运行为什么是39?
在主函数中声明了一个共用体,r,并且定义了一个共用体指针s,共用体的大小为结构体中最大元素的大小,这里short i[2]的大小为,4,long 的大小为4,char c[4]的大小为4,故共用体大小为4,s-i[0] = 0x39 即将16进制的39放在i[0]的位置上。s-i[1] = 0x38即将16进制的38放在i[1]的位置上。这时内存的存储为 00 00 00 00 | 00 11 10 00 | 00 00 00 00 | 00 11 10 01 用 | 分开字节。根据内存中存储的规律,故s-i[0],先存储,故写在右边。这时若利用s-c[0]输出,这时s-c[0]对应内存00 11 10 01,s-c[1]对应内存00 00 00 00,s-c[2]对应内存00 11 10 00,s-c[4]对应内存00 00 00 00。printf("%x\n",s-c[0]);表示以16进制整数输出,s-c[0]对应的内存为00 11 10 01,故输出39.
希望能有帮助~~