湖南省历界对口高考C语言真题答案_第1页
湖南省历界对口高考C语言真题答案_第2页
湖南省历界对口高考C语言真题答案_第3页
湖南省历界对口高考C语言真题答案_第4页
湖南省历界对口高考C语言真题答案_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、、程序分析题1、#include历界高考C语言真题2007年真题main()intx=3;doprintf(%d,x-=2);while(!(-x);2、#includemain()intx=4,y=8,z;z=x2|y;printf(%d,z);3、#includemain()charx=,E,,y=,e,;printf(%c,x+32);printf(%c,(x-,y+);printf(%cn,x=yx+=32:(y-=32);4、#includemain()intt=2;while(t5)switch(t%2)case0:t+;printf(#);break;case1:t+=2;pri

2、ntf(*);default:printf(n);5、#includemain()charstr150=Beijing2021,*q=st1charstr250=OneworldOneDream!,*p=str2;1-224eef#*while(*p!=0)p+;while(*q!=0)*p+=*q+;One world One Dream!Beijing 2021*p=0;printf(%s,str2);6#include#includemain()chars=abcdefg”,t;gfedcbainti=0,j=strlen(s)-1;while(ij)t=si,si=sj,aj=t;i+

3、,j-;puts(s);二、程序填空题1、下面程序的功能是求1000以的完数。完数是指一个数的子因子之和等于这个数本身。#includemain()inti,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#de巾neN7intfun(ints,floataver)inti,count=0;for(i=0;iN;i+)if(siaver)count+;returncount;main()inti,arrN=8

