C语言上机考试_第1页
C语言上机考试_第2页
C语言上机考试_第3页
C语言上机考试_第4页
C语言上机考试_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

.一、 单项选择题号:4889以下函数调用语句中,实参的个数是().exce((v1,v2),(v3,v4,v5),v6);、3B、4C、5D、6//(v1,v2)是一个逗号表达式,(v3,v4,v5)也是一个逗号表达式答案:A题号:4093关于return语句,下列正确的说法是().A、可以在同一个函数中,出现多次B、在主函数和其他函数中 ,均可出现C、必须在每个函数中,出现D、只能在除主函数之外的函数中 ,出现一次只能执行其中的一个的return语句。并且函数遇到return语句,结束函数的执行。答案:A题号:4535数组名作为实参数传递给函数时 ,数组名被处理为().、该数组的首地址B、该数组的元素个数、该数组中各元素的值Word资料.、该数组的长度答案:A题号:4525在C语言的函数中,下列正确的说法是().A、数组名不能作形参B、可以有也可以没有形参C、形参必须是变量名D、必须有形参答案:B5. 题号:4083以下正确的函数定义形式是 ().A、doublefun(intx,inty)B、doublefun(intx;inty)// 错在分号C、doublefun(intx,y);// 错在形参y没有类型D、doublefun(intx,inty);// 错在函数头后没有分号答案:A6. 题号:4232C语言程序中,必须有的函数是().A、main()B、#include"stdio.h"、scanf、printf答案:AWord资料.题号:4048下面对函数的叙述,正确的是().A、函数中无论是否有 return语句,都能返回正确值B、函数中没有 return语句,说明不带回值、函数不能嵌套定义、函数的返回值是通过return语句获得的答案:C题号:4073在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 ().、传递方式由用户指定B、由实参传给形参,再由形参传回实参、地址传递、单向值传递答案:D题号:5119下列关于函数的叙述中正确的是 ().、每个函数都可以单独运行主函数可以单独运行。其它的函数都需要被调用才能被执行。B、在一个函数内部可以定义另一个函数 //不可以嵌套定义、每个函数都可以被单独编译、每个函数都可以被其他函数调用(包括main()函数)//不包括主函数答案:C10.题号:4787Word资料.设函数的调用形式如下:f((x1,x2),(y1,y2,y3)), 则函数有()个形参.、5B、3C、2D、4答案:C11.题号:4901在C语言中,形参的缺省存储类是().、staticB、registerC、autoD、extern答案:C12.题号:4507C语言规定,在一个源程序中,main()函数的位置.、必须在最开始B、必须在系统调用的库函数的后面、可以任意、必须在最后答案:C13.题号:4847以下叙述中,正确的是().A、main()可作为用户标识符,用以命名任意一个函数作为主函数Word资料.B、C语言程序将从源程序中,第一个函数开始执行C、可以在程序中,由用户指定任意一个函数作为主函数 ,程序将从此开始执行D、C语言规定必须用main()作为主函数名,程序将从此开始执行,在此结束答案:D14.题号:5137以下函数的类型是fff(floatx){printf("%d\n",x);}函数返回值省略。默认为int型。A、void 类型B、int类型C、与参数x的类型相同、无法确定答案:B15.题号:4403C语言规定,在一个C程序中,main()函数的位置().、可以在任意位置B、必须在程序的最后、必须在程序的开始、必须在系统调用的库函数之后Word资料.答案:A16.题号:4112C语言规定,函数返回值的类型是().A、由return语句中的表达式类型所决定B、由调用该函数时的主调函数类型所决定、由调用该函数时系统临时决定、由定义该函数时所指定的数值类型决定答案:D17.题号:4804以下所列的函数"首部"中,正确的是().()A、voidplay(inta,b)B、voidplay(inta,intb)C、voidplay(a:int,b:int)D、voidplay(aasint,basint)答案:B18.题号:4432有以下函数定义:intfun(doublea,doubleb){returna*b;}若以下选项中,所用变量都已正确定义并赋值 ,错误的函数调用是().、z=fun(fun(x,y),fun(x,y));B、z=fun(fun(x,y)x,y);C、if(fun(x,y)){⋯⋯}Word资料.D、fun(x,y);答案:B19.题号:5050对于void 类型函数,调用时不可作为().、if语句的成分语句B、表达式、循环体里的语句、自定义函数体中的语句无返回值函数只能以语句形式调用。不可以作为表达式或实参答案:B20.题号:4269若使用一维数组名作函数实参 ,则以下正确的说法是().A、必须在主调函数中,说明此数组的大小B、实参数组类型与形参数组类型可以不匹配、实参数组名与形参数组名必须一致、在被调用函数中,不需要考虑形参数组的大小答案:A21.题号:4696在C语言中,调用函数除函数名外,还必须有().、实际参数B、()、函数预说明、函数返回值Word资料.答案:B22.题号:4892以下错误的描述是:函数调用可以().、做为一个函数的实参B、做为一个函数的形参、出现在一个表达式中、出现在执行语句中函数调用形式一共有三种:独立语句形式。表达式或函数的实参答案:B23.题号:4256当调用函数时,实参是一个数组名,则向函数传送的是().、数组每个元素中的值B、数组的首地址、数组的长度、数组每一个元素的地址答案:B24.题号:5014若用数组名作为函数的实参 ,传递给形参的是().、数组的首地址B、数组元素的个数、数组第一个元素的值、数组中,全部元素的值答案:AWord资料.25.题号:4843如果在一个函数中的复合语句中 ,定义了一个变量,以下正确的说法是().、该变量在本程序范围内均有效B、该变量只在该复合语句中 ,有效C、该变量在该函数中,有效D、该变量在主函数中,有效答案:B26.题号:4319C语言中,规定,程序中,各函数之间().、既允许直接递归调用也允许间接递归调用B、允许直接递归调用不允许间接递归调用、不允许直接递归调用允许间接递归调用、不允许直接递归调用也不允许间接递归调用答案:A27.题号:5062凡是函数中,未指定存储类别的局部变量 ,其隐含的存储类别为().A、自动(auto)B、静态(static)C、外部(extern)D、寄存器(register)答案:A28.题号:4672以下叙述中,正确的是().Word资料.A、构成C程序的基本单位是函数B、main()函数必须放在其它函数之前、所有被调用的函数一定要在调用之前进行定义、可以在一个函数中,定义另一个函数答案:A29.题号:4236全局变量的定义不可能在 ().、最后一行B、文件外面、函数内部、函数外面答案:C30.题号:4754以下对C语言函数的描述中正确的是 ().、C程序中有调用关系的所有函数必须放在同一个程序文件中B、C函数既可以嵌套定义又可以递归调用 //不可以嵌套定义C、函数必须有返回值,否,则不能使用函数//函数返回值可以为void、C程序必须由一个或一个以上的函数组成答案:D31.题号:4045在C语言中,变量的隐含存储类别是().、staticB、autoWord资料.、无存储类别、extern答案:B32.题号:4578若已定义的函数有返回值 ,则以下关于该函数调用的叙述中 ,错误的是().、函数调用可以作为一个函数的形参B、函数调用可以作为独立的语句存在、函数调用可以作为一个函数的实参、函数调用可以出现在表达式中,答案:A33.题号:4537以下正确的函数声明语句是 ().A、intadd(inta,intb)//少了分号。不是语句。B、doubleadd();C、intadd(chara[][]);//数组第二维长度不可省略D、charadd(chara,b);//b没有数据类型答案:B34.题号:4436已知year为整型变量,不能使表达式(year%4==0&&year%100!=0)||year%400==0 的值为"真"的数据是().、1990B、1996C、2000Word资料.D、1992答案:A35.题号:5040以下叙述中,不正确的是().、在一个函数内定义的变量只在本函数范围内有效B、在一个函数内的复合语句中 ,定义的变量在本函数范围内有效 //在复合语句内有效、函数中的形式参数是局部变量、在不同的函数中,可以使用相同的名字的变量答案:B36.题号:3986函数定义时的参数为形参 ,调用函数时所用的参数为实参 ,则下列描述正确的是().A、实参与形参是双向传递 //单向传递。由实参单向赋值给形参B、形参和实参可以同名、实参类型一定要在调用时指定偷换概念。形参类型一定要在定义时给定。调用时,与函数名和实参变量名有关。与类型无关。D、形参可以是表达式//形参必须为变量答案:B二、 判断题==================================================题号:4018函数的嵌套调用中,被调用函数执行完成后 ,均返回主函数.返回上一级调用函数答案:错误Word资料.题号:4872函数在说明时,可以不定义函数的形参名 ,只指定函数相应位置上形参的类型 .函数说明语句的三种形式:intmax(inta,intb);// 与用户自定义函数中的形参变量名一样intmax(int,int);// 省略形参变量名intmax(intaa,intbb);// 与用户自定义函数中的形参变量名不一样答案:正确题号:4204函数中的形式参数是局部变量 .答案:正确题号:4577静态局部变量是在编译时被初始化的 ,故它只被赋初值一次.答案:正确题号:4846gets 函数是用来输入一个字符的函数 .//gets函数是用来输入一个字符串的。它以回车键结束。可以读入带空格的字符串。Word资料.答案:错误题号:5028静态局部变量在整个程序运行期间都不释放 .答案:正确题号:4767函数调用时,实参和形参在类型上应按位置与形参一一对应匹配 ;如果类型不匹配,通常编译器并不给出出错信息.答案:正确题号:4984一个C程序只能由一个主函数组成一个程序可以由一个或多个函数组成。但只能有一个主函数答案:错误题号:5013程序的基本组成单位是函数答案:正确10.题号:4587Word资料.语言的函数可以嵌套定义可以嵌套调用。不可以嵌套定义。答案:错误11.题号:4288函数定义当中的函数类型是 return语句中表达式的类型.//若return后的表达式的类型和函数返回值类型不一致时。系统自动将 return后的类型//转换为函数返回值的类型。答案:正确12.题号:4442C语言本身不提供输入输出语句 ,输入和输出操作是由函数来实现的 .答案:正确13.题号:4989C语言中return语句可以返回函数值.如果return语句后表达式的值与函数说明的类型不一致 ,则以return语句的表达式类型为准,系统将自行转换.答案:错误14.题号:4783通过return语句,函数可以带回一个或一个以上的返回值 .Word资料.//return 语句只能带回一个值。不能带回 2个或多个值。但地址传递可以。答案:错误15.题号:5084若一个函数的返回类型为 void,则表示其没有返回值.答案:正确16.题号:4175在C语言中,不允许函数嵌套定义,但函数可以嵌套调用.答案:正确17.题号:4689return 语句可以在同一个函数中出现多次 .但只能执行其中一个。且调用函数结束。答案:正确18.题号:4351所有定义在主函数之前的函数无需进行声明 .答案:正确Word资料.19.题号:4097每次调用函数时,都要对静态局部变量重新进行初始化 .//静态变量可以由系统进行初始化。也可以由用户进行初始化。但只初始化一次。生命 //周期是程序运行的整个时间。局部变量每次调用时都要进行初始化。答案:错误20.题号:4092在不同的函数中可以使用相同名字的变量 .答案:正确21.题号:4584函数调用时,要求实参与形参的个数必须一致 ,对应类型一致.答案:正确22.题号:4055C语言程序总是从main()函数开始执行.答案:正确23.题号:4161没有初始化的整型静态局部变量的初值系统均默认为 0.Word资料.答案:正确24.题号:4349在C语言的函数中,必须有形参.答案:错误25.题号:5108在C语言中,函数可以嵌套定义,但不能嵌套调用.答案:错误三、 填空题==================================================题号:4286在函数中,需要返回一个结果时,可以使用_____语句.答案:空 1:return题号:4371函数的_____调用是一个函数直接或间接地调用它自身 .答案:空 1:递归Word资料.题号:4333C语言中,格式输入操作是由库函数 _____完成的,格式输出操作是由库函数 _____完成的.答案:空 1:scanf空2:printf题号:4373C源程序中的主函数的名称必须是 _____。答案:空 1:main题号:4601下述函数的功能是_____。voidfunc(inta[],intn){inti,j;for(i=1;i<n;i++){for(j=i;j>0&&a[j]<a[j-1];j--){intt=a[j];a[j]=a[j-1];a[j-1]=t;}}}Word资料.答案:空 1:用冒泡法由小到大排序 【或】冒泡法排序 【或】排序【或】 由小到大排序题号:4885函数调用时的实参和形参之间的数据是单向的 _____传递.答案:空 1:值题号:4690如果函数不要求返回值,可用_____来定义函数为空类型.答案:空 1:void四、 程序设计==================================================题号:7041/*------------------------------------------------【程序设计】--------------------------------------------------题目:函数fact(x)的功能是求x!。编写main程序调用函数fact求解从m个元素选n个元素的组合数的个数。计算公式是:组合数= m!/(n!.(m-n)!) 。要求:m不能小于n,否则应有容错处理。Word资料.--------------------------------------------------注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。*********Begin********** 和********** End **********不可删除------------------------------------------------*/#include"stdio.h"longfact(intx)//函数返回值一定要定义为 long。因为阶乘值增长的很快。很容易超出 int的范围{longy;//y 是存放阶乘值的变量。所以要定义为长整型 i;y=1;for(i=1;i<=x;i++)y=y*i;returny;}main(){intm,n;longzhsgs;Word资料.printf("请输入m和n:\n"); scanf("%d%d",&m,&n);/**********Begin**********/while(m<n){printf("m和n输入错!请重新输入:\n");scanf("%d%d",&m,&n);}zhsgs=fact(m)/(fact(n)*fact(m-n));/********** End **********/printf("从%d个元素选%d个元素的组合数的个数是 :%d\n",m,n,zhsgs);getch();yzj();}yzj(){FILE*IN,*OUT;intn;inti;longo;IN=fopen("in.dat","r");Word资料.if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<5;n++){fscanf(IN,"%d",&i);o=fact(i);fprintf(OUT,"%ld\n",o);}fclose(IN);fclose(OUT);}示例代码:while(m<n){printf("m和n输入错!请重新输入:\n");scanf("%d%d",&m,&n);Word资料.}zhsgs=fact(m)/(fact(n)*fact(m-n));题号:6931/*------------------------------------------------【程序设计】--------------------------------------------------题目:对某一正数的值保留 2位小数,并对第三位进行四舍五入。注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。*********Begin********** 和********** End **********不可删除------------------------------------------------*/#include"stdio.h"#include"conio.h"voidTestFunc();floatfun(floath){/**********Begin**********/inti;//假设h=12.5489i=(int)(h*1000)%10;//i=(int)(12.5489*1000)%10=12548%10=8if(i>=5)Word资料.return(int)(h*100+1)/100.0;elsereturn(int)(h*100)/100.0;/********** End **********/}voidmain(){float m;printf("Enterm:");scanf("%f",&m);printf("\nTheresultis%8.2f\n",fun(m));TestFunc();}voidTestFunc(){FILE*IN,*OUT;ints;floatt;floato;Word资料.IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFileError");}for(s=1;s<=5;s++){fscanf(IN,"%f",&t);o=fun(t);fprintf(OUT,"%8.2f\n",o);}fclose(IN);fclose(OUT);}示例代码:inti;Word资料.i=(int)(h*1000)%10;if(i>=5)return(int)(h*100+1)/100.0;elsereturn(int)(h*100)/100.0;3. 题号:6993/*------------------------------------------------【程序设计】--------------------------------------------------题目:编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数 strcat)。例如,分别输入下面两个字符串:FirstString--SecondString程序输出:FirstString--SecondString注意:部分源程序存在文件 prog.c 中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*********Begin********** 和********** End **********不可删除*/Word资料.#include<stdio.h>#include<conio.h>#include<windows.h>voidfun(charp1[],charp2[]){/********** Begin **********/inti=0,j=0;while((p1[i])!='\0')i++;//求字符串p1的长度。while(p2[j]!='\0')// 遍历字符串p2{p1[i]=p2[j];// 注意下标变化的不同。i++;j++;}p1[i]='\0'; /********** End ***********/}NONO(){/* 本函数用于打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。 */Word资料.inti;FILE*rf,*wf;chars1[80],s2[40];rf=fopen("bc02.in","r");wf=fopen("bc02.out","w");for(i=0;i<10;i++){fscanf(rf,"%s",s1);fscanf(rf,"%s",s2);fun(s1,s2);fprintf(wf,"%s\n",s1);}fclose(rf);fclose(wf);}main(){chars1[80],s2[40];system("cls");printf("Enters1ands2:\n");scanf("%s%s",s1,s2);printf("s1=%s\n",s1);printf("s2=%s\n",s2);printf("Invokefun(s1,s2):\n");Word资料.fun(s1,s2);printf("Afterinvoking:\n");printf("%s\n",s1);NONO();}示例代码:char*point1,*point2;point1=p1;point2=p2;while((*point1)!='\0')point1++;while(*point2!='\0'){*point1=*point2;point1++;point2++;}*point1='\0';4. 题号:7002/*------------------------------------------------【程序设计】--------------------------------------------------Word资料.题目:能计算从1开始到n的自然数中偶数的平方的和,n由键盘输入,并在main()函数中输出。(n是偶数)注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。*********Begin********** 和********** End **********不可删除------------------------------------------------*/#include<stdio.h>void bky();intfun(intn){/**********Begin**********//********** End **********/Word资料.}main(){intm;printf("Enterm:");scanf("%d",&m);printf("\nTheresultis%d\n",fun(m));bky();}voidbky(){FILE*IN,*OUT;intt;into;intc;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFILEError");}OUT=fopen("out.dat","w");Word资料.if(OUT==NULL){printf("WriteFILEError");}for(c=1;c<=5;c++){fscanf(IN,"%d",&t);o=fun(t);fprintf(OUT,"%d\n",o);}fclose(IN);fclose(OUT);}示例代码:intsum,i;sum=0;for(i=2;i<=n;i=i+2){sum=sum+i*i;}return(sum);题号:6968/*------------------------------------------------Word资料.【程序设计】--------------------------------------------------题目:将100到200之间的素数及素数的个数打印出来。注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。*********Begin********** 和********** End **********不可删除------------------------------------------------*/#include"stdio.h"voidTestFunc();intfun(intm){/*********Begin**********/inti,k=1;if(m<=1)k=0;for(i=2;i<m;i++)if(m%i==0){k=0;break;}returnk;/********** End **********/Word资料.}main(){intm,k=0;for(m=100;m<200;m++)if(fun(m)){printf("%4d",m);k++;if(k%5==0)printf("\n");}printf("k=%d\n",k);TestFunc();}voidTestFunc(){FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen("in.dat","r");if(IN==NULL)Word资料.{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}for(i=0;i<10;i++){fscanf(IN,"%d",&iIN);iOUT=fun(iIN);fprintf(OUT,"%d\n",iOUT);}fclose(IN);fclose(OUT);}示例代码:inti,k=1;if(m<=1)k=0;for(i=2;i<m;i++)if(m%i==0)k=0;Word资料.returnk;题号:6959/*------------------------------------------------【程序设计】--------------------------------------------------题目:产生20个[30,120]上的随机整数放入二维数组 a[5][4]中,求每行元素的和。--------------------------------------------------注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。*********Begin********** 和********** End **********不可删除------------------------------------------------*/#include"stdlib.h"#include<stdio.h>void bky();voidrow_sum(inta[5][4],intb[5]){/**********Begin**********/Word资料./********** End **********/}main(){voidrow_sum();inta[5][4],b[5],i,j;for(i=0;i<5;i++)for(j=0;j<4;j++)a[i][j]=rand(120-30+1)+30;for(i=0;i<5;i++){for(j=0;j<4;j++)printf("%5d",a[i][j]);printf("\n");}row_sum(a,b);for(i=0;i<5;i++)printf("%6d",b[i]);printf("\n");Word资料.bky();}voidbky(){FILE*IN,*OUT;intm,n;inti[5][4];into[5];IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFILEError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFILEError");}for(m=0;m<5;m++)for(n=0;n<4;n++)fscanf(IN,"%d",&i[m][n]);row_sum(i,o);for(n=0;n<5;n++)Word资料.fprintf(OUT,"%d\n",o[n]);fclose(IN);fclose(OUT);}示例代码:inti,j;for(i=0;i<5;i++){b[i]=0;for(j=0;j<4;j++)b[i]=b[i]+a[i][j];}第六题的完整程序如下。已经在 dev-c++ 编译通过。#include<stdio.h>#include<stdlib.h>/*runthisprogramusingtheconsolepauseroraddyourowngetch,system("pause")orinputloop*/voidrow_sum(inta[5][4],intb[5]){Word资料./**********Begin**********/inti,j;for(i=0;i<5;i++){b[i]=0;for(j=0;j<4;j++)b[i]=b[i]+a[i][j];}/********** End **********/}intmain(intargc,char*argv[]){inta[5][4],b[5],i,j;//unsigned seed;//scanf("%u",&seed);//srand(seed);若是去掉上面的三句。则每次的运行结果都一样。//rand() 是无参函数。结果是 大于等于0的随机整数。随机整数与随机种子变量有关系。rand函数默认种子变量的值是1前面取消的3句的功能是改变随机函数的种子值。for(i=0;i<5;i++)for(j=0;j<4;j++)Word资料.a[i][j]=rand()%(120-30+1)+30;for(i=0;i<5;i++){for(j=0;j<4;j++)printf("%5d",a[i][j]);printf("\n");}row_sum(a,b);for(i=0;i<5;i++)printf("%6d",b[i]);printf("\n");return0;}题号:6945/*------------------------------------------------【程序设计】--------------------------------------------------题目 编写函数fun,它的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回。Word资料.例如:n=120时,函数值为239。注意:部分源程序存在文件 prog.c 中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*********Begin********** 和********** End **********不可删除*/#include<conio.h>#include<stdio.h>#include<windows.h>intfun(intn){/********** Begin **********//********** End ***********/}NONO(){/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */Word资料.FILE *wf;wf=fopen("a30.out","w");fprintf(wf,"%d\n",fun(120));fclose(wf);}main() /*主函数*/{system("cls");printf("%d\n",fun(120));NONO();}示例代码:inti,s=0;for(i=2;i<n;i++)if(n%i==0)s=s+i;return(s);题号:6901/*------------------------------------------------【程序设计】--------------------------------------------------题目 编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程: cos(x)-x=0的一个实Word资料.根。Xn+1=cos(Xn)迭代步骤如下:(1)取x1初值为0.0;(2)x0=x1,把x1的值赋给x0;(3)x1=cos(x0),求出一个新的x1;(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。程序将输出结果Root=0.739085。注意:部分源程序存在文件 prog.c 中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*********Begin********** 和********** End **********不可删除*/#include<conio.h>#include<math.h>#include<stdio.h>#include<windows.h>floatfun(){/********** Begin **********//********** End ***********/}Word资料.NONO(){/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */FILE*wf;wf=fopen("b100.out","w");fprintf(wf,"Root=%f\n",fun());fclose(wf);}main(){system("cls");printf("Root=%f\n",fun());NONO();}示例代码:doublex1,x0;x1=0.0;x0=x1;x1=cos(x0);while(fabs(x0-x1)>0.000001){x0=x1;x1=cos(x0);}return((float)x0);Word资料.9. 题号:6988/*------------------------------------------------【程序设计】--------------------------------------------------题目:编写函数判断一个整数 m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0。调用该函数找出100~200之间满足条件的所有数。*********Begin********** 和********** End **********不可删除------------------------------------------------*/#include<stdio.h>void bky();intsub(intm){/**********Begin**********/Word资料./********** End **********/}main(){inti;for(i=100;i<=200;i++)if(sub(i)==1)printf("%4d",i);bky();}voidbky(){FILE*IN,*OUT;intn;inti[10];into;IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFILEError");}Word资料.OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFILEError");}for(n=0;n<10;n++){fscanf(IN,"%d",&i[n]);}for(n=0;n<10;n++){o=sub(i[n]);fprintf(OUT,"%d\n",o);}fclose(IN);fclose(OUT);}示例代码:intk,s=0;do{s=s+m%10;m=m/10;}while(m!=0);Word资料.if(s%7==0)k=1;elsek=0;return(k);10.题号:6972/*------------------------------------------------【程序设计】--------------------------------------------------题目:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。例如:若程序执行时输入字符串为: mmkknnnppp从键盘上输入字符:n,则输出后变为:mmkkppp ,如果输入的字符在字符串中不存在,则字符串照原样输出。*********Begin********** 和********** End **********不可删除------------------------------------------------*/#include<stdio.h>void TestFunc();voidfun(chars[],charc){/*********Begin**********/Word资料./********** End **********/}main(){staticcharstr[]="mmkknnnppp";charch;printf("原始字符串:%s\n",str);printf("输入一个字符:");scanf("%c",&ch);fun(str,ch);printf("str[]=%s\n",str);TestFunc();}voidTestFunc(){FILE*IN,*OUT;chari[200];Word资料.IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFILEError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFILEError");}fscanf(IN,"%s",i);fun(i,'n');fprintf(OUT,"%s",i);fclose(IN);fclose(OUT);}示例代码:inti=0,j=0;while(s[i]!='\0'){if(s[i]!=c)s[j++]=s[i];i++;}s[j]='\0';Word资料.题目:函数fact(x) 的功能是求x!。编写main程序调用函数fact求解从m个元素选n个元素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!) 。要求:m不能小于n,否则应有容错处理。while(m<n){printf("m 和n输入错!请重新输入 :\n");scanf("%d%d",&m,&n);}zhsgs=fact(m)/(fact(n)*fact(m-n));题目:对某一正数的值保留 2位小数,并对第三位进行四舍五入。注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。inti;i=(int)(h*1000)%10;if(i>=5)return(int)(h*100+1)/100.0;elsereturn(int)(h*100)/100.0;题目:编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数 strcat)。例如,分别输入下面两个字符串:FirstString--SecondString程序输出:FirstString--SecondString注意:部分源程序存在文件 prog.c 中。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。char*point1,*point2;point1=p1;point2=p2;while((*point1)!='\0')point1++;while(*point2!='\0'){*point1=*point2;point1++;Word资料.point2++;}*point1='\0';题目:能计算从1开始到n的自然数中偶数的平方的和, n由键盘输入,并在 main()函数中输出。( n是偶数)注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。intsum,i;sum=0;for(i=2;i<=n;i=i+2){sum=sum+i*i;}return(sum);题目:将100到200之间的素数及素数的个数打印出来。注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。inti,k=1;if(m<=1)k=0;for(i=2;i<m;i++)if(m%i==0)k=0;returnk;题目:主函数中产生 20个[30,120]上的随机整数存放到了二维数组 a[5][4]中,编写函数,求每行元素的和,到数组 b中。inti,j;for(i=0;i<5;i++){b[i]=0;for(j=0;j<4;j++)b[i]=b[i]+a[i][j];}题目 编写函数fun,它的功能是:计算正整数 n的所有因子(1和n除外)之和作为函数值返回。例如:n=120时,函数值为239。注意:部分源程序存在文件 prog.c 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。inti,s=0;for(i=2;i<n;i++)if(n%i==0)s=s+i;Word资料.return(s);题目 编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程: cos(x)-x=0 的一个实根。Xn+1=cos(Xn) 迭代步骤如下:1)取x1初值为0.0;2)x0=x1,把x1的值赋给x0;3)x1=cos(x0),求出一个新的x1;4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。程序将输出结果Root=0.739085。注意:部分源程序存在文件prog.c中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。doublex1,x0;x1=0.0;x0=x1;x1=cos(x0);while(fabs(x0-x1)>0.000001){x0=x1;x1=cos(x0);}return((float)x0);题目:编写函数判断一个整数 m的各位数字之和能否被 7整除,可以被7整除则返回1,否则返回0。调用该函数找出100~200之间满足条件的所有数。intk,s=0;do{s=s+m%10;m=m/10;}while(m!=0);if(s%7==0)k=1;elsek=0;return(k);题目:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。例如:若程序执行时输入字符串为: mmkknnnppp从键盘上输入字符:n,则输出后变为:mmkkppp,如果输入的字符在字符串中不存在,则字符串照原样输出。inti=0,j=0;while(s[i]!='\0'){if(s[i]!=c)s[j++]=s[i];i++;}s[j]='\0';Word资料.题目:请编写一个函数 voidfun(intm,intk,intxx[]) ,该函数的功能是:将大于整数 m且紧靠m的k个素数存入xx所指的数组中。例如,若输入 17,5,则应输出: 19,23,29,31,37。注意:部分源程序存在文件 prog.c 中。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。inti,j,total=0;int*p_xx=xx;for(i=m+1;;i++){for(j=2;j<i;j++)if(i%j==0) break;if(i<=j){*p_xx=i;p_xx++;total++;if(total==k){*p_xx='/0';break;}}}题目:编程将两个字符串连接成一个字符串,并将连接后的字符串按升序排列。如字符串 s1的值为"pear",字符串s2的值是"apple", 连接后的字符串存入字符数组 s3,排序后得到"aaeelpppr" 。【要求】1)函数voidprocess(chars1[],chars2[],chars3[]); 将字符数组 s1和s2连接起来,连接后的字符串存入字符数组 s3,用冒泡算法对数组 s3进行升序排列。(2)主函数- 在主函数中定义 s1,s2两个字符数组,分别用 "pear"初始化s1,"apple" 初始化s2;定义一个字符数组 s3。- 调用process 函数,将字符数组 s1和s2连接起来,连接后的字符串存入字符数组 s3,用冒泡算法对数组 s3进行升序排列。输出s3的值。for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(s3[j]>s3[j+1]){t=s3[j];s3[j]=s3[j+1];s3[j+1]=t;}}}题目:从字符串s中删除指定的字符 i,k=0;Word资料.for(i=0;s[i]!='\0';i++)if(s[i]!=c)s[k++]=s[i];s[k]='\0';题目:编写程序完成将一个数字字符串转换成相应的正整数,例如:字符串 "3456"转换成整数值 3456。要求:intprocess(chars[]): 函数实现将字符数组 s中存储的数字字符串转换成数值,并返回数值;主函数中,调用 process() 函数,并输出结果。【参考代码】intsum=0,i;for(i=0;s[i]!=0;i++){sum=sum*10+s[i]-48;}returnsum;题目:将s所指字符串中 ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在 t所指的数组中。【参考代码】inti,j=0,n;n=strlen(s);for(i=0;i<n;i++)if(s[i]%2)t[j++]=s[i];t[j]=0;题目:编写函数fun其功能是:根据整型形参 m,计算如下公式的值: y=1/2!+1/4!+ ⋯+1/m! (m是偶数)doubley=0.0;inti,j;doubles=1;for(i=2;i<=m;i+=2){for(j=i-1;j<=i;j++)s=s*j;y=y+1.0/s;}returny;题目:编写函数求 3!+6!+9!+12!+15+18!+21! 。【参考代码】inti,j;floatt,s=0;for(i=3;i<=n;i=i+3){t=1;Word资料.for(j=1;j<=i;j++)t=t*j;s=s+t;}return(s);题目:输出20-2000所范围内有的回文数。提示:回文数的各位数字正序和倒序一样。如: 22,323,1221,都是回文数。具体要求如下:(1) 函数intprocess(intn); 判断一个数是不是回文数,如果是,返回 1,否则返回 0;(2) 主函数调用函数找出 20-2000中的回文数并输出,每行输出 6个。【参考代码】intap=0,p=n;while(p!=0){ap=ap*10+p%10;p=p/10;}if(ap==n)return1;elsereturn0;题目 请编写函数fun,其功能是:计算并输出 3到n之间所有素数的平方根之和。例如,在主函数中从键盘给 n输入100后,输出为:sum=148.874270 。注意:要求n的值大于2但不大于100。部分源程序在文件 prog.c 中。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。【参考代码】inti,j=0;doubles=0;for(i=3;i<=n;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j==i) s=s+sqrt(i);}returns;题目:要求:求100以内的所完数。所谓完数,是指该数的因子之和(不包含本身)等于该数本身的数,例如:6=1+2+3具体要求如下:(1) 函数intprocess(intn); 判断一个数是不是完数,如果是,返回 1,否则返回 0;Word资料.(2) 主函数调用函数找出 100以内所有的完数并输出。【参考代码】ints=0,i;for(i=1;i<n;i++){if(n%i==0)s=s+i;}if(s==n)return1;elsereturn0;题目:请编写一个函数 voidfun(intm,intk,intxx[]) ,该函数的功能是:将大于整数 m且紧靠m的k个素数存入xx所指的数组中。例如,若输入 17,5,则应输出: 19,23,29,31,37。inti,j,total=0;int*p_xx=xx;for(i=m+1;;i++){for(j=2;j<i;j++)if(i%j==0) break;if(i<=j){*p_xx=i;p_xx++;total++;if(total==k){*p_xx='/0';break;}}}编程将两个字符串连接成一个字符串,并将连接后的字符串按升序排列。如字符串 s1的值为"pear",字符串 s2的值是"apple", 连接后的字符串存入字符数组 s3,排序后得到"aaeelpppr" 。for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(s3[j]>s3[j+1]){Word资料.t=s3[j];s3[j]=s3[j+1];s3[j+1]=t;}}}题目:从字符串 s中删除指

温馨提示

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

评论

0/150

提交评论