大学C语言程序设计期末考试试题及详细答案_第1页
大学C语言程序设计期末考试试题及详细答案_第2页
大学C语言程序设计期末考试试题及详细答案_第3页
大学C语言程序设计期末考试试题及详细答案_第4页
大学C语言程序设计期末考试试题及详细答案_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

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

文档简介

大学C语言程序设计期末考试试题及详细答案考试说明:满分100分,考试时间120分钟,闭卷考试适用专业:大学工科、经管类通识C语言课程一、单项选择题(每题2分,共20分)1.以下不属于C语言基本数据类型的是()A.intB.floatC.stringD.char2.已知inta=5;,执行语句a+=a-=a*a;后,a的值为()A.-15B.-40C.0D.-203.以下合法的C语言标识符是()A.1_numB.num_1C.num-1D.int4.C语言中while和do-while循环的主要区别是()A.do-while的循环体至少执行一次B.while的循环体至少执行一次C.do-while可以不用循环条件D.两者循环执行逻辑完全一致5.若有定义inta[3][4];,则数组a包含的元素个数为()A.7B.12C.3D.46.以下关于函数的叙述正确的是()A.函数可以嵌套定义B.函数可以嵌套调用C.函数必须有返回值D.自定义函数必须放在main函数前7.已知chars[]="abcde";,则sizeof(s)的值为()A.5B.6C.4D.不确定8.指针变量char*p;,以下操作合法的是()A.p="hello";B.*p="hello";C.p='A';D.*p='A';9.结构体变量初始化时,以下说法正确的是()A.只能逐个成员赋值B.可以整体初始化赋值C.结构体变量不能赋值D.结构体成员必须同类型10.C语言中预处理命令的起始符号是()A.//B./*C.#D.二、填空题(每空2分,共20分)1.C语言程序的入口函数是__________。2.表达式3.5+2/4的值是__________。3.若intx=10,y=5;,则x&&y的结果是__________,x||!y的结果是__________。4.for循环的三个表达式分别为循环初始化、__________、__________。5.数组下标从__________开始,C语言中字符串的结束标志是__________。6.函数调用时,实参和形参的__________、类型、顺序必须一致。7.指针变量的本质是存放变量__________的变量。三、程序阅读题(每题5分,共20分)1.写出以下程序的运行结果PlainText

#include<stdio.h>

intmain()

{

inti,s=0;

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

{

if(i%2==0)

continue;

s+=i;

}

printf("%d",s);

return0;

}2.写出以下程序的运行结果PlainText

#include<stdio.h>

voidswap(inta,intb)

{

intt=a;

a=b;

b=t;

}

intmain()

{

intx=3,y=6;

swap(x,y);

printf("x=%d,y=%d",x,y);

return0;

}3.写出以下程序的运行结果PlainText

#include<stdio.h>

intmain()

{

charstr[]="CLanguage";

printf("%d",strlen(str));

return0;

}4.写出以下程序的运行结果PlainText

#include<stdio.h>

intfun(intn)

{

if(n==1)

return1;

returnn+fun(n-1);

}

intmain()

{

printf("%d",fun(4));

return0;

}四、程序填空题(每空3分,共15分)以下程序功能:输入一个整数n,判断是否为素数(质数),完善程序。PlainText

#include<stdio.h>

intmain()

{

intn,i,flag=1;

scanf("%d",&n);

if(n<2)flag=0;

for(i=2;i<=___1___;i++)

{

if(___2___)

{

flag=0;

___3___;

}

}

if(flag==1)

printf("该数是素数\n");

else

printf("该数不是素数\n");

return0;

}五、编程题(共25分)1.(12分)编写程序,输入10个学生的成绩,计算并输出平均分、最高分、最低分。2.(13分)编写自定义函数,实现字符串反转功能,在主函数中输入字符串、调用函数、输出反转后的字符串。参考答案及详细解析一、单项选择题答案及解析1.C解析:C语言基本数据类型为整型、浮点型、字符型,string字符串类型不属于C语言基础类型,是C++新增类型。2.B解析:赋值运算符从右向左运算,先算a*a=25,再算a-=25,a=5-25=-20,最后算a+=-20,a=-20-20=-40。3.B解析:标识符只能由字母、数字、下划线组成,不能以数字开头,不能使用关键字,A以数字开头、C含横线、D是关键字。4.A解析:do-while是先执行后判断,循环体至少执行一次;while是先判断后执行,条件不成立则一次不执行。5.B解析:二维数组行数3、列数4,总元素个数=3×4=12。6.B解析:C语言函数不能嵌套定义,但可以嵌套调用;无返回值函数用void定义;自定义函数可放在main函数后,需提前声明。7.B解析:sizeof计算数组实际占用内存,字符串末尾自动隐藏结束符'\0',共6个字符单元。8.A解析:p是指针变量,可直接接收字符串地址;*p是指针指向的单个字符,无法接收字符串。9.B解析:C语言结构体变量可以整体初始化、整体赋值,结构体成员可以是不同数据类型。10.C解析:所有预处理命令(#define、#include等)均以#开头。二、填空题答案1.main()2.3.5解析:2/4为整数除法结果0,3.5+0=3.53.1、1解析:非0数为真,&&全真为真,||一真为真4.循环条件判断、循环变量更新5.0、'\0'6.个数7.内存地址三、程序阅读题答案及解析1.9解析:循环遍历1-5,跳过偶数,累加奇数1+3+5=9。2.x=3,y=6解析:函数参数为值传递,仅交换形参数值,不会影响主函数实参变量。3.10解析:strlen统计有效字符长度,不包含'\0',"CLanguage"共10个有效字符(含空格)。4.10解析:递归计算1+2+3+4=10。四、程序填空题答案1.sqrt(n)(或n/2,均可得分)2.n%i==03.break解析:素数判断只需遍历2到根号n,若能被整除则不是素数,跳出循环。五、编程题参考答案(可直接运行)1.成绩统计程序PlainText

#include<stdio.h>

intmain()

{

intscore[10];

inti,max,min,sum=0;

floatavg;

//输入10个成绩

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

{

printf("请输入第%d个学生成绩:",i+1);

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];

}

avg=sum/10.0;

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

printf("最低分:%d\n",min);

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

return0;

}2.字符串反转程序PlainText

#include<stdio.h>

#include<string.h>

//自定义字符串反转函数

voidreverse(charstr[])

{

inti,j;

chart;

intlen=strlen(str);

for(i=0,j=len-1;i<j;i++,j--)

{

t=str[i];

str[i]=str[

温馨提示

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

评论

0/150

提交评论