机房C语言题库(共11套)

机房C语言题库(共11套)

ID:83051145

大小:181.23 KB

页数:216页

时间:2022-11-26

上传者:无敌小子
机房C语言题库(共11套)_第1页
机房C语言题库(共11套)_第2页
机房C语言题库(共11套)_第3页
机房C语言题库(共11套)_第4页
机房C语言题库(共11套)_第5页
机房C语言题库(共11套)_第6页
机房C语言题库(共11套)_第7页
机房C语言题库(共11套)_第8页
机房C语言题库(共11套)_第9页
机房C语言题库(共11套)_第10页
资源描述:

《机房C语言题库(共11套)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

【第一套】一、单项选择1.下列数据中,为字符串常量的是()OA、PB、Howdoyoudo.C、$abcD、"house”2.以下所列的C语言常量中,错误的是()。A、OxFFB、1.2e0.5C、2LD、,72’3.以下程序的输出结果是()omain(){floatx=3.6;inti;i=(int)x;printf("x=%f,i=%d

1",x,i);}A、x=3.600000,i=4B、x=3占3.600000C、x=3,i=3D、x=3.600000,i=34.若k是整型,则以下程序段的执行结果是:()k=-3;if(k<=0)printf("####M)elsepnntfC'&&&&H);

2A、####B、有语法错误,无结果C、&&&&D、####&&&&5.若x=2,y=3则x||y的结果是()。A、3B、0C、1D、26.针对下列程序段回答问题().for(t=1;t<=100;t++)(scanf("%d",&x);if(x<0)continue;printf("%3d",t);)A、x>=0时什么也不输出B、最多允许输出100个非负整数C、printf函数永远也不执行D、当x<0时整个循环结束7.以下程序的执行结果是()。main(){intnum=0;while(num<=2){num++;printf("%d,",num);}}A、0,1,2B、1,2,3,C、1,2,3,4,D、1,2,

35.选择正确的输入语句()。:(其中:charstring[20];)使得string的内容为"Iamstudent".A、scanf("%s",string);B、scanf("%c",&string);C、scanf("%s",&string);D、gets(string);6.对以下说明语句inta[10]={6>7,8,9,10};的正确理解是().A、将5个初值依次赋给a[6]至a[10]B、将5个初值依次赋给a[0]至a[4]C、因为数组长度与初值的个数不相同,所以此语句不正确D、将5个初值依次赋给a[1]至a[5]7.以下标识符中可以作为用户函数名的是().A、structB、intC、unionD,go_to8.以下叙述错误的是().A、函数调用可以出现在一个表达式中B、函数调用可以作为一个函数的形参C、函数调用可以作为•个函数的实参D、函数允许递归调用9.若用数组名作为函数的实参,传递给形参的是()oA、数组第一个元素的值B、数组的首地址C、数组元素的个数D、数组中全部元素的值10.在C语言程序中()。A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数调用不可以嵌套

4D、函数的定义和函数调用均可以嵌套5.下列说法中正确的是().A、函数调用不占运行时间,只占编译时间.B、宏替换不占运行时间,只占编译时间.C、有参数的宏定义,就是函数.D、在定义宏时,宏名与带参数的括弧之间可以加空格.6.若有说明:int*p,m=5,n;以下正确的程序段是()。A、scanf("%d",&n);*p=n;B、p=&n;scanf("%d",*p)C、p=&n;scanf("%d",&p);D、p=&n;scanf("%d",p);7.对于下述定义,不正确的叙述是().uniondata{inti;charc;floatf;}a,b;A、变量a的地址和它的各成员地址都是相同的B、可以在定义类型的同时定义变量a,并对a的任意成员初始化C、变量a所占内存的长度等于成员f的长度D、如果有定义语句uniondataa={6};则对变量a的初始化是正确的8.有两个整型变量dog和cat,若要从磁盘文件把数据读到其中,正确的形式是().A.fscanf(dog,2,1,fp);B、fscanf(fp,"%d%d",&dog,&cat);Csfscanf(dog,cat,2,1,fp);

