當前位置:首頁 » 編程語言 » c語言程序設計第12章在線測試
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言程序設計第12章在線測試

發布時間: 2023-02-08 03:49:47

c語言試題

自考「C語言程序設計」模擬試題一
2008-1-3
相關自考頻道點評提問自考網上培訓

自考「C語言程序設計」模擬試題一
一、填空題
1、C語言中基本的數據類型有:______、______ 、______ .
2、C語言中普通整型變數的類型說明符為______,在內存中占______位元組,有符號普通整型的數據范圍是______ .
3、整數-35在機內的補碼表示為______.
4、執行下列語句int a=8; a+=a-=a*a; 後,a的值是______.
5、有如下語句:char A[ ]={「I am a student」}; 該字元串的長度是______,A[3]=______.
6、符號「a」和『a』的區別是______.
7、所謂「指針」就是______.「&」運算符的作用是______.「*」運算符的作用是______.
8、有如下輸入語句:scanf(「a=%d,b=%d,c=%d」,&a,&b,&c);為使變數a的值為1,b的值為3,c的值為2,從鍵盤輸入數據的正確形式應是______.
二、選擇題
1、設整型變數a為5,使b不為2的表達式是( )。
A. b=a/2 B. b=6-(——a) C. b=a%2 D. b=a>3?2:1
2、為了避免嵌套的條件分支語句if-else的二義性,C語言規定:C程序中的else總是與( )組成配對關系。
A. 縮排位置相同的if B. 在其之前未配對的if
C. 在其之前未配對的最近的if D.同一行上的if
3、以下程序的輸出結果是( )。
int x=10,y=10;
printf(「%d %d\n」,x——,——y);
A. 10 10 B. 9 9 C. 9 10 D. 10 9
4、設A為存放(短)整型的一維數組,如果A的首地址為P,那麼A中第i 個元素的地址為( )。
A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i
5、選出下列標識符中不是合法的標識符的是( )。
A. hot_do B. cat1 C. _pri D. 2ab
6、以下程序的輸出結果是( )。
int a=5;
float x=3.14;
a*=x*(『E』 - 『A』);
printf(「%f\n」,(float)a);
A. 62.000000 B. 62.800000 C. 63.000000 D. 62
7、設有說明double(*p1)[N];其中標識符p1是( )。
A. N個指向double型變數的指針。
B. 指向N個double型變數的函數指針。
C. 一個指向由N個double型元素組成的一維數組的指針。
D.具有N個指針元素的一維指針數組,每個元素都只能指向double型量。
8、在C程序中有如下語句:char *func(int x,int y);它是( )。
A. 對函數func的定義。 B. 對函數func的調用。
C.對函數func的原型說明。 D. 不合法的。
9、以下程序的輸出結果是( )。
char str[15]=「hello!」;
printf(「%d\n」,strlen(str));
A. 15 B. 14 C. 7 D. 6
10、分析以下程序的輸出結果是( )。
main()
{int a=5,b=-1,c;
c=adds(a,b);
printf(「%d」,c);
c=adds(a,b);
printf(「%d\n」,c); }
int adds(int x,int y)
{static int m=0,n=3;
n*=++m;
m=n%x+y++;
return(m); }
A. 2,3 B. 2,2 C. 3,2 D. 2,4
11、下列描述中不正確的是( )。
A. 字元型數組中可能存放字元串。
B. 可以對字元型數組進行整體輸入、輸出。
C. 可以對整型數組進行整體輸入、輸出。
D. 不能在賦值語句中通過賦值運算符「=」對字元型數組進行整體賦值。
12、以下程序的輸出結果是( )。
#define f(x) x*x
main()
{int a=6,b=2,c;
c=f(a)/f(b);
printf(「%d\n」,c);
}
A. 9 B. 6 C. 36 D. 18
13、設有如下定義: int x=10,y=3,z;
則語句printf(「%d\n」,z=(x%y,x/y)); 的輸出結果是( )。
A. 1 B. 0 C. 4 D. 3
14、定義如下變數和數組:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};
則語句for(i=0;i<3;i++) printf(「%d 」,x[i][2-i]); 的輸出結果是( )。
A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9
15、以下對二維數組a進行正確初始化的是( )
A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[ ][3]={1,2,3,4,5,6};
C. int a[2][ ]={1,2,3,4,5,6}; D. int a[2][ ]={{1,2},{3,4}};
16、兩次運行下面的程序,如果從鍵盤上分別輸入6和3,則輸出結果是( )。
int x;
scanf(「%d」,&x);
if(x++>5) printf(「%d」,x);
else printf(「%d\n」,x - -);
A. 7和5 B. 6和3 C. 7和4 D. 6和4
17、設有如下定義: char *aa[2]={「abcd」,「ABCD」}; 則以下說法中正確的是( )。
A)aa數組成元素的值分別是「abcd」和ABCD「
B)aa是指針變數,它指向含有兩個數組元素的字元型一維數組
C)aa數組的兩個元素分別存放的是含有4個字元的一維字元數組的首地址
D)aa數組的兩個元素中各自存放了字元『a』和『A』的地址
18、下列程序的輸出結果是( )。
char *p1=「abcd」, *p2=「ABCD」, str[50]=「xyz」;
strcpy(str+2,strcat(p1+2,p2+1));
printf(「%s」,str);
A. xyabcAB B. abcABz C. ABabcz D. xycdBCD
19、下列程序的輸出結果是( )。
int a[5]={2,4,6,8,10},*P,* *k;
p=a; k=&p;
printf(「%d」,*(p++));
printf(「%d\n」,* *k);
A. 4 4 B. 2 2 C. 2 4 D. 4 6
20、不能把字元串:Hello!賦給數組b的語句是( )。
A. char b[10]={『H』,『e』,『l』,『l』,『o』,『!』};
B. char b[10]; b=「Hello!」;
C. char b[10]; strcpy(b,「Hello!」);
D. char b[10]=「Hello!」;
三、讀程序題
1、float f=3.1415927;
printf(「%f,%5.4f,%3.3f」,f,f,f);
則程序的輸出結果是 .
2、int x=6, y=7;
printf(「%d,」,x++);
printf(「%d\n」,++y);
程序的輸出結果是 .
3、a=3;
a+=(a<1)?a:1;
printf(「%d」,a);
結果是.
4、for (a=1,b=1;a<=100;a++)
{ if(b>=20) break;
if(b%3==1)
{b+=3; continue;}
b-=5; }
程序的輸出結果a的值為 .
5、int y=1, x, *p, a[ ]={2,4,6,8,10};
p=&a[1];
for(x=0;x<3;x++)
y + = * (p + x);
printf(「%d\n」,y);
程序的輸出結果y的值是 .
四、程序填空題
1、從鍵盤上輸入10個數,求其平均值。
main()
{int i;
float f,sum;
for(i=1,sum=0.0;i<11;i++)
{ ;
; }
printf(「average=%f\n」,sum/10); }
2、以下程序是建立一個名為myfile的文件,並把從鍵盤輸入的字元存入該文件,當鍵盤上輸入結束時關閉該文件。
#include
main()
{ FILE *fp;
char c;
fp= ;
do{
c=getchar();
fputs(c,fp);
}while(c!=EOF);
}
3、以下程序的功能是:從鍵盤上輸入若干個學生的成績, 統計並輸出最高成績和最低成績,當輸入負數時結束輸入。請填空。
main()
{ float x,amax,amin;
scanf(「%f」,&x);
amax=x; amin=x;
while( )
{ if(x>amax) amax=x;
if( ) amin=x;
scanf(「%f」,&x); }
printf(「\namax=%f\namin=%f\n」,amax,amin); }
五、編程題
1. 三個整數a、b、c,由鍵盤輸入,輸出其中最大的一個數。
2.輸出1900~2000年中所有的閏年。每輸出3個年號換一行。(判斷閏年的條件為下面二者之一:能被4整除,但不能被100整除。或者能被400整除。)
3.請編一個函數int fun(int a),它的功能是:判斷a是否是素數,若a是素數,返回1;若不是素數,返回0.A的值由主函數從鍵盤讀入。
4.有N個學生,每個學生的信息包括學號、性別、姓名、四門課的成績,從鍵盤上輸入N個學生的信息,要求輸出總平均成績最高的學生信息,包括學號、性別、姓名和平均成績。

