上海海事c语言练习题题库全_第1页
上海海事c语言练习题题库全_第2页
上海海事c语言练习题题库全_第3页
上海海事c语言练习题题库全_第4页
已阅读5页,还剩329页未读 继续免费阅读

下载本文档

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

文档简介

试卷编号:9049 所属语言:TurboC试卷方案:09(2)模拟试卷总分:100分共有题型:5种一、填空共15题(共计15分)第1题(1.0分)C语言表达式!(3<6)||(4<9)的值是[1].答案:D.1逻辑“或”第2题(1.0分)inta=l,b=2,c=3;执行语句a=b=c;后a的值是[1].答案:1).3第3题(1.0分)以下程序的输出结果为[1],#include"stdio.h"main0{inta=010,j=10;printf("%d,%d\n",++a,j-);}答案:1).9,10第4题(1.0分)执行下列语句的结果是[1],a=3;printfC%d,",++a);printf("%d",a++);答案:D.4,4第5题(1.0分)当a=l,b=2,c=3时,执行以下程序段后b=[11.if(a>c)b=a;a=c;c=b;答案:D.2第6题(1.0分)假设有条件intx=l,y=2,z=3;则表达式z+=x>y?++x:++y的值是【1】.答案:1).6第7题(1.0分)执行下列语句后,b的十进制值是【1】.intx=240,y=15,b;charz='A';b=((x&&y)&&(z</a,));答案:1).1第8题(1.0分)当a=3,b=2,c=l;时,执行以下程序段后a=[1].if(a>b)a=b;if(b>c)b=c;elsec=b;c=a;答案:1).2第9题(1.0分)以下程序的输出结果为【1】,#include"stdio.h"main0{inta;for(a=0;a<10;a++);printf("%d",a);)答案:1).10第10题(1.0分)程序段intk=10;while(k=0)k=k-l循环体语句执行(1]次.答案:1).0第11题(1.0分)以下程序段要求从键盘输入字符,当输入字母为‘Y’时,执行循环体,则括号内应填写【1】.ch=getchar();while(ch ,Y,)/*在括号中填写*/ch=getchar0;答案: 1).==第12题(1.0分)以下do-while语句中循环体的执行次数是11】.a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);答案:1).3第13题(1.0分)C语言中,数组元素的下标下限为【1】.答案:1).0第14题(1.0分)如果函数不要求带回值,可用【1】来定义函数返回值为空.答案:1).void第15题(1.0分)C语言源程序的基本单位是【1】.答案:1).函数二、判断共15题(共计15分)第1题(1.0分)a=(b=4)+(c=6)是一个合法的赋值表达式. 答案:丫第2题(1.0分)在C语言中,变量必需先定义后使用 答案:丫第3题(1.0分)语句printf("%f%%",1.0/3);输出为0.333333. 答案:N第4题(1.0分)语句scanf("%7.2f",&a);是一个合法的scanf函数. 答案:N第5题(1.0分)在switch-case语句中,必须使用default语句. 答案:N第6题(1.0分)关系运算符(大于.小于)的优先级高于一氐于加—算术运算符并且低于<赋值运算符.答案:N第7题(1.0分)C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N第8题(1.0分)do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.答案:N第9题(1.0分)在定义二维数组时,可以将该数组的两个维数全部省略答案:N第10题(1.0分)任何数组的下标都是从0开始;答案:Y第11题(1.0分)C语言中只能逐个引用数组元素而不能一次引用整个数组.答案:Y第12题(1.0分)数组中的元素类型不能不同答案:丫第13题(1.0分)通过return语句,函数可以带回一个或一个以上的返回值.答案:N第14题(1.0分)如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准.答案:丫第15题(1.0分)C程序中有调用关系的所有函数必须放在同一个源程序文件中.答案:N三、单项选择 共20题(共计4。分)第1题(2.0分)下列程序的输出结果是0.main()(printf("%d\n",null);)A:0B:变量无定义-11答案:B第2题(2.0分)用下列语句定义a,b,c,然后执行b=a、c=,bz+b,则b,c的值是().longa=Oxffffff;intb;charc;A:Offffff和0x61B:-l和98C:-l和97D:指向同一地址答案:C第3题(2.0分)已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'是0.A:字符AB:字符aC:字符eD:非法的常量答案:A第4题(2.0分)若ch为char型变量,k为int型变量(已知字符a的ASCH十进制代码为97),则以下程序段的执行结果是().ch='a';k=12;printf("%x,%o,",ch,ch);printf("k=%%%d\n",k);i\•进制整数)A:因变量类型与格式描述符的类型不匹配,输出无定值B:输出项与格式描述符个数不符,输出为零值或不定值61,141,k=%1261,141,k=%d 答案:C第5题(2.0分)若a是float型变量,b是unsigned型变量,以下输入语句中合法的是().scanf("%6.2f%d",&a,&b);scanf("%f%n",&a,&b);scanf("%f%3o",&a,&b);scanf("%f%f",&a,&b);答案:C第6题(2.0分)以下程序的输出结果为0.main(){inti=010,j=10;printf("%d,%d\n",++i,j-);)11,109,10010,910,9答案:B第7题(2.0分)inta=l,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为0.123D不一定答案:B第8题(2.0分)下列各m的值中,能使m%3==2&&m%5==3&&m%7=2为真的是0.A:8B:23176答案:B第9题(2.0分)以下运算符中,优先级最高的运算符是().?:++&&D:,答案:B第10题(2.0分)设j和k都是int类型,则for循环语句for(j=0,k=0;j<=9&4k!=876;j++) scanf("%d",&k) ;().A:最多执行10次B:最多执行9次C:是无限循环D:循环体一次也不执行答案:A第11题(2.0分)下面有关for循环的正确描述是0.for循环只能用于循环次数已经确定的情况for循环是先执行循环循环体语句,后判断表达式C:在for循环中,不能用break语句跳出循环体D:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来答案:D第12题(2.0分)以下程序的运行结果是0.main0{intn;for(n=l;n<=10;n++)(if(n%3==0)continue;printf(M%dn,n);))A:1245781036912D:1234567890答案:A第13题(2.0分)以下程序段的输出结果为0.for(i=4;i>l;i-)for(j=l;j<i;j++)putchar(z);A:无B:######C:####答案:B第14题(2.0分)设j和k都是int类型,则for循环语句().for(j=0,k-0;j<=9&tk!=876;j++)scanf(n%d\&k);A:最多执行10次B:最多执行9次C:是无限循环D:循环体一次也不执行 答案:A第15题(2.0分)在C语言中,为了结束由while语句构成的循环,while后一对圆括号中表达式的值应该为().01TrueD:非0答案:A第16题(2.0分)以下对一维整型数组a的正确说明是().inta(10);intn=10,a[n];intn;scanf("%d",&n);inta[n];D:#defineSIZE10(换行)inta[SIZE];答案:D第17题(2.0分)在C语言中,引用数组元素时,其数组下标的数据类型允许是0.A:整型常量B:整型表达式C:整型常量或整型表达式D:任何类型的表达式答案:C第18题(2.0分)以下不能正确定义二维数组的选项是0.inta[2][2]={{1},{2});inta[][2]={1,2,3,4);inta[2][2]={{1},2,3);inta[2][]={{1,2},{3,4});答案:D第19题(2.0分)若有说明:inta[3][4]={0};则下面正确的叙述是().A:只有元素a[0][0]可得到初值0B:此说明语句不正确C:数组a中各元素都可得到初值,但其值不一定为0D:数组a中每个元素均可得到初值0答案:D第20题(2.0分)以下数组定义中不正确的是().inta[2][3];intb[][3]={0,1,2,3);intc[100][100]={0};D:intd[3][]={(1,2),{1,2,3),{1,2,3,4});答案:D四、程序填空共2题(共计12分)第1题(6.0分)【程序填空】题目:从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数。 */#include<stdio.h>main0{intk,n,i,j;printf("EnterINTnumber,with0toend\n");i=j=0;scanf(M%dM,&n);while(n!=0)/***********SPACE***********/{if(n>0)i=[?];/***********SPACE***********/if(n<0)j=[?];/***********SPACE***********/scanfC^d'1,[?]);}printf(ni=%4d\nn,i,j);)答案:.i+1.j+1.&n第2题(6.0分)【程序填空】题目:以下程序是用选择法对10个整数按升序排序,程序中有4个空,填空使程序完整。 *//***********SPACE**m***/[?]main()(inti,j,k,t,a[N];for(i=0;i<=N-l;i++)scanffor(i=0;i<N-l;i++)(/***********SPACE***********/[?]/***********SPACE***********/for(j=i+l;[?];j++)if(a[j]<a[k])k=j;/***********SPACE**♦*♦♦♦♦♦♦♦/if(【?】)(t=a⑴;分切=2回;8k]=1;})printf(^outputthesortedarray:\nn);for(i=0;i<=N-l;i++)printf("%5d",a[i]);printf("\n");)答案:.#defineN10.k=i;.j<N或N>j或j<=N-l或N-l>=j.k!-i五、程序设计共3题(共计18分)第1题(6.0分)【程序设计】题目:编写函数fun求1!+2!+3!+……+n!的和,在main函数中由键盘输入n值,并输出运算结果。请编写fun函数.例如:若n值为20,则结果为268040729.注意:部分源程序给出如下.请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句.#include<stdio.h>floatfun(intn)**********Program**********/**********End**********/)main0(inti,n;longintresult;scanf(哪d",&n);result=fun(n);printf("%ld\n",result);yzj();)yzj0(FILE*IN,*OUT;inti;intiIN;longintiOUT;IN=fopen(r,1.in'1,11rn);if(IN==NULL){printf(''PleaseVerifyTheCurrernlDir..ItMayBeChanged11);)OUT=fopen(Ml.outM,nwH);if(0UT==NULL){printf(MPleaseVerifyTheCurrentDir..ItMayBeChanged");)for(i=0;i<10;i++){fscanf(IN,r,%d\&iIN);iOUT=fun(iIN);fprintf(OUT,n%ld\nM,iOUT);)fclose(IN);fclose(OUT);)答案: inti;floatf=l,s=0;for(i=l;i<-n;i++){f=f*i;s=s+f;}returns;第2题(6.0分)/* 【程序设计】题目:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=l/5+l/6+1/7+1/8+1/9+1/10...+l/(m+5)例如:若m=9,则应输出:1.168229注意:部分源程序给出如下.请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句.#include"stdio.h"doublefun(intm)(/**********p「ogram**********//**********End♦♦♦♦♦♦♦♦♦♦/)main(){intn;clrscr();printf(HEntern:H);scanf(n%dn,&n);printf(M\nTheresultis%lf\nH,fun(n));getchO;yzj();)yzj()(FILE*IN,*0UT;ints,i;intt;floato;IN=fopen("in.dat%MrM);if(IN==NULL){printf(MReadFileError");)OUT=fopen("out.dat","w");if(OUT==NULL){printf(MWriteFileError11);)for(i=0;i<5;i++){fscanf(IN,n%d\&t);o=fun(t);fprintf(OUT,"%f\n\o);)fclose(IN);fclose(OUT);)答案: doubley=0;inti;for(i=0;i<=m;i++){y+=l.0/(i+5);}return(y);第3题(6.0分)【程序设计】题目:编写函数fun,函数的功能是:求给定正整数m以内的素数之和.例如:当m=20时,函数值为77.注意:部分源程序给出如下.请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句.#include"stdio.h"intfun(intm)(/**********Prograni**********//*♦*♦**♦*♦*End*♦♦♦♦♦*♦*♦/)main0(inty;y=fun(20);printf(ny=%d\nn,y);yzj();)yzj()(FILE*IN,*OUT;intilN,iOUT,i;IN=fopen("20.in","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChangedn);OUT=fopen("20.out*',"w");if(OUT==NULL){printf(MPleaseVerifyTheCurrentDir..ItMayBeChanged");)for(i=0;i<10;i++){fscanf(IN,w%dn,&iIN);iOUT=fun(iIN);fprintf(OUT,n%d\nH,iOUT);)fclose(IN);fclose(OUT);)答案: inti,k,s=0;for(i=2;i<=m;i++){for(k=2;k<i;k++)if(i%k==50)break;if(k==i)s=s+i;)returns;试卷总分:100分共有题型:6种一、填空共15题(共计15分)第1题(1.0分)若有以下数组a,数组元素:a[0ra[9],其值为941282107513该数组中下标最大的元素的值是11】.答案:3第2题(1.0分)表达式18&&•53的值是【1】.答案:1第3题(1.0分)c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答案:循环第4题(1.0分)预处理命令行都必须以11】号开始.答案:#第5题3.0分)设i,j,k均为int型变量,则执行完for循环for(i=0,j=10;i<=j;i++,j―)k=i+j;后,k的值为[1].答案:10第6题(1.0分)程序段intk=10;while(k=0)k=k-l循环体语句执行【1】次.答案:0第7题(1.0分)执行下列语句后,*(P+D的值是【1】.chars[3]="ab",*p;P=s;答案:b第8题(1.0分)若输入字符串:abcde<回车>,则以下while循环体将执行【1】次.While((ch=getchar())e')printf("*");答案:0第9题(1.0分)如果函数不要求带回值,可用【1】来定义函数返回值为空.答案:void第10题(1.0分)C语言中,数组元素的下标下限为【1】.答案:0第11题(1.0分)inta=l,b=2,c=3;执行语句a=b=c;后a的值是[1].答案:3第12题(1.0分)若有以下数组a,数组元素:a[0]-a[9],其值为941282107513该数组可用的最小下标值是【1】.答案:0第13题(1.0分)将数组a的首地址赋给指针变量p的语句是【1】.答案:P=a;第14题(1.0分)以下程序的输出结果为【1】,#include"stdio.h"main0{inta=010,j=10;printf("%d,%d\n",++a,j―);)答案:9,10第15题(1.0分)假设有条件intx=l,y=2,z=3;则表达式z+=x>y?++x:++y的值是[1].答案:6二、判断共15题(共计15分)第1题(1.0分)do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.答案:N第2题(1.0分)关系运算符的优先级高于算术运算符并且低于赋值运算符.答案:N第3题(1.0分)C程序中的关键字必须小写.答案:丫第4题(1.0分)若有说明intc;则while(c=getchar0);是正确的C语句.答案:Y第5题(1.0分)数组中的元素类型不能不同答案:Y

