c措辞弥补资料_第1页
c措辞弥补资料_第2页
c措辞弥补资料_第3页
c措辞弥补资料_第4页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

第1章C语言程序设计补充习题ーI,以下选项中属于C语言的数据类型是A.复数型B逻辑型C双精度型 D集合型.C语言程序的基本单位是A)程序 B)语句〇.下列变量定义中合法的是A)shorta=l-.le~l;longdo=0xfdaL4.在C语言中函数D)字符程序行doubleb=l+5e2.5;float2_end=l-e-3D)4D)42LD)'\72'B)666.76.7666.76.0inti;sum=pad=5;pAd=sum++,pAd++,++pAd;printf(飞d\n",pad);A)7B)6C)5.以下所列的C语言常量中A)OxFFB)1.2e0.5.下列程序执行后的输出结果是A)666.06.0〇666.06.7main(){doubled;floatf;long1;i=f=l=d=20/3;printf("刎%ld%f%f\n”,i,1,f,d);}.若已定义x和y为double类型则表达式x=l,y=x+3/2A)1B)2〇2.0D)2.5.下列语句中符合C语言语法的赋值语句是a=7+b+c=a+7;a=6+b++=a+7;a=7+b,b++,a+7a=7+b,c=a+7;.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为A)1 B)2C)3D)4.能正确表示a和b同时为正或同时为负的逻辑表达式是A)(a>=0b>=0)&&(a<0||b<0)B)(a>=0&&b>=0)&&(a<0&&bく〇)C)(a+b>0)&&(a+b<=0) D)a*b>0.设a、b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是A)'a&&'b' B)a<=bC)aI|b+c&&b-c D)!((a<b)&&!c|11).假定有以下变量定义:intk=7,x=12;则能使值3的表达式是A)x%=(k%=5) B)x%=(k-k%5)C)x%=k-k%5 D)(x%=k)-(k%=5).语句printf("a\breヽ'hi\'y\\\bou\n"):的输出结果是A)a\bre\'hi\'y\\\bou B)a\bre\'hi\'y\bouC)re'hi'you D)abre'hi'y\bou.对下面的程序描述正确的选项是main(){intx=3,y=0,z=0;if(x=y+z)printf(******);elseprintf("####");}A)有语法错误不能通过编译 B)输出****0可以通过编译但是不能通过连接因而不能运行 D)输出####.假定所有变量均已正确说明ド列程序段运行后x的值是a=b=c=0;x=35;if(!a)x-;elseif(b);if(c)x=3;elsex=4;A)34B)4C)35D)3.请读程序#include<stdio.h>main(){floatx,y;scanf("%f",&x);if(x<0.0)y=0.0;elseif((x<5.0)&&(x!=2.0))y=1.0/(x+2.0);elseif(x<10.0)y=1.0/x;elsey=10.0;printf("%f\n",y):)若运行时从键盘上输入2.0<CR>(<CR>表示回车),则上面程序的输出结果是A)0.000000 B)0.250000 〇0.500000D)1.000000.当a=l,b=3,c=5,d=4时,执行下面一段程序后,x的值为A)1B)2〇3D)6if(a<b)if(c<d)x=l;elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;.下面程序的输出是main(){char*s="12134211”;intvl=O,v2=0,v3=0,v4=0,k;for(k=O;s[k];k++)switch(s[k]){defalult:v4++;case'I*:vl++;case'3':v3++;case'2':v2++;}printf("vl=%d,v2=%d,v3=%d,v4=%d\n",vl,v2,v3,v4);}A)vl=4,v2=2,v3=l,v4=l B)vl=4,v2=9,v3=3,v4=lC)vl=5,v2=8,v3=6,v4=l D)vl=8,v2=8,v3=8,v4=819,若已定义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);.当执行以下程序段吐会x=-1;do{x=x*x;}while(!x);A)循环体将执行一次 B)循环体将执行两次0循环体将执行无限次 D)循环体将提示有语法错误.以下循环体的执行次数是mainO{inti,j;for(i=0,j=l;i<=j+l;i+=2,j—)printf(*%d\n",i);}A)3 B)2 C)1D)0.在下列选项中没有构成死循环的程序段是inti=100:While(l){i=i%100+l;if(i>100)break;}for(;;)intk=1000;do{++k;}while(k>=10000);ints=36;while(s);—s;

.若有以下程序段,w和k都是整型变量w=k;LB:if(w==0)goLE;w一;printf("*");gotoLB;LE:...则不能与上面程序段等价的循环语句是A)for(s=k;w!=0;w--)printf(〃*");B)w=k;while(w--!=0)printf("*');w++;C)w=k;do{w--;printf("*");}while(w!=0);D)for(w=k;w;--w)printf(〃*");.有如下程序main(){intn=9;while(n>6){n—;printfn);}}A)987B)876 08765D)9876.要使以下程序段输出10个整数,请填入ー个整数for(i=0;i<= 二printf(〃%d\n〃,i+=2));.若x是int型变量,且有下面的程序片段:for(x=3;x<6;x++)printf((x%2)?("**%d"):('##%d\n"),x);该程序段的输出结果是A)**3 A)**3 b)##3C)##3D)**3##4##4**4**4##5**5##4**4**4##5**5**5 ##5.以下程序执行后,a的值是:main(){inta,k=4,m=6,*pl=&k,&p2=&m;a=pl=&m;printf(''%d\n/z,a)D)运行时出错,a无定值A)D)运行时出错,a无定值.有如下函数调用语句func(reel,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是A)3B)4〇5D)有语法错.函数pi的功能是根据以下近似公式求冗值:(ji*ji)/6=1+1/(2*2)+1/(3*3)++1/(n*n)现在请你在下面的函数中填空,完成求兀的功能#include"math,h"doublepi(longn){doubles=0.0;longi;for(i=l;iく=n;i++)s=s+;return(sqrt(6*s));}.设有如下定义int*ptr;intarr[]={6,7,8,9,10};则下列程序段的输出结果为ptr=arr;*(ptr+2)+=2;printf("%d,%d\n',*ptr,*(ptr+2));A)8,10B)6,8C)7,9D)6,10.下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在ー维数组中返回,二进制数的最低位放在下标为〇的元素中,其他依此类推,请填空fun(intx,intb[]){intk=0,r;do{r=x% b[k++]=r;x/=}while(x);}.下列程序的运行结果是voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d”,a,b);}A63B)36C)编译出错D)00.以下程序的输出结果是intd=l;fun(intp){staticintd=5;d+=p;printf(/z%d〃,d);return(d);}main(){inta=3;printf("%d\n”,fun(a+fun(d));) }A)699 B)669C)61515 D)6615.C语言中,函数的隐含存储类型是A)autoB)staticC)externD)无存储类别.下面程序的输出是fun3(intx){staticinta=3;a+=x;return(a);}main(){intk=2,m=l,n;n=fun3(k);n=fun3(m);printf("%d\n",n);}A)3 B)4 C)6 D)9.有以下函数char*fun(char*p){returnp;}该函数的返回值是A)无确切的值 B)形参p中存放的地址值c)•个临时存储单元的地址 D)形参p自身的地址值.若有以下说明和定义fun(int*c)main(){int(*a)()=fun,*b(),w[10],c;…}在必要的赋值之后,对fun函数的正确调用语句是A)a=a(w); B)(*a)(&c); C)b二・b(w); D)fun(b);.下面程序的输出结果是#include<stdio.h>funa(inta,intb){returna+b;}funb(inta,intb){returna-b;}sub(int(*t)(),intx,inty){return((*t)(x,y));}main(){intx,(*p)();p=funa;x=sub(p,9,3);x+=sub(funb,8,3);printf("%d'n',x);}.以下程序的输出结果是fun(intn,int*s){intfl,f2;if(n==l||n==2)*s=l;else{fun(n-l,&fl);fun(n-2,&f2);*s=fl+f2;}main(){intx;fun(6,&x);printf("%d\n',x);}.设有如下程序#include<stdio.h>main(argc,argv)intargc;char*argv[];{while(-argc>0)printfargv[argc]);printf('\n");}假定上述程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下键入PROGABCDEFGH1JKLくCR>,则输出结果为.下面各语句行中,能正确进行赋字符串操作的语句行是:charst[4][5]={*ABCDE*};chars[5]={'A','B','C','D','E'};char*s;s="ABCDE”;char*s;scanf("%s",s);.以下程序的输出结果是mainO{charch[3][4]={"123","456","78"},*p[3];inti;for(i=O;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A)123456780 B)123456780C)12345678 D)147.以下函数用来在w数组中插入x,w数组中的数已由小到大顺序存放,n所指存储单元中存放数组中数据的个数。插入后数组中的数仍有序,请填空voidfun(char*w,charx,int*n){inti,p;p=0;w[*n]=x;while(x>w[p]);for(i=*n;i>p;i--)w[i]=;w[p]=x;++*n;}.要求函数的功能是ー维数组a中查找x值;若找到则返回所在的下标值,否则返回〇;数列放在a[l]到a[n]中。不能正确执行此功能的函数是funa(int*a,intn,intx){*a=x;while(a[n]!=x)n一一;returnn;}funb(int*a,intn,intx){intk;for(k=l;k<=n;k++)if(a[k]==x)returnk;return0;}func(inta[],intn,intx){int*k;a[〇]二x;k=a+n;while(*k!=x)k--;returnk-n;}fund(inta[],intn,intx){intk=0;dok++;while((k<n+l)&&(a[k]!=x));if(a[k]==x)returnk;elsereturn0;}.下列程序的输出结果是mainO{chara[10]={9,8,7,6,5,4,3,2,1,0),*p=a+5;printf("%d",*--p);}A)非法B)a[4]的地址 C)5D)3.阅读程序#include"string,h"#include"stdio.h"strle(chara[],charb[]){intnum=O,n=0;while(*(a+num)!=l\01)num++;while(b[n]){*(a+num)=b[n];num++;n++;}returnk(num);)mainO{charstrl[81],str2[81],*pl=strl,*p2=str2;gets(pl);gets(p2);printf("%d\n〃,strle(pl,p2));}运行上面的程序如果从键盘上输入字符串qwerty和字符串abed则程序的输出结果是.以下程序的输出结果是#include"ctype.h"space(char*str)main(){inti,t;charts[81];for(i=0,t=0;str[i]!=1\01;i+=2)if(!isspace(*(str+i))&&(*(str+i)!=lal))ts[t++]=toupper(str[i]);ts[t]=l\Ol;strepy(str,ts);}mainO{chars[81]={abcdefg"};space(s);puts(s);}A)abedegB)bedeC)ABCDED)BCDE.若函数fun的类型为void,且有以下定义和调用语句ttdefineM50main(){inta[m];...}fun(a);...}定义fun函数首部可以用3种不同形式,请写出这3种形式 (注意:1)形参的名字请用q2)使用同一种风格).以下程序运行后,输出结果是fut(int**s,intp[2][3]){♦*s=p[l][l];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}A)1B)7C)9D)11.设有以下定义inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*prt)[3]=a,*p=a[0];则下列能够正确表示数组元素a[l][2J的表达式是A)*((prt+l)[2]) B)*(*(p+5))C)(*prt+l)+2 D)*(*(a+l)+2.请选出以下程序段的输出结果#include<stdio.h>main(){charsi[10],s2[10],s3[10],s4[10];scanf("%s%s”,si,s2);gets(s3);gets(s4);puts(si);puts(s2);puts(s3);puts(s4);}输入以下数据aaaabbbb<CR>ccccdddd<CR>A)aaaaB)aaaaC)aaaaD)aaaabbbbbbbbbbbbbbbbccccccccccccddddddddccccddddddddeeee52.阅读程序main()(charstrl[]=howdoyoudo,str2[10];char*pl=strl,*p2=str2;scanfp2);printfp2);printf("%s\n”,pl);};运行上面的程序,输入字符串HOWDOYOUDO,则程序的输出结果是ー.下列程序中字符串中各单词之间有一个空格,则程序的输出结果是ー#include<string.h>main(){charstrl[]="Howdoyoudo",*pl=strl;strcpy(strl+strlen(strl)/2,"esshe");printf("%s\n",pl);}.下面程序的输出是main()(char*p;chars[]="ABCD";for(p二s;pくs+4;p++)printf("%s\n",p);}A)ABCDB)AC)DD)ABCDBCDBCABCCDCBABDDAA.下列程序执行后的输出结果是voidfund(inti);voidfunc2(inti);charst[J="hello,friend!”;voidfund(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf('%c”,st[i]);if(i<3){i+=2;fund(i);}}mainO{inti二〇;fund(i);printf("\n");}A)helloB)helC)hloD)him.给出以下定义charxロ="abcdefg;charyロ={'a,,b\,ゼ,,d',,e',,f,};则正确的叙述是A数组x和数组y等价 B数组x和数组y的长度相同C数组x的长度大于数组y的长度D数组x的长度小于数组y的长度.下列程序的输出结果是mainO{inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",**k);}A)44B)22 C)24D)46.请读程序♦(include<stdio.h>♦♦include<string.h>main(){char*sl="AbCdEf",*s2="aB";sl++;s2++;printf("%d\n〃,strcmp(sl,s2));}.下面程序的输出结果是♦♦include<stdio.h>#include<string.h>main(){char*pl="abc",*p2="ABC",str[50]="xyz*;strcpy(str+2,strcat(pl,p2));printf("%s\n",str);}A)xyzabcABCB)zabcABCC)yzabcABC D)xyabcABC.设有如下函数定义intf(char*s){char*p二s;while(*p!二‘、〇’)p++;return(p-s);}如果在主程序中用下面的语句调用上述函数,则输出结果为0020printf("%d\n",f("goodbye!"));A)3B)6C)8D)0.以下程序运行后,输出结果是main(){char*s=*abcde*;s+=2;printfC%ld\n*,s);}A)cde B)字符c的ASCII码值 C)字符c的地址 D)出错.以下程序的功能是:将无符号ハ进制数字构成的字符串转换成十进制整数。例如:输入的字符串为567则输出十进制整数366。请填空:ttinclude<stdio.h>main(){char*p,s[6];intn;p=s;gets(p);n二・p,O';while(!='\O')n=n*8+*p-'O';printf(线d\n”,n);}.设有以下宏定义ttdefineN3^defineY(n)((N+l)*n)则执行语句z=2*(N+Y(5+1)));后,z的值为:A)出错B)42C)48D)54.以下程序运行后,输出结果是:#include<stdio.h>^definePT5.5^defineS(x)PT*x*xmain(){inta=l,b=2;printf("%4.lf\n”,S(a+b));}A)49.5B)9.5C)22.0 D)45.0.若要用下面的程序段使指针变量p指向ー个存储整型变量的动态存储单元int*p;p=malloc(sizeof(int));则应填入A)intB)int*C)(*int)D)(int*).请读程序#include<stdio.h>voidfun(float*pl,float*p2,float*s){s=(float*)callocd,sizeof(float));*s=*pl+*(p2++);}main(){floata[2]={l.1,2.2},b[2]={10.0,20.0),*s=a;fun(a,b,s);printf("%f\n",*s);}上面程序的输出结果是A)11.100000B)12.100000 021.100000D)1.100000.以下程序的输出结果是^include<stdlib.h>inta[3][3]={1,2,3,4,5,6,7,8,9),*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n",*p);}f(int*s,intp[][3]){*s=p[1][1];}.若有以下说明和定义语句,则变量w在内存中所占的字节数是:unionaa(floatx,y;charc[6];};structst{unionaav;floatw[5];doubleave;}w;.有以下程序^include<stdio.h>structstu{intnum;charname[10];intage;};voidfun(structstu*p){printf("%d\n",(*p).name);}main(){structstustudents[3]={{9801,"Zhang”,20},{9802,"Wang",19},(9803,"Zhao",18}};fun(students+2);}输出结果是A)ZhangB)Zhao C)Wang D)18.下面程序的输出是typedefunion(longx[2];inty[4];charz[8];}MYTYPE;MYTYPEthem;mainO(printf("%d\n",sizeof(them));}A32 B16C8 D24.有以下结构体说明和变量的定义,且如下图所示指针p指向变量a,指针q变量b则不能把结点b连接到结点a之后的语句是A)a.next=q;B)p.next=&b;C)p->next=&b; D)(*p).next=q;structnode{chardata;structnode*next;

}a,b,*p=&a,*q=&b;datanextdatanextdatanext9 ‘、〇'root*sp;73.下面程序的输出结果为struct{charnextdata72.变量root有如图所示的存储结构,其中sp是指向字符串的指针域,next是指向该结构的指针域,data用以存放整型数。请填空,完成此结构的类型说明和变量root的定义。root*sp;73.下面程序的输出结果为struct{charnextdatastructst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,adt[1],70,adt[2],80,&dt[3]};mainO{p=aa;printf("%d\n”,++p->x);printf("%d\n”,(++p)->x);printf('d\n”,++(*pー)y));}A)10B)50 051D)6020 60 60 7020 21 21 3174.若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是datanextA)sー〉A)sー〉next=NULL;p=p-〉next;p->next=s;B)p=pー〉next;s-〉next二pー〉next;p->next=s;C)p=p->next;s->next=p;p-〉next二s;D)p=(*p).next;(*s).next=(*p).next;(*p).next=s;.假定建立了以下链表结构,指针p、q分别指向图中所示的结点,则以下可以将q所指结点从链表中删除,并释放该结点的语句组是free(q);p->next=q->next;(*p).next=(*q).next;free(q);q=(*q).next;(*p).next=q;free(q);q=q->next;p->next=q;p=p->next;free(p);datanext.用十进制数表示表达式121012的运算结果是A1 B0C14D12.在C程序中,可把整型数以二进制形式存放到文件中的函数是:A)fprintf函数B)fread函数C)fwrite函数D)fputc函数.以下程序由终端输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志,请填空^include<stdio.h>main(){FILE*fp;charch,fname[10];printf("Inputthenameoffile\n");gets(fname);if((fp=)==NULL){printf("Cannotopen\n");exit(0);}printf("Enterdata\n");while((ch=getchar())!=1#1)fputc(,fp);fclose(fp);}.下面程序把从终端读入的10个整数以二进制方式写到ー个名为bi.dat的新文件中,请填空ttinclude<stdio.h>FILE*fp;main(){inti,j;if((fp=fopen(,"wb"))==NULL)exit(0);for(i=0;iく10;i++){scanf("%d",&j);fwrite(&j,sizeof(int),1,);}fclose(fp);}.在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是函数。.以下程序的输出结果为main(){char*aIpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0;i<4;i++)printf(*M%s*,p[i]);printf(*\n*);}A)ABCDEFGHIJKL B)ABCDC)ABCDEFGHIJKLMNOP D)AEIM第2章C语言程序设计补充习题ニ.下列变量名合法的是A)DC-T.YOUB)_7G6UnC)6GvY_rD%DEA.下列四个选项中,合法的整型常量是:A)-OXfffB)OlaC)986016D)Ox.下列运算符中,结合方向自左向右A?: B,C+=D++.字符型常量在内存中存放的是A内部码 BASCII代码C十进制码DBCD码.整型变量x=l,y=3,经过下列计算后,x的值不等于6的是A)x=(x=l+2,x*2) B)x=y>2?6:5C)x=9-(—y)-(―y) D)x=y*4.8/2.下面程序段的输出结果是inta-023printf"%d\n" aA18B17C23D24.下面的程序段在执行完成后,a的值为:intj=0,k=0,a=0:while(j<2){j++;a=a+l;k=0;while(k<=3){k++;if(k%2!=0)continue;a=a+l;}a=a+l;}A)4B)6C)8D)10.C语言中,switch后面的括号内的表达式的值可以是A只能为整型 B只能为整型C)只能为整型和字符型 D任何类型.以下关于switch语句和break语句的描述中正确的是A)在switch语句中必须使用break语句B)break语句只能用于switch语句中C)break语句只能用于循环语句中D)在switch语句中使用break语句或continue语句的作用相同20.下面程序段中循环执行()次。intx=20do{x/=2while(x-);A)4次B)3次C)5次D)不确定23.以下对ー维数组a的正确说明是A)chara(10); B)inta[];C)intk=5,a[k]; D)chart]={'a','b','c'};25.以下能对二维数组y进行正确初始化的语句是inty[2][]={{1,0,1},{5,2,3});inty[][3>{{1,2,3},{4,5,6}};inty[2][4]={{1,2,3},{4,5}16};inty[][3]={{1,0,1,0},{},{1,1}};27.判断两个字符串是否相等,正确的表达方式是:while(sl=s2)while(sl=s2)while(strcmp(si,s2)==0)while(strcmp(si,s2)=0)28,如下程序段的输出是staticcharstr[]={*1234”};printfstr[3]);A)1,2,3,4b)4c)2D),30.以下不正确的说法A)在不同的函数中可以使用相同名字的变量名B)形式参数是局部变量0在函数内定义的变量只在本函数范围内有效D)在函数内的复合语句中定义的变量在本函数范围内有效32.以下正确函数说明是A)intfun(inta,b) B)floatfun(inta;intb)C)doublefun() D)intfun(chara[][])34.有一个如下定义的函数

func(a){printf*%d*,a};B)void类型D)无法确定则该函数的返回类型是A)B)void类型D)无法确定0没有返回值.下列叙述中错误的是A)主函数中定义的变量在整个程序中都是有效的B)在其他函数中定义的变量在主函数屮也不能使用0形式参数也是局部变量D)复合语句中定义的函数只能在该复合语句中有效.若函数的类型与return语句中的类型不一致,贝リ()。A)编译时出错B)运行时出现不确定结果0不会出错且返回的值的类型以return语句中表达式的类型为准D)不会出错且返回的值的类型以函数类型为准.以下关于预处理的叙述中不正确的是A)C源程序中凡是以“ギ’号开始的控制行都是预处理命令行。B)预处理命令行必须位于源程序的开始部位0一条有效的预处理命令必须单独占据一行,每行的末尾不得加“;”号。D)预处理命令是在正式编译之前先行被处理的.若有以下宏定义#defineN2#defineY(n) (N+l)*n则执行语句intz;z=2*N+Y(5);后的值是A)50B)34 c)19 d)无定值.以下程序的运行结果是#defineMAX(x,y)(x)>(y)?(x):(y)#definePRINT(y)printf(、、y=%d”,y);main(){inta=l,b=2,c=3,d=4;t=MAX(c+d,a+b);PRINT(t);}A)y=3 B)存在语法错误 0Y=7D)Y=0.以下关于文件包含的描述中正确的是A)每个C程序中必须包含预处理命令#include<stdio.h>^include后面的文件名用双引号括起和用尖括号括起来完全等效0#include命令行可以出现在源程序中需要的任何地方D)用#include所包含的文件成为头文件,必须以.h作为扩展名44.有如下3个源文件

