2017 ACM协会 C语言竞赛初赛

请分别填写你们队伍的三个队友姓名(只需要填写姓名和空格间隔即可)
    ____________
请填写你们队伍队长的手机号
    ____________
算法具有五个特性,以下选项中不属于算法特性的是:
A)有穷性
B)简洁性
C)可行性
D)确定性
以下叙述中错误的是:
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户定义的标识符中,大、小写字母代表不同标识
以下4组用户定义标识符中,全部合法的一组是:
A)_main enclude sin
B)If -max turbo
C)txt REAL 3COM
D)int k_2 _001
以下选项中,合法的一组C语言数值常量是:
A)028 .5e-3 -0xf
B)12. 0Xa23 4.5e0
C).177 4e1.5 0abc
D)0x8a 10,000 3.e5
以下叙述中正确的是:
A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
下列叙述中正确的是:
A)每个C程序文件中都必须要一个main()函数
B)在C程序中main()函数的位置是固定
C)C程序中所有函数之间都可以相互调用,与函数所在位置无关
D)在C程序的函数中不能定义另一个函数
下列叙述中错误的是:
A)计算机不能直接执行用C语言编写的源程序
B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件
C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件
D)后缀为.obj和.exe的二进制文件都可以直接运行
以下叙述中错误的是:
A) C 语言是一种结构化程序设计语言
B)结构化程序有顺序、分支、循环三种基本结构组成
C)使用三种基本结构构成的程序只能解决简单问题
D)结构化程序设计提倡模块化的设计方法
用C语言编写的代码程序:
A)可立即执行
B)是一个源程序
C)经过编译即可执行
D)经过编译解释才能执行
结构化程序由三种基本结构组成,三种基本结构组成的算法:
A)可以完成任何复杂的任务
B)只能完成部分复杂的任务
C)只能完成符合结构化的任务
D)只能完成一些简单的任务
-----------------------------------------------------------------------------------------------------------------------------------------------
C语言源程序名的后缀是:
A).exe
B).C
C).obj
D).cp
以下叙述中错误的是:
A)C语句必须以分号结束
B)复合语句在语法上被看作一条语句
C)空语句出现在任何位置都不会影响程序运行
D)赋值表达式末尾加分号就构成赋值语句
以下能正确定义且赋初值的语句是:
A)int n1=n2=10;
B)char c=32;
C)float f=f+1.1;
D)double x=12.3E2.5;

以下程序的运行结果,以下叙述中正确的是:

main(){

  char a1='M', a2='m';

  printf("%c\n", (a1, a2) );

}

A)程序输出大写字母M
B)程序输出小写字母m
C)格式说明符不足,编译出错
D)程序运行时产生出错信息
以下符合C语言语法的实型常量是:
A)1.2E0.5
B)3.14.159E
C).5E-3
D)E15
若以下选项中的变量已正确定义,则正确的赋值语句是:
A)x1=26.8%3;
B)1+2=x2;
C)x3=0x12;
D)x4=1+2=3;

设有以下定义

int a=0;

double b=1.25;

char c='A';

#define d 2

则下面语句中错误的是:

A)a++;
B)b++;
C)c++;
D)d++;

设有定义:

float a=2,b=4,h=3;

以下C语言表达式与代数式 1/2(a+b)h 计算结果不相符的是:

A)(a+b)*h/2
B)(1/2)*(a+b)*h
C)(a+b)*h*1/2
D)h/2*(a+b)

有以下定义语句

double a,b;

int w;

long c;

若各变量已正确赋值,则下列选项中正确的表达式是:

A)a=a+b=b++
B)w%(int)a+b
C)(c+w)%(int)a
D)w=a==b;

有以下程序程序

main() {

  int m=3,n=4,x;

  x=-m++;

  x=x+8/++n;

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

}

运行后的输出结果是:

A)3
B)5
C)-1
D)-2
-----------------------------------------------------------------------------------------------------------------------------------------------

有以下程序

main() {

  char a='a',b;

  print("%c,",++a);

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

}

程序运行后的输出结果是:

A)b,b
B)b,c
C)a,b
D)a,c

