C語言部分分析_第1頁
C語言部分分析_第2頁
C語言部分分析_第3頁
C語言部分分析_第4頁
C語言部分分析_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、C語言部分:1.寫一個(gè)宏, 求兩個(gè)整數(shù)的最大值.#include<stdio.h>#define MAX a>b?a:b;Void mainInt a ,b;Printf(“請輸入兩個(gè)數(shù):”);Scanf(“%d %d”,&a,&b);Printf(“max = %d”,MAX);2.內(nèi)存如何劃分(地址從高到低), 每個(gè)分區(qū)的特點(diǎn)是什么?內(nèi)存分為五大區(qū),分別是:棧區(qū)、堆區(qū)、靜態(tài)區(qū)、常量區(qū)、代碼區(qū)1.棧區(qū):內(nèi)存為8M,地址從高到低排列,函數(shù)調(diào)用時(shí),在棧區(qū)開辟內(nèi)存,函數(shù)調(diào)用結(jié)束時(shí)就會(huì)立馬被系統(tǒng)回收2.堆區(qū):開辟內(nèi)存用函數(shù)malloc calloc給開辟的內(nèi)存清零

2、realloc重新分配內(nèi)存生命周期為從程序開始一直到程序結(jié)束3.靜態(tài)區(qū):靜態(tài)區(qū)關(guān)鍵字為static,在主函數(shù)外定義的變量是全局變量,可被改寫,作用域在整個(gè)程序,他的生命周期重程序開始一直到程序結(jié)束4.常量區(qū):存儲(chǔ)常量數(shù)字 ,字符或字符串,是立即數(shù),立即使用立即釋放,存儲(chǔ)在CPU中,在使用是通常從常量區(qū)拷貝到棧區(qū)開辟的變量空間中5.代碼區(qū):存儲(chǔ)代碼,生命周期從程序開始到程序結(jié)束3.變量定義三要素_變量類型_、_變量名_和_變量值_4.編寫程序,實(shí)現(xiàn)兩個(gè)整數(shù)的交換#include<stdio.h>Void main Int a, b;Int temp = a;A = b;B = tem

3、p;5.邏輯運(yùn)算符包括_&&_、_|_和_!_6.分支結(jié)構(gòu)的分類和格式;If(條件)表達(dá)式Else表達(dá)式Switch:Case1:表達(dá)式1;Case2:表達(dá)式2;.,Default:表達(dá)式7.編寫程序, 輸入一個(gè)年份, 判斷該年份是否是閏年#import<founction.h>Void main Printf(“請輸入年份:”);Scanf(“%d”,&a);If(a % 4 =0 | a & 100 = 0)Printf(“該年是閏年”)Else printf(“該年不是閏年“);8.for循環(huán)包含_循環(huán)變量初值_、_循環(huán)條件_、_循環(huán)步長_和_

4、循環(huán)體_四部分9.break和continue的作用Break是結(jié)束本次循環(huán)Contiue是跳出本次循環(huán),直接進(jìn)入下次循環(huán)10.sizeof和strlen的區(qū)別Sizeof是指變量所占空間 字節(jié)長度Strlen是指字符串的長度11.用預(yù)處理指令#define聲明一個(gè)常數(shù),用以表明1年中有多少秒(忽略閏年問題)#import<founction.h>#define second 365*24*60*60;12.static的作用Static 靜態(tài)變量的關(guān)鍵詞,定義靜態(tài)變量,作用域是整個(gè)程序13.堆和棧的區(qū)別(1)棧區(qū)是由編譯器自動(dòng)管理,一旦函數(shù)調(diào)用結(jié)束內(nèi)存有系統(tǒng)自動(dòng)的回收,無需手動(dòng)釋

5、放,其進(jìn)棧方式是先進(jìn)后出,進(jìn)棧出棧有指令進(jìn)行,效率較高,當(dāng)內(nèi)存空間超過8M時(shí),會(huì)出現(xiàn)溢出。其分配方式有靜態(tài)分配(由編譯器完成)和(alloc函數(shù)完成)動(dòng)態(tài)分配(2)堆是高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),不是連續(xù)的內(nèi)存空間,遍歷方向是由低地址向高地址,其釋放是由程序員控制,容易產(chǎn)生內(nèi)存泄漏;其內(nèi)存大小受限于計(jì)算機(jī)系統(tǒng)的中有效虛擬內(nèi)存,數(shù)據(jù)的存入提取均由函數(shù)庫完成。堆得分配方式是動(dòng)態(tài)分配(alloc函數(shù)完成)有程序員手動(dòng)釋放。 14.堆區(qū)常見的內(nèi)存問題堆是一種經(jīng)過排序的樹形數(shù)據(jù)結(jié)構(gòu),每個(gè)結(jié)點(diǎn)都有一個(gè)值。通常所說的堆的數(shù)據(jù)結(jié)構(gòu),是指二叉堆。堆的特點(diǎn)是根結(jié)點(diǎn)的值最小,且根結(jié)點(diǎn)的兩個(gè)子樹也是一個(gè)堆。由于堆的這個(gè)特性