4、7,34,5,78,90,66,88;floataver=0;for(i=0;iN;i+)aver+=arri;aver=aver/N;printf(统计结果为:%d,fun(arr,aver);三、程序改错题,不得增行或删行。m1、下面的程序是求n!,在函数fun()中存在两处错误,请标记并改正。n1#includelongfun(intx)intm,n,t;longsum;longsum=1;for(m=1;m=x;m+)t=1;for(n=1;n=m;n+)t=m*n;t*=n;sum+=t;returnsum;main()intnum;scanf(%d,&num);printf(sum

5、=%ldn,fun(num);2、以下程序的功能是:从字符串str中,删除所有字母c,不区分大小写。如输入字符串abcCdefcfCg”,删除后的字符串为abdefg。程序有两错误,请标记并改正。#includemain()charstr81;inti=0,j=0;gets(str);while(stri!=0)if(stri!=:c|stri!=,C,)if(stri!=&strfi!=C)strj=stri;strj+=stri;i+;str昨0;printf(%s,str);3、以下程序从一个二进制文件中读出构造体数据,并将构造体数据输出在屏幕上。程序中有三处错误,请标记并改正。#inc

6、ludestructstudentcharname10;floatscore;stu;main()file*f;FILE*f;if(f=fopen(a.dat,r)=NULL)printf(cannotopenoutfilen);exit(0);while(feof(f)while(!feof(f)fread(stu,sizeof(structstudent),1,f);fread(&stu,sizeof(structstudent),1,f);printf(%s,%.2fn,,stu.score);fclose(f);四、程序设计题1、一个数列从1项开场的前6项为:0,0,1

7、,1,2,4以后的各项都是其相邻的前3项之和,计算并输出该数列前20项之和。2、写一函数sort(intx,intn)实现选择法排序(从小到大)、程序分析题1、#includemain()chara=55;a=a&055;printf(%x,%o,a,a);2、#include#definetest(x,y)x+ymain()floatc;c=2*test(3.2,5.4)/2;printf(6.1f,c);3、#includevoidfun()intx=1;staticinty=1;printf(%d%d,+x,y+);main()inti;for(i=0;i2;i+)fun();4、#in

8、cludemain()inta=12,b=0,n=0;dob+=2;a-=2+b;n+;while(a=0);printf(%d,n);5、#includemain()2021年真题3408,109.12122intn=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#includetypedefstructNODEfloatx;floaty;NODE;main()NODE*p;

9、p=(NODE*)malloc(sizeof(NODE);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#defineN4#defineM50char*fun(char(*q)M)inti;char*p;p=*q;for(i=0;iN;i+)if(strlen(p)strlen(*(q+i)p=*(q+i);returnp;main()charstrNM=pingpong:ba

10、sketball,fieldhockey:softball;char*longest;inti;longest=fun(str);printf(Thelongeststring:n);puts(longest);3、以下程序定义了3X3的二维数组,并在主函数中自动赋值;函数三角元素的值全部置0。fun的功能是使二维数组的上调用函数前123246369#includevoidfun(intn,inta3);main()inta33,i,j;for(i=1;i=3;i+)for(j=1;j=3;j+)ai-1j-1=i*j;fun(3,a);printf(theresult:n);for(i=0;

11、i3;i+)for(j=0;j3;j+)printf(%4d,aij);printf(n);voidfun(intn,inta33)inti,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)a皿=0;三、程序改错题,不得增行或删行。1、以下程序的功能是求分数序列:处错误,请标记并改正。#includemain()inti,flag=1;floata=144,b=89,s=0,t;for(i=1;i=8;i+)s+=a/b;s+=flag*b/(a-b);flag=-flag;t=b;a=a-b;a=t;t=b;b=a-b;a=t;printf(%5.1f,s);调用函数后1

12、002403698955342113553421138的前8项之和。程序中有22、以下程序的功能是采用简单插入的排序方法,随机产生10个整数,按从小到大的顺序排列。程序中有2处错误,请标记并改正。#include#includemain()inti,j,a11;for(i=1;i11;i+)ai=rand();for(i=2;i=1;j-)if(a0aj)aj-1=aj;aj+1=aj;elsecontinue;elsebreak;aj+1=a0;for(i=1;i11;i+)printf(%d,ai);四、程序设计题1、有一辆在高速公路上行驶的汽车,司机在某一时刻看到里程表显示的数值为958

13、59公里95859为回文数,回文数是指正读反读均一样的数,7小时后,里程表上又出现了一个回文数。编程求出此回文数和汽车时速?(注:高速公路限速60公里以上,汽车的里程表为5位数)2、弦数是指平方值等于某两个正整数平方之和的正整数,如:32+42=52,因此5为弦数。编程输出10到100之的所有弦数及弦数的数量。2021年真题一、程序分析题1、#includemain()structstu14charname10;intage,sex;printf(%d,sizeof(structstu);2、#includemain()D,-69intx=68;printf(%c,%dn,x,x);51253

14、、#include#includemain()doublex=5.14;inta=(int)floor(x);intb=(int)pow(floor(x),3);printf(%d,%d,a,b);4、#includemain()char*p,*t=pute:phone,mp3;for(p=t+2;p=t;p-)printf(%c,*(*p+1)5、#includef(intarr)inti=0;for(;arri=10;i+=2)printf(%d,arri);main()intarr尸2,4,6,8,10,12;f(arr+1);二、程序填空题1、以下程序的功能是:从3个红球队、6个白球、

15、5个蓝球中任意取出8个球,且其上至少有一个白球,输出所有可能的方案。#includemain()inti,j,k;printf(nRedWhiteBluen);for(i=0;i=3;i+)for(j=1;j=0&k=5)printf(%d%d%dn,i,j,k);2、以下程序的功能是:求100以最大的一对挛生素数之和,挛生素数是指两个素数之差为2。#include#includeintisPrime(inti)intj,r=0,k=sqrt(i);for(j=2;jk)r=1;returnr;main()inti,sum=0;for(i=100;i=5;i-)if(isPrime(i)&is

16、Prime(i-2)sum=i+i-2;break;printf(%dn,sum);3、以下程序的功能是:输入某公司50名职员的工号、和地址并存入名为pany.txt”的磁盘文件。structEmployeeintempid;charempname10;charempadd30;emp50;voidsave()FILE*fp;inti;if(fp=fopen(pany.txt;wb)=NULL)printf(cannotopenfilen);return;for(i=0;i50;i+)if(fwrite(emp+i,sizeof(structEmployee),1,fp)!=1)printf(

17、filewriteerrorn);main()inti;for(i=0;i50;i+)scanf(%d,%s,%s”,&empi.empid,empi.empname,empi.empadd);save();三、程序改错题,不得增行或删行。1、以下程序的功能是:从一个整数队列中找出值最大的数,假设有多个那么取最先得到的那一个。程序有两处错误,请标出并改正。#includeint*findmax(inta,intn)inti,j,max;for(i=1,j=0,max=a0;imax)j=i;max=ai;return*(a+j);returna+j;main()inti,a50;for(i=0

18、;i50;i+)scanf(%d,&ai);printf(%d,findmax(a,50);printf(%d,*findmax(a,50);ASCII码降序排序后输出。2、以下程序的功能是:输入一个字符串,将该字符串中的所有字符按程序有两处错误,请标出并改正。#include#includevoidfun(chart)charc;inti,j;for(i=0;istrlen(t)-1;i+)for(j=i+1;j皿)c=tj;tj=ti+;tj=ti;ti=c;main()chars81;gets(s);printf(nBeforesorting:n%s,s);fun(s);printf(n

19、aftersorting:n%s,s);四、程序设计题1、某学校操场上有一些学生,教师起知道有多少人,便让学生排队报数:按1到5报数,最后一名学生的报数为1,按1到6报数,最后一名学生的报数为5,按1到7报数,最后一名学生的报数为4,最后再按1到11报数,最后一名学生的报数为10。编写程序求操场上共有多少学生。2、将自然数1100按顺时围成一圈,首先取出1,然后按顺时针方向以步长30取数,直到所有的数取完为此。编程序求最后一个取出的数?2021年真题一、单项选择题1、以下不是C语言合法标识符的是B。A、_124B、124abeC、sum1242、假设有如图1所示存储构造,且变量定义为现如图2所

20、示的存储构造,可选用的赋值语句是pqr图1A、p=r;B、p=q-nextC、二、程序分析题1、#includemain()doublex,y;printf(%.2f,(x=5,y=x+3/2);2、#include#defineCUBE(x)(x*x*x)main()intn=5;ints=CUBE(+n);printf(%d,s);3、#includevoidfun(inta,int*b)a=*b*2;*b=a*5;main()intx=10,*y;y=&x;D、a_124structnodeintdata;structnode*next;*p,*q,*r;假设要实D。p_q*图2p-ne

21、xt=q;D、p-next=q-next;6.00512100,100fun(x,y);printf(%d,%d,x,*y);4、#includevoidfun(int*a)*a=*(a-1)+*(a+1);main()inti=0,s=0,arr5=1,3,5,7,9;fun(arr+2);for(;i5;i+)s+=arri;printf(%d,s);三、程序填空题1、以下函数rtrim实现的是删除字符串str尾部的所有空格。char*rtrim(char*str)intn=strlen(str)-1;if(n0)if(*(str+n)!=)*(str+n+1)=0;break;elsen

22、-;returnstr;2、某超市推行会员优惠购物,其中VIP会员八八折,金牌会员九折,银牌会员九三折,普通会员九六折,非会员不打折。以下程序实现了超市购物的结算,其中非会员、普通会员、银牌会员、金牌会员、VIP会员分别用0,1,2,3,4表示。#includedoublepute(intn,intgrade)intamount,i;doublesum,price,discount5=1.0,0.96,0.93,0.9,0.88;sum=0.0;for(i=0;in;i+)scanf(%lf%d,&price,&amount);/*price:商品单价,amount:商品数量*/sum+=pr

23、ice*amount;returnsum*discountgrade;main()intn,grade;/*n:商品种数,grade会员等级*/scanf(%d%d,&n,&grade);printf(%.2lfn,pute(n,grade);3、设文件studs.dat中存放着学生的根本信息,根本信息包括学号、专业等信息。以下程序的功能是:输入要读取的学生人数,利用malloc动态分配存来存储从文件中读取的学生信息,并输出读取的学生的学号,专业。#include#includestructstudentlongintnum;/*学号*/charname20;/*/charmajor25;/*

24、专业*/;FILE*fp;main()structstudentst,*pst;inti,num,realnum;printf(请输入读取的学生人数:”);scanf(%d,&num);pst=(structstudent*)malloc(num*sizeof(structstudent);if(!pst)return;fp=fopen(studs.dat,rb);if(NULL=fp)free(pst);return;realnum=0;printf(%st%st%st%sn:number”:number”:name”:major);/*文件包含的学生人数可能少于输入的人数*/for(i=0

25、;i=1);for(j=i-1;j=0;j+)for(j=i-1;j=0;j-)printf(%d,resultj);printf(n);五、程序设计题1、在全国青年歌手大奖赛中,有20个评委为参赛的选手打分,分数为1100分。选手最后得分为:去掉一个最高分和最低分后其余18个分数的平均值。请编写程序实现,输入20个评委评分,求出选手的最后得分。2、编写程序,输入5行5列整数方阵,计算并输出该方阵两条对角线上各元素的平方和。2021年真题一、单项选择题 TOC o 1-5 h z 1、C语言中,不合法的整型常量是B。A、88B、018C、-OxabcdD、2e52、C语言中,定义常量指针pp的

26、值不可变的正确语法是A。A、char*constp;B、charconst*p;C、const*charp;D、constchar*p;2、C语言中,一个2行3列矩阵M的值如下列图,能得到M中数值5的表达式是C389256A、*(M+1)+1B、*(*M+1)+1C、*(*(M+1)+1)D、*(*M+1)+1)3、C语言中,关于函数不正确的说法有CoA、实参可以是常量、变量或表达式B、实参与其对应的形参各占用独立的存储单元C、实参与形参的类型不一致时,以实参类型为准D、函数的类型与返回值的类型不一致时,以函数的类型为准二、程序分析题1、#includemain()enumColorRed,B

27、lue,Green,Yellow=6,Black,Purple,Pink;1,8b,dprintf(%d,%d,Blue,Purple);2、#includemain()chara=a,b,c,d;char*p=(char*)(&a+1);printf(%c,%c,*(a+1),*(p-1);3、#includeintbits_count(unsignedvalue)intcount=0;for(count=0;value!=0;value=1)if(value&1)!=0)count+;returncount;main()printf(%d,bits_count(14);4、#include

28、int*fun(int*q)staticinta=2;int*p=&a;a+=*q;returnp;main()inti=1;for(;i4;i+)printf(%4d,*fun(&i);三、程序填空题。1、会计记账时通常要求大整数用逗号进展分隔,以下函数实现将以分为单位的数字字符串转变为以元为单位,具体输出格式如下表所示。输入输出输入输出空0.0012345123.4510.011234561,234.56120.12123456712,345.56123412.341234567891,234,567.89#include#include#includechar*dst+=;if(len=

29、3) int i;for(i=len-2;i0;) *dst+=*src+;if(-i%3=0 )*dst+=,:;else *dst+= 0;*dst+=.;*dst+=len2 0 :*src+;*dst+=len10 :*src;dst=0;return resultp;2、以下程序的功能是实现向head指向的链表中插入新结点s使之仍然有序。链表已按序。#include#includetypedef struct Node int id;char *name;struct Node *next;Node;void Innode(Node *head, int id,char *str)i

30、nt j=0Node *p, *q,*s;p=head;while(p!=NULL&idp-id )dollars(charconst*src)intlen,len1,i;char*dst,*resultp;if(NULL=src)returnNULL;len=strlen(src);len1=lennext;s=(Node*)malloc(sizeof(Node);s-id=id;s-name=str;s-next=p;q-next=s;main()/*省略创立链表head的代码*/Innode(head,3,Jone);/*参数为假设插入的数据*/3、以下程序采用快速排序算法对任意输入的1

31、0个整数进展排序。快速排序算法是一种经典的排序方法,它是冒泡排序算法的改进。该算法的主要思想是在待排序的n个数据中取第一个数据作为基准值,将所有的数据分为两组,使得第一组中各数据值均小于或等于基准值,第二组中各数据值均大于基准值,这便完成了第一趟排序,再分别对第一组和第二组重复上述方法,直到每组只有一个数据为止。#includevoidqusort(ints,intstart,intend) int i,j;i=start;j=end;s0=sstart;while(ij) while(i=s0)j-;if(ij)si+=sjwhile(ij& si =s0) i+;if(ij)sH=si;s

32、i=s0;/*将每组首个元素赋给i*/*将每组末尾元素赋给j*/*设置基准值*/*位置左移*/*将sj放到sj的位置上,且i自增*/*位置右移*/if(starti)/*将基准值放入指定位置*/*对分割出的局部递归调用函数qusort()*/qusort(s,start,j-1);if(iend)qusort(s,j+1,end);main()inta11,i;printf(pleaseinput10numbers:n);for(i=1;i=10;i+)scanf(%d,&ai);qusort(a,1,10);printf(thesortednumbers:n);for(i=1;i=10;i+

33、)print(%4d,ai);四、程序改错题,不得删除行或增加行。1、以下函数的功能是:在指针数组表示的字符串列表中查找特定的字符,指针数组以NULL指针完毕,如果找到返回TRUE,否那么返回FALSE。程序中有两处错误,请标出并改正。L1#includeL2#includeL3#defineTRUE1L4#defineFALSE0L5intfind_string(char*string,charvalue)L6char*cur_str;L7if(*string=NULL)L8returnFALSE;L9while(cur_str=*strings)!=NULL)while(cur_str=*

34、strings+)!=NULL)L10while(curstr!=,0,)while(*cur_str!=0)L11if(*cur_str+=value)L12returnTRUE;L13L14returnFALSE;L15五、程序设计题1、一串数码是否构成合法的信用卡号,可以通过CheckCard算法来验证。CheckCard算法验证的过程如下:卡号的长度必须是16位。从卡号最后一位数字开场,将奇数位数字求和。从卡号最后一位数开场,将偶数位数字乘以2如果乘积为两位数,那么减9,再求和。将和所得的和值相加,当结果能被10整除时,那么校验通过。例如,卡号是88881奇数位和等于35偶数位乘以2乘

35、积为两位数的减去9的结果:16261577,求和等于35。35+35=70可以被10整除,校验通过。编写函数实现CheckCard算法,判断输入的卡号是否能通过验证,通过那么显示成功,否那么显示失败。2、随着信息化进程的不断推进,数据的平安性越来越受到人们的重视,数据加密技术是保证数据平安的重要手段。编程实现对C盘根目录下名为new.dat文件的数据进展加密,加密方式是将new.dat”文件中每个字符与字符A进展异或运算,运算后的加密数据存储到new.dat文件中。2021年真题一、单项选择题1、以下正确的C语言自定义标识符是C。A、intB、a.3C、_7cD、5d_2、i=3,执行j=i+

36、后,i和j的值分别为B。A、42B、43C、33D、323、C语言中,以下语句能跳过循环体中未执行的语句,接着执行本循环下一次迭代的语句是D。A、空语句B、break语句C、return语句D、continue语句二、填空题1、C语言中,文件操作fopen函数的原型为FILE*fopen(char*filename,char*mode);用于翻开一个指定文件,假设成功那么返回一个与之关联的流,否那么返回NULL;代码片段FILE*fp=fopen(c:test.data)的含义是以追加的方式翻开路径c:Vest.dat对应的文件,当访问的文件是二进制文件时,还需要在字符串a后增加一个字符b,以

37、上代码片段对应的关闭文件的C语言代码是fclose(fp);。三、综合应用题1、30人参观博物馆共花50美元,其中成年男子门票为3美元/人,成年女子2美元/人,小孩1美元/人。编程输出成年男子、成年女子和小孩人数的所有组合。题目分析如下:设x,y,z分别代表成年男子、成年女子和小孩人数。可得以下方程: TOC o 1-5 h z x+y+z=30(1)3x+2y+z=50用程序求此不定方程的非负整数解,可先通过-式得:2x+y=20由式可知,x变化围是0,10。根据以上分析编写程序如下:#includemain()intx,y,z;printf(MenWomenChildrenn);for(x

38、=0;x=10;x+)y=20-2*x;z=30-x-y;if(3*x+2*y+z=50)printf(%d%d%dn,x,y,z);四、程序分析题1、#includemain()inta=3,b=4;a%=b+=a+=a+b;printf(%d,%d,a,b);2、#includemain()intx=2,y=7,z=5;switch(x2)case1:switch(y0)case1:printf(1);break;case2:printf(2);break;case0:switch(z=5)case0:printf(3);break;case1:printf(4);break;defaul

39、t:printf(5);break;default:printf(6);3、#includemain()inta=8,y=0;doa+=2;y+=a;if(y30)break;while(a=10);10,1446printf(a=%dy=%dn,a,y);a=12y=344、#includefunc(inta,intb)returna=a+b,a%b;main()intx=9,y=7,z=3,rels;rels=func(func(x,y),z);printf(%dn,1rels);5、#includemain()charch25=1981;0921,*p2;inti,j,s=0;9191f

40、or(i=0;i2;i+)Pi=chi;for(i=0;i2;i+)for(j=1;j=3;j+=2)s=10*s+pi吐0;printf(%d,s);五、程序填空题1、下面程序输出x,y,z三个数中的最大值。#includemain()intx=3,y=7,z=6;inta,b;a=xyy:x;b=azz旦;printf(%d,b);2、下面程序承受键盘上的输入,直到按回车键为止,然后将输入的字符串输出,输出时如果原输入字符是英文大写字母那么转成小写字母输出,如果是小写字母那么转成大写字母输出,如果有连续的一个以上的空格时只输出一个空格。#includemain()charcx,pre=0;

41、while(cx=getchar()!=n)if(cx!=)if(cx=,a,&cx=,z,)putchar(cx-32);elseif(cx=A)putchar(cx+32);elseputchar(cx);elseif(pre!=)putchar(cx);pre=cx;3、Merge函数用于将两个升序的链表headl和head2合并成一个链表,并保持合并后链表依然升序。排序的依据为构造体类型Node中的data成员,合并中不得删除节点。typedefstructNodeintdata;structNode*next;Node;Node*Merge(Node*head1,Node*head2

42、)Node*head=NULL,*p1=NULL,*p2=NULL,*pcurrent;if(head1=NULL)returnhead2;if(head2=NULL)returnhead1;if(head1-datadata)head=head1;p1=head-next;p2=head2;elsehead=head2;p2=head-next;p1=head1;pcurrent=head;while(p1!=NULL&p2!=NULL)if(p1-datadata)pcurrent-next=p1;pcurrent=p1;p1=p1-next;elsepcurrent-next=p2;pc

43、urrent=p2;p2=p2-next;if(p1!=NULL)pcurrent-next=p1;if(p2!=NULL)pcurrent-next=p2;returnhead;六、程序改错题,不得增行或删行。1、以下程序用于输入两个学生的和成绩,然后输出这两个学生的平均成绩,运行结果如下列图。程序中存在三处错误,请标出并改正。inputscorsofstudentlname:Lilyscore:05inputscorsofstudent2name:Lucyscore:09avgscoreis07.0#includedefine N2#defineN2structStudentcharnam

44、e10;floatscore;main()structStudentstuN;inti=0;floatrels=0;for(;iN;i+)printf(inputscoresofstudent%d:n,i+1);printf(name:);scanf(%s,);printf(score:);scanf(%f,stui.score);scanf(%f,&stui.score);for(;iN;i+)for(i=0;iN;i+)rels+=stui.score;printf(avgscoreis:%3.2f,rels/N);2、以下程序将数组中元素逆序输出,运行结果如下列图。程序

45、中存在两处错误,请标出并改正。main()#includeddccbbaachar*array=aa,bb:cc:dd;char(*pt);char*pt;intj;pt=array+3;for(j=3;j=0;j-)printf(%s”,*(pt)j);printf(%s,ptj-3);、单项选择题2021年真题1、以下选项中正确的C语言变量定义是 B 。A、char a1 = A ,a2=A;B、unsigned long a=1000;C、float a1=a2=10.0;D、double a=0.618,a=3.142、假设有floata=5,b=a+5/2;那么执行语句printf(

46、%f,b);的输出结果为D。A、7.500000B、73、有输入语句:scanf(a=%d,b=%d方式是 C oA、12B、1,2C、5.000000D、7.000000,&a,&b);为了使变量C、a=1,b=2a的值为1, b的值为2,正确的数据输入D、a=1 b=2、填空题,使用函数strcmp()来对两个字符串进展比#include实现文件包含操作。1、在C语言中,可以使用函数strlen()来获取字符串的长度较。使用宏定义命令#define来定义宏,使用文件包含命令三、综合应用题1、民警小在某个案件中带回4个嫌疑人A,B,C,D,其中有一位是小偷,现在小分别对4个嫌疑人进展询问:A