參考答案
一、填空題
(1)整型、實型、字元型。
(2)int,2,-32768~ +32767
(3)1111111111011101
(4)- 112
(5)14,『m』
(6)「a」是字元串常量,而『a』是字元常量。
(7)存放地址值的變數或常量,或者答地址。
(8)取運算對象的地址。 取指針變數所指的內容。a=1,b=3,c=2
二、選擇題
1、C 2、C 3、D 4、B 5、D
6、A 7、C 8、C 9、D 10、A
11、C 12、C 13、D 14、C 15、B
16、C 17、D 18、D 19、C 20、B
三、閱讀程序題
(1) 3.141593,3.1416,3.142
(2) 6,8
(3) 4
(4) 22
(5) 19
四、程序填空題
1、scanf(「%f」,&f); sum+=f;
2、fopen(「myfile」,w) fclose(fp);
3、x>=0.0 x<=amin
五、編程題
1、main()
{int a,b,c;
printf(「請輸入三個整數:」);
scanf(「%d,%d,%d」,&a,&b,&c);
if(a

if(b

else printf(「max=%d\n」,b);
else if(a

else printf(「max=%d\n」,a);}
2、#include「stdio.h」
main()
{int I,n;
for(n=0,I=1900;I<=2000;I++)
{if(I%4==0&&I0!=0||I@0==0)
{printf(「%d 」,I);n++;}
if(n%3==0)
printf(「\n」);} } }
3、#include「stdio.h」
int fun(int a)
{int I;
if(a==2) return 1; I=2;
while((a%I)!=0&&I<=sqrt((float)a))
I++;
if(a%I==0)
{printf(「%d is not a prime!」,a);
return 0;}
printf(「%d is a prime!」,a);
return 1; }
main()
{int x;
printf(「\n please enter a number:」);
scanf(「%d」,&x);
printf(「%d\n」,fun(x)); }
4、#include「stdio.h」
#define N 3
struct student
{long stu_num; char sex;
char name[15]; int score[4];
float average; };
main()
{int I,j,index; float sum,max;
struct student stuarr[N];
for(I=0;I

{printf(「please input %d student information:\n」,I+1);
scanf(「%ld,%c,%s」,&stuarr[I].stu_num,&stuarr[I].sex,stuarr[I].name);
for(j=0;j<4;j++)
scanf(「%d」,&stuarr[I].score[j]); }
for(I=0;I

{sum=0.0;
for(j=0;j<4;j++)
sum+=stuarr[I].score[j];
stuarr[I].average=sum/4.0;}
max=stuarr[0].average;
index=0;
for(I=1;I

if(stuarr[I].average>max)
{max=stuarr[I].average;
index=I; }
printf(「總平均成績最高的學生信息是學號=%ld,性別=%c,姓名=%s,平均成績=%4.1f\n」,stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].average);
}

㈡ C語言程序設計(201803)測試求大佬幫忙!

  1. 選D

  2. 選C;"my name"算上空格一共7個字元,加上結尾的''為8個字元,所以如果m前沒有空格,那麼答案為C

  3. 選C;p指向a[3]=4的地址,即p及其之後地址中的數值為{4,5,6,7,8,9,10},所以其中第5個數為p[4]=8

  4. 選C

  5. 選D;A錯誤,字元串應為char型;B錯誤,數組長度不夠;C錯誤,沒有vhst類型;D正確,可看作字元數組,{}內的數值可轉為相應的ASCII字元

  6. 選C;字元數組即字元串不能直接通過"="賦值,要使用strcpy函數

  7. 選C;函數實參可以是常量、變數或表達式,該題中逗號表達式(exp2,exp3)返回exp3,(exp4,exp5,exp6)返回exp6,因此一共3個實參

  8. 選C;A錯誤,函數調用時不用指明其參數類型;B錯誤,fun函數沒有返回值,不能賦給k;C正確;D錯誤,函數調用時不用指明其返回類型

  9. 選A;n++表示先返回n的值,再對n進行自增操作,即先令k=n,再執行n=n+1

  10. 選C;if-else不是循環結構

  11. 選D;aa表示數組首地址,即&aa[0],而不是&aa[1]

  12. 選B

  13. 選B;a[2]=3,a[2]+1=4,所以a[a[2]+1]=a[4]=5

  14. 選C;A錯誤,除非函數定義在調用語句之後的位置,才需要提前聲明;B錯誤,函數返回值不一定要顯示給出,沒有返回值類型的默認為整型;C正確;D錯誤,在類的定義中,當構造函數和析構函數不需要完成操作時可用空函數來表示,但它們又是有意義的

  15. 選B;scanf需指明讀入變數的地址,字元串名稱c就表示字元串的地址,也即字元數組首元素的地址,不用再加取地址符&

  16. 選A

  17. 選D;同第6題

碼字不易,望採納~

㈢ C語言程序設計(12)

第一處填空,是個三重循環:
for(i=0;i<N;i++)
for(j=0;j<N+1;j++)
for(k=j+1;k<N;k++)
這里,i是數組的行標號,第一重循環表示依次對N行數組分別排序
然後j和k是列下標,一個二重循環排序的過程,其原理如下:
比如2 3 5 1 0 按從小到大排序
首先,j=0 k=1~4,就是數字2分別與3 5 1 0比較,把小的放到2的位置來
一輪之後,就變成 0 3 5 2 1
第二輪,j=1 k=2~4 ,就是數字3分別與5 2 1比較,把最小的放到3的位置
就是依次找出最小的放在最前,找出第二小的,放第二個位置……
依次這樣循環到最後,就能完成排序

第二個填空,是要完成「第0行從小到大排序,第1行從大到小排序,第2行從小到大排序,第3行從大到小排序」這樣的功能,這樣填:
if(i%2==1?a[i][j]<a[i][k]:a[i][j]>a[i][k])
表示,如果i%2==1(即i是奇數行標),則採用a[i][j]<a[i][k]這個判斷條件,否則就採用a[i][j]>a[i][k]這個判斷條件
這樣就能實現偶行從小到大排序,奇行從大到小排序咯

=============================================
1
outarr(aa);
這樣是把數組的地址當作實參傳遞過去,而,形參是這樣
void outarr(int a[N][N])
這說明白形參是接受的數組的值啊???
這是怎麼回事?

這里不是按地址傳遞,定義void outarr(int a[N][N])表示的是按數組整個傳遞,並且數組做為參數傳遞有個特點,就是一定是按引用傳遞
知道什麼是按引用傳遞嗎?簡單理解,就是在函數裡面,對該參數的修改,會影響主函數中該參數的值

====================================================
2
在主函數中
數組的定義是這樣的
int aa[N][N]
表示未知行和列
但初始化又是這樣
int aa[N][N]={{2,3,4,1},{8,6,5,7},{11,12,10,9},{15,14,16,13}};
這樣能算對嗎?

這里數組的定義不是未知行和列
我們語庋規則規定,數組定義,必須用明確定義行列的數目
其實這里的N不是一個變數,而已經變成一個數字了,看上面的定義:
#define N 4
這一句定義,等於告訴編譯器,每逢碰到N,就把它換成4的意思
那麼其實數組定義就是int aa[4][4]

=====================================================
3
第一個被調函數
void sort(int a[][N])
它裡面省略的行,我知道,二維數組可以這么寫,但,在這個被調函數中,要使用到行數啊,它不給出,後面,怎麼計算呢?

這個程序中,行數N在前面已經定義了
在整個程序的過程中,N不是一個變數,而是表示數字4!!

㈣ 《C語言程序設計》第12章在線測試

D,C,A,B,B
BD,ABC,ABCE,B,BC
錯(&是取地址符),錯(移到距末尾-10L的地方),錯(返回0),對,對

㈤ 《C語言程序設計》第17章在線測試

1、D 因為#define C(x) ((x)*(x))宏中需要使用完備的括弧才不會有引用錯誤
2、D 認真區分char a[]和char *p的區別,a是數組的首地址,也是指針,但是p僅僅是指向一個字元串的首地址的指針,雖然也是指針,但是你並不知道p指針具體在什麼代碼段的什麼位置,從而p+=2的位置你也無法確定。
3、C extern本來就是外部的意思嘛
4、A 僅僅在主函數中有效,這是對的。
5、B 局部變數優先,給你舉個例子:
int a=1;
int main()
{
int a=2;
cout<<a;
return 0;
}
就是類似這樣的例子,你在main函數外定義了一個全局變數a,在main內部又定義了一個變數名也是a的局部變數,那麼你在main中用cout輸出的時候就是輸出了局部變數a的值,要輸出全局變數a的值時則要使用::a,實際上是局部變數將全局變數屏蔽了,可以看做局部變數的優先於全局變數
/**********************************************************************************/
第二題1、ABC
2、ABD
3、CD
4、AB
5 、AD
/**********************************************************************************/
第三題
正確
錯誤,可改為int *p=&x
錯誤,不是指向結構體的指針,不可以用->
正確,因為數組名那可是一個指針,是數組的首地址
正確 當然可以遞歸了,網上多的是那種遞歸的小程序
如果有什麼不清楚,咱們可以後續交流哦@—@

㈥ 《C語言程序設計》第10章在線測試

1、單選題: D C A A D
2、多選題:
ABD ACD ACD AD BC
3、判斷題:
錯誤 正確 錯誤 正確 錯誤

㈦ 《C語言程序設計》第10章在線測試

//做一題。
第一題、單項選擇題(每題1分,5道題共5分)
1、以下數組定義中不正確的是:
D、int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

2、C語言中規定,函數的返回值的類型是由:
D、在定義該函數時所指定的函數類型所決定

3、一個C程序的執行是從( )。
A、main()函數開始,在main()函數中結束

4、若有int a[3][4]; ,則數組a的第10 個元素是( )。
A、a[2][1]

5、若有int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};,則數組a的第1維的長度為( )。
B、3

㈧ 《C語言程序設計》練習題

一、選擇題
1、C語言規定,在一個源程序中,main()函數的位置(C )。
A) 必須在最開始 B)必須在最後
C) 可以任意 D) 必須在系統調用的庫函數後面

