江西中医药大学计算机C语言考题及答案_第1页
江西中医药大学计算机C语言考题及答案_第2页
江西中医药大学计算机C语言考题及答案_第3页
江西中医药大学计算机C语言考题及答案_第4页
江西中医药大学计算机C语言考题及答案_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

2/2江西中医药大学计算机C语言考题总分:100分 考试时间:90分钟注意事项:题目包括三大部分,单项选择题,填空题,编程题,请按要求作答。答卷必须用蓝色或者黑色钢笔、圆珠笔,不许用铅笔或者红笔作答。考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。一、单项选择题(每小题2分,共40分)1、以下不合法的字符常量是________。 A、′\018′ B、′\"′ C、′\\′ D、′\xcc′【答案】A2、若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x,____是正确的。 A、p2=p1 B、p2=**p1 C、p2=&p1 D、p2=*p1【答案】A3、若a和b均是整型变量并已正确赋值,正确的switch语句是________。 A、switch(a+b);…… B、switch(a+b*3.0)…… C、switcha…… D、switch(a%b)……【答案】D【解析】【命题目的】考查switch语句的用法。

【解题要点】switch后的括号部分只能返回这几种类型的值:int,byte,short和char。

【错解分析】选项A)switch(a+b);中多了一个“;”号,注意观察。选项B)switch(a+b*3.0)中括号的值不能为浮点型。选项C)switcha中switch后的判断部分必须用括号括起来。4、已知#intt=0;while(t=1){...}则以下叙述正确的是________。 A、循环控制表达式的值为0 B、循环控制表达式的值为1 C、循环控制表达式不合法 D、以上说法都不对【答案】B【解析】t=1是将t赋值为1,所以循环控制表达式的值为1。判断t是否等于1时,应用t==1,注意“=”与“==”的用法。5、c语言中,可用于说明函数的是________。 A、auto或static B、extern或auto C、static或extern D、auto或register【答案】C6、设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是____ A、b=1.0/a B、b=(float)(1/a) C、b=1/(float)a D、b=1/(a*1.0)【答案】B7、若数组a定义为int[][]a=newint[3][4],则a是________。 A、一维数组 B、二维数组 C、三维数组 D、四维数组【答案】B【解析】二维数组有两种定义方式:①typearrayName[][];②type[][]arrayName;从题目中的语句可以看出,本题定义了一个二维数组。8、下列叙述中不正确的是________。 A、变量名的第一个字符必须是字母 B、变量名的长度不超过255个字符 C、变量名可以包含小数点或者内嵌的类型声明字符 D、变量名不能使用关键字【答案】C9、设有字符串a="hehas钱!",则该字符串的长度为()。 A、9 B、10 C、11 D、8【答案】B10、以下对一维数组a的正确说明是________。 A、intn;scanf("%d",&n);inta[n]; B、intn=10,a[n]; C、inta(10); D、#defineSIZE10inta[SIZE];【答案】D11、结构化程序设计所规定的三种基本控制结构是________。 A、输入、输出、处理 B、顺序结构、选择结构、循环结构 C、for、while、switch D、主程序、子程序、函数【答案】B【解析】结构化程序有三种基本结构组成,分别是顺序结构、选择结构和循环结构。12、关于指针概念说法不正确的是________。 A、一个指针变量只能指向同一类型变量 B、一个变量的地址称为该变量的指针 C、只有同一类型变量的地址才能放到指向该类型变量的指针变量之中 D、指针变量可以由整数赋,不能用浮点赋【答案】D13、下列关于数组初始化的说法,正确的是________。 A、对于inta[5];它的数组元素初值为0 B、inta[5]={1,3,5,7,8,9};是可以的,这时数组长度自动变为6 C、staticinta[5];的数组元素初值为0 D、inta[5]={1.3,5};是不合法的,因为数组长度为5,而仅有3个数据,不知赋给哪个元素【答案】C【解析】数组一旦定义,其长度就不可变了;初始化数组的数据个数不要大于数组长度,否则会出现逻辑错;初始化数组的数据个数若小于数组长度,则先赋给前边的元素,后边的元素值自动初始化为0;静态数组如果没有初始化自动初始化为0。14、在说明一个结构体变量时系统分配给它的存储空间是________。 A、该结构体中第一个成员所需存储空间 B、该结构体中最后一个成员所需存储空间 C、该结构体中占用最大存储空间的成员所需存储空间 D、该结构体中所有成员所需存储空间的总和【答案】D15、下面程序的输出结果是__________.

#include<stdio.h>

voidmain()

{

inta=-1,b=4,k;

k=(++a<=0)&&(b--<=0);

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

} A、1,1,2 B、1,0,3 C、0,1,2 D、0,0,3【答案】D16、有如下程序

#defineN3

#defineMN+1#defineNUM2*M+1

main()

{

inti;

for(i=1;i<=NUM;i++)printf("%d\n",i);

}

该程序中的for循环执行的次数是______。 A、5 B、8 C、7 D、6【答案】B17、若有以下定义的语句

structstudent

{

intage;

intnum;

};

structstudentstu[3]={{1001,20},{1002,19},{1003,21}};

main()

