第一部分 公共基礎(chǔ)
略
第二部分 C語言
1(單選題):
若有聲明“int a=3,b=4,c=5;”,則執(zhí)行語句“a>b?a--:(b>c?b++:(c/=2)); printf("%d\n",a+b+c);”時輸出_____9_____。
9
9.5
11
13
2 (填空題 <3空> ) :
以下程序運(yùn)行時輸出結(jié)果中第一行是3 ,第二行是 5 ,第三行是4 。
#include
typedef struct node
{
int value;
struct node *next;
} NODE;
void Max(NODE *head)
{
NODE *p,*first,*second;
first=second=NULL;
p=head;
while(p!=NULL)
{
if(first==NULL||p->value>=first->value)
{
second=first;
first=p;
}
else if(second==NULL||p->value>=second->value)
second=p;
p=p->next;
}
printf("%d\n%d", first->value, second->value);
}
int main( )
{
NODE a[]={{3,&a[1]},{1,&a[2]},{5,&a[3]},{4,NULL}},*head=&a[0];
printf("%d\n", head->value);
Max(head);
return 0;
}
3(單選題):
若有聲明“char s1[80]="good ",s2[80]="luck ",s3[80]="to you";”,則執(zhí)行語句
“strcpy(s1+5,strcat(s2,s3)); printf("%s",s1);”時輸出____ good luck to you ______。
4 (填空題 <2空> ) :
以下程序運(yùn)行時輸出結(jié)果中第一行是22,第二行是11。
#include
void series(int n)
{
while(n!=1)
{
if(n%2!=0)
n=3*n+1;
else
while(n%2==0) n/=2;
printf("%d\n",n);
}
}
int main( )
{
series(7);
return 0;
}
5 (填空題 <2空> ) :
以下程序運(yùn)行時輸出結(jié)果中第一行是0,第二行是4。
# include
int f(int x,int y)
{
int t,i,M=23;
if(y==1) return 0;
for(i=t=1;i
{
t=t*x%M;
if(t==y) return i;
}
printf("沒有結(jié)果\n");
return 0;
}
int main( )
{
printf("%d\n%d",f(3,1),f(4,3));
return 0;
}
6(單選題):
以下聲明中正確的是__________。
unsigned char x;
unsigned float x;
signed double x;
long char x;
8 (填空題 <3空> ) :
以下程序運(yùn)行時輸出結(jié)果中第一行是1,第二行是1,第三行是3。
#include
void Pascal(int a[],int n)
{
int i,j;
for(a[0]=1,i=1;i<=n;i++) a[i]=0;
for(i=1;i<=n;i++)
for(j=i;j>0;j--)
a[j]+=a[j-1];
}
int main( )
{
int b[20];
Pascal(b,1);
printf("%d\n",b[1]);
Pascal(b,3);
printf("%d\n%d\n",b[0],b[2]);
return 0;
}
9(單選題):
若有聲明“int b=1,c[10]={2},*x=c; ”,則以下語句中正確的是__________ 。
*x=c[10];
b=*x;
c={1,2,3};
&b=c;
1(完善程序):
完善程序(共12分,每空3分)
【要求】
1. 打開T盤中文件myf0.c,按以下程序功能完善文件中的程序。
2. 修改后的源程序仍保存在T盤myf0.c文件中,請勿改變myf0.c的文件名。
【程序功能】
假定Min函數(shù)形參a指向的結(jié)構(gòu)數(shù)組前n個元素中存儲了n個二維點(diǎn)坐標(biāo)值且互不相同。Min函數(shù)的功能是將這n個點(diǎn)坐標(biāo)中排序最小的點(diǎn)坐標(biāo)從數(shù)組中刪除,函數(shù)返回被刪除的點(diǎn)坐標(biāo)值。
所謂排序最小的點(diǎn)坐標(biāo)指的是在所有點(diǎn)坐標(biāo)(x,y)中,x值最小且y值最小。
【測試數(shù)據(jù)與運(yùn)行結(jié)果】
測試數(shù)據(jù):{0.5,3.0},{-3.0,5.0},{-1.5,3.5},{-3.0,-2.5}
輸出:
排序最小的點(diǎn)坐標(biāo)是:(-3.0,-2.5)
剩余的點(diǎn)坐標(biāo):
(0.5,3.0) (-3.0,5.0) (-1.5,3.5)
【待完善的源程序】
#include
#include
struct Point
{ double x,y; };
struct Point Min(struct Point a[ ], int n)
{
int i,k;
struct Point p;
for(k=0,i=1;i
{
if(a[i].x 【1】a[i].y )
k=i;
}
p=a[k];
for(i=k;i
a[i]=a[i+1];
return 【2】 p ;
}
int main()
{
struct Point 【3】 pt[200]={ {0.5,3.0},{-3.0,5.0},{-1.5,3.5},{-3.0,-2.5}},p;
int i,n=4;
p=Min(pt,n);
printf("排序最小的點(diǎn)坐標(biāo)是:(%.1f,%.1f)\n", 【4】 p.x,p.y );
printf("剩余的點(diǎn)坐標(biāo):\n");
for(i=0;i
printf("(%.1f,%.1f)\t",pt[i].x,pt[i].y);
printf("\n");
getch();
return 0;
}
2(改錯題):
改錯(共16分,每個錯4分)
【要求】
1. 打開T盤中文件myf1.c,按以下程序功能改正文件中程序的錯誤。
2. 可以修改語句中的一部分內(nèi)容,調(diào)整語句次序,增加變量聲明或預(yù)處理命令,但不能增加其他語句,也不能刪去整條語句。
3. 修改后的源程序仍保存在T盤myf1.c文件中,請勿改變myf1.c的文件名。
【程序功能】
函數(shù)find的功能是在a指向二維數(shù)組中存儲的一個5×5階矩陣內(nèi)查找并輸出所有具有以下特性的數(shù)組元素a[i][j]:第i行上所有元素之和等于第j列上所有元素之和(0≤i<5,0≤j<5)。
【測試數(shù)據(jù)與運(yùn)行結(jié)果】
測試數(shù)據(jù):
2 8 1 9 4
5 7 1 3 0
7 1 7 5 2
3 2 2 1 5
0 2 1 6 8
輸出:
a[0][3] a[4][0]
【含有錯誤的源程序】
#include
#include
void find(int a[5][]) 修改為 void find(int a[5][5])
{
int i,j,row,col,sum1,sum2;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
sum1=sum2=0;
for(col=0;col<5;col++)
sum1+=a[i][col];
for(row=0;row<5;row++)
sum2+=a[j][row]; 修改為 sum2+=a[row][j];
if(sum1=sum2) 修改為 if(sum1==sum2)
printf("a[%d][%d] ",i,j);
}
}
int main()
{
int a[5][5]={{2,8,1,9,4},{5,7,1,3,0},{7,1,7,5,2},{3,2,2,1,5},{0,2,1,6,8}};
find(a[5][5]); //修改為 find(a)
getch();
return 0;
}
3(編程題):
編程(共22分)
【要求】
1. 打開T盤中文件myf2.c,在其中輸入所編寫的程序。
2. 數(shù)據(jù)文件的打開、使用、關(guān)閉均用C語言標(biāo)準(zhǔn)庫中緩沖文件系統(tǒng)的文件操作函數(shù)實(shí)現(xiàn)。
3. 請勿改變myf2.c的文件名。
【程序功能】
數(shù)組數(shù)據(jù)處理。
【編程要求】
1.編寫void process(int *a,int n,int m1,int m2)函數(shù)。函數(shù)功能:先將a指向數(shù)組前n個元素中存儲的數(shù)據(jù)按升序排列,再將a[m1]~a[m2]中的數(shù)據(jù)逆置。
2.編寫main函數(shù)。函數(shù)功能:聲明1個一維數(shù)組和變量m1、m2并用測試數(shù)據(jù)初始化,用數(shù)組及變量作實(shí)參調(diào)用process函數(shù),將處理后的數(shù)組中數(shù)據(jù)輸出到顯示器屏幕及文件myf2.out中。最后將考生本人準(zhǔn)考證號輸出到文件myf2.out中。
【測試數(shù)據(jù)與運(yùn)行結(jié)果】
測試數(shù)據(jù): 4 31 -23 49 87 65 0 -67 17 79,m1=2, m2=6
輸出: -67 –23 49 31 17 4 0 65 79 87
編寫時按步驟給分
|