1.有以下程序
#include <stdio.h>
void main()
{ int a=5,b=4,c=3,d=2;
  if(a>b>c)
      printf("%d\n",d);
  else if((c-1>=d)==1)
      printf("%d\n",d+1);
  else 
      printf("%d\n",d+2);
}
执行后输出的结果是___D___
A.2    B.编译时有错,无结果    C.4  D.3
 
 
2.xint型变量,则执行以下语句后,x的值为:
int x = 10; 
x*=x/=-x; 
        printf("%d\n", --x);  --D---
A.10    B.1    C.-10  D.0
 
 
3.下面程序的输出是_C___
main()
{ int x,i
for(i=1i<=100i++)
{ x=i
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%d ",x)
}
}
A.39 81    B.42 84  C.28 70  D.26 68
 
4.C语言中,合法的字符常量是---B----
A."a"      B.'\t'    C.97  D.a
5.已知int x=12,y=3;执行下述程序后,变量x的值是_D___
do
{ x/=y--
}while(x>y)
printf("%d\n",x);}
A.2  B.1  C.3  D.程序运行有错误
6.有以下程序
#include <stdio.h>
void main()
{ int m=3,n=4,x;
  x=-m++;
  x=x+8/++n;
  printf("%d\n",x);
}
程序运行后的输出结果是__C____
A.3  B.5  C.-2  D.-1
7.abc1c2xy均是整型变量,正确的switch语句是______
   
      switch(a+b);
      {  case 1:y=a+b;break;
      case 0:y=a-b;break;
    }
   
    switch(a*a+b*b)
    {  case 3:
        case 1:y=a+b;break;
        case 3:y=b-a;break;
    }
   
    switch  a
    {  case c1:y=a-b;break;
        case c2:x=a*b;break;
        default:x=a+b;
    }
   
    switch (a-b)
    {  default:y=a*b;break;
        case  3:case 4:x=a+b;break;
        case 10:case 11:y=a-b;break;
    }----A-----
A.    B.    C.  D.
8.有以下程序
    #include <stdio.h>
void main()
{      int  y=10;
while (y--);  printf("y=%d\n", y);
}
程序执行后的输出结果是---A---
A.y=-1  B.while构成无限循环  C.y=0  D.y=1
9.有以下程序
#include <stdio.h>
void main()
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf("%d\n",x);
}
执行后输出结果是_-4____
10.有如下程序
#include <stdio.h>
void  main()
{
  int x=23;
  do
  {printf("%d",x--);
    }
  while(!x);
}
  则输出结果为(  23 
11.以下程序运行后的输出结果是1 2 3_____
#include <stdio.h>
void main()
{ int i, m=0, n=0, k=0;
for(i=9; i<=11; i++)
switch(i/10)
{ case 0: m++; n++; break;
case 10: n++; break;
default: k++; n++;
}
printf("%d  %d  %d \n", m, n, k);
}
12. 以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。
#include <stdio.h>
void main ()
{
  int  i, j;
 for(i=0;i<10; i++)

  j=i*10+6;
  if(  _j%3!=0___ ) continue;
  printf("%d  ",j);
}
}
1.C语言的源程序变为目标程序要经过( C      )
A.编辑
B.连接
C.编译
D.运行
2.C语言中用于结构化程序设计的三种基本结构是___C___
A.forwhiledo-while
B.ifswitchbreak
C.顺序结构、选择结构、循环结构\
D.ifforcontinue
3.以下叙述中正确的是__B____
A.花括号“{”“}”只能作为函数体的定界符
B.C程序中注释部分可以出现在程序中任意合适的地方
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
 本题的考查点是C程序设计的初步知识。
    选项AC程序中/*……*/表示注释部分,注释只是给人看的,对编译和运行不起作用,可
以加在程序中任何位置,所以选项A是对的;
    选项B,函数体是函数的主体,从左花括号开始,到与之匹配的右花括号结束。花括号还可以作为复合语句的定界符。
    选项C,一个C程序中必须有且只能有一个由“main”命名的主函数,其他函数由用户自行命名。
    选项DC语句是组成C程序的基本单位,具有独立的程序功能。所有的C语句都以分号结尾。
    故本题答案为A
4.有以下程序段
      int  k=0;
      while(k=1)k++;
