c语言测验

 

       C 语言第 1 至第 8
     1. 下列符合 C 语言语法的语句是 :
        A) a=7+b+c=a+7;           B) a=7+b++=a+7;
        C) a=7+b,b++,a+7          D) a=7+b,c=a+7;
     2. C 语言中 , 要求运算数必须是整型的运算符是 :
        A) %         B) /        C) <         D) !
     3. 已知字母 A ASCII 码为十进制的 65, 下面程序的输出是 :
        main( )
        { char ch1,ch2;
          ch1='A'+'5'-'3';
          ch2='A'+'6'-'3';
          printf("%d,%c/n",ch1,ch2); }
        A) 67,D      B) B,C       C) C,D       D) 不确定的值
     4. 若执行下面的程序时从键盘上输入 3 4, 则输出是 :
        main( )
        { int a,b,s;
          scanf("%d %d",&a,&b);
          s=a;
          if(a<b) s=b;
          s=s*s;
          printf("%d/n",s); }
        A) 14       B) 16         C) 18       D) 20
     5. 下面的程序
        main( )
        { int x=3,y=0,z=0;
          if(x=y+z) printf("* * * *");
          else printf("# # # #"); }
        A) 有语法错误不能通过编译                      B) 输出 * * * *
        C) 可以通过编译 , 但是不能通过连接 , 因而不能运行  D) 输出 # # # # 
     6. 下面的程序 :
        main( )
        { int x=3;
          do   printf("%d/n",x-=2); while(!(--x));
        }
        A) 输出的是 1   B) 输出的是 1 -2    C) 输出的是 3 0     D) 是死循环
     7. 执行下面程序中的输出语句后 , a 的值是 :
        main( )
        { int a; printf("%d/n",(a=3*5,a*4,a+5)); }
        A) 65         B) 20         C) 15         D) 10
     8. 下面程序的输出是 :
        main( )
        {int x=100,a=10,b=20,ok1=5,ok2=0;
         if (a<b)
           if (b!=15) 
              if (!ok1)
               x=1;
              else
                if (ok2) x=10; 
         x=-1;
         printf("%d/n",x);     }
        A) -1         B) 0        C) 1         D)  不确定的值
     9. 下面程序的输出是 :
        main( )
        {int a=-1, b=4, k ;
         k=(a++<=0)&&(!(b--<=0));
         printf("%d %d %d/n",k,a,b);      }
        A) 0 0 3      B) 0 1 2      C) 1 0 3      D) 1 1 2
     10. 下面的程序片段所表示的数学函数关系是 :
        y=-1;
        if(x!=0)
        if(x>0) y=1;
        else y=0;
        A) y 的值 x<0 时为 -1, x=0 时为 0, x>0 时为 1
        B) y 的值 x<0 时为 1, x=0 时为 -1, x>0 时为 0
        C) y 的值 x<0 时为 0, x=0 时为 -1, x>0 时为 1
        D) y 的值 x<0 时为 -1, x=0 时为 1,x>0 时为 0
     11. 下面程序的输出是 :
        main( )
        { int y=9;
          for (;y>0;y--)
           { if(y%3==0)
              { printf("%d",--y);
                continue; }
           }
        }
        A) 741          B) 852          C) 963          D) 875421
     12. 下面的程序输出是 :
        int m=5;
        int fun2(int x,int y)
        { int m=1;
           return(x*y-m);   }
        main( )
        { int a=7,b=5;
           printf("%d/n",fun2(a,b)/m); }
        A) 语法错         B) 6         C) 6.8         D) 7
     13. C 语言中最简单的数据类型包括 :
        A) 整型,实型,逻辑型        B) 整型,实型,字符型
        C) 整型,字符型,逻辑型      D) 整型,实型,逻辑型,字符型
     14. 下述对 C 语言字符数组的描述中错误的是 :
        A) 字符数组可以存放字符串
        B) 字符数组中的字符串可以整体输入 , 输出
        C) 可以在赋值语句中通过赋值运算符 "=" 对字符数组整体赋值
        D) 不可以用关系运算符对字符数组中的字符串比较大小
     15. 设有如下定义 :
          int x=10,y=3,z;
        则语句 printf("%d/n",z=(x%y,x/y)); 的输出结果是 :
        A) 1           B) 语法错         C) 3.333333         D) 3
     16. 若要求在 if 后一对园括号中表示 a 不等于 0 的关系 , 则能正确表示
        这一关系的表达式为 :
        A) a<>0        B) !a          C) a=0         D) a
   
     17. 有如下变量和数组 :
        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) 1 5 9       B) 1 4 7       C) 3 5 7       D) 3 6 9
     18. 以下说法中正确的是 :
        A) C 语言程序总是从第一个定义的函数开始执行
        B) C 语言程序中 , 要调用的函数必须在 main() 函数中定义
        C) C 语言程序总是从 main() 函数开始执行
        D) C 语言程序中的 main() 函数必须放在程序的开始部份
     19. 执行下面的程序后 ,a 的值为
        main( )
        { int a,b;
          for (a=1,b=1;a<=100;a++)
              { if (b>=20) break;
                if (b%3==1)
                   { b+=3;
                     continue; }
                b-=5;
              }
          printf(“%d/n”,a);
        }
        A) 7            B) 8            C) 9            D) 10
     20. 定义如下变量 :
         int n=10;
         则下面循环的输出结果是 :
         while (n>7)
           { n--; printf("%2d",n); }
         A) 10 9 8       B) 9 8 7        C) 10 9 8 7     D) 9 8 7 6
     21. 两次运行下面的程序 , 如果从键盘上分别输入 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
     22. 下面的程序输出结果是 :
        #include <stdio.h>
        f(int a)
         { int b=0;
           static c=3;
           a=c++,b++;
           return(a); }
        main()
        { int a=2,i,k;
          for (i=0;i<2;i++)
              k=f(a++);
          printf("%d/n",k);}
        A) 3          B) 0          C) 5          D) 4
 
     23. 阅读下列程序 :
        main( )
        { int n[3],i,j,k;
          for (i=0;i<3;i++) n[i]=0;
          k=2;
          for (i=0;i<k;i++)
              for (j=0;j<k;j++) n[j]=n[i]+1;
          printf("%d/n",n[1]);
        }
        上述程序运行后 , 输出结果是 :
        A) 2          B) 1          C) 0          D) 3
     24. C 语言提供的合法的关键字是 :
        A) swtich      B) cher        C) Case        D) default
     25. C 语言中 , 合法的字符常量是 :
       A) '/084'       B) '/x43'      C) 'ab'        D) "/0"
     26. 合法的数组定义是 :
       A) int a[ ]="string";          B) int a[5]={0,1,2,3,4,5};
       C) char a="string";           D) char a[ ]={0,1,2,3,4,5};
     27. a 为整型变量 , 不能正确表达数学关系 :10<a<15 的语言表达式是 :
       A) 10<a<15
       B) a==11||a==12||a==13||a==14
       C) a>10 && a<15
       D) !(a<=10) && !(a>=15)
     28. t double 类型 , 表达式 t=1,t+5,t++ 的值是 :
       A) 1           B) 6.0          C) 2.0         D) 1.0
     29. 若有定义和语句 :
        char s[10]; s="abcd"; printf("%s/n",s);
        则结果是 ( 以下 u 代表空格 )
       A) 输出 abcd   B) 输出 a    C) 输出 abcduuuuu  D) 编译不能通过
     30. 若有以下定义和语句
         int u=010,v=0x10,w=10;
         printf("%d,%d,%d/n", --u, v, w--);
         则输出结果是 :
        A) 7,16,10     B) 8,10,9     C) 9,16,9      D) 10,10,10
     31. i ,j 已定义为 int 类型 , 则以下程序段中内循环体的总的执行次数是:
        for (i=5; i; i--)
            for (j=0; j<4; j++) { 循环体 }
        A) 20           B) 24           C) 25        D) 30
     32. 当执行下面的程序时,如果输入 ABC ,则输出是 :
        A) ABC6789           B) 123456789
        C) ABC456789        D) 12345ABC
        #include <stdio.h>
        #include <string.h>
        main( )
        {   char s[10]=”12345”;
            gets(s); 
            strcat(s, “6789”);
            printf(“%s/n”, s);
        }
 
