高考c语言复习题(5)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 main() {int n,i,s=0; do {scanf(“%d ”,n);} while(n%2=0); for(i=1,i<1,i #include main() {int n,i,j; scanf(“%d ”,&n); for(i=3; ;i++) if( ) ; if( )printf(“%d ”,i); } } 15.运行结果:( ) #include void main() { char s[]=”2473”, c, i; for(i=0;c=s[i];i++) { switch(c-‘0’) { case 2: case 3: putchar(c+4); continue; case 4: putchar(c+4); break; case 5: putchar(c+3); default: putchar(c+2); } putchar(‘\n’); } } 16.写出程序的输出结果(假定类型unsigned int 的字长为16位)。( ) #include void main() { unsigned int u1=0x958,u2,u3; u2=(u1 & 0xff)<<4;

u3=(u1 & 0xff00) >>4;

printf(“%x %x %x \n”,u2,u3,u2/u3);}

17.设一维数组a 的4个输入整数是1,2,3,4,则程序的输出是( )

#include #define M 4 void main( )

{ int i, j, k, m, a[4];

printf(“Enter 4 numbers: “);

for(i=0; i0; i--) { k=M-1;

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));

}

相关文档
最新文档