一、选择题(每题2分,共40分)
1、C语言源程序的基本单位是(    )
  A.程序行        B.语句          C.函数          D.字符
2、C语言规定:在一个源程序中,main函数的位置(    )。
 A.必须在最开始   B.必须在系统调用的库函数的后面
  C.可以任意     D.必须在最后
3、在下列字符列中,合法的标识符是(      )
  A.p12&.a        B.stud_100    C. water$12          D.88sum
4、在C语言中,要求运算的数必须是整数的运算符是(    )
  A./            B.!        C.%            D.=  =
5、设有语句 int a =3;则执行了语句a + = a - = a*a;后,变量a的值是(    )
  A、3            B、0            C、9            D、-12
6、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a > b)&&(n=c>d)后n的值为( )
  A、1              B、2              C、3            D、4
7、执行下列程序时输入:1234567,程序的运行结果是( )
  main()
  {
  int x,y;
  scanf(%2d%*2c%1d,&x,&y);
  printf(%d\n,x+y);
  }
A.17          B.46          C.15            D.9
8、下述程序的输出结果是( )
  #include<stdio.h>
c语言程序分析题及答案   void main()
  {int x=-1,y=4;
  int k;
  k=++x<=0&&!(y--<=0);
  printf("%d,%d,%d",k,x,y);}
  A.0,0,3          B.0,1,2,        C.1,0,3,      D.1,1,2
9、为了避免嵌套的if-else语句的二义性,C语言规定else总是与(    )组成配对关系。
A.缩排位置相同的if
B.在其之前未配对的if
C.在其之前未配对的最近的if
D.同一行上的if
10、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( )
main()
{int x;
scanf(“%d“,&x);
if(x++>5)printf(“%d”,x);
else printf(“%d\n”,x--);
}
A.7和5            B.6和3          C.7和4        D.6和4
11、若变量c为char类型,能正确判断出c为小写字母的表达式是(    )
A. 'a'<=c<= 'z'                    B. (c>= 'a')||(c<= 'z')
C. ('a'<=c)and ('z'>=c)            D. (c>= 'a')&&(c<= 'z')
12、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是     
    if(x>y) z=x; x=y; y=z;
  A.x=10, y=20, z=30                  B.x=20, y=30, z=30
  C.x=20, y=30, z=10                D.x=20, y=30, z=20
13、以下程序的输出结果为
main( )
{int i,f1,f2;
f1=f2=1;
for(i=0;i<4;i++)
{printf(“%d%d”,f1,f2);
  f1+=f2;
  f2+=f1; }  }
A.1 2 3 4 5 6 7 8    B.1 1 2 3 5 8 13 21 
C.1 1 3 5 7 9 11 13  D.1 3 5 7 9 11 13 15
14、以下程序段(    )。
x=-1;
do
{ x=x*x;}
while(! x);
A.是死循环                    B.循环执行二次
C.循环执行一次                  D.有语法错误
15、执行语句 for (i=1;i++<4;) ; 后变量 i 的值是(    )。
A3      B4      C 5        D不定
16、在定义int a[10];之后,对a的引用正确的是(    )。
  A.a[10]        B.a[6.3]        C.a(6)        D.a[10-10]
17、在定义int a[5][6];后,第10个元素是(    )。
  A.a[2][5]    B.A[2][4]    C.a[1][3]      D.a[1][5]
18、定义如下变量的数组:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下列语句的输出结果是(  )
for(i=0;i<3;i++)printf(%d,x[i][2-i]);
A.159          B.147        C.357              D.369
19、在C语言中,若对函数类型未另显示说明,则函数的隐含类型是(    )类型。
A.void        B.double    C.int    D.char
20、设int * p,i;以下正确的语句是(    )。
A.* p=10;          B.i=p ;        C.i=* p;      D.p=2* p+1;
二、填空题(每空1分,共10分)
1、结构化设计中的三种基本结构是_________、__________、        __      __。
2、C语言源程序文件的后缀是___________,经过编译后生成文件的后缀是___________,经过链接后生成文件的后缀是____________。
3、定义int x,y;执行y=(x=1,++x,x+2);语句后,y的值是___________。
4、若执行以下程序段:
  int a=1,b=2,m=2,n=2;
(m=a>b)&&++n;则n的值是______________。
5、下述语句执行后,
int k=1; while (k++<10); 变量 k 的值是____________。
6、定义如下变量的数组:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)printf(%d,x[i][2-i]);
则上列语句的输出结果是____________。
三、补充完整程序(每题5分,共20分)
1、已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下,请填空:
  main()
  {
    int year,leap;
    scanf(%d,&year);
    if(                                    )
        leap=1;
    else leap=0;
    if(            ) printf(是润年);
    else printf(不是润年);
  }
2、用辗转相减法求两个正整数m和n的最大公约数。
main()
{int m,n;
_______________;
while(m-n!=0)
    if(m>n)____ _____;
    else  __________;
printf("gcd(m,n)=%d\n",m);}
3、计算1+1/2+1/4++1/50的值,并显示出来。
    main()
    { int i=2;
      float sum=1.0;
      while(i<=      )
        { sum+=1/      ;
          i+=2;
        }
      printf(sum=%f\n,sum);
        }
4、利用一维数组求显示fibonacci数列的前20项,每行显示5个数,每个数宽度5位,即:0,1,1,2,3,5,8,13……。
main()
{int i;
int x[20]=________ __________;
for(i=2;i<20;i++)
  _____________
for(i=0;i<20;i++)
  {if(i%5==0)printf(“\n”);
  ________________
  }
printf(“\n”);}
四、编程题(7+8+7+8,共30分)
1、有1、2、3、4个数字,新通 能组成多少个互不相同且无重复数字的三位数?都是多少?
2、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,求1000以内满足条件的数。
3、输出打印九九乘法表。
4、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。   
一、选择题(每题2分,共40分)
1、C  2、C  3、B  4、C  5、D  6、B  7、A  8、C  9、C  10、A  11、D  12、B 
13、B  14、C  15、C  16、D  17、C  18、C  19、C  20、B
二、填空题(每空1分,共10分)
1、顺序结构、选择结构、循环结构      2、.c,.obj,.exe
3、4            4、2          5、11              6、357
三、补充完整程序(每题5分,共20分)
1、year%4==0&&year%100!=0||year%400==0  leap
2、scanf(“%d%d”,&m,&n)  m=m-n    n=n-m
3、50  i

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