數組
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 行