《湖南省历界对口高考C语言真题(答案)》由会员分享,可在线阅读,更多相关《湖南省历界对口高考C语言真题(答案)(33页珍藏版)》请在金锄头文库上搜索。
1、历界高考C语言真题2007年真题一、程序分析题1、#include #*eef241-2main( ) int x=3; do printf(“%d”,x-=2); while(!(-x);2、#include main( ) int x=4,y=8,z; z=x2|y; printf(“%d”,z);3、#include main( ) char x=E,y=e; printf(“%c”,x+32); printf(“%c”,(x-,y+); printf(“%cn”,x=y?x+=32:(y-=32);4、#include main( ) int t=2; while(t5) switch
2、(t%2) case 0: t+;printf(“#”);break; case 1: t+=2;printf(“*”); default:printf(“n”);5、#include main( ) char str150=”Beijing 2008”,*q=str1; char str250=”One world One Dream!”,*p=str2; while(*p!=0) p+;One world One Dream!Beijing 2008 while(*q!=0) *p+=*q+; *p=0; printf(“%s”,str2); 6 #include #includemain
3、( )gfedcba char s=”abcdefg”,t; int i=0,j=strlen(s)-1; while(ij) t=si,si=sj,aj=t;i+,j-;puts(s); 二、程序填空题1、下面程序的功能是求1000以内的完数。完数是指一个数的子因子之和等于这个数本身。 #include main( ) int i,j,sum;for(i=1; i1000 ;i+) sum=0; for(j=1;ji;j+) if(i%j=0) sum+=j; if( sum=i ) printf(“%dn”,i); 2、以下程序是统计一维数组arr中小于平均值的元素个数。 #include
4、 #define N 7 int fun(int s,float aver) int i,count=0;for(i=0;iN;i+) if( siaver ) count+;return count;main( ) int i,arrN=87,34,5,78,90,66,88; float aver=0; for(i=0;iN;i+) aver+=arri;aver=aver/N;printf(“统计结果为:%d”, fun(arr,aver );三、程序改错题,不得增行或删行。1、下面的程序是求,在函数fun()中存在两处错误,请标记并改正。 #include long fun(int x
5、) 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=%ldn”,fun(num);2、以下程序的功能是:从字符串str中,删除所有字母c,不区分大小写。如输入字符串”abcCdefcfCg”,删除后的字符串为”abdefg”。程序有两错误,请标记并改正。#includemain( ) char str81; int i=0,j=0;gets(st
6、r);while(stri!=0) if(stri!=c|stri!=C) if(stri!=c&stri!=C) strj=stri; strj+=stri; i+;strj=0;printf(“%s”,str);3、以下程序从一个二进制文件中读出结构体数据,并将结构体数据输出在屏幕上。程序中有三处错误,请标记并改正。#includestruct student char name10; float score;stu;main( ) file *f; FILE *f; if(f=fopen(“a.dat”,”r”)=NULL) printf(“cannot open outfilen”);
7、 exit(0); while(feof(f) while(!feof(f) fread(stu,sizeof(struct student),1,f); fread(&stu,sizeof(struct student),1,f); printf(“%s,%.2fn”,stu.name,stu.score);fclose(f);四、程序设计题1、已知一个数列从1项开始的前6项为:0,0,1,1,2,4,以后的各项都是其相邻的前3项之和,计算并输出该数列前20项之和。2、写一函数sort(int x ,int n)实现选择法排序 (从小到大)。 2008年真题一、程序分析题1、#include
8、 21229.18,10main( ) 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(3.2,5.4)/2;printf(“6.1f”,c);3、#include void fun( ) int x=1;static int y=1;printf(“%d%d”,+x,y+); main( ) int i;for(i=0;i2;i+) fun( );4、#include main( )3403 int a=12,b=0,n=0;do b+=2;a-
9、=2+b; n+; while(a=0);printf(“%d”,n); 5、#include main( ) int n=132,i=1,j,k,b10;while(n!=0) j=n%6; bi=j; n=n/6; i+;for(k=i-1;k0;k-) printf(“%d”,bk);二、程序填空题1、任意输入平面一点坐标(x,y),求该点到原点(0,0)的距离。#include #include #include typedef struct NODE float x;float y; NODE;main( ) NODE *p;p= (NODE *)malloc(sizeof(NODE
10、) ;scanf(“%f,%f”,&p-x,&p-y);printf(“%5.1f”,sqrt(p-x*p-x+p-y*p-y); free(p) ; 2、下列给定程序中,函数fun( )的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。 #include #include #define N 4 #define M 50 char *fun(char (*q)M) int i;char *p; p=*q ;for(i=0;iN;i+) if(strlen(p) strlen(*(q+i) ) p=*(q+i) ;return p; main( ) char strNM=“p
11、ingpong”,”basketball”,field hockey”,”softball”;char * longest; int i;longest=fun(str);printf(“The longest string:n”);puts(longest); 3、下列程序定义了33的二维数组,并在主函数中自动赋值;函数fun的功能是使二维数组的上三角元素的值全部置0。调用函数前调用函数后 1 2 3 1 0 0 2 4 6 2 4 0 3 6 9 3 6 9 #include void fun(int n,int a 3); main( ) int a33,i,j; for(i=1;i=3;i+)for(j=1;j=3;j+) ai-1j-1 =i*j; fun(3,a); printf(“the result:n”); for(i=0;i3;i+) for(j=0;j3;j+) printf(“%4d”,aij); printf(“n”); void fun(int n,int a33) int i,j; for(i=0;in-1;i+) for(j=i+1; jn ;j+)