全国青少年信息学(计算机)奥林匹克分区联赛竞赛大纲
竞赛形式和成绩评定
联赛分两个年龄组:初中组和高中组。每组竞赛分两轮:初试和复试。
初试形式为笔试,侧重考察学生的计算机基础知识和编程的基本能力,并对知识面的广度进行测试。程序设计的描述语言采用Pascal或Basic或C/C++。各省市初试成绩在本赛区前百分之十五的学生进入复赛。
复试形式为上机,侧重考察学生对问题的分析理解能力,数学抽象能力,驾驭编程语言的能力和编程技巧、想象力和创造性等。程序设计语言可采用Pascal、Basic、C/C++或Java。各省市竞赛的等第奖在复试的优胜者中产生。为鼓励学生多学习较新技术,使用C/C++或Java的学生可以得到适当加分
试题形式
每次联赛的试题分四组:初中组初试赛题;初中组复试赛题;高中组初试赛题;高中组复试赛题。其中,初中组初试赛题和高中组初试赛题类型相同,初中组复试赛题和高中组复试赛题类型相同,但初中组和高中组的题目不完全相同,高中组难度略高,以体现年龄特点和层次要求。
初试:初试全部为笔试,满分100分。试题由四部分组成:
选择题:共20题,每题15分,共30分。每题有5个备选方案,前10个题为单选题(即每题有且只有一个正确答案),后10题为复选题(即每题有1至5个正确答案,只有全部选对才得分)。
问题求解题:共2题,每题5分,共10分。试题给出一个叙述较为简单的问题,要求学生对问题进行分析,找到一个合适的算法,并推算出问题的解。答案以字符串方式给出,考生给出的答案与标准答案的字符串相同,则得分;否则不得分。
程序阅读理解题:共4题,每题8分,共32分。题目给出一段程序(不一定有关于程序功能的说明),有时也会给出程序的输入,要求考生通过阅读理解该段程序给出程序的输出。输出以字符串的形式给出,如果与标准答案一致,则得分;否则不得分。
程序完善题:共2题,每题14分,共28分。题目给出一段关于程序功能的文字说明,然后给出一段程序代码,在代码中略去了若干个语句并在这些位置给出空格,要求考生根据程序的功能说明和代码的上下文,填出被略去的语句。填对的,则得分;否则不得分。
复试:复试的题型和形式向全国信息学奥赛(NOI)靠拢,全部为上机编程题,但难度略低。复试为决出竞赛成绩的最后一个环节。题目包括4道题,每题100分,共计400分。难度有易有难,既考虑普及面,又考虑选拔的梯度要求。每一道试题包括:题目、问题描述、样例说明(输入、输出及必要的说明)。测试时,测试程序为每道题提供了5-10组测试数据,考生程序每答对一组得10分,累计分即为该道题的得分。
试题的知识范围
一、初赛内容与要求:
计算机的基本常识
1计算机和信息社会(信息社会的主要特征、计算机的主要特征、数字通信网络的主要特征、数字化)
2信息输入输出基本原理(信息交换环境、文字图形多媒体信息的输入输出方式)
3信息的表示与处理(信息编码、微处理部件MPU、内存储结构、指令,程序,和存储程序原理、程序的三种基本控制结构)
4信息的存储、组织与管理(存储介质、存储器结构、文件管理、数据库管理)
5信息系统组成及互连网的基本知识(计算机构成原理、槽和端口的部件间可扩展互连方式、层次式的互连结构、互联网络、TCP/IP协议、>
q=m&n^r;
这句中 & 是位与 *** 作,^是位异或 *** 作。
(二进制, 只列举八位)
m = 14 = 0000 1110
n = 11 = 0000 1011
r = 6 = 0000 0110
-----------------------------
m & n = 0000 1010 -> (m & n) ^ r = 0000 1100 = 12。
1错误,可以有多个返回语句,但返回值只有一个。2错误,系统将返回语句中表达式的类型转换为函数定义时的类型。3,题目不完整。42。54。62。73。84。92。101。
对于读程序题,建议自己用编辑软件写一写,看看运行结果,对你帮助很大。
选择题:
1d
2a
3b
4a
5b
6a
7d
8c
9a
10d
填空:
1循环结构
24
3非0
4if
5跳出本次循环
6char
7假
8for
90
10switch
问答题:
1,不与回答填空有。
2int ,long,char, double, float
3++i是在i的寄存器中直接加1,i++是把i放到临时寄存器中,再临时寄存器中加1,然后临时寄存器中的i值返回个i的寄存器。
4不是任何时候,当值小于255的时候可以的。因为char是1一个字节,最大255,int4个字节最大65535
读程题:
1。a=10,b=8,c=16
2。a=65 a=A b=66 b=66
x=67 x=C y=65 y=65
z=67
编程题:
1#include <stdioh>
#include <unistdh>
#include <stdlibh>
#include <stringh>
#define LINE 1024
void main()
{
int i = 5;
int sum=1;
for( ; i > 0; --i)
sum = i;
printf("%d\n", sum);
return 0;
}
2#include <stdioh>
#include <unistdh>
#include <stdlibh>
#include <stringh>
#define LINE 1024
int main(void)
{
int a[3];
int min, max;
int i=0;
scanf("%d%d%d", &a[0], &a[1], &a[2]);
min = max = a[0];
for (i = 1; i<3;++i)
{
if (min > a[i])
min = a[i];
if (max < a[i])
max = a[i];
}
printf("max=%d min=%d\n", max, min);
return 0;
}
3#include <stdioh>
#include <unistdh>
#include <stdlibh>
#include <stringh>
#define LINE 1024
int main(void)
{
int i=100;
int a,b,c;
for (;i<999;++i)
{
a = i / 100;
b = i / 10 % 10;
c = i % 10;
if(aaa+bbb+ccc == i)
printf("%d\n", i);
}
return 0;
}
4:
#include <stdioh>
#include <unistdh>
#include <stdlibh>
#include <stringh>
int main(void)
{
int line, i, j;
scanf("%d", &line);
int a[line][line];
int len = 1;
int h;
for(i = 0; i < line; ++i)
for(j = 0; j < line; ++j)
a[i][j] = 0;
for(i = 0; i < line; ++i)
{
for(j = 0; j < len; ++j)
{
if (len == 1)
a[i][j] = 1;
else
{
a[i][0] = 1;
for(h = len - 1; h > 0; --h)
{
a[i][h] = a[i-1][h]+a[i-1][h-1];
}
}
}
len ++;
}
for(i = 0; i < line; ++i)
{
for(j = 0; j < line; ++j)
if (a[i][j] != 0)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
给你升级了,自己输入行数,比如输入10行,就是你想要的。
程序1数组为:
1 第0行
1 1 第1行
1 2 1 第2行
1 3 3 1 第3行
输出为:第2,3行
程序2作用是把输入字符串中各字符的ASCII码加1,遇到z则转成a
故答案是:
17 C
18 D
19 D
20 C
以上就是关于一、阅读程序写结果题(每题5分,共30分)全部的内容,包括:一、阅读程序写结果题(每题5分,共30分)、请问这道C语言程序阅读题答案为什么是x=3,y=6麻烦帮我分析一下、C程序阅读题(求解答几个逻辑运算符)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)