天天看點

總結:複合資料對象

數組

1、數組含義:存放類型相同資料。數組元素在記憶體中存放的特點(占用一段連續的存儲單元)。

2、 一維數組的定義、引用、初始化。

3、 二維數組的定義、引用、初始化。

4、 數組的相關運算:數組輸入、輸出、求最值,排序。

5、 字元數組的定義、引用、初始化。C語言中處理字元串的庫函數(strcmp(),strcpy(),strcat(),strlen(),strlwr())的含義及使用。

函數

1、 C語言源程式由許多函數組成,有且僅有一個main()函數,從main()函數開始執行,最後回到main()函數。

2、 函數分類:

從使用者角度分:庫函數,使用者自定義函數。

從函數形式分:無參函數,有參函數。

3、 函數的定義、調用及聲明。

4、 函數的嵌套調用與遞歸調用。

5、 函數調用中參數的傳遞方式及應用:

(1) 值傳遞方式。

(2) 位址傳遞。

6、 數組元素作為函數實參與變量作為實參一樣,實作值傳遞;數組名作為實參,傳遞的是數組的位址,實作位址傳遞,形參和實參指向同一連續存儲單元。

7、 變量的存儲類型,靜态變量與動态變量的差別。(局部靜态變量在程式運作整個過程中都占用記憶體單元。)

8、 局部變量和全局變量的使用及有效範圍。

預處理指令

1、 宏定義的方式(不帶參數的宏定義,帶參數的宏定義及其差別)。

2、 宏定義的特點:隻做簡單置換,不作正确性檢查;不是C語句,行末沒有分号。

3、 熟練掌握stdio.h、string.h、math.h包含檔案的引用。

指針

1、 指針定義:指針與指針變量(存放位址的變量)。

2、 指針與指針運算符(*),取位址運算符(&)。

3、 指向一維數組指針的應用(指針法、下标法);注意給指針賦初值。

結構體和連結清單

1、結構體類型的定義,結構體變量的定義、引用及初始化,結構體變量中成員變量的引用。

2、結構體數組的定義、初始化。

3、連結清單,是一種線性表,但是并不會按線性的順序存儲資料,而是在每一個節點裡存到下一個節點的指針

檔案

1、 檔案含義:存儲在外部存儲媒體上的資料的集合。

2、 檔案的打開與關閉,及其檔案使用格式。

小測驗

單選題

1、C語言中下列叙述正确的是___D__。

A:不能使用do-while語句構成的循環

B:do-while語句構成的循環,必須用break語句才能退出

C:do-while語句構成的循環,當while語句中的表達式值為非零時結束循環

D:do-while語句構成的循環,當while語句中的表達式值為零時結束循環

知識點:知識點/循環結構程式設計/WHILE和DO WHILE循環結構

2、下列描述中不正确的是____C__。

A:字元型數組中可以存放字元串

B:可以對字元型數組進行整體輸入、輸出

C:可以對整型數組進行整體輸入、輸出

D:不能在指派語句中通過指派運算符"="對字元型數組進行整體指派

知識點:知識點/基本語句/資料的輸入與輸出,輸入輸出函數的調用

3、以下程式的輸出結果是___D___。

main()

{ int x=10,y=10,i;

for(i=0;x>8 ;y=++i)

printf("%d %d ",x--,y);

}

A:10 1 9 2

B:9 8 7 6

C:10 9 9 0

D:10 10 9 1

知識點:知識點/循環結構程式設計/FOR循環結構

4、以下程式的輸出結果是___B___。

{ char a[10]={'1','2','3','4','5','6','7','8','9',0},*p;

int i ;

i=8;

p=a+i;

printf("%s\n",p-3);

A:6

B:6789

C:'6'

D:789

知識點:知識點/指針/指針數組,指向指針的指針,MAIN函數的指令行參數

5、能正确表示a和b同時為正或同時為負的邏輯表達式是___D___。

A:(a>=0||b>=0)&&(a<0|| b<0)

B:(a>=0&&b>=0)&&(a<0&&b<0)

C:(a+b>0)&&(a+b<=0)

D:a*b>0

知識點:知識點/基本語句/表達式語句,空語句,複合語句

6、以下程式的輸出結果是__A__。

{ int n=4;

while(n--)printf("%d ",--n);

A:2 0

B:3 1

C:3 2 1

D:2 1 0

7、以下程式的輸出結果是___D___。

{ int k=17;

printf("%d,%o,%x\n",k,k,k);

A:17,021,0x11

B:17,17,17

C:17,0x11,021

D:17,21,11

知識點:知識點/資料類型及其運算/C的資料類型及其定義方法

8、若有說明:long *p,a;則不能通過scanf語句正确給輸入項讀入資料的程式段是___A___。

A:*p=&a;scanf("%ld",p);

B:p=(long *)malloc(8);scanf("%ld",p);

C:scanf("%ld",p=&a);

D:scanf("%ld",&a);

9、以下選項中,能定義s為合法的結構體變量的是___B___。

A:typedef struct abc

{ double a;

char b[10];

} s;

B:struct

}s;

C:struct ABC

ABC s;

D:typedef ABC

10、請讀程式:

#include <stdio.h>

{

int a, b ;

for(a = 1 , b = 1 ; a <= 100 ; a++) {

if(b >= 20) break ;

if (b%3 == 1) { b += 3 ; continue ; }

b -= 5 ;

printf("%d\n", a) ;

上面程式的輸出結果是___B___。

A:7

B:8

C:9

D:10

知識點:知識點/選擇結構程式設計/用SWITCH語句實作多分支選擇結構

11、請選出合法的C語言指派語句__C____。

A:a=b=58;

B:i++;

C:a=58,b=58;

D:k=int(a+b);

12、若x和y都是int型變量,x=100、y=200,且有下面的程式片段

printf("%d",(x,y) );

上面程式片段的輸出結果是__A____。

A:200

B:100

C:100 200

D:輸入格式符不夠,輸出不确定的值

13、若x是整型變量,pb是基類型為整型的指針變量,則正确的指派表達式是___A___。

A:pb=&x;

B:pb=x;

C:*pb=&x;

D:*pb=*x

14、設a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式是___D___。

A:'a'&&'b'

B:a<=b

C:a||+c&&b-c

D:!((a<b)&&!c||1)

15、有程式如下:

typedef struct link { double score; struct link *next; };

void main ( ) {

link *ps, qs, rs;

ps = ( struct link *) malloc (sizeof (struct link) );

ps->score = 81.5; qs.score = 55.5; rs.score = 68.0;

ps->next = &qs ; qs.next =&rs;

printf ( " %lf \n ", ps->score + ps->next->score);

上面程式的輸出結果是___137___。

--------------------------------------------------------------------

程式設計

1.定義函數double fact( int n) 計算n!的值。

2.判斷數m是否為素數(隻能被1和它本身整除的整數)?若是,則輸出yes;否則輸出no

3.求出第n項Fibonacci數,并統計前n項之和。Fibonacci序列:1,1,2,3,5,8,13,21,34,55,……。該序列的第一個數和第二個數都是1,從第三個數開始,每個數都是前兩個數之和

 4.輸入某班級20個學生某課程的考試成績,要求統計并輸出班級總分及大于等于60分的人數。

 5.試程式設計判斷輸入的正整數是否既是5又是7的正倍數。若是,則輸出yes;否則輸出no。

6.對15個數進行排序,按從小到大的順序輸出

7.寫一個程式,它能夠計算并輸出楊輝三角形(帕斯卡三角形)前面的 n 行