{

structstudent*p;

p=stu;

}则以下不正确的引用是________。 A、(p++)->num B、p++ C、(*p).num D、p=&stu.age【答案】D【解析】考查对结构体成员的引用方法。[解题要点]结构体成员的引用可以用“结构体变量名,成员名”或者“结构体变量指针->成员名”两种方式来引用。[考点链接]结构体类型的变量、数组和指针变量的定义。18、下列程序的输出结果为________。

main()

{

intm=7,n=4;

floata=38.4,b=6.4,x;

x=m/2+n*a/b+1/2;

printf("%f\n",x);

} A、27.000000 B、27.500000 C、28.000000 D、28.500000【答案】A19、下面的C程序完成的功能是________。

#defineSIZE5

voidfunc(intdata[SIZE]);

main()

{

inti,buf[SIZE];

printf(""Pleaseinput%dnumbers:"",SIZE);

for(i=0;idata[j+1])

{

d=data[j];

data[j]=data[j+1];

data[j+1]=d;

}

} A、对一维数组降序排序 B、对一维数组升序排序 C、对一维数组逆向排序 D、对一维数组顺序排序【答案】B20、下面定义结构变量的语句中错误的是________。 A、structstudent{

intnum;charname[20];

}s; B、struct{

intnum;charname[20];

}s; C、structstudent{

intnum;charname[20];

};

structstudents; D、structstudent{

intnum;charname[20];

};

students;【答案】D二、填空题(每小题2分,共20分)1、符合结构化原则的三种基本控制结构是:选择结构、循环结构和________。【答案】['顺序结构']2、算术表达式a=b+3中,a、b称为变量,3称为______量,=、+称为运算符。【答案】常3、在c语言中,标识符是由英文字母、数字、________组成的。【答案】下划线4、有以下语句段intn1=10,n2=20;

printf("________",n1.n2);

要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。n1=10n2=20【答案】['n1=%d\\nn2=%d']5、执行下列的程序段后,正确的结果是_____________。

inti=5;

while(i=1)i--;

printf("%d",i);【答案】无限循环#死循环6、下面程序的功能是用―辗转相除法‖求两个正整数的最大公约数。请分析程序填空。

#include<stdio.h>

main()

{

intr,m,n;

scanf("%d%d",&m,&n);

if(m<n)____1___;

r=m%n;

while(r)

{

m=n;

n=r;

r=____2___;

}

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

}【答案】【1】r=m,m=n,n=r【2】m%n7、c语言中getchar()函数的功能是________。【答案】['从键盘上输入一个字符']8、在函数中使用______语句返回值。【答案】return9、以下程序的运行结果是________。

#include<stdio.h>

func(intarray[][4],intm)

{

inti,j,k;

k=0;

for(i=0;i<3;i++)for(j=0;j<4;j++)if(array[i][j]<m)k=k+array[i][j];

returnk;

}

main()

{

staticinta[3][4]={{1,13,5,7},{2,4,26,8},{10,1,3,12}};

inti,j,m;

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

{

for(j=0;j<4;j++)printf("%4d",a[i][j]);

printf("\n");

}

m=10;

printf("\nthevalueis%d\n",func(a,m));

}【答案】1135724268101312thevalueis3110、#include<stdio.h>

voidmain()

{

charstr[][10]={"mon","tue","wed","thu","fri","sat","sun"};

intn=0,i;

for(i=0;i<7;i++)if(str[i][0]=='t')n++;

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

}【答案】2【解析】改程序的作用是统计以“T”开头的字符串的个数,显然只有“Tue”和“Thu”以“T”开头,故n=2。三、编程题(每小题分,共40分)1、编写程序:判断101到200之间的素数。(本题10分)【答案】#include<stdio.h>

intmain()

{

inti,j;

intcount=0;

for(i=101;i<=200;i++)

{

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

{

//如果j能被i整除在跳出循环

if(i%j==0)

break;

}

//判断循环是否提前跳出,如果j<i说明在2~j之间,i有可整除的数

if(j>=i)

{

count++;

printf("%d",i);

//换行,用count计数,每五个数换行

if(count%5==0)

printf("\n");

}

}

return0;

}【解析】判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。2、整数转字符串。输入一个整数1234,得到字符串:“1234”(本题14分)【答案】#include<stdio.h>//标准输入输出

#include<string.h>//字符串处理头文件

voidint_to_string(charstr[],intdata);

intmain(intargc,char**argv)

{

charstr[100];

int_to_string(str,12345);

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

return0;

}

/*

函数功能:整数转为字符串

函数参数:

charstr[]//存放转换之后的整数(字符串)

intdata//待转换的整数

*/

voidint_to_string(charstr[],intdata)

{

inti=0,j;

chartmp;

/*1.将整数转为字符串*/

while(data)

{

str[i]=data%10+'0';

data/=10;

i++;

}

str[i]='\0';

/*2.交换顺序*/

for(j=0;j<i/2;j++)

{

tmp=str[j];

str[j]=str[i-j-1];

str[i-j-1]=tmp;

}

}3、编写程序:使用结构体,创建一个长度为n的链表。(本题16分)【答案】#include<stdio.h>

#include<stdlib.h>

#include<malloc.h>

typedefstructLNode{

intdata;

structLNode*next;

}LNode,*LinkList;

LinkListCreateList(intn);

voidprint(LinkL

温馨提示

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

最新文档

评论

0/150

提交评论