C语言期末上机考试试题(含详细答案)_第1页
C语言期末上机考试试题(含详细答案)_第2页
C语言期末上机考试试题(含详细答案)_第3页
C语言期末上机考试试题(含详细答案)_第4页
C语言期末上机考试试题(含详细答案)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言期末上机考试试题(含详细答案)考试说明:1.本试卷为上机操作试题,考试时长90分钟,满分100分;2.所有代码均可在Dev-C++、VS、CodeBlocks等主流编译环境运行;3.答题要求:代码书写规范、语法正确、运行结果准确,编程题需完整可运行。一、单项选择题(每题3分,共10题,30分)1.以下不属于C语言基本数据类型的是()A.intB.floatC.stringD.char2.以下合法的C语言变量名是()A.123aB.a_123C.intD.a-b3.若定义inta=5;则执行a+=a*3后,a的值为()A.15B.20C.10D.84.C语言中while和do-while循环的主要区别是()A.while循环先判断后执行,do-while先执行后判断B.do-while循环不能嵌套使用C.while循环的执行次数更多D.无本质区别5.数组定义intarr[5];以下说法正确的是()A.数组下标范围是1~5B.数组下标范围是0~4C.数组包含6个元素D.数组元素类型不固定6.以下运算符中优先级最高的是()A.+B.>C.++D.&7.函数return语句的作用是()A.结束整个程序运行B.结束当前函数调用,返回指定值C.暂停程序运行D.无实际作用8.若有定义chars[]="hello";则数组s的长度为()A.5B.6C.7D.49.指针变量的本质是()A.存放数值的变量B.存放内存地址的变量C.字符串变量D.数组变量10.以下关于if语句的描述错误的是()A.if语句可以嵌套使用B.if语句可以单独使用C.else语句可以脱离if单独使用D.if语句支持多分支判断二、填空题(每题3分,共5题,15分)1.C语言中,换行符的转义字符是________。2.表达式3%2的运算结果是________。3.循环结构中,________语句可以跳出当前整个循环。4.定义无返回值的函数需要使用关键字________。5.二维数组inta[3][4]最多可以存放________个元素。三、程序改错题(每题5分,共3题,15分)要求:找出代码中的语法错误、逻辑错误,标注错误位置并写出完整正确代码1.以下代码实现输出1~10的累加和,存在错误c

#include<stdio.h>

intmain()

{

inti,sum=0;

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

sum=sum+i;

printf("%d",sum);

return0;

}2.以下代码实现判断一个数是否为偶数,存在错误c

#include<stdio.h>

intmain()

{

intn;

scanf("%d",&n);

if(n%2=0)

printf("偶数");

else

printf("奇数");

return0;

}3.以下代码实现字符串输出,存在错误c

#include<stdio.h>

intmain()

{

charstr[5]="student";

printf("%s",str);

return0;

}四、编程应用题(每题20分,共2题,40分)1.编写程序:输入一个正整数n,判断该数是否为素数(质数)。素数定义:大于1,且只能被1和自身整除的整数。要求:输入输出清晰,逻辑完整,可循环判断多次(可选)。2.编写程序:定义一个整型数组,存放10个学生的成绩,计算并输出总分、平均分、最高分、最低分。要求:数据手动输入,平均分保留2位小数,代码规范有注释。参考答案及详细解析一、单项选择题答案及解析1.C解析:C语言基本数据类型为整型、浮点型、字符型,无string字符串类型,字符串需通过字符数组实现。2.B解析:变量名只能由字母、数字、下划线组成,不能以数字开头,不能使用关键字,不能含特殊符号。A以数字开头、C是关键字、D含减号,均不合法。3.B解析:复合赋值运算符优先级低于算术运算符,先算a*3=15,再算a=a+15=5+15=20。4.A解析:while是先判断条件,条件成立才执行循环体;do-while先执行一次循环体,再判断条件,至少执行一次。5.B解析:C语言数组下标从0开始,定义长度为5的数组,下标为0、1、2、3、4,共5个元素。6.C解析:运算符优先级:自增运算符>算术运算符>关系运算符>逻辑运算符。7.B解析:return用于终止当前函数,将返回值带回函数调用处,不会结束整个程序。8.B解析:字符串默认末尾自带结束符'\0',"hello"包含5个有效字符+1个结束符,共6个字节长度。9.B解析:指针变量专门用来存储变量的内存地址,是地址变量。10.C解析:else必须和上方最近的未匹配if配对,不能单独使用。二、填空题答案及解析1.\n解析:\n是C语言标准换行转义字符。2.1解析:%为取余运算符,3除以2商1余1。3.break解析:break跳出当前循环,continue仅跳过本次循环,继续下一次循环。4.void解析:void修饰函数表示函数无返回值,无需写return返回数值。5.12解析:二维数组元素个数=行数×列数,3×4=12。三、程序改错题答案及解析1.错误分析:for语句末尾多了分号,导致循环体为空,sum累加语句脱离循环,仅执行一次。正确代码:c

#include<stdio.h>

intmain()

{

inti,sum=0;

for(i=1;i<=10;i++)//去掉多余分号

sum=sum+i;

printf("%d",sum);

return0;

}运行结果:552.错误分析:if判断条件中使用赋值运算符=,应使用关系比较运算符==。正确代码:c

#include<stdio.h>

intmain()

{

intn;

scanf("%d",&n);

if(n%2==0)//修改为相等判断

printf("偶数");

else

printf("奇数");

return0;

}3.错误分析:数组长度定义过小,"student"共7个字符+1个结束符,需至少8个长度,数组长度不足会导致字符串溢出报错。正确代码:c

#include<stdio.h>

intmain()

{

charstr[8]="student";//修改数组长度为8

printf("%s",str);

return0;

}运行结果:student四、编程应用题标准答案1.判断素数程序c

#include<stdio.h>

intmain()

{

intn,i,flag=1;//flag作为标记,1默认是素数

printf("请输入一个正整数:");

scanf("%d",&n);

//小于2的数不是素数

if(n<2)

{

printf("%d不是素数\n",n);

return0;

}

//判断2~根号n之间是否有能整除n的数

for(i=2;i*i<=n;i++)

{

if(n%i==0)

{

flag=0;//能被整除,不是素数

break;

}

}

if(flag==1)

printf("%d是素数\n",n);

else

printf("%d不是素数\n",n);

return0;

}程序思路:先排除小于2的非素数,遍历2到根号n的数判断是否能整除目标数,用标记变量记录状态,最终根据标记输出结果,精简循环次数,提升运行效率。2.学生成绩统计程序c

#include<stdio.h>

intmain()

{

//定义数组存储10个成绩

intscore[10];

inti,sum=0,max,min;

doubleavg;

//输入10个学生成绩

printf("请输入10个学生的成绩:\n");

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

{

scanf("%d",&score[i]);

sum+=score[i];//累加总分

}

//初始化最高分和最低分

max=min=score[0];

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

{

if(score[i]>max)

max=score[i];

if(score[i]<min)

min=score[i];

}

//计算平均分,保留2位小数

avg=sum/10.0;

//输出结果

printf("总成绩:%d\n",sum);

printf("平均分:%.2f\n",avg);

printf("最高分:%d\n",max);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论