源文件1filel.hstaticinta=l;源文件2fiel2.hintcal(x,y)intx,y;{if(a==l)return((x-y)*(x+y));elsereturn(x*x+y*y);}源文件3file3.c#includeくstdio.h>#includeくfilel.h>#include<file2.h>main(){intx,y,a;printflinputthreeintnumber:z,);scanf("%d%d%d.,&a,&x,&y);printf("\n%d”,cal(x,y));return(1);)则下面的说法中正确的是A)编译源文件file3.C并运行输入〃042〃,输出结果为20B)编译源文件file3.C并运行输入〃042〃,输出结果为!20此程序有错,文件file2.h没有包含filel.h,不能使用filel.h中定义的变量D)此程序有错,文件file2.h和filel.h没有主函数,将不能编译45,下列叙述中正确的是A)将指向函数的指针作为函数的参数,虽然可以提高效率,但是容易造成混乱,所以不符合结构化程序设计的原则B)数组名实际上是此数组的首地址,所以数组名相当于ー个指针变量0若定义数组a[2][3]则a+1和・(a+1)完全等价D)函数的形参为ー个数组,则调用此函数时将数组名作为对应的实参46.以下对指针变量的操作中,不正确的是:A)(')intp,*q;q=&p;inta=5,*p;*p=&a;B)int*p,,*q;qA)(')intp,*q;q=&p;inta=5,*p;*p=&a;D)inta=5,*p,*q=&a;*p=*q;49.F49.F面程序段的运行结果是B)D)B)D)1字符,b,的地址•字符,b,的ASCH码,则・(p+5)表示char*s=abcde;s+=l;printf("%d”,s);A)bcde0字符,c,的地址x51,若有定义intx[10],*p=x;A)数组元素x[5]的地址 B)数组元素x[5]的值0数组元素x[6]的地址 D)元素x[6]的值.某系统中整型变量为16位,若有如下语句int*p;p=(int*)malloc(40*sizeof(char));则下面说法中正确的是A)此内存动态分配语句执行后将不能使用指针p正确地存取整型变量,因为分配时使用的是sizeof(char)B)此内存动态分配语句执行后能使用指针p正确地存取整型变量0此内存动态分配语句执行后能使用指针p正确地存取字符型变量D)若不显示地释放动态分配的内存空间,但p超出了作用域而被删除时,p所指向的空间也将被系统自动释放。.下面定义中,对成员变量x的引用形式中正确的是structmm{intxy)structaa{charcstructmmzb}blA)bl.zb.xB)bl.xC)bl.mm.xD)zb.x.已知学生记录描述如ド,下面对结构体成员computer的赋值方式正确的是:structstudent{intnumcharname[8]struct{floatmathfloatenglfloatcomputer}mark}stdA)puter=84; B)puter=84;C)puter=84; D)puter=84;.下列说法中错误的是A)共用体变量的地址和它的各成员的地址都是同一地址B)共用体内的成员可以是结构体变量,反之亦然0在任ー时刻,共用体变量的各成员只有一个有效D)函数可以返回一个共用体变量.设有如下定义uniondata{inti,charch,doublef;}b;

