南华大学历年计算机C语言期末题目及答案_第1页
南华大学历年计算机C语言期末题目及答案_第2页
南华大学历年计算机C语言期末题目及答案_第3页
南华大学历年计算机C语言期末题目及答案_第4页
南华大学历年计算机C语言期末题目及答案_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

计算机C语言期末题目(总分100分,考试时长90分钟)一、单项选择题(每小题2分,共40分)1、在7位ascii码中,除了表示数字、英文大小写字母外,还有几个字符和符号 A、63 B、66 C、80 D、322、关于字符型变量的定义,下列选项正确的是________。 A、charch=a; B、charch='a'; C、charch="a"; D、charch=\a;3、c语言中逻辑表达式的值为________。 A、0或1 B、非零值或零值 C、true或false D、'true'或'false'4、以下程序的输出结果是_______。

main()

{

intx=1,y=0,a=0,b=0;

switch(x)

{

case1:switch(y)

{

case0:a++;

break;

case1:b++;

break;

}

case2:a++;

b++;

break;

}

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

} A、2,1 B、2,2 C、1,1 D、215、若有说明:intn=2,*p=&n,*q=p,则以下非法的赋值语句是:() A、p=q B、*p=*q C、n=*q D、p=n6、设x为int型变量,则执行语句x=10和x+=x-=x-x后,x的值为: A、10 B、20 C、40 D、307、若有定义:inta[10],则对数组a元素的正确引用是________。 A、a[10] B、a[3.5] C、a(5) D、a[0]8、若有说明和语句inta=5;a++;此处表达式a++的值是________。 A、7 B、6 C、5 D、49、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。while((ch=getchar())!='e')printf("*"); A、5 B、4 C、6 D、110、已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为________。inta[3][4];

f(a); A、f(intarray[][6]) B、f(intarray[3][]) C、f(intarray[][4]) D、f(intarray[2][5])11、在传值调用中,要求________。 A、形参和实参类型任意,个数相等 B、形参和实参类型一致,个数相等 C、形参和实参类型一致,个数不等 D、形参和实参类型任意,个数任意。12、在16位编译器环境下,double类型占多少字节? A、2 B、4 C、1 D、813、若调用一个函数,且此函数中没有return语句,则正确的说法是该函数________。 A、没有返回值 B、返回若干个系统默认值 C、有返回值,但返回一个不确定的值 D、能返回一个用户所希望的函数值14、enuma

{

sum=9,mon=-1,tue

}

;

定义了________。 A、枚举变量 B、3个标识符 C、枚举数据类型 D、整数9和-115、有下列程序:

main()

{

intx=0;

inty=0;

while(x<7&&++v)

{

y--;

x++;

}

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

}

程序的输出结果是________。 A、0,7 B、7,7 C、0,6 D、1,616、下述关于break语句的描述中,()是不正确的。 A、break语句可用于循环体内,它将退出该重循环 B、break语句可用于switch语句中,它将退出switch语句 C、break语句可用于对体内,它将退出if语句 D、break语句在一个循环体内可以出现多次17、设有如下定义:

structsk

{

intn;

floatx;

}data,*p;

若要使p指向data中的n域,正确的赋值语句是________。 A、p=&datn; B、*p=datn; C、p=(structsk*)&datn; D、p=(structsk*)datn;18、若输入ab,后回车,则程序运行结果为________。

main()

{

staticchara[3];

scanf("%s",a);

printf("%c,%c",a[1],a[2]);

} A、a,b B、a, C、b, D、程序出错19、若要定义一个具有5个元素的整型数组,以下错误的定义语句是________。 A、inta[5]={0}; B、intb[]={0,0,0,0,0} C、intc[2+3]; D、inti=5,d[i];20、定义结构体的关键字是________。 A、union B、enum C、struct D、typedef二、填空题(每小题2分,共20分)1、若inta=3,b=2,c=1,f;表达式f=a>b>c的值是________。2、单精度型数据有效位为______位。3、若有语句doublex=17;inty;,当执行y=(int)(x/5)%2;之后y的值是________。4、已知charstr[]="man",则strlen(str)的值为_____。5、结构化程序设计的3种基本结构是:________结构、选择结构、循环结构,这三种基本结构构成了复杂的c语言程序。6、下列程序段的运行结果是_____。

