一、選擇題
1.一個C語言程序是由( )構成。
A.語句 B.行號 C.數據 D.函數
2.下面標識符中正確的是( )。
A.d&ef B.6a C.z4x5c D.a3/b4
3.在C語言中,存儲一個字符型、整型、單精度實型變量所需的空間是()。
A.1、2、4 B.1、1、4 C.1、2、8 D.2、2、8
4.為了避免嵌套的條件分支語句 if——else中的else總是與( ) 組成成對關係。
A. 縮排位置相同的
B. 在其之前未配對的
C. 在其之前未配對的最近的if
D. 在同一行上的if
5.下列表達式的結果正確的是( )。
int aa,bb,cc,dd;
aa=bb=cc=dd=1;sp; aa=bb=cc=dd=1;sp; aa=bb=cc=dd=1;
(aa+1==2)?bb=aa+2:aa+3
A.2 B.3 C. 1 D.5
6.設有int x=11 ;則表達式(x+1/3)的值是( )。
A.3 B. 4 C. 11 D.12
7.設有字符串A=「He has 錢!」,則該字符串的長度為( )。
A. 9 B. 10 C. 11 D. 8
8.有如下程序段,則正確的執行結果是( )
int m=3;
while(m<=5)
{ printf(「%d 」,m-3); m++;}
A. 0 0 0 B.0 1 2 C.1 2 3 D.無結果
9.執行語句:printf(「%d」,(a=2)&&(b= -2);後,輸出結果是( )。
A.無輸出 B.結果不確定 C.-1 D. 1
10.有如下定義類型語句,若從鍵盤輸入數據,正確的輸入語句是( )。
int x; char y; char z[20];
A. scanf(「%d%c%c」,&x,&y,&z);
B. scanf(「%d%c%s」,&x,&y,&z);
C. scanf(「%d%c%c」,&x,&y,z);
D. scanf(「%d%c%s」,&x,&y,z);
11. struct ex
{ int x ; float y; char z ;} example;
則下面的敘述中不正確的是( )。
A. struct結構體類型的關鍵字 B. example是結構體類型名
C. x,y,z都是結構體成員名 D. struct ex是結構體類型
12.在C語言中對於實型數組,其每個數組元素的類型是( )。
A. 實型 B. 整型 C. 可以為任何類型 D. 不確定
13. 若已定義:int a[9],*p=a;不能表示a[1] 地址的表達式是( )。
A. p+1 B. a+1 C. a++ D. ++p
14. 在TC2.0環境中,對文件進行保存使用的命令是( )。
A. OPEN B. SAVE C. LOAD D. WRITE TO
15.在C++的類中,用於表示公共類型的關鍵字是( )。
A. class B. private C. protect D. public
二、填空題
1.在C語言中,正確的標識符是由____________組成的,且由____________開頭的。
2. 設p=30,那麼執行q=(++p)後,表達式的結果q為______,變量p的結果為________.
若a為int類型,且其值為3,則執行完表達式a+=a-=a*a後,a的值是_________.
3. 一個變量的指針是指____________.
4. 在C語言程序中,對文件進行操作首先要____________;然後對文件進行操作,最後要對文件實行________操作,防止文件中信息的丟失。
5. 以下程序運行後的輸出結果是_________ .該程序的功能是_________ .
main()
{ int x=10,y=20 ,t=0;
if(x!=y) t=x; x=y; y=t;
printf("%d,%d\n",x,y); }
6. 若fp已正確定義為一個文件指針,d1.dat為二進位文件,請填空,以便為「讀」而打開此文件:fp=fopen( );。
7. 有以下程序,當輸入的數值為2,3,4時,輸出結果為___________.
main()
{ int x,y,z;
cout 《 「please input three number」;
cin 》x》y》z;
sum=x*x+y*2+z;
cout《「sum of number is :」《sum;
}
8. 有以下程序
main()
{ char c;
while((c=getchar())!='?') putchar( - - c ); }
程序運行時,如果從鍵盤輸入:YDG?N?<回車>,則輸出結果為 .
9.在循環中,continue語句與break語句的區別是:_________continue語句是語句的區別是:_________continue語句是_________,break 是_________.
三、程序填空與算法題
1. 下面程序是計算10個整數中奇數的和及其偶數的和,請填空。
#include <stdio.h>
main()
{ int a,b,c,i;
a=c=0;
for(i=1;i<=10;i++)
{ scanf(「%d」,&b);canf(「%d」,&b);
}
printf(「偶數的和=%d\n」,a);
printf(「奇數的和=%d\n」,c); }
2.編寫一個自定義函數,實現求兩個實數的平方和
3. 以下程序運行後的輸出結果是 .
main()
{ char s[ ]=「GFEDCBA」;
int p=6;
while(s[p]!=『D』)
{ printf(「%c 」, p);
p=p-1; } }
4.定義一個反映學生信息的結構體,包括學生的姓名,性別,年齡,成績等。
5.以下程序輸出的結果是 .
int ff(int n)
{ static int f=l;
f=f*n;
return f; }
main()
{ int i;
for(i=1;i<=5;i++) printf(「%d\n」,ff(i)); }
6. 設有以下程序:
main()
{ int n1,n2;
scanf(「%d」,&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf(「%d 」,n1); } }
程序運行後,如果從鍵盤上輸入1298;則輸出結果為 .
7.下面程序的功能是:輸出 100以內(不包含100)能被 3整除且個位數為 6的所有整數,請填空。
#Include<stdio.h>
main()
{ int i, j;
for(i=1; ____________; i++)
if (________________)
printf(「%d」, j); }
8.現有一個單鍊表Head,如下圖所示,如果要在元素B和D之間插入一個字符型元素C.
所需要的語句為:(如果用到指針,在圖中標出指針的位置)
A
B
Head
D
Z
∧
……
四、編程題
1. 編程實現求解下面的式子的結果
s=1*2+2*3+3*4+…+20*21
2.編程實現求下面的式子的結果
3.編程實現將文本文件file1.dat的內容讀出來,顯示到屏幕上。