《C语言程序设计》复习题
一、 判断题(本大题共60个小题)
1. C程序执行的入口是main()函数,所以main函数必须放在程序的开头。(B)
2. 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。(B)
3. 注释内容太多会影响程序的执行效率。(B)
4. 变量要“先定义,后使用”。(A)
5. 字符常量'a'与字符串常量"a"没有区别。(B)
6. 数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。(B)
7. 数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。(A)
8. 表达式5/2+5.0/2+7%6 的值为5.5。(A)
9. 设int b=7;float a=2.5,c=4.7;则表达式 a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。(B)
10. 设int a=12; 则表达式a/=a+a的值是0.5。(B)
11. 在C语言中,运算符!比&&的优先级高。(A)
12. 在C语言中,运算符的优先级最小的是逗号运算符。(A)
13. scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。(A)
14. 以下程序运行结果是:1,7,0 (A)
void main()
{
int x=1,y=1,z=10;
if(z< 0)
if(y> 0) x=3;
else x=5;
printf(" %d," ,x);
if(z=y< 0) x=3;
else if(y==0) x=5;
else x=7;
printf(" %d,%d" ,x,z);
}
15. 该程序运行结果是:BCother (A)
void main()
{ char x=‘B’;
switch(x)
{
case ‘A’: printf(“A”);
case ‘B’: printf(“B”);
case ‘C’: printf(“C”);
default: printf(“other”);
}
}
16. 下面程序段运行时输出结果是a=2,b=8 (B)
void main()
float型{
int x=1,y=1,a=2,b=7;
switch(x)
{
case 1: switch(y)
{ case 0: a++;break;
case 1: b++;break;
}
case 2: a++;b++;break;
case 3: a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
17. 下面程序,当输入为:"abc?" 时,执行结果是:abc (A)
void main()
{ char c;
c=getchar();
while (c!='?' ) { putchar(c); c=getchar();}
}
18. 该程序运行结果是:< > < > < > # (A)
void main()
{ int i;
for(i=1;i<=5;i++)
{
if(i%2) putchar(‘<’);
else continue;
putchar(‘>’);
}
putchar(‘#’);
}
19. break语句可用于循环语句和if语句中。(B)
20. continue语句不可用于循环语句中。(B)
21. 以下程序的功能是判断一个数是否是素数 (A)
#include<math.h>
#include <stdio.h>
void main( )
{ int m,i;
scanf(" %d" ,& m);
for(i=2;i< =sqrt(m);i++) if(m%i==0) break;
if(i> sqrt(m)) printf(“%d 是素数" ,m);
else printf(“%d 不是素数" ,m); }
22. 以下程序的功能是计算2+4+6+8+...+98+100。(B)
void main() { int i,s ; for(i=2;i< =100;i+=2 ) s+=i; } (注意s的初始值)
23. 数组的下标是从1开始计数的。(B)
24. 若有int s[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是4。(A)
25. 下面程序段运行时输出结果是:0 15 24 (A)
void main() { int i=0,a[10]; for(i=0;i< =9;i++) a[i]=i*3; printf(" %d %d %d" ,a[0],a[5],a[8]); }
26. 下面程序段运行时输出结果是: 1 0 3 3 4 5 6 6 (B)
void main()
{ int a[8]={1,0,1,0,1,0,1,0},i;
for(i=2;i< 8;i++) a[i]+= a[i-1] + a[i-2];
for(i=0;i< 8;i++) printf(“%d ”,a[i]); }
27. 以下程序的功能是:将一个数组中的元素按逆序重新存放并打印交换后的数组。(A)
#define N 7
#include < stdio.h>
void main()
{ static int a[N]={12,9,16,5,7,2,1},k,s;
for (k=0;k< N/2;k++) { s=a[k]; a[k]=a[N-1-k]; a[N-1-k] =s; }
printf(" \n交换后的数组:\n" ); for(k=0;k< N;k++)printf(" %4d" ,a[k]); }
28. 若有定义int a[3][5];则排列在数组中的第9个元素是a[1][3]。(A)
29. 下面程序段运行时输出结果是:456 (B)
void main() { int a[][3]={ 1,2,3,4,5,6,7,8,9},i,k=2; for(i=0;i< 3;i++) printf(“%d”,a[k][i]); }
30. 下面程序段运行时输出结果是:"AAAA" (B)
void main() { char ch[3][5]={ "AAAA" ,"BBB" ,"CC" }; printf(" \"%s\" " ,ch[1]); }
31. strlen("How are you\n")的值是 12 。(A)
32. C语言中字符串结束的标志是'\0' (A)
33. strcmp("how","How")的值>0 。(A)
34. 以下程序的功能是:字符串a连接到字符串b,并显示字符串b。(B)
void main()
{ char a[200]=”how are you.”, b[200]; int i=0;
while(a[i] !=' \0' ) {b[i]=a[i]; i++; } b[i]=' \0' ;
printf(“新字符串是%s”,b); }
35. 当运行以下程序时,从键盘输入:AAAaaaAAA Abcd234abc AAaa,运行结果为:AaaAAAaaa。
void main()
{ char s[80], c='a';
int i=0;
scanf("%s",s); (注意scanf遇到空格的处理,与gets的不同)
while(s[i++]!='\0')
if(s[i] == c) s[i]=s[i]-32;
else if(s[i]==c-32) s[i]=s[i]+32;
puts(s);
} (A)
36. 下面程序段运行时输出结果是:6 (B)
void main() { int *p,a=5,b=1; p=& a; *p=10; a=*p+b; printf(“%d”,a); }
37. 下面程序段运行时输出结果是:135 (A)
void main()
{ int a[2][3]={1,3,5,7,9,11}; int m,*ptr;
ptr=& a[0][1];
m=(*ptr)*(*(ptr+1))*(*(ptr+3));
printf(" %d" ,m); }
38. 下面程序段运行时输出结果是: -5, -12, -7(A)
void sub(int x,int y,int *z)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论