main()

{

intm=1,t=1;

for(;;)

{

m=m*t;

t++;

if(t>4)break;

}

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

}7、若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句________。8、局部变量的作用域是从______的位置起,到函数结束止。9、以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。

#include<stdio.h>

#include<ctype.h>

main()

{

chars[80],d[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)if(________)

{

d[j]=s[i];

j++;

}

d[j]='\0';

puts(d);

}10、请阅读并分析以下程序,该程序的输出结果是:

#include<stdio.h>

main()

{

intn[3][3],i,j;

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

for(j=0;j<3;j++)n[i][j]=i+j;

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

for(j=0;j<2;j++)n[i+1][j+1]+=n[i][j];

printf("%d\n",n[i][j]);

}三、编程题(每小题分,共40分)1、起泡法(选择法)对十个数排序(本题10分)2、编写一个函数,从传人的m个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:

char*proc(char(*a)[81],intnum)

{

}

voidmain()

{

charss[l0][81],*max;

intn,i=0;

printf("输入若干个字符串:");

gets(ss[i]);

puts(ss[i]);

while(!strcmp(ss[i],"****")==0)

{

i++;

gets(ssei]);

puts(ss[i]);

}

n=i;

max=proe(ss,n);

printf("\nmax=%s\n",max);

}(本题14分)3、已知学生的记录由学号和学习成绩构成N名学生的数据已存入a结构体数组中。试编写函数fun函数的功能是找出成绩最低的学生记录通过形参返回主函数规定只有一个最低分在主函数中调用fun,使用结构体实现(本题16分)

参考答案一、单项选择题1、B【解析】7位ASCII码表中有10个数字,26个大写字母,26个小写字母,所以剩下的字符和符号的数目是:128-10-26-26=66。2、B【解析】字符型变量的值要用一对英文半角格式的单引号('')把字符括起来。3、A4、A5、D6、B7、D8、C9、B10、B11、B【解析】在传值调用中,形参和实参类型一致,个数相等。12、D【解析】在16位编译器环境下,double类型占8个字节。13、C【解析】本题考查return语句的意义和用法。在C语言函数调用中,如果被调用函数中没有retnrn语句,并不带回一个确定的、用户所希望得到的函数值,而是带回的是一个不确定的值。14、C15、A16、C17、C【解析】本题主要考查了结构体变量引用成员数据的方法,主要有以下几种:结构体变量名,成员名或结构体指针->,成员名的方法来引用结构体成员。18、C19、D20、C二、填空题1、02、73、14、35、顺序6、247、['printf("a=%d,b=%d",a,b);']8、定义9、["s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]"]10、6三、编程题1、#include

voidmain()

{

inti,j,t;

inta[10];

printf("请输入10个数:\n");

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

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

for(j=0;j<9;j++)

for(i=0;i<9-j;i++)

if(a[i]>a[i+1])

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

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

printf("%d",a[i]);

printf("\n");

}2、char*proc(char(*a)[81],intm)

{

char*max;

inti=0:max=a[0]:for(i=0;i<m;i++)if(strlen(max)<strlen(a[i]))//找出最长的字符串max=a[i];

returnmax;

//返回最长字符串的地址

}3、#include<stdio.h>

#defineN10

structstudent

{

longnumber;

intscore;

};

voidfun(structstudentstd[],structstudent*min)

{

inti,m;

m=std[0].score;

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

{

if(std[i].score<m)

{

m=std[i].score;

min->number=(std+i)->number;

min->score=

温馨提示

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

评论

0/150

提交评论