蚌埠医学院历年C语言样卷及答案_第1页
蚌埠医学院历年C语言样卷及答案_第2页
蚌埠医学院历年C语言样卷及答案_第3页
蚌埠医学院历年C语言样卷及答案_第4页
蚌埠医学院历年C语言样卷及答案_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

[作者姓名C语言样卷(总分100分,考试时长90分钟)题号一二三总分阅卷人分值402040100得分题目包括三大部分,单项选择题,判断题,编程题,请按要求在规定时间内作答。考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。一、单项选择题(每小题2分,共40分)1、下列四组选项中,正确的c语言标识符是________。 A、%x B、a+b C、a123 D、123【答案】C2、设有定义:floata=2,b=4,h=3;,以下c语言表达式与代数式计算结果不相符的是________。 A、(a+b)*h/2 B、(1/2)*(a+b)*h C、(a+b)*h*1/2 D、h/2*(a+b)【答案】B3、下列标识符,不合法的是________。 A、abc B、_d C、123 D、e1【答案】C【解析】123不是合法的标识符,标识符不能以数字开头。4、c语言中下面哪个不是条件语句? A、if B、ifelse C、NSLog D、switch【答案】C5、以下程序运行后的输出结果是________。

#include<stdio.h>

main()

{

ints=0,k;

for(k=7;k>=0;k--)

{

switch(k)

{

case1:case4:case7:s++;

break;

case2:case3:case6:break;

case0:case5:s+=2;

break;

}

}

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

} A、s=5 B、s=1 C、s=3 D、s=7【答案】D6、以下选项中能表示合法常量的是________。 A、整数:1,200 B、实数:1.5E2.0 C、字符斜杠:"\" D、字符串:"\007"【答案】D7、下列哪个赋值语句是不正确的 A、floatf=11.1; B、doubled=5.3E12; C、floatd=3.14f; D、doublef=11.1E10f;【答案】A【解析】浮点型数的赋值,带有小数点的数字缺省是double型的,如果在浮点数后面加f或者F则是float,后面加d或者D则是double,科学计数法形式的浮点数也是double型的,而double的精度比float高,将一个高精度的double赋值给一个低精度的float时需要进行强制类型转换,反之则不需要。8、下面关于数组的初始化正确的是________。 A、chara[]='a','b','c' B、chara[2]='a','b','c' C、chara[2][3]='a','b','e','d','e','f' D、chara[]="a","b","c"【答案】D【解析】""是字符串符号,而不是字符符号。9、以下叙述中正确的是________。 A、在C程序中的八进制和十六进制,可以是浮点数 B、整型变量可以分为int型、short型、long型和unsigned型四种 C、八进制数的开头要使用英文字母o,否则不能与十进制区分开 D、英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符【答案】B【解析】C程序中的实型常量只有十进制一种数制,所以A错误。八进制数以0打头,所以C错误。C语言中整数只有十进制、八进制、十六进制三种,没有二进制数制,所以D错误。10、下列字符串是标识符的是________。 A、aa B、a-class C、int D、LINE1【答案】A11、c语言中,数组名代表________。 A、数组全部元素的值 B、数组首地址 C、数组第一个元素的值 D、数组元素的个数【答案】B12、在printf的格式字符中,e格式字符的作用是________。 A、以十六进制无符号形式输出整数 B、以带符号的十进制形式输出整数 C、以指数形式输出实数 D、以字符形式输出,且只输出一个字符【答案】C【解析】本题考查printf。函数的格式。格式字符“e”或者“E”都表示以指数形式输出单精度或双精度数。13、在32位的计算机中,一个char型数据所占的内存长度的字节是________。 A、4 B、1 C、2 D、8【答案】B【解析】本题考查C语言各种数据类型所占的内存大小。char型数据所占内存的大小为1个字节。注意:int型数据占内存的大小为4个,congdouble,double占内存的大小为8个字节。14、没有如下定义:int(*ptr)();则以下叙述中正确的是________。 A、ptr是指向一维组数的指针变量 B、ptr是指向int型数据的指针变量 C、ptr是指向函数的指针,该函数返回一个int型数据 D、ptr是一个函数名,该函数的返回值是指int型数据的指针【答案】C15、下面程序的输出结果是_______。

main()

{

externinta;

a+=3;

f();

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

}

inta=2;

voidf()

{

printf("%d&",a*a);

a+=a;

} A、2510 B、25&25 C、10&25 D、25&10【答案】D16、有如下程序

#include<stdio.h>

voidmain()

{

intx=23;

do

{

printf("%d",x--);

}

while(!x);

}

该程序的执行结果是_________。 A、321 B、23 C、不输出任何内容 D、陷入死循环【答案】B17、下面结构体的定义语句中,错误的是________。 A、structord{

intx;inty;intz;};structorda; B、structord{

intx;inty;intz;}structorda; C、structord{

intx;inty;intz;}n; D、struct{

intx;inty;intz;}a;【答案】B18、已知字符'a'的ascll代码值是65,字符变量c1的值是'a',c2的值是'd'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是________。 A、A,B B、A,68 C、65.66 D、65,68【答案】C19、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下划线处应填写的是________。

#defineN5

voidfun(intx[N])

{

intm;

for(m=N-t;m>=O;m-)scanf("%d",________);

} A、%&X[++m] B、&x[m+1] C、x+(m++) D、x+m【答案】D20、有以下程序

structstu

{

charname[10];

intnum;

intscore;

}

;

main()

{

structstus[5]={{"yangsan",20041,703},{"lisiguo",20042,580,{"wangyin",20043,680},{"sundan",20044,550},{"penghua",20045,537}},*p[5],*t;

inti,j;

for(i=0;i<5;i++)p[i]=&s[i];

for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(p[i]->score>p[j]->score)

{

t=p[i];

p[i]=p[j];

p[j]=t;

}

printf("5d%d\n",s[1].score,p[1]->score);

}

执行后输出结果是________。 A、550550 B、680680 C、580550 D、580680【答案】C二、判断题(每小题2分,共20分)()1、在所有关系运算符中,其优先级最低的是"==和!="。【答案】正确()2、i++表示在使用该表达式值之后将i值加1。【答案】正确()3、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用

{

}

括起来组成一个复合语句。【答案】正确()4、循环语句不能嵌套使用。【答案】错误()5、printf("格式控制字符串",输出项表列)中,格式控制字符串中的输出项格式说明与输出项表列中的输出项按顺序一一对应,且输出项的数据类型要与格式字符相容,否则会导致执行错误。【答案】正确()6、一个c源程序必须包含一个main函数。【答案】正确()7、如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。【答案】正确()8、递归调用时必须有结束条件,不然就会陷入无限递归的状态。【答案】正确()9、字符串"that"小于字符串"the"。()【答案】正确()10、非静态全局变量的作用域可以扩展到构成该程序的其他源程序文件中。【答案】正确三、编程题(每小题分,共40分)1、编写程序:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。(本题10分)【答案】#include<stdio.h>

#include<stdlib.h>

intmain(){

intday,x1=0,x2;

day=9;

x2=1;

while(day>0){

x1=(x2+1)*2;//第一天的桃子数是第2天桃子数加1后的2倍

x2=x1;

day--;

}

printf("总数为%d\n",x1);

return0;

}【解析】采取逆向思维的方法,从后往前推断。

1)设x1为前一天桃子数,设x2为第二天桃子数,则:

x2=x1/2-1,x1=(x2+1)*2

x3=x2/2-1,x2=(x3+1)*2

以此类推:x前=(x后+1)*2

2)从第10天可以类推到第1天,是一个循环过程。2、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志。(本题14分)【答案】voidmain()

{

inti,x,m=0,n=0,k=0,j=0;

chara[20];

printf("请输入字符串:");

gets(a);

x=strlen(a);

for(i=0;i='0'&&a[i]<='9')

m++;

elseif(a[i]>='A'&&a[i]<='Z')

n++;

elseif(a[i]>='a'&&a[i]<='z')

k++;

else

j++;

}

printf("%d,%d,%d,%d\n",m,n,k,j);

}3、说明一个枚举类型enummonth它的枚举元素为Jan、Feb、…、Dec。编写能显示上个月名称的函数last_month。例如,输入Jan时能显示Dec。再编写另一个函数printmon用于打印枚举变量的值枚举元素。最后编写主函数调用上述函数生成一张12个月份及其前一个月份的对照表,使用结构体实现(本题16分)【答案】#include<stdio.h>

enummonth{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec};

char*name[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep",

"Oct","Nov","Dec"};

voidlast_month(enummonthm1)

{

enummonthm2=(enummonth)(((int)m

温馨提示

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

评论

0/150

提交评论