while循环执行的次数是__D____
A.执行1
B.有语法错,不能执行
C.一次也不执行
D.无限次
乍一看,还以为程序要表达的意思是当k等于1的时候做k++,但是C语言里关系表达式的等于应该是"=="。一个等于号表示赋值,即这里面重复的把1赋给k,自然表达式k=1的值总为1while后面的表达式恒为真,当然会进入死循环。
    本题答案为A
5.设有说明语句: char  a = '\72'; 则变量a ___C___
A.说明不合法
B.包含3个字符
C.包含1个字符
D.包含2个字符
本题考查点是转义字符的应用。
    转义字符常量'\xx'可以把'\'后面的数字转换为对应的ASCII字符,'\72'表示的是ASCII码等于72的那个字符,即为"H",所以在字符变量中存储的只是"H"这一个字符。
    故本题答案为A
6.下面程序
      #include <stdio.h>
      void main()
      {
        int x=10,y=3;
        printf("%d\n",y=x/y);
      }
的输出是__C____
A.不确定的值
B.1     
C.3 
D.0       
    本题的考查点是除法运算。
    x/y的结果约为3.33333,但xY定义为int,由于打印要求为整型,所以自动转换为整型(相当于截取整数位),打印结果为3
    故本题答案为C
7.ab均为double型常量,且a=5.5b=2.5,则表达式(int)a+b/b的值是___B___
A.5.500000
B.6.000000
C.6
D.6.500000
    本题的考查点是各类数值型数据的混合运算。
    各类数值型数据在进行混合运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则为:字符数据必定先转换为整数,short型转为int型,float型数据在运算时一律先转换成双精度型,以提高运算精度。
    故本题答案为D
8.有如下程序
#include <stdio.h>
void main()
{    int  x=1,a=0,b=0;
    switch(x){
          case 0:  b++;
          case 1:  a++;
          case 2:  a++;b++;
    }
    printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是__D____
A.a=2,b=2
B.a=1,b=1
C.a=1,b=0
D.a=2,b=1
    在这个switch语句中,因为x的值为1,所以执行case 1:后面的a++,这样a = 1。但又由于其下没有break语句,所以其后面的语句(a++;b++)也将被执行,这样一来,a = 2b = 1
    本题答案为A
9.设有定义:int  a;  float  b;  执行scanf("%2d%f",&a,&b); 语句时,若从键盘输入876  543.0<回车>ab的值分别是----D----
A.876543.000000
B.76543.000000
C.87543.000000
D.876.000000
10.有以下程序
#include <stdio.h>
void main()
{ int s=0,a=1,n;
  scanf("%d",&n);
  do
    {s+=1; a=a-2;}
  while(a!=n);
  printf("%d\n",s);
}
若要使程序的输出值为2,则应该从键盘给n输入的值是__B____
A.-5
B.-3
C.-1
D.0
 本题的考查点是do-while语句
    此语句的一般形式为:
    do      语句
    while  (表达式)
其特点为:先执行语句,后判断表达式。
    它是这样执行的:先执行一次指定的内嵌的语句,然后判别表达式,当表达式的值为非零()时,返回重新执行该语句,如此反复,直到表达式的值等于0为止,此时循环结束。
    n=-1时,s+=1,s=1; a=a-2=-1;a!=n不成立,结束循环,此时s值为1,不符合题意;
    n=-3时,s+=1,s=1; a=a-2=-1;a!=n成立,继续循环,s=s+1=2,a=a-2=-3;a!=n不成立,此时s值为2,符合题意;
    故本题答案为B
11.以下选项中非法的表达式是__D____
A.i=j==0
B.0<=x<100
C.(char)(65+3)
D.x+1=x+1
计算或运算主要是通过表达式实现的。不同的表达式进行不同的运算,达到不同的目的。
printf是不是c语句    选项A中,0<=x<100C语言中是一个合法的关系表达式,但它并不代表数学式0<=x<100。在计算0<=x<100时,根据从左到右的结合性,先计算0<=x,其结果只能是01
然后再比较0<1001<100
    选项B中,根据运算符的优先级,先判断j==0是否成立,其结果只能是01,然后再将01赋给i
    选项C中,(char)(65+3)为类型强制转换,将数值型数据转换为字符型。
    选项D中,赋值运算符的作用是将一个数据赋给一个变量,此项中等号左半部分不合要求。
    故本题答案为D

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