当前位置 : 主页 > 编程语言 > c语言 >

2014年湖南省对口高考真题

来源:互联网 收集:自由互联 发布时间:2023-08-28
一、选择题 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;

二、填空题

1、

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

三、综合应用题

1、

输入三角形的三边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");
}

四、写程序结果

1、

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

运行结果是____________________。

2、

#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");
    }
}

运行结果是____________________。

3、

#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);
}

运行结果是____________________。

五、程序填空

1、

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

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

2、

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

#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);
}

六、改错

1、

下面函数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';
}

2、

函数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;
}

七、程序设计题

1、

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

说明:字符“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

 

上一篇:Qt之QDial选择器
下一篇:没有了
网友评论