上海海事大学C语言程序设计练习题全题库_第1页
上海海事大学C语言程序设计练习题全题库_第2页
上海海事大学C语言程序设计练习题全题库_第3页
上海海事大学C语言程序设计练习题全题库_第4页
上海海事大学C语言程序设计练习题全题库_第5页
已阅读5页,还剩210页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

试卷编号:9049 所属语言:Turbo C 试卷方案:09(2) 模拟试卷总分:100分 共有题型:5种一、填空 共15题 (共计15分)第1题 (1.0分)C语言表达式!(36)|(4c) b=a; a=c; c=b;答案: 1). 2第6题 (1.0分)假设有条件 int x=1,y=2,z=3;则表达式z+=xy?+x:+y的值是【1】.答案: 1). 6第7题 (1.0分)执行下列语句后,b 的十进制值是【1】.int x=240,y=15,b;char z=A;b=( x & y ) & ( z b) a=b; if(bc) b=c;else c=b;c=a;答案: 1). 2第9题 (1.0分)以下程序的输出结果为【1】,#include stdio.h main()int a;for(a=0;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) 是一个合法的赋值表达式. 答案:Y第2题 (1.0分)在C语言中,变量必需先定义后使用 答案:Y第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分)数组中的元素类型不能不同答案:Y第13题 (1.0分)通过return语句,函数可以带回一个或一个以上的返回值.答案:N第14题 (1.0分)如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准.答案:Y第15题 (1.0分)C程序中有调用关系的所有函数必须放在同一个源程序文件中.答案:N三、单项选择 共20题 (共计40分)第1题 (2.0分)下列程序的输出结果是().main() printf(%dn,null);A:0B:变量无定义C:-1D:1答案:B第2题 (2.0分)用下列语句定义a,b,c,然后执行b=a、c=b+b,则b,c的值是(). long a=0xffffff; int b; char c;A:0ffffff 和0x61B:-1和98C:-1和97D:指向同一地址答案:C第3题 (2.0分)已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量101是().A:字符AB:字符aC:字符eD:非法的常量答案:A第4题 (2.0分)若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),则以下程序段的执行结果是().ch=a; k=12; printf(%x,%o,ch,ch); printf(k=%dn,k);(x十六进制整数,o八进制整数)A:因变量类型与格式描述符的类型不匹配,输出无定值B:输出项与格式描述符个数不符,输出为零值或不定值C:61,141,k=%12D:61,141,k=%d 答案:C第5题 (2.0分)若a是float型变量,b是unsigned型变量,以下输入语句中合法的是().A:scanf(%6.2f%d,&a,&b);B:scanf(%f%n,&a,&b);C:scanf(%f%3o,&a,&b);D:scanf(%f%f,&a,&b);答案:C第6题 (2.0分)以下程序的输出结果为().main()int i=010,j=10; printf(%d,%dn,+i,j-);A:11,10B:9,10C:010,9D:10,9答案:B第7题 (2.0分)int a=1,b=2,c=3;if(ac)b=a;a=c;c=b;则c的值为().A:1B:2C:3D:不一定答案:B第8题 (2.0分)下列各m的值中,能使m%3=2&m%5=3&m%7=2为真的是().A:8B:23C:17D:6答案:B第9题 (2.0分)以下运算符中,优先级最高的运算符是().A:?:B:+C:&D:,答案:B第10题 (2.0分)设j和k都是int类型,则for循环语句 for(j=0,k=0;j=9&k!=876;j+)( j=9,k!=876) scanf(%d,&k)循环;().A:最多执行10次B:最多执行9次C:是无限循环D:循环体一次也不执行答案:A第11题 (2.0分)下面有关 for 循环的正确描述是().A:for 循环只能用于循环次数已经确定的情况B:for 循环是先执行循环循环体语句,后判断表达式C:在 for 循环中,不能用 break 语句跳出循环体D:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来答案:D第12题 (2.0分)以下程序的运行结果是().main() int n; for(n=1;n1;i-)for(j=1;ji;j+)putchar(#);A:无B:#C:#D:#答案:B第14题 (2.0分)设j和k都是int类型,则for循环语句(). for(j=0,k=0;j=9&k!=876;j+) scanf(%d,&k);A:最多执行10次B:最多执行9次C:是无限循环D:循环体一次也不执行 答案:A第15题 (2.0分)在C语言中,为了结束由while语句构成的循环,while后一对圆括号中表达式的值应该为().A:0B:1C:TrueD:非0答案:A第16题 (2.0分)以下对一维整型数组a的正确说明是().A:int a(10);B:int n=10,an;C:int n; scanf(%d,&n); int an;D:#define SIZE 10 (换行) int aSIZE;答案:D第17题 (2.0分)在C语言中,引用数组元素时,其数组下标的数据类型允许是().A:整型常量B:整型表达式C:整型常量或整型表达式D:任何类型的表达式答案:C第18题 (2.0分)以下不能正确定义二维数组的选项是().A:int a22=1,2;B:int a2=1,2,3,4;C:int a22=1,2,3;D:int a2=1,2,3,4;答案:D第19题 (2.0分)若有说明: int a34=0;则下面正确的叙述是().A:只有元素a00可得到初值0B:此说明语句不正确C:数组a中各元素都可得到初值,但其值不一定为0D:数组a中每个元素均可得到初值0答案:D第20题 (2.0分)以下数组定义中不正确的是().A:int a23;B:int b3=0,1,2,3;C:int c100100=0;D:int d3=1,2,1,2,3,1,2,3,4;答案:D四、程序填空 共2题 (共计12分)第1题 (6.0分)/*-【程序填空】-题目:从读入的整数数据中,统计大于零的整数个数和小于零的 整数个数。用输入零来结束输入,程序中用变量i统计大于 零的整数个数,用变量j统计小于零的整数个数。-*/#include main()int k,n,i,j; printf(Enter INT number,with 0 to endn); i=j=0; scanf(%d,&n); while(n!=0)/*SPACE*/ if(n0)i=【?】;/*SPACE*/ if(n0)j=【?】;/*SPACE*/ scanf(%d,【?】); printf(i=%4dn,i,j);答案: 1). i + 1 2). j + 1 3). &n第2题 (6.0分)/*-【程序填空】-题目:以下程序是用选择法对10个整数按升序排序,程序中有4个空, 填空使程序完整。-*/*SPACE*/【?】 main() int i,j,k,t,aN; for(i=0;i=N-1;i+) scanf(%d,&ai); for(i=0;iN-1;i+) /*SPACE*/ 【?】/*SPACE*/ for(j=i+1; 【?】;j+) if(ajak) k=j;/*SPACE*/ if(【?】)t=ai;ai=ak;ak=t; printf(output the sorted array:n); for(i=0;i=N-1;i+) printf(%5d,ai); printf(n); 答案: 1). #define N 10 2). k=i; 3). jj 或 j=j 4). k != i 五、程序设计 共3题 (共计18分)第1题 (6.0分)/*-【程序设计】-题目:编写函数fun求1!+2!+3!+ +n!的和,在 main函数中由键盘输入n值,并输出运算结果。请 编写fun函数。 例如:若n值为20,则结果为268040729。-注意:部分源程序给出如下。请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。-*/#includefloat fun(int n)/*Program*/* End */main() int i,n; long int result; scanf(%d,&n); result=fun(n); printf(%ldn,result); yzj();yzj()FILE *IN,*OUT;int i;int iIN;long int iOUT;IN=fopen(1.in,r);if(IN=NULL)printf(Please Verify The Currernt Dir.It May Be Changed);OUT=fopen(1.out,w);if(OUT=NULL)printf(Please Verify The Current Dir. It May Be Changed);for(i=0;i10;i+) fscanf(IN,%d,&iIN); iOUT=fun(iIN); fprintf(OUT,%ldn,iOUT);fclose(IN);fclose(OUT);答案:-int i;float f=1,s=0;for(i=1;i=n;i+) f=f*i; s=s+f; return s;-第2题 (6.0分)/*-【程序设计】-题目:编写函数fun其功能是:根据整型形参m, 计算如下公式的值: y=1/5+1/61/71/81/9+1/10.1/(m+5) 例如:若m=9,则应输出:1.168229-注意:部分源程序给出如下。请勿改动主函数main 和其它函数中的任何内容,仅在函数fun的花 括号中填入所编写的若干语句。-*/#include stdio.h double fun(int m) /*Program*/ /* End */ main() int n; clrscr(); printf(Enter n: ); scanf(%d, &n); printf(nThe result is %1fn, fun(n); getch(); yzj(); yzj()FILE *IN,*OUT;int s,i ;int t;float o;IN=fopen(in.dat,r);if(IN=NULL)printf(Read File Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write File Error);for(i=0;i5;i+) fscanf(IN,%d,&t); o=fun(t); fprintf(OUT,%fn,o);fclose(IN);fclose(OUT);答案:- double y=0; int i; for(i=0; i=m; i+) y+=1.0/(i+5); return(y);- 第3题 (6.0分)/*-【程序设计】-题目:编写函数fun,函数的功能是:求给定正整数m以 内的素数之和。例如:当m=20时,函数值为77。-注意:部分源程序给出如下。请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。-*/#include stdio.hint fun(int m)/*Program*/* End */main()int y;y=fun(20);printf(y=%dn,y);yzj();yzj()FILE *IN,*OUT;int iIN,iOUT,i;IN=fopen(20.in,r);if(IN=NULL)printf(Please Verify The Currernt Dir.It May Be Changed);OUT=fopen(20.out,w);if(OUT=NULL)printf(Please Verify The Current Dir. It May Be Changed);for(i=0;i10;i+) fscanf(IN,%d,&iIN); iOUT=fun(iIN); fprintf(OUT,%dn,iOUT);fclose(IN);fclose(OUT);答案:-int i,k,s=0; for(i=2;i=m;i+) for(k=2;ki;k+) if(i%k=0)break; if(k=i)s=s+i; return s;-试卷总分:100分共有题型:6种一、填空 共15题 (共计15分)第1题 (1.0分)若有以下数组a,数组元素:a0a9,其值为 9 4 12 8 2 10 7 5 1 3该数组中下标最大的元素的值是【1】.答案:3第2题 (1.0分)表达式18 & 53 的值是【1】.答案:1第3题 (1.0分)c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答案:循环第4题 (1.0分)预处理命令行都必须以【1】号开始.答案:#第5题 (1.0分)设i,j,k均为int型变量,则执行完for循环for(i=0,j=10;i=j;i+,j-) k=i+j;后,k的值为【1】.答案:10第6题 (1.0分)程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次.答案:0第7题 (1.0分)执行下列语句后,*(p+1)的值是【1】.char s3=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分)int a=1,b=2,c=3; 执行语句a=b=c;后a的值是【1】.答案:3第12题 (1.0分)若有以下数组a,数组元素:a0a9,其值为 9 4 12 8 2 10 7 5 1 3该数组可用的最小下标值是【1】.答案:0第13题 (1.0分)将数组a的首地址赋给指针变量p的语句是【1】.答案:p=a;第14题 (1.0分)以下程序的输出结果为【1】,#include stdio.h main()int a=010,j=10;printf(%d,%dn,+a,j-);答案:9,10第15题 (1.0分)假设有条件 int x=1,y=2,z=3;则表达式z+=xy?+x:+y的值是【1】.答案:6二、判断 共15题 (共计15分)第1题 (1.0分)do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.答案:N第2题 (1.0分)关系运算符的优先级高于算术运算符并且低于赋值运算符.答案:N第3题 (1.0分)C程序中的关键字必须小写.答案:Y第4题 (1.0分)若有说明int c;则while(c=getchar();是正确的C语句.答案:Y第5题 (1.0分)数组中的元素类型不能不同 答案:Y第6题 (1.0分)a=(b=4)+(c=6) 是一个合法的赋值表达式.答案:Y第7题 (1.0分)int a34=1,5,9; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0.答案:Y第8题 (1.0分)若 a=3,b=2,c=1 则关系表达式(ab)=c 的值为真.答案:Y第9题 (1.0分)int i,*p=&i;是正确的C说明语句.答案:Y第10题 (1.0分)语句int *pi,pj定义了两个指针变量答案:N第11题 (1.0分)如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准.答案:Y第12题 (1.0分)C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N第13题 (1.0分)在执行switch语句时,default和各个case的出现次序不影响执行结果.答案:Y第14题 (1.0分)语句 printf(%f%,1.0/3);输出为 0.333333.答案:N第15题 (1.0分)若i =3,则printf(%d,-i+);输出的值为 -4.答案:N三、单项选择 共17题 (共计34分)第1题 (2.0分)下列程序段的输出结果为().float x=213.82631;printf(%3d,(int)x);A:213.82 B:213.83 C:213 D:3.8 答案:C第2题 (2.0分)下列定义不正确的是().A:#define PI 3.141592 B:#define S345C:int max(x,y); int x,y; D:static char c; 答案:C第3题 (2.0分)以下程序段的输出结果为().char c=abc;int i=0;do while(ci+!=0);printf(%d,i-1);A:abc B:ab C:2 D:3 答案:D第4题 (2.0分)若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),则以下程序段的执行结果是().ch=a; k=12; printf(%x,%o,ch,ch); printf(k=%dn,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分)以下程序段的输出结果为().for(i=4;i1;i-)for(j=1;ji;j+)putchar(#);A:无 B:# C:# D:# 答案:B第7题 (2.0分)下列语句的结果是().main() int j; j=3;printf(%d,+j); printf(%d,j+);A:3,3 B:3,4 C:4,3 D:4,4 答案:D第8题 (2.0分)设a=12,且a定义为整型变量.执行语句a+=a-=a*=a;后a的值为().A:12 B:144 C:0 D:132 答案:C第9题 (2.0分)执行语句 for(i=1;i+4;); 后变量 i 的值是().A:3 B:4 C:5 D:不定答案:C第10题 (2.0分)若有char a80,*s=a;正确的输入语句是().(s输入字符串)A:scanf(%s,s); B:gets(*s); C:scanf(%c,s); D:getchar(s,80); 答案:A第11题 (2.0分)以下函数调用语句中实参的个数是(). func(e1,e2),(e3,e4,e5);A:2 B:3 C:5 D:语法错误 答案:A第12题 (2.0分)下列运算符中优先级最高的是().A: B:+ C:& D:!=答案:B第13题 (2.0分)int a10;给数组a的所有元素分别赋值为1、2、3、的语句是().A:for(i=1;i11;i+)ai=i; B:for(i=1;i11;i+)ai-1=i;C:for(i=1;i11;i+)ai+1=i; D:for(i=1;i 答案:B第16题 (2.0分)下列运算符中是C语言关系运算符的是().A: B:! C:& D:!= 答案:D第17题 (2.0分)若有说明:int a3=1,2,3,4,5,6,7,8,9;则a数组第一维的大小是().A:2 B:3 C:4 D:无确定值 答案:B四、程序填空 共2题 (共计12分)第1题 (6.0分)/*-【程序填空】-题目:以下程序的功能如(图1)。-*/#include #include /*SPACE*/double f(【?】) /*SPACE*/ 【?】; /*SPACE*/ if (【?】) y=2.0*x*x+3.0*x+4.0; else y=-2.0*x*x+3.0*x-4.0;/*SPACE*/ 【?】;main ( ) clrscr( ); printf(%fn, f(f(-1.0)+f(5.0);答案:=(答案1)=float x=或=double x=(答案2)=double y=(答案3)=x=x=(答案4)=return y=或=return (y)第2题 (6.0分)/*-【程序填空】-题目:已定义一个含有30个元素的数组s,函数fun1的功能是按 顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序 每五个元素求一个平均值, 并将该值存放在数组w中。 程序中有4个空,填空使程序完整。-*/float s30,w6;fun1(float s) int k,i; for(k=2,i=0;i30;i+) /*SPACE*/【?】 k+=2; fun2(float s,float w) float sum=0.0; int k,i; for(k=0,i=0;i30;i+) sum+=si;/*SPACE*/【?】 wk=sum/5;/*SPACE*/ 【?】 k+; main()int i; fun1(s);/*SPACE*/【?】 for(i=0;i30;i+) if(i%5=0) printf(n); printf(%8.2f,si); printf(n); for(i=0;i6;i+) printf(%8.2f,wi);答案:=(答案1)=si=k;=或=si=(i+1)*2=(答案2)=if( ( i + 1 )%5 = 0 )=或=if( ( i + 1 )/5*5 =i+1)=(答案3)=sum=0;=或=sum=0.0;=(答案4)=fun2(s,w);五、程序改错 共1题 (共计6分)第1题 (6.0分)/*- 【程序改错】-题目:函数fun的功能是:输出Fabonacci数列的前20项,要求变 量类型定义成浮点型,输出时只输出整数部分,输出项 数不得多于或少于20。 请改正程序中的4个错误,使它能得出正确的结果。-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/fun() int i; float f1=1,f2=1,f3;/*FOUND*/ printf(%8d,f1);/*FOUND*/ for(i=1;i=20;i+) f3=f1+f2;/*FOUND*/ f2=f1;/*FOUND*/ f3=f2; printf(%8.0f,f1); printf(n);main() fun();答案:=(答案1)=printf(%8.0f,f1);=或=printf(%f,f1);=或=printf(%8f,f1);=(答案2)=for(i=1;ii;i+)=或=for(i=2;i=i;i+)=或=for(i=1;i=i;i+)=(答案3)=f1=f2;=(答案4)=f2=f3;六、程序设计 共3题 (共计18分)第1题 (6.0分)/*-【程序设计】-题目:编写函数求1100中奇数的平方和。 结果为166650。-注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函 数的花括号中填入所编写的若干语句。-*/#include stdio.hfloat sum(int n)/*Program*/* End */ main() printf(sum=%fn,sum(100); yzj(); getch();yzj()FILE *IN,*OUT;int n;int i;float o;IN=fopen(in.dat,r);if(IN=NULL)printf(Read File Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write File Error);fscanf(IN,%d,&i);o=sum(i);fprintf(OUT,%fn,o);fclose(IN);fclose(OUT);答案:-float s=0; int

温馨提示

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

评论

0/150

提交评论