C语言练习题答案.docx

上传人:b****7 文档编号:8932493 上传时间:2023-02-02 格式:DOCX 页数:58 大小:29.55KB
下载 相关 举报
C语言练习题答案.docx_第1页
第1页 / 共58页
C语言练习题答案.docx_第2页
第2页 / 共58页
C语言练习题答案.docx_第3页
第3页 / 共58页
C语言练习题答案.docx_第4页
第4页 / 共58页
C语言练习题答案.docx_第5页
第5页 / 共58页
点击查看更多>>
下载资源
资源描述

C语言练习题答案.docx

《C语言练习题答案.docx》由会员分享,可在线阅读,更多相关《C语言练习题答案.docx(58页珍藏版)》请在冰豆网上搜索。

C语言练习题答案.docx

C语言练习题答案

省高等学校计算机等级考试(二级C语言)选择题试题库

答案

试题

C

 1.  在C语言源程序中,以下叙述正确的是(  )。

 A. main函数必须位于文件的开头    

 B. 每行只能写一条语句    

 C. 程序中的一个语句可以写成多行

 D. 每个语句的最后必须有点号

C

 2.  关于C语言的源程序的叙述中,错误的是(  )。

 A. C语言的源程序由函数构成

 B. main函数可以书写在自定义函数之后     

 C. 必须包含有输入语句

 D. 一行可以书写多个语句 

C

 3.  关于C语言数据类型的叙述,正确的是(  )。

 A. 枚举类型不是基本类型

 B. 数组不是构造类型

 C. 变量必须先定义后使用

 D. 不允许使用空类型

C

 4.  C程序中main函数的位置( )。

 A. 必须在最开始

 B. 必须在系统库函数后面

 C. 可以在自定义函数后面

 D. 必须在最后

B

 5.  C语言的函数体由( )括起来。

 A. ( )

 B.  { }

 C.  [ ]

 D.  /* */

D

 6.  关于C语言的叙述中,不正确的是( )。

 A. C程序可由一个或多个函数组成

 B. C程序必须包含一个main()函数

 C. C程序的基本组成单位是函数

 D. 注释说明只能位于一条语句的后面

D

 7.  以下叙述不正确的是(  )。

 A. C程序的执行总是从main函数开始

 B. 一个C源程序必须包含一个main函数

 C. C语言程序的基本组成单位是函数

 D. 在编译C程序源程序时,可发现注释中的拼写错误

C

 8.  结构化程序设计的三种基本结构是(  )。

 A. 函数结构、分支结构、判断结构

 B. 函数结构、嵌套结构、平行结构

 C. 顺序结构、分支结构、循环结构

 D. 分支结构、循环结构、嵌套结构

C

 9.  对于C语言源程序,以下叙述错误的是(  )。

 A. 可以有空语句

 B. 函数之间是平等的,在一个函数部不能定义其它函数

 C. 程序调试时如果没有提示错误,就能得到正确结果

 D. 注释可以出现在语句的前面

D

 10.  下面关于C语言用户标识符的描述,正确的是(  )。

 A. 不区分大小写

 B. 用户标识符不能描述常量

 C. 类型名也是用户标识符

 D. 用户标识符可以作为变量名

D

 11.  以下(  )是正确的变量名。

 A. 5f

 B. if

 C. f.5

 D. _f5

D

 12.  以下(  )是正确的常量。

 A. E-5

 B. 1E5.1

C. 'a12'

 D. 32766L

D

 13.  以下(  )是正确的变量名。

 A. a.bee

 B. -p11

 C. int

 D. p_11

C

 14.  以下(  )是正确的字符常量。

单引号括起来

 A. "c"

 B. '\\''

 C. 'W'

 D. "\32a"

A

 15.  以下(  )是不正确的字符串常量。

双引号括起来

 A. 'abc'

 B. "12'12"

 C. "0"

 D. " "