有以下程序

main() {

  char a,b,c,d;

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

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

若运行时从键盘上输入:6,5,65,66。则输出结果是:

A)6,5,A,B
B)6,5,65,66
C)6,5,6,5
D)6,5,6,6
以下关于long、int和short类型数据占用内存大小的叙述中正确的是:
A)均占4个字节
B)根据数据的大小来决定所占内存的字节数
C)由用户自己定义
D)由 C 语言编译系统决定
以下不合法的字符常量是:
A)\018
B)\
C)\\
D)\xcc

表达式 3.6-5/2+1.2+5%2 的值是:

A)4.3
B)4.8
C)3.3
D)3.8
以下四个程序中,完全正确的是:
A) #include stdio.hmain( ); { /* programming */ printf(programming!\n);}
B) #include stdio.hmain() { /*/ programming /*/printf(programming!\n);}
C) #include stdio.hmain( ) { /*/* programming */*/ printf(programming!\n);}
D) include stdio.hmain( ) { /* programming */ printf(programming!\n);}
以下叙述中错误的是:
A)C程序中的#include和#define行均不是C语句
B)除逗号运算符外,赋值运算符的优先级最低
C)C程序中,j++;是赋值语句
D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
以下叙述中正确的是:
A)预处理命令行必须位于C源程序的起始位置
B)在C语言中,预处理命令行都以“#”开头
C)每个C程序必须在开头包含预处理命令行:#include
D)C语言的预处理不能实现宏定义和条件编译的功能
下列叙述中错误的是:
A)一个C语言程序只能实现一种算法
B)C程序可以由多个程序文件组成
C)C程序可以由一个或多个函数组成
D)一个C函数可以单独作为一个C程序文件存在

下面程序的输出结果是:

#include <stdio;h>

main() {

  int i=010,j=10;

  printf("%d,%d", i,j--);

}

A)11,10
B)9,10
C)010,9
D)10,9
-----------------------------------------------------------------------------------------------------------------------------------------------

若有定义:

int a=8,b=5,c;

执行语句 c=a/b*0.4; 后,c的值为:

A)1.4
B)1
C)2.0
D)2
C语言程序的基本单位是:
A) 程序行
B) 语句
C) 函数
D) 字符
C语言中最简单的数据类型包括:
A) 整型、实型、逻辑型
B) 整型、实型、字符型
C) 整型、字符型、逻辑型
D) 整型、实型、逻辑型、字符型
以下选项中属于C语言的数据类型是:
A)复数型
B)逻辑型
C)双精度型
D)集合型
下列叙述中正确的是:
A)C语言中既有逻辑类型也有集合类型
B)C语言中没有逻辑类型但有集合类型
C)C语言中有逻辑类型但没有集合类型
D)C语言中既没有逻辑类型也没有集合类型
C语言提供的合法的数据类型关键字是:
A)Double
B)short
C)integer
D)Char
在使用程序流程图来表示算法时,菱形用来表示:
A)输入与输出
B)子程序
C)判断分支
D)循环边界
与十进制数200等值的十六进制数为:
A)A8
B)A4
C)C8
D)C4

有以下程序

main() {

  int m=12,n=34;

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

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

}

程序运行后的输出结果是:

A)12353514
B)12353513
C)12343514
D)12343513

有以下程序

main() {

  int a,b,d=25;

  a=d/10%9;

  b=a&&(-1);

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

}

程序运行后的输出结果是:

A)6,1
B)2,1
C)6,0
D)2,0
-----------------------------------------------------------------------------------------------------------------------------------------------
设int a=12,则执行完语句a+=a-=a*a后,a的值是:
A)552
B)264
C)144
D)-264
在C语言中,要求运算数必须是整型的运算符是:
A)%
B)/
C)
D)!
设有语句char a='\072';,则变量a:
A)包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法
要把高级语言编写的源程序转换为目标程序,需要使用:
A)编辑程序
B)驱动程序
C)诊断程序
D)编译程序
英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为:
A)50
B)66
C)52
D)68
以下选项中不属于C语言的类型是:
A)signed short int
B)unsigned char
C)signed long
D)long short
在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是:
A)a=20000+20000
B)a=4000*10
C)a=30000+10000
D)a=4000L*10L
已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是:
A)字符A
B)字符a
C)字符e
D)非法的常量
下列关于单目运算符++、--的叙述中正确的是:
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D)它们的运算对象可以是char型变量、int型变量和float型变量
设m,n为两已知数值的整型变量,在数学中m/n=5.5,则C语言中m/n=:
A)5.5
B)5
C)6
D)以上答案均不正确