47、说:我不是罪犯;B说:C是罪犯;C说:D是罪犯;D说:我不是罪犯而且B也不是罪犯。其中3个人说的是真话,1人说的是假话,请根据以上信息帮助小找出罪犯。#include#includemain()inti;charwho=A;intisFound=0;for(i=0;i4;i+)intsum=0;who=A+i;if(who!=A)sum+;if(who=,C,)sum+;if(who=,D,)sum+;if(who!=D&who!=B)sum+;if(sum=3)printf(罪犯是%cn,who);isFound=1;if(!isFound)printf(没有找到符合条件的人n);四、程序分

48、析题1、#includemain()inta=7,b=3,c=2;intd=(ab!=c);printf(%d,d);2、当以下程序输入为125时,运行结果是#includemain()intc;while(c=getchar()!=n)switch(c-2)case0:putchar(c+4);putchar(c+4);break;putchar(c+3);default:putchar(c+2);break;3、#includestaticintf=1;intfunc(intn)f+=n;returnf;main()inti;for(i=2;i=3;i+)printf(%d,func(i)

49、;4、#includemain()inta9=1,2,3,4,5,678;int*p=a;intsum=0;for(;pa+8;p+)366873620if(*p%2=0)sum+=*p;printf(%d,sum);5、#includevoidf(int*q)inti;for(i=0;i3;i+)(*q)-;main()inta5=8,7,6,i;f(a);for(i=0;i3;i+)printf(%d,ai);五、程序填空题1、下面程序从文本文件test.txt逐个读入字符,并显示在屏幕上。#includemain()FILE*fp;charch,*filename=tdst.txt)if