B

 16.  以下(  )是错误的整型常量。

 A. -0xcdf

 B. 018//八进制数不能超过8

 C. 0xe

 D. 011

B

 17.  以下(  )是正确的浮点数。

 A. e3//e前面必须有数字,指数必须为整数

 B. .62

 C. 2e4.5

 D. 123

A

 18.  若有说明语句:

char c='\95'; 则变量c包含(  )个字符。

 A. 1\ddd:

表示1到3位八进制数所代表的字符

 B. 2\xhh表示1到2位十六进制数所代表的字符

 C. 3

 D. 语法错误

A

 19.  若有定义:

int a=2; 则正确的赋值表达式是(  )。

 A. a-=(a*3)

 B. double(-a)//(double)(-a)

 C. a*3

 D. a*4=3

C

 20.  语句x=(a=3,b=++a);运行后,x、a、b的值依次为(  )。

 A. 3,3,4//逗号运算符及逗号表达式

 B. 4,4,3

 C. 4,4,4

 D. 3,4,3

B

 21.  语句a=(3/4)+3%2;运行后,a的值为(  )。

 A. 0

 B. 1//注意除号/两边均为整型时,结果为整数(不含小数点)

 C. 2

 D. 3

A

 22.  char型变量存放的是( )。

//考查变量类型

 A. ASCII代码值

 B. 字符本身

 C. 十进制代码值

 D. 十六进制代码值

C

 23.  若有定义:

int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为( )。

 A. 3,3//考查逗号表达式及逗号运算符

 B. 4,4

 C. 4,3

 D. 3,4

B

 24.  若有定义:

int a; 则语句a=(3 * 4)+ 2 % 3;运行后,a的值为( )。

 A. 12

 B. 14

 C. 11

 D. 17

A

 25.  若有定义:

int a,b; double x,则以下不符合C语言语法的表达式是(  )。

 A. x%(-3)//%两侧均应为整型数据

 B. a+=-2

 C. a=b=2

 D. x=a+b

B

 26.  若有定义:

int x=2,y=3;float i;,则以下符合C语言语法的表达式是(  )。

 A. x=x*3=2//x*3不是一个变量名

 B. x=(y==1)

 C. i=float(x)//应改为i=(float)x

 D. i%(-3)//%两侧均应为整型数据

C

 27.  设double型变量a,b,c,e均有值;对代数式(3ae)/(bc),不正确的C语言表达式是(  )。

 A. a/b/c*e*3

 B. 3*a*e/b/c

 C. 3*a*e/b*c//改为3*a*e/b/c

 D. a*e/c/b*3

B

 28.  下面叙述正确的是(  )。

 A. 2/3 与 2.0/3.0  等价

 B. (int)2.0/3 与 2/3 等价

 C. ++5 与 6 等价//单独写++5是错误的,可以写成a=++5

 D. 'A'与"A"等价

A

 29.  下面叙述中,错误的是(  )。

 A. 其算术运算对象不包含函数

 B. %(模运算符)的运算对象只能为整型量

 C. 算术运算符的结合方向是"自左至右"

 D. 自加和自减运算符的结合方向是"自右至左"

A

 30.  下面叙述正确的是(  )。

 //++--只能用于变量,而不能用于常量或表达式

 A. 强制类型转换运算的优先级高于算术运算

 B. 若a和b是整型变量,(a+b)++是合法的

 C. 'A'*'B' 是不合法的

 D. "A"+"B"是合法的

B

 31.  若有定义:

int k,i=2,j=4; 则表达式 k=(++i)*(j--) 的值是( )。

 A. 8

 B. 12  //注意前缀后缀的区别

 C. 6

 D. 9

C

 32.  设整型变量a为5,使b不为2的表达式是( )。

 A. b=(++a)/3

 B. b=6-(--a)

 C. b=a%2//结果为1

 D. b=a/2

C

 33.  若有定义:

int a=1,b=2,c=3; 则语句 ++a||++b&&++c;运行后b的值为( )。

 A. 1

 B. 0

 C. 2//注意运算的不完全性

 D. 3

B

 34.  若有定义:

int i,j;则表达式(i=2,j=5,i++,i+j++)的值是(  )。

 A. 7

 B. 8

 C. 9

 D. 10

B

 35.  若有定义:

int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是(  )。

 A. 7

 B. 8

 C. 9

 D. 10

B

 36.  若有定义:

int m=5,n=3;则表达式(m+1,n+1,(--m)+(n--))的值是(  )。

 A. 6

 B. 7

 C. 8

 D. 9

B

 37.  已知 int a;使用scanf()函数输入一个整数给变量a,正确的函数调用是(  )。

 A. scanf("%d",a);

 B. scanf("%d",&a);

 C. scanf("%f",&a);

 D. scanf("%lf",&a);

D

 38.  已知 double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是(  )。

 A. scanf("%ld",&a);

 B. scanf("%d",&a);

 C. scanf("%7.2f",&a);//输入数据时不能规定精度

 D. scanf("%lf",&a);

B

 39.  已知 char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(  )。

 A. scanf("%d",&a);

 B. scanf("%lf",&a);//字符型变量与整型等价,但不与浮点型等价

 C. scanf("%c",&a);

 D. scanf("%u",&a);

B

 40.  putchar()函数的功能是向终端输出( )。

//char*str0;….;puts(str0);

 A. 多个字符

 B. 一个字符

 C. 一个实型变量值

 D. 一个整型变量表达式

D

 41.  getchar()函数的功能是从终端输入( )。

 A. 一个整型变量值

 B. 一个实型变量值

 C. 多个字符

 D. 一个字符

D

 42.  若有定义:

int x=1234,y=123,z=12;则语句printf("%4d+%3d+%2d", x, y, z);运行后的输出结果为( )。

 A. 123412312

 B. 2

 C. 1234+1234+1234

 D. 1234+123+12

A

 43.  已有如下定义和输入语句,

int a; char c1,c2;

scanf("%d%c%c",&a,&c1,&c2);

若要求a、c1、c2的值分别为10、A和B,正确的数据输入是(  )。

 A. 10AB//输入数据时,遇空格、回车、TAB、及非法输入或按规定的宽度结束

 B. 10  A  B

 C. 10A  B

 D. 10  AB

B

 44.  已有如下定义和输入语句:

int a,b;

scanf("%d,%d",&a,&b);//“格式控制”字符串中除了格式说明还有其他字符,则输入//时应在相应位置输入

若要求a、b的值分别为10和20,正确的数据输入是(  )。

 A. 10  20

 B. 10,20

 C. a=10,b=20

 D. 10;20

D

 45.  以下程序的运行结果是(  )。

void main()

{

  int a=65;

  char c='A';

  printf("%x,%d",a,c);

}

 A. 65,a

 B. 41,a

 C. 65,65

 D. 41,65

A

 46.  下面叙述中,(  )不是结构化程序设计中的三种基本结构之一。

 A. 数据结构

 B. 选择结构 

 C. 循环结构

 D. 顺序结构

A

 47.  下面叙述中,(  )不是结构化程序设计三种基本结构的共同特点。

 A. 先判断后执行

 B. 单入口,单出口

 C. 程序中没有执行不到的语句

 D. 无死循环

A

 48.  结构化程序设计不包括(  )。

 A. 最优化

 B. 自顶而下,逐步细化

 C. 模块化设计

 D. 结构化编码

D

 49.  以下运算符中优先级最高的是( )。

 A. >

 B. ||

 C. &&

 D. +//初等运算符()[]单目算术关系逻辑(不含!

)赋值逗号

A

 50.  若有定义:

int x=3,y=4;则表达式 !

x||y 的值为( )。

 A. 1

 B. O

 C. 3

 D. 4

