C语言理论基础考试习题.docx

上传人:b****8 文档编号:28720119 上传时间:2023-07-19 格式:DOCX 页数:38 大小:30.43KB
下载 相关 举报
C语言理论基础考试习题.docx_第1页
第1页 / 共38页
C语言理论基础考试习题.docx_第2页
第2页 / 共38页
C语言理论基础考试习题.docx_第3页
第3页 / 共38页
C语言理论基础考试习题.docx_第4页
第4页 / 共38页
C语言理论基础考试习题.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

C语言理论基础考试习题.docx

《C语言理论基础考试习题.docx》由会员分享,可在线阅读,更多相关《C语言理论基础考试习题.docx(38页珍藏版)》请在冰豆网上搜索。

C语言理论基础考试习题.docx

C语言理论基础考试习题

第一部分C语言理论基础

(4)结构化程序由三种基本结构组成,三种基本结构组成的算法

 A)可以完成任何复杂的任务  

 B)只能完成部分复杂的任务

 C)只能完成符合结构化的任务  

 D)只能完成一些简单的任务

(7)以下叙述中正确的是

 A)C语言比其他语言高级

 B)C语言可以不用编译就能被计算机识别执行

 C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

 D)C语言出现的最晚,具有其他语言的一切优点

第二部分C语言基本语法知识

(2)以下叙述中错误的是

   A)C语句必须以分号结束

   B)复合语句在语法上被看作一条语句

   C)空语句出现在任何位置都不会影响程序运行

   D)赋值表达式末尾加分号就构成赋值语句

(4)以下能正确定义且赋初值的语句是

  A)int n1=n2=10;    

  B)char c=32;

  C)float f=f+1.1;     

  D)double x=12.3E2.5;

(5)设有定义:

int k=1,m=2; float f=7;,则以下选项中错误的表达式是

   A)k=k>=k    B)-k++     C)k%int(f)    D)k>=f>=m

(6)有以下程序段

  int k=0,a=1,b=2,c=3;

  k=a

b:

a;   k=k>c?

c:

k;

执行该程序段后,k的值是

  A)3        B)2       C)1       D)0

(8).以下不能定义为用户标识符的是 

  A)Main

  B)_0

  C)_int

  D)sizeof

(11)若整型变量a、b、c、d中的值依次为:

1、4、3、2。

则条件表达式a

a:

c

c:

d的值  

  A)1    B)2      C)3   D)4

(15)以下4组用户定义标识符中,全部合法的一组是

  A)_main     B)If      C)txt      D)int

    enclude      -max          REAL         k_2

      sin         turbo          3COM           _001

(24)下列关于单目运算符++、--的叙述中正确的是

  A)它们的运算对象可以是任何变量和常量

  B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量

  C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量

  D)它们的运算对象可以是char型变量、int型变量和float型变量

(26)以下选项中合法的用户标识符是

  A)long      B)_2Test   C)3Dmax     D)A.dat

(27)以下非法的赋值语句是

  A)n=(i=2,++i);  B)j++;     C)++(i+1);    D)x=j>0;

(28)设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是

  A)6.500000  

  B)6   

  C)5.500000  

  D)6.000000

(33)以下选项中不属于C语言的类型的是

  A)signed short int    

  B)unsigned longint

  C)unsigned int           

  D)long short

(34)以下叙述正确的是

  A)可以把define和if定义为用户标识符

  B)可以把define定义为用户标识符,但不能把if定义为用户标识符

  C)可以把if定义为用户标识符,但不能把define定义为用户标识符

  D)define和if都不能定义为用户标识符

(35)在C语言中,合法的长整型常数是

  A)0L       

  B)4962710  

  C)324562&   

  D)216D

(37)假定x和y为double型,则表达式x=2,y=x+3/2的值是

  A)3.500000  

  B)3        

  C)2.000000    

  D)3.000000

(38)以下合法的赋值语句是

  A) x=y=100 

  B)d--;  

  C)x+y;  

  D)c=int(a+b);

(40)以下程序的输出结果是

main()

{  int a=3;

printf(“%d\n”,(a+a-=a*a));

}

  A)–6   

  B)12   

  C)0   

  D)–12

(41)以下所列的C语言常量中,错误的是

  A)0xFF      

  B)1.2e0.5   

  C)2L      

  D)‘\72’

(42)下列选项中,合法的C语言关键字是

  A)VAR      

  B)cher          

  C)integer       

  D)default

(47)若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是

  A)1              B)2              C)2.0           D)2.5

(48)若变量a、iI已正确定义,且i已正确赋值,合法的语句是

  A)a==1         B)++i;           C)a=a++=5;  D)a=int(i);

(49)若有以下程序段,

int   c1=1,c2=2,c3;

c3=1.0/c2*c1;

则执行后,c3中的值是

  A)0              B)0.5            C)1             D)2

(50)设有intx=11;则表达式(x++*1/3)的值是

    A)3            B)4               C)11          D)12

(51)下列程序的输出结果是

    A)3            B)3.2             C)0           D)3.07

    main()

    {doubled=3.2;intx,y;

      x=1.2;y=(x+3.8)/5.0;

      printf("%d\n",d*y);

    }

