版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
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以的完數(shù)。完數(shù)是指一個數(shù)的子因子之和等于這個數(shù)本身。#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、以下程序是統(tǒng)計一維數(shù)組arr中小于平均值的元素個數(shù)。#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(統(tǒng)計結(jié)果為:%d,fun(arr,aver);三、程序改錯題,不得增行或刪行。m1、下面的程序是求n!,在函數(shù)fun()中存在兩處錯誤,請標(biāo)記并改正。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,不區(qū)分大小寫。如輸入字符串a(chǎn)bcCdefcfCg”,刪除后的字符串為abdefg。程序有兩錯誤,請標(biāo)記并改正。#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、以下程序從一個二進(jìn)制文件中讀出構(gòu)造體數(shù)據(jù),并將構(gòu)造體數(shù)據(jù)輸出在屏幕上。程序中有三處錯誤,請標(biāo)記并改正。#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);四、程序設(shè)計題1、一個數(shù)列從1項開場的前6項為:0,0,1
7、,1,2,4以后的各項都是其相鄰的前3項之和,計算并輸出該數(shù)列前20項之和。2、寫一函數(shù)sort(intx,intn)實現(xiàn)選擇法排序(從小到大)、程序分析題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、任意輸入平面一點(diǎn)坐標(biāo)(x,y),求該點(diǎn)到原點(diǎn)(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、以下給定程序中,函數(shù)fun()的功能是:從N個字符串中找出最長的那個串,并將其地址作為函數(shù)值返回。#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的二維數(shù)組,并在主函數(shù)中自動賦值;函數(shù)三角元素的值全部置0。fun的功能是使二維數(shù)組的上調(diào)用函數(shù)前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、以下程序的功能是求分?jǐn)?shù)序列:處錯誤,請標(biāo)記并改正。#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);調(diào)用函數(shù)后1
12、002403698955342113553421138的前8項之和。程序中有22、以下程序的功能是采用簡單插入的排序方法,隨機(jī)產(chǎn)生10個整數(shù),按從小到大的順序排列。程序中有2處錯誤,請標(biāo)記并改正。#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);四、程序設(shè)計題1、有一輛在高速公路上行駛的汽車,司機(jī)在某一時刻看到里程表顯示的數(shù)值為958
13、59公里95859為回文數(shù),回文數(shù)是指正讀反讀均一樣的數(shù),7小時后,里程表上又出現(xiàn)了一個回文數(shù)。編程求出此回文數(shù)和汽車時速?(注:高速公路限速60公里以上,汽車的里程表為5位數(shù))2、弦數(shù)是指平方值等于某兩個正整數(shù)平方之和的正整數(shù),如:32+42=52,因此5為弦數(shù)。編程輸出10到100之的所有弦數(shù)及弦數(shù)的數(shù)量。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個藍(lán)球中任意取出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以最大的一對攣生素數(shù)之和,攣生素數(shù)是指兩個素數(shù)之差為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、以下程序的功能是:從一個整數(shù)隊列中找出值最大的數(shù),假設(shè)有多個那么取最先得到的那一個。程序有兩處錯誤,請標(biāo)出并改正。#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、以下程序的功能是:輸入一個字符串,將該字符串中的所有字符按程序有兩處錯誤,請標(biāo)出并改正。#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);四、程序設(shè)計題1、某學(xué)校操場上有一些學(xué)生,教師起知道有多少人,便讓學(xué)生排隊報數(shù):按1到5報數(shù),最后一名學(xué)生的報數(shù)為1,按1到6報數(shù),最后一名學(xué)生的報數(shù)為5,按1到7報數(shù),最后一名學(xué)生的報數(shù)為4,最后再按1到11報數(shù),最后一名學(xué)生的報數(shù)為10。編寫程序求操場上共有多少學(xué)生。2、將自然數(shù)1100按順時圍成一圈,首先取出1,然后按順時針方向以步長30取數(shù),直到所有的數(shù)取完為此。編程序求最后一個取出的數(shù)?2021年真題一、單項選擇題1、以下不是C語言合法標(biāo)識符的是B。A、_124B、124abeC、sum1242、假設(shè)有如圖1所示存儲構(gòu)造,且變量定義為現(xiàn)如圖2所
20、示的存儲構(gòu)造,可選用的賦值語句是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;假設(shè)要實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、以下函數(shù)rtrim實現(xiàn)的是刪除字符串str尾部的所有空格。char*rtrim(char*str)intn=strlen(str)-1;if(n0)if(*(str+n)!=)*(str+n+1)=0;break;elsen
22、-;returnstr;2、某超市推行會員優(yōu)惠購物,其中VIP會員八八折,金牌會員九折,銀牌會員九三折,普通會員九六折,非會員不打折。以下程序?qū)崿F(xiàn)了超市購物的結(jié)算,其中非會員、普通會員、銀牌會員、金牌會員、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:商品數(shù)量*/sum+=pr
23、ice*amount;returnsum*discountgrade;main()intn,grade;/*n:商品種數(shù),grade會員等級*/scanf(%d%d,&n,&grade);printf(%.2lfn,pute(n,grade);3、設(shè)文件studs.dat中存放著學(xué)生的根本信息,根本信息包括學(xué)號、專業(yè)等信息。以下程序的功能是:輸入要讀取的學(xué)生人數(shù),利用malloc動態(tài)分配存來存儲從文件中讀取的學(xué)生信息,并輸出讀取的學(xué)生的學(xué)號,專業(yè)。#include#includestructstudentlongintnum;/*學(xué)號*/charname20;/*/charmajor25;/*
24、專業(yè)*/;FILE*fp;main()structstudentst,*pst;inti,num,realnum;printf(請輸入讀取的學(xué)生人數(shù):”);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);/*文件包含的學(xué)生人數(shù)可能少于輸入的人數(shù)*/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);五、程序設(shè)計題1、在全國青年歌手大獎賽中,有20個評委為參賽的選手打分,分?jǐn)?shù)為1100分。選手最后得分為:去掉一個最高分和最低分后其余18個分?jǐn)?shù)的平均值。請編寫程序?qū)崿F(xiàn),輸入20個評委評分,求出選手的最后得分。2、編寫程序,輸入5行5列整數(shù)方陣,計算并輸出該方陣兩條對角線上各元素的平方和。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中數(shù)值5的表達(dá)式是C389256A、*(M+1)+1B、*(*M+1)+1C、*(*(M+1)+1)D、*(*M+1)+1)3、C語言中,關(guān)于函數(shù)不正確的說法有CoA、實參可以是常量、變量或表達(dá)式B、實參與其對應(yīng)的形參各占用獨(dú)立的存儲單元C、實參與形參的類型不一致時,以實參類型為準(zhǔn)D、函數(shù)的類型與返回值的類型不一致時,以函數(shù)的類型為準(zhǔn)二、程序分析題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、會計記賬時通常要求大整數(shù)用逗號進(jìn)展分隔,以下函數(shù)實現(xiàn)將以分為單位的數(shù)字字符串轉(zhuǎn)變?yōu)橐栽獮閱挝唬唧w輸出格式如下表所示。輸入輸出輸入輸出空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、以下程序的功能是實現(xiàn)向head指向的鏈表中插入新結(jié)點(diǎn)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()/*省略創(chuàng)立鏈表head的代碼*/Innode(head,3,Jone);/*參數(shù)為假設(shè)插入的數(shù)據(jù)*/3、以下程序采用快速排序算法對任意輸入的1
31、0個整數(shù)進(jìn)展排序??焖倥判蛩惴ㄊ且环N經(jīng)典的排序方法,它是冒泡排序算法的改進(jìn)。該算法的主要思想是在待排序的n個數(shù)據(jù)中取第一個數(shù)據(jù)作為基準(zhǔn)值,將所有的數(shù)據(jù)分為兩組,使得第一組中各數(shù)據(jù)值均小于或等于基準(zhǔn)值,第二組中各數(shù)據(jù)值均大于基準(zhǔn)值,這便完成了第一趟排序,再分別對第一組和第二組重復(fù)上述方法,直到每組只有一個數(shù)據(jù)為止。#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*/*設(shè)置基準(zhǔn)值*/*位置左移*/*將sj放到sj的位置上,且i自增*/*位置右移*/if(starti)/*將基準(zhǔn)值放入指定位置*/*對分割出的局部遞歸調(diào)用函數(shù)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、以下函數(shù)的功能是:在指針數(shù)組表示的字符串列表中查找特定的字符,指針數(shù)組以NULL指針完畢,如果找到返回TRUE,否那么返回FALSE。程序中有兩處錯誤,請標(biāo)出并改正。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五、程序設(shè)計題1、一串?dāng)?shù)碼是否構(gòu)成合法的信用卡號,可以通過CheckCard算法來驗證。CheckCard算法驗證的過程如下:卡號的長度必須是16位。從卡號最后一位數(shù)字開場,將奇數(shù)位數(shù)字求和。從卡號最后一位數(shù)開場,將偶數(shù)位數(shù)字乘以2如果乘積為兩位數(shù),那么減9,再求和。將和所得的和值相加,當(dāng)結(jié)果能被10整除時,那么校驗通過。例如,卡號是88881奇數(shù)位和等于35偶數(shù)位乘以2乘
35、積為兩位數(shù)的減去9的結(jié)果:16261577,求和等于35。35+35=70可以被10整除,校驗通過。編寫函數(shù)實現(xiàn)CheckCard算法,判斷輸入的卡號是否能通過驗證,通過那么顯示成功,否那么顯示失敗。2、隨著信息化進(jìn)程的不斷推進(jìn),數(shù)據(jù)的平安性越來越受到人們的重視,數(shù)據(jù)加密技術(shù)是保證數(shù)據(jù)平安的重要手段。編程實現(xiàn)對C盤根目錄下名為new.dat文件的數(shù)據(jù)進(jìn)展加密,加密方式是將new.dat”文件中每個字符與字符A進(jìn)展異或運(yùn)算,運(yùn)算后的加密數(shù)據(jù)存儲到new.dat文件中。2021年真題一、單項選擇題1、以下正確的C語言自定義標(biāo)識符是C。A、intB、a.3C、_7cD、5d_2、i=3,執(zhí)行j=i+
36、后,i和j的值分別為B。A、42B、43C、33D、323、C語言中,以下語句能跳過循環(huán)體中未執(zhí)行的語句,接著執(zhí)行本循環(huán)下一次迭代的語句是D。A、空語句B、break語句C、return語句D、continue語句二、填空題1、C語言中,文件操作fopen函數(shù)的原型為FILE*fopen(char*filename,char*mode);用于翻開一個指定文件,假設(shè)成功那么返回一個與之關(guān)聯(lián)的流,否那么返回NULL;代碼片段FILE*fp=fopen(c:test.data)的含義是以追加的方式翻開路徑c:Vest.dat對應(yīng)的文件,當(dāng)訪問的文件是二進(jìn)制文件時,還需要在字符串a(chǎn)后增加一個字符b,以
37、上代碼片段對應(yīng)的關(guān)閉文件的C語言代碼是fclose(fp);。三、綜合應(yīng)用題1、30人參觀博物館共花50美元,其中成年男子門票為3美元/人,成年女子2美元/人,小孩1美元/人。編程輸出成年男子、成年女子和小孩人數(shù)的所有組合。題目分析如下:設(shè)x,y,z分別代表成年男子、成年女子和小孩人數(shù)??傻靡韵路匠蹋?TOC o 1-5 h z x+y+z=30(1)3x+2y+z=50用程序求此不定方程的非負(fù)整數(shù)解,可先通過-式得:2x+y=20由式可知,x變化圍是0,10。根據(jù)以上分析編寫程序如下:#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三個數(shù)中的最大值。#includemain()intx=3,y=7,z=6;inta,b;a=xyy:x;b=azz旦;printf(%d,b);2、下面程序承受鍵盤上的輸入,直到按回車鍵為止,然后將輸入的字符串輸出,輸出時如果原輸入字符是英文大寫字母那么轉(zhuǎn)成小寫字母輸出,如果是小寫字母那么轉(zhuǎn)成大寫字母輸出,如果有連續(xù)的一個以上的空格時只輸出一個空格。#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函數(shù)用于將兩個升序的鏈表headl和head2合并成一個鏈表,并保持合并后鏈表依然升序。排序的依據(jù)為構(gòu)造體類型Node中的data成員,合并中不得刪除節(jié)點(diǎn)。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、以下程序用于輸入兩個學(xué)生的和成績,然后輸出這兩個學(xué)生的平均成績,運(yùn)行結(jié)果如下列圖。程序中存在三處錯誤,請標(biāo)出并改正。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、以下程序?qū)?shù)組中元素逆序輸出,運(yùn)行結(jié)果如下列圖。程序
45、中存在兩處錯誤,請標(biāo)出并改正。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、假設(shè)有floata=5,b=a+5/2;那么執(zhí)行語句printf(
46、%f,b);的輸出結(jié)果為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,正確的數(shù)據(jù)輸入D、a=1 b=2、填空題,使用函數(shù)strcmp()來對兩個字符串進(jìn)展比#include實現(xiàn)文件包含操作。1、在C語言中,可以使用函數(shù)strlen()來獲取字符串的長度較。使用宏定義命令#define來定義宏,使用文件包含命令三、綜合應(yīng)用題1、民警小在某個案件中帶回4個嫌疑人A,B,C,D,其中有一位是小偷,現(xiàn)在小分別對4個嫌疑人進(jìn)展詢問:A
47、說:我不是罪犯;B說:C是罪犯;C說:D是罪犯;D說:我不是罪犯而且B也不是罪犯。其中3個人說的是真話,1人說的是假話,請根據(jù)以上信息幫助小找出罪犯。#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、當(dāng)以下程序輸入為125時,運(yùn)行結(jié)果是#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、以下程序的功能是:讀入一行字符,以回車完畢,按輸入時的逆序使用單鏈表進(jìn)展存儲,先輸入的位于鏈表尾,然后再遍歷輸出鏈表。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、折半查找也稱為二分查找,適用于有序數(shù)組。數(shù)組按照升序排列。#includeintmain()intkey=0;intdata10=1,3,578,9,13,18,22,28;intret;printf(請輸入要查找的數(shù):”);scanf(%d,&key);ret=BinarySearch(key,data);if(ret=0)printf(n%d是數(shù)組中的第d個數(shù)n,key,ret+1);elseprintf(n%d在數(shù)組中未找到!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;六、程序改錯題,不得增選或刪行,也不得更改程序構(gòu)造。1、矩陣乘法是指兩個矩陣相乘,生成一個新矩陣,其乘法公式如下:KCijailbljl1以下程序?qū)崿F(xiàn)兩個2X2的矩陣相乘。只對程序中的兩行
53、代碼進(jìn)展修改,使其可以正確運(yùn)行。#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、某班舉行歌唱比賽,賽后需要顯示成績最高的選手名字和成績,以下程序?qū)崿F(xiàn)了查找得分最高選手的功能。只對程序中的三行代碼進(jìn)展修改,使其可以正確運(yùn)行。#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、算法的復(fù)雜度主要包括算法的時間復(fù)雜度和空間復(fù)雜度,算法的時間復(fù)雜度是指DA、算法程序中的指令數(shù)B、算法程序的長度C、算法程序所占的存儲空間D、算法執(zhí)行過程中所需要的根本運(yùn)算次數(shù)2、C語言程序的根本單位是BA、字節(jié)B、函數(shù)C、語句D、字符3、假設(shè)變量a,i已正確定義,且i已正確賦值,合法的C語言語句是CA、a=int(i);B、a=0C、+i;D、a=a+=2;二、填空題1、在C語言中,文件的翻開方式?jīng)Q定對該文件所能進(jìn)展的操作權(quán)限,文件翻開方式參數(shù)了以只讀方式翻開一個文本文件,W以寫方式翻開一個文本文件,r+以讀寫方式翻開一
56、個文本文件,:a以在文件后面添加數(shù)據(jù)方式翻開文本文件。三、綜合應(yīng)用題1、輸入三角形的三邊a、b、c,判斷a、b、c能否構(gòu)成三角形,如果能夠構(gòu)成三角形那么判斷為何種類型的三角形:等腰三角形、等邊三角形、直角三角形、等腰直角三角形、一般三角形。#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(不能構(gòu)成三角形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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第十一課《畫正多角星(一)》說課稿 2023-2024學(xué)年新世紀(jì)版(2018)初中信息技術(shù)八年級上冊
- 第9課 拒絕侵權(quán)明責(zé)任(說課稿)2023-2024學(xué)年四年級下冊信息技術(shù)閩教版
- 11 爸爸媽媽在我心中 說課稿-2023-2024學(xué)年道德與法治三年級上冊統(tǒng)編版
- 項目挑戰(zhàn):創(chuàng)建團(tuán)隊云-說課稿
- Module 3 Unit 1 Where did you go?(說課稿)-2024-2025學(xué)年外研版(三起)英語五年級上冊
- 第三課 發(fā)現(xiàn)自己 說課稿-2023-2024學(xué)年統(tǒng)編版道德與法治七年級上冊
- 《短歌行》《歸園田居(其一)》聯(lián)讀說課稿 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊
- 安陽網(wǎng)絡(luò)推廣服務(wù)合同模板
- 工地清樓合同范例
- 勘察設(shè)計掛靠合同范例
- 傳染病的實驗室檢查
- 《集裝箱出口流程》課件
- 口腔科診療技術(shù)操作規(guī)范2023版
- 膝關(guān)節(jié)階梯化治療
- 2024年中糧集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 駕??颇慷?yīng)急預(yù)案流程
- 人教版2023-2024學(xué)年五年級數(shù)學(xué)上冊常考易考突圍第三單元:小數(shù)除法簡便計算“拓展型”專項練習(xí)(解析版)
- 婦幼保健院新生兒口腔護(hù)理操作考核評分標(biāo)準(zhǔn)
- 2023團(tuán)校團(tuán)史團(tuán)章培訓(xùn)考試題庫(含答案)
- 《狼王夢》好書推薦課件
- 購物中心行業(yè)營銷策略方案
評論
0/150
提交評論