本文目錄一覽:
- 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的用法,會對結構體以及共同體進行定義與引用,可以通過鏈表對數據進行刪除、插入以及輸出。
原創文章,作者:WMRV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145146.html