湖南省历界对口高考C语言真题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2007年真题
一、程序分析题
1、#include <>
main( ) { int x=3; do
printf(“%d ”,x-=2); while(!(--x)); }
2、#include <> main( )
{ int x=4,y=8,z; z=x<<2|y;
printf(“%d ”,z); }
3、#include <> main( )
{ char x=’E ’,y=’e ’; printf(“%c ”,x+32);
printf(“%c ”,(x--,y++));
printf(“%c\n ”,x==y?x+=32:(y-=32)); } 4、#include <> main( ) { int t=2; while(t<5) switch(t%2)
{ case 0: t++;printf(“#”);break; case 1: t+=2;printf(“*”); default:printf(“\n ”);
} }
5、#include <> main( )
{ char str1[50]=”Beijing 2008”,*q=str1;
char str2[50]=”One world One Dream!”,*p=str2; while(*p!=’\0’) p++;
while(*q!=’\0’) *p++=*q++; *p=’\0’; printf(“%s ”,str2); }
6 #include <> #include<>
main( )
{ char s[]=”abcdefg ”,t; int i=0,j=strlen(s)-1; while(i { t=s[i],s[i]=s[j],a[j]=t;i++,j--;} puts(s); } 二、程序填空题 1、下面程序的功能是求1000以内的完数。完数是指一个数的子因子之和等于这个数本身。 #include<> main( ) { int i,j,sum; for(i=1; i<1000 ;i++) { sum=0; for(j=1;j if( sum==i ) printf(“%d\n ”,i); } } 2、以下程序是统计一维数组arr 中小于平均值的元素个数。 #include<> #define N 7 int fun(int s[],float aver) { int i,count=0; for(i=0;i } main( ) { int i,arr[N]={87,34,5,78,90,66,88}; float aver=0; for(i=0;i printf(“统计结果为:%d ”, fun(arr,aver ); } 三、程序改错题,不得增行或删行。 1、下面的程序是求 ∑=m 1 !n n ,在函数fun()中存在两处错误,请标记并改正。 #include<> long fun(int x) { int m,n,t; long sum; long sum=1; for(m=1;m<=x;m++) { t=1; for(n=1;n<=m;n++) t=m*n; t*=n; sum+=t; } return sum; } main( ) { int num; scanf(“%d”,&num); printf(“sum=%ld\n”,fun(num)); } 2、以下程序的功能是:从字符串str中,删除所有字母c,不区分大小写。如输入字符串”abcCdefcfCg”,删除后的字符串为”abdefg”。程序有两错误,请标记并改正。 #include<> main( ) { char str[81]; int i=0,j=0; gets(str); while(str[i]!=’\0’) { if(str[i]!=’c’||str[i]!=’C’) { if(str[i]!=’c’&&str[i]!=’C’) str[j]=str[i]; str[j++]=str[i]; i++; } str[j]=’\0’; printf(“%s”,str); } 3、以下程序从一个二进制文件中读出结构体数据,并将结构体数据输出在屏幕上。程序中有三处错误,请标记并改正。 #include<> struct student { char name[10]; float score; }stu; main( ) { file *f; { FILE *f; if((f=fopen(“”,”r”))==NULL) { printf(“cannot open outfile\n”); exit(0); } while(feof(f)) while(!feof(f)) { fread(stu,sizeof(struct student),1,f); { fread(&stu,sizeof(struct student),1,f); printf(“%s,%.2f\n”,,; } fclose(f); } 四、程序设计题 1、已知一个数列从1项开始的前6项为:0,0,1,1,2,4,以后的各项都是其相邻的前3项之和,计算并输出该数列前20项之和。 2、写一函数sort(int x[ ],int n)实现选择法排序 (从小到大)。 2008年真题 一、程序分析题 1、#include <> main( ) { char a=55; a=~a&055; printf(“%x,%o”,a,a); } 2、#include <> #define test(x,y) x+y main( ) { float c; c=2*test,/2; printf(“”,c); } 3、#include <> void fun( ) { int x=1; static int y=1; printf(“%d%d”,++x,y++); } main( )