50、(fp=fopen(filename,r)=NULL)printf(cannotopenfilen);exit(0);while(!feof(fp)ch=fgetc(fp);putchar(ch);fclose(fp);2、以下程序的功能是:读入一行字符,以回车完毕,按输入时的逆序使用单链表进展存储,先输入的位于链表尾,然后再遍历输出链表。structnodecharvalue;structnode*link;;main()structnode*top,*p;charc;top=NULL;while(c=getchar()!=n)p=(structnode*)malloc(sizeof(str

51、uctnode);p-value=c;p-link=top;top=p;p=top;while(p)putchar(p-value);p=p-link;3、折半查找也称为二分查找,适用于有序数组。数组按照升序排列。#includeintmain()intkey=0;intdata10=1,3,578,9,13,18,22,28;intret;printf(请输入要查找的数:”);scanf(%d,&key);ret=BinarySearch(key,data);if(ret=0)printf(n%d是数组中的第d个数n,key,ret+1);elseprintf(n%d在数组中未找到!n,ke

52、y);system(pause);return0;intBinarySearch(intkey,intdata)intlow=0,high=9,middle;while(low=high)middle=(low+high)/2;if(key=datamiddle)returnmiddle;elseif(keydatamiddle)high=middle-1;elselow=middle+1;return-1;六、程序改错题,不得增选或删行,也不得更改程序构造。1、矩阵乘法是指两个矩阵相乘,生成一个新矩阵,其乘法公式如下:KCijailbljl1以下程序实现两个2X2的矩阵相乘。只对程序中的两行

53、代码进展修改,使其可以正确运行。#include TOC o 1-5 h z #defineM2#defineN2#defineK2intmain()intaMK=1,-1,0,2;intbKN=4,0,2,5;intcMN;intcMN=0;inti,j,l;for(i=0;iM;i+)for(j=0;jN;j+)for(l=0;lk;l+)ci昨ail*b皿;cij+=ail*blj;return0;2、某班举行歌唱比赛,赛后需要显示成绩最高的选手名字和成绩,以下程序实现了查找得分最高选手的功能。只对程序中的三行代码进展修改,使其可以正确运行。#include#defineMAX3stru

54、ctPLAYERtypedefstructPLAYERchar*name;floatscore;Player;intmain()Playerplayers=丁一,90.3,二,95.8,三,89.6;Player*player;Playertopplayer=players0;for(player=players;playertopplayer.score)if(player-scoretopplayer.score)topplayer=player;topplayer=*player;printf(TopPlayeris%s,scoreis%6.2f,,toppl

55、ayer.score);return0;2021年真题一、单项选择题1、算法的复杂度主要包括算法的时间复杂度和空间复杂度,算法的时间复杂度是指DA、算法程序中的指令数B、算法程序的长度C、算法程序所占的存储空间D、算法执行过程中所需要的根本运算次数2、C语言程序的根本单位是BA、字节B、函数C、语句D、字符3、假设变量a,i已正确定义,且i已正确赋值,合法的C语言语句是CA、a=int(i);B、a=0C、+i;D、a=a+=2;二、填空题1、在C语言中,文件的翻开方式决定对该文件所能进展的操作权限,文件翻开方式参数了以只读方式翻开一个文本文件,W以写方式翻开一个文本文件,r+以读写方式翻开一

56、个文本文件,:a以在文件后面添加数据方式翻开文本文件。三、综合应用题1、输入三角形的三边a、b、c,判断a、b、c能否构成三角形,如果能够构成三角形那么判断为何种类型的三角形:等腰三角形、等边三角形、直角三角形、等腰直角三角形、一般三角形。#include#includemain()floata,b,c;printf(请输入三角形边长n);scanf(%f%f%f,&a,&b,&c);if(a+b=c|a+c=b|b+c=a)printf(不能构成三角形n);elseif(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);elseprintf(直角三角形n);elseif(a=b&a=c)printf(等边三角形n);elseif(a=b|b=c|c=a)printf(等腰三角形n);elseprintf(一般三角形n);四、程序分析题1,2,21、#includemain()inti=0,j=1,z=2;if(j+|z+)&i+);printf(%d,%d,%dn,i,j,z);googluck2、#includemain()intn=b;switch(+n)default:printf(error);break;casea:caseA:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论