2008年湖南省对口高考真题中,哪一道题的解题思路最让你印象深刻?

2026-04-10 08:281阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1426个文字,预计阅读时间需要6分钟。

2008年湖南省对口高考真题中,哪一道题的解题思路最让你印象深刻?

一、编写程序结果:1

二、程序+1

三、输出结果:2

一、写程序结果

1、

#include <stdio.h> main() { char a=55; a=~a&055; printf("%x,%o",a,a); }

运行结果是____________________。

2008年湖南省对口高考真题中,哪一道题的解题思路最让你印象深刻?

2、

#include <stdio.h> #define test(x,y) x+y main() { float c; c=2*test(3.2,5.4)/2; printf("%6.1f",c); }

运行结果是____________________。

3、

#include <stdio.h> void fun() { int x=1; static int y=1; printf("%d%d",++x,y++); } main() { int i; for(i=0; i<2; i++) fun(); }

运行结果是____________________。

4、

#include <stdio.h> main() { int a=12,b=0,x=0; do { b+=2; a-=2+b; x++; } while(a>=0); printf("%d",x); }

运行结果是____________________。

5、

#include <stdio.h> main() { int n=132,i=1,j,k,b[10]; while(n!=0) { j=n%6; b[i]=j; n=n/6; i=i+1; } for(k=i-1; k>0; k--) printf("%d",b[k]); }

运行结果是____________________。

二、程序填空

任意输入坐标平面上一点(x,y),求该点到原点(0,0)间的距离。

#include <stdio.h> #include <math.h> #include <malloc.h> __________ 1 __________ node { float x; float y; } node; main() { node *p; p=__________ 2 __________; scanf("%f,%f",&p->x,&p->y); printf("%5.1f",sqrt(p->x*p->x+p->y*p->y)); __________ 3 __________; }

下列给定程序中,函数fun()的功能是:从n个字符串中找出最长的那个串,并将其地址作为函数值返回。

#include <string.h> #include <stdio.h> #define n 4 #define m 50 char *fun(char(*q)[m]) { int i; char *p; __________ 4 __________; for(i=0; i<n; i++) if(strlen(p)<strlen(*q++)) __________ 5 __________; return p; } main() { char str[n][m]={"pingpong","basketball","field hockey","softball"}; char *longest; int i; longest=fun(str); printf("\nthe longest string:\n"); puts(longest); }

三、改错

下列程序的功能是求分数序列: 89/55,-55/34,34/21,-21/13,13/8……的前8项之和。程序中有2处错误,请标记并改正。

#include <stdio.h> main() { int i,flag=1; float a=144,b=89,s=0,t; for(i=1; i<=8; i++) { s=s+a/b; flag=-flag; t=b; a=a-b; a=t; } printf("%5.1f",s); }

下列程序的功能是采用简单插入的排序方法,随机产生10个整数,按从小到大的顺序排列。在程序中有2处错误,请标记并改正。

#include <stdio.h> #include <math.h> #include <stdlib.h> main() { int i,j,a[11]; for(i=1; i<11; i++) a[i]=rand(); for(i=2; i<11; i++) { a[0]=a[i]; for(j=i-1; j>=1; j--) if(a[0]<a[j]) a[j-1]=a[j]; else continue; a[j+1]=a[0]; } for(i=1; i<11; i++) printf("%d ",a[i]); }

四、程序设计题

有一辆在高速公路上行驶的汽车,司机在某一时刻看到里程表显示的数值为95859公里(95859为回文数,回文数是指正读反读均一样的数),7小时后,里程表上又出现了一个回文数。编程求出此回文数和汽车时速?(注:高速公路限速60公里以上,汽车的里程表为5位数)


五、程序方向

(一)、程序填空

下列程序定义了3×3的二维数组,并在主函数中自动赋值;函数fun的功能是使二维数组的上三角元素的值全部置0。

调用函数前 调用函数后

1 2 3 1 0 0

2 4 6 2 4 0

3 6 9 3 6 9