练习一 基本运算和语句
1、    下面的 C 语言标识符中正确的是:                               
   A case   B -ac   C _53    D ab-c
2 、以下常数表示中不正确的是:                                   
   A -0.    B ’/55’ C 0x2a3   D ’103’
3 、若 a 为浮点变量, b 为整型变量,将式
   (‘4’-‘0’) – a*b 中所隐含的类型自动转换,改写为其对应的强制类型转换表达式是 ((int)’4’-(int)’0’)-(double)a*(double)b­_
4 、设 x=2 y=3 ,表达式 x=y==3 运算后的值为 ______________
5 、设 a 是整型变量,初值是 12 ,执行完表达式 a+=a -=a*a 后, a 的值为:
   A 144   B -264 C 264 D 0
6 、若 x y z 的初值均为 1 ,则执行表达式
   w=++x || ++y &&++z 后, x y z 的值分别为:
   A x=1 y=1 z=2   B x=2 y=2 z=2
   C x=1 y=2 z=1   D x=2 y=1 z=1
7 、下列语句中符合 C 语言语法的赋值语句是:                         
   A a=7+b+c=a+7 ;   B a=7+ b++ =a+7 ;
   C a=7+b , b++ , a+7 D a=7+b , c=a+7 ;
8 、在 C 语言中,要求运算数必须是整型的运算符是:                    
   A %    B /    C <    D !
