1.壹個C語言程序是由( )構成。
A.語句
B.行號
C.數據
D.函數
2.下面標識符中正確的是( )。
A.a#bc
B.123ABC
C.sime
D.Y·M·D
3.在C語言中,存儲壹個整型、字符型、雙精度實型變量所需的字節數是( )。 )。 )。 )。
A.2、1、8
B.4、1、4
C.4、1、4
D.2、2、8
4.為了避免嵌套的條件分支語句 if--else中的else總是與( ) 組成成對關系。
A. 縮排位置相同的
B. 在其之前未配對的
C. 在其之前未配對的最近的if
D. 在同壹行上的if
5.下列表達式的結果正確的是( )。
int a,b,c,d;
a=b=c=d=2;
d=a+1==3?b=a+2:a+3
A.2 B.4 C.3 D.5
二、填空題
1.在C語言中,正確的標識符是由______________________組成的,且由_______________開頭的。
2. 設x=3,那麽表達式y=(++x)+(++x)的結果為_________,表達式執行後,變量x的結果為_________。
3. 壹個變量的指針是指_________________________________________________________________。
4. 組成數組元素的特點是_______________________________________________;
組成結構體元素的特點是________________________________________________。
5. 在C語言程序中,對文件進行操作首先要______________________________;然後對文件進行操作,最後要對文件實行__________________________________操作,防止文件中信息的丟失。
6. 對字符串進行操作的函數有_______________________________________________________等。
7. C語言程序是由___________________構成的,而C語言的函數是由____________________構成的。
8. 要想定義整型變量a , 實型變量 b , 字符型的變量c,應該使用的正確語句為______________________________________________________________________________________。
9. 寫出下面表達式的值
3*5/7+7%3_______________________ x=2 ; y=4; (x++)+y _________________________
3+4>=7-10_______________________ 3>4 ? 3%2: 1 ______________________________
x=2,y=2;++x&&++y_________________ x=3 ; x+=x-=2 ______________________________
三、判斷題
1. C語言的壹個特點是可以對計算機硬件進行操作 ( )
2. 在循環過程中,使用break語句和continue語句的作用是壹樣的 ( )
3. 在函數的定義和調用過程中,形式參數和實在參數數目可以不壹致 ( )
4. 指針變量可以接收任何類型的值 ( )
5. 在C語言程序設計中,字符數組和字符串不是完全壹樣的概念 ( )
6. 文件指針是結構體類型,用符號file來表示 ( )
7. 選擇結構(if語句)和循環結構都可以使用嵌套形式 ( )
8. 在定義二維數組時,可以將該數組的兩個維數全部省略 ( )
9. 邏輯運算符 && || ! 的運算順序是 ! 優先於 && 優先於 || ( )
10. 任何數組都可以實現整體使用操作 ( )
四、程序填空題
1.下面是實現打印九九乘法表的程序,請在畫線的位置填上適當的語句,使程序(段)完整。
main()
{ int i , j , k;
for(i=1;_____________; i++)
{ for(j=1;______________; j++)
printf(“%d*%d=%d”,_______________);
printf(________________);
}
}
2.自己設計壹個自定義函數,實現求兩個數的最大數的功能,自定義函數如下:
int max(x,y)
int x , y ;
{
}
3.設有如下面的結構體,請用C語言的語句定義出正確的結構體形式:
學生信息:包括(姓名,性別,年齡,分數),並且定義變量stud和數組stud1[30]
struct student
{
}
4. 根據給出的程序段,請寫出正確的結果
x=1 ; sum=1 ;
for (x=1 ; x<=5 ; x++)
sum=sum*x;
上面的程序段實現的功能是:______________________________________________________ ;
其運行結果為______________________________________________________________________。
5.設有如下的語句。
int a=43,b,c;
b=23;
c=a++ * --b;
(1)上面的語句段執行後a= b= c= ;
(2)簡述a++和++a的相同點和不同點:
6.設有如下的程序:
main( )
{ int i=3,*p1;
int a[3]={15,30,45},*p2;
p1=&i; p2=a;
p1=p2+2;
printf(“%d,%d\n”,*p1,*p2);
}
程序運行結果是:_______。
五、編程題 (25分)
1.編程實現對10個整數進行冒泡排序(要求排成升序)。
2.編程實現求下面的式子的結果
3.編程實現將文本文件file1.dat中的內容復制到文本文件file2.dat中去
六、附加題
用C語言程序實現在已知鏈表中的第三個位置插入數值為a的程序
參考答案
壹、選擇題
1.D 2. C 3. A 4. C 5. B
二、填空題
1.字母、數字、下劃線;以字母、下劃線開頭。
2.10;5。
3. 該變量的地址。
4.壹組數據類型相同的元素構成的;壹組數據類型不同的元素構成的。
5. 打開;關閉。
6.字符串長度、取子字符串、字符串替換、字符串復制等。
7. 函數;語句。
8. int a ; float b ; char c ;
9 9 9.3 6 1 1 1 2
三、判斷題
1. 對 2. 錯 3. 錯 4. 錯 5. 對
6. 錯 7. 對 8. 錯 9.對 10. 錯
四、程序填空題
1. i<=9 j<=9
printf(“%d*%d=%d”,i,j,i*j);
printf(“\n”); i , j , k;
2. int z;
if (x>=y) z=x;
else z=y;
return z;
3. char name[20];
char sex;
int age;
float score;
4. 實現功能:計算連續數之積, 即sum=1*2*3*4*5 ;
運行結果:sum=120
5. 44 22 946
a++:先加1,後使用表達式的值;++a表示先加1,後使用表達式的值,它們最後的結果使a加1。
6.45,15
五、編程題
1.編程實現對12個整數進行冒泡排序(要求排成升序)。
Main()
{ int a[12]; int m,n,p;
for (m=0;m<=11;m++)(m=0;m<=11;m++)
scanf(“%d”,&a[m]);
for (m=0;m<=11;m++)
for(n=0;n<11-m;n++)
if(a[n]>a[n+1])
{ p=a[n]; a[n]=a[n+1]; a[n+1]=p; }
for (m=0;m<=11;m++)
printf(“%d”,a[m]); }
2.編程實現求下面的式子的結果
# include “math.h”
main()
{ float x,y;
scanf(“%f”&x);
if (x>6) y=(x-3)/(2*x-12);
else y=-2*x*x+4*x-10;
printf(“y=%f”,y); }
3.編程實現將文本文件file1.dat中的內容復制到文本文件file2.dat中去
main()
{ char ch;
FILE *fp1,*fp2;
Fp1=fopen(“file1.dat”, “r”);
Fp2=fopen(“file2.dat”, “w”);
Ch=fgetc(fp1);
While(ch!=EOF)
{ fputc(ch,fp2);
Ch=fgetc(fp1); }
Fclose(fp1);
Fclose(fp2); }
六、附加題
p=H;K=0;
While(p!=NULL && k
{ p=p->next;
k++; }
if(p==NULL && H!=NULL) printf(“this is invilid”);
else
{ q=(Struct Linklist *)malloc(sizeof(Struct Linklist));
q->data=x; q->data=x;
q->next=p->next;
p->next=q; }