当前位置:首页 > 湖南省历界对口高考C语言真题(答案)
2014年真题
一、单选题
1、算法的复杂度主要包括算法的时间复杂度和空间复杂度,算法的时间复杂度是指 D A、算法程序中的指令数 B、算法程序的长度
C、算法程序所占的存储空间 D、算法执行过程中所需要的基本运算次数 2、C语言程序的基本单位是 B
A、字节 B、函数 C、语句 D、字符 3、若变量a,i已正确定义,且i已正确赋值,合法的C语言语句是 C A、a=int (i); B、a==0 C、++i; D、a=a++=2; 二、填空题
1、在C语言中,文件的打开方式决定对该文件所能进行的操作权限,文件打开方式参数 “r” 以只读方式打开一个文本文件, “w” 以写方式打开一个文本文件, “r+” 以读写方式打开一个文本文件, “a” 以在文件后面添加数据方式打开文本文件。 三、综合应用题
1、输入三角形的三边a、b、c,判断a、b、c能否构成三角形,如果能够构成三角形则判断为何种类型的三角形:等腰三角形、等边三角形、直角三角形、等腰直角三角形、一般三角形。 #include
printf(“请输入三角形边长\\n”); scanf(“%f%f%f”,&a,&b,&c); if( a+b<=c||a+c<=b||b+c<=a )
printf(“不能构成三角形\\n”);
else if( a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a ) if(a==b||b==c||a==c)
printf(“等腰直角三角形\\n”); else printf(“直角三角形\\n”); else if( a==b&&a==c ) printf(“等边三角形\\n”); else if( a==b||b==c||c==a ) printf(“等腰三角形\\n”);
else printf(“一般三角形\\n” ); }
四、程序分析题
1、#include
{ int i=0,j=1,z=2;
if((j++||z++)&&i++);
printf(“%d,%d,%d\\n”,i,j,z); }
2、#include
29
1,2,2 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
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
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
else return y; }
main( )
{ int a=6,b=7,*p,*q,*r;
p=&a,q=&b; r=f(p,q);
printf(“%d,%d,%d\\n”,*p,*q,*r); }
googluck j=6 i=5 42 6,7,6 30
五、程序填空题
1、函数sum(n)使用递归完成表达式的运算:sum(n)=1*2+2*3+??+n*(n+1) int sum(int n) { if(n==1)
return 2 ;
else
return sum(n-1)+n*(n+1) ; }
2、函数insert(char str1[ ],char str2[ ],int idx)实现在字符串str1中的第idx个字符后插入字符串str2,如下程序的输出为:abkkkcd #include
void insert(char str1[ ],char str2[ ],int idx) { char*p,*q; int i=0; p=str1;
for(i=0;i while(*q!=’\\0’) q++ ; while(q>=p) { *(q+1)=*q; q-- ; } q++; *q=*str2; str2++; p++ ; } } main( ) { char a[10]=”abcd”; char b[5]=”kkk”; insert(a,b,2); printf(“%s”,a); } 3、以字符串的形式输入一个浮点数的字符串,通过程序转换成对应的浮点数,需要考虑输入数据的正负。 #include { char scr[N],ch; int i,count=0,j; int ispositive=1,isbefore=1;/*ispositive用于标识正负,isbefore用于标识小数点前后*/ 31 double result=0; gets(src); for(i=0;i { case ‘-‘: ispositive=0; break; case ‘.’: isbefore=0; break; default: if(ch>=’0’&&ch<=’9’) { if(isbefore) result=result*10+ch-‘0’ ; else { float temp=1; count++ ; for(j=0;j else break; if(!ispositive) result=-result; printf(“%lf”,result); } 六、程序改错题,不得增选或删行,也不得更改程序结构。 1、下面函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。以下程序只允许修改两行。 #include for(;s[i]!=’\\0’;i++) if(s[i]>=’0’&s[i]<=’9’) if(s*i+>=’0’&&s*i+<=’9’) {s[j]=s[i]; j--; j++; } s[j]=’\\0’; } 2、函数createlist用于从键盘读入整数,并根据输入的顺序建立链表,当输入-1时结束链表创建,其中-1不存入链表,头节点不存储数据。在主函数中调用函数creatlist创建链表,随后遍历链表输出数据。以下程序只允许修改三行。 #include 32 { int data; struct Node *next; }; struct Node *creatlist( ) { struct Node p,q,head; { struct Node *p,*q,*head; int a; head=(struct Node *)malloc(sizeof(struct Node)); p=q=head; printf(“input an interger 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; } main( ) { struct Node *head,*p; head=creatlist( ); p=head->next; while(p) { printf(“%d\\n”,p->data); p->next=p; p =p->next; } } 33
共分享92篇相关文档