#include <stdio.h> __________ 1 __________ main() { int a[3][3],i,j; for(i=1; i<=3; i++) for(j=1; j<=3; j++) __________ 2 __________=i*j; fun(3,a); printf("the result:\n"); for(i=0; i<3; i++) { for(j=0; j<3; j++) printf("%4d",a[i][j]); printf("\n"); } } void fun(int n,int a[3][3]) { int i,j; for(i=0; i<n-1; i++) for(j=i+1; j<__________ 3 __________; j++) a[i][j]=0; }

(二)、程序设计

弦数是指平方值等于某两个正整数平方之和的正整数,如:32+42=52,因此5为弦数。编程输出10到100之间的所有弦数及弦数的数量。

参考答案:

一、写程序结果

1、 8,10 2、 □□□9.1 3、 2122

4、 3 5、 340

注:□代表空格

二、程序填空

1、 typedef struct 2、 (node *)malloc(sizeof(node)) 3、free(p)

4、 p=(*q); 5、 p=*(q-1);

三、改错

1、 L8 s=s+flag*b/(a-b);//s=s+a/b;

2、 L11 b=a-b;//a=a-b;

3、 L14 a[j+1]=a[j];//a[j-1]=a[j];

4、 L16 break;//continue;

四、程序设计题

1、参考代码

#include <stdio.h> main() { int i,j,a[11]; int v=61,s,s1=95859; while(1) { s=s1+7*v; if(s/10000==s%10) if(s/1000%10==s/10%10) break; v++; } printf("回文数:%d 汽车时速:%d",s,v); }

五、程序方向

(一)、程序填空

1、 void fun(int n,int a[3][3]); 2、 a[i-1][j-1] 3、 n

(二)、程序设计

参考代码

#include <stdio.h> #include <math.h> main() { int i=1,j,k,x=0; for(i=1;i<100;i++) for(j=i+1;j<100;j++) { k=sqrt(i*i+j*j); if(k*k==i*i+j*j && k>=10 && k<=100) printf("\n%d %d*%d=%d*%d+%d*%d",++x,k,k,i,i,j,j); } }

本文共计1426个文字,预计阅读时间需要6分钟。

2008年湖南省对口高考真题中,哪一道题的解题思路最让你印象深刻?

一、编写程序结果:1

二、程序+1

三、输出结果:2

一、写程序结果

1、

#include <stdio.h> main() { char a=55; a=~a&055; printf("%x,%o",a,a); }

运行结果是____________________。

2008年湖南省对口高考真题中,哪一道题的解题思路最让你印象深刻?

2、

#include <stdio.h> #define test(x,y) x+y main() { float c; c=2*test(3.2,5.4)/2; printf("%6.1f",c); }

运行结果是____________________。

3、

#include <stdio.h> void fun() { int x=1; static int y=1; printf("%d%d",++x,y++); } main() { int i; for(i=0; i<2; i++) fun(); }

运行结果是____________________。

4、

#include <stdio.h> main() { int a=12,b=0,x=0; do { b+=2; a-=2+b; x++; } while(a>=0); printf("%d",x); }

运行结果是____________________。

5、

#include <stdio.h> main() { int n=132,i=1,j,k,b[10]; while(n!=0) { j=n%6; b[i]=j; n=n/6; i=i+1; } for(k=i-1; k>0; k--) printf("%d",b[k]); }

运行结果是____________________。

二、程序填空

任意输入坐标平面上一点(x,y),求该点到原点(0,0)间的距离。

#include <stdio.h> #include <math.h> #include <malloc.h> __________ 1 __________ node { float x; float y; } node; main() { node *p; p=__________ 2 __________; scanf("%f,%f",&p->x,&p->y); printf("%5.1f",sqrt(p->x*p->x+p->y*p->y)); __________ 3 __________; }

下列给定程序中,函数fun()的功能是:从n个字符串中找出最长的那个串,并将其地址作为函数值返回。