這題你死記就行,你看看這個
任何一個C++程序都必須定義一個main函數,它的返回類型總是int類型。這個函數由操作系統來調用,在main函

數執行完以後,程序也就終止了。 main也可以使用return向操作系統返回一個值,使用操作系統的命令可以檢測

main的返回值。一般約定在main返回0時,表示程序運行過程中沒有出現錯誤,其它非零值表示程序出現異常情況。
若沒有為main指定返回值,這樣返回值是任意的。

2、若x和y都是int 型變數,x=100,y=200,且有以下程序段,printf(「%d」,(x,y));則其輸出結果是( A)。
A) 200 B) 100 C) 100 200 D) 輸出不確定值

(x,y)這是個逗號表達式,表達式的值為最後一個逗號後面表達式的值,因為前面有一個%d,所以輸出 的是y的



3、合法的C語法字元常量是(C )。
A) 「A」 B) 65 C) 『\t』 D) A

字元都是由兩個單引號括起來的,死記, a)為字元串

4、表達式「3!=4」的值是(A )。
A) 1 B) 0 C) T D) F

!=是c語言的邏輯運算符,3!=4為真,多以得1, 3=4為假,值為0

5、 int a=1,b=2,c=3,d=4,執行下列程序後x的值為( C)。
if(a>b) x=1;else if (c>d) x=2;else x=3;
A) 1 B) 2 C) 3 D) 4

