当前位置:首页 > 湖南省历界对口高考C语言真题(答案)
main( ) { int i;
char who=’A’; int isFound=0;
for(i=0; i<4 ;i++) { int sum=0;
who= ‘A”+i ; if(who!=’A’)sum++; if(who==’C’)sum++; if(who==’D’)sum++;
if( who!=’D’&&who!=’B’ )sum++; if( sum==3 ) { printf(“罪犯是%c\\n”,who); isFound=1; } }
if(!isFound)
printf(“没有找到符合条件的人\\n”); }
四、程序分析题
1、 #include
main( )
{ int a=7,b=3,c=2; int d=(a>b!=c); printf(“%d”,d); }
2、当以下程序输入为125时,运行结果是
#include
while((c=getchar( ))!=’\\n’) switch(c-‘2’) { case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break; case 3: putchar(c+3);
default: putchar(c+2);break;
} }
3、#include
return f;
1 36687 25
}
main( ) { int i;
for(i=2;i<=3;i++)
printf(“%d”,func(i)); }
4、#include
{ int a[9]={1,2,3,4,5,6,7,8};
int *p=a; int sum=0;
for( ;p 5、#include for(i=0;i<3;i++) (*q)--; } main( ) { int a[5]={8,7,6},i; f(a); for(i=0;i<3;i++) printf(“%d”,a[i]); } 五、程序填空题 36 20 576 1、下面程序从文本文件test.txt逐个读入字符,并显示在屏幕上。 #include char ch,*filename=”tdst.txt)) if((fp= fopen (filename,”r”))==NULL) { printf(“cannot open file\\n”); exit(0); } while(! feof (fp)) { ch=fgetc(fp); putchar(ch); } fclose(fp); } 26 2、以下程序的功能是:读入一行字符,以回车结束,按输入时的逆序使用单链表进行存储,先输入的位于链表尾,然后再遍历输出链表。 struct node { char value; struct node *link; }; main( ) { struct node *top,*p; char c; top=NULL; while((c=getchar( )) !=’\\n’ ) { p=(struct node *)malloc(sizeof(struct node)); p->value=c; p->link=top; top=p ; } p=top; while(p) { putchar( p->value ); p=p->link; } } 3、折半查找也称为二分查找,适用于有序数组。已知数组按照升序排列。 #include int data[10]={1,3,5,7,8,9,13,18,22,28}; int ret; printf(“请输入要查找的数:”); scanf(“%d”,&key); ret=BinarySearch(key,data); if(ret>=0) printf(“\\n %d 是数组中的第%d个数\\n”,key,ret+1); else printf(“\\n %d在数组中未找到!\\n”,key); system(“pause”); return 0; } int BinarySearch(int key,int data[ ]) { int low=0,high=9,middle; while( low<=high ) { middle= (low+high)/2 ; if( key==data[middle] ) return middle; 27 else if(key return -1; } 六、程序改错题,不得增选或删行,也不得更改程序结构。 1、矩阵乘法是指两个矩阵相乘,生成一个新矩阵,其乘法公式如下: cij?K?aill?1?blj 以下程序实现两个2×2的矩阵相乘。只对程序中的两行代码进行修改,使其可以正确运行。 #include { int a[M][K]={1,-1,0,2}; int b[K][N]={4,0,2,5}; int c[M][N}; int c[M][N}={0}; int i,j,l; for(i=0;i c[i][j]=a[i][l]*b[l][j]; c[i][j]+=a[i][l]*b[l][j]; return 0; } 2、某班举行歌唱比赛,赛后需要显示成绩最高的选手名字和成绩,以下程序实现了查找得分最高选手的功能。只对程序中的三行代码进行修改,使其可以正确运行。 #include struct PLAYER typedef struct PLAYER { char *name; float score; }Player; int main( ) { Player players[]={{“丁一”,90.3},{”陈二”,95.8},{“张三”,89.6}}; Player * player; Player topplayer=players[0]; for(player=players;player if(player.score>topplayer.score) if(player->score>topplayer.score) topplayer=player; topplayer=*player; printf(”Top Player is %s,score is %6.2f”,topplayer.name,topplayer.score); return 0; } 28
共分享92篇相关文档