9 、数学式子 写成 C 语言表达式是 __
10 C 语言中最简单的数据类型包括:                                
   A )整型、实型、逻辑型
   B )整型、实型、字符型
   C )整型、字符型、逻辑型
   D )整型、实型、逻辑型、字符型
11 、关系式 x ≥y≥z的C语言表达式是:                          
   A (x >=y) && (y >=z)
   B (x >=y) AND (y >=z)
   C (x >= y >= z)
   D (x >=y) & (y >=z)
12 、若要求在 if 后一对园括号中表示 a 不等于 0 的关系,则能正确表示这一关系的表达式为:                                              
   A a < >0  B !a    C a=0    D a
13 、表示条件: 10 < x < 100 x < 0 C 语言表达式是 __
14 、设 a b c 都是 int 型变量, a=3 b=4 c=5 ,下列表达式中,值为 0 的表达式是:  
A ’a’ && ‘b’     B a<=b   C a || b + c && b-c D ! ((a<b) && !c ||1 )
15 、下列程序段的输出是:
    int i=65536 ; printf (“%d /n”, i ) ;
A 65536        B 0           
C )有语法错误,无输出结果     D -1
16 、设 ch char 型变量,其值为 A ,则表达式
    ch = (ch >= ‘A’ && ch <= ‘Z’) ? (ch + 32) : ch
    的值为:
A A    B a    C Z      D z
17 、若 x y 都是 int 型变量, x=100 y=200 则语句 printf (“%d”, (x , y)) ; 的输出结果为:
A 200   B 100   C 100 200 
D )输出格式符不够,输出不确定的值
18 x int 型变量,下面程序段的输出结果为:
   for ( x=3 ; x<6 ; x++) 
   printf ((x%2) ? (“ * * %d ”) : (“ # # %d /n”) , x ) ;
A * * 3        B # # 3 
    # # 4            * * 4  
    * * 5            # # 5
C # # 3         D * * 3 # # 4
    * * 4 # # 5         * * 5
19 、设 i s 都是整型变量,执行如下语句:    
    for(i=0 , s=0 ; i+s<10 , i<10 ; i++ , s++) ;
    printf (“%d ,%d/n” , i , s) ;
    输出为:
   A 11 , 11 B 5 , 5   C 6 , 6 D 10 , 10
20 main ()
   {   int x=3 , y=0 , z=0 ;
       if (x=y+z) printf (“* * * * “) ;
       else printf (“# # # # “) ; 
   }       程序输出为:                                         6
   A )有语法错误不能通过编译
   B )输出 * * * *
   C )可以通过编译,但不能通过连接,因而不能运行
   D )输出 # # # #
21 main ()
   {   int x=3 ;
       do {   printf (“%d/n”, x - = 2) ;
          } while ( ! ( - - x) ) ;
   }     程序的输出为:                                        
   A )输出 1          B )输出 1 –2
   C )输出 3 0      D )是死循环
22 main ()
   {   int x=023 ;
       printf ( “%d/n”, - - x) ;
   }    程序输出为:                                         
   A 17   B 18   C 23   D 24
23 main ()
   {   int x=10 , y=10 ;
       printf (“%d %d/n”, x - - , - - y ) ;       21
   }   程序输出为:
 A 10 10 B 9 9 C 9 10 D 10 9
24 main ()
   {   int x ;
       scanf ( “%d”, &x) ;
       if ( x++ > 5) printf ( “%d/n”, x ) ;
       else printf ( “%d/n”, x - - ) ;
   }   若执行程序时从键盘输入 5 ,则输出为:            
   A 7    B 6    C 5    D 4