有以下程序

main() {

  int m = 3,n = 4,x;

  x = -m++;

  x = x+8/++n;

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

}

请问输出的结果是:

A)3
B)5
C)-1
D)-2
以下关于运算符优先顺序的描述中正确的是:
A)关系运算符 算术运算符 赋值运算符 逻辑与运算符
B)逻辑 运算符 关系运算符 算术运算符 赋值运算符
C)赋值运算符 逻辑与运算符 关系运算符 算术运算符
D)算术运算符 关系运算符 赋值运算符 逻辑与运算符

已有定义

int x; f1oat y;

且执行

scanf("%3d%f",&x,&y); 语句,

若输入12345 78(回车),则 x 的值为:

A)12345
B)123
C)45
D)345
以下数据结构中不属于线性数据结构的是:
A)队列
B)线性表
C)二叉树
D)栈
下面描述中,符合结构化程序设计风格的是:
A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B)模块只有一个入口,可以有多个出口
C)注重提高程序的执行效率
D)不使用goto语句
C语言规定:简单变量作为实参时,它和对应形参之间的数据传递方式是:
A)地址传递
B)单向值传递
C)由实参传给形参,再由形参传回给实参
D)由用户指定的传递方式
你喜欢一个女/男孩,所以你与你的情敌对决多年。这次对决是关于C语言的,你向对方扔出“我||你”大招,意思是:
A)
B)
C)
变量的指针是指该变量的:
A.值
B.地址
C.名
D.一个标志
C语言中,char型数据是以什么形式在内存中存储的:
A.原码
B.补码
C.反码
D.ASCII码
C语言的程序用一行写不下时,可用什么换行:
A.用逗号
B.用分号
C.在任一空格处
D.用回车符
-----------------------------------------------------------------------------------------------------------------------------------------------
C语言中,int,char,short型数据所占用内存:
A.均为两字节
B.由用户自行定义
C.由所用机器字长决定
D.是任意的

A,B,C,D,E五名学生有可能参加计算机竞赛,请根据以下条件判断有哪些人参加竞赛:

1.A参加时B也参加

2.B和C只有一个人参加

3.C和D要不都参加,要不都不参加

4.D和E至少一个人参加

5.如果E参加,那么A和D都参加

A
B
C
D
E

下列代码所输出的数为:

#include <stdio.h>

int main() {

  int n=10,m=1,i;

  for(i=0;i<=n;i++);

  {

    n--;

    m++;

  }

  ++m-=n;

  printf("%d",m);

  return 0;

A)-6
B)4
C)0
D)-2

若有说明语句

int i=5,j=4,k=6;float f;

则执行

f=(i<j&&i<k)?i:(j<k)?j:k;

语句后,f的值为:

A)4.0
B)5.0
C)6.0
D)7.0
以下所列的C语言常量中,错误的是:
A)0xFF
B)1.2e0.5
C)2L
D)\72
对于循环队列,下列叙述中正确的是:
A)队头指针是固定不变的
B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针
D)队头指针可以大于队尾指针,也可以小于队尾指针
设float x,由键盘输入:12.45, 能正确读入数据的输入语句是:
A)scanf(%5f,x);
B)scanf(%5d,x);
C)scanf(%f,x);
D)scanf(%s,x);
C语言程序中,整型常量的书写形式不包括:
A)二进制
B)八进制
C)十进制
D)十六进制
以下描述正确的是:
A)函数形参是虚设的,所以它始终不占用存储单元
B)当函数形参是变量时,实参与它所对应的形参占用不同的存储单元
C)函数实参与它所对应的形参占用同一个存储单元
D)函数实参与它所对应的形参同名时可占用同一个存储单元
以下叙述中正确的是:
A)C程序中注释部分可以出现在程序中任意合适的地方
B)花括号{和}只能作为函数体的定界符
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
D)分号是C语句之间的分隔符,不是语句的一部分
-----------------------------------------------------------------------------------------------------------------------------------------------
算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是:
A)有零个输入或多个输入
B)高效性
C)有穷性
D)确定性
调用gets和puts函数时,必须包含的头文件是:
A)stdio.h
B)stdlib.h
C)define
D)以上都不对
以下不正确的定义语句是:
A)double x[5]={2.0,4.0,6.0,8.0,10.0};
B)int y[5]={0,1,3,5,7,9};
C)char c1[]={′1′,′2′,′3′,′4′,′5′};
D)char c2[]={′\x10′,′\xa′,′\x8′};
字符型数据在机器中是用ASCII码表示的,字符’5’和’7’在机器中表示为:
A)10100011 和 01110111
B)01000101 和 01100011
C)00110101 和 00110111
D)01100101 和 01100111
在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是:
A)地址传递
B)单向值传递
C)由实参传形参,再由形参传实参
D)传递方式由用户指定
在C语言的if语句中,用作判断的表达式为:
A)关系表达式    
B)逻辑表达式      
C)算术表达式   
D)任意表达式

若int i=10;,执行下列程序:则变量i的结果是:

switch(i)

{

  case 9: i += 1;

  case 10:

  case 11: i -= 1;

  default: i += 1;

}

(A)10
(B)11
(C)12
(D)9
下述表达式中,可以正确表示x≤0或x≥1的关系:
A)(x=1) || (x=0)
B)x=1 | x=0
C)x=1 x=0
D)(x=1) (x=0)
在C语言中,字符串"\\TOP\t\65\""的长度是:
A)5
B)7
C)8
D)12

以下程序的运行情况是:

 

main() {

  int i=1,sum=0;    

  while (i<10) 

    sum=sum+1; 

  i++;    

  printf("i=%d,sum=%d",i,sum);  

}  

A)i=10,sum=9
B)i=9,sum=9
C)i=2,sum=1
D)运行出现错误
-----------------------------------------------------------------------------------------------------------------------------------------------

有以下程序执行后的输出结果是:

main() {

  int i;    

  for(i=1;i<=40;i++)    

  {

    if(i++%5==0)    

      if (++i%8==0)

        printf("%d",i);

  }    

  printf("\n");

A)5
B)24
C)32
D)40

以下程序的输出结果是:

main() {

  char x=040;

  printf("%d\n",x=x<<1);

}  

A)100
B)80
C)120
D)64

int i,j;

for( i=j=0 ; i<10&&j<8 ; i++,j+=3 )

 

控制的循环体执行的次数是:

A)9
B)8
C)3
D)2
已知:int c[3][4];则对数组元素引用正确的是:
A)c[1][4]
B)c[1.5][0]
C)c[1+0][0]
D)以上表达都错误

以下程序的输出结果是:

int main() {

  int a=4,b=5,c=0,d;
  d=!a&&!b||!c;
  printf("%d\n",d);

A)1
B)0
C)非0的数
D)-1
设有数组定义: char array[]="China"; 则数组array所占的空间为:
A)4个字节
B)5个字节
C)6个字节
D)7个字节
以下正确的说法是:
A)定义函数时,形参的类型说明可以放在函数体内
B)return后边的值不能为表达式
C)如果函数值的类型与返回值类型不一致,以函数值类型为准
D)如果形参与实参类型不一致,以实参类型为准
若有说明:int a[][3]={1,2,3,4,5,6,7,8,9};则a数组第一维的大小是:
A)2
B)3
C)4
D)无确定值
假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是:
A)3
B)6
C)10
D)20
在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是:
A)地址传递
B)单向值传递
C)由实参传形参,再由形参传实参
D)传递方式由用户指定
-----------------------------------------------------------------------------------------------------------------------------------------------

110题 | 被引用4次

模板修改
使用此模板创建