A

 51.  若有定义:

int i=7,j=8;则表达式 i>=j||i

 A. 1

 B. 变量i的值

 C. 0

 D. 变量j的值

C

 52.  若希望当a的值为奇数时,表达式的值为"真",a的值为偶数时,表达式的值为"假"。

则不能满足要求的表达式是(  )。

 A. a%2==1

 B. !

(a%2==0)

 C. !

(a%2)

 D. a%2

D

 53.  若有定义:

int x=3,y=4,z=5;则值为0的表达式是(  )。

 A. 'x'&&'y'

 B. x<=y

 C. x||y+z&&y-z

 D. !

((x

z||1)//考查运算符优先级

A

 54.  若有定义:

int a=5,b=2,c=1;则表达式a-b

 A. 0

 B. 1

 C. 2

 D. -1

A

 55.  已知double a=5.2; 则正确的赋值表达式是(  )。

 A. a+=a-=(a=4)*(a=3)

 B. a=a*3=2

 C. a%3

 D. a=double(-3)

A

 56.  已知char a='R'; 则正确的赋值表达式是(  )。

 A. a=(a++)%4

 B. a+2=3

 C. a+=256--

 D. a='\078'

A

 57.  已知int a='R'; 则正确的表达式是(  )。

 A. a%10

 B. a=int(3e2)

 C. 2*a=a++

 D. a=a+a=a+3与C同属一类错误

A

 58.  设单精度型变量f、g的值均为2.0,使f为4.0的表达式是( )。

 A. f+=g

 B. f-=g+2

 C. f*=g-6

 D. f/=g*10

B

 59.  若有定义:

float x=3.5;int z=8;则表达式 x+z%3/4 的值为( )。

 A. 3.75

 B. 3.5

 C. 3

 D. 4

A

 60.  若有定义:

int a=1,b=2,c=3,d=4,x=5,y=6;则表达式 (x=a>b)&&(y=c>d) 的值为( )。

 A. 0

 B. 1

 C. 5

 D. 6

A

 61.  若有定义:

int a=2,b=3; float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是(  )。

//(float)(a+b)/2=2.5

 A. 3.5

 B. 3.0

 C. 2.5

 D. 2.0

C

 62.  若有定义:

int b=7; float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是(  )。

 A. 2.5//(b/2*(int)(a+c)/2)=10注意运算顺序

 B. 3.5

 C. 4.5

 D. 5.5

C

 63.  若有定义:

int a=6,b=2;char c1='a',c2='b';则表达式a+b%5+c2-c1的值是(  )。

 A. 7

 B. 8

 C. 9

 D. 表达式错误

B

 64.  以下的if语句中,x的值一定被重新赋值的是(  )。

 A. if(x==y) x+=y;

 B. if(x>y && x!

=y );//注意if语句后的空语句;

   x+=y;

 C. if(x!

=y) 

   scanf("%d",&x); 

 else 

   scanf("%d",&y); 

 D. if(x

 { x++;y++; }

B

 65.  C语言对if嵌套语句的规定:

else总是与(  )配对。

 A. 第一个if

 B. 之前最近的且尚未配对的if

 C. 缩进位置相同的if

 D. 之前最近的if

B

 66.  对于整型变量x,下述if语句(  )与赋值语句:

     x=x%2==0?

1:

0;

不等价。

 A. if (x%2!

=0) x=0; else x=1;

 B. if (x%2) x=1; else x=0;

 C. if (x%2==0) x=1; else x=0;

 D. if (x%2==1) x=0; else x=1;

B

 67.  若有定义:

int x=1,y=2,z=4;则以下程序段运行后z的值为( )。

if(x>y) z=x+y;

else z=x-y;

 A. 3

 B. -1

 C. 4

 D. 不确定 

D

 68.  若有定义:

int a=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为( )。

if (a

{c=a;a=b;b=c;}

 A. a=1,b=2,c=3

 B. a=2,b=3,c=1

 C. a=2,b=3,c=3

 D. a=2,b=1,c=1

D

 69.  以下程序段运行后变量a的值为( )。

int x=6,y=5;

int a;

a=(--x==y++)?

x:

y+1;

 A. 0

 B. 1

 C. 6

 D. 5

C

 70.  以下程序的运行结果是(  )。

//注意分支中有无break的区别

void main()

{

  int n='e';

  switch(n--)

  {

    default:

 printf("error "); 

    case 'a':

    case 'b':

 printf("good "); break;

    case 'c':

 printf("pass ");

    case 'd':

 printf("warn ");

  }

}

 A. error

 B. good

 C. error good

 D. warn

C

 71.  以下程序的运行结果是(  )。

void main()

{

  int n='c';

  switch(n++)

  {

    default:

 printf("error "); break;

    case 'a':

    case 'b':

 printf("good "); break;

    case 'c':

 printf("pass ");

    case 'd':

 printf("warn ");

  }

}

 A. pass

 B. warn

 C. pass warn

 D. error

D

 72.  以下程序的运行结果是(  )。

void main( )

{ int n=5;

  if(n++>=6)

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

  else

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

}

 A. 4

 B. 5

 C. 6

 D. 7

B

 73.  设有整型变量x,下述语句(  )不会出现死循环。

 A. for(;;x+=1);

 B. for(;(x=getchar())!

='\n';);

 C. while

(1) {x++;}

 D. for(x=10;;x--);

B

 74.  对于整型变量x,与while(!

x)等价的是(  )。

 A. while(x!

=0)

 B. while(x==0)

 C. while(x!

=1)

 D. while(~x)

A

 75.  对于整型变量x和y,语句

    for(x=0,y=0;(y!

=123)&&(x<4);x++) y++;

  中的“y++;”被执行(  )。

 A. 4次

 B. 0次

 C. 123次

 D. 3次

B

 76.  在c语言中while循环和do--while循环的主要区别是( )。

 A. do--while循环体可以使用break语句,while循环体不能使用break语句

 B. do--while的循环体至少无条件执行一次,while的循环体不是

 C. do--while循环体可以使用continue语句,while循环体不能使用continue语句

 D. while的循环体至少无条件执行一次,do--while的循环体不是

B

 77.  以下程序段运行后,循环体运行的次数为( )。

int i=10,x;

for (;i<10;i++)x=x+i;

 A. 10

 B. 0

 C. 1

 D. 无限

D

 78.  以下程序段运行后变量n的值为( )。

int i=1,n=1;

for (;i<3;i++)

   {continue;n=n+i;}

 A. 4

 B. 3

 C. 2

 D. 1

B

 79.  以下程序的运行结果是(  )。

void main()

{

  int sum = 0, item = 0;

  while(item < 5)

  {

    item++;

    sum += item;

    if(sum==5)

      break;

  }

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

}

 A. 10

 B. 15

 C. 5

 D. 6

C

 80.  以下程序的运行结果是(  )。

void main()

{

  int sum = 0, item = 0;

  while(item < 5)

  {

    item++;

    sum += item;

    if(sum>=6)

      break;

  }

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

}

 A. 10

 B. 15

 C. 6

 D. 7

B

 81.  以下程序的运行结果是(  )。

void main()

{

  int sum = 0, item = 0;

  while(item < 5)

  {

    item++;

    if(item == 2)

      continue;

    sum += item;

  }

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

}

 A. 10

 B. 13

 C. 15

 D. 1

A

 82.  下列数组定义中,正确的是(  )。

 A. int a[5]={0};

 B. int a[]={0 1 2};//int a[]={0 , 1,2};注意元素与元素之间加逗号

 C. int a[5]=0;//int a[5]={0};

 D. int a[];//必须指明数组大小

A

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

当前位置:首页 > 高等教育 > 农学

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

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