C程序的设计复习题集(带答案)_第1页
C程序的设计复习题集(带答案)_第2页
C程序的设计复习题集(带答案)_第3页
C程序的设计复习题集(带答案)_第4页
C程序的设计复习题集(带答案)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

..选择题1.结构化程序设计的3种结构是<D>A顺序结构、选择结构、转移结构B分支结构、等价结构、循环结构C多分支结构、赋值结构、等价结构D顺序结构、选择结构、循环结构2.以下叙述中正确的是<C>AC语言比其他语言高级BC语言可以不用编译就能被计算机识别执行CC语言以接近英语国家的自然语言和数学语言作为语言的表达形式DC语言出现的最晚,具有其他语言的一切优点3.C语言中用于结构化程序设计的3种基本结构是<A>A顺序结构、选择结构、循环结构Bif,switch,breakCfor,while,do-whileDif,for,continue4.C语言中最简单的数据类型包括<B>A整型、实型、逻辑型B整型、实型、字符型C整型、字符型、逻辑型D字符型、实型、逻辑型5.若变量已正确定义并赋值,以下符合C语言语法的表达式是<B>Aa:=b+1Ba=b=c+2Cint18.5%3Da=a+7=c+b6.下列可用于C语言用户标识符的一组是<B>Avoid,define,WORDBa3_b3,_123,CarCFor,-abc,IFCaseD2a,DO,sizeof7.C语言中运算对象必须是整型的运算符是<A>A%=B/C=D<=8.若变量a,i已正确定义,且i已正确赋值,合法的语句是<B>Aa==1B++i;Ca=a++=5;Da=int〔i;9.已知intt=0;while〔t=1{...}则以下叙述正确的是<B>A循环控制表达式的值为0B循环控制表达式的值为1C循环控制表达式不合法D以上说法都不对10.若变量已正确说明为float型,要通过语句scanf<"%f%f%f",&a,&b,&c>;给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是<B>A10<回车>22<回车>33<回车>B10.0,22.0,33.0<回车>C10.0<回车>22.0<空格>33.0<回车>D10<<空格>>22<回车>33<回车>11.有如下程序:main〔{ intx=1,a=0,b=0; switch〔x { case0:b++; case1:a++; case2:a++;b++; } printf〔"a=%d,b=%d\n",a,b>;}该程序的输出结果是<A>Aa=2,b=1Ba=1,b=1Ca=1,b=0Da=2,b=212.有以下程序main<>{ inti=1,j=1,k=2; if<<j++||k++>&&i++> printf<"%d,%d,%d\n",i,j,k>;}执行后输出结果是<C>A1,1,2B2,2,1C2,2,2D2,2,313.有如下程序main<>{ floatx=2.0,y; if〔x<0.0y=0.0; elseif〔x<10.0y=1.0/x; elsey=1.0; printf〔"%f\n",y;}该程序的输出结果是<C>A0.000000B0.250000C0.500000D1.00000014.有如下程序:main<>{ intn=9; while<n>6> { n--; printf<"%d",n>; }}该程序的输出结果是<B>A987B876C8765D987615.在下列选项中,没有构成死循环的是<D>A> inti=100; while<1> { i=i0+1; if<i>100>break; }B> for<;;>;C> intk=10000; do{ k++; }while<k>10000>;D> ints=36; while<s>--s;16.设intx=1,y=1;表达式<!x||y-->的值是<B>A0B1C2D-117.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是<D>A函数调用可以作为独立的语句存在B函数调用可以作为一个函数的实参C函数调用可以出现在表达式中D函数调用可以作为一个函数的形参18.有以下程序floatfun<intx,inty>{return<x+y>;}main<>{inta=2,b=5,c=8;printf<"%3.0f\n",fun<<int>fun<a+c,b>,a-c>>;}程序运行后的输出结果是<B>A>编译出错B>9C>21D>9.019.若有以下调用语句,则不正确的fun函数的首部是<D>main<>{ inta[50],n;… fun<n,&a[9]>;…}A>voidfun<intm,intx[]>B>voidfun<ints,inth[41]>C>voidfun<intp,int*s>D>voidfun<intn,inta>20.fseek函数的正确调用形式是<B>A>fseek<文件指针,起始点,位移量>B>fseek<文件指针,位移量,起始点>C>fseek<位移量,起始点,文件指针>D>fseek<起始点,位移量,文件指针>21.若fp是指向某文件的指针,且已读到文件末尾,则函数feof<fp>的返回值是<C>A>EOFB>-1C>1D>NULL22.若有说明语句:charc='\72';则变量c<A>A包含1个字符B包含2个字符C包含3个字符D说明不合法,c的值不确定23.若有说明inta[3][4];则a数组元素的非法引用是<D>Aa[0][2*1]Ba[1][3]Ca[4-2][0]Da[0][4]24.设有以下说明语句structstu{ inta; floatb;}stutype;则下面的叙述不正确的是<C>Astruct是结构体类型的关键字Bstructstu是用户定义的结构体类型Cstutype是用户定义的结构体类型名Da和b都是结构体成员名25.在C语言中,引用数组元素时,其数组下标的数据类型允许是<C>A整型常量B整型表达式C整型常量或整型表达式D任何类型的表达式26.若运行时给变量x输入12,则以下程序的运行结果是<A>main<>{ intx,y; scanf<"%d",&x>; y=x>12?x+10:x-12; printf<"%d\n",y>;}A>0B>22C>12D>1027.以下说法正确的是<C>A>C语言程序总是从第一个的函数开始执行B>在C语言程序中,要调用函数必须在main<>函数中定义C>C语言程序总是从main<>函数开始执行D>C语言程序中的main<>函数必须放在程序的开始部分28.表达式0x13^0x17的值是<A>A0x04B0x13C0xE8D0x1729.有以下程序main<>{ inta=3,b=4; printf<"%d\n",<a++>*<b++>>;}程序运行后的输出结果是<A>A>12B>15C>16D>2030.下列程序执行后的输出结果是<A>voidfunc<int*a,intb[]>{ b[0]=*a+6;}main<>{ inta,b[5]; a=0;b[0]=3; func<&a,b>; printf<"%d\n",b[0]>;}A>6B>7C>8D>931.若有下面的程序段:chars[]="china";char*p;p=s;则下列叙述正确的是<D>As和p完全相同B数组s中的内容和指针变量p中的内容相等Cs数组长度和p所指向的字符串长度相等D*p与s[0]相等32.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序voidsort<inta[],intn>{inti,j,t;for<i=0;i<n-1;i++>for<j=i+1;j<n;j++>if<a[i]<a[j]>{t=a[i];a[i]=a[j];a[j]=t;}}main<>{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort<&aa[3],5>;for<i=0;i<10;i++>printf<"%d,",aa[i]>;printf<"\n">;}程序运行后的输出结果是<C>A>1,2,3,4,5,6,7,8,9,10,B>10,9,8,7,6,5,4,3,2,1,C>1,2,3,8,7,6,5,4,9,10,D>1,2,10,9,8,7,6,5,4,3,33.以下程序的运行结果是<A>structdate{intyear,month,day;}today;main<>{printf<"%d\n",sizeof<structdate>>;}A>6B>8C>10D>1234.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是<D>Aa,point,*&aB&*a,&a,*pointC*&point,*point,&aD&a,&*point,point35.在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是<B>A地址传递B单向值传递C由实参传形参,再由形参传实参D传递方式由用户指定36.fun<char*p2,char*p1>{ while<<*p2=*p1>!='\0'>{p1++;p2++;}}函数的功能是<A>A>将p1所指字符串复制到p2所指内存空间B>将p1所指字符串的地址赋给指针p2C>对p1和p2两个指针所指字符串进行比较D>检查p1和p2两个指针所指字符串中是否有'\0'37.若执行下述程序时,若从键盘输入6和8时,结果为<B>main<>{ inta,b,s; scanf<"%d%d",&a,&b>; s=a if<a<b> s=b; s*=s; printf<"%d",s>;}A>36B>64C>48D>以上都不对38.fscanf函数的正确调用形式是<D>A>fscanf<fp,格式字符串,输出表列>;B>fscanf<格式字符串,输出表列,fp>;C>fscanf<格式字符串,文件指针,输出表列>;D>fscanf<文件指针,格式字符串,输入表列>;39.下列关于C语言数据文件的叙述中正确的是<D>A文件由ASCII码字符序列组成,C语言只能读写文本文件B文件由二进制数据序列组成,C语言只能读写二进制文件C文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件40.有以下程序voidss<char*s,chart>{ while<*s> { if<*s==t> *s=t-'a'+'A'; s++; }}main<>{ charstr1[100]="abcddfefdbd",c='d'; ss<str1,c>;printf<"%s\n",str1>;}程序运行后的输出结果是<B>A>ABCDDEFEDBDB>abcDDfefDbDC>abcAAfefAbAD>Abcddfefdbd41.structlink{ intdata; structlink*next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是:<D>A>a.next=c;c.next=b;B>p.next=q;q.next=p.next;C>p->next=&c;q->next=p->next;D><*p>.next=q;<*q>.next=&b;42.在设计程序时,应采纳的原则之一是<D>A不限制goto语句的使用B减少或取消注解行C程序越短越好D程序结构应有助于读者理解43.程序设计语言的基本成分是数据成分、运算成分、控制成分和<D>A对象成分B变量成分C语句成分D传输成分44.下列不属于软件工程的3个要素的是<D>A工具B过程C方法D环境45.下列叙述中正确的是<D>AC语言编译时不检查语法BC语言的子程序有过程和函数两种CC语言的函数可以嵌套定义DC语言的函数可以嵌套调用46.在C语言中,退格符是<D>A\nB\tC\fD\b48.以下叙述中正确的是<A>A构成C程序的基本单位是函数B可以在一个函数中定义另一个函数Cmain〔函数必须放在其他函数之前D所有被调用的函数一定要在调用之前进行定义49.在C程序中,判逻辑值时,用"非0"表示逻辑值"真",又用"0"表示逻辑值"假"。在求逻辑值时,用〔A分别表示逻辑表达式值为"真"和"假"。A10B01C非0非0D1150.在C语言中,运算对象必须是整型数的运算符是<A>A%B\C%和\D**51.字符型数据在机器中是用ASCII码表示的,字符"5"和"7"在机器中表示为<C>A10100011和01110111B01000101和01100011C00110101和00110111D01100101和0110011152.若已定义:inta=25,b=14,c=19;以下三目运算符<?:>所构成语句的执行后a<=25&&b--<=2&&c?printf<"***a=%d,b=%d,c=%d\n",a,b,c>:printf<"###a=%d,b=%d,c=%d\n",a,b,c>;程序输出的结果是<C>A***a=25,b=13,c=19B***a=26,b=14,c=19C###a=25,b=13,c=19D###a=26,b=14,c=1953.若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*<int><x+y>%2/4的值是<A>A2.500000B2.750000C3.500000D0.00000054.下列程序段的输出结果是:<C>inta=1234;floatb=123.456;doublec=12345.54321;printf<"-,%2.1f,%2.1f",a,b,c>;A无输出B12,123.5,12345.5C1234,123.5,12345.5D1234,123.4,1234.555.若运行以下程序时,从键盘输入ADescriptor〔表示回车,则下面程序的运行结果是<D>#includemain〔{ charc; intv0=1,v1=0,v2=0; do{ switch〔c=getchar〔 { case'a': case'A': case'e': case'E': case'i': case'I': case'o': case'O': case'u': case'U':v1+=1; default:v0+=1;v2+=1; } }while〔c!='\n'; printf〔"v0=%d,v1=%d,v2=%d\n",v0,v1,v2;}Av0=7,v1=4,v2=7Bv0=8,v1=4,v2=8Cv0=11,v1=4,v2=11Dv0=13,v1=4,v2=1256.设有以下程序段intx=0,s=0;while〔!x!=0 s+=++x;printf〔"%d",s;则<B>A运行程序段后输出0B运行程序段后输出1C程序段中的控制表达式是非法的D程序段执行无限次57.执行下面的程序段后,变量k中的值为<A>intk=3,s[2];s[0]=k;k=s[1]*10;A不定值B33C30D1058.以下程序段的描述,正确的是<C>x=-1;do{x=x*x;}while〔!x;A是死循环B循环执行两次C循环执行一次D有语法错误59.以下有错误的是<D>Amain〔{ intx,y,z; x=0;y=x-1; z=x+y;}Bmain〔{ intx,y,z; x=0,y=x+1; z=x+y;}Cmain〔{ intx;int inty; x=0,y=x+1; z=x+y;}Dmain〔{ intx,y,z; x=0;y=x+1; z=x+y,}60.有如下程序段inta=14,b=15,x;charc='A';x=<a&&b>&&<c<'B'>;执行该程序段后,x的值为<D>AtureBfalseC0D161.下列程序执行后的输出结果是<C>voidfunc1<inti>;voidfunc2<inti>;charst[]="hello,friend!";main〔{ inti=0; func1<i>; printf<"\n">;}voidfunc1<inti>{ printf<"%c",st[i]>; if<i<3> { i+=2; func2<i>; }}voidfunc2<inti>{ printf<"%c",st[i]>; if<i<3>{ i+=2; func1<i>; }}AhelloBhelChloDhlm62.以下函数返回数组a中最大值所在的下标值fun<int*a,intn>{ inti,j=0,p; p=j; for〔i=j;i<n;i++ if〔a[i]>a[p]; return〔p;}在下划线处应填入的内容是<D>Ai=pBa[p]=a[i]Cp=jDp=i63.下面说明不正确的是<D>Achara[10]="china";Bchara[10],*p=a;p="china"Cchar*a;a="china";Dchara[10],*p;p=a="china"64.以下程序的输出结果是<B>#includevoidprt<int*x,int*y,int*z>{ printf<"%d,%d,%d\n",++*x,++*y,*<z++>>;}main<>{ inta=10,b=40,c=20; prt<&a,&b,&c>; prt<&a,&b,&c>;}A>11,42,3112,22,41B>11,41,2012,42,20C>11,21,4011,21,21D>11,41,2112,42,2265.若有函数内部说明:inta[3][4];则数组a中各元素<C>A可在程序的运行阶段得到初值0B可在程序的编译阶段得到初值0C不能得到确定的初值D可在程序的编译或运行阶段得到初值066.有如下程序main<>{chars[]="ABCD",*p;for<p=s+1;p<s+4;p++>printf<"%s\n",p>;}该程序的输出结果是<D>A ABCD BCD CD DB A B C DC B C DD BCD CD D67.下列程序执行后的输出结果是<B>main<>{ inta[3][3],*p,i; p=&a[0]]0]; for<i=1;i<9;i++>p[i]=i+1; printf<"%d\n",a[1][2]>;}A3B6C9D随机数68.定义如下变量和数组:intk;inta[3][3]={9,8,7,6,5,4,3,2,1};则下面语句的输出结果是<B>for〔k=0;k<3;k++printf〔"%d",a[k][k];A753B951C963D74169.下列程序执行后的输出结果是<A>main〔{ chararr[2][4]; strcpy〔arr,"you";strcpy〔arr[1],"me"; arr[0][3]=′&′; printf〔"%s\n",arr;}Ayou&meByouCmeDerr70.有以下函数charfun〔char*p{returnp;}该函数的返回值是<B>A无确切的值B形参p中存放的地址值C一个临时存储单元的地址D形参p自身的地址值71.以下正确的说法是<C>A定义函数时,形参的类型说明可以放在函数体内Breturn后边的值不能为表达式C如果函数值的类型与返回值类型不一致,以函数值类型为准D如果形参与实参类型不一致,以实参类型为准72.有以下程序intf〔intn{ if〔n==1return1; elsereturnf〔n-1+1;}main〔{ inti,j=0; for〔i=1;i<3;i++j+=f〔i; printf〔"%d\n",j;}程序运行后的输出结果是<B>A4B3C2D173.设有如下定义:structsk{ inta; floatb;}data;int*p;若要使P指向data中的a域,正确的赋值语句是<C>Ap=&a;Bp=data.a;Cp=&data.a;D*p=data.a;74.以下对结构体类型变量的定义中,不正确的是<C>Atypedefstructaa{ intn; floatm;}AA;AAtdl;B#defineAAstructaaAA{ intn; floatm;}tdl;Cstruct{ intn; floatm;}aa;structaatdl;Dstruct{ intn; floatm;}tdl;75.若说明int*p,n;则通过语句scanf能够正确读入数据的程序段是<D>Ap=&n;scanf〔"%d",&p;Bp=&n;scanf〔"%d",*p;Cscanf〔"%d",n;Dp=&n;scanf〔"%d",p;76.在下述程序中,判断i>j共执行的次数是<D>main〔{ inti=0,j=10,k=2,s=0; for〔;; { i+=k; if〔i>j { printf〔"%d",s; break; } s+=i; }}A4B7C5D677.以下4个选项中,不能看做一条语句的是<D>A;Ba=5,b=2.5,c=3.6;Cif〔a<5;Dif〔b!=5x=2;y=6;78.在C语言中,变量的隐含存储类别是<A>AautoBstaticCexternD无存储类别79.若有以下程序#includevoidf<intn>;main<>{ voidf<intn>; f<5>;}voidf<intn>{ printf<"%d\n",n>;}则以下叙述中不正确的是<C>A>若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB>若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数fC>对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D>函数f无返回值,所以可用void将其类型定义为无返回值型80.若有下面的说明和定义structtest{ intml; charm2; floatm3; unionuu { charul[5]; intu2[2]; }ua;}myaa;则TurboC中,sizeof〔structtest的值是<A>A12B16C14D981.以下程序的输出是<C>#include<stdio.h>structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};main<>{p=aa;printf<"%d\n",++<p->x>>;getch<>;}A10B11C51D6082.若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是<B>Asizeof,&=,<<,^Bsizeof,<<,^,&=C^,<<,sizeof,&=D<<,^,&=,sizeof83.函数fseek〔pf,OL,SEEK_END中的SEEK_END代表的起始点是<B>A文件开始B文件末尾C文件当前位置D以上都不对84.有以下程序#includemain〔{ FILE*fp;inti=20,j=30,k,n; fp=fopen〔"d1.dat","w"; fprintf〔fp,"%d\n",i; fprintf〔fp,"%d\n",j; fclose〔fp; fp=fopen〔"d1.dat","r"; fscanf〔fp,"%d%d",&k,&n; printf〔"%d%d\n",k,n; fclose〔fp;}程序运行后的输出结果是<A>A2030B2050C3050D302085.结构化程序所规定的三种最基本控制结构是<C>A输入、处理、输出B树形、网形、环形C顺序、选择、循环D主程序、子程序、函数86.一个C语言程序是由<B>A一个主程序和若干子程序组成B函数组成C若干过程组成D若干子程序组成87.请选出可用作C语言用户标识符的是<B>Avoid,define,WORDBa3_b3,_123,IFCFOR,--abc,CaseD2a,Do,Sizeof88.下列各数据类型不属于构造类型的是<A>A枚举型B共用型C结构型D数组型89.在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是<D>Aa=20000+20000;Ba=4000*10;Ca=30000+10000;Da=4000L*10L90.以下不正确的叙述是<D>A在C程序中,逗号运算符的优先级最低B在C程序中,APH和aph是两个不同的变量C若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值91.sizeof〔float是<B>A一个双精度型表达式B一个整型表达式C一种函数调用D一个不合法的表达式92.若x,i,j和k都是int型变量,则计算表达式x=〔i=4,j=16,k=32后,x的值为<C>A4B16C32D5293.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。#include<stdio.h>main〔{ inti=0,j,k; do { i++; k=316-13*i; }while〔B; j=k/11;printf〔"316=13*%d+11*%d",i,j;}Ak/11Bk%11Ck/11==0Dk%11==094.设有定义:intn=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是<D>Ap=1;B*q=2;Cq=p;D*p=5;95.下面程序的运行结果是<D>#include<stdio.h>main〔{ inty=10; do{ y--; }while〔--y; printf〔"%d\n",y--;}A-1B1C8D096.下面程序的输出结果是<A>main〔{ inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf〔"%d\n",*〔p+2;}A3B4C1D297.设有intx=11;则表达式〔x++*1/3的值是<A>A3B4C11D1298.请选出以下语句的输出结果<A>printf〔"%d\n",strlen〔"\t\"\065\xff\n";A5B14C8D输出项不合法,无正常输出99.下列程序的输出结果是<C>main〔{ doubled=3.2;intx,y; x=1.2;y=〔x+3.8/5.0; printf〔"%d\n",d*y;}A3B3.2C0D3.07100.下列程序的输出结果是<B>intb=2;intfunc〔int*a{ b+=*a; return〔b;}main〔{ inta=2,res=2; res+=func〔&a; printf〔"%d\n",res;}A4B6C8D10To3〔28填空题1.设y是int型,请写出y为奇数的关系表达式<y%2>==1或<y%2>!=0。2.设inta=5,b=6,表达式<++a==b-->?++a:--b的值是7。3.下列程序的输出结果是Hello。maim<>{ charb[]="Helloyou"; b[5]=0; printf<"%s\n",b>;}4.当调用函数时,实参是一个数组名,则向函数传递的是数组的首地址。5.用高级语言编写的程序称为源程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。6.以下程序的输出结果是16。main<>{ inta=0; a+=<a=8>; printf<"%d\n",a>;}7.该程序运行的结果是M=7。#include<stdio.h>#defineM100voidfun<intm,int*a,int*n>{inti,j=0;for<i=1;i<=m;i++>if<i%7==0||i==0>a[j++]=i;*n=j;}main<>{intaa[M],n,k;fun<10,aa,&n>;for<k=0;k<n;k++>if<<k+1>==0>printf<"\n">;elseprintf<"M=%d",aa[k]>;printf<"\n">;}8.下列函数的功能是:求出字符串ss中包含字符c的个数,并返回此值。请填入合适的表达式,使函数能正常运行intfun<char*ss,charc>{inti=0;for<;*ss!='\0';ss++>if<*ss==c>i++;returni;}9.设有如下宏定义#defineMYSWAP<z,x,y>{z=x;x=y;y=z;}以下程序段通过宏调用实现变量a,b内容交换,请填空。floata=5,b=16,c;MYSWAP<c,a,b>;10.以下程序的运行结果是9。#defineMAX〔a,b〔a>b?a:b+1main〔{ inti=6,j=8,k; printf〔"%d\n",MAX〔i,j;}11.以下程序的功能是从健盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。请填空。main〔{ floatx,amax,amin; scanf〔"%f",&x; amax=x; amin=x; while〔x>0 { if〔x>amax amax=x; elseif〔x<amin amin=x; elsescanf〔"%f",&x; } printf〔"\namax=%f\namin=%f\n",amax,amin;}12.在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是rewind<>或fseek<>。13.在计算机中,字符的比较是对它们的ASCII码进行比较。14.在内存中,存储字符'x′要占用1个字节,存储字符串"X"要占用2个字节。15.下列程序的输出结果是16.00,请填空。main〔{ inta=9,b=2; floatx=6.6,y=1.1,z; z=a/2+b*x/y+1/2; printf〔"%5.2f\n",z;}16.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部voidfun<doubleb[][22]>。要求形参名为b。main〔{ doubles[10][22]; intn;┆ fun〔s;┆}17.下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。main〔{ inti,x,y=1; scanf〔"%d",&x; for〔i=2;i<=x/2;i++ if<x%i==0> { y=0;break; } printf〔"%d\n",y;}18.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。#includemain〔{ inti,j,k; charstr[]={"1234567"}; for〔i=0,j=strlen〔str-1;i<j;i++,j-- { k=str[i]; str[i]=str[j]; str[j]=k; } printf〔"%s\n",str;}19.以下程序可把输入的十进制数以十六进制数的形式输出,请填空。main<>{charb[17]={"0123456789ABCDEF"};intc[64],d,i=0,base=16;longn;printf<"Enteranumber:\n">;scanf<"%ld",&n>;do{c[i]=n%base;i++;n=n/base;}while<n!=0>;printf<"Transmitenewbase:\n">;for<--i;i>=0;--i>{d=c[i];printf<"%c",b[d]>;}printf<"\n">;}20.若给fun函数的形参s传送字符串:"6354abcc",则函数的返回值是6354。#includelongfun<chars[]>{ longn;intsign; for<;isspace<*s>;s++>; sign=<*s=='-'>?-1:1; if<*s=='+'||*s=='-'> s++; for<n=0;isdigit<*s>;s++> n=10*n+<*s-'0'>; returnsign*n;}21.设有定义"struct{inta;floatb;charc;}abc,*p_abc=&abc;",则对结构体成员a的引用方法可以是abc.a和p_abc->a。22.下面程序是指从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。#include<stdio.h>main〔{ inti;chars[21],*p; for〔i=0;i<20;i++ s[i]=getchar〔; s[i]='\0'; p=s while〔*p putchar〔*p++;}23.以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。#include<stdio.h>main〔{ FILE*fp; chara[4]="1234",b[6]="abcedf"; if〔〔fp=fopen〔"lett.dat","wb"==NULL exit〔0; fwrite〔a,sizeof〔char,4,fp; fwrite〔b,6*sizeof<char>,1,fp; fclose〔fp;}24.在C语言中,一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为8。25.以下程序输出的结果是0。main〔{ inta=5,b=4,c=3,d; d=〔a>b>c; printf〔"%d\n",d;}26.以下函数的功能是求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,然后返回这些除数的个数。例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。请按题意,完成填空。试题程序:intfun〔intx,intpp[]{ inti,j=0;for<i=1;i<x;i+=2>if〔x%i==0pp[j++]=i; returnj;}27.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。intmystrlen〔char*str{ inti; for〔i=0;*<str+i>或str[i]!=′\0′;i++; return〔i;}28.以下程序的输出结果为9。#defineJFT<x> x*xmain<>{ inta,k=3; a=++JFT<k+1>; printf<"%d",a>;}29.以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。structnode{ intinfo; structnode*link;};30.设有以下结构体类型:structst{ charname[8]; intnum; floats[4];}student[50];并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整:fwrite〔student,sizeof<structst>*50,1,fp;31.以下程序段的输出结果是28。main<>{ inta=2,b=3,c=4; a*=16+〔b++-〔++c; printf〔"%d",a;}32.若变量n中的值为24,则print<>函数共输出5行,最后一行有3个数。voidprint<intn,intaa[]>{ inti; for<i=1;i<n;i++> { printf<"%6d",aa[i]>; if<!<i%5>>printf<"\n">; } printf<"\n">;}33.调用C语标准库函数时要求用#include命令。34.stract函数的作用是连接两个字符数组中的字符。35.C语言程序的注释可以出现在程序中的任何地方,一个注释以/*作为开始和*/结束。36.设二进制数A是00101101,若想通过异或运算A^B使A的高4位取反,低4位不变,则二进制数B应是11110000。37.若已知a=10,b=20,则表达式!a<b的值为1。38.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为10。for〔i=0,j=10;i<=j;i++,j--k=i+j;39.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。#include<stdlib.h>#include<stdio.h>voidfun<inta[],intn,int*max,int*d>{ inti; *max=a[0]; *d=0; for<i=0;i<n;i++> if<*max<a[i]> { *max=a[i]; *d=i; }}main<>{ inti,x[20],max,index,n=10; randomize<>; for<i=0;i<n;i++> { x[i]=rand<>%50; printf<"%4d",x[i]>; } printf<"\n">; fun<x,n,&max,&index>; printf<"Max=%5d,Index=%4d\n",max,index>;}40.以下程序的输出结果是246。voidfun〔{ staticinta=0; a+=2; printf〔"%d",a;}main〔{ intcc; for〔cc=1;cc<4;cc++fun〔; printf〔"\n";}42.以下程序的输出结果是7。#defineMAX<x,y><x>><y>?<x>:<y>main<>{ inta=5,b=2,c=3,d=3,t; t=MAX<a+b,c+d>*10; p

温馨提示

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

评论

0/150

提交评论