若双精度型变量占8字节,整型变量占2字节,字符型变量占1字节,则共用体变量a占用内存的字节数是:8B)!〇2D)1162.以下对C语言中共用体类型数据的叙述正确的是A)可以对共用体变量名直接赋值ー个共用体变量中可以同时存放其所有成员0ー个共用体变量中不能同时存放其所有成员D)共用体类型定义中不能出现结构体类型成员.若有以下定义和语句,则以下对结构体成员的引用不正确的是structstudent{intnum;intage;};structstudentstu[3]={{1001,20},{1002,19},{1003,20}};main(){structstudent*p;p=stu;}A)(p++)->num}A)(p++)->numB)p++->ageC)(*p).numD)p=&stu.age.若有以下说明语句structst{intn;structst*next;};structsta[3],*p;a[0].n=5;a[0].next=&a[l];a[l],n=7;a[l].next=&a[2];a[2].n=9;a[2].next='\0';P=&a[〇];则值为6的表达式是A)p++ー>n B)*p.n C)(*p).n++D)++p->n67.表达式(0x36へ0x55)>>1的值的十六进制表示形式是:A)0x36 B)Oxlb〇0x6c D)0x20第3章C语言程序设计上机习题.给定程序M0DI1.C中函数fun的功能是:将未在字符串s中出现而在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按原字符串中出现的字符排列,不去掉重复字符。例如,当s=〃ABCDE〃t=〃BDFGG”时,u中的字符串为“FGG”。请改正函数fun中的错误,使它能够得出正确的结果。注意:不要改动main函数,不得增行和删行,也不得更改程序的结构ttinclude<conio.h>ttinclude<stdio.h>ttinclude<string.h>voidfun(char*s,char*t,char*u){inti,j,si,tl;si=strlen(s);tl=strlen(t);/************FOUND************/for(i=0;i<sl;i++)/************FOUND************/{for(j=0;j<tl;j++)if(t[i]=s[j])break;if(j>=sl)*u++=t[i];}/************found************/u二‘、〇';}main(){chars[100],t[100],u[100];clrscr();printf(*\nPleaseenterstrings:");scanf("版,s);printfl\nPleaseenterstringt:");scanf('%s”,t);fun(s,t,u);printfl'Theresultis:%s\n”,u);}.给定程序MODILC中函数fun的功能是:将s所指的字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。例如:当s串为“ABCD”时,则t串中的内容应为“ABCDDCBA”。请改正函数fun中的错误,使它能够得出正确的结果。注意:不要改动main函数,不得增行和删行,也不得更改程序的结构。#include<conio.h>^include<stdio.h>^include<string.h>/************fouND************/voidfun(chars,chart){inti,d;d=strlen(s);for(i=0;i<d;i++)t[i]=s[i];for(i=0;i<d;i++)t[d+i]=s[d-l-i];/************FOUND************/t[2*d-l]=‘、〇';}main(){chars[100],t[100];clrscr();printf(z<\nPleaseenterstringS:");scanf('%s”,s);fun(s,t);printf("\nTheresultis:%s\n”,t);}.文件MODILC中程序的功能是:统计ー个英文句子中各小写的元音字母出现的次数。例如:若输入字符串:“Iamgladwhenplayinggamesら则应输出:a4e2i1〇0u0请改正程序中的错误,使它能够得出正确的结果。注意:不得增行和删行,也不得更改程序的结构。#include<conio.h>#include<stdio.h>intvv[26];voidVs(char*s){for(;*s;s++)/************FOUND**********/switch(s);{case('a'):case('e'):case('i'):case('〇'):case('u'):vv[*s-'a']++;}}main(){charstr[81],ww[6]={"aeiou"};inti;clrscr0;printf('\nPleaseenterastring:\n/z);gets(str);Vs(str);/************FOUND**********/for(i=0;i<6;i++)printf("\n%c%2d”,ww[i],vv[ww[i]-ww[0]]);}.给定程序MODILC中函数fun的功能是:将字符串s中最后异常出现的子字符串tl替换成字符串t2,所形成的新串放在w所指的数组中。在此处,要求tl和t2所指的字符串长度相同。例如,当s所指的字符串中的内容为“abcdabfabc'tl的内容为〃ab〃,t2的内容为〃99〃时,结果,在w所指的数组中的内容应该为“abcdabf99c”。请改正函数fun中的错误,使它能得出正确的结果。注意:函数不要改动main〇函数,不得增行和删行,也不得更改程序的结构。ttinclude<conio.h>#include<stdio.h>#include<string.h>intfun(char*s,char*tl,char*t2,char*w){inti;char*p,*r,*a;strcpy(w,s);/************F0UND************/while(w){p=w;r=tl;while(*r)/************F0UND************/if(*r==*p){r++;p++;}/*if*r==*p{r++p++}elsebreak;if(*rニニ‘、〇')a=ww++;}r=t2;while(*r){*a二*r;a++;r++;}}main(){chars[100],tl[100],t2[100],w[100];clrscr();printf(zz\nPleaseenterstringS:");scanf("%s”,s);printf("\nPleaseentersubstringtl:");scanf(线s”,tl);printf(*\nPleaseentersubstringt2:");scanf("如",t2);if(strlen(tl)==strlen(t2)){fun(s,tl,t2,w);printf("\nTheresultis:%s\n",w);}elseprintf("\nError:strlen(tl)!=strlen(t2)\n");}.给定程序MODILC中函数fun的功能是:求S的值。ぐー*_41_*宣_* (2庁コ1*3 3*5 5*7 (2k-l)*(2A+l)请改正函数fun中的错误,使程序能输出正确的结果注意:不要改动main函数,不得增行或删行,也不得更改程序的结构#include#include^include/************found************/fun(intk){intn;floats,w,p,q;n=1;s=1.0;while(n<=k){w=2.0*n;p=w-1.0;q=w+1.0;s=s*w*w/p/q;n++;}/************fourid************/returns}main(){clrscr();printf("%f\n”,fun(10));).给定程序M0DI1.C中函数fun的功能是:判断字符ch是否与字符串str中的某个字符相同,若相同,什么也不做,若不同,则插在字符串的最后。请改正函数fun中的错误,使它能进行正常操作。注意:不要改动main函数,不得增行和删行,也不得更改程序的结构。#include<conio.h>^include<stdio.h>#include<string.h>/**********found**********/voidfun(charstr,charch){while(*str&&*str!=ch)str++;/**********FOUND**********/if(*str==ch){str[0]=ch;/**********F0UND**********/str[l]=’〇'}}main(){chars[81],c;clrscr();printf("\nPleaseenterastring:\n,z);gets(s);printf('\nPleaseenterthecharactertosearch:;c=getchar();fun(s,c);printfl\nTheresultis%s\n”,s);}.请编写ー个函数voidfun(char*s),函数的功能是把字符串s中所有的字母改写成字母的下ー个,字母Z改写成字母A,字母Z改写成字母a.大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变.例如:s串中原来的字符串为Mn.123xy”则调用该函数后s串变为No.123yz注意:部分源程序存在文件PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句.#include<conio.h>#include<string.h>#include<stdio.h>#include<ctype.h>#defineN81fun(char*s)main(){chara[N];clrscr();printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);fun(a);printf("Thestringaftermodified:");puts(a);N0N0();}N0N0(){/・请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件・/inti;chara[N];FILE*rf,*wf;rf=fopen("bc9.in","r");wf=fopen("bc9.out","w");for(i=0;i<10;i++){fscanf(rf,"%s",a);fun(a);fprintf(wf,"%s\n",a);}fclose(rf);fclose(wf);}.函数fun的功能是:把a数组中的n个数和b数组中逆序的n个数ーー相减,结果存在c数组中.例如:当a数组中的值是1、3、5、7、8b数组中的值是2ヽ3、4、5、8调用该函数后,c数组中存放的数据是ー7、ー2、1、4、6注意:部分源程序存在文件PR0G1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<conio.h>ttinclude<stdio.h>voidfun(inta[],intb[],intc[],intn)main(){inti,a[100]={l,3,5,7,8},b[100]={2,3,4,5,8},c[100];clrscr();fun(a,b,c,5);printflTheresultis:つ;for(i=0;i<5;i++)printf("%d",c[i]);printf("\n");NONO();}NONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件・/FILE*rf,*wf;inta[100],b[100],c[100],i,j;rf=fopen("in.dat","r");wf=fopen("bc02.dat*,"w");for(i=0 ; i < 5 ; i++){for(j=0 ; j < 5 ; j++)fscanf(rf,"%d,", &a[j]);for(j= 0 ; j < 5 ;j++)fscanf(rf,"%d, ",&b[j]);fun(a,b,c,5);for(j=0;j<5;j++)fprintf(wf,"%d",c[j]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}.函数fun的功能是:将s所指的字符串中下标为奇数同时ASCII值也为奇数的字符删除,s中剩余的字符形成一个新串放在t所指的数组中。例如:若s所指的字符串中的内容为ABCDEFG12345,其中字符C的ASCII码值虽然为奇数,但在数组中的下标为偶数,因此不能删除;而字符1的ASCII码为奇数,在数组中的下标也为奇数,因此应当删除,其他依此类推。最后t所指的数组中的内容应该是ABCDEFG24部分源程序存在文件PR0GLC中。注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句ttinclude<conio.h>ftinclude<stdio.h>ttinclude<string.h>voidfun(char*s,chart[])main(){chars[100],t[100];clrscr();printf(*\nPleaseenterstringS:");scanf('%s”,s);fun(s,t);printf("\nTheresultis:%s\n',t);NONO();}NONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件*/chars[100],t[100];FILE*rf,*wf;inti;rf=fopen("bc08.dat","r");wf=fopen("bc08.out","w");for(i=0;i<10;i++){fscanf(rf,"%s",s);fun(s,t);fprintf(wf,"%s\n",t);}fclose(rf);fclose(wf);}.请编ー个函数char*EXULchartt[],它的功能是将字符串tt的大写字母都改为对应的小写字母,其他字符不变并返回修改后的字符串例如:若输入字符串ABCd,则输出结果为abcd注意:此程序存储在PR0G1.C中。请不要改动主程序main()、函数WriteData、函数computer中的任何内容,仅在函数EXUL的花括号中填入你编写的若干语句。^include<conio.h>#include<stdio.h>^include<string.h>char*EXUL(chartt[])main(){inti;chartt[81];clrscr();printf(*\nPleaseenterastring:");gets(tt);printf("\nTheresultstringis:%s\n*,EXUL(tt));compute0;}/・以下部分与考生答题无关,考生不必阅读,但不得进行任何修改・/WriteData(chartt[]){FILE*fp;fp=fopen("dat82.dat”,〃w〃);fprintf(fp,"%s”,tt);fclose(fp);}compute(){inti;chartt[81];FILE*fp;fp二fopen("c9670803.in","r");fgets(tt,80,fp);fclose(fp);EXUL(tt);WriteData(tt);}第4章基础知识上机考试样卷1、考试总时间为60分钟.2、考试共分为五道大题,(1)Windows操作(2)Wo[蠣作(3)IE或OutlookExpress搀作⑷程序调试⑸程序设计;其中由系统随机产生IE或OutlookExpress操作.3、考试期间请及时保奇考试结果,。保存按钮只能保存Windows掾作、IE操作、OutlookExpress操作;Woi森作、程序调试和设计的结巢淸自己保存・ー、Windows操作Windows操作题目如下,单击“回答’’按钮,进行机ndows操作题考试.1、设置屏幕的背景图案为“Dizzy",墻纸为平铺的“Waves”.2、设置Windows的数字格式为:小数点后面的位数为“3”,数字分组符号为,组中的位数为“2”,其余采用缺省值.3^在桌面上建立画图程序“PBRUSH.EXE"的快捷方式,快捷方式名为“我的画筐”.4、设置Windows的货币符号为“$",货币符号位置为“1.1。”,负数格式为“-1.1。".Windows操作题目如卜,单击“回答”按钮,进行Windows操作题考试.1、改变桌面墻纸为平铺的“Circles",并改变屏幕保护程序为“多彩曲线".2、在桌面上建立计算器程序“Calc.exe"的快捷方式,快捷方式名为“计建器”,并将此快捷方式添加到“开始"菜单的"程序"项中.3、设置Windows的货币符号为“$",货币符号位置为“1.1。",负数格式为た1.1。".4、设置虹ndows的时间显示样式为“HH:mm:ss",上午符号为“AM",下午符号为“PM".二、Word操作题目.将正文中所有的双引号改成西文标点单引号‘‘.设置标题文字字体为“Ariaに字间距为加宽5磅。.将标题以下第一段落的单词设置成词首字母大写。.将标题以下各段对齐格式为两端对齐。.为最后一段添加3磅的青色双实线阴影边框。注意:全文内容、位置不得随意变动;红框之内的文字不得操作,否则后果自负。THERAINBOWWhenthesunshineswhilstitisrainingthereisarainbowandthehigherthesunisintheskythesmalleristherainbow'"scurve.Eachraindropactsasatinymirrorandreflectsthesunslightbacktous.Atthesametimetheraindropsplitsthesun“swhitelightintothecolorsofthespectrumjustasaglassprismdoes.Theraysofeachofthespectrumcolorsarebentdifferentlysoeachoneformsabandbelowthenextcolor,makingarainbowofthespectrumcolors.题目.给文章添加标题“鱼类需要喝水吗?”(不包括引号)2,将“由于淡水鱼类血液和体液的浓度高于……”所在段落的文字设置成楷体空心。

