哈尔滨工程大学c语言汇编

上传人:jin****ng 文档编号:96338773 上传时间:2022-05-25 格式:DOC 页数:22 大小:202KB
返回 下载 相关 举报
哈尔滨工程大学c语言汇编_第1页
第1页 / 共22页
哈尔滨工程大学c语言汇编_第2页
第2页 / 共22页
哈尔滨工程大学c语言汇编_第3页
第3页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
学习-好资料一、选择题对一维数组a的正确说明是_Ds4=CtestnA)inta(10);B)intn=10,an;C)intn;D)#defineSIZE102. seanf(%d,&n);intaSIZE;intan;能对二维数组a进行正确初始化的语句是B。3. A)inta2=1,0,1,5,3,2;C)inta24=1,2,3,4,5,6;对两个数组a和b进行如下初始化chara=ABCDEF;charb=A,B,C,D,E,F;则以下叙述正确的是_D_。A)a与b数组完全相同C)a和b中都存放字符串以下数组定义中不正确的是D_B)inta3=1,2,3,4,5,6;D)inta3=1,0,1,1,2,3,4,1,1;B)a与b长度相同D)a数组比b数组长度长A)inta23;C)intc100100=0;d3=1,2,1,2,3,1,2,3,4;5.以下选项中,不能正确赋值的是A)chars110;s仁Ctest;C)chars320=Ctest;B)intb3=0,1,2,3,4,5;D)A0B)chars2=C,t,e,s,tD)intchar二、阅读程序写出结果1.#includevoidmain()charch7=12ab56;inti,s=0;for(i=0;chi=0&chiv=9;i+=2)s=10*s+chi-0;printf(%dn,s);答案:12.#includevoidmain()inta10=1,2,2,3,4,3,4,5,1,5;intn=0,i,j,c,k;for(i=0;i10-n;i+)c=ai;for(j=i+1;j10-n;j+)if(aj=c)n+;for(k=j;k10-n;k+)ak=ak+1;for(i=0;i(10-n);i+)printf(%d,ai);答案:123453.#includevoidmain()inti;chara=Time,b=Tom;for(i=0;ai!=0&bi!=0;i+)if(ai=bi)if(ai=a&ai=z)printf(%c,ai-32);elseprintf(%c,ai+32);elseprintf(*);答案:t*M4.#include#defineLEN4voidmain()intj,c;staticcharn2LEN+1=8980,9198;for(j=LEN-1;j=0;j-)c=n0j+n1j-2*0;n0j=c%10+0;for(j=0;j=1;j+)puts(nj);答案:70789198学习-好资料三、程序填空1.程序的功能是在a数组中查找与x值相同的元素的所在位置。#includevoidmain()inta11,x,i;printf(Enter10integers:n);for(i=1;i=1i2.数组a包括10个整型元素,从数组a的第2个元素开始,分别将后项减前项之差存入数组b,并按每行3个元素的格式输出数组b。例如b0=a1-a0(#includevoidmain()inta10,b10,i;for(i=0;(1);i+)scanf(%d,&ai);for(i=1;,(2)_;i+)bi=ai-ai-1;for(i=1;i10;i+)printf(%3d,bi);if()printf(n);答案:(1) i=9(2) i=91. i%3=0四、程序改错程序的功能是:计算数组各元素之和,并存入首元素中。#includevoidmain()inta10=0;/*found*/inti;for(i=0;i10;i+)scanf(%d,&ai);for(i=1;i=10;i+)a0=a0+ai;/*found*/printf(%dn,a0);答案:(1)inta3=0;(2)for(i=1;i3;i+)a0=a0+ai;2.函数fun的功能是:将数组s中的字符串的反序和正序连接后形成的新字符串放在数组t中。例如,当数组s所存的字符串为ABCD时,数组t应为DCBAABCD。#include#include#includevoidfun(chars,chart)inti,d;d=strlen(s);for(i=1;id;i+)/*found*/ti=sd-1-i;for(i=0;id;i+)td+i=si;t2*d=/0;/*found*/voidmain()chars100,t100;clrscr();printf(nPleaseenterstringS:);scanf(%s,&s);/*found*/fun(s,t);printf(nTheresultis:%sn,t);答案:(1)for(i=0;id;i+)(2)0scanf(“%s”,s)五、程序问答1.#includevoidmain()inta100,i,j,n,p;printf(输入数值的个数n和数列an);scanf(%d,&n);scanf(%d,&a0);for(i=1;i=n-1;i+)scanf(%d,&ai);p=ai;j=i-1;while(p=0)aj+1=aj;j-;aj+1=p;for(i=0;in;i+)printf(%d,ai);printf(n);问题1:该程序的功能是什么?问题2:如果先输入一个10,再输入下面的10个数:1928374655则该程序输出什么?答案:(1).升序(2).1234556789#includevoidmain()inta=11,33,27,33,-1,22,-8,12;inti,t,j;for(i=0;ii;j-)if(aj-1aj)t=aj-1;aj-1=aj;aj=t;for(i=0;i8;i+)printf(“%4d”,ai);问题1:此程序的运行结果是什么?问题2:若将函数中的语句:if(aj-1aj)则程序的运行结果是什么?答案:-833六、编程1.在一组数中找出最大与最小值之差。#includevoidmain()inta10,i,x,y;printf(pleaseinputthenumber:n);for(i=0;i10;i+)scanf(%d,&ai);x=a0;y=a0;for(i=1;ix)x=ai;if(aiy)y=ai;printf(theansweris%d,x-y);2.用选择法将一组整数按降序排序。#includevoidmain()inta10,i,j,k,t;printf(pleaseinputthenumbers:n);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i=8;i+)k=i;for(j=i+1;jak)k=j;t=ak;ak=ai;ai=t;for(i=0;i=9;i+)printf(%d,ai);在一个按升序排列的数组中插入一个数,使数组仍有序。#includevoidmain()inta7=3,5,7,9,11,23;intb,i,k;scanf(%d,&b);a6=b;i=5;while(b=0)ai+1=ai;ai=b;i-;2. printf(charuhoudeshuzun);for(i=0;i7;i+)printf(%d,ai);用顺序”查找法,在一组数中查找一个值为K的元素。若有,输出YES;若无,输出NO。#includevoidmain()inta10,i,j,k;printf(pleaseinputthenumbers:n);for(i=0;i10;i+)3. scanf(%d,&ai);printf(pleaseinputtheaimnumber:n);scanf(%d,&k);for(i=0;i9)printf(NOn);elseprintf(YESn);输出以下形式的图案:4. *#includevoidmain()inti,j;for(i=1;i=4;i+)for(j=1;j=i-1;j+)printf();for(j=1;j=9-2*i;j+)printf(*);printf(n);将一个数组按逆序重新存放在该数组中。5. #includevoidmain()inta10,i,t;printf(pleaseinputthenumbers:n);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10/2;i+)t=ai;ai=a10-1-i;a10-1-i=t;for(i=0;i10;i+)printf(%d,ai);打印一个5行的杨辉三角形。6. #includevoidmain()inta55=0,i,j;for(i=0;i=4;i+)ai0=aii=1;for(i=2;i=4;i+)for(j=1;ji;j+)aij=ai-1j+ai-1j-1;for(i=0;i=4;i+)for(j=0;j=i;j+)printf(%3d,aij);printf(n);用二维字符数组存储下列图形并输出*#includevoidmain()charc55=0;inti,j;for(i=0;i5;i+)for(j=i;j5;j+)cij=*;for(i=0;i5;i+)for(j=0;j5;j+)printf(%c,cij);printf(n);计算二维数组主对角线元素之和#includevoidmain()inta33,i,j,x;printf(pleaseinputthenumbers:n);for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);x=0;for(i=0;i3;i+)x=x+aii;printf(theansweris%dn,x);用“折半”查找法,在一组按降序排列的数中查找一个值为K的元素。若有,输出YES;若无,输出NO。7. #includevoidmain()inta10=10,9,8,7,6,5,4,3,2,1,l,r,m,k;printf(pleaseinputthenumbers:n);scanf(%d,&k);l=0;r=9;m=(1+r)/2;while(lam)r=m-1;elsel=m+1;m=(l+r)/2;if(l=r)printf(nYES);elseprintf(nNO);编写一个程序计算一个字符串的长度。(不使用库函数)#include#includevoidmain()chars80;intn=0;gets(s);while(sn)n+;printf(length=%d,n);比较两个字符串S1、S2的大小。(不使用库函数)若S1S2,输出1;若S1=S2,输出0;若S1S2输出-1。8. #include#includevoidmain()chars180,s280;inti,n;gets(s1);gets(s2);i=0;while(s1i&s2i&s1i=s2i)i+;if(!s1i|s1is2i)n=1;if(!s1i&!s2i)n=0;printf(jieguoshi%d,n);用“冒泡”法将一组数按升序排序。1. #includevoidmain()inta10,i,j,x;for(i=0;i10;i+)scanf(%d,&ai);for(j=0;j9;j+)for(i=0;iai+1)x=ai;ai=ai+1;ai+1=x;for(i=0;i10;i+)printf(%4d,ai);在一个二维数组中形成并输出如下矩阵#includevoidmain()inta55;inti,j;for(i=0;i5;i+)for(j=0;j5;j+)if(i=j)aij=1;elseaij=i-j+1;for(i=0;i5;i+)for(j=0;j5;j+)printf(%2d,aij);printf(n);有一个3X4的矩阵,求其中的最大元素的值及位置。#includevoidmain()inta34,i,j,x,l,r;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,&aij);x=a00;l=r=0;for(i=0;i3;i+)for(j=0;jx)x=aij;l=i;r=j;printf(Maxnumberis%d,positionis%d,%dn,x,l,r);学习-好资料一、选择题根据下面的定义,能打印出字母M的语句是(D)。structpersoncharname9;intage;structpersonclass10=John,17,Paul,19,Mary,18,Adam,16;A. printf(%cn,class3.name);B. printf(%cn,class3.name1);C. printf(%cn,class2.name1);2. printf(%cn,class2.name0);若有以下结构体定义:structexampleintx1;inty1;则B是正确的使用方式。A. structexample.x1=100;B.structexamplexy;xy.x1=100;3. C.structxy;xy.x1=100;D.structexamplexy=100;下面结构体数组的定义,错误的是(D)。structstudentintnum;charname10;floatscore;structstudentstu30;structintnum;charname10;floatscore;stu30;structstudentintnum;charname10;floatscore;stu30;structstu30intnum;charname10;floatscore;二、写出以下程序的运行结果(1)#includevoidmain()structcmplxintx;inty;cnum2=1,3,2,7;printf(%dn,cnum0.y/cnum0.x*cnum1.x);答案:6(2)#includevoidmain()structdateintyear,month,dat;today;printf(%dn,sizeof(structdate);答案:6(3)#includevoidmain()structMINGstructintx;inty;in;inta;intb;e;e.a=1;e.b=2;e.in.x=e.a*e.b;e.in.y=e.a+e.b;printf(%d,%d,e.in.x,e.in.y);答案:2,3(4)#includevoidmain()structabcinta,b,c;structabcs2=1,2,3,4,5,6;intt;t=s0.a+s1.b;printf(%dn,t);答案:6(5)#include#includestructstudentcharname9;charsex;floatscore2;structstudentf(structstudenta)structstudentb=Zhao,m,85.0,90.0;inti;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i2;i+)a.scorei=b.scorei;returna;voidmain()structstudentc=Qian,f,95.0,92.0,d;d=f(c);(1) printf(%s,%c,%2.0f,%2.0fn,d.name,d.sex,d.score0,d.score1);答案:Zhao,m,85,90三、改错题定义一个二维平面上的点结构体,从键盘输入一个点的坐标并输出到屏幕上。请找出以下程序的错误并修改。#includestructpoint声明点的结构体pointintx;/x坐标inty;/y坐标(1)voidmain()主函数structpointpt;定义结构体变量ptprintf(Pleaseinputthepoint:);scanf(%d%d,pt.x,pt.y);(2)printf(Thepointyouinputis:x=%d,y=%d,&pt.x,&pt.y);(3)答案:(1)最后加分号“;”。(2) 改为scanf(%d%d,&pt.x,&pt.y);(3) 改为printf(Thepointyouinputis:x=%d,y=%d,pt.x,pt.y);(2)定义一结构体People,包括姓名,性别,职位,年龄,要求从键盘输入3名人员的相应信息并显示,请找出下面程序的错误并修改。#includestructPeople/结构体Peoplecharname20;姓名charsex;/性别charposition20;职位intage;/年龄;voidmain()structPeoplepeo;/定/义结构体数组,此处请修改!(1)inti;for(i=0;i3;i+)/输入printf(Pleaseinputthe%dPeoplesnamen,i+1);scanf(%c,peoi.name);/输入姓名,此处请修改!(2)getchar();printf(Pleaseinputthepersonssexn);scanf(%c,peoi.sex);输入性别,此处请修改!(3)getchar();printf(PleaseinputthePeoplespositionn);/输入职位scanf(%s,peoi.position);(4)getchar();printf(Pleaseinputthepersonsagen);/输入年龄scanf(%d,&peoi.age);for(i=0;i3;i+)/输出printf(The%dPeoplesnameis:%s,sex:%c,position:%s,age:%dn,i+1,peoi.name,peoi.sex,peoi.position,&peoi.age);/此处请修改!(5)答案:(1)改为structPeoplepeo;(2)改为scanf(%c,&peoi.name);(3)改为scanf(%c&,peoi.sex);(4)改为scanf(%s,&peoi.position);(5)改为:printf(The%dPeoplesnameis:%s,sex:%c,position:%s,age:%dn,i+1,peoi.name,peoi.sex,peoi.position,peoi.age);四、编程题(1)设计一个通信录的结构体类型,并画出该结构体变量在内存的存储形式structphotonotecharname20;charnumber20;(2)用结构体变量表示矩形,编写矩形面积函数,矩形周长函数,输入矩形长宽函数,输出矩形长宽函数,输入矩形的长宽并进行面积和周长的计算。#includestructjuxingfloatchang;floatkuan;structjuxingshuru()structjuxingr;printf(shurujuxingchangkuan:n);scanf(%f%f,&r.chang,&r.kuan);returnr;voidshuchu(structjuxingr)printf(changshi:%fn,r.chang);printf(kuanshi:%fn,r.kuan);floatmianji(structjuxingr)returnr.chang*r.kuan;floatzhouchang(structjuxingr)return2*r.chang+2*r.kuan;voidmain()structjuxinga;a=shuru();shuchu(a);printf(mianjiwei:%fn,mianji(a);printf(zhouchangwei:%fn,zhouchang(a);学习-好资料(3)设有学生情况登记表如表9.3所示,用选择法对该表按成绩从小到大排序。表9.3学生情况登记表学号(num)姓名(name8)性别(sex)年龄(age)成绩(score)101ZhangM1998.3102WangF1887.2103LiM2073.6104ZhaoF2034.6105MiaoM1899.4106GuoM1768.4107WuF1956.9108XuF1845.0109LinM1976.5110MaF1985.3#includestructStudentintnum;charname8;charsex;intage;floatscore;voidmain()inti,j;intmin;structStudenttemp;structStudentstu10=101,zhang,M,19,98.3,102,wang,F,18,87.2,103,li,M,20,73.6,104,zhao,F,20,34.6,105,miao,M,18,99.4,106,guo,M,17,68.4,107,wu,F,19,56.9,108,xu,F,18,45.0,109,lin,M,19,76.5,110,ma,F,19,85.3;for(i=0;i9;i+)min=i;for(j=i;j9;j+)if(stui.scorestuj+1.score)min=j+1;temp=stumin;stumin=stui;stui=temp;for(i=0;i=9;i+)printf(num=%d,name=%s,sex=%c,age=%d,score=%fn,stui.num,stui.name,stui.sex,stui.age,stui.score);(4) getchar();某班有20名学生,每名学生的数据包括学号、姓名、3门课的成绩,从键盘输入20名学生的数据,要求打印出每门课的平均成绩,以及每名学生的平均成绩并输出最高分的学生的数据(学号、姓名、3门课、平均成绩)。#includestructstudentcharnum4;charname8;floatscore3;floatave;voidmain()structstudents120;inti,j;floatavg1=0,avg2=0,avg3=0,sum=0;for(i=0;i20;i+)scanf(%s%s%f%f%f,s1i.num,s1i.name,&s1i.score0,&s1i.score1,&s1i.score2);for(i=0;i20;i+)avg1+=s1i.score0;avg2+=s1i.score1;avg3+=s1i.score2;s1i.ave=(s1i.score0+s1i.score1+s1i.score2)/3;avg1/=20;avg2/=20;avg3/=20;printf(2menkedepingjunchengji:%f,%f,%fn,avg1,avg2,avg3);sum=s10.ave;j=0;for(i=1;i20;i+)if(s1j.aves1i.ave)j=i;for(i=0;i20;i+)printf(pingjunchengji:%fn,s1i.ave);printf(ZuiGaoFen-XueHao:%s,XingMing:%s,ChengJi:%f%f%f,PingJun:%fn,s1j.num,s1j.name,s1j.score0,s1j.score1,s1j.score2,s1j.ave);(5)统计候选人总得票数。假设有5名候选人,每次输入一个得票候选人的名字,要求最后按从大到小输出每个人的得票数排名。#include#includestructnotecharname20;intcount;voidmain()structnotenotes5=zhao,0,qian,0,li,0,sun,0,wang,0;chartou20;inti,j;for(i=0;i20;i+)scanf(%s,tou);for(j=0;j20;j+)if(!strcmp(tou,notesj.name)notesj.count+;for(i=0;i4;i+)for(j=i;j4;j+)if(notesi.countnotesj+1.count)structnotetemp=notesi;notesi=notesj+1;notesj+1=temp;for(i=0;i5;i+)printf(XingMing:%s,PiaoShu:%dn,notesi.name,notesi.count);(6)定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。#includestructdateintyear;intmonth;intday;voidmain()structdatedate1;inti,sum=0;scanf(%d,%d,%d,&date1.year,&date1.month,&date1.day);for(i=1;i2)sum-=3;if(date1.year%400=0)|(date1.year%4=0&date1.year%100!=0)sum+;sum+=date1.day;printf(shidi%dtiann,sum);1. 、单项选择设有定义doublea10,*s=a;,以下能代表数组元素a3的是(B)2. A)(*s)3B)*(s+3)C)*s3D)*s+3设有定义:intn仁0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1语句等价的是(A)。3. A)*p=*qB)p=qC)*p=&n1;D)p=*q若有定义:intx=0,*p=&x;,则语句printf(%dn,*p);的输出结果是(B)4. A)随机值B)0C)x的地址D)p的地址下述程序的输出结果是(B)。voidmain()inta10=1,2,3,4,5,6,7,8,9,10,*p=&a3,*q=p+2;printf(%dn,*p+*q);C)8D)6B)。C)随机值D)05. A)16B)10下面程序段的运行结果是(charstr=ABC,*p=str;printf(%dn,*(p+3);A)67B)0二、阅读程序写结果1.#includevoidmain()inta=2,4,6,8,10;inty=1,x,*p;p=&a1;for(x=0;x3;x+)y+=*(p+x);printf(%dn,y);答案:192.#includevoidmain()char*s=121;intk=0,a=0,b=0;dok+;if(k%2=0)a=a+sk-0;continue;b=b+sk-0;a=a+sk-0;while(sk+1);printf(k=%da=%db=%dn,k,a,b);答案:k=2a=4b=33#includeintb=2;intfunc(int*a)b+=*a;return(b);voidmain()inta=2,res=2;res+=func(&b);printf(%dn,res);答案:64#includeintsub(int*s);voidmain()inti,k;for(i=0;i4;i+)k=sub(&i);printf(%2d,k);printf(n);intsub(int*s)staticintt=0;t=*s+t;returnt;答案:0136三、程序填空1以下程序先输入数据给数组a赋值,然后按照从a0到a4的顺序输出各元素的值,最后再按照从a4到a0的顺序输出各元素的值。请填空。#includevoidmain()inta5;inti,*p;p=a;for(i=0;i5;i+)scanf(d,p+);学习-好资料(1kfor(i=0;i=0;i-,p-)printf(%d,*p);printf(n);答案:(1) p=a;p=a+4;或p-2以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制数366。请填空。#includestdio.hvoidmain()char*p,s6;intn;gets(p);n=*p-0;while(_(2)_!=0)n=n*8+*p-0;printf(%dn,n);答案:p=s;+p3以下程序调用findmax函数求数组中最大的元素在数组中的下标,请填空。#includevoidfindmax(int*s,intn,int*k)intp;for(p=0,*k=p;ps*k)(1);voidmain()inta10,i,k;for(i=0;i10;i+)scanf(%d,&ai);printf(%d,%dn,k,ak);答案:*k=p学习-好资料findmax(a,10,&k)4下面程序的功能是将字符串b复制到字符串a中,请填空。#includevoids(char*s,char*t)while(1)_J2)_;*s=0;voidmain()chara20,b10;scanf(%s,b);s();puts(a);答案:(1) *t!=0或*t(2) *(s+)=*(t+)或*s+=*t+a,b5下面程序是将p指向的常字符串中大写字母取出依次放到b数组中,小写字母取出依次放在a数组中。请填空。#includevoidmain()chara80,b80,*p=IYoOvUe;inti=0,j=0;while(1)if(*p=a&*p=z)(21;elsebj+=*p;p+;_;puts(a);puts(b);答案:(1) *p!=0或*p(2) ai+=*pai=0;bj=0或ai=bj=0四、程序问答1.#include#includevoidmain()charb18=abcdefg,b28,*pb=b1+3;while(-pb=b1)strcpy(b2,pb);printf(%dn,strlen(b2);问题1:该程序运行结果如何?问题2:当while循环结束时,pb指向了哪里?答案:(1) 7首地址2#includevoidswap(int*pt1,int*pt2)inttemp;temp=*pt1;*pt1=*pt2;*pt2=temp;voidexchange(int*q1,int*q2,int*q3)if(*q1*q2)swap(q1,q2);if(*q1*q3)swap(q1,q3);if(*q2*q3)swap(q2,q3);voidmain()inta,b,c;scanf(%d%d%d,&a,&b,&c);exchange(&a,&b,&c);printf(%d,%d,%dn,a,b,c);问题1:程序运行时若输入了1296,会输出什么结果?问题2:程序的功能是什么?问题3:若把swap函数体中的所有*pt1改为ptl,*pt2改为pt2,结果会如何?请分析原因。答案:(2) (1)12,9,6(2)从大到小排序(降序排列)结果仍是12,9,6,但此处输出结果不是排序后的结果,输出的是输入顺序的数字。3#includevoidfun1(char*s,char*c)char*p,*q;for(p=s;*p!=0;p+)if(*p=*c)for(q=p;*q!=0;q+)*q=*(q+1);p-;voidmain()charstr20=attactet,c1=t;fun1(str,&c1);puts(str);问题1:程序运行结果?问题2:函数fun1的功能是什么?问题3:如果将函数fun1中的语句p-;去掉,程序结果又怎样?分析该语句的作用答案:(1)aace(2)把字符数组中的t删除掉(3)atace五、程序改错1输入5个字符串,输出其中最大的字符串#includevoidmain()inti;charstr80,max80;*Fd人*scanf(%s,&str);*found*max=str;for(i=1;i5;i+)scanf(%s,str);*Fd人*if(maxstr)*found*max=str;printf(maxis%sn,max);答案:(1)scanf(%s,str);(2) strcpy(max,str);(3) strcmp(max,str);strcpy(max,str);2下面程序将给定字符串循环左移1位,首字符移动到字符串的末尾。如输入abcde,输出结果为bcdea。#includevoidmove1(char*s)char*p,t;p=s+1;*found*t=s;while(*p)*found*p=*(p-1);p+;*found*p=t;voidmain()char*p,str10=abcde;move1(str);printf(%sn,str);答案:(1)t=*s;(2)*(p-1)=*p;*(p-1)=t;3以下程序用来删除字符串s中所有空格字符,如输入thisisatest!,输出结果为:thisisatest!#includevoidmain()chars80,*p,*q;*found*scanf(%s,s);for(p=q=s;*p!=0;p+)if(*p!=)*found*q=p;q+;*found*(q-1)=0;puts(s);答案:(1)*p=*q;(2)*q=0;六、编程以下程序均要求使用指针来实现。1. 编程判断输入的一串字符是否为“回文”,是则输出Yes,否则输出No。所谓“回文”,是指正读和倒读都一样的字符串。如ratar就是回文。#include#includevoidmain()charstr100,*p,*q;intflag=1;scanf(%s,str);p=str;q=str+(strlen(str)-1);while(pq)if(*(p+)!=*(q-)flag=0;2. break;if(flag=1)printf(Yesn);elseprintf(Non);strcat函数用来连接两个字符串,如:chars120=holiday,s210=economy;则strcat(s1,s2);可以将s2中的字符串连接到si字符串的后面。此时si中的字符串变为holidayeconomy。请自行编写函数mystrcat,完成上述功能。#include#includevoidmystrcat(char*p,char*q)while(*p)p+;while(*q)*p+=*q+;*p=0;voidmain()chars120,s220;char*p=s1,*q=s2;gets(s1);gets(s2);mystrcat(p,q);printf(%sn,s1);2有5个候选人参与选举,共100张选票,每张选票上只能推选一个人。编程统计每个候选人的得票数,并输出结果。#include#includevoidmain()char*name5=zhang,wang,li,zhao,liu;charnote10;intj;intcount1=0,count2=0,count3=0,count4=0,count5=0;for(j=0;j10;j+)scanf(%s,note);if(!strcmp(name0,note)count1+;if(!strcmp(name1,note)count2+;if(!strcmp(name2,note)count3+;if(!strcmp(name3,note)count4+;if(!strcmp(name4,note)count5+;printf(WuGeRenDeDePiaoFenBieWei:n);printf(%d,%d,%d,%d,%d,count1,count2,count3,count4,count5);3统计一段英文短文中出现的单词的个数。单词间以空格分隔,可以有多个空格。#include#includevoidmain()chara39;char*p=a;intcount=0,flag=0;gets(a);if(*p=)flag=1;while(*p!=0)if(*p=&*(p+1)!=&*(p+1)!=0)count+;p+;if(flag=1)printf(thenumofwordsis:%dn,count);elseprintf(thenumofwordsis:%dn,count+1);4对一组整数降序排序。要求排序功能由调用函数实现。#includevoidmain()voidsort(inta,intn);inta10,i;int*p=a;for(i=0;i=9;i+)scanf(%d,&ai);sort(p,10);printf(paixuhoushunxushi:n);for(i=0;i10;i+)printf(%d,ai);printf(n);voidsort(inta,intn)inttemp,i,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj)temp=ai;ai=aj;aj=temp;一、单项选择题1下列关于C语言数据文件的叙述中正确的是(D)A) 文件由ASCII码字符序列组成,C语言只能读写文本文件B) 文件由二进制数据序列组成,C语言只能读写二进制文件C) 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D) 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件2以下叙述中不正确的
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!