一.選擇題(每題2分,共20分) 1下面不是C語言關鍵字的是 C A.volatile B. unsigned C. Do D. void 2. 下面不是C語言合法標識符的是 B A.fine5 B. &i C._score D. flag 3. C語言規(guī)定,簡單變量做實參時,它和對應形參之間的數(shù)據(jù)傳達方式是 A . A. 單向值傳遞 B. 地址傳遞. C.由實參傳給形參再有形參傳回給實參. D.由用戶指定傳遞方式. 4若用數(shù)組名作為函數(shù)調用的實參傳遞給形參的是 D . A.數(shù)組元素的個數(shù). B.數(shù)組第一個元素的值. C.數(shù)組中全部元素的值. D. 數(shù)組的首地址. 5.下面正確的定義語句是 D A.int a[1][4]={1,2,3,4,5}; B. double y[][3]= 0; C. long b[2][3]={{1},{1,2},{1,2,3}}; D. float x[][3]={{1},{2},{3}}; 6.C語言規(guī)定,函數(shù)返回值的類型是由 A . A. 在定義該函數(shù)時所指定的函數(shù)類型所決定. B.調用該函數(shù)時的主調函數(shù)類型所定決. C.調用該函數(shù)是系統(tǒng)時決定. D. return語句中的表達式類型所決定.
|
7..設有程序段
int k=3;
while(k) k=k-1;
則下面描述中正確的是
C .
A. 循環(huán)體語句一次也不執(zhí)行 B.循環(huán)是無限循環(huán)
C. while循環(huán)執(zhí)行3次.
D.循環(huán)體語句執(zhí)行一次
8. 根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為
D
A.scanf(“%f,%f”,&f1,&f2) B. scanf(“%3.2f%2.1f”,&f1&f2);
C. scanf(“%3.2f%2.1f”,&f1,&f2); D. scanf(“%f%f”,&f1,&f2);
9. .以下敘述不正確的是 C .
A. 一個C源程序必須包含一個main函數(shù) B.. 一個C源程序可有一個或多個函數(shù)組成.
C. 在C程序中,注釋說明只能位于一條語句的后面.
D. C程序的基本組成單位是語句.
10.下面不正確的字符串常量是 D
A.”while”
B.”12’12”
C.”0” D. ’file’
二.填空(每空2分,共20分)
1.有int x=2 ,y=3;且y +=
(x++),則x=3, y= 5 .
2.執(zhí)行下面程序段后,k的值是
36 .
k=1;n=263;
do {k*=n%10;n=n/10;} while(n);
3. C語言中函數(shù)頭給出函數(shù)的特征描述,包括函數(shù)的 屬性 、類型、名字、參數(shù)及參數(shù)類型.
4.有int x ,y , z;且x=3.2,y=4.2,z=2,則表達式z=(x+y)/z的值為 3
.
|
5.在執(zhí)行語句for(i=0;i<3;i=i+2) printf(“%d”,i)時,表達式1執(zhí)行了 1次,表達式2執(zhí)行了3次.
6.下面程序段中循環(huán)體的執(zhí)行次數(shù)是
3 次.
a=10;b=0;
do {b=b+2;a-=2+b;} while(a>=0);
7以下程序的運行結果是 m=3,n=5
#include "stdio.h"
main()
{ int i=0,j=0,m=1,n=3;
switch(i++)
{case 0:m++;
case 1:n++;
case2:
case 3:
m++;n++;break;
case 4:
m++;n++;
}printf("m=%d,n=%d",m,n);}
8. 以下程序的運行結果是6
main()
{int m=5;
if(m++>5)
printf(“%d”,m);
else
printf(“%d”,m--);}
|
三.寫出下面程序的運行結果.(每題5分,共20分)
1.程序 main()
{int
a=3,b=5,c=2,d=1,x;
if(a<b)
x=c+d;
else
x=c-d;
printf("%d",x);
}
運行結果是 3
2.下面程序的運行結果是 x=11
.
#include
"stdio.h"
int x=10;
int f(int
y)
{static
int x=0; x+=y;}
main()
{int x=6;
{int x=5;
f(x);
}
x=f(x);
printf("x=%d",x);
}
|
|
|
科 目
|
3. 下面程序的運行結果是a=16,y=36.
#include “stdio.h”
main()
{
int a,y;
a=2;
y=0;
do
{a+=2;
y+=a;
if(y>30)
break;
}
while(a=14);
printf(“a=%d,y=%d\n”,a,y);
}.
4.下面程序的運行結果是 x=30,y= +30.00 .
main()
{int x;
float y=353;
x=y/100;
y=x*=10;
printf(“x=%d,y=%+7.2f”,x,y);
}
|
四.根據(jù)題目的要求,補全下面的程序。(每空4分,共20分)
1.以下程序的功能是求10個數(shù)中的正整數(shù)之和,請補全程序。
#include
"stdio.h"
main()
{int s=0,i,j;
for(i=0;i<=10;i++)
{scanf(“%d”,&j);
if(j<=0)
(1)
;
s+=j;}
printf(“和=%4d”,s);
}
解答:(1)continue
2.下面程序的功能是:可以通過指針輸出數(shù)組a中任一行、任一列元素的值。請補全程序。
#include
"stdio.h"
main()
{ int a[3][5]={2,4,6,8,10,12,14,16,18,20,22,24,26,28,30};
int i,j;
int (*p)[ (2 ];
p=a;
printf(“Enter
i,j;(0<=i<=2),(0<=j<=4):”);
scanf(“%d,%d”,&i,&j);
|
|
|
科 目
|
printf(“a[%d][%d]=%d\n”,i,j,*( (3 )
));
}
接答:(2 )5 (3) *(p+i)+j
3. 以下程序的功能是用枚舉法求百雞問題,公雞五元一只,母雞三元一只,小雞一元兩只;一百元要買一百只雞,且需包含公雞、母雞和小雞。問有幾種方案可以實現(xiàn)。請?zhí)羁眨ㄒ笠暂^高的效率和合理的數(shù)值填空)。
#include "stdio.h"
main()
{int n,i,j,k;
n=0;
for(i=1;i<=19;i++)
for(j=1;j<=(100-5*i)/3;j++)
{k=100-i-j;
if(k%2==0&&5*i+3*j+k/2==100)
{n++;
printf("n=%d,cock=%d,hen=%d,chick=%d\n",n,i,j,k);
printf("jine=%d\n",5*i+3*j+k/2);
}
}
}
解答:(4)n,i,j,k (5) 5*i+3*j
五.編程題:(每小題10分,共20分)
1.用冒泡排序法將數(shù)組a[10]={1,3,2,5,6,7,4,9,10,8}中的數(shù)據(jù)進行從大到小進行排列,并輸出排好的數(shù)組a[10].
|
解:#include “stdio.h”
main()
{int
a[10]={1,3,2,5,6,7,4,9,10,8};
int i,flag,t;
do
{flag=0;
for(i=0;i<8;i++)
if(a[i]<a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;flag=1;}
}
while(flag)
for(i=0;i<10;i++)
printf(“排序后的數(shù)組:\t”,a[i]);
}
2.編程判斷輸入的一個正整數(shù)是否既是5的又是7的倍數(shù),若是則輸出YES,否則輸出NO.
解:#include “stdio.h”
main()
{int x;
printf(“請輸入一個正整數(shù):”);
scanf(“%d”,&x);
if(x%5= =0&&x%7= =0)
printf(“YES”);
else printf(“NO”);
}
|
|
|
|