本文目录一览:
- 1、c语言动态内存分布 p =(char*)malloc(60*sizeof(char));这里面60
- 2、用c语言作成绩分布
- 3、C语言中内存分布及程序运行加载过程
- 4、用C语言实现瑞利分布,莱斯分布,高斯分布的分布函数
- 5、C语言数组内存分布
- 6、计算机二级c语言题型及分值分布
c语言动态内存分布 p =(char*)malloc(60*sizeof(char));这里面60
根据你付给这个内存的字符串长度决定的啊,需要多少就给多少嘛,如果不想有固定值,int
n
;
malloc(n*sizeof(char))就可以了
用c语言作成绩分布
运行结果在最下方。
#include stdio.h
#define NUMBER 80 /* 人数の上限 */
int main(void)
{
int i, j;
int bunpu[11] = {0}; /* 分布 */
int tensu[]={35, 25, 86, 90, 67, 50, 70, 15, 22, 97,99, 48, 73, 88, 39, 73, 68, 35, 75, 66, 39, 61, 55, 59, 83, 46, 40, 29, 38, 76, 45, 88, 75, 61, 58};
for ( i = 0; i sizeof(tensu)/4; i++)
{
if ( tensu[i] = 9 )
bunpu[0]++;
else if ( tensu[i] = 19 )
bunpu[1]++;
else if ( tensu[i] = 29 )
bunpu[2]++;
else if ( tensu[i] = 39 )
bunpu[3]++;
else if ( tensu[i] = 49 )
bunpu[4]++;
else if ( tensu[i] = 59 )
bunpu[5]++;
else if ( tensu[i] = 69 )
bunpu[6]++;
else if ( tensu[i] = 79 )
bunpu[7]++;
else if ( tensu[i] = 89 )
bunpu[8]++;
else if ( tensu[i] = 99 )
bunpu[9]++;
else
bunpu[10]++;
}
puts("成绩一覧");
puts("35, 25, 86, 90, 67, 50, 70, 15, 22, 97,99, 48, 73, 88, 39, 73, 68, 35, 75, 66,39, 61, 55, 59, 83, 46, 40, 29, 38, 76,45, 88, 75, 61, 58");
puts("\n□ 分布组 □");
printf(" 100:");
for ( i = 1; i = bunpu[10]; i++)
putchar('*');
putchar('\n');
for (i = 9; i = 0; i--)
{
printf("%3d - %3d:", i * 10, i * 10 + 9);
for (j = 0; j bunpu[i]; j++)
putchar('*');
putchar('\n');
}
return (0);
}
C语言中内存分布及程序运行加载过程
一个程序内存分配:
下图是APUE中的一个典型C内存空间分布图(虚拟内存)
例如:
int g1=0, g2=0, g3=0;
int max(int i)
{
int m1=0,m2,m3=0, p_max;
static n1_max=0,n2_max,n3_max=0;
p_max = (int )malloc(10);
printf("打印max程序地址\n");
printf("in max: 0xx\n\n",max);
printf("打印max传入参数地址\n");
printf("in max: 0xx\n\n",i);
printf("打印max函数中静态变量地址\n");
printf("0xx\n",n1_max); //打印各本地变量的内存地址
printf("0xx\n",n2_max);
printf("0xx\n\n",n3_max);
printf("打印max函数中局部变量地址\n");
printf("0xx\n",m1); //打印各本地变量的内存地址
printf("0xx\n",m2);
printf("0xx\n\n",m3);
printf("打印max函数中malloc分配地址\n");
printf("0xx\n\n",p_max); //打印各本地变量的内存地址
if(i) return 1;
else return 0;
}
int main(int argc, char **argv)
{
static int s1=0, s2, s3=0;
int v1=0, v2, v3=0;
int p;
p = (int )malloc(10);
printf("打印各全局变量(已初始化)的内存地址\n");
printf("0xx\n",g1); //打印各全局变量的内存地址
printf("0xx\n",g2);
printf("0xx\n\n",g3);
printf("======================\n");
printf("打印程序初始程序main地址\n");
printf("main: 0xx\n\n", main);
printf("打印主参地址\n");
printf("argv: 0xx\n\n",argv);
printf("打印各静态变量的内存地址\n");
printf("0xx\n",s1); //打印各静态变量的内存地址
printf("0xx\n",s2);
printf("0xx\n\n",s3);
printf("打印各局部变量的内存地址\n");
printf("0xx\n",v1); //打印各本地变量的内存地址
printf("0xx\n",v2);
printf("0xx\n\n",v3);
printf("打印malloc分配的堆地址\n");
printf("malloc: 0xx\n\n",p);
printf("======================\n");
max(v1);
printf("======================\n");
printf("打印子函数起始地址\n");
printf("max: 0xx\n\n",max);
return 0;
}
打印结果:
ELF目标文件格式的最前端是 ELF****文件头(****ELF Header****) ,
包含了描述整个文件的基本属性,如ELF版本、目标机器型号、 程序入口地址 等
3 加载:
用C语言实现瑞利分布,莱斯分布,高斯分布的分布函数
C语言中的random函数可以产生均匀分布的随机变量分布区间为(0,1),假设x1,x2是由random产生的随机变量,
则y=sqrt(-2*ln(x1))为瑞利分布
theta=2*pi*x2为(0,2*pi)的均匀分布
n1=y*cos(theta),n2=y*sin(theta)为两个独立的正太分布
z=sqrt((a+n1)^2+(b+n2)^2),为莱斯分布,a ,b为常数
C语言数组内存分布
因为int array[][10]是一种类型,叫做每行为10的行指针,原型是int (*array)[10],如果不写这个10的话就是数据类型不明。所以,因为他是一种类型,我们可以用typedef int (*array)[10]来重命名这种类型(把他重命名为array),之后array a[3]就等价于int array[3][10]);
计算机二级c语言题型及分值分布
C语言程序设计题型分值分布如下:
1. 单选题总共40道,每道题一分,其中基础知识共10道,总计40分;
2. 程序填空题一般2到4道,看难度给分,总计18分;
3. 程序改错题一般2到4道,看难度给分,总计18分;
4. 程序设计题1道,根据答出步骤给分,答出越多分越高直至满分,总计24分。
拓展知识(考试内容):
1. C语言程序结构
明白如何运用main函数以及其他基础函数,会构建程序。知道源文件的书写格式,能看懂函数开始或结束的标志,能对基础程序注释且明白其作用。
2. 数据类型与运算
了解C的数据类型与定义方法,熟知C表达式类型且会基本运用。知道C运算符的种类与优先级,懂得数据类型之间如何转换运算。
3. 基础语句
懂得表达式语句、复合语句以及空语句,会调用输入输出函数,能根据要求正确写出输入输出格式的语句。
4. 选择结构语句
熟练掌握if语句以及switch语句的用法,懂得选择结构如何进行嵌套。
5. 循环结构语句
熟练掌握for语句、while或do-while语句、continue语句及break语句的使用方式,了解如何嵌套循环结构语句。
6. 数组的定义与运用
会对基本的一维、二维数组定义,能初始化数组并会引用,掌握字符串与数组的运用。
7. 函数
能对库中的函数进行基本调用,且熟知常用函数的作用及写法。知道函数的定义方法、类型与返回值,了解形参与实参的概念以及局部变量与全局变量的区别。
8. 指针
了解地址与指针变量的概念,会基本运用指针,通过指针引用各类数据。
9. 结构与联合
了解typedef的用法,会对结构体以及共同体进行定义与引用,可以通过链表对数据进行删除、插入以及输出。