鲁东大学2023年C语言程序设计期末及答案_第1页
鲁东大学2023年C语言程序设计期末及答案_第2页
鲁东大学2023年C语言程序设计期末及答案_第3页
鲁东大学2023年C语言程序设计期末及答案_第4页
鲁东大学2023年C语言程序设计期末及答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

2/2C语言程序设计期末一、单项选择题(每小题2分,共40分)1、以下叙述错误的是________。 A、C语言区分大小写 B、C程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改 C、整数和实数都能用C语言准确无误地表示出来 D、在C程序中,正整数可以用十进制、八进制和十六进制的形式来表示2、合法的八进制数是________。 A、0 B、028 C、-077 D、01.03、有如下定义:inta[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值5的是________。 A、a[2] B、a[3] C、*(p+2) D、*p+44、若a的值为3时,下列程序段被执行后,c的值是________。

intc=1;

if(a>0)if(a>3)c=2;

elsec=3;

elsec=4; A、1 B、2 C、3 D、45、以下叙述中正确的是________。 A、只要适当地修改代码,就可以将do-while与while相互转换 B、对于for(表达式1;表达式2;表达式3)循环体首先要计算表达式2的值,以便决定是否开始循环 C、对于for(表达式1;表达式2;表达式3)循环体,只在个别情况下才能转换成while语句 D、如果根据算法需要使用无限循环(即通常所称的"死循环"),则只能使用while语句6、下面描述正确的是________。 A、两个字符串包含的字符个数相同时,才能比较字符串 B、字符个数多的字符串比字符个数少的字符串大 C、字符串"STOP"与"STOP■"相等 D、字符串"That"小于字符串"The"7、经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在微机上的值分别为________。

charx=65;

floaty=7.3;

inta=100;

doubleb=4.5; A、2,2,2,4 B、1,2,2,4 C、1,4,4,8 D、2,4,2,88、已知:chars[100];inti;则引用数组元素的错误的形式是________。 A、s[i+10] B、*(s+i) C、*(i+s) D、*((s++)+i)9、若变量a、i已正确定义,且i已正确赋值合法的语句是________。 A、a==1 B、++i C、a=a++=5 D、a=int(i)10、以下关系表达式中,其值为true的是________。 A、"XYZ">"XYz" B、"VisualBasic"<>"visualbasie" C、"the"="there" D、"Integer"<"Int"11、以下能正确定义一维数组的选项是________。 A、intnum[] B、intnum[N] C、intnum[0..100] D、intN=100;12、以下叙述中错误的是________。 A、在函数外定义的变量是全局变量 B、全局变量和局部变量不能同名 C、在函数内定义的变量是局部变量 D、函数的形参是局部变量13、以下非法的字符常量是________。 A、'\\n' B、'\101' C、'\x21' D、'\0'14、下列描述中不正确的是________。 A、字符型数组中可能存放字符串。 B、可以对字符型数组进行整体输入、输出。 C、可以对整型数组进行整体输入、输出。 D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。15、以下程序段的输出结果是________。

intmain(

void)

{

intnum=0,s=0;

while(num<=2)

{

num++;

s+=num;

}

printf("%d\n",s);

return0;

} A、10 B、6 C、3 D、116、以下程序的输出结果是______。

main()

{

inta,b;

for(a=1,b=1;a<=100;a++)

{

if(b>=10)break;

if(b%3==1)

{

b+=3;

continue;

}

}

printf("%d\n",a);

} A、101 B、6 C、5 D、417、若有定义:

structkeyword

{

charkey[20];

intid;

}

kw[]={"void",1,"char",2,"int",3,"float",4,"double",5};

则printf("%c,%d\n",kw[3].key[0],kw[3].id);

语句的输出结果为________。 A、i3 B、n3 C、f4 D、l418、程序段:intx=12;doubley=3.141593;printf("%d%8.6f",x,y);的输出结果是________。 A、123.141593 B、123.141593 C、12,3.141593 D、123.141593019、若使用一维数组名作函数实参,则以下正确的说法是________。 A、必须在主调函数中说明此数组的大小 B、实参数组类型与形参数组类型可以不匹配 C、在被调用函数中,不需要考虑形参数组的大小 D、实参数组名与形参数组名必须一致20、下列选项中属于c语言构造类型的是________。 A、指针类型 B、空类型 C、枚举类型 D、数组类型二、判断题(每小题2分,共20分)()1、在c语言中转义字符有特殊的含义,它以反斜杠\开头,后面接特定的字符。()2、c语言中赋值运算符比关系运算符的优先级高。()3、在c语言中,当一个逻辑表达式的值为"假"时,该表达式的值一定是0()4、在多层循环中,continue语句只结束本次循环,而不是终止整个循环的执行。()5、用puts和gets函数只能输入或输出一个字符串。()6、c语言中的main函数是程序的入口。()7、二维数组元素在内存中的存放顺序是按列主顺序存放()8、在标准c中,变量定义一定要出现在函数开始部分()9、函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值()10、在c语言中,使用"r"方式可以打开文件三、编程题(每小题分,共40分)1、编程序统计300~500能被3整除的个数。(本题10分)2、编写程序:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。(本题14分)3、编写input()和output()函数,输入输出5个学生记录,每个记录包括num、name、score[3],使用结构体实现。(本题16分)

参考答案及解析一、单项选择题1、C【解析】本题涉及C语言最基本的3个概念:①C语言是区分大小写的,q和Q是两个不同的变量;②变量的实质就是在内存中占据一定的存储单元,存储单元里存放的是该变量的值,变量的值可以根据需要进行修改;③整数在允许的范围内可以准确的表示出来,但不可能表示无限度的实数。正整数可用二进制、十进制、八进制和十六进制表示。2、A3、B4、C【解析】此题主要考查if-else的使用,当if语句中的条件为真时执行后的语句,并跳过else执行下面的语句;当条件为假时执行else后的语句。5、A【解析】B选项中,for语句中需要先求解表达式1;C选项中,for语句使用最为灵活,它完全可以取代while语句;D选项中,对于死循环,也可以使用for语句。因此A选项正确。6、D7、C8、D9、B10、B【解析】用关系运算符比较两个操作数时,如果两个操作数是字符型的,按字符的ASCII码从左到右一一比较,即先比较第1个,若相同再比较第2个,依次比较,直到比较完或不同为止。

选项A中两个字符串前2个字符相同,后1个不同,“Z”的ASCII值<“Z”的ASCII值,故“XYZ”<“XYZ”,结果应返回Fasle。

选项C中应该是两个字符串完全一样,才相等。很明显两个字符不相等,返回False。

选项D中两个字符串前3个字符一样,第1个字符串比第2个字符串长,“Integer”>“Int”,返回False。

选项B中两个字符串不完全一样,有大写和小写的字符,不等。所以返回True。故B选项正确。11、B【解析】本题的考查点是一维数组的定义。数组的常量表达式中可以包括整型常量和符号常量,不能包括变量。也就是说,C不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值,所以选项A不正确。而选项B事先定义一个字符常量N,所以可以在数组中作常量表达式,选项B正确。而选项C中不能用区间表示数组大小;在D中N虽然被赋为100,但N仍然为变量,所以不对。故本题答案为B。12、B【解析】在函数外定义的变量是全局变量;在函数内定义的变量是局部变量;函数的形参是局部变量;若全局变量和局部变量同名,则在该函数内,此全局变量会被屏蔽,在该函数内访问的是局部变量,与同名的全局变量不发生任何关系。本题答案为B选项。13、A14、C15、B16、D17、C【解析】kw[3].Key[0]是第4个元素中key数组的第1个字符即f;

kw[3].ID是第4个元素中成员ID值;18、A19、A20、D【解析】构造类型数据是由基本类型数据按一定规则组成的。C语言中的构造类型数据只有3种,它们是数组类型、结构体类型和共用体类型。故应该选择D。二、判断题1、正确2、错误3、正确4、正确5、正确6、正确7、错误8、错误9、正确10、正确三、编程题1、main()

{

inta;

inti=0;

for(a=300;a<=500;a++)

34

{

if(a%3==0)

i=i+1;

}

printf("%d",i);

}2、#include<stdio.h>

intmain()

{

inti=5;

voidpalin(intn);

printf("请输入5个字符\40:\40");

palin(i);

printf("\n");

}

voidpalin(n)

intn;

{

charnext;

if(n<=1){

next=getchar();

printf("相反顺序输出结果\40:\40");

putchar(next);

}else{

next=getchar();

palin(n-1);

putchar(next);

}

}3、#include<stdio.h>

structstudent{

intnum;

charname[20];

intscore[3];

}stu[5];

voidinput(structstudent*pstu){

intn,j;

for(n=0;n<5;n++){

printf("Inputstudentsnum:");

scanf("%d",&pstu[n].num);

printf("\n");

printf("Inputstudentsname:");

scanf("%s",&pstu[n].name);

printf("\n");

printf("Inputstudentsscore:");

for(j=0;j<3;j++){

scanf("%d",&pstu[n].score[j]);

}

printf("\n");

}

}

voidoutput(structstudentstu[]){

温馨提示

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

评论

0/150

提交评论