C程序设计试题汇编

上传人:m**** 文档编号:171968604 上传时间:2022-11-30 格式:DOCX 页数:38 大小:89.16KB
返回 下载 相关 举报
C程序设计试题汇编_第1页
第1页 / 共38页
C程序设计试题汇编_第2页
第2页 / 共38页
C程序设计试题汇编_第3页
第3页 / 共38页
点击查看更多>>
资源描述
UMM so 9v-l(m r ( 醫ex Ms Mmysf rfwesssssuKQefrssefrSSVBS.SSRs G seEEM R x&#s u M ffINI P.E dulQA 06 mzl-ls 曾 qGsgssyKM1 OQoe- 0d右 OH(m v(B) 包括2个字符C) 包括3个字符D)说明不合法,c的值不确信答案:A在C语言中,char型数据在内存中的存储形式是A)补码B)反码C)原码D)ASCII 码答案:D以下程序的输出结果是_(注L表示空格)main() printf( “n*s1=%15s*” ” chinabeijing” );printf(“n*s2=%-5s*”,”chi”);A)*s1=chinabeijingi *s2= * * chi *B)*s1=chinabeijingi *s2=chi m *C)*s1=*i chinabeijing *D)*s1=i i chinabeijing *s2=chii i*s2=i fhi *答案:D已有如下概念和输入语句,假设要求a1,a2,c1,c2的值别离为10,20,A和B,当从第一列 开始输入数据时,正确的数据输入方式是(注:表示回车)int a1,a2; char c1,c2;scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,&c2);A)1020ABB)1020ABC)10 20 ABD)1020AB答案:D依照题目中已给出的数据的输入形式和输出形式,程序中输入输出语句的正确内容是main() int x; float y; prinf( “enter x,y: ”) 输入语句输出语句输入形式enter x,y:2输出形式x+y=A) scanf(“%d,%f”,&x,&y); prinf(“nx+y=%”,x+y);B) scanf(“%d%f”,&x,&y); prinf(“nx+y=%”,x+y);C) scanf(“%d%f”,&x,&y);prinf(“nx+y=%”,x+y);D) scanf(“%d%”,&x,&y); prinf(“nx+y=%”,x+y);答案:B有一输入函数scanf(“d%)挪么不能使float类型变量k取得正确数值的缘故是1和2 答案:1未指明k的地址2 格式操纵符与变量类型不匹配scanf语句的正确形式应该是:scanf(“ f”,&k);能正确表示”当x的取值在1,10和200,210范围内为真,不然为假”的表达式是A) (x=1)&(x=200)&(x=1) | (x=200) | (x=1)&(x=200)&(x=1) | (x=200) | (x=210)答案:C设x、y和z是int型变量且x=3,y=40=5,那么下面表达式中值为0的是A) x&yB) x=yC) x | y+z&y-zD) ! (x0) prinf (“%f”,x)else prinf (“%f”,-x);B) if (x0)x=x+y; prinf (“%f”,x); else prinf (“%f”,-x);C) if (x0)x=x+y; prinf (“%f”,x);else prinf (“%f”,-x);D) if (x0)x=x+y; prinf (“%f”,x) else prinf (“%f”,-x);答案:B当a=3,b=2,c=1时,表达式f=abc的值是.答案:0有int a=3,b=4,c=5,x, y;挪么以下表达式的值为! (x=a)&(y=b)&0 答案:0以下程序对输入两个整数,按从大到小顺序输出.请在 内填入正确内容. Main()int x,y,z;scanf(“%d,%d”,&x,&y);if (1)z=x; 2printf(“%d,%d”,x,y);答案:1xvy2x=y;y=z;请阅读下面的程序:main()int s,t,a,b;scanf(“%d,%d”,&a,&b);s=1;t=1;if (a0) s=s+1;if (ab) t=s+t;else t=2*s;prinf(“s=%d,t=%d”,s,t);为了使输出结果t=4,输入量a和b应知足的条件是.答案:Ovavb请读程序:#includevmain() int x=1, y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+; b+; break; prinf(“a=%d,b=%d”,a,b); 上面程序的运行结果是答案:a=2,b=1语言中 while 和 do-while 循环的要紧区别是A) do-while 的循环体至少无条件执行一次B) while 的循环操纵条件比 do-while 的循环操纵条件严格C) do-while 许诺从外部转到循环体内D) do-while 的循环体不能是复合语句答案:A假设I为整型变量,那么以下循环执行次数是for (I=2;I= =0;) prinf(“%d”,I- -);A)无穷次B)0次C)1次D)2次答案:B下面程序的功能是计算1 至50中是7的倍数的数值之和,请选择填空.#includemain()int I,sum=0;for (I=1;I=50;I+)if ( 1 ) sum+=I; prinf(“%d”,sum);A) (int) (I/7)= =I/7 B)(int) I/7= =I/7C)I%7=0D)I%7= = 0答案:D以下是死循环的程序段是A) for (I=1; ; )if (+I%2= =0) continue;if (+I%3= =0) break;B) I=32767;Do if (I0) break; while (+I);C) for (I=1; ; ) if (+I10 ) continue;D) I=1;While (I- -);答案:C下面程序的功能是用”辗转相除法”求两个正整数的最大公约数.请填空.#includemain() int r,m,n;scanf(“%d%d”,&m,&n);if (mn) 1;r=m%n;while (r) m=n; n=r; r= 2; prinf(“%dn”,n);答案:1r=m,m=n,n=r2m%n下面程序的功能是用 do-while 语句求 1 之1000之间知足”用3除余2; 用5除余3;用 7除余 2”的数,且一行只打印五个数.请填空.#includemain() int I=1, j=0;do if ( 1 )prinf(“%4d”,I);j=j+1;if ( 2 ) prinf (“n”);I=I+1;while (I=4) printf (%d,+x);else printf (%dn, x);6和45和26和35和317、循环语句while(!E);中的表达式!E等价于3。 E!=0 E!=1E=0 E= = 118、设a、b和c都是int型变量,且a=1, b=1, c=1;那么以下值为0的表达式是4。 b=a a&c!allb!a=b19、如有以下程序段:int p=10;doprintf(*);while (p);退出循环后,变量p的值是3。011220、假设是变量概念有:int a=9, c=8;那么表达式(a!=c+ + ) ?a:+c的值为2。9 10 7 821、假设是a=1, b=2, c=3, d=4,那么条件表达式aVb? a: cVd? c: d的值为1。1 2 3 422、有如下概念:struct dateint yy,mm,dd;struct worklistchar name20 ;char sex;struct date birthday ;person;对结构体变量person的诞生年月进行赋值时,下面正确的赋值语句是4。 yy=1958=195823、=1958设有以下说明语句struct stu int a;float b;structpe;那么下面的表达不正确的选项是3。 struct是结构体类型的关键字struct stu是用户概念的结构体类型structpe是用户概念的结构体类型名a和b都是结构体成员名24、设变量a是整型,f是实型,i是双精度型,那么表达式10O%9+a+i*f值的数据类型是 3。 intfloatdouble不确信25、以下程序的执行结果是4。main()int a=2,i;for(i=0;imain() char s10= hello!; inverp(s);inverp(char *a)if(【A】)return 0; inverp(a1); printf(%c,【B】)【A*a!=0*a!=NULL!*a=0!*a】【B* (a1)* (a+1)*a* (a)】34、如有一已赋值的持续存储单元,指针p已正确概念,且指向此持续存储单元的起始地址,以下表达正确的选项是2。 表达式:*p+ + ;使p所指存储单元中的值增1。 表达式:(*p)+ + ;使p所指存储单元中的值增1。 表达式:(*p)+ +;使指针p向高地址移动一个存储单元。 表达式:+ + *p ;使指针p向高地址移动一个存储单元。35、下面是对数组a的初始化,其中不正确的选项是4。a5 = ABCDa5 = A, B,C,D a5= a5=ABCDE36、如有以下说明,那么对y数组元素的正确引用是4。int y6,*p=y;y6p+2y+*p37、设有如下概念:int x=10,y=3,z;那么语句printf(%dn,z=(x%y,x/y);的输出结果是4。104338、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是2。 地址传递 单向值传递 由实参传给形参,再由形参传给实参 由用户指定传递方式39、假设是有概念FILE *fp; fp=fopen(, r);那么以下描述错误的选项是2。 fopen以只读方式打开文件; 文件指针fp指向文件的首地址; 能够通过fp对文件进行读操作; 能够用fclose(fp)关闭文件。40、概念如下变量:int n=10;那么以下循环的输出结果是4。while(n7)n;printf(%dn,n);98710 9 109898787641、以下程序执行后输出的结果是1。int d=1; fun(int p)int d=5; d=p; printf(%d,d)main()int a=3;fun(a);d=a;printf(%dn,d);8 4 5 65 4 8 342、下面那个程序的输出是什么?4。#include Vmain()int y=10; while(y); printf(y=%dn,y);y=0while组成死循环y=1y= 143、表达式:10!=9的值是2。t rue10非零值44、以下语句的字符串中没有空格,那么输出结果是2printf (%dn, strlen (stdn0071);8 9 10 1145、以下程序的输出结果是2。main()char a10=6789,*p; p=a; printf(%sn,p); 66789678946、设有数组概念:char cc =good!;那么数组cc所占存储空间的字节数为3。4 5 6 747、有以下程序段:int k=0 while(k=1)k+;while循环执行的次数是1。无穷次有语法错,不能执行一次也不执行执行1次48、以下关于函数挪用的描述,错误的选项是4。 函数挪用能够作为独立的语句存在 函数挪用能够出此刻表达式中 函数挪用能够作为一个函数的实参 函数挪用能够作为一个函数的形参49、以下描述中不正确的选项是3。 字符型数组中能够寄放字符串 能够对字符型数组进行整体输入、输出 能够对整型数组进行整体输入、输出 不能在赋值语句中通过赋值运算符=对字符型数组进行整体赋值50、执行以下程序,当输入为1时,输出结果是: 4。输入为3时,输出结果是 :3。#include Vmain()scanf(%d,&k);switch(k)case 1:printf(%dn, k);case 2:printf(%dn, k);case 3:printf(%dn, k);case 4:printf(%dn, k); break default:printf(Full!n) 1 322132445444454Full!51、 语句:printf (%d, (a!=0) & (b=-2);的输出结果是4。52、535455565758二1、2、3、4、5、6、7、无输出 结果不确信11以下程序执行后的输出结果是3。12 10 8 6#define AA(x) x*(x1) main()printf(%dn, AA(112); 有以下函数挪用语句:func(func(exp1,exp2),(exp3,exp4,exp5); 其中含有的实参个数是2。1 2 4 5设概念int x, a, b, c;以下合法的if语句是1。if (a=b) x+ + ;if (a=Vb) x+ + ; if (aVb) x+ + ;if (a=b) x+ + ;当挪用函数时,实参是一个数组名,那么向函数传送的是1。数组的首地址数组的长度数组第一个元素的值整个数组的元素中的值如有下面的说明和概念,那么sizeof (union uu)的值是3。union uuchar u15;long u22;ua;5 16 8 7 以下正确的函数概念形式是1。 double fun (int x, int y) double fun (int x; int y) double fun (int x, int y); double fun (int x; int y);当顺利执行了文件关闭操作时,fclose函数的返回值是2。1 0 1 非0填空题(第114题每空1分,其余每题每空2分) 。结构化程序设计中的三种大体结构是 顺序、选择、循环达式7/2的结果是3。表达式7%2的结果是1。假设已知a=, b=15, c=1,那么表达式a*b&c的运算结果是1。为表示关系:xWyWz,应利用的C语言表达式是(xv=y)&(yv=z)。概念int a=1, 2, 3, 4, 5, 6, *p=a;表达式(*+p)+ + 的值是3。在Turbo C编译系统中,编制C程序的上机步骤为编辑、编译连接、运行。表达式10/4的结果是2。表达式10%5的结果是_0。8、 C语言源程序的语句分隔符是;。9、 概念int a=1, 2, 3, 4, 5, 6, *p=a;表达式(*+p)+ + 的值是。10、 在C语言中,一个函数由两部份组成,别离是说明部份和函数体_。11、已有函数pow,此刻要求取消变量i后pow函数的功能不变。请填空。修改前的pow函数: pow( int x, int y)int i, j=1;for( i=1; i=y; +i)j=j*x;return(j);修改后的 pow 函数:pow( int x, int y)int j=1;for( 1; _y=A&chmain( )float f=;int x;x=(int) f) %3;printf(x=%dn, x);16、以下程序的执行结果是ch=D。includeVmain( )char ch=A+3; printf (” ch= %cn ”,ch);17、以下程序的执行结果是s=15。# include V main( )int a33=1, 2, 3, 4, 5, 6, 7, 8, 9, i, s=0; for(i=0; iV=2; i+) s= s+ aii;printf(s=%dn, s);18、以下程序的输出结果是2,1。main()int a, b, c= 246;a= c/100%9;b=(1) &(1); printf(%d, %dn, a, b);19、以下程序的输出结果是。main()int x= 1, 2, 3, 4, 5 , y= 0, i, *p;p= &x1;for(i=0; iV=2; i+)y+= *p ; p+;printf(%dn, y);20、设有概念:FILE *fa;fa=fopen(myfile, w);执行语句fprintf (fa, %s, China);后,字符串China输出到了什么地址21、以下程序的执行结果是。includeVint f( int x, int y)static int z= 5;if( x y)z= z+ y;else if (x=y)z=zy;elsez= z+ x;return( z)void main()int a=2, p;p=f (a,+a); printf(p=%d,p); p=f(a,a+); printf(p=%dn,p); 22、下面程序的运行结果是#include main()int i=5;char c6=abcd; doci=ci1;while (i0);puts(c);三、编程题(每题10分,共20分)1.编制程序,任意输入两个整数,求这两个整数之差的绝对值并输出,要求:求这两个整数之差 的绝对值用函数实现。即概念函数为:2.3.int fun (int x, int y) 编制程序求e的近似值。e1+ 丄 + 丄 + 丄 + 丄+ +丄1!2!3!4!n!用for循环语句求解6!的值,并输出结果。要求有必要的输入输出提示。4.用scanf函数输入圆半径r和圆柱高h的值,并求圆柱体的体积,已知圆柱体的体积公式为:要求输入输出时要有文字说明。5.编写一个程序从键盘输入数值n,计算出以下数列的前n项的和,即求:sum=1+2+3+n要求利用for循环语句完成求和,并有必要的输入输出文字提示。2、3、4、5、6、7、8、9、10111213141516171819202122、顺序、选择、循环答案: 二、填空题 1、3,11(xV= y)& (yV=z)3 编辑、编译、连接、运行2093 说明部份,函数体1; yV=0; y47A,ch+1x= 1ch= Ds= 152,19myfile 文件中p= 7,p= 4aabcdC语言程序设计形成性作业C 语言程序设计形成性考核册参考答案作业1.在每一个C语言程序中都必需包括有如此一个函数,该函数的函数名为(A)。AmainBMAINCnameDfuntion2C语言原程序文件的缺省扩展名为(D)。AcppBexeCobjDC3由C语言目标文件连接而成的可执行的缺省扩展名为(B)。A cppB exeC objD C4 程序运行中需要从键盘输入多于一个数据时,各数据之间应利用(D)符号作为分隔符。A空格或逗号B逗号或回车C回车或分号D.空格或回车5每一个C语言程序的编译错误分为(B)类。A 1B 2C 3D 46设x和y均为逻辑值,那么x & y为真的条件是(A)。A它们均为真B其中一个为真C它们均为假D.其中一个为假7设有语句“int a=12;a+=a*a;”,那么执行终止后,a的值为(C)。A 12B 144C 156D 2888x0 & x=10的相反表达式为(A)。A x10 B. x10C. x=0 II x0 & x109字符串“a+b=12n”的长度为(B)。A 6B 7C 8D 910在以下符号常量概念中。错误的概念语句格式为( C)。A const M1=10;B const int M2=20;C const M3 10D const char mark=3;11 带有随机函数的表达式rand()%20的值在(C)区间内,A 119B 120C 019D 02012 当处置特定问题时的循环次数已知时,通常采纳(A)循环来解决。A. forB. whileC. do-whileD. switch13在switch语句的每一个case块中,假定都是以break语句终止的,那么此switch语句容易被 改写为(B)语句。A. forB. if C. do D. while14. for语句能够被改写为(D)语句。A.复合B if C switchD while15下面循环语句执行终止后输出的i值为(B)。for(int i=0;in/2)coutiendl;break;A n/2 B. n/2+1C n/2-1D n-116在下面循环w语句中内层循环体S语句的执行次数为(D)。for(int i=0;in;i+)for(int j=i;jn;j+)S;A n2 B (n+1)/2 C n(n-1)/2D n(n+1)/217在下面的do循环语句中,其循环体被执行的次数为(A )。int i=0;do i+;while(i*ix%y);”语句序列后取得的输出结果为26假定x=5,那么表达式2+x+的值为_7_。27表达式(float)25/4 的值为。28表达式(int)%5的值为_4_。29 表达式x=x+1表示成增量表达式为_x+。30 增量表达式+y表示成赋值表达式为y+=1_。31 关系表达式(x!=0)的等价表达式为x 。32假定不许诺利用逻辑非操作符,那么关系表达式x+y5的相反表达式为_x+yv=5_。33假定不许诺利用逻辑非操作符,那么逻辑表达式ab II b=5的相反表达式为_av=b & (b5 | bv5)。34 假设x=5,y=10,那么xy逻辑值为false。35 假设 x=5,y=10,那么 xv=y 逻辑值_true_。36假定x=5,那么执行“a=(x?10:20);”语句后a的值为_10_。37 执行“ typedef int DataType;”语句后,在利用int概念整型变量的地址都能够利用 _DataType_来概念整型变量。38在switch语句中,每一个语句标号所含保留字case后面的表达式必需是_整型_。39作为语句标号利用的C保留字case和default只能用于_switch_语句的概念体中。40在switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行, 当碰着下一个标号位置时(停止/不断止)_不断止_执行。41假设do循环的“尾”为“ while(+iv10)”,而且i的初值为0,同时在循环体可不能修改i的 值,由循环体将被重复执行_10_次后正常终止。42当在程序执行到break_语句时,将终止本层循环语句或switch语句的执行。43在程序中执行到_return_语句时,将终止所在函数的执行进程,返回到挪用该函数的位置。 44在程序执行完主(main)_函数挪用后,将终止整个程序的执行进程,返回到操作系统或C 语句集成开发环境遇面窗口。三、写出以下每一个程序运行后的输出结果1. #includev void main()int x=5;switch(2*x-3)case 4:printf(%d ,x);case 7:printf(%d ,2*x+1);case 10:printf(%d ,3*x-1);break; default:printf(%s ,defaultn);printf(%sn,switch end.);输出结果为:11 14 switch end. Press any key to continue2. #include void main() int i,s=0; for(i=1;i=6;i+) s+=i*i;printf(s=%dn,s); 输出结果为: s=91.Press any key to continue3. #includevoid main()int i,s1=0,s2=0;for(i=0;i10;i+) if(i%2)s1+=i; else s2+=i;printf(%d %dn,s1,s2);输出结果为:25 20.Press any key to continue4. #include void main() int n=10,y=1;while(n-)y+;y+; printf(y=%dn,y); 输出结果为: y=21.Press any key to continue5. #include void main()int f,f1,f2,i;f1=f2=1;printf(%d %d ,f1,f2); for(i=3;i=10;i+) f=f1+f2; printf(%d ,f); if(i%5=0)printf(n); f1=f2; f2=f; printf(n); 输出结果为:1 1 2 3 58 13 21 34 55Press any key to continue6. #include #include void main() int i,n; for(n=2;n=20;n+)int temp=(int)sqrt(n);#include #include const int M=20;void main()int i,c2,c3,c5;c2=c3=c5=0;for(i=1;i=M;i+) if(i%2=0)c2+; if(i%3=0)c3+; if(i%5=0)c5+;printf(%d %d %dn,c2,c3,c5);输出结果为:10 6 4Press any key to continue8. #include#includeconst int M=20;void main()int i,s;for(i=1,s=0;i15;i+)if(i%2=0 | i%3=0)continue; printf(%d ,i);s+=i;printf(%dn,s);输出结果为:1 5 7 11 13 37Press any key to continueC语言程序设计形成性考核册参考答案作业二C 语言程序设计形成性考核册参考答案作业1.在下面的一维数组概念中,(C)语句有语法错误。Aint a=1,2,3;Bint a10=0;Cint a;Dint a5;n2在下面的二维数组概念中,(C)语句是正确的。Aint a5;Bint a5;Cint a3=1,3,5,2;Dint a(10)3假定一个二维数组的概念语句为“int a34=3,4,2,8,6;”,那么元素a1的值为(C)。 A2B4C6D84假定一个二维数组的概念语句为“ int a3H4=3,4,2,8,6;”,那么元素a21的值为(A)。 A0B4C8D65 将两个字符串联接起来组成一个字符串时,选用(C)函数。A strlen() B strcap() C strcat()D. strcmp()二、填空题1 假定一维数组的概念为“char * a8;”,那么该数组所含元素的个数为8。2假定一维数组的概念为“ char * a8;”,那么该数组所占存储空间的字节数为_32。3假定二维数组的概念为“ int a35”,那么该数组所占存储空间的字节数为_60。4假定二维数组的概念为“ char aMN;”,那么该数组所所含元素的个数为_M*N。5 假定二维数组的概念为“ double aMN;”,那么每一个数组元素的行下标取值范围在 _0M-1_之间。6 假定二维数组的概念为“ double aMN;”,那么每一个数组元素的列下标取值范围在_0N-1_之间。7利用“typedef char BB1O50;”语句概念_BB为含有10行50列的二维字符数组类型。8存储字符a需要占用存储器的_1个字节空间。9空字符串的长度为_0。10存储一个空字符串需要占用_1_个字节。11字符串” a:xxk数据”的长度为11。12用于存储一个长度为n的字符串的字符数组的长度至少为_n+1。13. strcmp函数用于进行两个字符串之间的 小比较。14. Strcpy函数用于把一个字符串复制到另一个字符数组空间中。15 个二维字符数组a1020能够存储_ 10_个字符串。16 个二维字符数组a1020能够存储的每一个字符串的长度最多为19_.三、写出以下每一个程序运行后的输出结果1. #include void main()int a10=12,39,26,41,55,63,72,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!