如果a>b,1>2為假,不執行x=1,執行else if(c>d),判斷:3>4為假,不執行x=2,執行=3,完

6、以下程序的輸出結果是(D)。
Int x=10,y=3,z;printf(「%d\n」,z=(x%y,x/y));
A)1 B) 0 C) 4 D) 3

逗號表達式,x%y,10%3,商3餘1,模取余數1,x/y,10/3,商3餘1,除法取商3,逗號表達式,表達式的值為最後一

個逗號後面表達式的值

7、為表示x≥y≥z,應使用C語言表達式(A )。
A) (x>=y)&&(y>=z) B) (x>=y) AND (y>=z)
C) (x>=y>=z) D) (x>=y) & (y>=z)

關系運算符,x>=y與y>=z必須是同時成立的,因此要用邏輯運算符&&,&&與的意思

8、合法的數組定義是( a )。
A) int a[ ]=」string」; B) int a[5]={0,1,2,3,4,5};
C) char a=」string」; D) char a[ ]={「01234」};

a不指定數組長度定義,正確
b數組長度為5,就是裡面有5個數組元素,多了一個數組元素
c定義a不是數組而是一個變數,素組應該是a[]
d是錯的,字元串是這樣定義的:char a[ ]={'0','1','2','3','4','\0'};
[4]中數字是數組長度,說明裡面有幾個元素

