C语言开发基础(习题卷40)_第1页
C语言开发基础(习题卷40)_第2页
C语言开发基础(习题卷40)_第3页
C语言开发基础(习题卷40)_第4页
C语言开发基础(习题卷40)_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

试卷科目:C语言开发基础C语言开发基础(习题卷40)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC语言开发基础第1部分:单项选择题,共70题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.以下选项中不能作为C语言合法常量的是()。A)'cd'B)0.1e+6C)"a"D)'\011'答案:A解析:常量包括整型常量、实型常量、字符常量和字符串常量等。单引号表示字符常量,但不能包含字符串。表达字符串常量时需用双引号。A项不合法,在C语言中,字符常量是用单引号括起来的一个字符,'cd'包含了2个字符;B项合法,0.1e+6是实型常量的指数形式,代表0.1×106;C项合法,"\a"是合法的字符串常量,\a是一个非打印的转义字符表示响铃;D项合法,'\011'是一个字符常量,\011是一个用3位八进制表示的转移字符。答案选择A选项。[单选题]2.设有以下语句:charstr1[]="string",str2[8],*str3,*str4="string";则下列选项中,______不是对库函数strcpy的正确调用,此库函数用来复制字符串。A)strcpy(str1,"HELLO1");B)strcpy(str2,"HELLO2");C)strcpy(str3,"HELLO3");D)strcpy(str4,"HELLO4");答案:C解析:[单选题]3.设有说明语句:Char*str="\t\'c\\Language\n";,则指针str所指字符串的长度为____A)13B)15C)17D)说明语句不合法答案:A解析:[单选题]4.在C#程序中,下述程序的运行结果是()intc;c=2;Console.WriteLine(c);Console.WriteLine(c++);Console.WriteLine(c);A)222B)233C)223D)344答案:C解析:[单选题]5.有以下程序(提示:程序中fseek(fp,-2*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移2*sizeof(int)字节):#include<stdio.h>Main(){FILE*fp;inti,a[4]={1,2,3,4},b;Fp=fopen("data.dat","wb");For(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);Fclose(fp);Fp=fopen("data.dat","rb");Fseek(fp,-2*sizeof(int),SEEK_END);Fread(&b,sizeof(int),1,fp);从文件中读取sizeof(int)字节的数据到变量b中*/Fclose(fp);Printf("%d\n",b);}执行后输出的结果______。A)2B)1C)4D)3答案:D解析:[单选题]6.如有定义语句inta[]={1,8,2,8,3,8,4,8,5,8};,则数组a的大小是__()____.A)10B)11C)8D)不定答案:A解析:[单选题]7.已有定义语句inTa[10],b[3][3];?,则以下对数组元素赋值的操作中,不会出现越界访问的是()A)a[-1]=0B)a[10]=0C)b[3][0]=0D)b[0][3]=0答案:D解析:[单选题]8.判断char型变量ch是否为小写字母的正确表达式为。A)'a'<=ch<='z'B)(ch>=a)&&(ch<=z)C)(ch>='a')||(ch<='z')D)(ch>='a')&&(ch<='z')答案:D解析:[单选题]9.软件详细设计产生的图如下:该图是()。A)N-S图B)PAD图C)程序流程图D)E-R图答案:C解析:N-S图是由若干基本框图构成的流程图,其特点是没有流程线;PAD图即问题分析图,它是一种由左往右展开的二维树形结构;程序流程图用于描述问题解决的过程和步骤,其中方框表示处理步骤,菱形框表示逻辑判断,箭头表示控制流向;E-R图即实体-联系图,用来描述现实世界的概念模型,构成元素有实体、属性和联系,分别用矩形、椭圆形和菱形表示。所以答案选择C选项。[单选题]10.关于全局变量的说法错误的是____。A)可以被多个模块共享B)降低了函数的通用性C)其初始值为随机数D)可以作为函数的实参答案:C解析:[单选题]11.C#语言中,下面4个选项中,均是合法的变量标识符的选项是()A)AP_0doB)floata0_AC)b-a123intD)_123tempINT答案:D解析:[单选题]12.下面关于for循环说法错误的是()A)在for循环中,步长为1,可以省略不写,若为其它值,则不可省略B)在for循环中,循环表达式也称为循环体C)for循环中的变量有且仅有一个D)for循环中的?单次表达式?、?条件表达式?和?循环体语句?都是选择项,即可以缺省只剩下?;?的空语句答案:C解析:[单选题]13.下列语句中符合C语言的赋值语句是()。A)a=7+b+c=a+7;B)a=7+b++=a+7;C)a=7+b,b++,a+7D)a=7+b,c=a+7;答案:D解析:[单选题]14.定义structst{intx;floaty;doublez;}b;则b是字节数。A)4B)8C)10D)16答案:D解析:[单选题]15.有以下程序:#include<iostream>Usingnamesapcestd;Intmain(){charA,B,C,d;a='\';b='\xbc';c='\0xab';d="\0127";cout<<a<<","<<b<<","<<c;return0;}编译时出现错误,以下叙述中正确的是()。A)程序中只有?a='\';?语句不正确B)?b='\xbc';?语句不正确C)只有?d="\0127";?语句不正确D)?a='\';?和?d="\0127";?语句都不正确答案:D解析:[单选题]16.87、若有说明:intn=2,*p=&n,*q=p,则以下非法的赋值语句是()。A)p=qB)*p=*qC)n=*qD)p=n答案:D解析:[单选题]17.设有说明int(*ptr)[M];其中标识符ptr是().A)M个指向整型变量的指针B)指向M个整型变量的函数指针C)一个指向具有M个整型元素的一维数组的指针D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量答案:C解析:[单选题]18.以下选项中关于C语言常量的叙述错误的是()。A)经常被使用的变量可以定义成常量B)常量分为整型常量、实型常量、字符常量和字符串常量C)常量可分为数值型常量和非数值型常量D)所谓常量,是指在程序运行过程中,其值不能被改变的量答案:A解析:[单选题]19.下列各选项都是在C程字中的注释,其中注释方法错误的是A)voidmain(/*intargc,char,*argv[]*/){}B)voidmain(){priremark*/ntf("ok");}C)voidmain(){inty=8*/;printf("%d",y);D)voidmain(){inty=8;printf("%d",y);*/}答案:B解析:[单选题]20.已知有声明?longx,y:?,且x中整数的十进制表示有n位数字(4<n<10),若要求去掉整数x十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是A)y=x/(10*(n-1))B)y=x%(10*(n-1))C)y=x%(long)pow(10,n-1)D)y=x%(10-(n-1))答案:C解析:[单选题]21.以下不能对一维数组a进行正确初始化的语句是()。A)inta[10]={10*1};B)inta[]={0};C)inta[10]=(0,0,0,0,0)D)inta[10]={1/2};答案:C解析:题号:55768[单选题]22.()。若程序中有宏定义行:#defineN100,则以下叙述中正确的是:A)宏定义行中定义了标识符N的值为整数100B)在编译程序对c源程序进行预处理时,用100替换NC)对c源程序进行编译时用100替换标识符ND)在运行时用100替换标识符N答案:B解析:[单选题]23.设有程序段intk=10;while(k)k=k-1;则下面描述中正确的是()。A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次答案:A解析:[单选题]24.若有说明:inta[10];则对数组元素的正确引用是()。A)a[10];B)a[3.5]C)a(5)D)a[10-10]答案:D解析:[单选题]25.已有定义?intx=4,y=3,z=5;?,下面4个程序段中有3个程序段的执行效果是相同的,另一个执行效果不同的是A)if(x>y)z=x,x=y.y=z;B)if(x>y){z=x,x=y,y=z;}C)if(x>y)z=x;x=y:y=z;D)if(x>y){z=x;x=y;y=z;}答案:C解析:[单选题]26.以下关于C语言的叙述中正确的是()A)C语言的数值常量中夹带空格不影响常量值的正确表示B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言中的注释不可以夹在变量名或关键字的中间答案:D解析:C语言的数值常量中不能夹带空格,所以A错误。C语言中的变量都必须先定义再使用,对变量的定义通常放在函数体内的前部,但也可以放在函数外部或复合语句的开头,不能随便放置,所以B错误。在C语言中运算符两侧的运算数据类型可以不一致,且结果与精度较高的保持一致,所以C错误。[单选题]27.程序中对fun函数有如下说明Void*fun();此说明的含义是______。A)fun函数无返回值B)fun函数的返回值可以是任意的数据类型C)fun函数的返回值是无值型的指针类型D)指针fun指向一个函数,该函数无返回值答案:C解析:[单选题]28.a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是()。A)a*b/a*b==1B)a/b*b/a==1C)a/b*b+a%b==aD)a/b*b==a答案:C解析:[单选题]29.若执行程序段intc1=1,c2=2,c3;c3=1.0/c2*c1;后,c3中的值是()。A)0B)0.5C)1D)2答案:A解析:[单选题]30.有如下嵌套的if语句:if(a<b)if(a<c)k=a;elsek=c;elseif(b<c)k=b;elsek=c;以下选项中与上述if语句等价的语句是()。A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?((b<c)?a:b):((b<c)?b:c);C)k=(a<b)?((a<c)?a:c):((b<c)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;答案:C解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。本题中,嵌套的if语句功能是将k赋值为abc中的最小值。A项,没有比较a、c的大小;B项,当ac时k赋值为b,此时b是最大值,与题意不符;D项,中没有比较bc大小。答案选择C选项。[单选题]31.下列循环语句会进入死循环的是()。A)i=0;B)for(i=0;C)for(i=0;D)k=1;答案:C解析:[单选题]32.C语言程序的基本单位是____()_____.A)程序行B)语句C)函数D)字符答案:C解析:[单选题]33.在C语言中,函数的隐含存储类别是()。A)autoB)staticC)externD)无存储类别答案:C解析:[单选题]34.以下关于函数参数值传递叙述正确的是______。A)函数参数值传递是将形参的值传递给实参B)函数参数值传递是单向数据传递方式C)函数参数值传递的特点是形参和实参占用了相同的存储空间D)函数参数值传递实现了函数内部数据向外传递答案:B解析:[单选题]35.设有charw;intx;f1oaty;doublez;则表达式w*x+z-y值的数据类型为()。A)floatB)charC)intD)double答案:D解析:[单选题]36.31、c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为()。A)由系统选择B)单向值传递C)由用户指定传递方式D)地址传递答案:B解析:[单选题]37.关于字符型变量的定义,下列选项正确的是()。A)charch=a;B)charch='a';C)charch="a";D)charch=\a;答案:B解析:[单选题]38.设有如下函数定义intfun(intk){if(kA)2B)3C)4D)5答案:B解析:[单选题]39.关于函数调用,以下说法错误的是____。A)函数调用可出现在执行语句中B)函数调用可出现在一个表达式中C)函数调用可作为一个函数的实参D)函数调用不允许嵌套调用答案:D解析:[单选题]40.若有以下定义,则正确的赋值语句是。inta,b;floatx;A)a=1,b=2,B)b++;C)a=b=5D)b=int(x);答案:B解析:[单选题]41.对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为()。A)并运算B)交运算C)差运算D)除运算答案:A解析:关系的运算包含传统集合运算和专门关系运算,其中传统集合运算中的并运算是指结构相同的两个关系合并成一个新关系,新关系中包含两个关系中的所有元组。答案选择A选项。[单选题]42.若有程序段:_x000D_x=99;_x000D_while(x-2)x--;则循环结束时,x=()。A)99B)2C)1D)0答案:B解析:[单选题]43.有inta[10]={6,7,8,9,10};,以下说明语句中,理解正确的是()A)将5个初值依次赋给a[0]至a[4]B)将5个初值依次赋给a[1]至a[5]C)因为数组长度与初值的个数不相同,所以此语句不正确D)将5个初值依次赋给a[6]至a[10]答案:A解析:[单选题]44.已知变量的类型说明如下:inti=8,k,a,b;unsignedlongw=5;doublex=1.42,y=5.2;则以下符合C语言语法的表达式是。A)a+=a-=(b=4)*(a=3)B)a=a*3=2C)x%(-3)D)y=float(i)答案:A解析:[单选题]45.设有语句floatx=3.0,y=3.0;使x值为6.0的表达式是A)x*=y-4B)x*=yC)x-=y+4D)x+=y答案:D解析:[单选题]46.设一整型(int)变量占用2个字节则下述共用体变量x所占用内存字节数为()。_x000D_unionexp_x000D_{inti;_x000D_floatj;_x000D_doublek;_x000D_}x;A)14个B)7个_x000D_C)8个D)随机而定答案:C解析:[单选题]47.软件(程序)调试的任务是()。A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质答案:A解析:软件测试的目的是尽可能多的发现错误。程序调试基于软件测试时发现的错误,其任务是诊断和改正程序中的错误。答案选择A选项。[单选题]48.程序段如下intk=0;while(k++<=2)printf("%d\n",k);则执行结果是()。A)1B)2C)0D)无结果答案:A解析:[单选题]49.表示关系x≤y≤z的c语言表达式为()A)(x<=y)&&(y<=z)B)(x<=y)AND(y<=z)C)(x<=y<=z)D)(x<=y)&(y<=z)答案:A解析:[单选题]50.某二叉树中有n个叶子结点,则该二叉树中度为2的结点数为()。A)n+1B)n-1C)2nD)n/2答案:B解析:任何一棵二叉树的叶子结点总是比度为2的结点多一个。答案选择B选项。[单选题]51.函数pi的功能是根据以下近似公式求π值:___()_____(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)请填空,完成求π的功能。#include<math.h>voidmain(){doubles=0.0;inti,n;scanf("%ld",&n);for(i=1;i<=n;i++)s=s+_______;s=(sqrt(6*s));printf("s=%e",s);}A)1/i*iB)1.0/i*iC)1.0/(i*i)D)1.0/(n*n)答案:C解析:[单选题]52.假设某表达式中包含int、long、unsigned、char类型的数据,则表达式最后的运算结果是()类型。A)LongB)IntC)UnsignedD)char答案:A解析:[单选题]53.在宏定义#definePI3.14159中,用宏名PI代替一个()。A)常量B)单精度数C)双精度数D)字符串答案:D解析:[单选题]54.以下选项中合法的字符常量是()。A)"B"B)'\010'C)68D)D答案:B解析:[单选题]55.若x和n均是int型变量,且x和n的初值为5,则执行表达式x+=n++后,x的值为()A)9B)10C)11D)12答案:B解析:[单选题]56.C语言程序的模块化通过以下哪个选项来实现A)变量B)函数C)程序行D)语句答案:B解析:[单选题]57.下列字符序列中,可用作C标识符的一组字符序列是().A)S.b,sum,average,_aboveB)class,day,lotus_1,2dayC)#md,&12x,month,student_n!D)D56,r_1_2,name,_st_1答案:D解析:[单选题]58.下列正确的标识符是()。A)-alB)a[i]C)a2_iD)intt答案:C解析:[单选题]59.()为合法用户标识符A)_abcB)voidC)3cD)_a$bc答案:A解析:[单选题]60.在C程序中,若对函数类型未加说明,则函数的隐含类型为A)intB)doubleC)voidD)char答案:A解析:[单选题]61.数组名作为实参数传递给函数时,数组名被处理为().A)该数组的长度B)该数组的元素个数C)该数组的首地址D)该数组中各元素的值答案:C解析:[单选题]62.表达式("hello")的值是()A)4B)5C)6D)7答案:B解析:[单选题]63.#includemain(){chara1,a2,a3,a4,a5,a6;scanf(?%c%c%c%c?,&a1,&a2,&a3,&a4);a5=getchar();a6=getchar();putchar(a1);putchar(a2);printf(?%c%c\n?,a5,a6);}如:123回车45678回车结果是()。A)1267B)1256C)1278D)1245答案:D解析:[单选题]64.while和do-while循环的主要区别是()A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-while的循环控制条件更严格C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句答案:A解析:[单选题]65.以下正确的说法是()。A)用户若需调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义C)系统根本不允许用户重新定义标准库函数D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统会自动寻找答案:B解析:[单选题]66.若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是()。A=1;b=2;c=3;d=4;W=(a<b)?a:b;W=(w<c)?w:c;W=(w<d)?w:d;A)1B)2C)3D)4答案:A解析:[单选题]67.关系数据库管理系统所管理的关系是()。A)若干个二维表B)一个DBF文件C)一个DBC文件D)若干个DBC文件答案:A解析:在关系数库中,一个表就是一个关系,关系数据库管理系统管理的关系就是多个二维表。答案选择A选项。[单选题]68.可以将高级语言编写的源程序转换为目标程序的软件是_________。A)汇编程序B)解释程序C)编辑程序D)编译程序答案:D解析:[单选题]69.下面叙述中错识A)算法正确的程序可以没有输出B)算法正确的程序最终一定会结束C)算法正确的程序可以没有输人D)算法正确的程序对相同的输入一定有相同的结果答案:A解析:[单选题]70.正确定义整型变量x和y,并给其赋值为9的语句是()A)intx=y==9;B)intx=y=9;C)intx=9;y=x=9;D)intx,y;x=9;y=9;答案:D解析:第2部分:多项选择题,共7题,每题至少两个正确答案,多选或少选均不得分。[多选题]71.在单链表中,关于增加头结点的目的说法不正确的是()。A)方便运算的实现B)说明单链表是线性表的链式存储C)标识表结点中首结点的位置D)使单链表至少有一个结点答案:BCD解析:[多选题]72.112、设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知floata=2;intb=3;则执行下列语句输出结果错误的是()。printf("%d",sizeof(a*b)+2/5);A)4B)8C)6D)7答案:ACD解析:[多选题]73.以下有关宏替换的叙述不正确的是____。A)宏替换占用运行时间B)宏替换只是字符替换C)宏名无类型D)宏名必须用大写字母表示答案:AD解析:[多选题]74.160、设int型变量i、n均已定义,指针变量s1、s2各指向一个字符串。在for(i=0;iA)*s1++=*s2++;B)s1[n-1]=s2[n-1];C)*(s1+n-1)=*(s2+n-1);D)*(++s1)=*(++s2);答案:BCD解析:第3部分:填空题,共2题,请在空白处填写正确答案。[填空题]75.已有变量定义和函数调用语句:intx=57;isprime(x);函数isprime()用来判断一个整型数a是否为素数,若是素数,函数返回1,否则返回0。请编写isprime函数答案:intisprime(inta){intk;if(a==1)return0;for(k=2;k<=a/2;k++)if(a%k==0)return0;return1;}解析:[填空题]76.下面程序段是把从终端读入的一行字符作为字符串放在字符数组中,然后输出,请分析程序填空。inti;chars[80],*p;for(i=0;i<79;i++){s[i]=getchar();if(s[i]=='\n')break;}s[i]=【1】;p=【2】;while(*p)putchar(*p++);答案:【1】'\0'【2】s解析:第4部分:判断题,共8题,请判断题目是否正确。[判断题]77.在C语言中10!=9的值是1A)正确B)错误答案:对解析:[判断题]78.C语言对文件读、写之前必须先打开文件,在使用文件之后应关闭该文件。A)正确B)错误答案:对解析://C11文件/C113文件概述T[判断题]79.while语句构成的循环至少执行一次答案:错解析:[判断题]80.若有inti=10,j=2;则执行完ⅰ*=j+8;后ⅰ的值为28答案:错解析:[判断题]81.指针变量可以存放指针(地址)、数值和字符A)正确B)错误答案:错解析:[判断题]82.167、.函数的实参传递到形参有两种方式值传递和地址传递。A)正确B)错误答案:对解析:[判断题]83.case后面不必有空格,紧接着是变量表达式。A)正确B)错误答案:错解析://C4选择结构程序设计/C43开关语句T[判断题]84.在c语言中,一个函数一般有两个部分组成,它们是函数首部和函数体。A)正确B)错误答案:对解析:第5部分:问答题,共13题,请在空白处填写正确答案。[问答题]85.以下程序运行后的输出结果是【3】。Main(){charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);printf(''%d%f\n'',n,x);}答案:【3】220.00000解析:n=100/50=2,x=f*=n,x=f=f*n=10*2=20.00000。[问答题]86.程序设计题所属年份:2011.3;学生的记录由学号和成绩组成。N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<stdio.h>#defineN12typedefstruct{charnum[10];doubles;}STREC;doublefun(STREC*a,STREC*b,int*n){}main(){STRECs[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},{"GA09",60},{"GA11",79},{"GA12",73},{"GA10",90}};STRECh[N],t;FILE*out;inti,j,n;doubleave;ave=fun(s,h,&n);printf("The%dstudentdatawhichishigherthan%7.3f:\n",n,ave);for(i=0;i<n;i++)printf("%s%4.1f\n",h[i].num,h[i].s);printf("\n");out=fopen("out.dat","w");fprintf(out,"%d\n%7.3f\n",n,ave);for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(h[i].s<h[j].s){t=h[i];h[i]=h[j];h[j]=t;}for(i=0;i<n;i++)fprintf(out,"%4.1f\n",h[i].s);fclose(out);}答案:doublefun(STREC*a,STREC*b,int*n){inti;doubleav=0.0;*n=0;for(i=0;i<N;i++)av=av+a[i].s;av=av/N;/*求平均值*/for(i=0;i<N;i++)if(av<=a[i].s){b[*n]=a[i];*n=*n+1;}/*将高于等于平均分的学生存入b所指存储单元中,并统计人数*/returnav;/*返回平均分*/}解析:【考点分析】本题考查:结构体类型;for循环语句和if条件语句的应用。【解题思路】本题中第1个循环的作用求出所有分数的总和,然后进行av=av/N后得到平均值。第2个循环的作用是将大于等于平均分的学生存入b所指存储单元中。注意同一结构体变量之间可以互相赋值。本程序中直接用*n来表示b的下标,注意开始时要给*n赋初值0,且使用时不能少*号,因为单独的n是一个指针变量,而我们要用的是它所指向的存储单元中的值。[问答题]87.程序设计题所属年份:2010.9;2011.9;假定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其它的*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当是ABCDEFG*******。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<stdio.h>voidfun(char*a,char*p){}main(){chars[81],*t;voidNONO();printf("Enterastring:\n");gets(s);t=s;while(*t)t++;t--;while(*t=='*')t--;fun(s,t);printf("Thestringafterdeleted:\n");puts(s);NONO();}voidNONO(){FILE*in,*out;inti;chars[81],*t;in=fopen("in.dat","r");out=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(in,"%s",s);t=s;while(*t)t++;t--;while(*t=='*')t--;fun(s,t);fprintf(out,"%s\n",s);}fclose(in);fclose(out);}答案:voidfun(char*a,char*p){char*t=a;for(;t<=p;t++)if(*t!='*')*(a++)=*t;for(;*t!='\0';t++)*(a++)=*t;*a='\0';/*在字符串最后加上字符串结束标识*/}解析:【考点分析】本题考查:删除字符串中非尾部*号,删除的主要思想就是把不删除的字符保留起来。【解题思路】本题用两个循环语句来实现。第1个循环的作用是将指针p所指字母以前所有非*号的字符保留下来,即删除指针p以前所有的*号。第2个循环的作用是将指针p以后的所有*号保留下来。最后在新串的结尾加上结束符。[问答题]88.#include<stdio.h>Main(){longintF,s;inti,j,n;*********SPACE**********/【?】;→s=0scanf(?%d?,&n);*********SPACE**********/for(i=1;i<=n;【?】→i+=2;i++){f=1;*********SPACE**********/for(j=1;【?】;→j<=i;j<i+1;j++)*********SPACE**********/【?】;→f=f*js=s+f;}printf("n=%d,s=%1d\n?,n,s);}答案:-解析:[问答题]89.程序设计题所属年份:2010.9;2011.9;2012.3;编写函数fun,其功能是:利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。迭代步骤如下:(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.739086。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号填入你编写的若干语句。#include<math.h>#include<stdio.h>doublefun(){}main(){voidNONO();printf("Root=%f\n",fun());NONO();}voidNONO(){FILE*wf;wf=fopen("out.dat","w");fprintf(wf,"%f\n",fun());fclose(wf);}答案:doublefun(){doublex0,x1;x1=0.0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=1e-6);returnx1;}解析:【考点分析】本题考查:迭代法求方程的实根;do…while循环语句,其形式为:do{语句}while(表达式);do…while循环与while循环的不同在于,它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do…while循环至少要执行一次循环语句。【解题思路】用迭代方法求方程的一个实根,题目已经给出了算法,只要按照算法用合适的程序表达,就可以解题了。[问答题]90.表达式18&&53的值是【1】.答案:1解析:[问答题]91.以下程序的执行结果是________。#include?stdio.h?Main(){chars=?b?;printf(?dec:%d,oct:%o,hex:%x,ASCII:%c\n?,s,s,s,s);}答案:dec:98,oct:142,hex:62,ASCII:b解析:[问答题]92.下列程序段的运行结果是_____。Main(){intn,s=0;For(n=1;n<=5;n++){if(n%2==0)continue;S=s+n;}Printf("%d\n",s);}答案:9解析:/运行结果/C5循环ContinueT[问答题]93.sizeof的运算结果在哪个时期确定的_______答案:析:编译时,C/C++是静态强类型语言,所有数据的尺寸在编译时确定解析:[问答题]94.访问指针所指的对象的运算符有两个*和()答案:[]解析:[问答题]95.程序设计题所属年份:2010年9月以前真考题目N名学生的成绩已在主函数中放入一个带有头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:找出学生的最高分,并由函数值返回。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun

温馨提示

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

评论

0/150

提交评论