版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
NOIP普及组C语言模拟试题(含详细答案解析)考试时长:180分钟满分:400分适用:NOIP普及组初赛、复赛基础训练第一部分单项选择题(共20题,每题8分,共160分)每小题只有一个正确答案,多选、错选、不选均不得分1.以下不属于C语言基本数据类型的是()A.intB.floatC.stringD.char2.表达式3+5%2的运算结果是()A.0B.4C.3D.53.C语言中,合法的变量名是()A.1numB.num_1C.num-1D.int4.若定义inta=5,b=2;则a/b的结果是()A.2B.2.5C.3D.05.循环语句for(inti=1;i<=5;i++)循环执行的次数是()A.4次B.5次C.6次D.0次6.C语言中switch语句的参数不可能是以下哪种类型()A.intB.charC.doubleD.short7.数组inta[10]中,数组下标的合法取值范围是()A.0~9B.1~9C.0~10D.1~108.以下能正确输出字符串的语句是()A.printf("hello");B.printf(hello);C.print("hello");D.printf('hello');9.逻辑表达式3>2&&5<1的结果是()A.1B.0C.真D.无法判断10.break语句的作用是()A.结束本次循环B.终止整个循环或switch语句C.跳过本次循环D.程序退出11.C语言函数返回值的关键字是()A.returnB.backC.exitD.break12.若inta=3;a+=2;执行后a的值为()A.3B.2C.5D.113.以下运算符优先级最高的是()A.+B.%C.=D.&14.定义字符数组chars[]="abc";数组s的长度是()A.3B.4C.5D.215.if(3)的执行情况是()A.不执行B.执行一次C.无限执行D.语法错误16.以下哪项是C语言合法的注释()A.//注释内容B.<!--注释-->C.#注释D./**注释17.while(0)循环的执行次数是()A.0次B.1次C.无限次D.2次18.双目运算符是指()A.只需要一个操作数B.需要两个操作数C.需要三个操作数D.无操作数19.结构体属于C语言的()A.基本类型B.构造类型C.指针类型D.空类型20.程序return0;的含义是()A.程序异常退出B.程序正常结束C.暂停程序D.循环终止第二部分程序填空题(共2题,每题30分,共60分)根据题目功能,补全代码空缺部分,使程序正常运行题目1:求1~n的累加和输入一个正整数n,计算1+2+3+...+n的结果并输出。c
#include<stdio.h>
intmain()
{
intn,sum=0;
scanf("%d",&n);
for(inti=1;___(1)___;i++)
{
___(2)___;
}
printf("%d\n",sum);
return0;
}题目2:判断奇偶性输入一个整数,判断该数是奇数还是偶数并输出结果。c
#include<stdio.h>
intmain()
{
intx;
scanf("%d",&x);
if(___(1)___)
{
printf("偶数\n");
}
else
{
printf("奇数\n");
}
return0;
}第三部分编程大题(共2题,每题90分,共180分)大题1:数值反转题目描述:输入一个不多于5位的正整数,将其数字反转后输出。例如输入123,输出321;输入100,输出1。输入格式:一行一个正整数n(1≤n≤99999)输出格式:一行一个整数,为反转后的数值大题2:素数判断题目描述:输入一个正整数n,判断n是否为素数(质数)。素数定义:大于1,且除了1和自身外,没有其他因数的自然数。是素数输出YES,否则输出NO。输入格式:一行一个正整数n(2≤n≤10000)输出格式:YES或NO完整答案与详细解析一、单项选择题答案+解析1.C解析:C语言基本数据类型为int、float、double、char;string是C++字符串类型,C语言无此基础类型。2.B解析:取模运算优先级高于加法,5%2=1,3+1=4。3.B解析:变量名不能以数字开头、不能含短横线、不能使用关键字int。4.A解析:两个整型相除,结果向下取整,5/2=2。5.B解析:i从1到5,依次执行i=1、2、3、4、5,共5次。6.C解析:switch语句仅支持整型、字符型,不支持浮点型double。7.A解析:C语言数组下标从0开始,定义长度10,下标为0~9。8.A解析:C语言输出字符串需双引号,输出语句为printf,单引号仅用于单个字符。9.B解析:逻辑与运算两边均为真才为真,5<1为假,整体结果为0(假)。10.B解析:break终止当前循环或switch结构,continue仅跳过本次循环。11.A解析:return为函数返回值专用关键字。12.C解析:a+=2等价于a=a+2,3+2=5。13.B解析:优先级:取模>加法>逻辑与>赋值。14.B解析:字符串末尾自动隐藏结束符'\0',有效字符3个,数组总长度4。15.B解析:C语言中非0数字代表真,if条件成立,执行内部代码。16.A解析://为单行注释,是C语言标准注释方式。17.A解析:0代表假,while循环条件不成立,一次都不执行。18.B解析:双目运算符需要两个操作数(如+、-、*、/),单目运算符只需一个操作数。19.B解析:结构体、数组、共同体均属于构造数据类型。20.B解析:main函数return0是程序正常结束的标识。二、程序填空题答案+解析题目1答案(1)i<=n(2)sum+=i(或sum=sum+i)解析:循环需要遍历1到n的所有整数,每次循环将当前i值累加至sum,最终得到总和。题目2答案(1)x%2==0解析:能被2整除(对2取模余数为0)的整数为偶数,否则为奇数。三、编程大题完整代码+详细解析大题1:数值反转解题思路:循环取出数字的最后一位,累加到反转结果中,每次将原数字除以10,直至原数字为0,自动去除前导零。c
#include<stdio.h>
intmain()
{
intn,res=0;
scanf("%d",&n);
while(n>0)
{
//取出最后一位数字
intlast=n%10;
//拼接反转后的数字
res=res*10+last;
//去掉最后一位
n=n/10;
}
printf("%d\n",res);
return0;
}样例测试:输入123→输出321;输入100→输出1,符合题目要求。大题2:素数判断解题思路:素数除了1和自身无其他因数。遍历2到根号n,若存在能整除n的数,则不是素数;否则为素数。遍历到根号n可大幅优化运行效率。c
#include<stdio.h>
#include<math.h>
intmain()
{
intn;
scanf("%d",&n);
//标记是否为素数,默认是素数
intflag=1;
//遍历2~根号n
for(inti=2;i<=sqrt(n);i++)
{
//存在因数,不是素数
if(n%i==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf("YES\n");
}
els
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- OGP岗位综合能力测试题(含详细答案解析)
- 慢性创面创面拭子与组织活检选择专家共识(2026版)
- 耐火材料安全师考试题库及答案解析
- 纸张入厂检验方案
- 停水应急方案
- 河北省沧州市孟村回族自治县2024-2025学年四年级上学期期中英语试题(11月)(含答案)
- 黑龙江省哈尔滨医科大学临床医学专业内科学综合测试卷及答案
- 2026年口腔医学专业解剖学综合测试卷及答案
- 古瑞瓦特Growatt 18000TL3-HE-20000TL3-HE光伏逆变器
- 如何激励团队士气与合作精神培训课件
- 检察院保密培训
- 系统集成保密培训课件
- 强迫障碍课件教学
- 2026年国企文旅集团高频面试题
- 2025年医学人文素养试卷及答案
- 2025医用压敏胶行业市场分析报告
- 农机安全知识培训课件教学
- 养老机构岗前培训课件
- 税务师事务所管理制度
- DBJ51T 104-2018 四川省绿色环保搅拌站建设、管理和评价标准
- 北京陈经纶中学2024-2025学年八年级上学期期中物理试卷(含答案)
评论
0/150
提交评论