2014年湖南省对口高考真题中,哪一道题目的解答过程最复杂?

2026-04-12 03:552阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

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

2014年湖南省对口高考真题中,哪一道题目的解答过程最复杂?

选择题目+1+算法的复杂度主要包括算法的时间复杂度和空间复杂度,算法的时间复杂度是指__________。

A. 算法程序中的指令条数B. 算法程序的长短C. 算法程序所占用的存储空间D. 算法执行

一、选择题

1、

算法的复杂度主要包括算法的时间复杂度和空间复杂度,算法的时间复杂度是指__________。

A.算法程序中的指令条数 B.算法程序的长度

C.算法程序所占的存储空间 D.算法执行过程中所需要的基本运算次数

2、

C语言程序的基本单位是__________。

A.字节 B.函数 C.语句 D.字符

3、

若变量a,i已正确定义,且i己正确赋值,合法的C语言语句是__________。

A.a=int(i); B.a==0 C.++i; D.a=a++=2;

二、填空题

在C语言中,文件的打开方式决定对该文件所能进行的操作权限,文件打开方式参数_____ 1 _____以只读方式打开一个文本文件,_____ 2 _____ 以写方式打开一个文本文件,_____ 3 _____ 以读/写方式打开一个文本文件,_____ 4 _____以在文件后面添加数据方式打开文本文件。

三、综合应用题

输入三角形的三边a、b、c,判断a、b、c能否构成三角形,如果能够构成三角形则判断为何种类型的三角形:等腰三角形、等边三角形、直角三角形、等腰直角二角形、一般三角形。

说明:

―般三角形:两条边长之和大于第三条边长;

等腰三角形:两条边长相等;

等边三角形:三条边长相等;

直角三角形:两条边长的平方和等于第三条边长的平方。

#include <stdio.h> #include <math.h> main() { float a,b,c; printf("请输入三角形边长"); scanf("%f%f%f",&a,&b,&c); if( _____ 1 _____ ) printf ("不能构成三角形\n"); else if ( _____ 2 _____ ) if ((a==b)||(b==c)||(c==a)) printf("等腰直角三角形\n"); else printf ("直角三角形\n"); else if( _____ 3 _____ ) printf ("等边三角形\n"); else if ( _____ 4 _____ ) printf ("等腰三角形\n"); else printf ("一般三角形\n"); }

四、写程序结果

#include <stdio.h> main() { int i=0,j=1,z=2; if((j++||z++)&&i++); printf("%d,",i); printf("%d,%d\n",j,z); }

运行结果是____________________。

#include <stdio.h> main() { int n='b'; switch(++n) { default : printf ("error"); break; case 'a': case 'A': case 'b': case 'B': printf ("pass"); break; case 'c': case 'C': printf ("good"); case 'd': case 'D': printf ("luck"); } }

运行结果是____________________。

#include <stdio.h> main() { int i,j; for(i=0; i<5; i++) for(j=1; j<10; j++) { if(j==6) break; if(i<3) continue; } printf("j=%d ",j); printf("i=%d\n",i); }

运行结果是____________________。

4、

#include <stdio.h> int f(int x[],int n) { int i,r=1; for(i=0;i<=n; i++) r=r*x[i]; return r; } main() { int s,a[]={2,7,3,1,5,4,6,8}; s=f(a,3); printf("%d\n",s); }

运行结果是____________________。

5、

#include <stdio.h> int *f(int *x,int *y) { if(*x<*y) return x; else return y; } main() { int a=6,b=7,*p,*q,*r; p=&a; q=&b; r=f(p,q); printf("%d,%d,%d",*p,*q,*r); }

运行结果是____________________。

五、程序填空

函数sum(n)使用递归完成表达式的运算:sum(n)=l*2+2*3+…+n*(n+l)

int sum(n) { if(n=l) return _____ 1 _____; else return _____ 2 _____; }

函数insert(charstrl[],charstr2[],int idx)实现在字符串str1中的第idx个字符后插入字符串str2,如下程序的输出为:abkkkcd

2014年湖南省对口高考真题中,哪一道题目的解答过程最复杂?

#include <stdio.h> void insert(char strl[],char str2[],int idx) { char *p,*q; p=strl; int i=0; for(i=0; i<idx; i++) p++; while(*str2!='\0') { q=p; while(*q!='\0') _____ 3 _____; while(q>=p) { *(q+1)=*q; _____ 4 _____ ; } q++; *q=*str2; str2++; _____ 5 _____ ; } } main() { char a[10]="abcd"; char b[5]="kkk"; insert(a,b,2); printf("%s",a); }

六、改错

下面函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。以下程序只允许修改两行。

#include <stdio.h> void fun (char s[ ]) { int i=0,j=0; for( ; s[i]!='\0'; i++) if(s[i]>='0' & s[i]<='9') { s[j]=s[i]; j--; } s[j]='\0'; }

函数creatList()用于从键盘读入整数,并根据输入的顺序建立链表,当输入-1时结束键盘读取,链表创建完成,其中-1不存入链表,头节点不存储数据,在main函数中调用0 creatList()函数创建链表,随后遍历链表输出链表所保存的数据。以下程序只允许修改三行。

