C语言习题集(含答案)[1]

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

C语言习题集(含答案)[1]

一、单选题:(1)在C语言提供的合法的关键字是()【单词拼写】A)swicthB)cherC)CaseD)default(2)在C语言中,合法的字符常量是()A)'84'【不能有八】B)'x43'C)'ab'D)""(3)若有定义和语句:chars[10]:s="abcd";printf("%sn",s);则结果是(以下u代表空格)()A)输出abcdB)输出aC)输出abcduuuuuD)编译不通过(4)若有定义和语句:int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d,%dn",*p,**pp);则输出结果是:()A)10,20B)10,10C)20,10D)20,20(5)若有以下定义和语句:intu=010,v=0x10,w=10;【这样确实可以,‘10’效果一样】printf("%d,%d,%dn",u,v,w);则输出结果是()A)8,16,10B)10,10,10C)8,8,10D)8,10,10(6)若有以下定义和语句charc1='b',c2='e';printf("%d,%cn",c2-c1,c2-'a'+"A");则输出结果是()A)2,MB)3,EC)2,E?D)输出项与对应的格式控制不一致,输出结果不确定36n(7)若有以下定义:chars[20]="programming",*ps=s;则不能代表字符o的表达式是()【Ps是一维地址】A)ps+2B)s[2]C)ps[2]D)ps+=2,*ps(8)若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是()for(i=5;i;i--)for(j=0;j<4;j++){...}A)20B)25C)24D)30(9)若有以下定义和语句:char*s1="12345",*s2="1234";printf("%dn",strlen(strcpy(s1,s2)));则输出结果是()A)4B)5C)9D)10(10)若有以下定义和语句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是()A)*pB)a[10]C)*aD)a[p-a](11)下面程序的输出是()main(){char*s="121";intk=0,a=0,b=0;do{k++;if(k%2==0){a=a+s[k]-'0';continue;}b=b+s[k]-'0';a=a+s[k]-'0';}while(s[k+1]);printf("k=%da=%db=%dn",k,a,b);A)k=3a=2b=3B)k=3a=3b=236nC)k=2a=3b=2D)k=2a=2b=3(12)下面程序的输出是()main(){unsigneda=32768;printf("a=%dn",a);}运行结果:-32768A)a=-32768B)a=32767C)a=-32767D)a=-1(13)若有以下定义:floatx;inta,b;则正确的switch语句是()A)switch(x)B)switch(x){case1.0:printf("*n");{case1,2:printf("*n");case2.0:printf("**n");case3:printf("**n");}}C)switch(a+b)D)switch(a+b);{case1:printf("n");{case1:printf("*n");case1+2:printf("**n");case2:printf("**n");}}(14)以下程序输出的结果是()main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%sn",&w[k][k]);}A)ABCDB)ABCDFGHEFGKLIJMC)EFGD)FGHJKKL36nO(15)若数组名作实参而指针变量作形参,函数调用实参传给形参的是()A.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址(16)若变量已正确定义并赋值,下面符合C语言语法的表达式是()A)a:=b+1B)a=b=c+2C)int18.5%3D)a=a+7=c+b(17)C语言中运算对象必须是整型的运算符是()A)%=B)/C)=D)〈=(18)若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()A)1B)2C)2.0D)2.5(19)若变量a、i已正确定义,且i已正确赋值,合法的语句是()A)a==1B)++i;C)a=a++=5;D)a=int(i);(20)若有以下程序段,intc1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是()A)0B)0.5C)1D)2(21)有如下程序main(){inty=3,x=3,z=1;printf(“%d%dn”,(++x,y++),z+2);}运行该程序的输出结果是()A)34B)42C)43D)33(22)能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是()A)a>=10ora<=0B)a>=0|a<=1036nC)a>=10&&a<=0D)a>=10||a<=0(23)有如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf(“a=%d,b=%dn”,a,b);}该程序的输出结果是()A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2(24)有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf(“%fn”,y);}该程序的输出结果是()A)0.000000B)0.250000C)0.500000D)1.000000(26)有如下程序main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%dn”,sum);}36n该程序的执行结果是()A)6B)3C)死循环D)0(27)有如下程序main(){intx=23;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是()A)321B)23C)不输出任何内容D)陷入死循环(28)有如下程序main(){intn=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是()A)987B)876C)8765D)9876(29)设有说明语句:chara=’72’;则变量a()A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法(30)有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是()A)3B)4C)5D)有语法错(31)有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);36nprintf(“%dn”,r);}该程序的输出的结果是()A)12B)13C)14D)15(32)有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为()A)12B)11C)10D)编译出错(33)对于基类型相同的两个指针变量之间,不能进行的运算是()A)2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf(“%dn”,fib(3));}该程序的输出结果是()A)2B)4C)6D)8(35)在C语言中,函数的隐含存储类别是()A)autoB)staticC)externD)无存储类别(36)有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf(“%dn”,i);}36n该程序中的for循环执行的次数是()A)5B)6C)7D)8(37)有以下函数charfun(char*p){returnp;}该函数的返回值是()A)无确切的值B)形参p中存放的地址值B)一个临时存储单元的地址D)形参p自身的地址值(38)有如下程序段inta=14,b=15,x;charc=’A’;x=(a&&b)&&(c<’B’);执行该程序段后,x的值为()A)trueB)falseC)0D)1(39)有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()A)*p+9B)*(p+8)C)*p+=9D)p+8(40)若有以下的定义:intt[3][2];能正确表示t数组元素地址的表达式是()A)&t[3][2]B)t[3]C)t[1]D)t[2](41)有如下程序main(){charch[2][5]={“6937”,”8254”},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>’’;j+=2)s=10*s+p[i][j]-‘0’;printf(“%dn”,s);}36n该程序的输出结果是()A)69825B)63825C)6385D)693825(42)若有以下的定义:inta[]={1,2,3,4,5,6,7,88,9,10},*p=a;则值为3的表式是()A)p+=2,*(p++)B)p+=2,*++pC)p+=3,*p++D)p+=2,++*p(43)假定所有变量均已正确说明,下列程序段运行后x的值是()a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;A)34B)4C)35D)3(44)在以下一组运算符中,优先级最高的运算符是()A)<=B)=C)%D)&&(45)若有以下定义和语句:intw[2][3],(*pw)[3];pw=w;则对w数组元素非法引用是()A)*(w[0]+2)=*w[0][2]B)*(pw+1)[2]C)pw[0][0]=*w[0][0]D)*(pw[1]+2)=*w[1][2](46)若有以下程序片段:charstr[]="abn12\"";printf("%dn",strlen(str));上面程序片段的输出结果是()A)3B)4C)6D)12(47)函数调用strcat(strcpy(str1,str2),str3)的功能是()A)将串str1复制到串str2中后再连接到串str3之后B)将串str1连接到串str2之后再复制到串str3之后36nC)将串str2复制到串str1中后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1复制到串str3中(48)以下对C语言函数的有关描述中,正确的是()A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B)C函数既可以嵌套定义又可以递归调用解释:C函数可以递归调用,但不允许嵌套定义C)函数必须有返回值,否则不能使用函数D)C程序中有调用关系的所有函数必须放在同一个源程序文件中(49)以下叙述中不正确的是()A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值.B)在C中,调用函数时,实在参数和对应形参在类型上只需赋值兼容.C)在C中,外部变量的隐含类别是自动存储类别.D)在C中,函数形参可以说明为register变量.(50)以下程序的输出结果是()#definesub1(chara,charb){charc;c=a;a=b;b=c;}#definesub2(char*a,charb){charc;c=*a;*a=b;b=c;}#definesub3(char*a,char*b){charc;c=*a;*a=*b;*b=c;}main(){chara,b;a='A';b='B';sub3(&a,&b);putchar(a);putchar(b);a='A';b='B';sub2(&a,b);putchar(a);putchar(b);a='A';b='B';sub1(a,b);putchar(a);putchar(b);}A)BABBABB)ABBBBAC)BABABAD)BAABBA(51)错误的转义字符是()A)'91'B)'\'C)''D)'''36n(52)设inta,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是()A)2,1,2B)2,0,3C)2,2,3D)2,1,3(53)在C语言中,错误的常数是()A)1E+0.0B)5C)0xafD)0L(54)设intk;则语句for(k=0;k=1;k++);和语句for(k=0;k==1;k++);执行的次数分别是()A)无限和0B)0和无限C)都是无限D)都是0(55)某文件中定义的静态全局变量(或称静态外部变量)其作用域是()A)只限某个函数B)本文件C)跨文件D)不限制作用域二、程序填空题:(10)函数pi的功能是根据以下近似公式求π值:(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)现在请你在下面的函数中填空,完成求π的功能。#include“math.h”doublepi(longn){doubles=0.0;longi;for(i=1;i<=n;i++)s=s+1.0/(i*i);return(sqrt(6*s));}(14)以下函数用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n所指存储单元中存放数组中数据的个数.插入后数组中的数仍有序.请填空.voidfun(int*w,intx,int*n){inti,p;p=0;w[*n]=x;while(x>w[p])p++;36nfor(i=*n;i>p;i--)w[i]=w[i-1];w[p]=x;++*n;}(15)fun1函数的调用语句为:fun1(&a,&b,&c);它将三个整数按由大到小的顺序调整后依次放入a,b,c三个变量中,a中放最大数。请填空.voidfun2(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidfun1(int*pa,int*pb,int*pc){if(*pc>*pb)fun2(pc,pb);if(*pa<*pc)fun2(pa,pc);if(*pa<*pb)fun2(pa,pb);}16.任意输入三条边(a,b,c)后,若能构成三角形且为等腰、等边和直角,则分别输出DY、DB和ZJ,若不能构成三角形则输出NO。main(){floata,b,c,a2,b2,c2;scanf("%f%f%f",&a,&b,&c);printf("%5.1f,%5.1f,%5.1f",a,b,c);if(a+b>c&&b+c>a&&a+c>b){if(a==b||a==c||b==c)printf("DY");if(a==b&&b==c)printf("DB");a2=a*a;b2=b*b;c2=c*c;36nif(a2+b2==c2||a2+c2==b2||b2+c2==a2)printf("ZJ");printf("n");}elseprintf("NOn");}17.输出下列图形。123456789234567893456789456789567896789789899main(){inti,j;for(i=1;i<=9;i++){for(j=i;j<=9;j++)printf("%2d",j);printf("n");}}三、程序分析题阅读下列程序,将输出结果分别写到各题右侧的空白处。16.main(){inta=3,b=9,c=2;if(a)if(b)printf("%5d%5d%5dn",a,b,c);}程序运行结果:ﺏﺏﺏﺏ3ﺏﺏﺏﺏ9ﺏﺏﺏﺏ217.voidchange(int*x,inty){intt;t=*x;*x=y;y=t;}main()36n{inta=3,b=5;change(&a,b);printf("a=%d,b=%dn",a,b);}程序运行结果:a=5,b=518.main(){intj;for(j=4;j>=2;j--)switch(j){case0:printf("%4s","ABC");case1:printf("%4s","DEF");case2:printf("%4s","GHI");break;case3:printf("%4s","JKL");default:printf("%4s","MNO");}printf("n");}程序运行结果:ﺏMNOﺏJKLﺏMNOﺏGHI19.main(){staticintj,a[6]={1,2};for(j=3;j<6;j++)a[j]=a[j/2]+a[j%3]-a[j-2];for(j=0;j<6;j++)printf("%5d",a[j]);printf("n");}程序运行结果:ﺏﺏﺏﺏ1ﺏﺏﺏﺏ2ﺏﺏﺏﺏ0ﺏﺏﺏﺏ1ﺏﺏﺏﺏ2ﺏﺏﺏﺏ-120.inta=10;intf(inta){intb=0;staticintc=3;a++;++c;++b;returna+b+c;}main(){inti;36nfor(i=0;i<2;i++)print("%5d",f(a));printf("n");}程序运行结果:ﺏﺏﺏ16ﺏﺏﺏ1721.#defineN2#defineMN+1#defineNUM2*M+1intfib(intn){returnn<3?2:fib(n-1)+fib(n-2);}main(){printf("%5d%5dn",NUM,fib(5));}程序运行结果:ﺏﺏﺏﺏ6ﺏﺏﺏ1022.假设在DOS提示符下显示源程序如下(PROG.exe程序也在C盘中):C:>typePROC.cmain(intargc,char*argv[]){while(--argc>0)printf("%s",argv[argc]);printf("n");}36n写出执行下列命令后的输出结果C:>PROG2008OLYMPICBEIJING<回车>程序运行结果:BEIJINGOLYMPIC20082004年4月二级C语言笔试试题及参考解答一、选择题:1、1MB等于()A)1000字节B)1024字节C)1000*1000字节D)1024*1024字节2、与十六进制数200等值的十进制数为()A)256B)512C)1024D)20483、所谓"裸机"是指()A)单片机B)单板机C)不装备任何软件的计算机D)只装备操作系统的计算机4、能将高级语言编写的源程序转换为目标程序的是()A)链接程序B)解释程序C)编译程序D)编辑程序5、在64位计算机中,一个字长所占字节数为()A)64B)8C)4D)16、在Windows环境下,当一个应用程序窗口被最小化后,该应用程序()A)继续在后台运行B)继续在前台运行C)终止运行D)暂停运行7、在Windows环境下,能实现窗口移动的操作是()A)用鼠标拖动窗口中的任何部位B)用鼠标拖动窗口的边框C)用鼠标拖动窗口的控制按钮D)用鼠标拖动窗口的标题栏8、在Windows环境下,PrintScreen键的作用是()A)打印当前窗口的内容B)打印屏幕内容C)复制屏幕到剪贴板D)复制当前窗口到剪贴板9、Internet的通信协议是()A)TCP/IPB)BBSC)WWWD)FTP10、下列叙述中正确的是()A)计算机病毒只感染可执行文件B)计算机病毒只感染文本文件C)计算机病毒只能通过软件复制的方式进行传播D)计算机病毒可以通过网络或读写磁盘方式进行传播36n11、一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是()A)有零个或多个输入B)有零个或多个输出C)有穷性D)可行性12、以下叙述中正确的是()A)C语言的源程序不必通过编译就可以直接运行B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令C)C源程序经编译形成的二进制代码可以直接运行D)C语言中的函数不可以单独进行编译13、以下符合C语言语法的实型常量是()A)1.2E0.5B)3.14.159EC).5E-3D)E1514、以下4组用户定义标识符中,全部合法的一组是()A)_mainB)IfC)txtD)intenclude-maxREALk_2sinturbo3COM_00115、若以下选项中的变量已正确定义,则正确的赋值语句是()A)x1=26.8%3B)1+2=x2C)x3=0x12D)x4=1+2=3;16、设有以下定义inta=0;doubleb=1.25;charc=’A’;#defined2则下面语句中错误的是()A)a++;B)b++C)c++;D)d++;17、设有定义:floata=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是()A)(a+b)*h/2B)(1/2)*(a+b)*hC)(a+b)*h*1/2D)h/2*(a+b)18、有以下程序main(){intx=102,y=012;printf("%2d,%2dn",x,y);}执行后输出结果是()A)10,01B)002,12C)102,10D)02,1019、以下4个选项中,不能看作一条语句的是()A){;}B)a=0,b=0,c=0;C)if(a>0);D)if(b==0) m=1;n=2;36n20、设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()A)scanf("%d",pa);B)scanf("%d",a);C)scanf("%d",&pa);D)scanf("%d",*pa);21、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是()A)if((a>b)&&(b>c))k=1;elsek=0;B)if((a>b)||(b>c))k=1;elsek=0;C)if(a<=b)k=0;D)if(a>b)k=1;elseif(b<=c)k=1;elseif(b>c)k=1;elsek=0;22、有以下程序main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case’0’:printf("anothern");case’1’:printf("numbern");}}}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是()A)anotherB)anotherC)anotherD)numbernumbernumbernumbernumberanothernumber23、有以下程序main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%dn",x,y,z);36n}程序执行后的输出结果是()A)3,2,0B)3,2,-1C)4,3,-1D)5,-2,-524、有以下程序main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%dn",s);}程序执行后的输出结果是()A)自然数1~9的累加和B)自然数1~10的累加和C)自然数1~9中的奇数之和D)自然数1~10中的偶数之25、有以下程序main(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf("n=%dn",n);}程序执行后的输出结果是()A)n=5B)n=2C)n=3D)n=426、若程序中定义了以下函数36ndoublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A)doublemyadd(doublea,b);B)doublemyadd(double,double);C)doublemyadd(doubleb,doublea);D)doublemyadd(doublex,double y);27、有以下程序charfun(charx,chary){if(xy)f(x,y);elseif(y>z)f(y,z);elsef(x,z);printf("%d,%d,%dn",x,y,z);}执行后输出结果是()A)1,2,3B)3,1,2C)1,3,2D)2,3,130、有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是()A)5B)6C)8D)931、有以下程序main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%dn",sizeof(a),sizeof(b));}执行后输出结果是()A)77B)88C)810D)101032、有以下程序voidswap1(intc[]){intt;t=c[0];c[0]=c[1];c[1]=t;}voidswap2(intc0,intc1){intt;36nt=c0;c0=c1;c1=t;}main(){ int a[2]={3,5},b[2]={3,5};   swap1(a);  swap2(b[0],b[1]);   printf("%d  %d  %d  %dn",a[0],a[1],b[0],b[1]); }    其输出结果是() A)5 3 5 3      B) 5 3 3 5     C)3 5 3 5      D)3 5 5 3 33、有以下程序 void sum(int *a) { a[0]=a[1];} main( ) {  int aa[10]={1,2,3,4,5,6,7,8,9,10},i;    for(i=2;i>=0;i--)   sum(&aa[i]);    printf("%dn",aa[0]); }     执行后的输出结果是() A)4   B)3      C)2      D)1 34、有以下程序 int f(int b[][4]) { int i,j,s=0;  for(j=0;j<4;j++)   {  i=j;      if(i>2)  i=3-j;      s+=b[i][j];  }  return s; } main( ) 36n{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};  printf("%dn",f(a));}    执行后的输出结果是() A)12     B)11     C)18     D)16 35、有以下定义 #include  char a[10],*b=a; 不能给数组a输入字符串的语句是() A)gets(a)    B)gets(a[0])    C)gets(&a[0]);    D)gets(b); 36、有以下程序 main( ) { char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"};   printf("%dn",strlen(p[4])); }   执行后输出结果是() A)2     B)3     C)4     D)5 37、有以下程序 int a=2; int f(int *a) {return (*a)++;} main( ) {  int s=0;    { int a=5;        s+=f(&a); }       s+=f(&a);     printf("%dn",s); }   执行后输出结果是() 36nA)10   B)9    C)7    D)8 38、有以下程序 #define  f(x)    x*x main( )  {  int i;     i=f(4+4)/f(2+2);     printf("%dn",i);  }   执行后输出结果是() A)28    B)22    C)16    D)4 39、设有以下语句 typedef struct  S {  int g;  char  h;}   T; 则下面叙述中正确的是() A)可用S定义结构体变量          B)可以用T定义结构体变量 C)S是struct类型的变量         D)T是struct  S类型的变量 40、有以下程序 struc STU{           char name[10];           int num;         }; void f1(struct STU c) {  struct STU  b={"LiSiGuo",2042};    c=b; } void f2(struct STU *c) {  struct STU  b={"SunDan",2044};    *c=b; } 36nmain( ) {  struct  STU   a={"YangSan",2041},b={"WangYin",2043};    f1(a);f2(&b);    printf("%d %dn",a.num,b.num); }   执行后的输出结果是() A)2041 2044 B)2041 2043 C)2042  2044  D)2042  2043 41、有以下程序 main( ){  unsigned char a,b;    a=4|3;    b=4&3;    printf("%d %dn",a,b); }   执行后输出结果是() A) 7  0      B)0  7      C)1  1      D)43 0 42、下面程序的功能是输出以下形式的金字塔图案是:                         *                        ***                       *****                      ******* main( ) {  int  i,j;    for(i=1;i<=4;i++)     { for(j=1;j<=4-i;j++)          printf(" ");      for(j=1;j<=_______;j++)       printf("*");      printf("n"); 36n} }   在下划线处应填入的是() A)i     B)2*i-1     C)2*i+1      D)i+2 43、有以下程序 void sort(int a[],int n) {  int i,j,t;    for(i=0;i main(int argc ,char *argv[ ]) {  int i,len=0; 36n   for(i=1;iScore>p[j]->Score)           { t=p[i];p[i]=p[j];p[j]=t;}    printf("5d  %dn",s[1].Score,p[1]->Score); }    执行后输出结果是() A)550  550     B)680  680     C)580  550      D)580  680 48、有以下程序 #include  struct NODE{             int num;  struct NODE *next;            }; main( ) {   struct NODE *p,*q,*r;     int sum=0;     p=(struct NODE *)malloc(sizeof(struct NODE));     q=(struct NODE *)malloc(sizeof(struct NODE));     r=(struct NODE *)malloc(sizeof(struct NODE)); 36np->num=1;q->num=2;r->num=3; p->next=q;q->next=r;r->next=NULL; sum+=q->next->num;sum+=p->num; printf("%dn",sum); }   执行后的输出结果是 ()A)3     B)4     C)5     D)6 49、有以下程序 #include  main( ) {  FILE *fp;  int i,k=0,n=0;    fp=fopen("d1.dat","w");    for(i=1;i<4;i++)   fprintf(fp,"%d",i);    fclose(fp);    fp=fopen("d1.dat","r");    fscanf(fp,"%d%d",&k,&n);   printf("%d %dn",k,n);    fclose(fp); }   执行后输出结果是() A)1  2      B)123  0      C)1  23      D) 0   0 50、有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节) #include  main( ) {FILE *fp;  int i,a[4]={1,2,3,4},b;   fp=fopen("data.dat","wb");   for(i=0;i<4;i++)  fwrite(&a[i],sizeof(int),1,fp);   fclose(fp); 36n  fp=fopen("data.dat","rb");   fseek(fp,-2L*sizeof(int).SEEK_END);   fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/   fclose(fp);   printf("%dn",b); }    执行后输出结果是() A)2     B)1     C) 4     D)3 二、填空题(每空2分,共40分) 1、E-mail地址由用户名和域名两部分组成,这两部分的分隔符为 2、计算机网络分为广域网和局域网,因特网属于。 3、从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为。 4、在Windows环境下,只要在"开始"菜单中单击选项,就可以查阅最近打开过的文档清单。5、计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行。条指令。6、已知字符A的ACSII码值为65,以下语句的输出结果是【6】   char ch=’B’;   printf("%c %dn",ch,ch);7、有以下语句段      int  n1=10,n2=20;   printf("36n",n1.n2);要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。n1=10n2=208、有以下程序main( ){ int t=1,i=5; for(;i>=0;i--)  t*=i; printf("%dn",t);}   执行后输出结果是。9、有以下程序main( ){  int n=0,m=1,x=2;   if(!n)   x-=1;   if(m)   x-=2;   if(x)   x-=3;    printf("%dn",x);}    执行后输出结果是。10、有以下程序#include main( ){  char ch1,ch2;  int n1,n2;   ch1=getchar();  ch2=getchar();   n1=ch1-‘0’;  n2=n1*10+(ch2-‘0’);   printf("%dn",n2);}   程序运行时输入:12<回车>,执行后输出结果是。11、有以下程序void f( int y,int *x){y=y+*x;  36n*x=*x+y;}main( ){  int x=2,y=4;   f(y,&x);   printf("%d   %dn",x,y);}         执行后输出的结果是。12、函数fun的功能是计算xndouble fun(double x,int n){  int i; double y=1;   for(i=1;i<=n;i++)  y=y*x;   return y;}   主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:m=a4+b4-(a+b)3。实现这一计算的函数调用语句为。13、下面rotate函数的功能是:将n行n列的矩阵A转置为A’,例如:           1    2    3    4                       1    5    9     13           5    6    7    8                       2    6    10    14  当  A=9      10     11     12              则  A’=  3      7      11     15       13     14    15     16                        4      8      12     16请填空#define   N    4void  rotate(int a[][N]){  int i,j,t;   for(i=0;ichar *ss(char *s){ return s+strlen(s)/2;}main( ){  char *p,*str="abcdefgh";   p=ss(str);   printf("%sn",p);}16、下面程序的运行结果是:int  f( int a[], int  n){ if(n>1)  return a[0]+f(&a[1],n-1); else     return a[0];}main ( ){  int aa[3]={1,2,3},s;36n   s=f(&aa[0],3);   printf("%dn",s);}17、以下程序中给指针p分配三个double型动态内存单元,请填空。# include main ( ){  double *p;   p=(double *) malloc();   p[0]=1.5;p[1]=2.5;p[2]=3.5;   printf("%f%f%fn",p[0],p[1],p[2]);}18、以下程序的运行结果是# include typedef struct student{                     char name[10];                     long sno;                     float score;                  }STU;main( ){  STU  a={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;   d=a;   if(strcmp(a.name,b.name)>0)   d=b;   if(strcmp(c.name,d.name)>0)   d=c;   printf("%ld%sn",d.sno,p->name)}36n19、以下sum函数的功能是计算下列级数之和。S=1+x+x2/2!+x3/3!+........+xn/n!请给函数中的各变量正确赋初值。double  sum(  double  x, int  n ){  int i;  double  a,b,s;      for( i=1;i<=n;i++)   {  a=a*x;   b=b*i;    s=s+a/b; }   return  s;}附参考答案01~10:DBCCB        ADCAD11~20:BBCAC        DBCDA21~30: ACBDD        ADDCD31~40: CBADB        ACADA41~50: ABCCD        ACBBD36n填空题:1、@2、广域网3、EXIT或exit4、文档5、百万条或一百万条或1000000条6、B 667、n1=%dnn2=%d8、09、-410、1211、8   412、fun(a,4)+fun(b,4)-fun(a+b,3);13、j<=i14、a[i][j]=a[j][i]15、*t++16、617、efgh18、3*sizeof(double)19、2002Shangxian20、a=1.0;b=1.0;s=1.0; 36
查看更多

相关文章

您可能关注的文档