9、設x和y均為int型變數,則語句「x+=y;y=x-y;x-=y;」的功能是(D)。
A) 把x和y按從小到大排列 B)把x和y按從大到小排列
C)無確定結果 D)交換x和y中的值

x+=y等同於x=x+y,把x加y的值賦給x,x現在存的是x與y的和
y=x-y把x減y的值賦給y,x現在存的是x與y的和 (x+y)-y=x,把x的值給y,y存x的值
x-=y等同於x=x-y,把x減y的值賦給x,(x+y)-y=x,現在的後面的y存的是x的值,做完後x里存的值是y,完成交換

10、若已定義x和y為double類型,則表達式「x=1,y=x+3/2」的值是(C)。
A) 1 B)2 C) 2.0 D) 1.0

逗號表達式,先讓x=1在算y=x+3/2,得2,因為是double類型,所以有小數點

11、下列條件語句中,功能與其他語句不同的是 (D)
A) if(a) printf("%d\n",x); else printf("%d\n",y);
B) if(a==0) printf("%d\n",y); else printf("%d\n",x);
C) if (a!=0) printf("%d\n",x); else printf("%d\n",y);
D) if(a==0) printf("%d\n",x); else printf("%d\n",y);

a 如果a為真輸出x,如果a為假輸出y
b 如果a==0,也就是為假,輸出y,a為真輸出x,同a
c 如果a!=0為真,輸出x,a為假輸出y同上
d 如果a為假輸出x,如果a為真輸出y,與以上的都不同