第6题(1.0分)a=(b=4)+(c=6)是一个合法的赋值表达式.答案:Y第7题(1.0分)inta⑶[4]={{1},⑸,{9}};它的作用是将数组各行第一列的元素赋初值,其余元素值为0.答案:Y第8题(1.0分)若a=3,b=2,c=l则关系表达式"(a>b)==c"的值为'真".答案:Y第9题(1.0分)inti,*p=&i;是正确的C说明语句.答案:Y第10题(1.0分)语句"int*pi,pj"定义了两个指针变量答案:N第11题(1.0分)如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准.答案:Y第12题(1.0分)。语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N第13题(1.0分)在执行switch语句时,default和各个case的出现次序不影响执行结果.答案:Y第14题(1.0分)语句printf1.0/3);输出为0.333333.答案:N第15题(1.0分)若i=3,则printf("%d",-i++);输出的值为-4.答案:N三、单项选择共17题(共计34分)第1题(2.0分)下列程序段的输出结果为0.floatx=213.82631;printf("%3d",(int)x);A:213.82B:213.83C:213D:3.8答案:C第2题(2.0分)下列定义不正确的是().A:#definePI3.141592B:#defineS345C:intmax(x,y);intx,y;{}D:staticcharc;答案:C第3蔻(2.0分)以下程序/的输出结果0.charc[]="abc";inti=0;dowhile(c[i++]!=/\0z);printf("%d",i-1);A:abcB:abC:2D:3A:abcB:abC:2D:3答案:D第4题(2.0分)若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),则以下程序段的执行结果是().ch='a';k=12;printf("%x,%o,",ch,ch);printf("k=%%%d\n",k);A:因变量类型与格式描述符的类型不匹配,输出无定值B:输出项与格式描述符个数不符,输出为零值或不定值C:61,141,k=%12 D:61,141,k=%d答案:C第5题(2.0分)对for(表达式1;;表达式3)可理解为().A:for(表达式1;0;表达式3)B:for(表达式1;1;表达式3)C:for(表达式1;表达式1;表达式3) D:for(表达式1;表达式3;表达式3)答案:B第6题(2.0分)以下程序段的输出结果为0.for(i=4;i>l;i一)for(j=l;j<i;j++)putchar('#');A:无B:######C:#D:###答案:B第7题(2.0分)下列语句的结果是().main0(intj;j=3;printf("%d,",++j);printfj++);)A:3,3B:3,4 C:4,3D:4,4答案:D第8题(2.0分)设a=12,且a定义为整型变量.执行语句a+=a-=a*=a;后a的值为0.A:12B:144C:0D:132答案:C第9题(2.0分)执行语句for(i=Li++<4:):后变量i的值是().A:3B:4C:5D:不定答案:C第10题(2.0分)若有chara[80],*s=a;正确的输入语句是().(sA:scanfs);B:gets(*s);C:scanf("%c",s);D:getchar(s,80);答案:A第11题(2.0分)以下函数调用语句中实参的个数是0.func((el,e2),(e3,e4,e5));A:2B:3C:5D:语法错误答案:A第12题(2.0分)下列运算符中优先级最高的是().A:<B:+C:&&D:!=答案:B第13题(2.0分)inta[10];给数组a的所有元素分别赋值为1、2.3 的语句是().A:for(i=l;i<ll;i++)a[i]=i;B:for(i=l;i<ll;i++)a[i-1]=i;C:for(i=l;i<ll;i++)a[i+l]=i;D:for(i=l;i<ll;i++)a[0]=l;答案:B第14题(2.0分)若k为int型变量,则以下程序段的执行结果是().k=-8567;printf("k=|%06D|\n");A:格式描述符不合法,输出无定值B:输出为k=|%06D|C:输出为10-85671D:输出为|-8567|答案:B第15题(2.0分)在C语言中,要求运算数必须是整型的运算符是0.A:AB:%C:!D:>答案:B第16题(2.0分)下列运算符中是C语言关系运算符的是().A:-B:!C:&D:!=答案:Di诜明:ima口[3]={1,2,3,4,5,6,7,8,9);则a数组第一维的大小是().A:2B:3C:4D:无确定值答案:B四、程序填空共2题(共计12分)第1题(6.0分)【程序填空】题目:以下程序的功能如(图D. */#include<conio.h>#include<stdio.h>/♦♦♦♦♦♦♦♦♦♦♦SPACE***♦*♦****♦/doublef([?])/***********SPACE***********/***********SPACE***********/if([?])y=2.0*x*x+3.0*x+4.0;elsey=-2.0*x*x+3.0*x-4.0;/***********SPACE****♦**♦**♦/[?];)main()(clrscr();printf(M%f\nM,f(f(-1.0)+f(5.0)));)答案:===="=(答案1)======floatx==-===或=========doublex======(答案2)=======doubley=======(答案3)=======x<=2========或=======2>=x======(答案4)======returny========或=========return(y)第2题(6.0分)/* 【程序填空】题目:已定义一个含有30个元素的数组s,函数funl的功能是按顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序每五个元素求一个平均值,并将该值存放在数组w中.程序中有4个空,填空使程序完整.floats[30],w[6];funl(floats[])(intk,i;for(k=2,i=0;i<30;i++)(/***********SPACE***********/(?)k+=2;))fun2(floats[],floatw[])(floatsum=0.0;intk,i;for(k=0,i=0;i<30;i++)(sum+=s[i];/***********SPACE***********/!71w[k]=sum/5;/***********SPACE***********/[?]k++;1))main(){inti;funl(s);/♦♦♦♦♦♦♦♦♦♦♦SPACE***♦*♦*♦♦♦♦/[?]for(i=0;i<30;i++)Iif(i%5==0)printf(M\nn);printf(H%8.2fM,s[i]);)printf(M\nn);for(i=0;i<6;i++)printf(H%8.2f\w[i]);)答案:=======(答案1)=======s[i]=k;========或=======s[i]=(i+l)*2======(答案2)=—if((i+1)%5=0)========或=========if((i+1)/5*5==i+l)=======(答案3)======sum=O;,或sum=O.0;======(答案4)—==fun2(s,w);五、程序改错共1题(共计6分)第1题(6.0分)【程序改错】题目:函数fun的功能是:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。请改正程序中的4个错误,使它能得出正确的结果。注意:不可以增加或删除程序行,也不可以更改程序的结构.fun()(inti;floatfl=l,f2=l,f3;/**********found**********/printf("%8d",fl);/**********FOUND**********/for(i=l;i<=20;i++)(f3=fl+f2;/**********F()UND**********/f2=fl;/**********foijnd**********/f3=f2;printf(M%8.Of%fl);)printf("Xn");)main()fun();)答案:“====(答案1)—printf(M%8.Of",fl);printffl);(答案2)for(i=l;i<20;i++)for(i=l;20>i;i++)========或========for(i=2;i<=20;i++)========或========for(i=2;20>=i;i++)for(i=l;i<=19;i++)=======或=======for(i=l;19>=i;i++)=======(答案3)======fl=f2;(答案4)f2=f3;六、程序设计共3题(共计18分)第1题(6.0分)/* 【程序设计】题目:编写函数求「100中奇数的平方和.结果为166650.注意:部分源程序给出如下.请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句.#include"stdio.h"floatsum(intn)(/**********Prograin**********//**********End♦♦♦♦♦♦♦♦♦♦/)main()(printf("sum=%f\n",sum(100));yzj0;getchO;)yzj0(FILE»IN,*0UT;intn;inti;floato;IN=fopen(Hin.dal",T);if(IN==NULL){printf(MReadFileError");)OUT=fopen(nout.datM,Mwn);if(OUT==NULL){printf(MWriteFileError");)fscanf(IN,o=sum(i);fprintf(OUT,M%f\nH,o);fclose(IN);fclose(OUT);)答案: floats=0;inti,j;for(i=l;i<=n;i=i+2)s=s+i*i;return(s);第2题(6.0分)【程序设计】题目:编写函数fun,函数的功能是:找出一批正整数中的最大的偶数。注意:部分源程序给出如下。请勿改动主函数main和其函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。*/#include"stdio.hHintfun(inta[],intn)(/**********Progra(n**********//♦♦**♦*♦*♦*End♦♦**♦*♦♦♦♦/)main0(inta[]={l,2,9,24,35,18},k;k=fun(a,6);printf(Mmax=%d\nn,k);yzj0;getchO;)yzj0(FILE*IN,*OUT;intiIN[10],iOUT,i,j;IN=fopen(nin.datn,MrM);if(IN-NULL){printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged11);)OUT=fopen(Hout.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..ItMayBeChangedn);for(j=0;j<10;j++){for(i=0;i<10;i++)fscanf(IN,n%dn,&iIN[i]);iOUT=fun(ilN,10);)\fprintf(OUT,n%d\nn,iOUT);fclose(IN);fclose(OUT);)答案: inti,amax=-l;for(i=0;i<n;i++)if(a[i]%2=0)if(a[i]>amax)amax=a[i];returnamax;第3题(6.0分)【程序设计】题目:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=l+1/3+1/5+1/7+...+l/(2m+l)例如:若m=9,则应输出:2.133256注意:部分源程序给出如下.请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句.-- --—- */#includenstdio.hdoublefun(intm)/**********Program**********//♦♦♦♦♦*♦♦♦*End*♦******♦♦/)main(){intn;clrscr();printf("Entern:n);scanf(H%dn,&n);printf(M\nTheresultis%lf\nM,fun(n));yzj0;getchO;)yzj0(FILE*IN,*OUT;ints,i;intt;floato;IN=fopen("in.datn,MrM);if(IN-NULL){printf(MReadFileError");)OUT=fopen("out.dat","w");if(OUT==NULL){printf(nWriteFileError11);for(i=0;i<5;i++){fscanf(IN,n%d\&t);o=fun(t);fprintf(OUT,n%f\nn,o);}fclose(IN);fclose(OUT);)答案: doubley=l;inti;for(i=l;i<=m;i*){y+=l.0/(2*i+l);}return(y);试卷编号:9690所属语言:C语言试卷方案:期中考试试卷总分:100分共有题型:5种一、填空共15题(共计15分)第1题(1.0分)题号:528设a、b、c为整型数,且a=2、b=3,c=4,则执行完以下语句:a*=16+(b++)-(++c);后,a的值是【1】.=======(答案1)=======28第2题(1.0分)题号:77已知i=5;写出语句a=-i;执行后整型变量a的值是[1]答案:======(答案1)=====4第3题(1.0分)题号:433已知x=3,y=2,则表达式x*=y+8的值为[1].答案:=======(答案1)== 30第4题(1.0分)题号:437以下程序的输出结果为【1】,#include"stdio.h"main(){inta=010,j=10;printf("%d,%d\n",++a,j—);)答案:=====(答案1)=.===9,10第5题(L0分)题号:436下列程序的输出是[1],main()(inta=011;printf("%d\n",++a);}答案:======(答案1)======10第6题(1.0分)题号:293getchar()函数只能接收一个[1].答案:======(答案1)== 字符第7题(1.0分)题号:98已知a=13,b=6, 1的十进制数值为【1】=======(答案1)======0第8题(1.0分)题号:255表达式18&&53的值是【1】.答案:======(答案1)=======1第9题(1.0分)题号:86写出表达式1.234&&5.982的值是[1].答案:-===(答案1)== 第10题(1.0分)题号:438以下程序的输出结果为【1】,#include"stdio.h"mainO{inta;for(a=0;a<10;a++);printf("%d",a);)答案:10第11题(1.0分)题号:594若所用变量都已正确定义,请填写以下程序段的输出结果口】for(i=l;i<=5;i++);printf("0K\n");答案:======(答案1)======OK第12题(1.0分)题号:532以下do-while语句中循环体的执行次数是11】.a=10;do{b+=2;a-=2+b;}while(a>=0);答案:=======(答案1)======3第13题(1.0分)题号:340C语言中,二维数组在内存中的存放方式为按[1]优先存放.答案:======(答案1)=- 行第14题(1.0分)题号:331C程序在执行过程中,不检查数组下标是否【1】.越界第15题(1.0分)题号:332若有以下数组a,数组元素:a[0]-a[9],其值为941282107513该数组可用的最小下标值是【1】.答案:=======(答案1)=======0二、判断共15题(共计15分)第1题(1.0分)题号:933在C语言中,变量必需先定义后使用答案:丫第2题(1.0分)题号:717x*=y+8等价于x=x*(y+8).答案:丫若有inti=10,j=2;则执行完i*=j+8;后的值为28.答案:N第4题(1.0分)题号:943使用putchar函数时,必须在之前包含头文件stdio.h答案:Y第5题(1.0分)题号:720语句printf(吸f%%",1.0/3);输出为0.333333.答案:N第6题(1.0分)题号:716若i=3,则printf(H%d",-i++);输出的值为-4.答案:N第7题(1.0分)题号:930关于if语句中,条件表达式只能是关系表达式或逻辑表达式答案:N第8题(1.0分)题号:956在switch-case语句中,必须使用default语句.在执行switch语句时,default和各个case的出现次序不影响执行结果.答案:丫第10题(1.0分) 题号:952do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.答案:N第11题(1.0分) 题号:953C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N第12题(1.0分) 题号:954continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.答案:Y第13题(1.0分)题号:736inta[3][4]={{1}»(5},{9});它的作用是将数组各行第一列的元素赋初值,其余元素值为0.答案:Y第14题(1.0分) 题号:926任何数组的下标都是从0开始;答案:Y第15题(1.0分)题号:735如果想使一个数组中全部元素的值为0,可以写成inta[10]={0*10);答案:N三、单项选择共20题(共计40分)第1题(2.0分) 题号:2219设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为().floatcharintdouble答案:D第2题(2.0分) 题号:2005以下不正确的叙述是0.A:在C程序中所用的变量必须先定义后使用B:程序中,APH和aph是两个不同的变量C:若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变D:当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值第3题(2.0分)题号:2194C语言表达式a=15,a%6的值是1532D:非法表达式答案:B第4题(2.0分)题号:2039若k为int型变量,则以下程序段的执行结果是().k=-8567;printf("k=|%06D|\n");A:格式描述符不合法,输出无定值B:输出为k=|%06D|C输出为10-85671D:输出为1-85671答案:B第5题(2.0分)题号:2044下列程序的输出结果为().main(){intm=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+l/2;printf("%f\n",x);27.00000027.50000028.00000028.500000答案:A第6题(2.0分)题号:2042若a是float型变量,b是unsigned型变量,以下输入语句中合法的是0.scanf(n%6.2f%d\&a,&b);scanfscanf(n%f%3o",&a,&b);scanf(H%f%f\&a,&b);答案:C第7题(2.0分)题号:2143inta=l,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为0.123D:不一定第8题(2.0分)题号:2046以下程序的输出结果是().main(){inti,j,k,a=3,b=2;i=(-a==b++)?-a:++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n\i,j,k);)i=2,j=l,k=3i=l,j=l,k=2i=4,j=2,k=4i=l,j=l,k=3答案:D第9题(2.0分) 题号:2210若有条件表达式(exp)?a++:b-,则以下表达式中能完全等价于表达式(exp)的是().(exp==0)(exp!=0)(exp==l)(exp!=l)答案:B第10题(2.0分)题号:2062假定所有变量均已正确定义,下列程序段运行后x的值是().kl=l;k2=2;k3=3;x=15;if(!kl) x—;elseif(k2) x=4;elsex=3;144153答案:B第11题(2.0分)题号:2144inta=l,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为().123D:不一定第12题(2.0分)题号:2248下面有关for循环的正确描述是0.for循环只能用于循环次数已经确定的情况for循环是先执行循环循环体语句,后判断表达式C:在for循环中,不能用break语句跳出循环体D:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来答案:D第13题(2.0分)题号:2246以下for循环的执行次数是for(x=0,y=0;(y=123)&&(x<4);x++);().A:是无限循环B:循环次数不定4次3次答案:C第14题(2.0分)题号:2251以下不是无限循环的语句为().for(y=0,x=l;x>++y;x=i++)i=x;for(;;x++=i);while(1){x++;}for(i=10;;i-)sum+=i;第15题(2.0分) 题号:2061在以下给出的表达式中,与do—while(E)语句中的(E)不等价的表达式是().(!E==0)(E>0||E<0)(E==0)(E!=0)答案:C第16题(2.0分) 题号:2123设j和k都是int类型,则for循环语句0.for(j=0,k=0;j<=9&&k!=876;j++)scanf("%d",&k);A:最多执行10次B:最多执行9次C:是无限循环D:循环体一次也不执行答案:A第17题(2.0分) 题号:2273设有数组定义:chararray[]="China";则数组array所占的空间为().4个字节5个字节C:6个字节D:7个字节答案:c第18题(2.0分)题号:2275以下对二维数组a的正确说明是0.inta[3][]floata(3,4)doublea[1][4]floata(3)(4)答案:C第19题(2.0分)题号:2282以下能对二维数组a进行正确初始化的语句是().inta[2][]={{1,0,1),{5,2,3));inta[][3]-{{1,2,3},{4,5,6}};inta[2][4]={{1,2,3},{4,5},{6});inta[][3]-{{1,0,1}0,{1,1)1;答案:B第20题(2.0分)题号:2152若chara[10];已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是().gets(a);scanf("%s",a);for(i=0;i<10;i++)a[i]=getchar();a=getchar();答案:D四、程序填空共4题(共计24分)第1题(6.0分)题号:11/* 【程序填空】题目:以下程序的功能是求100-999之间的水仙花数(水仙花数是指一个三位数的各位数字的立方和是这个数本身,如:153=1A3+5A3+3A3). */intfun(intn){inti,j,k,m;m=n;/***********SPACE***********/[?]for(i=l;i<4;i++)(/***********space***********/[?]m=(m-j)/10;k=k+j*j*j;)/***********SPACE***********/if(k==n)[?]elsereturn(0);}main()(inti;for(i=100;i<1000;i++)/***********SPACE***********/if(l?J==1)printf(H%disok!\nn,i);答案:=======(答案1)==:k=0;=====(答案2)==j=m%10;j=m-m/10*10=====…或=======j=m-l0*(m/10)======(答案3)======return(1);(答案4)fun(i)第2题(6.0分)题号:429/* 【程序填空】题目:从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数.#include<stdio.h>main(){intk,n,i,j;printf(HEnterINTnumber,with0toend\nH);i=j=0;scanf(n%dn,&n);while(n!=0)/♦♦♦*♦♦♦♦♦♦♦SPACE♦*♦*♦♦♦♦♦♦♦/{if(n>0)i=[?];/***********SPACE***********/if(n<0)j=[?];/***********SPACE***********/scanf("%d",[?]);)printfCi=%4d\n",i,j);}答案:(答案2)=======(答案3)======&n第3题(6.0分)题号:423【程序填空】题目:考查字符串数组的应用.输出26个英文字母。 */#include<stdio.h>voidmain(void)(charstring[256];inti;/***********SPACE***********/for(i=0;i<26;[?!)/***********SPACE***********/string[i]=[?];string[i]=,\0';/***********SPACE**♦*♦♦♦♦♦♦♦/printf("thearrarycontains%s\n",[?]);)答案:=======(答案1)=======i++=======或========++ii=i+l========或=======i+=l======(答案2)'A'+ii+,A‘========或========65+i=—=或=========i+65======(答案3)=======string第4题(6.0分)题号:4【程序填空】题目:下面的程序是求1!+3!+5!+……+n!的和,程序中有4个空,填空使程序完整.*/main()(longintf,s;inti,j,n;/***n****SPACE***********/[?]scanf(n%d\&n);/***********SPACE**♦♦♦♦♦♦♦♦*/for(i=l;i<=n;[?])(f=l;/***********SPACE*♦♦*♦♦♦♦♦♦*/for(j=l;[?];j++)/♦♦♦♦♦♦♦♦♦♦♦SPACE****♦♦♦**♦♦/[?)s=s+f;)printf(Mn=%d,s=%ld\nH,n,s);答案:=====(答案1)=====s=0;i+=2,或i=i+2=========或========i++,i++======(答案3)™==j<=i—=或========i>=j ———————j<i+li+l>j=======(答案4)=======f=f*j; 或一===:===f*=j;五、程序设计 共1题(共计6分)第1题(6.0分)题号:325/* 【程序设计】题目:编写函数fun其功能是:能计算从1开始到n的自然数中偶数的平方的和,n由键盘输入,并在main。函数中输出。(n是偶数)注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include"stdio.h"intfun(intn)(/♦♦♦♦♦♦♦*♦*Program*♦♦♦♦♦♦♦♦♦//♦*♦*♦*♦*♦♦End*♦*♦*♦**♦♦/main(){intm;printfCTnterm:");scanf(n%dn,&m);printf(M\nTheresultis%d\nn,fun(m));yzj0;getchO;yzj0(FILE*IN,*OUT;intt;into;intc;IN=fopen(Hin.datn,MrM);if(IN-NULL){printf(MReadFileError");)OUT=fopen("out.datM,*'wn);if(OUT-NULL){printf(MWriteFileError");)for(c=l;c<=5;C++){fscanf(IN,M%d",&t);o=fun(t);fprintf(OUT,n%d\nH,o);)fclose(IN);fclose(OUT);答案: intsum,i;sum=0;for(i=2;i<=n;i=i+2)(sum=sum+i*i;)return(sum);试卷编号:9689所属语言:C语言试卷方案:期中考试试卷总分:100分共有题型:5种一、填空共15题(共计15分)第1题(1.0分)题号:92C语言中的字符变量用保留字【1】来说明.答案:=======(答案1)======char第2题(1.0分)题号:433已知x=3,y=2,则表达式x*=y+8的值为[1]答案:=====(答案1)=.===30第3题(L0分)题号:388设x和y均为int型变量,且x=l,y=2,则表达式1.0+x/y的值为【1】.答案:=======(答案1)=====1.0 或== 第4题(1.0分)题号:293getchar()函数只能接收一个[1].答案:========(答案1)== 字符第5题(1.0分)题号:437以下程序的输出结果为【1】,#include"stdio.h"main(){inta=010,j=10;printf("%d,%d\n",++a,j一);}=======(答案1)=======9,10第6题(1.0分)题号:498c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答案:=====(答案1)======循环第7题(1.0分)题号:100已知a=13,b=6,allb的十进制数值为【1】.答案:=======(答案1)== 1第8题(1.0分)题号:441设a=3,b=4,c=4,则表达式a+b>c&&b==c&&a||b+c&&b==c的值为(1).答案:(答案1)第9题(1.0分)题号:457设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+cT&&b+c/2后,t的值是[1].答案:=======(答案1)=====1第10题(1.0分)题号:389设i,j,k均为int型变量,则执行完for循环for(i-0,j=10;i<=j;i++,j—)k=i+j;后,k的值为[1].答案:(答案1)10第11题(1.0分) 题号:421若输入字符串:abcde(回车>,则以下while循环体将执行【1】次.While((ch=getchar())=='ez)printf("♦");答案:=======(答案1)=======0第12题(1.0分) 题号:533设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是[1].for(x=0,y=0;y!=123&ix<3;x++)scanf("%d",&y);答案:===»===(答案1)== 3第13题(1.0分)题号:328C语言中,数组元素的下标下限为【1】.答案:======(答案1)=======0第14题(1.0分)题号:346合并字符串的库函数是【1】,只写函数名即可.答案:======(答案1)=======strcat第15题(1.0分)题号:341定义inta[2][3];表示数组a中的元素个数是【1】个.答案:-===(答案1)== 6二、判断共15题(共计15分)第1题(1.0分)题号:715整数-32100可以赋值给int型和longint型变量.答案:丫第2题(1.0分)题号:929在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<longint<=float<double答案:丫第3题(1.0分)题号:928C程序中的关键字必须小写.答案:丫第4题(1.0分)题号:194若有定义和语句:inta;charc;floatf;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c=zAz,f=12.5.答案:丫第5题(1.0分)题号:944C语言中,赋值表达式加上分号就构成了赋值语句.答案:Y第6题(1.0分)题号:716若i=3,则printf("%d",-i++);输出的值为-4.答案:N第7题(1.0分) 题号:950逻辑运算符中的"&&"和"II"低于关系运算符,口"高于算术运算符.答案:Y第8题(1.0分)题号:951在执行switch语句时,default和各个case的出现次序不影响执行结果.答案:Y第9题(1.0分)题号:869若有inti=10,j=0;则执行完语句if(j=0)i++;elsei—;i的值为11.答案:N第10题(1.0分)题号:953C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N第11题(1.0分)题号:742若有说明intc;则while(c=getchar());是正确的。语句.答案:Y第12题(1.0分)题号:954continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.答案:Y第13题(1.0分)题号:736inta[3][4]={⑴,⑸,{9});它的作用是将数组各行第一列的元素赋初值,其余元素值为0.答案:丫第14题(1.0分)题号:735如果想使一个数组中全部元素的值为。,可以写成inta[10]={0*10};答案:N第15题(1.0分)题号:926任何数组的下标都是从0开始;答案:丫三、单项选择 共20题(共计40分)第1题(2.0分)题号:2004下列字符序列中,不可用作C语言标识符的是().b70#absymbola-1答案:B第2题(2.0分)题号:2137下列表达式中,可作为。合法表达式的是().[3,2,1,0](3,2,1,0)3=2=1=03/2/1/0答案:B第3题(2.0分)题号:2037若k,g均为int型变量,则下列语句的输出为0.k=017;g=lll;printf("%d\t",++k);printf("%x\n",g++);TOC\o"1-5"\h\z15 6f16 7015 7116 6f答案:D第4题(2.0分)题号:2043已知字母a的ASCH十进制代码为97,则执行下列语句后的输出结果为().chara='a';a—;printf("%d,%c\n",a+zV0,,a+z3,-/0z);b,ca一运算不合法,故有语法错98,cD:格式描述和输出项不匹配,输出无定值答案:c第5题(2.0分)题号:2128下列程序段的输出结果为().floatx=213.82631;printf(n%3dn,(int)x);213.82213.83C:213D:3.8答案:C第6题(2.0分)题号:2222语句printf(na\breVhi\zy\\\bou\n");的输出结果是(说明:'\b,是退格符)().a\breVhi\zy\\\boua\bre\,hi\'y\boure'hi'youabrezhi'八bou答案:C第7题(2.0分)题号:2028假设所有变量均为整型,表达式:a=2,b=5,a>b?a++:b++,a+b的值是0.B:8C:9D:2答案:B第8题(2.0分)题号:2145inta=3,b=2,c=l;if(a>b>c)a=b;elsea=c;则a的值为().3210答案:C第9题(2.0分)题号:2062假定所有变量均已正确定义,下列程序段运行后x的值是().kl=l;k2=2;k3H3;x=15;if(!kl) x—;elseif(k2) x=4;elsex=3;144153答案:B第10题(2.0分)题号:2136下列程序段的输出结果为().inta=7,b=9,t;t=a*=a>b?a:b;printf("%dn,t);79C:63D:49答案:C第11题(2.0分)题号:2319在c语言中,要求运算数必须是整型的运算符是0.A:AB:%C:!D:>答案:B第12题(2.0分)题号:2251以下不是无限循环的语句为().for(y=0,x=l;x>++y;x=i++)i=x;for(;;x++=i);while(1){x++;}for(i=10;;i-)sum+=i;答案:A第13题(2.0分)题号:2123设j和k都是int类型,则for循环语句().for(j=0,k=0;j<=9&&k!=876;j++)scanf(n%dn,ftk);A:最多执行10次B:最多执行9次C:是无限循环D:循环体一次也不执行答案:A第14题(2.0分)题号:2141以下程序段的输出结果为().for(i=4;i>l;i-)for(j=l;j<i;j++)putchar('#');A:无B:######C:#D:###答案:B第15题(2.0分)题号:2059以下程序的运行结果是0.main(){intn;for(n=l;n<=10;n++)(if(n%3=0)continue;printfn);})A:1245781036912D:1234567890答案:A第16题(2.0分)题号:2147while(fabs(t)<le-5)if(!(s/10))break;循环结束的条件是0.A:t>=le-51|t<=-le-511s>-10&&s<10B:fabs(t)<le-5&&!s/10fabs(t)<le-5s/10==0答案:A第17题(2.0分)题号:2273设有数组定义:chararray[]="China";则数组array所占的空间为().A:4个字节B:5个字节C:6个字节D:7个字节答案:C第18题(2.0分)题号:2280若有说明inta[3][4];则对a数组元素的正确引用是().a[2][4]B:a[l,3]C:a[l+1][0]D:a(2)(1)答案:c第19题(2.0分)题号:2269以下不正确的定义语句是().A:doublex[5]={2.0,4.0,6.0,8.0,10.0};inty[5]={0,1,3,5,7,9);charcl[]={'1','2','3','4','5'};charc2[]={z\xl0,,'\xa','\x8'};答案:B第20题(2.0分) 题号:2074下列语句中,不正确的是0.staticchara[2]={1,2};staticinta[2]={'1','2'};staticchara[2]={T','2','3'};staticchara[2]-{717};答案:C四、程序填空共4题(共计24分)第1题(6.0分)题号:24/* 【程序填空】题目:以下程序的功能是对任一整数N(N#0),它都可以分解成1(或-1)和一些质数(素数)因子的形式.如N=150时,可分解成lx2x3x5x5;N=-150时,可分解为-1x2x3x5x5.下边程序能实现这种分解过程.当N=150,输出以下分解结果:N=1*2* 3* 5* 5 */main()(intn,i,j,r;scanf("%d",&n);if(n==0)(printf("dataerror\n");exit(0);)/***********SPACE***********/elseif([?])printf(nn=lM);else(printf("n=T");n=-n;)/***********SPACE***********/for([?];i<=n;i++)(/******

温馨提示

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

评论

0/150

提交评论