#include <string.h> #include <stdio.h> #define n 4 #define m 50 char *fun(char(*q)[m]) { int i; char *p; __________ 4 __________; for(i=0; i<n; i++) if(strlen(p)<strlen(*q++)) __________ 5 __________; return p; } main() { char str[n][m]={"pingpong","basketball","field hockey","softball"}; char *longest; int i; longest=fun(str); printf("\nthe longest string:\n"); puts(longest); }

三、改错

下列程序的功能是求分数序列: 89/55,-55/34,34/21,-21/13,13/8……的前8项之和。程序中有2处错误,请标记并改正。

#include <stdio.h> main() { int i,flag=1; float a=144,b=89,s=0,t; for(i=1; i<=8; i++) { s=s+a/b; flag=-flag; t=b; a=a-b; a=t; } printf("%5.1f",s); }

下列程序的功能是采用简单插入的排序方法,随机产生10个整数,按从小到大的顺序排列。在程序中有2处错误,请标记并改正。

#include <stdio.h> #include <math.h> #include <stdlib.h> main() { int i,j,a[11]; for(i=1; i<11; i++) a[i]=rand(); for(i=2; i<11; i++) { a[0]=a[i]; for(j=i-1; j>=1; j--) if(a[0]<a[j]) a[j-1]=a[j]; else continue; a[j+1]=a[0]; } for(i=1; i<11; i++) printf("%d ",a[i]); }

四、程序设计题

有一辆在高速公路上行驶的汽车,司机在某一时刻看到里程表显示的数值为95859公里(95859为回文数,回文数是指正读反读均一样的数),7小时后,里程表上又出现了一个回文数。编程求出此回文数和汽车时速?(注:高速公路限速60公里以上,汽车的里程表为5位数)


五、程序方向

(一)、程序填空

下列程序定义了3×3的二维数组,并在主函数中自动赋值;函数fun的功能是使二维数组的上三角元素的值全部置0。

调用函数前 调用函数后

1 2 3 1 0 0

2 4 6 2 4 0

3 6 9 3 6 9

#include <stdio.h> __________ 1 __________ main() { int a[3][3],i,j; for(i=1; i<=3; i++) for(j=1; j<=3; j++) __________ 2 __________=i*j; fun(3,a); printf("the result:\n"); for(i=0; i<3; i++) { for(j=0; j<3; j++) printf("%4d",a[i][j]); printf("\n"); } } void fun(int n,int a[3][3]) { int i,j; for(i=0; i<n-1; i++) for(j=i+1; j<__________ 3 __________; j++) a[i][j]=0; }

(二)、程序设计

弦数是指平方值等于某两个正整数平方之和的正整数,如:32+42=52,因此5为弦数。编程输出10到100之间的所有弦数及弦数的数量。

参考答案:

一、写程序结果

1、 8,10 2、 □□□9.1 3、 2122

4、 3 5、 340

注:□代表空格

二、程序填空

1、 typedef struct 2、 (node *)malloc(sizeof(node)) 3、free(p)

4、 p=(*q); 5、 p=*(q-1);

三、改错

1、 L8 s=s+flag*b/(a-b);//s=s+a/b;

2、 L11 b=a-b;//a=a-b;

3、 L14 a[j+1]=a[j];//a[j-1]=a[j];

4、 L16 break;//continue;

四、程序设计题

1、参考代码

#include <stdio.h> main() { int i,j,a[11]; int v=61,s,s1=95859; while(1) { s=s1+7*v; if(s/10000==s%10) if(s/1000%10==s/10%10) break; v++; } printf("回文数:%d 汽车时速:%d",s,v); }

五、程序方向

(一)、程序填空

1、 void fun(int n,int a[3][3]); 2、 a[i-1][j-1] 3、 n

(二)、程序设计

参考代码

#include <stdio.h> #include <math.h> main() { int i=1,j,k,x=0; for(i=1;i<100;i++) for(j=i+1;j<100;j++) { k=sqrt(i*i+j*j); if(k*k==i*i+j*j && k>=10 && k<=100) printf("\n%d %d*%d=%d*%d+%d*%d",++x,k,k,i,i,j,j); } }