2017 ACM协会 C语言竞赛初赛

Q1:请分别填写你们队伍的三个队友姓名(只需要填写姓名和空格间隔即可)

选项1

Q2:请填写你们队伍队长的手机号

选项1

Q3:算法具有五个特性,以下选项中不属于算法特性的是:

A)有穷性
B)简洁性
C)可行性
D)确定性

Q4:以下叙述中错误的是:

A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户定义的标识符中,大、小写字母代表不同标识

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

A)_main enclude sin
B)If -max turbo
C)txt REAL 3COM
D)int k_2 _001

Q6:以下选项中,合法的一组C语言数值常量是:

A)028 .5e-3 -0xf
B)12. 0Xa23 4.5e0
C).177 4e1.5 0abc
D)0x8a 10,000 3.e5

Q7:以下叙述中正确的是:

A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译

Q8:下列叙述中正确的是:

A)每个C程序文件中都必须要一个main()函数
B)在C程序中main()函数的位置是固定
C)C程序中所有函数之间都可以相互调用,与函数所在位置无关
D)在C程序的函数中不能定义另一个函数

Q9:下列叙述中错误的是:

A)计算机不能直接执行用C语言编写的源程序
B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件
C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件
D)后缀为.obj和.exe的二进制文件都可以直接运行

Q10:以下叙述中错误的是:

A) C 语言是一种结构化程序设计语言
B)结构化程序有顺序、分支、循环三种基本结构组成
C)使用三种基本结构构成的程序只能解决简单问题
D)结构化程序设计提倡模块化的设计方法

Q11:用C语言编写的代码程序:

A)可立即执行
B)是一个源程序
C)经过编译即可执行
D)经过编译解释才能执行

Q12:结构化程序由三种基本结构组成,三种基本结构组成的算法:

A)可以完成任何复杂的任务
B)只能完成部分复杂的任务
C)只能完成符合结构化的任务
D)只能完成一些简单的任务

:分割线

Q13:C语言源程序名的后缀是:

A).exe
B).C
C).obj
D).cp

Q14:以下叙述中错误的是:

A)C语句必须以分号结束
B)复合语句在语法上被看作一条语句
C)空语句出现在任何位置都不会影响程序运行
D)赋值表达式末尾加分号就构成赋值语句

Q15:以下能正确定义且赋初值的语句是:

A)int n1=n2=10;
B)char c=32;
C)float f=f+1.1;
D)double x=12.3E2.5;

Q16:以下程序的运行结果,以下叙述中正确的是:main(){ char a1=M, a2=m; printf(%c\n, (a1, a2) );}

A)程序输出大写字母M
B)程序输出小写字母m
C)格式说明符不足,编译出错
D)程序运行时产生出错信息

Q17:以下符合C语言语法的实型常量是:

A)1.2E0.5
B)3.14.159E
C).5E-3
D)E15

Q18:若以下选项中的变量已正确定义,则正确的赋值语句是:

A)x1=26.8%3;
B)1+2=x2;
C)x3=0x12;
D)x4=1+2=3;

Q19:设有以下定义int a=0; double b=1.25;char c=A;#define d 2则下面语句中错误的是:

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

Q20:设有定义: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)

Q21:有以下定义语句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;

Q22:有以下程序程序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

:分割线

Q23:有以下程序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

Q24:有以下程序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

Q25:以下关于long、int和short类型数据占用内存大小的叙述中正确的是:

A)均占4个字节
B)根据数据的大小来决定所占内存的字节数
C)由用户自己定义
D)由 C 语言编译系统决定

Q26:以下不合法的字符常量是:

A)'\018'
B)'\"'
C)'\\'
D)'\xcc'

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

A)4.3
B)4.8
C)3.3
D)3.8

Q28:以下四个程序中,完全正确的是:

A) #include   <stdio.h> main( ); {  /* programming */  printf("programming!\n");}
B) #include   <stdio.h>main() {  /*/ programming /*/ printf("programming!\n");}
C) #include <stdio.h>main( ) {  /*/* programming */*/  printf("programming!\n");}
D) include   <stdio.h>main( ) {  /* programming */  printf("programming!\n");}

Q29:以下叙述中错误的是:

A)C程序中的#include和#define行均不是C语句
B)除逗号运算符外,赋值运算符的优先级最低
C)C程序中,j++;是赋值语句
D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算

Q30:以下叙述中正确的是:

A)预处理命令行必须位于C源程序的起始位置
B)在C语言中,预处理命令行都以“#”开头
C)每个C程序必须在开头包含预处理命令行:#include
D)C语言的预处理不能实现宏定义和条件编译的功能

Q31:下列叙述中错误的是:

A)一个C语言程序只能实现一种算法
B)C程序可以由多个程序文件组成
C)C程序可以由一个或多个函数组成
D)一个C函数可以单独作为一个C程序文件存在

Q32:下面程序的输出结果是:#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

:分割线

Q33:若有定义:int a=8,b=5,c;执行语句 c=a/b*0.4; 后,c的值为:

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

