高考c语言复习题(5)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.在C 语言中,下列选项项中合法的常量是( ) A.019 B.0xg C.3e2 D.32e E.”\032” F.”ab ” G.”\n ” H.”\w ”
2.下列选项中不能作C 语言表达式的是( ) A.a=b=c B.a<=b<=c C.5.6%2 D.5.6/2
3.表达式!(5==3)+(10>3?1:5)的值是( ) A.1 B.2 C.3 D.5
4.设有int x=1,y=2,z=3;则计算表达式z+=(y=(x=10,20+4))后,x,y,z 的值分别是( ) A.10,10,10 B.10,10,24 C.10,10,27 D.10,24,27
5.在C 语言程序中continue 语句不适于( ) A.switch 语句 B.while 语句 C.do-while 语句 D.for 语句
6.执行下面程序,输出是( ) A.1 B.2 C.15 D.16 main() {int t=2,r=0; switch(t){case 1:r=r+1;case 2;r=r+2;case 3:r=r+3;default:r=r+10; } printf(“%d ”,r);}
7.执行下面程序,输出是( ) A.25 B.30 C.35 D.55 main() {int i=1,s=0; while(i<=10){if(i++%2)continue;s=s+i;} printf(“%d ”,s);}
8.语句puts(“ABC\0DE%0F ”);的输出结果是( ) A.ABC\0DE%0F B.ABC\0DE C.ABC\0 D.ABC
9.在C 语言中用字符数组保存字符串”Hello\041”需要的字节数至少是( ) A.5 B.7 C.9 D.11 10.表达式(int )3.4/2+10%3的值是( ) 。 11.表达式”e ”-“a ”+sizeof(char)的值是( ) 。 12.设有int a=1,b=2;则表达式-a&&b++的值是( ) 13.下面程序中有5处错误,在有错的行后写出该行正确的内容,使程序实现计算一个奇数的阶乘的功能。 #include
u3=(u1 & 0xff00) >>4;
printf(“%x %x %x \n”,u2,u3,u2/u3);}
17.设一维数组a 的4个输入整数是1,2,3,4,则程序的输出是( )
#include
{ int i, j, k, m, a[4];
printf(“Enter 4 numbers: “);
for(i=0; i
for(j=M-1; j>0; j--) a[j]=a[j-1]; a[0]=k;
for(m=0; m 18.以下isprime 函数的功能是判断形参a 是否为素数,是素数,函数返回1, 否则返回0。请填空 int isprime(int a) { int i; for(i=2; ;i++) if(a%i==O) __ _; _____; } 19.程序的作用是将字符串s1复制到字符串s2中。 main() { char s[]=”China”,s2[20];int i; for(i=0; __ __;i++) *(s2+i)= ; __ __; printf(“s1=%s \n”,s1); printf(“s2=%s \n”,s2); } 20.以下程序的功能是输入任意整数给n 后,输出n 行由大写字母 A开始构成的三角形字符阵列图形.例如,输入整数5时(注意:n不得大于10),程序运行结果如下; ABCDE FGHI JKL MN O 请填空完成该程序。 main() {int i,j,n; char ch='A'; scanf("%d",&n); if(n<11) {for(i=1;i<=n;i++) { for(j=1;j< ;j++) { printf("%2c",ch); ; } ; } } else printf("n is too large!\n"); printf("\n"); } 21、改错题(每处5共15分) 下列程序各有三个错误,请用波浪线标出错误部分,并在旁边更正。 输入10个正整数,计算其中的素数之和并输出结果(不考虑溢出情况)。 #01 #include #02 int sum(int *b, int m) { #03 int s=0, is_prime(long); #04 while(m--) #05 if(is_prime(*b++)) s+=*b; #06 return s; #07 } #08 is_prime(long m) { #09 int k; #10 if(m<=1) return 0; #11 if(m==2||m==3) return 1’ #12 for(k=2; k*k<=m; k++) #13 if(m%k==0) return 0; #14 else return 1; #15 } #16 void main() { #17 int x[10], i; #18 for(i=0; i<10; i++) scanf(“%d”, x++); #19 printf(“sum=%d\n”, sum(x,10)); #20 } 22.编程题(15分) 要求利用到递归法和函数求1+2+3+4+5+………+100的值 23.给定程序中函数fun的功能是:求整数x的y次方的低3位值。 例如5的6次方为12625,此值的低3位值为625。请改正函数 fun中的三处错误,使它能得出正确的结果。 #include “stdio.h” long fun(int x,int y, long *p) { int i; long t=1; for (i=1;i t=t*x; *p=t; t=t/1000; return t; } main() { logn t,r;int x,y; printf(“\n input x and y:”); scanf(“%ld%ld”,&x,&y); t=fun(x,y,r); printf(“\n\nx=%d,y=%d,r=%d,last=%ld\n\n”,x,y,r,t); } 24、编程题(15分) 求出任意一个数m(设4<=m<=1000)的所有素因子。例如,37的素 因子是37;420的素因子是2,2,3,5,7。 25.读程序写出结果或功能(每小题5分,共15分) (1)执行下列程序后,输出( ) main() { int a=5, b=4, c=3, r1, r2; r1=a>b>c; r2=ac; printf(“r1=%d,r2=%d”,r1,r2); } (2)执行下列程序后,输出( ) #include void main() { int *a[10], b, c; a[0]=&b; *a[0]=5; c=(*a[0])++; printf(“%d %d\n”, b, c); } (3)设有如下程序: #include void main() { int clock; float f; char cpu[20]; scanf(“%4d%f%s”, &clock, &f, cpu); printf(“%d %.0f %s\n”, clock, f, cpu); } 假设输入数据流为200015.0 P4 is GOOD!,请写出执行该 程序后的输出结果( )。 (4)输出结果( ) #include main() { union { int a; char b[2]; } c; c.a=65; puts(c.b); printf("%d\n",sizeof(c)); }