5D、fscanf(fp,"%d",&dog,&cat);DBDBCBBDBDBBBBDBB二、判断1.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变2.charc[6]="abcde";printf("%3s”,c)表示输出的字段的宽度,如果被输出的数据的位数大于3,按实际位数输出.3.条件表达式x?aTb'中,若x=0时,表达式的值为'a:4.在逻辑运算符中的运算级别由高向低依次为&&->||->!5.do-while循环由do开始,while结束,循环体可能一次也不做。6.continue语句用于终止循环体的本次执行.7.若有定义和语句:inta(3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21.8.inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列的元素赋初值,其余元素值为0。9.定义一维数组的形式为:类型说明数组名[表达式],其中表达式可以是正整型常量表达式、字符常量表达式.10.在C语言中,函数名代表函数的入口地址.11.函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5.12.数组名可以作为函数的实参和形参.13.一个include命令只能指定1个被包含的文件。14.若p为指针变量,a为数组名,则a-p是合法的表达式.15.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。16.C语言中,关闭一个文件就删除了这个文件.对对错错错对对对对对错对对对对错三、填空1.已知floati=5.6;inta;写出语句a=(int)i;执行后变量i的值是.2.设有intx=11,则表达式(x++*1/3)的值是o3.若intx=6;则x+=x-=x*x表达式最后x的值是.4.设x=2&&2||5>1,x的值为.

61.连接字符串的函数是,只写函数名即可.2.函数不可以进行嵌套定义,但可以进行嵌套.3.设有以下结构类型说明和变量定义,则变量b在内存所占字节数是ostructstud{shortintage;charnum[3];floats[2];doubleave;}b,*p;4.若有fp=f。pen("a1.dat","r+")打开文件语句,这个文件的数据是以的形式存放在内存中,该文件的使用方式为读/。5.63-601strcat调用21ASCII码或ASCII文本四、程序设计1./*【程序设计】功能:输入n个数,并求出小于平均值的数的个数。#include"stdio.h"intaverage_num(inta[],intn)r/•**m则访**m**/I**********End**********/Imain()rintn,a[100],i,num;voidTestFunc();scanf("%d”,&n);for(i=0;i

7printf(Hthenumis:%d

8,,,num);TestFunc();voidTestFunc()ALE*IN,*OUT;intn;inti[1O];into;IN=fopen(win.datM,Mrw);if(IN==NULL)(printfC'FteadFileError");)OUT=fopen("out.dat","w");if(OUT==NULL)(printf("WriteRieError");)for(n=0;n<5;n++)(fscanf(IN,"%dM,&i[n]);)o=average_num(i,5);fprintf(OUT,M%d

9M,o);fclose(IN);fclose(OUT);【参考代码】

10inti,sum=O,k=O;doubleaverage;for(占0;ivn;i++)sum=sum+a[i];average=sum*1.0/n;for(i=0;ia[i])k++;return(k);1./*【程序设计】功能:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。例如:若程序执行时输入字符串为:turbocandborlandc++从键盘上输入字符:n,则输出后变为:turbocadborladc++,如果输入的字符在字符串中不存在,则字符串照原样输出。*/#includeHstdio.h"voidfun(chars[],charc)(**★*★*★*gggjp**********JEnd…}voidTestFunc(){FILE*IN,*OUT;chari[200];/*charo[200];*/

11IN=fopen(Min.datM,MrM);if(IN==NULL)(printfC'FteadFileError");}OUT=fopen(,,out.dat",,,w,');if(OUT==NULL)(printfC'WriteFileError");)fscanf(IN,n%sM,i);fun(i/n');fprintf(OUT,M%sM,i);fclose(IN);fdose(OUT);}main()(staticcharstr[]="turbocandborlandc++charch;

12printf("输入一个字符scanf("%c”,&ch);fun(str,ch);printf(',str[]=%s

13,',str);TestFunc();}【参考代码】char*q=s;for(;*q;q++)if(*q!=c)*(s++)=*q;*s=0;五、程序改错1./*--——【程序改错】功能:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。例如:输入ab12c3d,则输出123。注意:不得增行或删行,也不得更改程序的结构!*/#indude"stdio.h',/**********ERROR**********/voidfun(chars)((nti,j;for(i=0,j=0;s[i]!='\0,;i++)if(s[i]>='0'&&s[i]<='9,)ERROR*****

14S[j]=S[i];/………*error**********/s[j]="\O";)main(){charitem[80];printf("

15Enterastring:");gets(item);printf(M

16

17Thestringis:\w%s\"

18M,item);fun(item);printf("

19

20Thestringofchangingis:\"%s\',

21,,,item);)【改错1】【学生答案】voidfun(chars)【参考答案】voidfun(char*s)voidfun(chars[])voidfun(chars[80])【改错2】【学生答案】s[j]=s[i];【参考答案】s[j++]=s[i];{s[j]=s[i];j++;}

22【改错3】【学生答案】s[j]="\O";【参考答案】s[j]='\O';【程序改错】功能:读入一个整数m(5SmS20),函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。例如:若输入整数7,则应输出:3101728323647。#include"conio.h"#include"stdio.h"voidsortpb(intn,inta[]){/**********ERROR**********/inti,j,p;for(j=0;ja[j])p=i;ERROR*****if(p==j

23t=a[j];a[j]=a[P];a[p]=t;})voiddoublernd()statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;return((double)r/m);voidgetarr(intn,int*x)inti;for(i=1;i<=n;i++,x++)*x=(int)(50*rnd());voidputarr(intn,int*z)inti;for(i=1;i<=n;i++,z++)(printf("%4d",*z);if(!(i%10))printf("

24");main()intaa[20],n;printf("

25Reaseenteranintegernumberbetween5and20:");scant("%d",&n);

26getarr(n,aa);printf("

27

28Beforesorting%dnumbers:

29",n);putarr(n,aa);sortpb(n,aa);printf("

30Aftersorting%dnumbers:

31",n);putarr(n,aa);}【改错1】【学生答案】inti,j,p;【参考答案】inti,j,p,t;【改错2】【学生答案】if(a[P]>a[j])P=i;【参考答案】if(a[p]>a[i])p=i;if(a[i]

321./*【程序填空】功能:计算矩阵a的下三角(包含主对角线)元素之积,矩阵的行、列数和元素值均由键盘输入。*/#defineM10#include"stdio.h"intmain()(inti,j,n,a[M][M];longs=1;scanf("%d”,&n);/***********R||***********/for()for(j=0;j

33S=;printf("%ld

34”,s);return0;)【空1】【学生答案】for()【参考答案】i=0;i=J(i+j)>(n-1)&&j(n-1)&&j

35s*a[i皿【程序填空】题目:本程序的功能是从10个数中找出其中的最大值,完善程序。#include"stdio.h"main()(inta[10],i,*pmax;for(i=0;i<10;i++)scanf("%d”,&a[i]);y***********p|11***********Ipmax=;for(i=1;i<10;i++)if(a[i]>*pmax)pmax=&a[i];y*4r*********p|||***********/printf("%d",);}【空1】【学生答案】pmax=;【参考答案】pmax=&a[0]pmax=a

36【空2】【学生答案】printf("%d",);【参考答案】*pmax【第二套】一、单项选择1.字符串"\\\'efg\'\\"的长度是:().A、3B、11C、7D、52.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。A、doubleB、不确定C、intD,float3.下列语句的结果是()。main(){intj;j=3;printf("%d,",++j);

37printf("%d",j++);)

38B、4,4C、3,4D、4,31.逻辑表达式!(2・1)&&x||0的值是()A、1B、0C、3D、22.inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为()。A、3B、2C、1D、不一定3.执行语句for(i=1;i++<4;);后变量i的值是()。A、3B、5C、4D、不定4.以下正确的描述是().A、只能用8ntinue语句来终止本次循环B、sw计ch语句中不能出现8ntinue语句C、在循环中break语句不能独立出现D、goto语句只能用于退出多层循环5.下面合法的语句定义是().A、chara[;8.inta[]=Mstring";C>inta[5]={0,1,2,3,4,5};D、chara="string',;

398.chara[10];不能将字符串"abc"存储在数组中的是()。A、inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;B、a="abc";C、strcpy(a,"abc");D、a[O]=O;strcat(a,"abc");9.在C语言中,・维数组的定义方式为:类型说明符数组名()«A、[整型常量]或[整型表达式]B、[正整型常量表达式]C、[整型表达式]D、【常量表达式]10.在定义全局变量和局部静态变量的同时赋值,变量的初始化在()时确定的.A、运行B、编辑C、编译D、调试11.关于建立函数的目的,以下正确的说法是(),A、提高程序的可读性B、减少程序文件所占内存C、减少程序的篇幅D、提高程序的执行效率12.以下函数调用语句中实参的个数是()。func((e1,e2),(e3,e4,e5));A、3B、5C、语法错误D、2

408.设有宏定义#(^万旭5116^,丫)(»*丫,且2=3力=4,则SUB(a++,b++)的值为().B、16C、20D、129.变量p为指针变量,^p=&a,下列写法不正确的是()。A、*(p++)==a++B、&*p==&aCn(*p)++==a++D、*&a==a10.下列程序正确的运行结果为().#includemain()(unionu{char*name;intage;intincome;)S;s.name="WANQ_lNG';s.age=28;5.1ncome=1000;printf(H%d

41M,s.age);}A、8B、28C、1000D、不确定

4217.定义myjile为文件型指针变量,使用fopen只读方式打开一个已存在的二进制文件,以下正确的调用形式为().A、my_file=fopen("my.dat","r");B、my_file=fopen("my.dat","rb+");C、myjile=fopen("my.dat","rb");D、my_file=fopen("my.dat","r+");GABBCBAABBCADDACC二、判断1.若i=3,则printf("%d",-i++);输出的值为42.格式字符%x用来以八进制形式输出整数.3.设u=1,v=2,w=3,则逻辑表达式u||v-w&&v+w的值为0.4.已知a=4,b=2,c=3,d=5,表达式a>b?a:c

43三、填空1.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为.2.在C语言中Jong类型数据占个字节,short类型数据占个字节.3.intx=2,y=3,z=4;则表达式x+y>z&&y==z的值为.4.intx=2,y=3,z=4;则表达式x+y&&(x=y)的值为.5.C语言中,二维数组在内存中的存放方式为按优先存放.6.函数调用时的实参和形参之间的数据是单向的传递.7.结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体,再说明结构体变量.8.调用fopen函数打开一文本文件,在“使用方式”这一项中,为输入而打开需填入.1或1.0或1.401行值类型r+或r四、程序设计1./*【程序设计】功能:求出二维数组外围元素之和,作为函数值返回。二维数组的值在主函数中赋予。-——*/#defineM4#defineN5#include"stdio.h"

44intfun(inta[M][N])****Begin*****「nd**********main()inta[M][N]={{1,3,5,7,9},{2}4,6,8,10},{2,3,4,5,6},{4,5,6,7,8});voidTestFunc();inty;y=fun(a);printf("s=%d

45”,y);TestFunc();voidTestFunc()FILE*IN,*OUT;intilN[M][N],iOUT;

46inti,j,k;IN=fopen("14.in","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("14.out","w");if(OUT==NULL){printf("ReaseVerifyTheCurrentDir..ItMayBeChanged");}for(k=0;k<10;k++){for(i=0;i

47",iOUT);}fclose(IN);fclose(OUT);}【参考代码】ints=0;inti,j;for(i=0;i

48for(j=1;j

49voidTestFunc()(FILE*IN,*OUT;ints;intt;into;IN=fopen("in.dat",T);if(IN==NULL)(printf("ReadFileError");}OUT=fopen(',out.dat,,;,w,');if(OUT==NULL)(printf(,'WriteFileError1,);}for(s=1;s<=5;s++)(fscanf(IN;'%dw,&t);o=fun(t);fprintf(OUT,H%d

50M,o);}fclose(IN);fclose(OUT);main()(

51intm;printfC1Enterm:");scanf(',%d,',&m);printf(M

52Theresultis%d

53",fun(m));TestFunc();)【参考代码】inti,k;for(i=n+1;;i++){for(k=2;k

54是回文数,个位与万位相同,十位与千位相同。*/#include"stdio.h"main()(/**********ERROR**********/longge,shi,qian;wan,x;scanf("%ld",&x);*********error**********/wan=x%10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;*ERROR*………/if(ge==wan||shi==qian)printf(nthisnumberisahuiwen

55H);elseprintf("thisnumberisnotahuiwen

56H);}【改错1】【学生答案】longge,shi,qian;wan,x;【参考答案】longge,shi,qian,wan,x;

57【改错2】【学生答案】wan=x%10000;【参考答案】wan=x/10000;【改错3】【学生答案】if(ge==wan||shi==qian)【参考答案】if(ge==wan&&shi==qian)if(shi==qian&&ge==wan)2.【程序改错】功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。n/4=1-1/3+1/5-1/7....

58#include"stdio.hH/**********ERROR**********/#include"math”voidfun()(floats=0,t=1,i=1;/**********ERROR*********1intp=1;I………*error*********,while(fabs(t)<=1e-4)s=s+t;p=-p;i=i+2;t=p/i;)/**********ERROR**********/printf("pi=%d

59",s*4);)main()(fun();)【改错1】【学生答案】#include"math"

60【参考答案】#include"math.h"#include【改错2】【学生答案】intp=1;【参考答案】floatp=1;floatp=1.0;doublep=1;double1.0;【改错3】【学生答案】while(fabs(t)<=1e-4)【参考答案】while(fabs(t)>1e-4)while(0.0001

61while(fabs(t)>0.0001)【改错4】【学生答案】printf(,'pi=%d

62,,,s*4);

63【参考答案】printf("p』%f

64”,s*4);printf(,'pi=%lf

65,',s*4);六、程序填空1./*-【程序填空】功能:计算并输出500以内最大的10个能被13或17整除的自然数之和。*/#include"stdio.h"y***********pq|।***********iintfun()(intm=0,mc=0,j,n;y***********p|।j***********/while(k>=2&&)(

66/***********FILL***********/

67m=m+k;mc++;}k-;}y***********p|।।***********I}main()(printf("%d

68",fun(500));)【空1】【学生答案】intfun()【参考答案】intk【空2】【学生答案】while(k>=2&&)

69【参考答案】me<1010>meme<=99>=me【空3】【学生答案】if(k%13==0||)【参考答案】k%17==0!(k%17)k/17*17==k【空4】【学生答案】【参考答案】returnmreturn(m)

701./*--【程序填空】功能:以下程序中,函数fun的功能是计算《2-2x+6,主函数中将调用fun函数计算:y1=(x+8『2-2(x+8)+6y2=(sin(x))A2-2sin(x)+6请填空。#———*/#include#includedoublefun(doublex)(return(x*x-2*x+6);}main(){PIII***********Idoublex,;printf(HEnterx:w);scanf("%lfH,&x);y***********pj।।***********/y1=fun();Iit**********p|11***********/y2=fun();printf("y1=%lf,y2=%lf

71",y1,y2);

72【空1】【学生答案】doublex,:【参考答案】yi,y2y2,yi【空2】【学生答案】y1=fun();【参考答案】(x+8)(8+x)x+88+x【空3】【学生答案】y2=fun();

73【参考答案】sin(x)【第三套】一、单项选择1.以下程序段char*alp[]={"ABC',nDEF',"GHr'):intj;puts(alp[1]);的输出结果是OoA、DB、AC、BD、DEF2.下列表达式中,可作为C合法表达式的是()oA、3.0%2B、3=2=1=0C>[3,2,1,0]D>(3,2,1,0)3.下面程序的正确输出结果是().(规定用U表示空格)main()(floatx=5.783,y=-10.2345;

74printfC'x=%-8.2f,y=%-8.2f

75H,x,y);}A、x=5.78UUUU,y=-10.23UUB、x=5.78,y=-10.23C、5.78,-10.23D、x=UUUU5.78,y=UU-10.231.当x为偶数或奇数时(0除外),其值都为0的表达式是:()A、(x/2*2-x)==0B^x%2==0C、!x!=0D、!(x%2)2.下列运算符优先级最低的是().A、=B、+C、!D、&&3.设有如下程序段:intk=10;while(k==O)k-;则下述说明中正确的是().A、循环体一次也不执行B、循环体执行一次C、死循环D、循环体执行10次

761.从循环体内某一层跳出,继续执行循环外的语句是()。A、continue语句B、空语句C、break语句D、return语句2.以下对一维整型数组a的正确说明是()oA.inta(10);B>intn;scanf("%d",&n);inta[n];C、intn=10,a[n];D、#defineSIZE10(换行)inta[SIZE];3.以下定义语句中,错误的是()»A、intn=5,a[n];C、chars[10]="test";D、char*a[3];4.下面叙述中不正确的是().A、可以对字符型数组进行整体输入和输出.B、不可以对浮点型数组进行整体输入和输出.C、可以对整型数组进行整体输入和输出.D、字符型数组可以存放字符串.5.函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的是().A、实参与形参是双向传递B、形参可以是表达式C、形参和实参可以同名D、实参类型一定要在调用时指定

771.以下错误的描述是:函数调用可以().A、出现在执行语句中B、做为一个函数的实参C、出现在一个表达式中D、做为一个函数的形参2.以下不正确的说法是:C语言规定(),A、实参可以是常量,变量或表达式B、实参可以为任何类型C、形参可以是常量,变量或表达式D、形参应与其对应的实参类型一致3.下列形式,不属于编译预处理命令的是().A、#ifdefMB、#undefMC、#if(M>1)D、while(M>1)4.下面判断正确的是()oA、charc[4]="abc”,d[4]="abc”;等价于charc[4]=d[4]=MabcM;B、charstr[1O]={"china"};等价于charstr[10];str[]={wchinaM};C、char*a="china”;等价于char*a;*a=,,china";D、char*s="china";等价于char*s;s=MchinaM;5.若有以下结构体定义:structexample{intx;inty;

78}v2;则()是正确的引用或定义.A、example.x=10;B、structv2;v2.x=10;C、examplev2;v2.x=10;D^structexamplev2={10,3};1.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为()。A、-1B、1C、一个非。值D、0DDACAACDACCDCDDDD二、判断1.如果有一个字符串,其中第十个字符为'\斤,则此字符串的有效字符为9个2.格式字符%。用来以十六进制形式输出整数3.已知a=3,b=4,c=5,则逻辑表达式!(a>b)&&!c||1的值为1.4.已知x=2,y=2,执行分支语句if(x==y)y=1;elsey=-1;后,y=-1.5.continue语句对于while和do-while循环来说,意味着转去计算:While表达式.6.在do-while循环中,根据情况可以省略while.7.对于字符数为n个的字符串,其占用的内存为n+1个字节空间.8.puts函数用来输出一个字符.9.引用数组元素时,下标可以是整型表达式或整型常量.10.函数调用结束后,静态局部变量所占用的空间被释放.11.在一个函数中定义的静态局部变量可以被另一个函数调用.12.当全局变量与局部变量同名时,在局部变量的作用域范围之内,全局变量起作用.

791.计算机编译系统对宏定义在编译时进行语法检查.2.若定义intarray[5],*p;则赋值语句p=array;是正确的.3.共同体变量所占的内存长度等于最长的成员的长度。4.C语言中,打开一个文件就意味着产生了一个文件.错错对错对错对错对错错错错对对错三、填空1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是.2.已知a=-13,b=6,a%b的十进制数值为.3.已知a=12,写出表达式05)?0:1;执行后整型变量a的值是.5.C语言中,数组名是一个不可变的常量,不能对它进行加减和赋值运算.6.C语言中一个函数由函数首部和两部分组成.7.设有以下共用体类型说明和变量定义,则变量c在内存所占字节数是.unionstud{shortintnum;charname[10];floatscore[5];doubleave;}c;8.在C语言中,关闭文件即是文件指针不再指向该.0-101指针或地址函数体20文件四、程序设计1./*【程序设计】功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。

80例如:n的值为855时,应输出704。--*/#include"stdio.h"intfun(intn){/*********gggjp**********IEnd…voidTestFunc()FILE*IN,*OUT;intilNJOUTJ;IN=fopen("in.dat”,T);if(IN==NULL)(printf("ReaseVerifyTheCurrerntDir..ItMayBeChanged");)OUT=fopen("out.dat","w");if(OUT==NULL)(printf("ReaseVerifyTheCurrentDir..ItMayBeChanged");)for(i=0;i<5;i++)(fscanf(IN,"%d”,&ilN);

81iOUT=fun(ilN);fprintf(OUT,H%d

82",iOUT);)fdose(IN);fclose(OUT);}main()(printf(ws=%d

83M,fun(855));TestFunc();【参考代码】ints=O,i;for(i=2;i

84intfun(inta[],intn){y*********访**********//**********End**********i}main()(voidTestFunc();inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;printfC'Theoriginaldata:

85H);for(i=0;i

86

87Thedataafterdeleted:

88M);for(i=0;i

89

90");TestFunc();}voidTestFunc()(FILE*INJOUT;inta[N];intn;inti;IN=fopen(,,in.datn,Hr,');if(IN==NULL){printf(HFteadFileError”);)

91OUT=fopen("out.dat”Jw”);if(OUT==NULL){printfC'WriteFileError");)fscanf(IN;'%d",&n);for(i=0;i

92#include"stdio.h"main(){intn,j;floats=0.0,t=1.0;for(n=1;n<=20;n++)★★★★ERROR*****for(j=1;j<=n;j++)/**********ERROR**********/t=t*n;/**********ERROR**********/s+t=s;}printf("jiecheng=%f

93",s);)【改错1】【学生答案】s=1;【参考答案】t=1;t=1.0;【改错2】【学生答案】t=t*n;【参考答案】t=t*j;

94t*=j;【改错3】【学生答案】s+t=s;【参考答案】S=S+t;s+=t;s=t+s;1./*-————————-【程序改错】功能:实现两个字符串的连接。例如:输入dfdfqe和12345时,则输出dfdfqel2345.#include"stdio.h"main()(chars1[80],s2[80];voidscat(chars1[],chars2[]);

95gets(s1);gets(s2);scat(s1,s2);puts(s1);}voidscat(chars1[],chars2[])(inti=0,j=0;/ERFOR**********/while(s1[i]=='\0')i++;/**********ERROR**********/while(s2[j]=='\0')(/*******************/s2[j]=s1[i];i++;j++;)/**********ERROR**********/s2[j]='\0';)【改错1】【学生答案】while(s1[i]=='\0')i++;【参考答案】while(s1[i]!='\0')i++;while(s1[i])i++;while(s1[i]!=NULL)i++;while(s1[i]!=0)i++;

96【改错2】【学生答案】while(s2[j]=='\0')【参考答案】while(s2[j]!='\0')while(s2[j])while(s2[j]!=NULL)while(s2[j]!=0)【改错3】【学生答案】s2[j]=s1[i];【参考答案】s1[i]=s2[j];【改错4】【学生答案】s2[j]='\0';【参考答案】s1[i]='\0';s1[i]=NULL;*(s1+i)='\0';s1[i]=0;

97六、程序填空1./*——【程序填空】功能:打印以下图形。-*/#include"stdio.h"main()(chara[5][9]={""};inti,j;for(i=0;i<5;i++)★★★★★★★★★★pqII***********/for(j=i;;j++)a[i][j]=**';/………**FlLL**……***/for(;i<5;i++)(for(j=0;j<9;j++)/***********FILL***********/printf("%c",);/FlLL*/

98【学生答案】for(j=i;;j++)【参考答案】jjj<=i+4i+4>jj<5+i【空2】【学生答案】for(;i<5;i++)【参考答案】i=0【空3】【学生答案】printf("%c",);

99【参考答案】【空4】【学生答案】【参考答案】printf("

100")【程序填空】功能:计算n门课程的平均分。例如:若有5门课程的成绩是:90.5,72,80,61.5,55则函数的值为:71.80o*/#includefloatfun(float*a,intn)

101inti;floatave=0.0;Iit**********p|11***********/for(i=0;;i++)ave=ave+a[i];ave=ave/n;/***********pi11***********i)intmain()(floatscore[30]={90.5,72,80,61.5,55},aver;/………**FILL*………*/aver=fun(,5);printf("

102Averagescoreis:%5.2f

103",aver);return0;}【空1】【学生答案】for(i=0;;i++)【参考答案】i

104【学生答案】)【参考答案】returnave;【空3】【学生答案】aver=fun(,5);【参考答案】score

105【第四套】一单选1sizeof(float)是().A、一个浮点表达式B、一个不合法的表达式C、运算结果是一个整型表达式。D、•种函数调用2下列数据中属于"字符串常量”的是()。A、AB,"ABC'C、ABCD>'ABC3用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法().(用“CRT表示回车,U表示空格)main(){inti,k;scanf("i=%d,k=%d",&i,&k);)A.i=10[CR]k=15[CR]B、i=10,k=15[CR]C、10U15[CR]D、10,15[CR]4逻辑表达式3<2||-1&&4>3-!0的值为:()A、1

106D、25下列运算符中是C语言关系运算符的是()。A、&B^~C、!=D、!6语句while(!E);中的表达式!E等价于O。A、E==1B、日=0C、E!=1D、E==07以下正确的描述是().A、只能在循环体内和switch语句内使用break语句B、8ntinue语句的作用是终止整个循环的执行C、从多层嵌套的外层循环中退出时,只能使用goto语句D、在循环体内使用break和continue语句的作用相同8下面各语句中,能正确进行赋字符串操作的语句是().A、chars1[5][]={"ABCDE'};B、chars2[6]={'A'),B','C,'D','E};C、charst[][]={"ABODE'};D、chars[5]={'A','B,'C,'D','E};9若有说明:inta[3][4]={0};则下面正确的叙述是O。A、数组a中每个元素均可得到初值0B、只有元素a[0][0]可得到初值0C、数组a中各元素都可得到初值,但其值不一定为0D、此说明语句不正确

10710若有说明inta[3][4];则a数组元素的非法引用是()。

108A、a[1][3]B、a[0][4]C、a[0][2*1]D、a[4-2][0]11执行下面程序后,输出结果是().main(){inta,b,c;a=45,b=27,c=0;c=max(a,b);printf("%d

109",c);)intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}A、72B、18C、27D、4512以下正确的描述是:在C语言程序中().A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数的调用均可以嵌套D、函数的定义和函数的调用均不可以嵌套13在C语言的函数中,下列正确的说法是().A、形参可以是常量和变量

110B、可以有也可以没有形参C、数组名不能作形参D、必须有形参14设有宏定义#definePI3.14WdefineS(r)PI*r*r,则S(2)的值为().A、6.28B、12.56C、3.14D、9.4215inta[10]={1,2,345,6,7,8};int*p;p=&a[5];p[-3]的值是()。A、4B、2C、不一定D、316若有以下程序段,则使用错误的选项是().structstudent(intnum;intage;);structstudentstu[3]={{1001,20},{1002,19},{1004,20}};main();(structstudent*p;p=stu;

111A、(*p).numB、(p++)->numC^p=&stu.ageD、p++C8BACDABABDBBBDC二判断1#define和printf都不是C语句。2格式字符%x用来以十六进制形式输出整数.3语句if(a>b)printf("%d",a);elseprintf("%d",b);可以用条件表达式a>b?a:b取代4逻辑表达式-5&&!8的值为1.5循环结构中的8ntinue语句是使整个循环终止执行6for循环语句不能用于循环次数未知的情况下.7引用数组元素时,数组元素下标必须是整型常量.8数组的首地址一定是第一个数组元素的地址.9数组整体不参加数据处理(即不参加各种运算),参加数据处理的只能是数组的元素.10数组名作为函数调用时的实参,实际上传递给形参的是数组全部元素的值.11在主函数中,必须要对被调用函数进行类型说明,否则在编译时会出现错误.12在一个函数中定义的静态局部变量不能被另外一个函数所调用.13计算机编译系统对宏定义在编译时进行语法检查.14指向某一变量的指针,就是该变量的内存地址.15对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。16在打开文件时,必须说明文件的使用方式Jr"表示以只读方式打开一个文件.对对错错错错错对对错错时错对对对

112三填空1intx=2;z=x++-1;则x的值为.2设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为.3设x=62,表达式x>=60&&x<70||x==1的值为.4c语言表达式5>2>7>8的值是.5字符串比较的库函数是只写函数名即可.6从函数的形式上看,函数分为无参函数和两种类型.7设有以下共用体类型说明和变量定义,在TC编译环境下,变量a在内存所占字节数是unionstud{charnum[6];floats[4];doubleave;}a,*p;8在C语言中,根据要处理的文件存储的编码形式,可以把文件分为ASCII文件和文件.52.510strcmp有参函数16二进制四程序设计1/*【程序设计】功能:用函数求N个[10,60]上的整数中能被5整除的最大的数,如存在则返回这个最大值,如果不存在则返回0。*/#include"stdio.h"#include"stdlib.h"#defineN30intfind(intarr[],intn)

113intm=0;*****p*********/W******^retum(m);}main()(inta[N],i,k;voidTestFunc();for(i=0;i

114M);}k=find(a,N);if(k==O)printf("NOFOUND

115M);elseprintf(Mthemaxis:%d

116M,k);

117TestFunc();}voidTestFunc()(FILE*IN,*OUT;intn;inti[5];into;IN=fopen(”in.dat”,T);if(IN==NULL)(printf(”ReadFileError");}OUT=fopen(”out.dat“Jw”);if(OUT==NULL)(printfC'WriteFileError");)for(n=0;n<5;n++)(fscanf(IN,"%d",&i[n]);)o=find(i,5);fprintf(OUT,"%d

118",o);fclose(IN);fclose(OUT);

119}【参考代码】inti;for(i=0;im)m=arr[i];2/*——•————【程序设计】功能:根据整型参数n,计算如图公式的值。#include"stdio.h"#includeHconio.hndoublefun(intn)(/*********Begin*

120y**********End**********/}main()(intm;voidTestFunc();printf(nEnterm:");scanf("%cT,&m);printf(M

121Theresultis%f

122M,fun(m));TestFunc();}voidTestFunc()(FILE*IN,*OUT;ints;intt;doubleo;IN=fopen(,,in.dat",,,r");

123if(IN==NULL)printf(MFteadFileError");}OUT=fopen(',out.dat,,,,,wH);if(OUT==NULL)(printf("WriteFileError1');)for(s=1;s<=5;s++)(fscanf(IN;'%d,,,&t);o=fun⑴;fprintf(OUT;'%f

124",o);}fclose(IN);fclose(OUT);【参考代码】doublea=1;inti;for(i=1;i

125五程序改错1/*--【程序改错】功能:实现3行3列矩阵的转置,即行列互换。#include"stdio.h"voidfun(inta[3][3],intn)(intfor(i=0;i

126M);}for(i=0;i

127a[i][j]=t;a[i][j]=a[j][i];/**********ERROR**********/t=a[j][i];}for(i=0;i

128");)main()intb[3][3];fun(b,3);【改错1】【参考答案】scanf("%d",(*(a+i)+j));

129【改错2】【参考答案】for(j=0;jj;j++)for(j=0;j<=i;j++)for(j=0;i>=j;j++)for(j=i+1;j=j;j++)for(j=i+1;j<=n-1;j++)for(j=i;j<=n-i;j++)【改错3】【参考答案】【改错4】【参考答案】a[j][i]=t;

13021*【程序改错】功能:从键盘输入10个字符,统计其中数字字符的个数。*/#includeintmain()(inti,sum=0;charc;for(i=11;i>=2;i-){/**********ERROR**********/c=gets();if(c<'O'||c>'9')ERROR*****break;++sum;}printf(Msum=%dM,sum);return0;

131【改错1】【参考答案】c=getchar();【改错2】【参考答案】continue;六程序填空1/*---【程序填空】功能:从键盘上输入2名学生4门课成绩,求每个学生的平均成绩,并统计不及格门次。#*/#include#include"math.hHintmain()(inti,j,n=O;floatx,sum,avg;for(i=1;i<=2;i++)(FILL*………*/

132for(j=1;j<=4;j++)(scanf(M%fM,&x);if(x<60)n++;;***********pi11****)avg=sum/4.0;printf("

133avgofNO.%dis%5.2f",i,avg);)printf("

134%d",n);

135return0;【空1】【参考答案】sum=0【空2】【参考答案】sum=sum+xsum+=x【程序填空】

136功能:设数组a中的兀素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。-*/#includeintmain(){inta[10]={1,2,3,4,5,6,7,8,9,10);intk,s,i;floatave;for(k=s=i=0;i<10;i++)(^★**********pi11***********/if(a[i]%2!=0);y***********pi**********/s+=;k++;)if(k!=O){ave=s/k;printf(H%d,%f

137M,k,ave);)return0;

138【空1】【参考答案】continue【空2】【参考答案】a[i]【第四套】一单项选择

1391先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是()oA、0='97'B、c=*a';C、c=“97”;D、c="aH;2已定义ch为字符型变量,以下赋值语句中错误的是()oA、ch='\';B、ch=*a';C、ch='\xaa';D、ch=62+3;3已定义两个字符数组a,b,则以下正确的输入格式是()0A、scanf("%s%s",&a,&b);B、scanf("%s%s",a,b);C、get(a,b);D、gets(waM),gets(wbw);4以下不正确的if语句形式是()oA、if(xy&&x!=y);D、if(x==y)x+=y;5执行下面程序段后,ch的值是().charch='a*;ch=(ch>='a'&&chv=*/)?(ch-32):ch;A、aB、AC、z

140D、Z6语句while(!E);中的表达式!E等价于().A、E==1B、日=0C、E!=1D、E==07针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是().A、break语句可以一次性跳出多层嵌套循环B、break语句只能跳出最内层循环C、sntinue语句可以一次性跳出多层嵌套循环D、continue语句可以跳出最内层循环8程序main(){chars[10];s="abcd”;printf("%s

141",s);}的运行结果(以下U代表空格)是().A、输出abedB、输出abcdUUUUUC、编译不通过D、输出a9若chara[10];已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是()«A.for(i=0;i<10;i++)a[i]=getchar();B、scanf("%s",a);C、gets(a);D、a=getchar();10C语言中函数调用的方式有()。A、函数只可以作为语句调用。B、函数只可以作为函数表达式调用C、函数调用只可以作为语句或函数表达式调用。

142D、函数调用可以作为语句调用,uj■以作为函数表达式调用,也可以作为函数参数调用。11函数的形式参数系统默认存储类型说明是。A、staticB、externC、registerD,auto12设有宏定义#(^3308(5)凶*丫,且2=3上=4,则SUB(a++,b++)的值为().A、13B、16C、20D,1213以下程序段执行后输出的结果是().charstr[]="ABCD",*p=str;printf("%d

143",*(p+4));A、字符D'的地址B,0C、不确定的值D、6814使用共用体变量,不可以()oA、同时访问所有成员B、进行动态管理C、节省存储空间D、简化程序设计15若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是()。A,"rb+"B、"ab++”

144C,"ab"D,"wb+BABBBDBCDDDDBAD二判断1•个C程序只能由一个主函数组成。2在C程序中,逗号运算符的优先级最低。3c语言printf函数的格式控制串中可以设置需要的普通字符,输出时会原样输出。4双精度型数据输入应该选用If格式。5若floatx=2.0,y=1.0;,则条件表达式x>y?1:1.5的值为1.6逻辑表达式4>2&&1||5V3-10的值为为7逻辑表达式-5&&!8的值为1.8在do-while循环中,任何情况下都不能省略while.9break语句不能终止正在进行的多层循环.10在do-while循环中,根据情况可以省略while.11若有语句:chara[]="string";则a[6]的值为*\0';12二维数组在内存中存贮时,是按行的顺序进行存储的。13给数组赋初值时,初值的个数•定不小于所定义的元素的个数.14当全局变量与局部变量同名时,在局部变量的作用域范围之内,全局变量起作用.15当函数的类型与return语句后表达式的值的类型不一致时,函数返回值的类型由return语句后表达式值的类型决定.16在C语言中,主函数可以调用其它函数,同时,其它函数也可以调用主函数.17宏定义不是C语句,不必在行末加分号.18若定义intarray[5],*p;则赋值语句p=&array;是正确的.19在定义结构体变量时不允许对它赋初值.20c语言中,在打开文件时,必须说明文件的使用方式,"w”用于文件的读写.错对对对错对错对对错对对错错错错对错错错三填空

1451已知x=3,y=2,则表达式x*=y+8的值为.2C语言中的字符变量用保留字来说明.3intx=2,y=3,z=4;则表达式x+y&&z的值为.4表达式3&&0的值是.5设i,j,k均为int型变量,则执行完下面的for循环后,k的值为.for(i=0,j=10;i<=j;i++,j-)k=i+j;6若有以下数组a,数组元素:a[0卜a[9],其值为941282107513,该数组的元素中,数值最大的元素的下标值是.7执行以下程序段后,S的值是.inta[]={5,3,7,2,1,5,3,10},s=0,k;for(k=0;k<8;k+=2)s+=*(a+k);8函数调用时的实参和形参之间的数据是单向的传递.30char1010216值四程序设计1/*-——【程序设计】功能:将字符串中的小写字母转换为对应的大写字母,其它字符不变。#include"string.h"#include"stdio.h"

146voidchange(charstr[])(/…*…**Begin***Iit*********Efid**********/}main()(voidchange();charstr[40];voidTestFunc();gets(str);change(str);puts(str);TestFunc();}voidTestFunc()FILE*IN,*OUT;chari[200];IN=fopen("in.dat”,“r”);if(IN==NULL)(

147printf(,'FteadFileError”);)OUT=fopen(',out.dat,,,,,wH);if(OUT==NULL)(printfC'WriteFileError");)fscanf(IN,w%sH,i);change(i);fprintf(OUT,',%s

148,,,i);fclose(IN);fclose(OUT);【参考代码】inti;for(i=0;str[i]!='\0*;k+)if(str[i]>=,a,&&str[i]<=,z,)str[i]=str[i]-32;2/*--【程序设计】y=sin(m)*10o功能:根据整型形参m,计算如下公式的值:例如:若m=9,则应输出:4.121185

149#include"stdio.h',#includeMmath.hMdoublefun(intm)(/*********Begin*/**********End………*/}main()intn;voidTestFunc();printf(HBitern:");scanfC'%d",&n);printf(H

150Theresultis%1f

151M,fun(n));TestFunc();)voidTestFunc()(FILE*IN,*OUT;inti;intt;doubleo;IN=fopen("in.dat",T);

152if(IN==NULL)(printf("ReadFileError");}OUT=fopen(',out.dat,',nw");if(OUT==NULL)(printfC'WriteFileError”);)for(i=0;i<5;i++)(fscanf(IN,M%dM,&t);o=fun(t);fprintf(OUT,"%lf

153",o);)fclose(IN);fclose(OUT);【参考代码】doubley=0;y=sin(m)*10;return(y);

154五程序改错【程序改错】功能:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。#include"stdio.h"main(){/**********ERROR**********/longa,b,c,d,e,x,scanf("%ldM,&x);a=x/10000;/**********ERROR**********/b=x/10000/1000;c=x%1000/100;d=x%100/10;e=x%10;y**********FRRQR**********/if(a==0)printf(Mthereare5,%ld%ld%ld%ld%ld

155',,e,d,c,b,a);elseif(b!=0)printf(Mthereare4,%ld%ld%ld%ld

156M,e,d,c,b);elseif(c!=0)printf(Mthereare3,%ld%ld%ld

157H,e,d,c);elseif(d!=0)

158printf(nthereare2,%ld%ld

159M,e,d);elseif(e!=0)printf(Mthereare1,%ld

160H,e);}【改错1】【参考答案】longa,b,c,d,e,x;【改错2】【参考答案】b=x%10000/1000;【改错3】【参考答案】if(a!=0)2/*【程序改错】

161功能:读取7个整数(其值范围是1-50),每读取一个值,程序打印出该值个数的*。

162#5-clude-std-o-h--maino一、:::::ERROFr*wh=e(nA7){doscanf(一Uga);

163、**********ERROR**********一wh=e(aA1QOQOav50);、*******************一3「?0—.八“以-++)prmtfi-);prmuzw);n++;n【除龈明海】wh=e(r!AH7)

164【改错2】【参考答案】while(a<1||a>50);【改错3】【参考答案】for(i=1;i<=a;i++)for(i=0;i

165++!:u>!:o=!【雷曷余毒】【⑻:0ujn)aj:S“u\p[%“)jn!」d!*s=s/**¥*¥*¥*¥**IIW***********/(++f!u>f!)JO)/♦♦♦♦♦♦♦♦♦♦*11Izd**********♦/(++!:u>!:o=!)」oj()」0J/************T1Izl***********/(++!:u>!:o=!)」oj:(u『“p%Jueos:L=s6uo|:仇]叭BuT!iui}Oureuiiui..M,oipis,,spnpui#

1668|/\|suijep#【空2】【参考答案】j=i【空3】【参考答案】a[i][j]21*-【程序填空】功能:求矩阵numM*N中正数、负数和。的个数。#include#defineM20#defineN15intmain()

167P|||Or****m=n=;for(i=0;ivM;i++)for(j=0;j0)m++;/………**FILL*………*/(num[i][j]<0)n++;elsez++;printf(Hm=%d,n=%d,z=%d

168H,m,n,z);return0;【空1】【参考答案】z=0【空2】【参考答案】elseif

169【第五套】--单项选择1下述正确的C语言常量是:().A、E2B、5.0EC、3g-3D、1.5E2.52以下标识符中,不能作为合法的C用户定义标识符的是()oA、INTB、_123C、_doubleD>float3putchar函数可以向终端输出一个()。A、字符或字符型变量值B、字符串

170C、整型变量表达式值D、实型变量值3inta=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为()。A、1B、3C、2D、不一定5若x=2,y=3则x||y的结果是()。A、3B、0C、1D、26从键盘输入的整数中找出最小值min,输入0时结束.请在A处填写正确语句()。#include"stdio.h”main(){intmin=0,a;do{scanf("%d",&a);if(min>a)min=a;}while(A__);printf("%d”,min);)A、a=0B、a==0C>a>0&&a<0D、a!=07以下描述中正确的是()o由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

171B、do-while循环中,根据情况可以省略whileC、在do-while循环体中,必须有能使循环退出的操作。D、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号8若有说明:inta[][4]={0,0};则下面不正确的叙述是O。A、有元素a[0][0]和可得到初值0,其余元素均得不到初值0B、数组a的每个元素都可得到初值0C、二维数组a的第一维大小为1D、因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为19以下定义语句中,错误的是().A、intn=5,a[n];B、inta[]={1,2};C、chars[10]="test";D、chara[3]={,1','2,,'3'};10以下正确的函数声明是()oA、doublefun(intx,inty);B^doublefun(intx,y);C、doublefun(intx;inty)D、doublefun(intx,inty)11以下叙述不正确的是().A、全局变量可以由系统自动初始化B、在程序运行期间,全局变量所占存储单元的值永久保留C、当局部变量弓全局变量重名时,全局变量起作用D、全局变量存放在静态存储区12在"文件包含"的预处理中,被包含的文件应是().A、文本文件B、可执行文件C、目标文件

172D、二进制文件13若有以下定义和语句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;不能表示a数组元素的表达式是()oA、*pB、a[10]C、*p++D、a[p-a]14定义结构体的关键字是()。A、structB、typedefC、enumD,union15下列关于C语言数据文件的叙述中正确的是().A、文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件B、文件由ASCII码字符序列组成,C语言只能读写文本文件C、文件由二进制数据序列组成,C语言只能读写二进制文件D、文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件CDA8DAAAACABAA二判断1一个C程序的执行是从本程序文件的第一个函数开始,到本程序main函数结束。2若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变3当数值型和字符型数据混合输入时,数值和字符数据之间不需要空格。4C语言printf函数的格式控制串中可以设置需要的普通字符,输出时会原样输出。5语句if(a>b)printf("%d",a);elseprintf("%d",b);可以用语句printf("%d",a>b?a:b);®代.6运算符的级别由高向低依次为!,算术运算符,关系运算符,逻辑运算符,赋值运算符.

1737C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式.8continue语句对于while和do-while循环来说,意味着转去计算While表达式.9do-while的循环体不能是复合语句.10for循环的三个表达式中间用分号相分隔,并且不能省略.11对于字符数为n个的字符串,其占用的内存为n+1个字节空间.12对任何一个二维数组的元素,都可以用数组名和两个下标唯一地加以确定.13定义一维数组的形式为:类型说明数组名[表达式],其中表达式可以是正整型常量表达式、字符常量表达式.14没有初始化的整型静态局部变量的初值系统均默认为0.15某些情况下,在主函数中可以缺省对被调用函数的说明.16c语言所有函数都是外部函数.17文件包含可以嵌套。18定义02口={1,2,3,4},丫>=&3[1];,则执行丫=(*-⑼++后,丫的值是2.19共用体变量使用过程中,可在同一内存段中存放几种不同类型的成员.20c语言中,在打开文件时,必须说明文件的使用方式,"w+”用于打开一个二进制文件.错对对对对对错对错对对对对对对错对错对错三填空1在微机中,字符的比较就是对它们的进行比较。2若charw,intx,floaty,doublez;则表达式w*x+z-y的结果为类型.3已知a=10,b=15,c=1,d=2,e=0,则表达式a+b>10||a+bv0的值为.4intx=2,y=3,z=4;则表达式x||y+z的值为.5以下do-while语句中循环体的执行次数是.a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);6若有定义:chars[]="china";则C编译系统为数组s开辟个字节的内存单元.

1747若有数组定义:inta[10];该数组中下标最小的元素名字是.8局部静态变量是在静态存储区分配存储单元的,在整个程序运行期间始终占的.ASCII或ASCII码或ASCII码值双精度或double1136a[0]内存四程序设计1/*---【程序设计】功能:不用递归方式,编写函数fun,求任一整数m的n次方。*/#include"stdio.h"main()(intm,n;longs;longfun(intjnt);voidTestFunc();printf("输入m和n的值:");scanf("%d%d",&m,&n);s=fun(m,n);printf(,,s=%ld

175,,,s);TestFunc();)

176longfun(intm,intn){y*********B©gin**********//**********End******}voidTestFunc()(FILE*IN,*OUT;intn;inti[2];longo;IN=fopen("in.dat",T);if(IN==NULL)(printf("ReadHieError11);}OUT=fopen(',out.dat",',wH);if(OUT==NULL)printfC'WriteFileError1');)for(n=0;n<2;n++)(

177fscant(IN,n%dM,&i[n]);)o=fun(i[0],i[1]);fprintf(OUT,M%ld

178M,o);fclose(IN);fclose(OUT);}【参考代码】longintx=1;inti;for(i=1;i<=n;i++)x=x*m;returnx;

179【程序设计】功能:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。*/#include"stdio.h"voidswap(int*a,int*b)(y*********BcQin**********j*********End**********/}main()(intx,y,z;voidTestFunc();scanf(''%d%d%d,,,&x,&y,&z);if(x

180if(x

181",i[0]);fprintf(0UT,"%d

182",i[1]);

183)fclose(IN);fclose(OUT);【参考代码】intk;k=*a;*a=*b;*b=k;五程序改错1/*---【程序改错】功能:在fun函数中求出以下分数序列的前n项之和。和值通过函数值返回到main函数。2/1+3/2+5/3+8/5+13/8+21/13.….例如:若n=5,则应输出:8.391667。

184#include"conio.hH#includeHstdio.h"/**********ERROR**********/fun(intn)(inta,b,c,k;doubles;s=0.0;a=2;b=1;for(k=1;k<=n;k++)(ERROR*………/s=(double)a/b;c=a;a=a+b;b=c;)/**********ERROR**********/returnc;}main()intn=5;printf("

185Thevalueoffunctionis:%lf

186",fun(n));【改错1】

187【参考答案】doublefun(intn)【改错2】【参考答案】s=s+(double)a/b;s+=(double)a/b;【改错3】【参考答案】returns;21*【程序改错】题目:输出两个变量中的较大的值。注意:不可以增加或删除程序行,也不可以更改程序的结构。---*/#include"stdio.h"

188/**********ERROR**********/intmax(x,y)(intz;z=x>y?x:y;returnz;}main()(inta,b,c;/………yROFP………/scanf(H%d%dH,a,b);c=max(a,b);printf("c=%d

189”,c);【改错1】【参考答案】intmax(intx,inty)【改错2】【参考答案】scanf("%d%d",&a,&b);

190六程序填空1/*-【程序填空】功能:以下程序的功能如(图1)。#include"stdio.h"/………**日1r……*…/doublef()(/h★★★★★★★★★★H11***********IIh**********p|||***********/if()y=2.0*x*x+3.0*x+4.0;elsey=-2.0*x*x+3.0*x-4.0;/***********FlLL***********/main()(printf(',%f

191M,f(f(-1.0)+f(5.0)));【空1】【参考答案】floatxdoublex

192【空2】【参考答案】doubley【空3】【参考答案】x<=2【空4】【参考答案】returny2/*—【程序填空】题目:本程序用scanf函数输入字符串"student”,然后输出该字符串,完善程序。

193-*/#include"stdio.h"main()(inti;chars1[10];for(i=0;i<7;i++)/***********pi11***********/scanf(n%cM,);s1[7]=,\01;printf(H",s1);【空1】【参考答案】【空2】【参考答案】%s【第六套】一单项选择1下列字符序列中,是C语言关键字的是()O

194A、sqrtB、scantC、sizeofD^include2下面不正确的字符串常量是:().A、B.'abc'C、“0"D、3若有以下程序:main()(intk=2,i=2,m;m=(k+=i*=k);执行后的输出结果是()。A、8,3B、7,4C、8,6D、6,44假定有以下变量定义:intk=7,x=12;则能使值为3的表达式是:()A、(x%=k)-(k%=5)B、x%=(k-k%5)C、x%=k-k%5D、x%=(k%=5)5在C语言中,if语句后的一对园括号中,用以决定分支的流程的表达式()o

195A、只能用逻辑表达式或关系表达式B、只能用关系表达式C、可用任意表达式D、只能用逻辑表达式6对for(表达式1;;表达式3)可理解为().A、for(表达式1;表达式1;表达式3)B、for(表达式1;0;表达式3)C、for(表达式1;表达式3;表达式3)D、for(表达式1;1;表达式3)7针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是().A、三个表达式和中间分隔分号均可省略B、三个表达式和中间分隔分号均不能省略C、三个表达式可省略,但中间分隔分号不能省略D、三个表达式不能省略,但中间分隔分号可省略8以下不能正确定义二维数组的选项是()。A,inta[2][]={{1,2},{314}};B.inta[2][2]={{1},2,3};C.inta[2][2]={{1},{2});D.inta[][2]={1,2,3.4);9以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。A、charstr[]={,a',"b'<'c')"d','e','f','g');B、chars[10]="abcdefg";C、chars[10];s="abcdefg";D、chars[10];strcpy(s,"abcdefg");10以下对C语言函数的描述中,正确的是()。A、C函数既可以嵌套定义又可以递归调用B、C程序必须由一个或一个以上的函数组成C、函数必须有返I可值,否则不能使用函数D、C程序中有调用关系的所有函数必须放在同一个程序文件中

19611以下不正确的说法是:C语言规定()OA、实参可以是常量,变量或表达式B、实参可以为任何类型C、形参可以是常量,变量或表达式D、形参应与其时应的实参类型一致12在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是().A、用尖括号时,直接按系统标准方式检索文件目录.B、用双引号时,直接按系统标准方式检索文件目录.C、用双括号和尖括号时,都不检查源文件所在的文件目录.D、以上说法都不对.13下面所列的语句行中,能正确进行赋字符串操作的语句行是().A、charst[4][5]={"ABCDE'};B、chars[5]={'A','B','C,,D','E'};C、char*s;scanf("%c",s);D、char*s;s="ABODE,;14当定义一个结构体变量时,系统分配给它的内存是()oA、成员中占内存量最大者所需的容量B、结构中第一个成员所需内存量C、各成员所需内存量的总和D、结构中最后一个成员所需内存量15在C语言中,对文件的存取是以()为单位.A、文件B、模块C、程序D、字节CBDACDCACBCADCD二判断

1971一个C程序的执行是从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。2在C程序中,APH和aph是两个不同的变量3双精度型数据输入应该选用If格式。4C语言printf函数的格式控制串中可以设置需要的普通字符,输出时会原样输出。5设x=1,y=2,z=3,则逻辑表达式x-y>z&&y!=z的值为0.6条件表达式x?a':'b'中,若x=0时,表达式的值为‘a'.7已知x=3,y=1,执行分支语句if(x>y){t=x;x=y;y=t;}elseprintf("error!");后,结果为error!.8for语句的循环体至少执行一次.9在do-while循环中,当while表达式为"假"时,循环就停止了.10while和do...while循环不论什么条件下它们的结果都是相同的.11若有语句:句araU="string";则a[6]的值为'O';12数组整体不参加数据处理(即不参加各种运算),参加数据处理的只能是数组的元素.13定义一维数组的形式为:类型说明数组名[表达式],其中表达式可以是正整型常量表达式、字符常量表达式.14在一个函数中定义的静态局部变量不能被另外一个函数所调用.15没有初始化的整型静态局部变量的初值系统均默认为0.16数组名可以作为函数的实参和形参.17宏定义不是C语句,不必在行末加分号.18若p为指向int型的指针变量,a为int型数组名,则p-a是正确的表达式.19共用体变量在引用时不能只用共用体变量名,必须使用某个成员名.20C语言把文件看作是一个字符(字节)的序列.错对对对对错错错对错对对对对对对对对对对三填空1inta=1,b=2,c=3;执行语句a=b=c;后a的值是.2在微机中,字符的比较就是对它们的进行比较。3若intx=6;则x+=x-=x*x表达式最后x的值是.4已知a=13,b=6,a||b的十进制数值为.

1985设i,j,k均为int型变量,则执行完下面的for循环后,k的值为.for(i=0,j=10;i<=j;i++,j-)k=i+j;6若有数组定义:inta[10];该数组中下标最小的元素名字是.7执行语句charstr[81]="abcdef";后,字符串str结束标志存储在str[]中.8从函数的形式上看,函数分为无参函数和两种类型.3ASCII或ASCII码或ASCII码值-60110a[0]6有参函数四程序设计1/*【程序设计】功能:编写函数fun计算下列分段函数的值:xA2+X+6x<0且XA3f(x)=xA2-5x+6OSxvlO且x:#2及x*3xA2-x-1其它#include"stdio.h"floatfun(floatx)(/*********Begin*

199[nd**********voidTestFunc()FILE*IN,*OUT;intn;floati;floato;IN=fopen("in.dat",T);if(IN==NULL)(printf("FteadFileError");)OJr=fopen("out.dat","w");if(OUT==NULL)(printf("WriteFileError");)for(n=0;n<10;n++)(fscanf(IN,"%f",&i);o=fun(i);fprintf(OUT,"%f

200",o);}fclose(IN);fclose(OUT);)main()

201floatx,f;printf("lnputx=");scanf(,,%f,&x);f=fun(x);printf(Mx=%f,f(x)=%f

202M,x,f);TestFunc();}【参考代码】floaty;if(x<0&&x!=-3.0)y=x*x+x+6;elseif(x>=0&&x<10.0&&x!=2.0&&x!=3.0)y=x*x-5*x+6;elsey=x*x-x-1;returny;2/*-【程序设计】功能:编写函数求1〜50(包括50)中奇数的平方和。结果为20825.000000。-*/#include"stdio.h"floatsum(intn)

203…*Begin…**Iit*********Efid**********/}voidTestFunc()(FILE*IN,*OUT;inti;floato;IN=fopen("in.dat”,T);if(IN==NULL)(printf(,'FteadFileError'1);)OUT=fopen(,,out.dat,,,,,wH);if(OUT==NULL)printfC'WriteFileError");)fscanf(IN,H%d",&i);o=sum(i);fprintf(OUT,',%f

204,,,o);fdose(IN);fclose(OUT);

205}main()(printf("sum=%f

206H,sum(50));TestFunc();【参考代码】floats=0;inti;for(i=1;i<=n;i=i+2)s=s+i*i;return(s);五程序改错1/*【程序改错】题目:从键盘输入35,判断这个数是否能被3和5整除。注意:不可以增加或删除程序行,也不可以更改程序的结构。*/#include"stdio.h"main()(

207intn,flag;scanf("%d",&n);flag=0;/**********ERROR**********/if(n/3!=0)flag=-1;if(n%5!=0)flag=-1;/………*ERROR**…*…*/if(flag!=O)printf("能被3,5整除)elseprintf("不能被3,5整除)}【改错1】【参考答案】if(n%3!=0)flag=-1;【改错2】【参考答案】if(flag==O)printf("能被3,5整除");21*---【程序改错】功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数

208返回二分之一的圆面积。例如:输入圆的半径值:19.527输出为:s=598.9500170#include"stdio.h"#include"conio.h"/**********ERROR**********/floatfun(r)floats;*********ERROR**********/s=1/2*3.14159*r*r;*********ERROR**********/returnr;}main()(floatx;printf("Enterx:");scant("%f",&x);printf("s=%f

209",fun(x));)【改错1】【参考答案】floatfun(floatr)

210【改错2】【参考答案】s=1.0/2*3.14159*r*r;s=1/2.0*3.14159*r*r;s=0.5*3.14159*r*r;【改错3】【参考答案】returns;return(s);六程序填空1/*————【程序填空】功能:计算平均成绩并统计90分以上的人数,输入的成绩为负时程序结束。-*1#include"stdio.h"main()(intn,m;floatgrade,average;/***********p|11***********/average=n=m=;

211while(1)scanf(H%f,,&grade);〃fill………**/if()break;n++;average+=grade;〃………*FILL………**/if(grade<90);m++;}if(n)printf(',%f

212%d

213,,,average/n,m);)【空1】【参考答案】00.0【空2】【参考答案】grade<00>grade【空3】【参考答案】

214continue2/*-【程序填空】题目:以下函数求2*3矩阵中的最小元素值。*/#include"stdio.h',minvalue(array)intarray[][3];(inti,j,min;min=array[0][0];for(i=0;i<2;i++)for(j=0;j<3;j++)…FILL*if()***pi11*******returnmin;}main()

215(inta[2][3]={1,3,4,5,8,9},s;s=minvalue(a);printf("s=%d",s);)【空1】【参考答案】min>array[i][j]array[i][j]

216C、switchtypedefcontinueD、signedunionscant2下面四个选项中,均是不合法的用户标识符的选项是()ofloatlaO_AB、AP_0doC、_123tempintD、b-agotoint3下列程序的输出结果是()omain(){charc1=97,c2=98;printf("%d%c',,c1,c2);}A、abB、9798C、97bD、a984经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。intx=1,y=2,z=3;A、3B、2C、5D、65在以下组运算符中,优先级最高的运算符是:()A、=B、&&C、<=D、%6以下能计算1x2x3xr10的程序段是().

217A、do{i=1;s=1;s=s*i;i++;}while(i>=10);B、do{i=1;s=1;s=s*i;i++;}while(i<=10);C、i=1;s=1;do{s=s*i;i++;}while(i<=10);D>i=1;s=1;do{s=s*i;i++;}while(i>=10);7若i为整型变量,则以下循环执行次数是()ofor(i=2;i==0;)printf("%d”,i・・);A、0次B、2次C、无限次D、1次8以下程序的运行结果是().main(){inti,x网网={123,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d;',x[i][2-i]);}A、1,5,9,B^3,5,7,C、3,6,9,D、1,4,7,9下列能正确实现参数传递的数组定义是()-A、intarray口口;Bsintarray[][4];C.intarray[3][];D,intarray[][][5];10凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()OA、外部(extern)B、静态(static)C、寄存器(register)

218D、自动(auto)11以下函数返回值的类型是()。intfff(floatx)(x=x+5;returnx;)A、void类型B、与参数x的类型相同C、int类型D、无法确定12下列形式,不属于编译预处理命令的是().A、#ifdefMB、#undefMC、#if(M>1)D、while(M>1)13有定义:chara[10],*p1=a,*p2;则下列表达式中正确的是()。A、p1*=p2p1=&p2C、p1+=5D、p1/=514对结构体类型的变量的成员的访问,无论成员是何种数据类型都可使用的运算符是()。A、&B、.C、*D、->

21915若执行fopen函数时发生错误,则函数的返回值是()oA、EOFB、1C、地址值D、0CDCDDCABBDCDCBD二判断1C语言本身没有输入输出语句。2整型变量在可输出字符范围内,可以和字符型数据相互转化.3双精度型数据输入应该选用If格式。4当数值型和字符型数据混合输入时,数值和字符数据之间不需要空格。5设g=1,h=2,k=3,则逻辑表达式k+g||!h&&k-h的值为06已知a=4,b=2,c=3,d=5,表达式a>b?a:c

22018下列的语句是正确的吗?char*p,c1;p=&c1;*p=getchar();19共用体变量在引用时不能只用共用体变量名,必须使用某个成员名.20C语言中,fprintf是一个向文件写数据(输出)函数。对对对对错对对错错错错对对对对错对对对对三填空1inta=1,b=2,c=3;执行语句a=b=c;后a的值是.2在C语言中的实型变量分为两种类型,它们是float型和型.3设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为.4写出表达式1.234&&5.982的值是.5设i,j,k均为int型变量,则执行完下面的for循环后,k的值为.for(i=0,j=10;i<=j;i++,j-)k=i+j;6执行以下程序段后,s的值是.inta[]={5,3,7,2,1,5,3,10},s=0,k;for(k=0;k<8;k+=2)s+=*(a+k);7若有以下数组a,数组元素:a(0卜a[9],其值为941282107513,该数组的元素中,数值最大的元素的下标值是.8在调用•个函数的过程中,直接或间接地调用该函数本身,称为函数的调用。3double或双精度1110162递归四程序设计

2211/*-……—-【程序设计】功能:根据整型形参m,计算如下公式的值:y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)例如:若m=9,则应输出:1.168229--*/#include"stdio.h"doublefun(intm)…*Begin*Endmain()(intn;voidTestFunc();printfCBitern:");scanf(,'%d,',&n);printf(H

222Theresultis%1f

223,t,fun(n));TestFunc();}

224voidTestFunc()(FILE*IN,*OUT;inti;intt;doubleo;IN=fopen("in.dat",T);if(IN==NULL)(printf("ReadFileError11);}OUT=fopen(',out.dat",',wH);if(OUT==NULL)printf("WriteFileError");for(i=0;i<5;i++)(fscanf(IN,n%dn,&t);o=fun(t);fprintf(OUT,"%lf

225",o);}fclose(IN);fclose(OUT);}【参考代码】

226doubley=0;inti;for(i=0;i<=m;i++)y+=1.0/(i+5);return(y);【程序设计】功能:编写函数fun(intm)求1000以内(不包括1000)所有m的倍数之和。*/#defineN1000#include"stdio.h"intfun(intm)(/*********Bcoin**********I/………*End……*…/}main()

227(voidTestFunc();intsum;sum=fun(7);printf("%d以内所有%(1的倍数之和为:%d

228",N,7,sum);TestFunc();voidTestFunc()(RLE*OUT;into;OUT=fopen(',out.dat,,,"w,');if(OUT==NULL)(printf(nWriteFileError”);}o=fun(6);fprintf(OUT,',%d

229,1,o);fclose(OUT);}【参考代码】ints=O,i;for(i=1;i

230s+=i;returns;五程序改错1/*【程序改错】功能:输入两个实数,按代数值由小到大输出它们,并在fun()函数中输出。(输出的数据都保留2位小数)-*/#include"stdio.h"voidfun()(/………*ERROR*………/floatt;scanf(M%f%fM,&a,&b);*********error**********/if(a

231H,&a,&b);

232main()fun();【改错1】【参考答案】floata,b,t;floatt,a,b;floatt,b,a;floata,t,b;floatb,a,t;floatb,t,a;【改错2】【参考答案】if(a>b)【改错3】【参考答案】printf("%5.2f,%5.2f

233",a,b);

23421*--【程序改错】功能:求二维数组s中的最大元素及最大元素的下标。*/#includeintmain()(ints[4][4],max,i,j;/**********ERROR**********/introw=1,col;for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d“,&s[i][j]);max=s[O][O];for(i=0;i<4;i++)for(j=0;j<4;j++)*ERROR*………/max=s[i][j];row=i;col=j;}printf("s[%d][%d]=%d

235",row,col,max);return0;)【改错1】【参考答案】

236introw=0,col=0;【改错2】【参考答案】if(s[i][j]>max)if(s[i][j]>=max)六程序填空

237【程序填空】功能:,取前n项之和,求n的近似值。#include#definen15intmain(){inti;floatt=1.O,pi=O;for(i=1;i<=n;i++){/***********RLL***********/pi=pi+1/();t=-t;}**********R||***********/pi=;printf(Mpi=%fM,pi);return0;)【空1】【参考答案】2*i-1i*2-1

238-1+2*i

239【空2】【参考答案】pi*44*pi2/*-【程序填空】题目:以下函数用于把矩阵中主对角线除外的下三角中各元素加1。*/#include"stdio.h',voidadd(inta[4][4])(inti,j;for(i=0;i<4;i++)for(j=0;j<4;j++)y***********p|||***********/if()****PIII*

240}main()(inti,j,x[4][4]={{1,1,1,1},{2,2,2,2},{3,3,3.3},{4,4,4,4});add(x);for(i=0;i<4;i++)for(j=0;j<4;j++)printf("%d",x[i][j]);)【空1】【参考答案】i>jj

241【第八套】一单项选择1以下叙述中正确的是()。A、C语言中的函数不可以单独进行编译B、C语言的源程序不必通过编译就可以直接运行C、C源程序经编译形成的二进制代码可以直接运行D、C语言中的每条可执行语句最终都将被转换成二进制的机器指令2若有说明语句:charc='\72';则变量c()=A、说明不合法,c的值不确定B、包含2个字符C、包含3个字符D、包含1个字符3定义字符变量C1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。A、65,66B、65,68C、A68D、AB4若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达式的值为"假",则以下不能满足要求的表达式是().A、A%2==1B、A%2C、!(A%2==0)D、!(A%2)5为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与()配对。A、其之前最近的ifB、其之后最近的ifC、同一行上的if

242D、缩排位置相同的if6下面程序段运行的结果是().x=-1;do{x=x*x;}while(!x);A、循环执行一次B、有语法错误C、死循环D、循环执行两次7以下正确的描述是().A、只能在循环体内和switch语句内使用break语句B、continue语句的作用是终止整个循环的执行C、从多层嵌套的外层循环中退出时,只能使用got。语句D、在循环体内使用break和continue语句的作用相同8以下不能正确定义二维数组的选项是().A.inta[2][]={{1,2},{3,4}};B、inta[2][2]={{1},2,3};C.inta[2][2]={{1},{2});D,inta[][2]={1,2,3.4);9chara[10];不能将字符串“abc”存储在数组中的是().A、inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;Ba="abc";C、strcpy(a,"abc");D,a[0]=0;strcat(a,"abc");10在C语言中,引用数组元素时,其数组下标的数据类型允许是()oA、整型常量

243B、整型常量或整型表达式C、整型表达式D、任何类型的表达式11在定义全局变量和局部静态变量的同时赋值,变量的初始化在()时确定的.A、运行B、编辑C、编译D、调试12以下不正确的说法是:C语言规定()。A、实参可以是常量,变量或表达式B、实参可以为任何类型C、形参可以是常量,变量或表达式D、形参应与其对应的实参类型一致13c语言程序中必须有的函数是().A、#include"stdio.h"B、mainC、printfD、scant14在"文件包含"的预处理中,被包含的文件应是().A、文本文件B、可执行文件C、目标文件D、二进制文件15若有说明:int*p,m=5,n;以下正确的程序段是()。A、scanf(H%d",&n);*p=n;B、p=&n;scanf("%dH,*p)C、p=&n;scanf(H%dH,&p);D、p=&n;scanf(,,%d',,p);

24416若有以下程序段,则使用错误的选项是().structstudent(intnum;intage;);structstudentstu[3]={{1001,20},{1002,19},{1004,20)};main();(structstudent*p;p=stu;A、(*p).numB、(p++)->numC>p=&stu.ageD、p++17在函数调用语句中,fopen("my.dat","rb");的含义是().A、为写打开一个二进制文件B、读一个二进制文件C、为读/写打开一个二进制文件D、为输入打开一个二进制文件DDADAAAABBOCBADCD二判断1C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。

2451c语言printf函数的格式控制串中可以设置需要的普通字符,输出时会原样输出。3求解表达式max=(a>b)?a:b的步骤是,先求解条件表达式(a>b),再根据它的值将a或b赋给max.4已知a=4,b=2,c=3,d=5,表达式a>b?a:cz的值为.5C语言中,数组元素的下标下限为.6函数不可以进行嵌套定义,但可以进行嵌套.

2467设有以下结构类型说明和变量定义,在TC编译环境下,变量b在内存所占字节数是.structstud{shortintage;charnum[3];floats[2];doubleave;}b,*p;8调用fopen函数打开一文本文件,在"使用方式"这一项中,为追加而打开需填入.-1-4100调用21a或a+四程序设计1/*【程序设计】功能:输入一个字符串,过滤此事,只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。*/#include"stdio.h"#include"conio.h1'#defineN80main()(charstr[N];intfun(char*ptr);voidTestFunc();ints;printfC'inputastring:");gets(str);printf("Theoriginalstringisputs(str);s=fun(str);printf(MThenewstringis:");puts(str);

247printf("Thereare%dcharinthenewstring.",s);TestFunc();}intfun(char*ptr)Begin

248vo.dTestFunc(){FFE*一N.*OUT;chars-Nz】;WOUT;一NLOPen(=n.datJT・);三一nhhnuf){prmtf(-PleaseVerifyTheCurremiD-r:-tMayBechanged:)」}olnlopen(・os..da5・w);三OUT:NULL)pr-mf(--pleaseVerifyTheCurrentD-r:-tMayBechanged.-);}fscanf(一N1%s・・kN);oUTHcms-N);fpr-n二oUT=%d%s\,jouTkN);Oose(-N);ooseoUT};s^s

249inti.j;for(i=0,j=0;*(ptr+i)!='\0';i++)if(*(ptr+i)<='z'&&*(ptr+i)>='a"||*(ptr+i)<='Z&&*(ptr+i)>='A'){*(ptr+j)=*(ptr+i);j++;}*(ptr+j)='\0';return(j);21*【程序设计】功能:找出一个大于给定整数目紧随这个整数的素数,并作为函数值返回。--*/#include"stdio.h"#include"conio.h"intfun(intn){/*********Begin**********/

250EndvoidTestFunc()(FILE*IN,*OUT;ints;intt;into;IN=fopen("in.dat",T);if(IN==NULL)(printfC'FteadHieError");}OUT=fopen(',out.dat,,,',wM);if(OUT==NULL)(printfC'WriteFileError1');}for(s=1;s<=5;s++)o=fun(t);fprintf(OUT;,%d

251"1o);)fclose(IN);fclose(OUT);

252)main()(intm;printf(HEnterm:");scanf(,,%d,',&m);printf(M

253Theresultis%d

254M,fun(m));TestFunc();)【参考代码】inti,k;for(i=n+1;;i++){for(k=2;k

255注意:不可以增加或删除程序行,也不可以更改程序的结构。#include“stdio.h”/**********ERROR**********/intsb(ints,inty)(staticinti=3;y=s[i-];returny;}main()(ints[]={1,2,3,4);inti,x=0;for(i=0;i<4;i++)ERROR*sb(s,x);printf("%d,",x);)}【改错1】【参考答案】intsb(int*s,inty)intsb(ints[],inty)intsb(ints[4],inty)

256【改错2】【参考答案】x=sb(s,x);2/*-【程序改错】功能:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第个人,他说是10岁。请问第五个人多大?#include"stdio.h',intage(intn)(intc;/………*ERROR*………/if(n=1)

257c=10;elseERROR*………*/c=age(n)+2;return(c);}main()(*********frrqr**********Iprintf("%d",age5);【改错1】【参考答案】if(n==1)【改错2】【参考答案】c=age(n-1)+2;【改错3】【参考答案】

258printf("%d",age(5));六程序填空功能:下面程序是计算sum=1+(1+1/2)+(1+1/2+1/3)+...(1+1/2+...1/n)的值。例如:当m=3,sum=4.3333333-*/#include"stdio.h"doublef(intn)(inti;doubles;s=0;for(i=1;i<=n;i++)/***********pi11***********Ireturns;}main(){inti,m=3;floatsum=0;for(i=1;i<=m;i++)/***********FILL***********/

259/***********RLL***********/printfC,

260M,sum);【空1】【参考答案】s+=1.0/is+=1/is=s+1.0/is=s+1/i【空2】【参考答案】sum+=f(i)sum=sum+f(i)【空3】【参考答案】%f

26121*【程序填空】功能:一:角形的面积公式:area=sqrt(s*(s-a)*(s-b)*(s-c)).其中,s=(a+b+c)/2,a、b、c为三角形三条边的长。定义两个带参数的宏,一个用来求s,另一个用来求area。编写程序,在程序中用带参数的宏求面积area.#include"stdio.h"#indude"math.h"II***********/#S(x,y,z)(x+y+z)/2#defineAREA(s,x,y,z)sqrt(s*(s-x)*(s-y)*(s-z))main()(floata,b,c,s,area;printf(Ma,b,c=M);厂………*FlLL*………*/scanf(,,%f,%f,%f,',&a,,&c);if(a+b>c&&b+c>a&&c+a>b)(/FlLL*/s=;/***********FILL***********/area=;

262printf("area=%f

263",area);【空1】【参考答案】define【空2】【参考答案】&b【空3】【参考答案】S(a,b,c)【空4】【参考答案】AREA(s,a,b,c)

264【第九套】一单项选择1以下叙述中不正确的是().A、在C程序中,赋值运算符的优先级低丁&&B、在C程序中,j++;是一条赋值语句C、一个C程序中只能包含一个main函数D、一个好的程序应该有详尽的注释2下列语句中符合C语言语法的语句是:().A、x=y+2=x+y+z;B^x=7+y,y++,z++;C、x=(3+b,z)=x+3;D,x=3+y++=x+3;3printf("a\rHappi\by");在屏幕上正确的输出形式是().A、HappyB、HappiC、aHappiD、aHappy4执行下面程序段后,s的值是()。ints=5;switch(++s){case6:case7:s+=2;case8:case9:s+=2;

265}A、8B、7C、10D、65逻辑运算符两侧运算对象的数据类型()«A、只能是0或1B、可以是任何类型的数据C、只能是。或非0正数D、只能是整型或字符型数据6设有如下程序段:intk=10;while(k==0)k-;则下述说明中正确的是().A、循环体一次也不执行B、循环体执行一次C、死循环D、循环体执行10次7下面有关for(表达式1;表达式2;表达式3)循环的正确描述是().A、for循环是先执行循环体语句,后判断表达式1B、for循环体中不允许嵌套除for以外的循环结构C、for循环体中的多条语句必须用"{}"括起才能被全部执行D、for循环只能用于循环次数已知的情况下8以下数组定义中不正确的是()«A.intb[][3]={0,1,2,3};

266B,intc[100][100]={0};C.intd[3][]={{1,2},{1,2,3},{1,2,3,4});D>inta[2][3];9与下面程序段时应的正确输入语句是().main(){inti;chara[10];for(i=0;i<10;i++);)A、scanf("%s",a[i]);B、scanf("%s",&a[i]);C、scanf("%c",&a[i]);D、scanf("%c",a);10下列字符数组长度为5的是()。A、chard[6]={'h','a','b','c','\0'};B、charc[10]={'h','a','b','c','d'};C、charb[]={'h','a','b','c','d','\0'};D、chara[]={'h','a','b','c','d');11C语言规定,程序中各函数之间().A、允许直接递归调用不允许间接递归调用B、不允许直接递归调用也不允许间接递归调用C、既允许直接递归调用也允许间接递归调用D、不允许直接递归调用允许间接递归调用12以下正确的描述是:在C语言程序中()。A、函数的定义可以嵌套,但函数的调用不可以嵌套

267B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数的调用均可以嵌套D、函数的定义和函数的调用均不可以嵌套13以下函数返回值的类型是()。intfff(floatx)(x=x+5;returnx;}A、void类型B、与参数x的类型相同C、int类型D、无法确定14在宏定义#definePI3.14159中,用宏名替换一个().A、字符序列B、函数名C、单精度数D、双精度数15inta[10]={1,2,3,4,5,6,7,8};int*p;p=&a[5];p[-3]的值是()。

268A、4B、2C、不一定D、316若有以下结构体定义:structexample{intx;inty;}v2;则()是正确的引用或定义.A、example.x=10;B、structv2;v2.x=10;C^examplev2;v2.x=10;D、structexamplev2={10,3};17以IBMPC计算机为例,一个长整型变量以二进制形式保存到文件后,该变量需占()字节空间.A、2B、3C、1D、4ABACBACCCDCBCADDD二判断1x*=y+8等价于x=x*(y+8)o2格式字符%x用来以八进制形式输出整数.

2693已知a=4,b=2,c=3,d=5,表达式a>b?a:c

270以读写方式打开一个O011z<=y&&y<=x或y>=z&&y<=x或z<=y&&x>=y或y>=z&&x>=y或y<=x&&z<=y或yv=x&&y>=z或x>=y&&z<=y或x>=y&&y>=z0函数体20my.dat或"my.dat”文本文件四程序设计【程序设计】功能:求一个给定字符串中的字母的个数(包括大小写字母)。#include"stdio.hMintfun(chars[]){/………Begin*EndvoidTestFunc()(

271RLE*IN,*OUT;charsiN[80];intiOUTJ;IN=fopen(,,21.in",Hr,');if(IN==NULL)(printf(nReaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen(”21.out",”w");if(OUT==NULL)(printf(nPleaseVerifyTheCurrentDir..ItMayBeChanged1');}for(i=0;i<10;k+)(fscanf(IN,,,%s',,slN);iOUT=fun(slN);fprintf(OUT,n%d

272H,iOUT);}fclose(IN);fclose(OUT);main()charstr[]="Bestwishesforyou!**;intk;k=fun(str);printf(,,k=%d

273,,,k);TestFunc();

274}【参考代码】inti,k=0;for(i=0;s[i]!='\0';i++)if(s[i]>='a,&&s[i]<=,z,lls[i]>='A'&&s[i]<=Z)k++;returnk;2/*-……-———————【程序设计】功能:根据整型参数n,计算如图公式的值。*/#include"stdio.h',#include"conio.h"doublefun(intn)…*Begin…**

275/**********厂门^**********/}main()(intm;voidTestFunc();printf(MEnterm:”);scanf(,'%d",&m);printf(M

276Theresultis%f

277",fun(m));TestFunc();}voidTestFunc()(FILE*IN,*OUT;intt;doubleo;IN=fopen("in.dat","r0);if(IN==NULL)(printf("F!eadFileError");)OUT=fopen(',out.dat,,,,,wH);if(OUT==NULL)(

278printfC'WriteFileError");)for(s=1;s<=5;s4-+)(fscanf(IN,,,%d,,,&t);o=fun(t);fprintf(OUT,"%f

279',,o);}fclose(IN);fdose(OUT);}【参考代码】doublea=1;inti;for(i=1;i

280注意:不可以增加或删除程序行,也不可以更改程序的结构。#include"stdio.h"voidchange(int*pa,int*pb)(inttemp;/………*ERROR*………/*temp=pa;*pa=*pb;*pb=temp;}main(){intx,y;x=10;y=20;/**********田RQRW*********/change(x.y);printf("%d%d",x,y);)【改错1】【参考答案】temp=*pa;【改错2】

281【参考答案】change(&x,&y);21*-【程序改错】题目:以下函数功能,完成字符串的复制。注意:不可以增加或删除程序行,也不可以更改程序的结构。#include"stdio.h',#include"string.h"voidf(char*p)(charstr[1O],*p1;strcpy(str,,,stringH);/ERROR*………/p1=*str;for(;*p++=*p1++;);}main()(/ERROR*………/

282chara[20],p=a;f(P);puts(p);)【改错1】【参考答案】p1=str;【改错2】【参考答案】chara[20]/p=a;六程序填空1/*【程序填空】功能:以每行5个数来输出300以内(包含300)能被7或17整除的偶数,并求出其和。-…*/#include"stdio.h"#include“conio.h"main()(

283inti,n,sum;sum=0;…*FILL*for(i=1;;i++)/***********FILL***********/if()if(i%2==0)(sum=sum+i;n++;printf("%6d”,i);/★★★★★★★★★★★pi11*★*★★*★*★**/if()printf("

284");)printf("

285total=%d",sum);}【空1】【参考答案】n=0【空2】【参考答案】

286i<300300>=i300>i【空3】【参考答案】i%7==0||i%17==0!(i%7)||!(i%17)!(i%17)||!(i%7)!(i%7&&i%17)【空4】【参考答案】n%5==0!(n%5)n/5*5==n

2872/*--【程序填空】题FI:下述函数的功能是将串s2复制给s1。*/#include"stdio.h',voidStrcpy(char*s1,char*s2)(/***********FlLL***********/while()*s1++=*s2++;★★★★★★★★★★pi11***********Imain()(chart1[100],t2[100];scanf("%s”,t2);Strcpy(t1,t2);printf("%s”,t1);}【空1】【参考答案】*S2*s2!=0*s2!=,\0,

288*s2!=NULL【空2】【参考答案】*s1=*\0(*s1=0*s1=*s2*s1=NULL【第十套】,单项选择1以下不符合C语言语法的赋值语句是()OA、j=j=5;B、k=2*4,k*4;C、j++;D、y=float(j);2以下运算符中,优先级最高的运算符是()oA、?:

289B、,C、&&D、++3根据下面的程序,正确的输出形式是();main(){inti=5,j=10;printf("i=%d,M,i);printfCj=%dw,j);)A、i=5,j=10B、10,5C、5,10D、i=5Uj=104inta=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为()。A、1B、3C、2D、不一定5在以下一组运算符中,优先级最高的运算符是:()A、=B、&&C、<=D、%6执行语句for(i=1;i++<4;);后变量i的值是()。A、3

290B、5C、4D、不定7若i为整型变量,则以下循环执行次数是()«for(i=2;i==0;)printf("%d",i-);A、0次B、2次C、无限次D、1次8下列数组说明中,正确的是()oA、charstr1[],str2[];str2={"China"};strcpy(str1,str2);B、charstr[]="China";C、charstr[];str="China";D、charstr1[5],str2[]={"China");str1=str2;9设有数组定义:chararray[]="China";则数组array所占的空间为O。A、7个字节B、6个字节C、5个字节D、4个字节10以下能对二维数组a进行正确初始化的语句是(),A.inta[][3]={{1,2,3},{4,5.6});B.inta[2][4]={{1,2,3},{4,5},{6});C,inta[2][]={{1,0,1},{5,2,3});D.inta[][3]={{1,0,1}{},{1,1}};11用户定义的函数不可以调用的函数是().A、本文件外的B、本函数下而定义的

291C、非整型返回值的D、main函数12以下正确的函数声明是()oA、doublefun(intx,inty);B、doublefun(intx,y);C、doublefun(intx;inty)D、doublefun(intx,inty)13凡是函数中未指定存储类别的局部变量,其隐含的存储类别为().A、外部(extern)B、静态(static)C、寄存器(register)D、自动(auto)14有关“文件包含"命令说法,卜列叙述正确的是().A、将预处理的结果作为一个源程序编译,得到一个目标文件.B、一个include命令可指定多个被包含文件.C、将预处理的结果作为多个文件编译.D、被包含的文件可以是源文件或目标文件.15下面程序的输出结果应该是().chars[]="ABCD";main(){char*p;for(p=s;p

29216对于如下的结构体定义,若对变量person的出生年份进行赋值,正确的赋值语句是().structdate{intyear,mouth,day;):structworklist{charname[20];charsex;structdatebirthday;}person;A、year=1976;B、person.birthday.year=1976;C、birthday.year=1976;D、person.year=1976;17若要打开A盘上user子目录下名为abctxt的文本文件进行读、写操作,下面符合此要求的函数调用是()oA、fopen("A:\user\abc.txt",“rb”)B>fopen("A:\\user\\abc.txt","r+")C>fopen(',A:\\user\\abc.txtH,,'w,')D、fopen("A:\user\abc.txt\T)DDACDBABBADADABBB二判断1在C程序中,逗号运算符的优先级最低。2c语言的输入、输出功能是由系统提供的输入、输出语句实现的.3运算符的级别由高向低依次为赋值运算符,关系运算符,算术运算符,逻辑运算符->!.4已知x=3,y=1,执行分支语句if(x>y){t=x;x=y;y=t;}elseprintf("error!");后,结果为error!.5若有说明intc;则while(c=getchar());没有语法错误。

2936for循环的三个表达式中间用分号相分隔,并且分号不能省略.7若有语句:chara[]="string";则a[6]的值为'\0';8数组整体可以参加各种数学运算,数组元素也可以参加各种数学运算.9c语言中引用数组元素的方括号可以用花括号代替.10在C语言中,函数名仅仅代表函数的名称,没有任何含义.11当全局变量与局部变量同名时,局部变量起作用.12在C程序中,函数可以嵌套定义,但不可以嵌套调用13宏名有类型,其参数也有类型.14用指针取值比用数组名取值速度要快.15结构体变量的成员可以象普通变量一样进行各种运算.16C语言中,遇到回车符号就意味着文件结束.对错错错对对对错错错对错错对对错三填空1已知:inti=8,j=10,m,n;m=++i;n=j++;问语句执行后m=,n=。2执行下列语句后,z的值是.intx=4,y=25,z=5;z=y/x*z;3设x=2&&2||5>1,x的值为.4已知a=12,写出表达式0

294四程序设计1/*---【程序设计】功能:编写函数求10个数中的次大数,返回其值。注意:请勿改动主函数main和其它函数中的任何内容。-*/#include"stdio.h"intsecond_max(inta[],intn){/………则而…*……/main()voidTestFunc();intx[10]={12,-4,5,8,0,9,-3,10,6,2};printf(nthissecondmax=%d

295",second_max(x,10));TestFunc();}voidTestFunc(){ALE*IN,*OUT;

296inti,b[10];into;IN=fopen("in.dat","r");if(IN==NULL)(printf("ReadfileError");}OUT=fopen("out.dat","w");if(OUT==NULL)(printfC'WriteFileError");)for(i=0;i<10;i++)fscanf(IN,',%d,,,&b[i]);o=second_max(b,10);fprintf(OUT,,,%d

297,,,o);fclose(IN);fclose(OUT);【参考代码】inti,j,max,min,second_max;max=min=a[O];for(i=1;imax)max=a[i];if(a[i]second_max&&a[i]

2982/*--【程序设计】功能:编写函数fun求sum=d+dd+ddd+….+dd...d(n个d),其中d为1-9的数字。例如:3+33+333+3333+33333(此时d=3,n=5),d和n在主函数中输入。*/#include"stdio.h"main()intd,n;longsum,fun();voidTestFunc();printf("d=");scanf(,'%d,',&d);printf("n=");scanf("%d”,&n);sum=fun(d,n);printf(Hsum=%ld

299H,sum);TestFunc();}longintfun(intd,intn)

300(/………Begin……*:[nd**********voidTestFunc()FILE*IN,*OUT;intn;inti[2];longo;IN=fopen("in.dat",T);if(IN==NULL)(printfC'ReadFileError");)OJr=fopen("out.dat","w");if(OUT==NULL)(printf("WriteFileError");)for(n=0;n<2;n++)(

301fscanf(IN,"%d",&i[n]);)o=fun(i[0],i[1]);fprintf(OUT,"%ld

302",o);fclose(IN);fclose(OUT);【参考代码】longints=O,t=O;inti;for(i=1;iv=n;i++){t=t+d;s=s+t;d=d*1O;)returns;五程序改错1/*【程序改错】功能:删除W数组中下标为k的元素中的值。程序中,调用了getindex、arrout和arrdel三个函数,getindex用以输入所删元素的下标,函数中对输入的下标进行检查,若越界,则

303要求而:新输入,直到正确为止。arrout用以输出数组中的数据,arrdel进行所要求的删除操作。*/#include"conio.h"#include"stdio.h"#defineNUM10****ERROR*****voidarrout(intw,intm)(intk;/•・m-㈤RQR**********/for(k=1;k

304w);}intarrdel(int*w,intn,intk)(inti;for(i=k;i

305do{printf(M

306Entertheindex[0<=i<%d]:M,n);scanf("%d”,&i);}while(i<0||i>n-1);returni;main(){intn,d,a[NUM]={21,22,23,24,25,26,27,28,29,30};n=NUM;printf("Outputprimarydata:

307n);arrout(a,n);d=getindex(n);n=arrdel(a,n,d);printf("Outputthedataafterdelete:

308");arrout(a,n);}【改错1】【参考答案】voidarrout(int*w,intm)voidarrout(intw[],intm)【改错2】【参考答案】for(k=0;k

309功能:编写函数fun生成一个对角线元素为5,上三角元素为0,!(11u\lt)nuijd!([[][!]el„p%„)nuud(++f!g>f!0=[)JO|}(++i!£>i:0=!)JO!:⑻unj:[,!([£][£]blui}()uieiu(as|3:0=皿山龙(!<[)!!asp:S=[f][!]JJB([=!)!!/*******************/(++f!g>[!0=f)JO|(++!:£>!:L=!)」OJ/¥¥¥¥¥¥¥¥¥¥*¥*¥*¥*¥*/['!lui/**********HOHHEI**********/)([£][]-iJBM)unjpioa..qoipis,,epnpui#

310。刖猱甥二l¥辜任第三二【改错1】【参考答案】inti,j;【改错2】【参考答案】for(i=0;i<3;i++)【改错3】【参考答案】if(i==j)六程序填空1/*——【程序填空】功能:函数fun的功能是:有NxN矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。请用下标法访问数组元素。例如:若N=3,有下列矩阵:123456789计算结果为

31110149注意:请在下划线处填入正确的内容并把下划线删除。不得增行或删行,也不得更改程序的结构!-…*/#include#defineN3voidfun(int(*t)[N]){inti,j;for(i=1;i

312Theoriginalarray:

313");

314for(i=0;i

315");|fun(t);printf("

316Theresultis:

317");for(i=0;i

318");})【空1】【参考答案】jj【空2】【参考答案】t[i][j]=t[i][j]+t[j][i];【空3】【参考答案】t[j][i]21*----

319【程序填空】功能:根据整型参数m,计算如下公式的值y=1/(100x100)+1/(200x200)+1/(300x300)+...+1/(mxm)例如:若m=2000,则应输出0.000160。注意:请在下划线处填入正确的内容并把下划线删除。不得增行或删行,也不得更改程序的结构!*/#include/………**FILL**…*…**/fun(intm)(doubley=O,d;inti;★★★★★★★★★★piII***********/for(i=100;;i+=100){d=(double)i*(double)i;II***********/y+=1/;)return(y);}main()(intn=2000;printf(M

320Theresultis%lf

321H,fun(n));

322【空1】【参考答案】double【空2】【参考答案】i<=mm>=i【空3】【参考答案】d【第十一套】一单项选择1若x,i,j,k都是int型变量,则计算x=(i=4,j=16,k=i+32)后,x的值为:().A、52B、16C、4D、362整型变量x=1,y=3,经下列计算后,x的值不等于6的是()。A、x=y*4/2B、x=9-(-y)-(-y)C、x=(x=1+2,x*2)D、x=y<2?6:53以下程序的输出结果为().main()

323{inti=010,j=10;printf("%d,%d\rT,++i,j・・);}A、9,10B、10,9C、010,9D、11,104如下说法不正确的是().A、若b为假a为真,则a||b为真B、若b为真a为假,则a||b为真C、若b为真a为真,则b&&!a为假D、若b为假,则!b+1为假5下列()表达式的值为真,其中a=5;b=8;c=10;d=0A、(a*2-c)||dB、a*2>8+2C、a-b=10);B、do{i=1;s=1;s=s*i;i++;}while(i<=10);C>i=1;s=1;do{s=s*i;i++;}while(i<=10);D>i=1;s=1;do{s=s*i;i++;}while(i>=10);7以下正确的描述是(),A、sntinue语句用来终止本次循环,继续下一次循环。B、switch语句中不能出现continue语句C、在循环中break语句不能独立出现

324D、goto语句只能用于退出多层循环8卜.面各语句中,能正确进行赋字符串操作的语句是().A、chars1[5][]={"ABCDE'};Bchars2[6]={,A,,,B,,,C,'D',,E};C、charst[][]={"ABCDE'};D、chars[5]={'A','B,,C,,D','E};9下述对C语言字符数组的描述中,错误的是().A、不可以用关系运算符对字符数组中的字符串进行比较.B、字符数组中的字符串可以整体输入、输出.C、可以通过赋值运算符"="对字符数组整体赋值.D、字符数组中可以存放字符串.10若有说明inta!3][4];则对a数组元素的正确引用是().A、a[1,3]B、a[2][4]C、a[1+1][0]D、a(2)(1)11程序运行结束后,屏幕上输出值为().staticintx=10;f(){x++;)main(){intx=3;f();x--;printf("%d",x);A、10

325B、2C、11D、312c语言规定,函数返回值的类型是由()oA、在定义该函数时所指定的函数类型所决定B、return语句中的表达式类型所决定C、调用该函数时系统临时决定D、调用该函数时的主调函数类型所决定13若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数()oA、没有返回值B、返回一个不确定的值C、返回若干个系统默认值D、能返回一个用户所希望的值14设有宏定义#definePI3.14和#defineS(r)Pl*r*r,则S(2)的值为().A、6.28B、12.56C、3.14D、9.4215下面选择中正确的赋值语句是(设chara[5],*p=a;)(),A、p="abcd";B、a="abcd";C、*a="abcd";D、*p="abcd";16staticstruct{inta1;floata2;chara3;}a[10]={1,3.5,'A'};说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的卜.标变量是()oA、a[0]

326B、a[10]C、a[1]D、a[-1]17在C程序中,可以一次写入一组数据到指定文件中的函数是().A、fprintfB、freadC、fwriteD,fputcDDADCCABCCBABBAAC二判断1整型变量在可输出字符范围内,可以和字符型数据相互转化.2putchar函数的原型(函数说明)在stdio.h内.3设i=1,j=2,k=3,则逻辑表达式!(i>j)||!k&&1的值为0.4已知三目运算exp1?exp2:exp3的含义是先求exp1,若为0,则求解exp2,则表达式值为exp2的值,否则是exp3的值.5对手for(表达式1;表达式2;表达式3)语句来说,8ntinue语句意味着转去执行表达式2.6for循环可以用于循环次数不确定而给出循环条件的情况下.7设有数组定义:chararray[]="hello";则数组array所占的内存空间为5字节.8数组整体不参加数据处理(即不参加各种运算),参加数据处理的只能是数组的元素.9puts函数用来输出•个字符.10在一个函数中定义的静态局部变量不能被另外一个函数所调用.11C语言中,只允许直接递归调用而不允许间接递归调用.12数组名可作为函数的实参,但不能作为函数的形参.13计算机编译系统对宏定义在编译时进行语法检查.14定义int兄]={1,2,3,4},乂*「=&1<1];,则执行丫=(*-0++后,丫的值不是2.15在定义结构体变量时,允许使用初始化方法对其整体赋初值.16c语言中,在打开文件时,必须说明文件的使用方式,“w"用于文件的读写.对对错错错对错对错对错错错对对错

327三填空1若X和n均是int型变量,且X和n的初值均为5,则计算表达式x+=n++后x的值为n的值为.2设(k=a=5,b=3,a*b),则表达式的值为.3若intx=6;则x+=x-=x*x表达式最后x的值是.4设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2后,t的值是.5C语言中,数组元素的下标下限为.6局部静态变量是在静态存储区分配存储单元的,在整个程序运行期间始终占的.7设有以下共用体类型说明和变量定义,在TC编译环境下,变量d在内存所占字节数是。unionstud{shortintnum;charname[8];floatscore[3];doubleave;}d,stu[3];8feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为o10615-6010内存12非零值或非0或非零或真或非。值四程序设计1/*【程序设计】功能:将主函数中输入的字符串反序存放。例如:输入字符串"abcdefg",则应输出"gfedcba”。#include"stdio.h"#include"string.hM#include"conio.h"#defineN81voidfun(char*str,intn)

328(/*********gggjp**********/1**********厂/^**********/)TestFunc()(FILE*IN,*OUT;charslN[20],*sOUT;intiLENGTH;IN=fopen(',in.dat,7,rH);if(IN==NULL)(printf(nPleaseVerifyTheCurrerntDir..ItMayBeChanged*');}OUT=fopen("out.dat”Jw");if(OUT==NULL)(printfC'PleaseVerifyTheCurrentDir..ItMayBeChanged'*);}fscanf(IN,,,%s,1,slN);il_ENGTH=strlen(slN);sOUT=slN;fun(slNJLENGTH);fprintf(OUT,M%s

329H,sOUT);fclose(IN);

330fclose(OUT);}main()(chars[N];intI;printf("inputastring:");gets(s);l=strlen(s);fun(s,l);printf("Thenewstringis:");puts(s);TestFunc();)【参考代码】inti,j;charc;for(i=0,j=n-1;i

331{/.mfg^in**********//………*Bid**********/}main()(longs,m;voidTestFunc();printf(M

332Pleaseenters:H);scanf("%ld",&s);m=fun(s);printf(MTheresultis:%ld

333H,m);TestFunc();}voidTestFunc()(FILE*IN,*OUT;intn;longi,m;IN=fopen("in.dat",T);if(IN==NULL)(printf("ReadHieError11);}OUT=fopen(',out.dat",',wH);if(OUT==NULL)printfC'WriteFileError1');)

334for(n=0;nv5;n++)(fscanf(IN,n%ld",&i);m=fun(i);fprintf(OUT,M%ld

335M,m);}fclose(IN);fclose(OUT);)【参考代码】longsl=1O,t;s/=10;t=s%10;while(s>0){s=s/100;t=s%10*si+t;si=si*10;}returnt;;五程序改错1/*--【程序改错】功能:实现两个字符串的连接。例如:输入dfdfqe和12345时,则输出dfdfqel2345.#include"stdio.h',main()

336(chars1[80],s2[80];voidscat(chars1[],chars2[]);gets(s1);gets(s2);scat(s1,s2);puts(s1);}voidscat(chars1[],chars2[])(inti=0,j=0;*********error**********/while(s1[i]=='\0')i++;/***★*★*★*★ERROR**********/while(s2[j]=='\0')(/**********ERROR**********/s2[j]=s1[i];i++;j++;)*********frrqr**********Is2[j]='\O';【改错1】【参考答案】while(s1[i]!='\0')i++;while(s1[i])i++;

337while(s1[i]!=NULL)i++;while(s1[i]!=0)i++;【改错2】【参考答案】while(s2[j]!='\0')while(s2[j])while(s2[j]!=NULL)while(s2[j]!=0)【改错3】【参考答案】s1[i]=s2[j];【改错4】【参考答案】s1[i]='\0';s1[i]=NULL;*(s1+i)='\0';s1[i]=0;2/*--【程序改错】题目:输出某学生出生的月份。注意:不可以增加或删除程序行,也不可以更改程序的结构。

338#include"stdio.h"main()(structstudent{intyear;intmonth;intday;}birth;/**********ERROR**********/scanf("%d%d%d",&year.birth,&month.birth,&day.birth);/**********ERROR**********/printf("mon=%f

339",month,birth);)【改错1】【参考答案】scanf("%d%d%d",&birth.year,&birth.month,&birth.day);【改错2】【参考答案】printf("mon=%d

340",birth.month);六程序填空1/*【程序填空】功能:在任意的字符串a中将与字符c相等的所有元素的下标值分别存放在整型数组b中。

341#includeintmain()(chara[80];inti,b[80],k=0;gets(a);for(i=0;a[i]!='\0';i++)^**********4rp|**********/if()y***********pill***********/{b[k]=i;;)for(i=0;i【空2】【参考答案】k++k=k+1k+=12/*-【程序填空】

342功能:计算矩阵a的下三角(包含主对角线)元素之和,矩阵的行、列数和元素值均由键盘输入。#defineM20#include"stdio.h',intmain()(inti,j,n,a[M][M];ints=0;scanf(,'%d',,&n);for(i=0;i

343",s);return0;}【空1】【参考答案】j=0;j

344【空2】【参考答案】jv=ii>=j【空3】s+a[i][j]a[i][j]+s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
最近更新
更多
大家都在看
近期热门
关闭