第一部分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 ? 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<b?a:c<d?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 型变量
(27) 以下非法的赋值语句是
A) n=(i=2,++i);  B)j++;  C) ++(i+1);  D)x=j>0;
(33) 以下选项中不属于C语言的类型的是
A) signed  short  int
B) unsigned  long int
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
(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) 设有int x=11; 则表达式(x++ * 1/3) 的值是
A) 3          B) 4                C) 11          D) 12
(51) 下列程序的输出结果是
A) 3          B) 3.2              C) 0            D) 3.07
main()
{ double d=3.2; int x,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()
{ int m=0256,n=256;
printf("%o %o\n",m,n);
}
程序运行后的输出结果是
A) 0256 0400
B) 0256 256
C) 256 400
D) 400 400
(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所赋的是八进制数)
int m=32767,n=032767
printf("%d,%o/n",m,n);
执行后输出结果是
A) 32767,32767      B) 32767,032767
C) 32767,77777      D) 32767,077777
(9)若有以下程序段
int m=0xabc,n=0xabc;
m-=n;
printf("%X\n",m);
执行后输出结果是
A) 0X0
B) 0x0
C) 0
D) 0XABC (11) 设有定义:long x=-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(  )printf输出格式 unsigned short
{  int  k=17;
printf("%d,%o,%x \n",k,k,k);
}
(25)以下程序的输出结果是【25】。
# include <stdio.h>
main()
{  int a=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;float a;
scanf("%f,%d,c=%d",&a,&b,&c);
(15) 若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是【15】。
int a,b;
scanf("a=%d,b=%d",&a,&b);
第四部分选择结构
(3)设有定义:int  a=2,b=3,c=4;,则以下选项中值为0的表达式是
A)(!a==1)&&(!b==0)
B)(a<b)&& !c||1
C)a && b
D)a||(b+b)&&(c-a)
(4)设变量a、b、c、d和y都已正确定义并赋值。若有以下if 语句
if (a<b)
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()
{
int a=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;
else if(b<=C)  k=1;            else if(b>C)  k=1;
else k=0;
(12) 有以下程序
main()
{int  a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a<b);
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);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2)
}
执行后输出结果是
A) 2 B) 3 C) 4 D) 编译时有错,无结果
(16) 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2
的值是
A) 6      B) 0C) 2      D) 1
(17) 有一函数,,以下程序段中不能根据x值正确计算出y值的是
A) if(x>0) y=1;      B) y=0;
else if(x==0) y=0;    if(x>0) y=1;
else y=-1;    else if(x<0) y=-1;
C)y=0;      D)if(x>=0)
if(x>=0);      if(x>0) y=1;
if(x>0) y=1 ;    else y=0;
else y=-1;      else y=-1;
(18) 有以下程序
main()
{  int a=15,b=21,m=0;
switch(a%3)
{ case 0:m++;break;
case 1:m++;
switch(b%2)
{ default:m++;
case 0: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>=10 or a<=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<a&&a<c)  t=a;a=c;c=t;
if(a<c&&b<c)  t=b;b=a;a=t;
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( )
{  int n=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<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d %d %d\n",a,b,c);
}
执行后输出结果是【9】。
(10)以下程序运行后的输出结果是[10]  。
main()
{ int x=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] 。

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