#incIude <stdio.h> struct Node { int data; struct Node *next; }; struct Node *creatList() { struct Node p,q,head; int a; head=(struct Node *) malloc(sizeof(struct Node)); p=q=head; printf("Input an integer number,enter -1 to end:\n"); scanf("%d",&a); while(a!=-1) { p=(struct Node *)malloc(sizeof(struct Node)); p->data=a; q->next=p; q=p; p->next=NULL; scanf("%d",&a); } return head; } int main() { struct Node *head,*p; head=creatList(); p=head->next; while(p) { printf("%d\n",p->data); p->next=p; } return 0; }

七、程序设计题

以字符串的形式输入一个浮点数的字符串,通过程序转换成对应的浮点数,需要考虑输入数据的正负。

说明:字符“0”比数字0的ASCII值大48。

#include <stdio.h> #define N 12 main() { char src[N],ch; int i,count=0,j; gets(src); int isPositive=1, isBeforeDecimaIPoint=1; /*ispositive用于标识正负,isBeforeDecimaIPoint用于标识小数点前后*/ double result=0; for(i=0; i<N; i++) { ch=src[i]; if(ch!='\0') { switch(ch) { case '-': isPositive=0; break; case'.': isBeforeDecimaIPoint=0; break; default: if(ch>='0' && ch<='9') if(isBeforeDecimaIPoint) _____ 1 _____ ; else { _____ 2 _____ ; float temp=1; for( j=0;j<count; j++) { _____ 3 _____ ; } _____ 4 _____ ; } } } else break; } if (!isPositive) _____ 5 _____ ; printf("%lf",result); return 0; }

参考答案:

一、选择题

1—3 D、B、C

二、填空题

1、r、w、r+、a

三、综合应用题

1、(a+b<=c)||(a+c<=b)||(b+c<=a)

2、(a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)

3、(a==b)&&(a==c)

4、(a==b)||(b==c)||(c==a)

四、写程序结果

1、 1,2,2 2、 goodluck 3、 j=6 i=5 4、 42

5、 6,7,6

五、程序填空

1、 1*2 2、sum(n-1)+n*(n+1)

3、 q++ 4、q-- 5、

六、改错

1、

L06 if(s[i]>='0' && s[i]<='9')

L09 j++;

2、

L01 #include <stdio.h>

L09 struct Node *p, *q, *head;

L34 p=p->next;

七、程序设计题

1、 result=result*10+(ch-'0') 2、 count++

3、 temp=temp/10 4、 result+=temp*(ch-'0')

5、 result=-result

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

2014年湖南省对口高考真题中,哪一道题目的解答过程最复杂?

选择题目+1+算法的复杂度主要包括算法的时间复杂度和空间复杂度,算法的时间复杂度是指__________。

A. 算法程序中的指令条数B. 算法程序的长短C. 算法程序所占用的存储空间D. 算法执行

一、选择题

1、

算法的复杂度主要包括算法的时间复杂度和空间复杂度,算法的时间复杂度是指__________。

A.算法程序中的指令条数 B.算法程序的长度

C.算法程序所占的存储空间 D.算法执行过程中所需要的基本运算次数

2、

C语言程序的基本单位是__________。

A.字节 B.函数 C.语句 D.字符

3、

若变量a,i已正确定义,且i己正确赋值,合法的C语言语句是__________。

A.a=int(i); B.a==0 C.++i; D.a=a++=2;

二、填空题

在C语言中,文件的打开方式决定对该文件所能进行的操作权限,文件打开方式参数_____ 1 _____以只读方式打开一个文本文件,_____ 2 _____ 以写方式打开一个文本文件,_____ 3 _____ 以读/写方式打开一个文本文件,_____ 4 _____以在文件后面添加数据方式打开文本文件。

三、综合应用题

输入三角形的三边a、b、c,判断a、b、c能否构成三角形,如果能够构成三角形则判断为何种类型的三角形:等腰三角形、等边三角形、直角三角形、等腰直角二角形、一般三角形。

说明:

―般三角形:两条边长之和大于第三条边长;

等腰三角形:两条边长相等;

等边三角形:三条边长相等;

直角三角形:两条边长的平方和等于第三条边长的平方。

#include <stdio.h> #include <math.h> main() { float a,b,c; printf("请输入三角形边长"); scanf("%f%f%f",&a,&b,&c); if( _____ 1 _____ ) printf ("不能构成三角形\n"); else if ( _____ 2 _____ ) if ((a==b)||(b==c)||(c==a)) printf("等腰直角三角形\n"); else printf ("直角三角形\n"); else if( _____ 3 _____ ) printf ("等边三角形\n"); else if ( _____ 4 _____ ) printf ("等腰三角形\n"); else printf ("一般三角形\n"); }

四、写程序结果

#include <stdio.h> main() { int i=0,j=1,z=2; if((j++||z++)&&i++); printf("%d,",i); printf("%d,%d\n",j,z); }

运行结果是____________________。