Q34:C语言程序的基本单位是:

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

Q35:C语言中最简单的数据类型包括:

A) 整型、实型、逻辑型
B) 整型、实型、字符型
C) 整型、字符型、逻辑型
D) 整型、实型、逻辑型、字符型

Q36:以下选项中属于C语言的数据类型是:

A)复数型
B)逻辑型
C)双精度型
D)集合型

Q37:下列叙述中正确的是:

A)C语言中既有逻辑类型也有集合类型
B)C语言中没有逻辑类型但有集合类型
C)C语言中有逻辑类型但没有集合类型
D)C语言中既没有逻辑类型也没有集合类型

Q38:C语言提供的合法的数据类型关键字是:

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

Q39:在使用程序流程图来表示算法时,菱形用来表示:

A)输入与输出
B)子程序
C)判断分支
D)循环边界

Q40:与十进制数200等值的十六进制数为:

A)A8
B)A4
C)C8
D)C4

Q41:有以下程序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

Q42:有以下程序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

:分割线

Q43:设int a=12,则执行完语句a+=a-=a*a后,a的值是:

A)552
B)264
C)144
D)-264

Q44:在C语言中,要求运算数必须是整型的运算符是:

A)%
B)/
C)<
D)!

Q45:设有语句char a=\072;,则变量a:

A)包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法

Q46:要把高级语言编写的源程序转换为目标程序,需要使用:

A)编辑程序
B)驱动程序
C)诊断程序
D)编译程序

Q47:英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为:

A)50
B)66
C)52
D)68

Q48:以下选项中不属于C语言的类型是:

A)signed short int
B)unsigned char
C)signed long
D)long short

Q49:在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是:

A)a=20000+20000
B)a=4000*10
C)a=30000+10000
D)a=4000L*10L

Q50:已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量\101是:

A)字符A
B)字符a
C)字符e
D)非法的常量

Q51:下列关于单目运算符++、--的叙述中正确的是:

A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D)它们的运算对象可以是char型变量、int型变量和float型变量

Q52:设m,n为两已知数值的整型变量,在数学中m/n=5.5,则C语言中m/n=:

A)5.5
B)5
C)6
D)以上答案均不正确

Q53:有以下程序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

Q54:以下关于运算符优先顺序的描述中正确的是:

A)关系运算符 < 算术运算符 < 赋值运算符 < 逻辑与运算符
B)逻辑 运算符 < 关系运算符 < 算术运算符 < 赋值运算符
C)赋值运算符 < 逻辑与运算符 < 关系运算符 < 算术运算符
D)算术运算符 < 关系运算符 < 赋值运算符 < 逻辑与运算符

Q55:已有定义int x; f1oat y;且执行 scanf(%3d%f,x,y); 语句,若输入12345 78(回车),则 x 的值为:

A)12345
B)123
C)45
D)345

Q56:以下数据结构中不属于线性数据结构的是:

A)队列
B)线性表
C)二叉树
D)栈

Q57:下面描述中,符合结构化程序设计风格的是:

A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B)模块只有一个入口,可以有多个出口
C)注重提高程序的执行效率
D)不使用goto语句

Q58:C语言规定:简单变量作为实参时,它和对应形参之间的数据传递方式是:

A)地址传递
B)单向值传递
C)由实参传给形参,再由形参传回给实参
D)由用户指定的传递方式

Q59:你喜欢一个女/男孩,所以你与你的情敌对决多年。这次对决是关于C语言的,你向对方扔出“我||你”大招,意思是:

A)[图片]
B)[图片]
C)[图片]

Q60:变量的指针是指该变量的:

A.值
B.地址
C.名
D.一个标志

Q61:C语言中,char型数据是以什么形式在内存中存储的:

A.原码
B.补码
C.反码
D.ASCII码

Q62:C语言的程序用一行写不下时,可用什么换行:

A.用逗号
B.用分号
C.在任一空格处
D.用回车符

:分割线

Q63:C语言中,int,char,short型数据所占用内存:

A.均为两字节
B.由用户自行定义
C.由所用机器字长决定
D.是任意的

Q64: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

Q65:下列代码所输出的数为:#include stdio.hint 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

Q66:若有说明语句int i=5,j=4,k=6;float f;则执行f=(ijik)?i:(jk)?j:k;语句后,f的值为:

A)4.0
B)5.0
C)6.0
D)7.0

Q67:以下所列的C语言常量中,错误的是:

A)0xFF
B)1.2e0.5
C)2L
D)'\72'

Q68:对于循环队列,下列叙述中正确的是:

A)队头指针是固定不变的
B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针
D)队头指针可以大于队尾指针,也可以小于队尾指针

Q69:设float x,由键盘输入:12.45, 能正确读入数据的输入语句是:

A)scanf("%5f",&x);
B)scanf("%5d",&x);
C)scanf("%f",x);
D)scanf("%s",&x);

Q70:C语言程序中,整型常量的书写形式不包括:

A)二进制
B)八进制
C)十进制
D)十六进制

Q71:以下描述正确的是:

A)函数形参是虚设的,所以它始终不占用存储单元
B)当函数形参是变量时,实参与它所对应的形参占用不同的存储单元
C)函数实参与它所对应的形参占用同一个存储单元
D)函数实参与它所对应的形参同名时可占用同一个存储单元

Q72:以下叙述中正确的是:

A)C程序中注释部分可以出现在程序中任意合适的地方
B)花括号"{"和"}"只能作为函数体的定界符
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
D)分号是C语句之间的分隔符,不是语句的一部分

:分割线

Q73:算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是:

A)有零个输入或多个输入
B)高效性
C)有穷性
D)确定性

Q74:调用gets和puts函数时,必须包含的头文件是:

A)stdio.h
B)stdlib.h
C)define
D)以上都不对

Q75:以下不正确的定义语句是:

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′};

Q76:字符型数据在机器中是用ASCII码表示的,字符’5’和’7’在机器中表示为:

A)10100011 和 01110111
B)01000101 和 01100011
C)00110101 和 00110111
D)01100101 和 01100111

Q77:在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是:

A)地址传递
B)单向值传递
C)由实参传形参,再由形参传实参
D)传递方式由用户指定

Q78:在C语言的if语句中,用作判断的表达式为:

A)关系表达式    
B)逻辑表达式      
C)算术表达式   
D)任意表达式

Q79:若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

Q80:下述表达式中,可以正确表示x≤0或x≥1的关系:

A)(x>=1) || (x<=0)
B)x>=1 | x<=0
C)x>=1 && x<=0
D)(x>=1) && (x<=0)

Q81:在C语言中,字符串\\TOP\t\65\的长度是:

A)5
B)7
C)8
D)12

Q82:以下程序的运行情况是:main() { int i=1,sum=0; while (i10) 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)运行出现错误

:分割线

Q83:有以下程序执行后的输出结果是: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

Q84:以下程序的输出结果是:main() { char x=040; printf(%d\n,x=x1);}  

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

Q85:int i,j;for( i=j=0 ; i10j8 ; i++,j+=3 ) 控制的循环体执行的次数是:

A)9
B)8
C)3
D)2

Q86:已知:int c[3][4];则对数组元素引用正确的是:

A)c[1][4]
B)c[1.5][0]
C)c[1+0][0]
D)以上表达都错误

Q87:以下程序的输出结果是: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

Q88:设有数组定义: char array[]=China; 则数组array所占的空间为:

A)4个字节
B)5个字节
C)6个字节
D)7个字节

Q89:以下正确的说法是:

A)定义函数时,形参的类型说明可以放在函数体内
B)return后边的值不能为表达式
C)如果函数值的类型与返回值类型不一致,以函数值类型为准
D)如果形参与实参类型不一致,以实参类型为准

Q90:若有说明:int a[][3]={1,2,3,4,5,6,7,8,9};则a数组第一维的大小是:

A)2
B)3
C)4
D)无确定值

Q91:假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是:

A)3
B)6
C)10
D)20

Q92:在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是:

A)地址传递
B)单向值传递
C)由实参传形参,再由形参传实参
D)传递方式由用户指定

:分割线

Q93:下面的程序,输出结果是:main() { int x=3; do { printf(%d\n,x-=2); }while(!(--x));}

A)输出的是1
B)输出的是1和-2
C)输出的是3和0
D)是死循环

Q94:下列变量定义中合法的是:

A)short _a=1-.1e-1;
B)double b=1+5e2.5;
C)long do=0xfdaL;
D)float 2_and=1-e-3

Q95:func((e1,e2),(e3,e4,e5))这句函数调用语句中实参的个数是:

A)2
B)3
C)5
D)语法错误

Q96:假设变量a,b均为整型,表达式(a=5,b=2,ab?a++:b++,a+b)的值是:

A)2
B)7
C)8
D)6

Q97:下面的程序输出的值为:#includestdio.hstructcmplx { intx; inty;}cnum[2]={1,3,2,7};intmain() { printf(%d\n,cnum[0].y*cnum[1].x);}

A)3
B)14
C)21
D)6

Q98:有:int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;则数值为9的表达式是:

A)*P+9
B)*(P+8)
C)*P+=9
D)P+8

Q99:在C语言中,表示静态存储类别的关键字是:

A)auto
B)register
C)static
D)extern

Q100:在函数调用时,以下说法正确的是:

A)函数调用后必须带回返回值
B)实际参数和形式参数可以同名
C)函数间的数据传递不可以使用全局变量
D)主调函数和被调函数总是在同一个文件里

Q101:若有说明:int a[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为:

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

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

A)3
B)4
C)11
D)12
问卷网
2017 ACM协会 C语言竞赛初赛
关于
1年前
更新
4
频次
110
题目数
分享
问卷网
有问题?问问AI帮你修改 改主题:如咖啡问卷改为奶茶问卷