6、,常用來實(shí)現(xiàn)優(yōu)先隊(duì)列,堆的存取是隨意,這就如同在圖書館的書架上取書,雖然書的擺放是有順序的,但是想取任意一本時(shí)不必像棧一樣,先取出前面所有的書,書架這種機(jī)制不同于箱子,可以直接取出想要的書。15.􏲧􏵽􏵾􏵿指出下述變量a的含義:int a10 :數(shù)組名int *a :變量名int (*a)(int) :函數(shù)變量16.變量名的命名規(guī)范是什么?1).以字母 下劃線開頭2).非系統(tǒng)關(guān)鍵字3).包含字母、數(shù)字、下劃線17.指針和地址是什么關(guān)系?指針就是地址18.局部變量能否和全局變量重名?19.請寫出下列代碼的輸出內(nèi)容 #inclu

7、de  <stdio.h>int main(void) int a,b,c,d;a=10; b=a+; c=+a;  d=10*a+; printf("b,c,d:%d,%d,%d",b,c,d); return 0; b,c,d:10,12,12020.編程題, 有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?For(int i = 1; i < 5; i +) Int count = 0; For(j = 1; j < 5; j +) If(i != j) For(k = 1; k < 5;

8、k+) If(j != k) Count +;Print(“%d”,100 * i + 10 * j + k);21.編程題, 輸出99乘法口訣表for(int i = 1;i < 10;i+) for (int j = 1; j < i+1; j+) printf("%d * %d = %d ",i,j,i*j); printf("n"); 22.編程題, 輸入兩個(gè)整數(shù)m和n, 求最大公約數(shù)和最小公倍數(shù)Int min = m < n ? m : n;While(max != 0)Max = m % n;M = n ;N = max;P

9、rintf(“最大公約數(shù)是:%d”,max);Printf(“最小公倍數(shù)是:%d”,max * min);23.編程題, 輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)MainPrintf(“請輸入一行字符:”);Scanf(“%s”,s);Int lettersCount = 0;Int numCount = 0;Int spaceCount = 0;Int count = 0;For(int i = 0;i < strlen(s) + 1;i+) If(si > 0 && si < 9)numCount += 1; else if(si

10、> 64 && si < 91 | si > 96 && si < 123)lettersCount += 1; else if(si = 0)spaceCount += 1; else ifcount += 1;24.下面程序的輸出是?#include<stdio.h>void main() int k=11; printf("k=%d,k=%o,k=%xn",k,k,k);輸出的結(jié)果是:k = 11,k = 013,k = xB25.下面程序的輸出是?#include<stdio.h>voi

11、d main() int x=10,y=3; printf("%dn",y=x/y);326.下面程序的輸出是?#include<stdio.h>void main() char ch1,ch2; ch1='A'+'5'-'3' ch2='A'+'6'-'3' printf("%d,%cn",ch1,ch2);67,D27.下面程序的輸出是?#include<stdio.h>void main() int x=10,y=10; prin

12、tf("%d %dn",x-,-y);10 928.下面程序的輸出是?設(shè)有如下定義: int x=10,y=3,z;則語句 printf("%dn",z=(x%y,x/y);329.下面程序的輸出是? int k,n,m; n=10;m=1;k=1; while (k<=n) m*=2;k+=4; printf("%dn",m);830.下面程序的輸出是?#include <stdio.h>void main( ) int a =5,4,3,2,1,i,j; long s=0; for(i=0;i<5;i+)

13、s=s*10+ai; printf("s=%ldn",s); 5432134.下面程序的輸出是?#include <stdio.h>void main() int i,a10; for(i=9;i>=0;i-) ai=10-i; printf("%d%d%d",a2,a5,a8); 85231.下面程序的輸出是?#include <stdio.h>int m=13;int fun2(int x, int y) int m=3; return(x*y-m); void main() int a=7, b=5; printf(&

14、quot;%dn",fun2(a,b)/m);3432.以下程序的輸出結(jié)果是?#include <stdio.h>int a,b;void fun() a=100; b=200; void main() int a=5,b=7; fun(); printf("%d%dn",a,b); 5733.以下程序的輸出結(jié)果是?#include <stdi0.h> int fun(int x,int y,int z) z=x*x+y*y;return 0 ;void main() int a=31; fun(5,2,a); printf("%

15、d",a); 3134.以下程序的輸出結(jié)果是?int fun3(int x) static int a=3; a+=x; return(a); void main() int k=2,m=1,n; n=fun3(k); n=fun3(m); printf("%dn",n); 635._c_代表函數(shù)的首地址 ?A、返回值類型 B、參數(shù) C、函數(shù)名 D、函數(shù)體36.下列函數(shù)指針p調(diào)用一個(gè)求兩個(gè)數(shù)最大值的函數(shù)正確的是_b_?A、p() B、p(3, 5) C、*p(3, 5) D、(*p)(3, 5)37.下列函數(shù)指針定義正確的是_d_?A、int *p(int, in

16、t) B、int *p(int, int) C、*int p(int, int) D、int (*p)(int, int)38.聲明為void printArray(int*p, int count) 的函數(shù)的函數(shù)指針類型為 _void printArray (int* int)_?39.編程題, 猴子吃桃子問題。猴子第一天摘下若干個(gè)桃,當(dāng)即只一半,又多吃一個(gè)。第二天早上又將剩下的一半吃掉一半,雙多吃一個(gè)。以后每天早上都吃了前天剩下的一半零一個(gè),到第10天早上只剩下最后一個(gè)桃。問第一天摘了幾個(gè)桃函數(shù)的遞歸Func(int n)N = n / 2 1;Return n;Void mainInt