25 main ()
{   int a ;
    printf (“%d/n”, (a=3*5 , a*4 , a+5 ) ) ;
} 执行程序中的输出语句后, a 的值为:               
A 65   B 20   C 15   D 10
26 main ()
{   int a=-1 , b=4 , k ;
    k=(a++ <= 0) && ( ! (b - - <= 0) ) ;
    printf ( “%d %d %d/n”, k , a , b ) ;
}   程序输出为:                                     
A 0 0 3 B 0 1 2 C 1 0 3 D 1 1 2
27 、两次运行下面的程序,如果从键盘上分别输入 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
 
 
28 、下面的程序片段所表示的数学函数关系是:                 
A   B
C   D
y = -1 ;
if ( x != 0)
    if ( x > 0 ) y=1 ;
    else y=0 ;
29 #include <stdio.h>
   main()
   { int a ; float b , c ;
      scanf (“%2d %3f %4f “, &a , &b, &c ) ;
      printf( “/n a=%d , b=%f , c=%f /n “ , a , b , c) ;
   }   若运行以上程序时从键盘输入
   9876543210 <CR> ,则输出结果为:
A a=98 , b=765 , c=4321            
B a=10 , b=432 , c=8765 
C a=98 , b=765.000000 , c=4321.000000
D a=98 , b=765.0 , c=4321.0
30 printf( “%d /n “, strlen (“ ATS/n012/1// “ )) ; 程序段的输出结果是:
A 11 B 10   C 9    D 8
31 #include <stdio.h>
    main ()
    {   int a , b ;
        for ( a=1 , b=1 ; a<=100 ; a++)
        {   if ( b>=20 ) break ;
            if ( b%3 == 1 ) 
            {   b += 3 ; continue ; }
             b - = 5 ;    }
        printf ( “%d /n “, a ) ;
     }     程序输出为:                                   
    A 7    B 8     C 9     D 10
 
 
32 #include <stdio.h>
   main ()
   {   int num = 0 ;
       while (num <= 2) 
       {   num ++ ; printf (“%d /n “, num ) ; }
   }    程序输出为:
   A 1     B 1   C 1      D 1
                  2         2           2
                            3           3
                                        4
33 #include <stdio.h>
main ()
{   int x = 1 , y=0 , a=0 , b=0 ;
    switch ( x )
    {   case 1 :
            switch ( y )
            {   case 0 : a++ ; break ;
                case 1 : b++ ; break ;
             }
        case 2 : a++ ; b++ ; break ;
    }
    printf (“ a=%d , b=%d /n “, a , b ) ;
 }      程序输出为:
A a=2 , b=1     B a=1 , b=1
C a=1 , b=0     D a=2 , b=2
34 #include <stdio.h>
   main ()
   {   float x , y ;
       scanf (“%f “, &x ) ;
       if (x<0.0 ) y=0.0 ;
       else if ((x<5.0)&&(x!=2.0)) y=1.0/(x+2.0);
       else if (x<10.0 ) y=1.0 / x ;
       else y=10.0 ;
   printf (“%f /n “, y ) ;
   }  若从键盘输入 2.0 <CR> ,则程序输出为:
A 0.000000      B 0.250000     
C 0.500000      D 1.000000
35 main ()
    {   int i , x ;
        for ( i=1 , x=1 ; i<=50 ; i++ )
        {   if ( x>=10 ) break ;
            if (x%2 == 1) 
            {   x+=5 ; continue ; }
            x -=3 ;     } 
        printf (“ x=%d , i=%d /n “, x , i ) ; 
    }   程序运行结果为 ___________
36 main ()
{   int y=9 ;
    for ( ; y>0 ; y - - )
    {   if ( y % 3 == 0 )
        {   printf (“%d”, - - y) ;
            continue ;   }
    }
}   程序输出是:                                         
 A 741   B 852   C 963   D 875421
37 main ()
{   int x=2 ;
    while ( x - - ) ;
    printf ( “%d/n”, x ) ; 
}   程序运行结果为 _____________
38 #include <stdio.h>
   main ()
   { int i , j =0 ;
      for (i=16 ; i<=1000 ; i++)
      { if (i %17 !=0) continue ;
    j++ ;
    printf ((j == 4) ? j=0 ,”%d/n” : ”%d /t”, i ) ;
 }
}    填充:
该程序的功能是 ___ ___
其中 continue 语句的作用是 __ _______
语句 printf ((j == 4) ? j=0 ,”%d/n” : ”%d /t”, i ) ; 的作用是 _
________
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值