(52)下列变量定义中合法的是

  A)short_a=1-.le-1;             

  B)double b=1+5e2.5;

  C)long do=0xfdaL;              

  D)float 2_and=1-e-3;

(53)以下选项中属于C语言的数据类型是

  A)复数型  

  B)逻辑型   

  C)双精度型  

  D)集合型

(62)C语言提供的合法的数据类型关键字是

  A)Double        B)short             C)integer         D)Char

(73)C语言程序的基本单位是

  A)程序行        B)语句           C)函数          D)字符

(5)设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:

a*=16+(b++)-(++c);

后,a的值是【5】。

 

第三部分顺序结构:

输入与输出

(1)有以下程序

main()

{  int m,n,p;

  scanf("m=%dn=%dp=%d",&m,&n,&p);

  printf("%d%d%d\n",m,n,p);

}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 

  A)m=123n=456p=789

  B)m=123 n=456 p=789

  C)m=123,n=456,p=789

  D)123  456  789

(2)有以下程序

main()

{intm=0256,n=256;

 printf("%o%o\n",m,n);

}

程序运行后的输出结果是

  A)02560400 

  B)0256256 

  C)256400  

  D)400400

 (5)有以下程序

main()

{int a;       char  c=10;

float  f=100.0;   double   x;

a=f/=c*=(x=6.5);

printf("%d %d %3.1f %3.1f\n",a,c,f,x);

}

程序运行后的输出结果是

  A)1 65 1 6.5         

  B)1  65  1.5  6.5

  C)1 65 1.0 6.5       

  D)2  65  1.5  6.5

(6)有定义语句:

int x,y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是

  A)11 12<回车>           

  B)11,12<回车>

  C=11,12<回车>          

  D=11,<回车>

    12<回车>

(8)若有以下程序段(n所赋的是八进制数)

intm=32767,n=032767

printf("%d,%o/n",m,n);

执行后输出结果是

  A)32767,32767      B)32767,032767

  C)32767,77777      D)32767,077777

(9)若有以下程序段

intm=0xabc,n=0xabc;

m-=n;

printf("%X\n",m);

执行后输出结果是

  A)0X0    

  B)0x0    

  C)0   

  D)0XABC

(11)设有定义:

longx=-123456L;,则以下能够正确输出变量x值的语句是

  A)printf(“x=%d\n”,x);  

  B)printf(“x=%ld\n”,x);

  C)printf(“x=%8dL\n”,x);  

  D)printf(“x=%LD\n”,x);

(12)以下程序段的输出结果是

int a=1234;

printf("%2d\n",a);

  A)12         

  B)34       

  C)1234      

  D)提示出错、无结果

(18)以下程序的输出结果是

  A)17,021,0x11      B)17,17,17

  B)17,0x11,021      D)17,21,11

    main( )

    { int  k=17;

       printf("%d,%o,%x\n",k,k,k);

    }

(23)请读程序:

#include

main()

{inta;floatb,c;

scanf("%2d%3f%4f",&a,&b,&c);

printf("\na=%d,b=%f,c=%f\n",a,b,c);

}

若运行时从键盘上输入9876543210表示回车),则上面程序的输出结果是

  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

(25)以下程序的输出结果是 【25】。

#include

main()

{ inta=2,c=5;

  printf("a=%%d,b=%%d\n",a,c);  }

  A)a=%2,b=%5  

  B)a=2,b=5   

  C)a=%%d,b=%%d   

  D)a=%d,b=%d

(8)若有程序

main()

{ int i,j;

 scanf("i=%d,j=%d";&i,&j);

 printf("i=%d,j=%d\n",i,j);

}

要求给i赋10,给j赋20,则应该从键盘输入 【8】 。

(14)若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【14】 。

  

          int  b,c;     floata;

          scanf("%f,%d,c=%d",&a,&b,&c);

(15)若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是【15】。

inta,b;

scanf("a=%d,b=%d",&a,&b);

第四部分选择结构

(3)设有定义:

int a=2,b=3,c=4;,则以下选项中值为0的表达式是

  A)(!

a==1)&&(!

b==0)    

  B)(a

c||1

  C)a&&b      

  D)a||(b+b)&&(c-a)

(4)设变量a、b、c、d和y都已正确定义并赋值。

若有以下if语句

  if(a

    if(c==d) y=0;

    else  y=1;

该语句所表示的含义是

(6)有以下程序

main()

{   int i=1,j=2,k=3;

    if(i++==1&&(++j==3||k++==3))

       printf("%d %d %d\n",i,j,k);

}

程序运行后的输出结果是 

  A)1 2 3

  B)2 3 4

  C)2 2 3

  D)2 3 3

(8)有以下程序

main()

{

inta=3,b=4,c=5,d=2;

 if(a>b)

  if(b>c)

   printf("%d",d+++1);

 else

   printf("%d",++d+1);

 printf("%d\n",d);

}

程序运行后的输出结果是

  A)2   

  B)3   

  C)43   

  D)44

(10)以下4个选项中,不能看作一条语句的是

  A){;}   

  B)a=0,b=0,c=0;  

  C)if(a>0);  

  D)if(b==0)m=1;n=2;