12、以下能正確定義二維數組的是 (C)
A) int a[][3]; B) int a[][3]=2{2*3};
C) int a[][3]={0}; D) int a[2][3]={{1},{2},{3,4}};

a 沒有給數組賦初值
b {}里不能有*
c 正確,記住第一個[]中可以為空,第二個[]不能為空,死記
d a[2][3] 的意思是有兩個一維數組,每個一維數組里有3個元素,{{1},{2},{3,4}}; 她的意思是三個數組,{}中的每一個{}代表一個數組,里邊的數為數組元素

13、用C語言編寫的代碼程序 (B)
A)可立即執行 B)是一個源程序
C)經過編譯即可執行 D)經過編譯解釋才能執行

死記

㈨ C語言答疑

//代碼如下
#include <stdio.h>
#define N 5
#define MAX_LEN 256

//冒泡排序(將序)
void bubbleSort(char (*pt)[MAX_LEN],int n) //形參pt為指向二維字元數組的指針
{
int i,j; //i表示趟數,j表示第i趟兩兩比較的次數
char tmp[MAX_LEN]; //臨時字元數組
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(strcmp(pt[j],pt[j+1]) < 0) //字元串進行兩兩大小比較,如果<0,則執行if語句體
{ //兩個字元串進行交換操作
strcpy(tmp,pt[j]);
strcpy(pt[j],pt[j+1]);
strcpy(pt[j+1],tmp);
}
}

int main()
{
char city[N][MAX_LEN];
int i=0;

printf("請輸入%d個城市名:\n", N);
for(i=0; i<N; i++)
scanf("%s", city[i]);
bubbleSort(city, N);
printf("降序輸出城市名:\n");
for(i=0;i<N;i++)
printf("%s\n", city[i]);
return 0;
}
//示例運行結果
F:\c_work>a.exe
請輸入5個城市名:
Beijing Shanghai Shenzhen Guangzhou Wuhan
降序輸出城市名:
Wuhan
Shenzhen
Shanghai
Guangzhou
Beijing

㈩ c語言程序設計

第一章 程序設計的基本概念

第一節 C語言的發展歷史與特點

第二節 程序與程序設計

第三節 演算法與演算法的描述

第四節 C語言的上機操作

思考題與習題

第二章 C語言程序設計基礎

第一節 C語言的程序結構

第二節 數據類型

第三節 運算符與表達式

思考題與習題

第三章 C程序控制結構

第一節 C程序的三種基本控制結構

第二節 順序結構

第三節 選擇結構

第四節 循環結構

思考題與習題

第四章 數組

第一節 數組與數組元素的概念

第二節 一維數組

第三節 二維數組及多維數組

第四節 字元串與字元數組

思考題與習題

第五章 指針

第一節 指針與指針變數的概念

第二節 指針變數的定義和引用

第三節 指針變數與數組

思考題與習題

第六章 函數

第一節 函數的定義

第二節 函數的嵌套調用

第三節 數組作為函數參數

第四節 指針與函數

第五節 變數的使用范圍與存儲類別

第六節 不同文件中的函數使用

思考題與習題

第七章 編譯預處理

第一節 宏定義

第二節 文件包含

第三節 條件編譯

思考題與題

第八章 結構體與共用體

第一節 結構體基礎

第二節 結構體數組

第三節 結構體指針

第四節 鏈表

第五節 位段

第六節 共用體

第七節 枚舉類型與自定義類型

思考題與習題

第九章 文件

第一節 文件概述

第二節 文件的打開與關閉

第三節 文件的讀/寫

第四節 文件的定位

思考題與習題

第十章 程序設計方法

第一節 程序設計的基本概念

第二節 結構化程序設計方法

第三節 程序效率

第四節 程序設計風格

思考題與習題

附錄

附錄A C語言實驗

附錄B 標准ABSII碼表

附錄C C語言中的關鍵字

附錄D 運算符的優先順序與結合性