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,  -7A
void sub(int x,int y,int *z)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。