C语言程序设计形考任务全部答案_第1页
C语言程序设计形考任务全部答案_第2页
C语言程序设计形考任务全部答案_第3页
C语言程序设计形考任务全部答案_第4页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计 形考任务1在每个C语言程序中都必须包含有这样ー个函数,该函数的函数名为( )。选择ー项:行ハ,8.MAINrnameC .function题目2C语言源程序文件的缺省扩展名为( )。选择ー项:rハA.cpprexe「C.obj°D.c题目3由C语言目标文件连接而成的可执行文件的缺省扩展名为( )。选择ー项:r,cpp(•_exeCC.objCD.c题目4程序运行中需要从键盘上输入多于ー个数据时,各数据之间应使用的分隔符为( )。选择ー项:「A.空格或逗号’13.逗号或回车rC.逗号或分号"P,空格或回车ノ题目S-每个C语言程序文件的编译错误被分为( )。选择ー项:「A,エ类“13.2类ノ「Cろ类「D.4类题目6在・( )。选择ー项:CA.{)CC.{X=O;}P.{y=lO}题目7C语言程序中的基本功能模块为( )。选择ー项:1A.表达式C.语句°D.函数ノ题目8在ー个函数定义中,函数头包括的ろ个部分依次为函数类型、函数名和( )。选择ー项:CA.表达式’8.语句0C,参数表/「D.函数体题目q在ー个程序文件中,若要使用#Me似イe命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为ー对( )。选择ー项:「A,尖括号*8,双引号ノrC.单引号1P.花括号题目10在C语言程序中,多行注释语句使用的开始标记符为( ).选择ー项:A.//8./*</C.*/D.**题目I[在pr況好()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。选择ー项:A.char「B.「C.floatP.double.题目エ2在アnシど()函数调用的格式字符串中,若使用格式符为"%Sd”,则规定对应输出的数据占用的字符位置个数为( )。选择ー项:0A.5</C8.4°C.3P.6题目エ3转义字符、、’表示的字符是( )。选择ー项:CA.单引号,8.双引号“C.反斜线ノCP.问号题目エ4枚举类型中的每个枚举常量的值都是一个( )。选择ー项:A.整数,/C8.浮点数rC.字符「P.逻辑值题目[5运算符优先级最高的是( )。选择ー项:「A.二[8.*=「C.&&"D.仁ノ题目"设x和g均为逻辑值,则x&&g为真的条件是( )。选择ー项:"A,它们均为真JC8.其中一个为真「C.它们均为假「D,其中一个为假题目I7设有语句"int。==2;a+=a・勾”,则执行结束后,a的值为(选择ー项:A.エ2C.丄56<>'CP.2.88题目18X><2&&X<=i<2的相反表达式为( )。选择ー项:・A.Xく=O||x>W♦/rX<=(9&&X>WX<=(2||X<=1<9rX><9&&X>1O题目19字符串"行も=12、ハ”的长度为( )。选择ー项:rA.6°B.7ノ「C.8rp.q题目20TOC\o"1-5"\h\z在下列的符号常量定义中,错误的定义语句格式为( )。选择ー项:constmtMl=丄0;\o"CurrentDocument"r .constrntM2=2。;coi^stintM3W;</\o"CurrentDocument"r ,constch^rmark=/3/;二、判断题(共らつ分,每小题2分。叙述正确则回答“是、否则回答"否'')题目2エC语言中的每条简单语句以分号作为结束符。选择ー项:行对r错题目22二、判断题(共60分,每小题2分;题目21;C语言中的每条简单语句以分号作为结束符;C语言中的每条复合语句以花括号作为结束符;在C语言程序中,在行尾使用注释的开始标记符为ー对;注释内容的开始所使用的标记符为/*,则注释内容的;在ー个C语言程序文件中,若要包含ー个头文件,则使;用于输出表达式值的标准输出函数是pカハび();当不需要函数返回任何值时,则需要使二、判断题(共60分,每小题2分。叙述正确则回答“是",否则回答“否")题目2エC语言中的每条简单语句以分号作为结束符。对题目22。语言中的每条复合语句以花括号作为结束符。错题目23在C语言程序中,在行尾使用注释的开始标记符为ー对单斜线字符。对题注释内容的开始所使用的标记符为/*,则注释内容的结束所使用的标记符为*/〇对题目25在ー个C语言程序文件中,若要包含ー个头文件,则使用以百分号开始的预处理命令。错题目2s用于输出表达式值的标准输出函数是pスハビ()。对题目27当不需要函数返回任何值时,则需要使用保留字V。以作为函数的返回值类型。对题目28每个C程序文件在编译时可能出现有警告性错误,其对应的标识符为error0错题目2マ十进制数25•表示成符合C语言规则的ハ进制数为ろ1。错题目ろ0十进制数25表示成符合。语言规则的十六进制数为0X1[。对题目3エ在C语言中,转义字符へ、バ表示一个换行符。对题目32执行ゆバハ玳\-2)严语句后得到的输出结果为H。错题目ろ3己知字符て’的ASCI!码为67I当执行“心土X=C'+S;”语句后X的值为72。对题目ろ4假定一个枚举类型的定义为“enu3R.B{abJac=3JadJa&}x=ad;i,,则x的float的类型长度为8o错题目ろら在C语言中,常数28和3.2る具有相同的数据类型。错题目ろ7若需要定义ー个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字const。对题目38使用C。ハえ语句定义ー个符号常量时,不必对它进行初始化。错题目39表达式45•的值为ろ。错题目40假定X=5,则表达式2*X++的值为12。错题目41表达式倒。れ)25/4的值为る。错题目42表达式X=X+[表示成增量表达式为++X。对题目43关系表达式(x!=O)的等价表达式为(X)。对题目44关系表达式x+g>5"的相反表达式为x+g<=5。对题目イ5逻辑表达式伍〉い((レ==6)的相反表达式为(“>レ&&レ==5)。错题目4ら若x=S,g=lO,则x>g逻辑值为真。错题目47假定X=5,则执行“”=(X?エ。:2。);"语句后”的值为»。。对题目48带有随机函数的表达式ビmdO的值所在的区间范围是。~1弓。对题目4假定x=5,则执行"g=x++;'>语句后,X的值为5。错题目5■0假定x=s,则执行"g=++x;',语句后,g的值为る。对三亿文库ろg.uu456,。小包含各类专业文献、幼儿教育、小学教育、外语学习资料、专业论文、高等教育、文学作品欣赏、应用写作文书、行业资料、中学教育、各类资格考试、生活休闲娱乐、国家开放大学C语言程序设计A第一次形考任务及答案41等内容。题目44假定x=s,则执行“g=x++;“语句后,x的值为S。选择ー项:r对行错题目so假定x=5,则执行“ザ++X;”语句后,9的值为6。选择ー项:④对ー、单选题(每小题2分,共20分).C语言源程序文件的缺省扩展名为(c)〇.设x和y均为逻辑值,则x&&y为真的条件是x和y(均为真)〇TOC\o"1-5"\h\z.在下列的符号常量定义中,正确的定义格式为(^defineM310 )〇.for循环语句能够被改写为(while)语句。.在下面的•维数组定义中,错误的定义格式为(inta口;)..在下面的函数原型声明中,存在语法错误的是(intAA(inta;intb;);)〇.假定a为・个数组名,则下面存在错误的表达式为(*a++ ),.假定有定义为“intaUO],x,*pa=a;M,若要把数组a中下标为3的元素值赋给x,则不正确的赋值为(x=*pa+3 )〇.字符串"y=%d\n"的长度为_5_。.向一个二进制文件中写入信息的函数为(fwriteO)〇二、填空题(每小題2分,共26分)L.执行“printf("%c",'A'+3);”语句后得到的输出结果为ーD2,短整数类型shortint的长度为2.用类型关键字表示十进制常数3.26f的类型为<。朮.假定y=10,则表达式++y*3的值为_ろろ.逻辑表达式(x=0&&y>5)的相反表达式为ー(x!-〇||y<-5)或:(X||y<-S).若x=5,y=10,则x!=y的逻辑值为_1(真,true).假定二维数组的定义为“inta[3][5];M»则该数组所占存储空间的字节数为60.使用“typedefcharBB[10][50];"语句定义―BB为含有10行50列的二维字符数组类型。9,字符串"a:\\xxk\\ff"的长度为9.假定p所指对象的值为25,p+1所指对象的值为46,则・++p的值为46.假定・个数据对象为int・类型,则指向该对象的指针类型为」れt**.假定一个结构类型的定义为"structA{inta,b;structA*c;};n»则该类型的理论长度为ー12.假定要访问・个结构对象x中的数据成员a,则表示方式为ーx.〃三、写出下列毎个程序运行后的输出结果(每小题6分,共30分)#include<stdio.h>voidmain(){intx=3;switch(2*x+l){case4:printf("%d",x);break;case7:printf("%d",2*x);break;case10:printf(*%d*,3*x);break:default:printf(*%s*,*default"); } }输出结果:6#includeくstdio.h>voidmain(){intf=l,i;for(i=l;i<4;i++)f=3*f+l;printf(飞d*,f); }输出结果:40^includeくstdio.h>voidmainO{inta[8]={12,39,26,41,55,63,72,40);inti,c=0;for(i=0;i<8;i++)if(a[i]%3==0)c++;printf("%d\n",c);丿输出结果:4#include<stdio.h>#include<string.h>voidmain(){chars[]="123456”;inti,n=strlen(s);for(i=0;i<n/2;i++){charc=s[i];s[i]=s[n-l-i];s[n-l-i]=c;} printf("%s\n",s);}输出结果:654321#include<stdio.h>intLB(int*a,intn)(int*p,s=l;for(p=a;p<a+n;p++)s*=*p;returns; )voidmain(){inta[]=(l,2,3,4);printf("%d\n*,LB(a,sizeof(a)/sizeof(int)));//sizeof(a)为求出数组a所占用的存储空间的字节数}输出结果:24四、写出下列每个函数的功能(每小题6分,共12分)#include<stdio.h>intSA(inta,intb){if(a>b)return1;elseif(a==b)return0;elsereturn-1;)函数功能:比较两个整数a和b的大小,若a〉b则返回1,若a==b则返回。,若a〈b则返回一しvoidOutput(structIntNode*f)//f为单集表的表头指针(if(!f)return;while(f){printf("%d*,f->data);f=f->next;)printf("\n");} 函数功能:遍历输出由f所指向的单锥表中毎个结点的值。五、按題目要求編写程序(每小题6分,共12分)1.完善下面程序,该程序功能是从键盘上输入10个整数到ー维数组a[10]中,然后按照下标从大到小的次序输出数组a[10]中的每个元素值,元素值之间用—个空格分开。#includeくstdio.h>voidmain(){inta[10],iJ〃用i作为循环变量printf("从键盘输入10个整数:'n");〃向下补充程序内容,用两个for循环实现

printf(*\n*); }〃3分〃3分for(i=9:i>=0;i-)printf(*%d*,a[i])i〃6分注:第1行中的&a[i]也可替换为a+i2.编写一个主函数,假定a和b的取值范围为:6WaW50,10WbW30,求出满足不定方程3a+2b=120的全部整数组解。如(20,30)就是其中的・组解。voidmainO//I分〃2//I分〃2分〃3分for(a=6;a<=50;a++)for(b=10:b<=30;b++)if(3*a+2*b==120)printf(*(%d,%d)\n*,a,b);〃6分ー、单选题.在每个C语言程序中都必须包含有这样•个函数,该函数的函数名为(main)。TOC\o"1-5"\h\z.每个C语言程序文件的编译错误分为(2 )类。3,字符串"a+b=12\n”的长度为(7)。4.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(if)语句。5,在下面的do-while循环语句中,其循环体语句被执行的次数为(10 )〇 inti=0;doi++;while(i<10);.将两个字符串连接起来组成一个字符串时,选用的函数为(strcat0 )..若用数组名作为函数调用的实参,传递给形参的是(数组的首地址 )。.假定a为ー个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大(16)个字节。.假定s被定义为指针类型char*的变量,初始指向的字符串为”Helloworld!”,若要使变量p指向s所指向的字符中,则P应定义为(char*p=s; )•.从个数据文件中读入以换行符结束的一行字符串的函数为(fgetsO)..由C语言目标文件连接而成的可执行文件的缺省扩展名为(exe)〇.设有两条语句为“inta=12:a+=a*a;M,则执行结束后,a的值为(156 )..带有随机函数调用的表达式rand()%20的值在(0〜19)区间内。.for循环语句“for(i=0;i<n;i+=2)S;"中循环体S语句被执行的次数为((n+D/2 )〇.在下列的字符数组定义中,存在语法错误的是(chara[10]='5';)。B 17. B 18. A 19. D 20. CD 22. A 23. A 24. B 25. CC 27. C 28. B 29. A 30. D16,若有一个函数原型为‘'double♦function()M,则它的返回值类型为(实数指针型)..在C语言中,所有预处理命令都是以(# )符号开头的。.假定整数指针p所指数据单元的值为30,p+1所指数据单元的值为40,则执行・p++后,p所指数据单元的值为(40)。.若要使p指向二维整型数组a[10][20],则p的类型为(int(*)[20])〇.表示文件结束符的符号常量为(EOF).程序运行中需要从键盘上输入多于ー个数据时,各数据之间默认使用(空格或回车)符号作为分隔符。.逻辑表达式(x>0&&xく=10)的相反表达式为(x<=0 x>10 )〇.当处理特定问题时的循环次数已知时,通常采用(for)循环来解决。.假定i的初值为〇,则在循环语句“while(iくn)(s+=i*i;i++;}"中循环体被执行的总次数为(n)〇.假定•个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[l][2]的值为(6 )〇.在下列选项中,不正确的函数原型格式为(iniFunction(a): )〇.假定p是・个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大(4)个字节。.假定有定义为“intm=7,*p:M»则给p赋值的正确表达式为(p=&m)〇 29假定指针变量P定义为"int*p=malloc(sizeof(int));w,要释放p所指向的动态存储空间,应调用的函数为(free(p))0C语言中的系统函数「open。是(打开)ー个数据文件的函数。.C语言中的毎条简单语句以,(或分号)一作为结束符。.C程序中的所有预处理命令均以#一字符开头。.当不需要函数返回任何值时,则应使用タ。山一标识符来定义函数类型。.十进制数25表示成符合C语言规则的十六进制数为ー。X工タ。5假定不允许使用逻辑非操作符,则逻辑表达式a〉bIb=5的相反表达式为ー。くニレ&&レ!:5.执行“typedefintDataType;”语句后,在使用int定义整型变量的地方也可以使用—Da%Tgpe来定义整型变量。.假定一维数组的定义为“char*a[8];”,则该数组所占存储空间的字节数为ーろ2」.假定二维数组的定义为“doublea[M][N];”,则该数组的列下标的取值范围在ー。〜N-1一之间。.存储ー个空字符串需要占用一1ー个字节。.strcpy函数用于把ー个字符串一拷贝(复制)一到另ー个字符数组空间中。.程序的编译单位是ー个ー程序文件ー。.假定a是・个ー维数组,则a[i]的指针访问方式为—マ九..执行int*p=malloc(sizeof(int))操作得到的ー个动态分配的整型对象为ー・p0.执行“printf("%c",'A'+2);”语句后得到的输出结果为—C_..shortint类型的长度为_2。.用类型关键字表示十进制常数3.26f的类型为ーfloat..假定y=10,则表达式++y*3的值为ー33〇.逻辑表达式(x==0&&y>5)的相反表达式为—(x!=O||y<=5)或:(x||y<=S)。.若x=5,尸10,则x!=y的逻辑值为_1.假定二维数组的定义为“inta[3][5];”,则该数组所占存储空间的字节数为ーG。C.使用“typedefcharBB[10][50];"语句定义B8一为含有10行50列的二维字符数组类型。 22.字符串“a:\\xxk\\数据”的长度为ーエ丄23.假定p所指对象的值为25,p+1所指对象的值为46,则・++p的值为一46。.假定一个数据对象为int・类型,则指向该对象的指针类型为一源t**0.假定一个结构类型的定义为“structA{inta,b;A*c;};n,则该类型的长度为ー12.假定要访问ー个结构对象x中的数据成员a,则表示方式为.用于输出表达式值的标准输出函数的函数名是ーp/Mビ。.每个C语言程序文件在编译时可能出现有致命性错误,其对应的标识符为_error29.已知‘A‘Z'的ASCH码为65〜90,当执行“intx='C'+3;”语句后x的值为ー7。。30.表达式(int)14.6的值为_14。31.假定不允许使用逻辑非操作符,则关系表达式x+y>5的相反表达式为_X+gく=S 32.假定x=5,则执行Ma=(x?10:20)语句后a的值为ーエ。。33.假定•维数组的定义为“char*a[M];”,则该数组所占存储空间的字节数为_.4*MO.存储字符串"a"需要至少占用存储器的ー2ー个字节。.strlenO函数用于计算ー个字符串的ー长度.在C语言中,ー个函数由函数头和ーー函数体ー这两个部分组成。.假定p所指对象的值为25,p+1所指对象的值为46,则执行表达式・(p++)后,p所指对象的值为ー46。.假定p是一个指向整数对象的指针,则用ー&P一表示指针变量p的地址。.与结构成员访问表达式p>name等价的访问表达式为ー0).れ42&三、写出下列毎个程序运行后的输出结果#include<stdio.h>voidmainO(intx=5;switch(2*x-l){printf(*%d*,x);break;printf(*%d”,2*x);break;printf("%d",3*x);break;printf("%s*,"default");)printf("%s\n","switchend.");)输出结果defaultswitchend.#include<stdio.h>voidmain(){intfl,f2,i:fl=l;printf(*%d",fl):for(i=2;iく=5;i++){f2=3*fl+l;printf("%d",f2);fl=f2;)printfC\n");}输出结果141340121^includeくstdio.h>voidmainO(inta[10]={12,39,26,41,55,63,72,40,83,95):inti,il=0,i2=0;for(i=0;i<10;i++)if(a[i]%2==l)il++;elsei2++;printf("%d%d\n",i1,i2);)输出结果い4#include<stdio.h>#includeくstring.h>voidmain(){chars[15]="567891234";inti,n=strlen(s);for(i=0;i<n/2;i++){charc=s[i];s[i]=s[n-l-i]:s[n-l-i]=c:printf(*%s\n*,s);)输出结果132198765#include<stdio.h>intLB(int*a,intn){inti,s=1;for(i=0;i<n;i++)s*=*a++;returns;}voidmainO(inta[]={l,2,3,4,2,4,5,2);intb=LB(a,4)+LB(a+3,3);printf(*b=%d\n*,b);)输出结果b二56#include<stdio.h>voidmain(){inti,s=0;for(i=l;i<6;i++)s+=i*i;printf(,,s=%d\n>>,s):}输出结果ゝ=55#include<stdio.h>ffdefineN6voidmain()(inti,a[N]={2,5,8,10,15,21};for(i=0;i<N;i++)if(a[i]%5)printf(*%d*,a[i]);printf(*\n*);输出结果ユ821#include<stdio.h>与includeくstring,h〉voidmain(){inti;unsignedintlen;char*a[5]={"student",“worker","cadre,"soldier*,*zzeasanl23"};len=strlen(a[0]);for(i=l;i<5;i++)if(strlen(a[i])>len)len=strlen(a[i]);输出结果10#include<stdio.h>voidmain()(inta,b;for(a=2,b=3;bく20;){printf(*%d%d*,a,b);a=a+b;b=a+b:)printf(*%d%d\n*,a,b);)输出结果23581321^include<stdio.h>voidLE(int*a,int*b){intx=*a;♦a=*b;*b=x;)voidmain(){intx=15,y=26;printf(*%d%d\n*,x,y);LE(&x,&y);printf(*%d%d\n*,x,y);)输出结果15262615#include<stdio.h>voidmainO(inti,s=0;for(i=l;;i++){if(s>30)break;if(i%2==0)s+=i;|printf(*s=%d\n*,s);)输出结果s=42^includeくstdio.h>voidmainO{inta[9]={36,25,48,24,55,40,18,66,20};inti,bl,b2;bl=b2=a[0];for(i=l;i<9:i++){if(a[i]>bl)bl=a[i];if(a[i]<b2)b2=a[i];|printf(*%d%d\n*,bl,b2);)输出结果6618#include<stdio.h>voidSB(charch)(switch(ch){case'A*:case'a,:printf(*WW*);break;case'B':case'b':printf(*GGつ;break;default:printf(*BB*);break;)voidmainO{charal='a',a2=,B*,a3='f';SB(al);SB(a2);SB(a3);printf(*\n*); }输出结果O'GGBB#include<stdio.h>ttdefineM6voidmain(){ inti,x;inta[M]={10,15,22,37,46,58]:for(i=0;i<M/2;i++){x=a[i];a[i]=a[M-l-i];a[M-l-i]=x;}for(i=0;i<6;i++)printf(*%d*,a[i]):printf(*\n*);)输出结果584637221510#includeくstdio.h>structWorker{charname[15];intage:floatpay;);voidmainO{structWorkerx=(*wanghua*,52,2350};structWorkery,*p;y=x;p=&x;printf(*%d%7.2f\n*,y.age+p->age,p->pay+20);}输出结果1042370.00#include<stdio.h>voidmainO{inti,j,k=0;for(i=0;i<5:i++)for(j=i;j<5;j++)k++;;printf(*%d\n*,k):)输出结果15#include<stdio.h>voidmainO(intx=60;inti=2,p=l;while(l){if(x%i==0){p*=i;x/=i;}

if(i<x)i++;elsebreak;printf(*%d\n*,p);}输出结果30#include<stdio.h>voidmainO{inta[8]={76,63,54,62,40,75,90,58);inti;for(i=0;i<8;i++)if(a[i]>70)printf(*%d*,a[i]);printf(*\n*); }输出结果?67590#include<stdio.h>voidWF(intx,inty){x=x+y;y+=x;printf(*%d%d\n*,x,y); }voidmainO{intx=3,y=8;WF(x.y);}输出结果H19^includeくstdio.h>intLA(int*a,intn){inti,s=0;for(i=0;i<n;i++)s+=a[i];returns;}voidmainO(inta[5]={3,4,6,10,20};intb=LA(a,5);intc=LA(a+2,3);printf(*%d%d\n*,b,c); }输出结果!336四、写出下列毎个函数的功能#include<math.h>intSG(intx){ 〃メ为大于等于2的整数inta=(int)sqrt(x);〃sqrt(x)取x的平方根inti=2;while(i<=a){if(x%i=O)break;i++;)if(i<=a)return0;elsereturn1;)判斷x是否为・个素数,若是则返回1,否则返回〇。intFindMax(structIntNode*f)//f为ー个单链表的表头指针intX;if(!f)(printf("单链表为空、n"),exit(1);)x=f->data;f=f->next;while(f){if(f->data>x)x=f->data;f=f->next;} returnx;}假定structIntNode的类型定义为:structIntNode{intdata;structIntNode*next;};求出由f所指向的单链表中所有结点的最大值。#include<stdio.h>intSA(inta,intb){if(a>b)return1;elseif(a==b)return0;elsereturn-1;)比较两个整数a和b的大小,若a>b则返回1,若a=b则返回0,若aくb则返回ー1。voidOutput(structIntNode*f)//f为单链表的表头指针{if(If)return;while(f){printf(*%d*,f->data);f=f->next;printf(*\n*);}假定structIntNode的类型定义为:structIntNode{intdata;structIntNode*next;};遍历并输出由f所指向的单链表中毎个结点的值。intSC(inta,intb,intc){if(a>=b&&a>=c)returna;if(b>=a&&b>=c)returnb;returnc; }求出a,b,c三个数中的最大值并返回.int*LI(intn){int*a=malloc(n*sizeof(int));inti;for(i=0;i<n;i++)scanf(*%d*,a+i);returna;}首先建立•个动态整型数组a[n],接着从键盘上输入n个整数到a[n]中,最后返回数组a[n]的首地址。7.intWC(inta[],intn,intk){inti,c=0;for(i=0;iくn;i++)if(a[i]>=k)c++;returnc;)统计并返回•维整型数组a[n]中大于等于k的值的个数voidQA(structWorkera[],intn){ inti;for(i=0;i<n;i++)scanf(*%s%d%f*.a[i].name,&a[i].age,&a[i].pay); }假定结构类型structWorker的定义如下:structWorker{charname[15];intage;floatpay;};从键盘上为具有structWorker类型的数组以[八]输入れ个记录五、按题目要求編写程序或函数.编写ー个程序,输出50以内(含50)的、能够被3或者5整除的所有整数。#includeくstdio.h>voidmainOinti;for(i=3;i<=50;i++)if(i%3==0IIi%5==0)printf("%d",i);printf(*\n*);).编写一个递归函数“intFF(intaロ,intn)”,求出数组a中所有n个元素之积并返回。intFF(inta[],intn)(if(n<=0){printf(*n值非法、n"),exit(1);}if(n==l)returna[n-l];elsereturna[n-l]*FF(a,n-1):.编写ー个程序,利用while循环,计算并打印输出1+丄+丄+...+丄的值,其中正整数n值由健盘输入。假定求和23n变量用sum表示,计数变量用i表示,sum、i和n均定义为全局变量,sum和i的初值分别被赋予〇和1。井includeくstdio.h>intn,i=l;doublesum=0;voidmain()(scanf(*%d*.&n);while(i<=n)sum+=(double)l/i++;printf(*sum=%lf\n*,sum);).根据函数原型“voidDD(inta[],intn,intMM)”编写函数定义,利用双重循环査找并打印输出数组a[n]中任何两个元素的值等于MM值的元素值。假定a[i]+a[j]等于MM,则输出格式为:(a[i],a[j]).voidDD(inta[],intn,intMM){inti,j;for(i=0;i<n:i++)for(j=i+l;j<n;j++)if(a[i]+a[j]=MM)printf(*%d,%d\n*,a[i],a[j]):).编写ー个程序,计覓1+3+32+...+3"’的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。^includeくstdio.h>voidmainO(inti;intp=l;ints=l;for(i=l;i<=10;i++){p*=3;s+=p;}printf(*%d\n*,s);}.根据函数原型“intFF(inta[],intn)”,编写函数定义,计算并返回数组a[n]中所有元素之和。intFF(inta[],intn){inti,sum=0;for(i=0;i<n:i++)sum+=a[i];returnsum;).根据函数原型“doubleMean(doublea[M][N],intm,intn)”,编写函数定义,要求返回二维数组a[m][n]中所有元素的平均值。假定在计算过程中采用变量v存放累加值和最后的平均值。doubleMean(doublea[M][N],intm,intn)inti,j;

doublev=0.0;for(i=0;i<m;i++)for(j=0;j<n:j*+)v+=a[i][j];v/=m*n;returnv;).根据函数原型ttintMM(inta[]tintm)”,编写函数定义,计算并返回数组a[m]中元素最大值和最小值之差。intMM(inta[],intm)(inti,xl,x2;xl=x2=a[0];for(i=l;i<m:i++)(if(a[i]>xl)xl=a[i];if(a[i]<x2)x2=a[i];}returnxl-x2;《C语言程序设计》作业1解答ー、选择题.在每个C语言程序中都必须包含有这样ー个函数,该函数的函数名为(A)-A.M4況 B.MAIN C.れロ小e P.fuiaction2.C语言源程序文件的缺省扩展名为(P)〇A.cpp B.exe C.obj P.C.由C语言目标文件连接而成的可执行文件的缺省扩展名为(B)。A.cppB.exeP.A.cppB.exeP.c.程序运行中需要从键盘上输入多于ー个数据时,各数据之间应使用(D)符号作为分隔符。A.空格或逗号3.逗号或回车 C.逗号或分号 D.空格或回车.每个C语言程序文件的编译错误分为(8)类。A.1 8.2. C.3 D.4ム设x和9均为逻辑值,则x&&g为真的条件是(A)。A,它们均为真8.其中一个为真 C.它们均为假 D.其中一个为假7.设有语句“屁用エ2; 则执行结束后,4的值为(C).A.12 8.144 C.1Sら P.2888.KyO&&X<=W的相反表达式为(A)。A.X<-O||X〉108.X<-O&&X>WC.X<=(2||X<=WP.X>O&&X>1<9q.字符串“a+レ=12、ハ”的长度为(8)。A.6 8.7 C.8 P.q10在下列符号常量定义中,错误的定义语句格式为(C)〇A.constM1=1O; 8.constintM2=2O;C-constM3エ。;P.constcharmark=,3,;11.带有随机函数的表达表达式m八刈)%20的值在(C)区间内。A.1〜14C.A.1〜14C.0〜1QP..当处理特定问题时的循环次数已知时,通常采用(A)循环来解决。A.for B.wMe C.do-whileP.switch.在switcん语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(B)语句。A.for B.if C.do P.while.for语句能够被改写为(P)语句。A.复合B.if C.swtich P.while.下面循环语句执行结束后输出的i值为(8)。for(inti=O:トハ;i++)(f((>n/Z){prihtf("%d'ハ",り;break;}A.ハ/2 B.ハ/2+1 C.ハ/2-1 P.ハ-1.在下面循环语句中内层循环体S语句的执行总次数为(P)。for(im.ti=O;iく八;i++)for(ii^tj=i;ハハ;j++)S;A.ハユ B.(ハ+1)/2 C.ハ(ハー1)/2 P.ハ(ハ+1)/2.在下面的イo循环语句中,其循环体被执行的次数为(A)。iハti-O;doi++;while((*/<l<2);A.4 B.3 C.S P.2二、填空题.C语言中的每条简单语句以 ; 作为结束符。.C语言中的每条复合语句以 }作为结束符。.在C语言程序的每个程序行后面或单独一行的开始使用注释的标记符为//».单行或多行注释的结束标记符为 */。.在ー个C程序文件中,若要包含另外一个头文件或程序文件,则应使用以#include定义的头文件。6,在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是 用户定义的头文件。.ー个函数定义由函数头 和函数体两部分组成。.用于输出表达式值的标准输出函数是 printf0q.当不需要函数返回任何值时,则应使用void 标识符定义函数类型。8.执行“四以纸"%d-%d=%大,43,18,43-18);”语句后得到的输出结果为_43ー工8=25 。.每个C程序文件在编译时可能出现有警告性错误,其对应的标识符为ーwarning0.每个C程序文件在编译时可能出现有致命性错误,其对应的标识符为ーerror«.十进制数2s表示成符合C语言规则的十六进制数为 0X1ワ。.在C语言中,转义字符序列 、ハ’表示ー个换行符。.执行“pn.ハtF("%c",F-2);”语句后得到的输出结果为 D。.已知A〜N的ASCI!码为65"〜q。,当执行“況tX=C'+5;”语句后X的值为72〇.假定一个枚举类型的定义为RB{aレ,ac=3,ad,ae}x=ad;n,贝リxTOC\o"1-5"\h\z的值为4 。.Cんル类型的大小为 — 个字节。.iiat类型的大小为 1 个字节。.舟。れ类型的大小为 4 个字节。.十进制数28类型カ Mt 。.十进制数ろ.2G的类型为 double 。.若需要定义ー个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字 const .使用C。ハSt语句定义ー个符号常量时,则必须对它同时进行 初始化 。.执行"/tx=4SJy=13;pn'八x%g);”语句序列后得到的输出结果为一2ら.假定X=S,则表达式2+X++的值为 Z 。.表达式(冃。歩)25/4的值为 ム2S 。.表达式(7八り14.6%S的值为 ± 。.表法式乂=乂+1表示成增量表达式カ ++i3(9.增量表达式ー9表示或赋侑表ル式为 g=g+l 。.关系表达式(X!=<9)的等价表达式为^ 。.假定不允许使用逻辑非操作符,则关系表达式x+g>5"的相反表达式为乂+ヮく二5 〇.假定不允许使用逻辑非操作符,则逻辑表达式レ||レ==5"的相反表达式为ーせ当&&か=5 .若X=5,9=10,则4>9的逻辑值为0。.若X=5,9=10,则x<=g的逻辑值为1〇.假定X=S,则执行“a=(x?1O:2。);”语句后a的值为W。.执行“tgpedef心tDataqpe;”语句后,在使用以土定义整型变量的地方都可以使用DataTgpe 来定义整型变量..在switc人语句中,每个语句标号所含保留字case后面的表达式必须是 賞量0.作为语句标号使用的C保留字case和イefa川亡只能用于 switch语句的东义体中。.执行switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下ー个标号位置时(停止/不停止) 不停止 执行。.若イ。循环的"尾"为"wん?e(++k[。);",并且i的初值为。,同时在循环体中不会修改i的值,则循环体将被重复执行 ユ。 次后正常结束。.当在程序中执行到 とreak; 语句时,将结束本层循环类语句或switcい语句的执行。.在程序中执行到 了况— 语句时,将结束所在函数的执行过程,返回到调用该函数的位置。.在程序执行完 Ma況 函数调用后,将结束整个程序的执行过程,返回到操作系统或C语言集成开发环境界面窗口。三、写出下列每个程序运行后的输出结果1. #include<stdio.h>voidmainf)ivxtx=5;swrtrk(2*x-3){case4: printf(N%d〃M;case7: printf(N%d"ノ2*x+l);case丄つ:printf("%d〃ノろ*x-1);break;default:prMtf(〃%s"/default、ハ");1pn,ハモf(〃%sゝれ〃/switchend.");)运行结果:2214switchend.^include<stdio.k>voidi^ain(){inti,S-O;for(7=l;(<=6;i++)s+;iザ;printf("s-%d\n"Js);)运行结果:S=91#include<stdio.h>voidiAA.ain(){intしsl=O,S2=O;foパ二O;iくエ。;i++)近7%2)st+=i;ekes2+=i;printf(H%d s丄ノs2);)运行结果:2520#心,ルイeくstdio.h〉void.kv\aiia(){mtハ=20ノy=l;w人依れー) {g++;9卄;}pHハセf(〃g=%d\ハ〃⑼;)运行结果:g=2丄#incしde<stdio.h>void){int£fエノf2丿i;fl二・丄;pHntf("%d%d"jfエ,f2);fo«kろ;k=lO;i++){f=fエ+f2;pHctf(〃%d"ノf);if(i%5==O)p-任"'ハ");fl=f2;f2ゴ;)prMtf(〃、ハ");)运行结果:112ろ5813223455#況cルイe<stdio.h>#況cルイe<math.h>void){mt厶れ;f。イれ=2;バく=20;ハ++) {的平方根并取整mttehp=a'ハt)sqrt(ハ); 〃sqrt(ハ)求出的平方根并取整fo《i=2;i<=temp;i++)if(ハ%に=つ)break;if(i>tei^\p)pn,ハtf("%d",バ);1pバハtf("ヽハウ;)运行结果:235712231719^includeくstdio.k〉constiハtM=20;voidkv\ain() {mti,C2ノC3ノCS;c2二c3=cS=O;iく=M;i++){if(i%2==O)C2++;if(i%ろ==O)cろ++;if(i%5==。)CS++;1printf(H%d%d%d'八"'c2ノcろノC5);)运行结果:20(04#includeくstdio.k〉void){Mtしs;fo《iニ[バ=O;iくエ5;i++){if(i%2==Oロi%ろ==。)continue;printf("%d",i);s+=i;1所れ玳"%d\ババ);运行结果:1S7111ろろ7ー、选择题(共20分,每小题2分)I1n当处理特定问题时的循环次数已知时,通常采用的语句是()。°a.forwk"ed。-whileswitch题目2在switc人语句的每个case块中,假定都是以break语句结束的,则此switc人语句容易被改写成的语句是()。'a.for俗b.ifdowhile题目3nfor语句能够被改写成的语句是()。a.复合rb.ifr ,c.switchd.while题目4下面循环语句执行结束后输出的i值为(forfmti=O;トれ;i++)if(i>ハ/2){c。”仅く,くくeれ山;break;}b.ハ/2+丄CC.ハ/2-1题目5在下面循环语句中,内层循环体S语句的执行总次数为(forfmt江つ;トハ;な+)forintj=i;ハハ;j++)S;Cレ.(ハ+1)/2d.ハ(ハ+丄)/2题目6在下面的イ。循环语句中,其循环体被执行的次数为(im.ti=O;doi++;a.4Cc.5题目7在下面的ー维数组定义中,有语法错误的选项是(「a.mtnロ={エノ2ノろ};'b.mta[lO]={O};iv^t4口;mta[S];题目8在下面的二维数组定义中,语法正确的选项是('a.mtロ;"レ.MtC.i八t“□[刃={{工,3,5},{2});Cd.mt〃□(ユつ);题目q假定一个二维数组的定义语句为“況ナ姉引[4]={{3メト{2,8,6}};”,则元素班勾[勾的值为()。-2「员4「C.6、’d.8题目ro假定一个二维数组的定义语句为“況ナ姉引[4]={{3,叼,{2,8,6}};”,则元素班2兀勾的值b.4C.8「イ.らn二、判断题(共20分,每小题エ分。叙述正确则回答“是",否则回答“否")n题目1エ在执行"t卯edef('ntDntaTgpe;”语句后,标识符DataTgpe与保留字mt具有完全相同的含义和作用。对题目12在switcス语句中,每个case和冒号之间的表达式只能是常量。 对为了结束本层循环类语句或switch语句的执行过程,在语句体中需要使用ルeak语句。对题目ユ4在程序中执行到レセnk语句时,将结束所在函数的执行过程,返回到调用该函数的位置。在程序执行完成任一个函数调用后,将结束整个程序的执行过程,返回到操作系统或C语言集成开发环境界面窗口。错假定一维数组的定义为“ckaド讥8];”,则该数组所含元素的个数大于8。错题目I7假定二维数组的定义为“況ta[可]勺;”,则该数组所占存储空间的字节数为60。对题目I8假定二维数组的定义为“Mara[M][Nj;",则该数组所含元素的个数为M+M错假定二维数组的定义为"do・レ他则每个数组元素的行下标取值范围在。〜Mー丄之间。对假定二维数组的定义为‘a。・b/c 则每个数组元素的列下标取值范围在0〜N之间。错题目2丄存储ー个空字符串需要占用〇个字节的存储空间。错题目22使用"%pedefchar 口。][5。];"语句定义标识符88为含有2-0行5•0列的二维字符数组类型。对题目23存储字符”’需要占用1个字节的存储空间。对题目24空字符串的长度为1。错题目2s字符串"a:\\xxk\'数据"的长度为ユ3。错为了存储ー个长度为八的字符串,所使用的字符数组的长度至少为ハ+1。对题目27strcmp函数用于进行两个字符串之间的比较。对题目28strcpg函数用于把ー个字符串拷贝到另ー个字符数组空间中。对题目2Qー个二维字符数组ぐムオ[2。]能够最多存储q个字符串。错题目30一个二维字符数组〃[レ2J[2OJ能够存储的每个字符串的长度不超过20。错三、填空题:写出下列每个程序运行后的输出结果(共40分,每小题4分)题目31#includeくstdJo.h>voidMaimQ{intX=5;switck(2*x-3){case4:printf("%d",x);case7:printf("%d",2*x+*);caseユ。:printf("%A,,>3*x-l);break;default:priiatf("%s"j"default\n");题目ろ2#incレdeくstdio.K〉voidkvuu•れ〇{mti$=。;for(に工;卜=5;i++)s+=i*i;prmtf(Hs=%d、れ〃J);}S=55题目ろろ#incレdeくstdiOレ〉void{mt厶sl=つノS2ニ。;forfi二つ;トエつ;i++)s丄+=i;elses2+=i;prMtf("%d%d'れ〃バエノs2);エフニSつ二£つ二てつプ£ブてナ.J)p)OA,0て二Wハ“?5U8く”0[P)5)タPカドUイ#S£目補。て,二6(依ヘア%二自加〃メf-U二・6(u)刃!v/mf二二"9ニレjw}0VノりW!00ハく”0ア叩UJ#力6日潴OZSてfo《iニ[;k=M;i++){if(i%2==O)c2++;底,%ろニニ。)cろ十+;沟’%5・ニニ。)c5什;)p/Mtf("%4%d%4\ベノc2,cろ,。5);)丄。G4题目ろお#incレdeくstdio.h)void(Mtisあ《エ工丿二。パく1。ス'++){if(i%ろニニ。)coれガれ〃e;s+=i;)pn'ハ七f("%d\ハ、s);27题目37#incレdeくstdio.h〉voidルx〃況()(mt凯8]={丄2ノろ/2d41ノ55ノeろノ72ノ4。};mti,il=O,i2=O;f。イ‘二つ;iく8;i++)if(ギ[%2==1)il++;else汉++;prMtf(〃%d%d'心,江ノ2);144题目38#i八eludeくstdio.h>mt41つ卜{4ノ54ユ5ノ20ユろユ2,7ノ8,铅;voidha〃況〇(mtg$[4]=<9;for(につ;卜丄つ;i++){switch(如コ%4){caseO:s[O]^=a[i];break;case丄:s[l]-t-=a[i];break;case2:s[2]-h=a[i];break;default:s[3]-p=a[i];break;))for(たつ;Z<4;i++)pHntf(〃%d"凤①;)4427622题目39#iハcレdeくstdio.h〉voidwuガn(){chara[]-uabcdbfbgacd";intil=O,i2=O,i=O;进a|7J=='a')は++;if(a[i]=='b')i2++;i++;]prM玳"%d%d%ス5",江メ2り;3エ1题目4。#incbdeくstdi。.h>voidMA<am(){mta[可[4]={]エ,2,7,8レ{5,6,工。通],{9コ2,ち4司mtホ=4口冋;mtij;for(7=0;iくう;i++)for(j=0;j<4;j++)ー血⑦ー)麻=a皿pn'ntf("%Wゝハ",れウ12四、简答题:根据下列每个题目要求编写程序(共20分,每小题4分)题目41编写ー个函数,函数头格式为"do・勿eMenMdo・レ他mj,ntハ)”,要求返回二维数组姉mJS]中所有元素的平均值,假定在计算过程中采用变量v存放平均值。doubleMean(doublea[M][N],intmj'ntハ)(intij;doublev-O.O-,for(i=。;i<M;i++)foQ=。;jくハ;j++)v>=即コ。J;v/=m*n;returnv;1题目42编写ー个递归函数"ハtFF(intn口,/,ハtハ)”,求出数组。中所有パ个元素之积并返回。

MtFF(inta[]jint八){mtmu(=l;设れニ=l)n/V〃(・=〃QJ;elsekv\ul=a[ia-l]^FF(a^-l);returnmu/;1/^voidmam()int 〃[お卜{丄,2ノろノ4ノ5・ノG);p/M玳"%dゝ心,FF(。ル));11题目43+1/ハ>5编写一个主函数,利用wMe循环,求出并显示满足不等式ユ+丄/2+1/3+的最小+1/ハ>5#include<stdio.h>voidmain()(inti=0;doubles=0;〃或inti=1;doubles=1;while(s<5)s+=(double)1/++i;printf("n=%d\n",i);)题目44n编写ー个主函数,求出满足不等式22+42+...+ハ2<1•。0。的最大八值,假定分别用i和5作为取偶数值和累加值的变量,并限定使用do循环编程。#incレdeくStdio.h〉voidma/n,0(inti=。;〃用i作为依次取值偶数的变量intS=。;〃用S作为累加变量do{i+=2;S+=f*l;}wんレ(sくエ。。。);"证筑"ハ=%d、ハ"--2);)n题目45编写一个主函数,计算并输出丄2+22+,.小ハ2值,其中れ值由键盘输入。#includeくstdi0.h>void{认セi;//用i作为计数(循环)变量況亡s=。;〃用s作为累加变量mtハ;pバれセヤ"输入一个自然数:り;se4ハf(〃%d〃ノ&ハ);fo«i=l;k=ハ;i++)s+=西;pババtf(〃s=%d、ハ〃メ);)ー、选择题(共ろつ分,每小题2分)在下面的函数声明语句中,存在着语法错误的是( )a.AA(7パ亡〃ノmtレ)レ.AAfmt?mt)c.AAfmta;intb)'d.AA(Mtajikxt)题目2い在下面的保留字中,不能作为函数的返回值类型的是()。a.void'•c.enumd.long题目3假定p是ー个指向float型数据的指针,则p+エ所指数据的地址比p所指数据的地址增加的字节数为()。「丄「b.26c.4「d.8题目4假定〃为ー个数组名,在下面的表达式中,存在语法错误的是()〇「a.a[i]b.题目s用cahc函数创建具有1。个整型元素的一维数组的正确语句是( )。mtまp=cH/oc(エつノ2);mt^p-calloc(lO);•c.mtヤニcn"oc(lつノ4);itp=malloc(10)题目6假定变量ホ定义为"iハtm=7;",则下面正确的语句为( )。a.mtp=&m;'•b.mt*p=&m;iハtint火p=m;题目?假定k是ー个double类型的变量,则定义变量p的正确语句为( )。doublep=&k;mt*p=&k;double&pメk;ckarヤ="Tんmkyou!11;若有语句为“心土。[1つレM*pa=a;つ要把数组〃中下标为ろ的元素值赋给x,则不正确的语句为()。a.x二pa[ろ];'b,x=*(〃+ろ);「&x-a[5];'•d.x=*pa+ろ;题目qr假定有语句为“以tb[lO];int*pげ,则下面不正确的赋值语句为( )。'a.pb-b;rb.pb=&b[O];c.pb=b+2;'•d.pb-b[5];题目1。己知‘'iハを*p二ホaHoc(lOO);",要释放?所指向的动态内存,正确的语句为( )。free伊);freep;free(*p);rd.free[p];题目1丄在程序的ー个文件中定义的函数,若要在另ー个文件中调用,则必须在这另ー个文件中给出该函数的()。“a原型语句rb.参数表「c.函数名「d,返回类型题目12n假定一个函数定义为"staticMtf工(Mtx』れtg){ド况〃れれx+g;}”,该函数名称为( )。'a.static'b.mtreturn题目1ろn-假定一个函数的原型语句为“況t很レー个整型数组为“ス。J,则下面函数调用表达式不正确的是()。'a.ff(a)行b.ff(a[O])rc.仟(a+刃・メ或&姉。1)题目14n假定一个函数的数组参数说明为。ん^・口,与之等价的指针参数说明为(a.charac.a'd.cka^a题目15假定一个函数的二维数组参数说明为Mar 与之等价的指针参数说明为()。'•a.char(*w)[Nj‘レ,char*w[W]c.char(まw)N'd.cha^a否则回答"否”)二、判断题(共ろつ分,每小题2分。叙述正确则回答“是",否则回答"否”)11题目16在C语言中,ー个函数由函数头和函数体组成。题目I7在函数模块之外定义的变量称为全局变量,若没有被初始化则系统隐含对它赋初值0。题目I8如果一个函数只允许同一程序文件中的函数调用,则不应在该函数定义的开始前加上保留字static〇如果在ー个函数体中又出现对自身函数的调用,此种函数调用被称为递归调用。调用系统函数时,要先使用#讥cルイe命令包含该系统函数的原型语句所在的系统头文件。题目2エ函数形参变量不属于局部变量。题目22假定p所指对象的值为2S,p+工所指对象的值为4ら,则・卩++的值为46。题目23假定p所指对象的值为25,p+丄所指对象的值为4ら,贝リ・++p的值为25。题目24假定p所指对象的值为25,p+丄所指对象的值为46,则执行・(2++)运算后,ア所指对象的值为4E。题目25假定a是一个指针数组,则a+i所指对象的地址比a地址大4*(字节。若要把ー个整型指针P转换为字符指针,则采用的强制转换表达式为(cんJr*)ハガ对题目27假定一个数据对象为讥び类型,则指向该对象的指针类型仍为トt・类型。 错题目28假定X为一个简单变量,则&X表示X的地址。对题目29若?指向X,则・p与X的值不同。错题目3(9NULL是ー个符号常量,通常作为空指针值,它代表的值为0。对三、写出下列每个程序运行后的输出结果(共20分,每小题4分)题目31#incレde・くStdio.h〉intWRintx,inty){x=x+y;g=x+g;returnx+y;voidha〃況〇(mtx=5\y=7;mtz=WF(x'g);p片れtf(〃z=%d'ハ"*);Z=31题目ろ2#inclixdeくstdio.h)#LcレdeくstnMgム〉voidfun(ckarss口);voidmam(){ckarS[25]=〃つ12ろ456789”;&m(s);print任"%sゝバハ);voidfb(ハ(charssロ){mti,れニst"eHss);forfi二つ;トハ/2;i++){ckarc=ss口;ssロコ=ss[nTrコ;ss[ハーItコ二。;987654321(91#inc#incしdeくstdio.K)iiatCouiat(inta[]jiiatれ,mtx)]/ntしC=O;fo4た(9;kハ;i++)if(〃ロコ>x)C++;returnc;)voidm^/n(){mta[8]={2。ユ5ノろ2ノ47ノ24,ろらノ28ノ7。};mtレニC。“パt(“ノ8ノろつ);pn•ハtf("レニ%d、ハ"ノレ);题目33(++ド”〉!匕=ル。リ。二S?)(X用!’V’Vゆ头りVIフWく“。!卩算ン2卩川つ刈#dS它日潴d计=s(f(U"”\F%=5"加u.udf++d*二十5(184リンス【トニイ>OJfd*つ=5フu.J48'ガUごb'Z'S'G}二[8]リ”!}()u"wP!0Aくケ0ゆ叩uj#カ它自潴か二qif(〃ロコくx)s+=〃ロコ;returns;1voidmam(){mt4[8卜(5ユつユ5ノ8ユ2J3汽ノ2。};MtレニしA(ク石ユつ);mtc=LA(〃+2ノ£ノ丄つ);prMtf(〃%d%d\れ〃ノんc);)132.0四、写出下列每个函数的功能(共2つ分,每小题4分)题目36doubleSF(doub(ex?mt八)]〃れ为正整数doublep=lj=丄;mtf;For(i=l;トニれ;i++){p*=x;s+二p;returns;函数功能为:计算X+X2+X3+ +Xn的值并返回。题目37intSG(Mtx){ //X为大于等于2的整数int1=2.;wん7e(7*k=x){iF(x%i==O)break;i++;if(i・Iく=x)returnO;elsereturn1;)函数功能为:判断ー个整数是否是质数(素数),若是则返回3否则返回。。r题目38nmtW8(mt"ロノiハtれノiハtx){forfmti=O;kハ;i++)return〇;从数组讥ハ]中顺序查找值为X的元素,若查找成功则返回工,否则返回oJmtfunfmtMt八)(mtfunfmtMt八)(mtc二。staticmtb=2;if(Mくb|[れくレ)returnekeif(kv\%b==O&&ハ%レ二=。){,ニレ;returnメルれ(か/レノ"レ);}eke{レ++;returnfuハ(ホノハ);}函数功能为:ー个递归函数过程,求出两个自然数が和れ的最小公倍数。题目4。mtLK(doubteaロ,Mtn){doubles二つ;mt,四二。;forfiニつ;,くれ;i++)s+二〃UJ;题目3<?s/=n;fo《i=0;iくハ;ル+)—ロ>=$)が卄;returnm;)函数功能为:求出并返回数组〃的れ个元素中大于等于平均值的元素个数。《C语言程序设计》作业4解答ー、选择题1.假定有“str〃比BOOK{claartitle[4O];floatprice;};structBOOK*book;99,则不正确的语句为(A)〇structBOOK*x=i^alloc(book);structBOOKx={"C++Prograw\w\iv^g,1,2.7,O\;structBOOK*x-^alloc(sizeof(structBOOK));structBOOK**x=&book;定有“structBOOK{chartitle[4O];floatprice;}book;99»则正确的语句为(B)〇A.structBOOKx=&book;B-structBOOK*x=&book;structBOOKx=calloc(BOOK);

structBOOK*x=B0OK;3.表示文件结束符的符号常量为(C)。A.eofB.EofC.EOFA.eofB.EofC.EOFP.feof4.C语言中的系统函数fopen()是4.C语言中的系统函数fopen()是()ー个数据文件的函数。A・读取8.写入C,关闭P.打开.从ー个数据文件中读入以换行符结束的一行字符串的函数为(8A.gets()8.A.gets()8.陟ts()C.getc()

温馨提示

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

评论

0/150

提交评论