17、s = 0;Int n;S = func(1);40.編程題, 寫一個(gè)函數(shù), 交換兩個(gè)變量的值changeTwoNum(int a,int b)int temp = a;a = b;b = temp;41.以下程序的輸出結(jié)果是?main() int a10 = 0; for(int i = 9; i >= 0; i-) ai=10-i; printf(“%d%d%d", a2, a5, a8);85242.以下程序運(yùn)行后,輸出結(jié)果是?main() int n5 = 0, 0, 0, k = 2; for(int i = 0; i < k; i+) ni = ni + 1;

18、 printf("%dn",nk);043.以下程序運(yùn)行后,輸出結(jié)果是?main() int y = 18, i = 0, a8 = 0; do ai = y % 2; i+; y = y / 2; while (y >= 1);for(int j = i - 1; j >= 0; j-) printf("%d", aj); printf("n");1001044.以下程序運(yùn)行后,輸出結(jié)果是?main() int a10 = 0, a1 = 1, 3, 6, 9, 10, a2 = 2, 4, 7, 8, 15, i =

19、0, j = 0; for(int k = 0; k < 4; k+) if(a1i < a2j) ak = a1i+; else ak = a2j+; for(int k = 0; k < 4; k+) printf("%d", ak); 123445. 編程找出下列整型數(shù)組中的最大值和最小值及其所在位置的下標(biāo) int a = 5, -9, 32, 77, 64, -24, 14, 0, 21, 45;Int FindMaxNum(int *a,int count) Int max = 0; For(int i = 0;i < count; i+)

20、 If (ai < max )Max = i;Return max;Int findMinNum(int *a,int count) Int min = 0; For(int j = 0;j < count;j +) If(ai > min ) Min = i;Return min;46.編寫一個(gè)程序:int array15 = 8, 6, 4, 2, 0;int array25 = 9, 7, 5, 3, 1;先將兩個(gè)數(shù)組升序排列, 然后將這兩個(gè)數(shù)組合并成一個(gè)升序數(shù)組 sortArrayByAsc(int *array1,int 5) For(int i = 0;i <

21、; 5 - 1;i+) For(int j = 0;j < 5-1-i;j+) If(array1j > array1j + 1) Int temp = array1j; Array1j = array1j + 1; Array1j + 1 = temp ;sortArrayByDes(int *array2,int 5) For(int i = 0;i < 5 - 1;i+) For(int j = 0;j < 5-1-i;j+) If(array2j > array2j + 1) Int temp = array2j; Array2j = array2j +

22、1; Array2j + 1 = temp ;sortArray(int *array1,int 10) For(int i = 0;i < 5 - 1;i+) For(int j = 5-1;j < 10-1-i;j+) If(array1j > array1j + 1) Int temp = array1j; Array1j = array1j + 1; Array1j + 1 = temp ;OC部分:1、定義一個(gè)人類Person, 實(shí)例變量name, age, gender, 要求寫出自定義初始化方法, 便利構(gòu)造器Person NSString name;Int ag

23、e;NSString gender;-initWithName NSString:name andAge int: age andGender NSString:genderNSString name = name;Int age = age;NSString gender = gender;-2、寫出property (nonatomic, assgin) NSInteger count; 生成setter和getter方法3、寫出property (nonatomic, retain) NSString *brand; 生成setter和getter方法4、寫出property (nonatomic, copy) NSString *type; 生成setter和getter方法5、說一下#i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論