(11)以下程序段中与语句k=a>b?

(b>c?

1:

0):

0;功能等价的是

 A)if((a>B)&&(b>C))k=1;   B) if((a>B)||(b>C)) k=1

                 else k=0;

  C)if(a<=B)  k=0;            D)if(a>B)  k=1;

    elseif(b<=C)  k=1;             elseif(b>C)  k=1;

                                         elsek=0;

(12)有以下程序

main()

{int a=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a

printf("%d,%d\n",k,m);

}

程序运行后的输出结果是

  A)0,0          

  B)0,1         

  C)1,0          

  D)1,1

(15)有以下程序

main()

{ int a=5,b=4,c=3,d=2;

 if(a>b>c)

printf("%d\n",d);

 elseif((c-1>=d)==1)

printf("%d\n",d+1);

 else

printf("%d\n",d+2)

}

执行后输出结果是

  A)2   B)3   C)4   D)编译时有错,无结果

(16)已有定义:

intx=3,y=4,z=5;,则表达式!

(x+y)+z-1&&y+z/2的值是

  A)6       B)0    C)2       D)1

(17)有一函数, ,以下程序段中不能根据x值正确计算出y值的是

  A)if(x>0)y=1;         B)y=0;

   elseif(x==0)y=0;      if(x>0)y=1;

   elsey=-1;          elseif(x<0)y=-1;

  C)y=0;            D)if(x>=0)

   if(x>=0);            if(x>0)y=1;

   if(x>0)y=1 ;         elsey=0;

   elsey=-1;           elsey=-1;

(18)有以下程序

main()

{  inta=15,b=21,m=0;

switch(a%3)

{case0:

m++;break;

case1:

m++;

switch(b%2)

{default:

m++;

case0:

m++;break;

}

}

printf(“%d\n”,m);

}

 程序运行后的输出结果是

  A)1     B)2     C)3     D)4

(24)设x、y、t均为int型变量,则执行语句:

x=y=3;t=++x||++y;后,y的值为

  A)不定值    B)4       C)3        D)1

(46)在下列选项中,不正确的赋值语句是

  A)++t;            

  B)n1=(n2=(n3=0)); 

  C)k=i==j;         

  D)a=b+c=1;

(47)能正确表示a≥10或a≤0的关系表达式是

  A)a>=10ora<=0                     

  B)a>=10│a<=0

  C)a>=10││a<=0                     

  D)a>=10││a<=0

(2)以下程序运行后的输出结果是

main()

{

   int a=3,b=4,c=5,t=99;

   if(b

   if(a

   printf("%d%d%d\n",a,b,c);

}

(3)以下程序运行后的输出结果是

main()

{

  int a,b,c

  a=10;b=20;c=(a%b<1)||(a/b>1);

  printf("%d%d%d\n",a,b,c);

}

(5)有以下程序

main()

{ intn=0,m=1,x=2;

  if(!

n)  x-=1;

  if(m)  x-=2;

  if(x)  x-=3; 

 printf(“%d\n”,x);

}

执行后输出结果是【5】。

(6)以下程序运行后的输出结果是 【6】 。

main()

{int p=30;

printf(“%d\n”,(p/3>0?

p/10 :

p%3));

}

(9)若有以下程序

main()

{ int a=4,b=3,c=5,t=0;

 if(a

 if(a

 printf("%d%d%d\n",a,b,c);

}

执行后输出结果是【9】。

(10)以下程序运行后的输出结果是  [10]  。

 main()

{intx=10,y=20,t=0;

if(x==y)t=x;x=y;y=t;

printf(“%d,%d\n”,x,y);

}

(15)若x为int类型,请以最简单的形式写出与逻辑表达式!

x等价的C语言关系表达式    [15]。

第五部分:

循环结构

(3)有以下程序

 main()

 {int k=5,n=0;

  while(k>0)

  { switch(k)

     { default :

 break;

        case 1 :

 n+=k;

        case 2 :

        case 3 :

 n+=k;

     }

    k--;

  }

  printf("%d\n",n);

 }

程序运行后的输出结果是

  A)0   

  B)4   

  C)6   

  D)7

(4)有以下程序

main()

{

  int a=1,b;

  for(b=1;b<=10;b++)

  {

     if(a>=8)  break;

     if(a%2==1) { a+=5; continue;}

     a-=3;

  }

  printf("%d\n",b);

}

程序运行后的输出结果是             

  A)3

  B)4

  C)5

  D)6

 (12)有以下程序段

intn=0,p;

do{scanf(“%d”,&p);n++;}while(p!

=12345&&n<3);

此处do—while循环的结束条件是

  A)P的值不等于12345并且n的值小于3

  B)P的值等于12345并且n的值大于等于3

  C)P的值不等于12345或者n的值小于3

  D)P的值等于12345或者n的值大于等于3

 

(17)以下程序的输出结果是

main()

{  int  num=0;

while(num<=2)

{ num++; printf(“%d\n”,num);

}

  A}1  B}1   C}1   D}l

   2     2        2

     3     3

    4

(18)以下程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1