.将“海洋里的鱼类品种繁多 ”所在段落设置左右缩进都为2厘米。.以右对齐格式在本文档每页顶端插入页码,页码数字格式为i,ii,iii……。.对正文(不包括红框内的题目部分)设置版面垂直对齐格式为居中。注意:全文内容、位置不得随意变动,否则后果自负。红框之内的文字不得操作,否则后果自负。由于淡水鱼类血液和体液的浓度高于周围的淡水,水分就从外界经过化.鲤半渗透性薄膜的表皮,不断地渗透到鱼体内,因此,淡水鱼类不管体内是否需要水分,水总是不间断地渗透进去。所以淡水鱼类不仅不需要喝水,而且还经常不断地将体内多余的水分排除出去,否则,鱼体还有被胀裂的危险。虽然,海水浓度高,但极大部分软骨鱼体内血液里,含有比也不需要喝水。而生活在海洋里的硬骨鱼,则于周围海水浓需要及时补充水分,因此,海中的硬骨鱼是需要大口大口地海洋里的鱼类品种繁多,不能•概虽然,海水浓度高,但极大部分软骨鱼体内血液里,含有比也不需要喝水。而生活在海洋里的硬骨鱼,则于周围海水浓需要及时补充水分,因此,海中的硬骨鱼是需要大口大口地三、IE或Outlook操作Outlook操作题目如卜,单击“回答’’按钮,进行Outlook操作题考试.1、嬲除OutlookExpress中已有的邮件帐号,新建一个邮件帐户,并用此軽户接收邮件.要求:“电子邮件地址:xxxxxxxxxx@,其中’xxxxxxxxxx'为准考・证号;由准若证号作为显不姓名;口令:djks;POP3和SMTP服务器地址都为:.POP3端口为U0:SMTP端口为25.2、用第1题中已经设置好的邮件帐户给地址’hziee@勾’发送一封邮件.要求:“主题为'浙江省高校计算机等级考试’;内容为考试的准考证号和姓名(例如:8011400001模拟0001)”ヌ、设置OutlookExpress的选项,使得“自动显示含有未读邮件的文件夹3期離牆藏啖使得“进制写检查—复或IE操作题目如下,、单击“回答”按钮,在浏览器地址栏输入’'»进行IE操作题考试.1、浏览浙江省计售机等级考试网站,较’’页面另存到考生目录,文件名为1、浏览浙江省计售机等级考试网站,较’’页面另存到考生目录,文件名为(*.txt)”.将“不同计算机等级考试之间的比“djks”,保存类型为“文本文件,2、浏览浙江省计算机等级考试网站,2、浏览浙江省计算机等级考试网站,将“浙江师范大学”页面上的图片“O21_1.JPG”另存到考生目录,文件名为“picture",保存类型为“位图(*.bmp)".3^设置IE浏览器,使得浏览Internet网页时不播放视频4、设置IE浏览器,使得浏览Internet网页时不扩展图象的说明文字第5章C语言上机考试样卷ー、程序调试在考生目录下,有Modify.c程序,该程序中“一N—”是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。.程序功能:输入整数n(n>0),求m使得2的m次方小于或等于n、2的m+1次方大于或等于n。#include<stdio.h>voidmain(){inti=0,t=l,n;while(1);while(!(t<=n&&t*2>=n)){ 2 i++;)printf(w%d\nM,i);}.程序功能:调用函数f,求二维数组a中全体元素之和。#include<stdio.h>floatf(1){floaty=0;intij;for(i=0;i<m;i++)for(j=0;j<n;j++)y=y+*(*(x+i)+j);returny;)voidmain(){floata[3][4]={{l,2,3,4},{56,7,8},{9,10,ll,12}},*b[3];inti;for(i=0;i<3;i++)b[i]=_2—;printf(”%.2f\n\f(b34));).程序功能:输入m、n(要求输入数均大于〇),输出它们的最大公约数。#include<stdio.h>voidmain(){intm,n,k;while(scanf(M%d%d",&m,&n),1);for(2;n%k!=0llm%k!=0;k—);printf("%d\n",k);.程序功能:函数f去除数组中的负数,输出结果为:13 4 6#include<stdio.h>voidf(int*a,int*m){intij;for

温馨提示

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

评论

0/150

提交评论