普组C语言试题
竞赛时间:2014年10月12日1430~1630
选手注意:
l 试题纸8页答题纸2页满分100分请答题纸作答写试题纸
律效
l 电子设备(计算器手机电子词典等)查阅书籍资料
单项选择题(20题题15分计30分题仅正确选项)
1 面象高级语言( )
A 汇编语言 B C++ C Fortran D Basic
2 1TB代表字节数量( )
A 210次方 B 220次方 C 230次方 D 240次方
3 二进制数0010010000010101( )
A 00101000 B 001010100 C 01000101 D 00111001
4 种设备属输出设备( )
A 扫描仪 B 键盘 C 鼠标 D 印机
5 列操作系统功描述完整( )
A 负责外设机间信息交换
B 负责诊断机器障
C 控制理计算机系统种硬件软件资源
D 源程序编译成目标程序
6 CPU存储器IO设备通( )连接起
A 接口 B 总线 C 控制线 D 系统文件
7 断电会丢失数存储器( )
A RAM B ROM C 硬盘 D 光盘
8 种属电子邮件收发协议( )
A SMTP B UDP C P2P D FTP
9 列选项中属图格式( )
A JPEG格式 B TXT格式 C GIF格式 D PNG格式
10 链表具特点( )
A 必事先估计存储空间 B 机访问元素 C 插入删需移动元素
D 需空间线性表长度成正
11 列符号十进制整数中八位二进制表示数中( )
A 296 B 133 C 256 D 199
12 列32位IP址中书写错误( )
A 16210512827 B 19216801 C 2562561291 D 10001
13 求程序功计算:s 1 + 12 + 13 + + 110
#include
{
int n
float s
s 10
for (n 10 n > 1 n) s s + 1 n
printf(64f\n s)
return 0
}
程序运行输出结果错误导致错误结果程序行( )
A s 10 B for (n 10 n > 1 n) C s s + 1 n D printf(64f\n s)
14 设变量xfloat型已赋值语句中x中数值保留数点两位第三位四舍五入( )
A x (x * 100) + 05 1000
B B x (x * 100 + 05) 1000
C C x (int) (x * 100 + 05) 1000
D x (x 100 + 05) * 1000
15 程序:
#include
{
int s a n s 0 a 1
scanf(d &n)
do {
s + 1
a 2
}
while (a n)
printf(d\n s)
return 0
}
程序输出值2应该键盘n输入值( )
A 1 B 3 C 5 D 0
16 棵具5层满二叉树中结点数( )
A 31 B 32 C 33 D 16
17 图中顶点度等该顶点( )
A 入度
B 出度
C 入度出度
D 入度出度差
18 设100数元素采折半搜索时较次数( )
A 6 B 7 C 8 D 10
19 程序段中sabc均已定义整型变量ac均已赋值c > 0
s a
for (b 1 b < c b++)
s + 1
述程序段功等价赋值语句( )
A s a + b B s a + c C s s + c D s b + c
20 计算机界高奖( )
A 菲尔兹奖 B 诺贝尔奖 C 图灵奖 D 普利策奖
二问题求解(2题题5分计10分题全部答5分没部分分)
1 M样球放N样袋子里允许袋子空着放问少种放置方法?(K表示)
例:M 7N 3时K 8里认(511)(151)种放置方法
问:M 8N 5时K _________
2 图示图中条边数字表示该边长度AE短距离_________
三阅读程序写结果(4题题8分计32分)
1 #include
int main() {
int a b c d ans
scanf(ddd &a &b &c)
d a b
a d + c
ans a * b
printf(Ans d\n ans) return 0
}
输入:2 3 4
输出:_________
2 #include
int fun(int n) {
if (n 1) return 1
if (n 2) return 2
return fun(n 2) fun(n 1)
}
int main() {
int n
scanf(d &n)
printf(d\n fun(n))
return 0
}
输入:7
输出:_________
3 #include
#include
const int SIZE 100
int main() {
char st[SIZE] int i len
fgets(st sizeof(st) stdin) len strlen(st)
for (i 0 i < len i++){
if (st[i] > 'a' && st[i] < 'z') st[i] st[i] 'a' + 'A'
}
printf(s\n st)
return 0
}
输入:Hello my name is Lostmonkey
输出:_________
4 #include
const int SIZE 100
int main() {
int p[SIZE] int n tot i cn tot 0
scanf(d &n)
for (i 1 i < n i++) p[i] 1
for (i 2 i < n i++)
{
if (p[i] 1)
tot++
cn i * 2
while (cn < n)
{
p[cn] 0
cn + i
}
}
printf(d\n tot)
return 0
}
输入:30
输出:_________
四完善程序(2题题14分计28分)
1 (数字删)面程序功字符串中数字字符删输出请填空(空3
分12分)
#include
int delnum(char *s)
{
int i j
j 0
for (i 0 s[i] '\0' i++)
if (s[i] < '0' (1) s[i] > '9')
{
s[j] s[i]
(2)
}
return (3)
}
const int SIZE 30
int main()
{
char s[SIZE] int len i
fgets(s sizeof(s) stdin)
len delnum(s)
for (i 0 i < len i++) printf(c (4) )
printf(\n)
return 0
}
2 (子矩阵)出m行n列整数矩阵求子矩阵(子矩阵空)
输入第行包含两整数mn矩阵行数列数m行行n整数描述整矩阵程序终输出子矩阵(空4分余3分16分)
#include
const int SIZE 100
int matrix[SIZE + 1][SIZE + 1]
int rowsum[SIZE + 1][SIZE + 1] rowsum[i][j]记录第i行前j数 int m n i j first last area ans
int main()
{
scanf(d d &m &n)
for (i 1 i < m i++)
for (j 1 j < n j++)
scanf(d &matrix[i][j])
ans matrix (1)
for (i 1 i < m i++) (2)
for (i 1 i < m i++)
for (j 1 j < n j++)
rowsum[i][j] (3)
for (first 1 first < n first++)
for (last first last < n last++)
{
(4)
for (i 1 i < m i++)
{
area + (5)
if (area > ans) ans area
if (area < 0) area 0
}
}
printf(d\n ans)
return 0
}
第二十届全国青少年信息学奥林匹克联赛初赛
普组参考答案
单项选择题( 20 题题 15 分计 30 分)
1
2
3
4
5
6
7
8
9
10
B
D
D
D
C
B
A
A
B
B
11
12
13
14
15
16
17
18
19
20
D
C
C
C
B
A
C
B
B
C
二问题求解( 2 题题 5 分计 10 分题全部答 5 分没部分分)
1 18
2 11
三阅读程序写结果( 4 题题 8 分计 32 分)
1 Ans 9
2 11
3 HELLO MY NAME IS LOSTMONKEY
4 10
四完善程序(计 28 分程序填空等价写法省赛区组织省专家审定 机验证报 CCF NOI 科学委员会复核)
Pascal 语言
C++语言
C 语言
分值
1
(1)
or
||
3
(2)
jj+1 inc(j)
j++ jj+1 ++j
3
(3)
j
3
(4)
s[i]
3
2
(1)
[11]
[1][1]
3
(2)
rowsum[i0]0
rowsum[i][0]0
3
(3)
rowsum[ij1]+matrix[ij]
rowsum[i][j1]+matrix[i][j]
3
(4)
area0
area0
3
(5)
rowsum[ilast]rowsum[ifirst1]
rowsum[i][last]rowsum[i][first1]
4
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档