#include <stdio.h> main() { int n='b'; switch(++n) { default : printf ("error"); break; case 'a': case 'A': case 'b': case 'B': printf ("pass"); break; case 'c': case 'C': printf ("good"); case 'd': case 'D': printf ("luck"); } }

运行结果是____________________。

#include <stdio.h> main() { int i,j; for(i=0; i<5; i++) for(j=1; j<10; j++) { if(j==6) break; if(i<3) continue; } printf("j=%d ",j); printf("i=%d\n",i); }

运行结果是____________________。

4、

#include <stdio.h> int f(int x[],int n) { int i,r=1; for(i=0;i<=n; i++) r=r*x[i]; return r; } main() { int s,a[]={2,7,3,1,5,4,6,8}; s=f(a,3); printf("%d\n",s); }

运行结果是____________________。

5、

#include <stdio.h> int *f(int *x,int *y) { if(*x<*y) return x; else return y; } main() { int a=6,b=7,*p,*q,*r; p=&a; q=&b; r=f(p,q); printf("%d,%d,%d",*p,*q,*r); }

运行结果是____________________。

五、程序填空

函数sum(n)使用递归完成表达式的运算:sum(n)=l*2+2*3+…+n*(n+l)

int sum(n) { if(n=l) return _____ 1 _____; else return _____ 2 _____; }

函数insert(charstrl[],charstr2[],int idx)实现在字符串str1中的第idx个字符后插入字符串str2,如下程序的输出为:abkkkcd

2014年湖南省对口高考真题中,哪一道题目的解答过程最复杂?

#include <stdio.h> void insert(char strl[],char str2[],int idx) { char *p,*q; p=strl; int i=0; for(i=0; i<idx; i++) p++; while(*str2!='\0') { q=p; while(*q!='\0') _____ 3 _____; while(q>=p) { *(q+1)=*q; _____ 4 _____ ; } q++; *q=*str2; str2++; _____ 5 _____ ; } } main() { char a[10]="abcd"; char b[5]="kkk"; insert(a,b,2); printf("%s",a); }

六、改错

下面函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。以下程序只允许修改两行。

#include <stdio.h> void fun (char s[ ]) { int i=0,j=0; for( ; s[i]!='\0'; i++) if(s[i]>='0' & s[i]<='9') { s[j]=s[i]; j--; } s[j]='\0'; }

函数creatList()用于从键盘读入整数,并根据输入的顺序建立链表,当输入-1时结束键盘读取,链表创建完成,其中-1不存入链表,头节点不存储数据,在main函数中调用0 creatList()函数创建链表,随后遍历链表输出链表所保存的数据。以下程序只允许修改三行。

#incIude <stdio.h> struct Node { int data; struct Node *next; }; struct Node *creatList() { struct Node p,q,head; int a; head=(struct Node *) malloc(sizeof(struct Node)); p=q=head; printf("Input an integer number,enter -1 to end:\n"); scanf("%d",&a); while(a!=-1) { p=(struct Node *)malloc(sizeof(struct Node)); p->data=a; q->next=p; q=p; p->next=NULL; scanf("%d",&a); } return head; } int main() { struct Node *head,*p; head=creatList(); p=head->next; while(p) { printf("%d\n",p->data); p->next=p; } return 0; }

七、程序设计题

以字符串的形式输入一个浮点数的字符串,通过程序转换成对应的浮点数,需要考虑输入数据的正负。

说明:字符“0”比数字0的ASCII值大48。

#include <stdio.h> #define N 12 main() { char src[N],ch; int i,count=0,j; gets(src); int isPositive=1, isBeforeDecimaIPoint=1; /*ispositive用于标识正负,isBeforeDecimaIPoint用于标识小数点前后*/ double result=0; for(i=0; i<N; i++) { ch=src[i]; if(ch!='\0') { switch(ch) { case '-': isPositive=0; break; case'.': isBeforeDecimaIPoint=0; break; default: if(ch>='0' && ch<='9') if(isBeforeDecimaIPoint) _____ 1 _____ ; else { _____ 2 _____ ; float temp=1; for( j=0;j<count; j++) { _____ 3 _____ ; } _____ 4 _____ ; } } } else break; } if (!isPositive) _____ 5 _____ ; printf("%lf",result); return 0; }

参考答案:

一、选择题

1—3 D、B、C

二、填空题

1、r、w、r+、a

三、综合应用题

1、(a+b<=c)||(a+c<=b)||(b+c<=a)

2、(a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)

3、(a==b)&&(a==c)

4、(a==b)||(b==c)||(c==a)

四、写程序结果

1、 1,2,2 2、 goodluck 3、 j=6 i=5 4、 42

5、 6,7,6

五、程序填空

1、 1*2 2、sum(n-1)+n*(n+1)

3、 q++ 4、q-- 5、

六、改错

1、

L06 if(s[i]>='0' && s[i]<='9')

L09 j++;

2、

L01 #include <stdio.h>

L09 struct Node *p, *q, *head;

L34 p=p->next;

七、程序设计题

1、 result=result*10+(ch-'0') 2、 count++

3、 temp=temp/10 4、 result+=temp*(ch-'0')

5、 result=-result