中南大学C语言程序设计历年试题Word下载.docx
- 文档编号:4436949
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:44
- 大小:48.07KB
中南大学C语言程序设计历年试题Word下载.docx
《中南大学C语言程序设计历年试题Word下载.docx》由会员分享,可在线阅读,更多相关《中南大学C语言程序设计历年试题Word下载.docx(44页珍藏版)》请在冰点文库上搜索。
2、标准C中,变量可以先使用再定义。
3、若定义函数时,其返回类型为void,则调用函数时,不能将其作为一个值赋给某个变量。
4、表达式“3.6%2”符合C语言语法。
5、全局变量的作用域是整个源程序文件。
6、数组名可以作为参数进行传递。
、
7、表达式“ELSE”是合法的C语言标识符。
8、一个函数中只允许有一条return语句。
9、C语言中用到的任何一个变量都要规定其类型。
10、使用continue语句,可以使得C程序的执行直接从循环中跳出。
三、下列各程序中每个程序各有2个错误,指出错误语句,写出对应正确语句(每小题4分,共16分)
1、输入一个数,计算其平方根
main()
{
floata,b;
printf(“pleaseinputanumber\n”);
scanf(“%f”,a);
if(a>
=0)
b=sqrt(a);
printf(“b=%f\n”,b);
elseprintf(“dataiserror!
\n”);
2、已知矩阵a=
,求该矩阵对角线元素之和。
intisum;
inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};
for(i=1;
i<
=3;
i++)
sum=sum+a[i][i];
printf(“sum=%d”,sum);
3、用递归语句编函数计算6!
longf(intm)
{longa;
if(m<
0)printf(“dataerror!
”);
elsea=f(m-1)*m;
{intn=6;
printf(“%d!
=%ld”,n,f(n));
4、若有一维数组x[6]={1,4,5,7,0,3}编程求出其中最大的元素
intx[6]={1,4,5,7,0,3};
inti,max=x[1];
i<
6;
i++)
if(x[i]<
max)max=x[i];
printf(“最大的元素为%d\n”,max);
四、程序填空题:
下列程序中缺少若干条语句,在对应的下划线上填上合适的语句,每一个下划线只填一条语句(每小题4分,共16分)
1、若一自然数全部正整数因子(该因子不包括其本身)之和仍为该自然数,则该自然数称为完全数。
如:
6=1+2+3,则6是完全数。
求[2,1000]以内的所有完全数。
intx,n,m;
for(n=2;
n<
=1000;
n++)
for(m=1;
m<
n;
m++)
{if(n%m==0)x=x+m;
}
printf(“%d\n”,n);
2、将某同学的五门课程成绩放在一数组中,求其总分,要求通过函数调用实现。
floatsum(floatarr[]){
intx;
for(x=0;
x<
5;
x++)
he=he+arr[x];
return(he);
floatscore[5],summay;
inta;
printf(“输入五门课程成绩\n”);
for()
scanf(“%f”,&
score[a]);
summay=sum(score);
printf(“总分为:
%f\n”,summay);
3、用选择法给整数排序的相关函数
sort(intx[],n)
inti,j,k,t;
for(i=0;
n-1;
_________________
for(j=i+1;
j<
j++)
if(x[j]>
x[k])____________
if(k!
=i)
t=x[i];
x[i]=x[k];
x[k]=t;
4、输入一个字符,若是小写字母就输出对应的大写字母,若是大写字母就输出对应的小写字母,如果其它字符,则输出错误提示。
main()
charx;
printf("
Input:
"
);
if(x>
='
A'
Z'
)
\n%c"
x+32);
elseif(_______________________)
x-32);
else
InputError"
五、阅读下列程序,写出运行结果(每小题6分,共12分)
1、
#include<
stdio.h>
inti=0;
intk=1;
i++;
k++;
printf(“goodi=%d,k=%d\n”,i,k);
sub();
staticinty=0;
sub()
intk=0;
staticintx=1;
y++;
x++;
printf(“badi=%d,k=%d,x=%d,y=%d\n”,i,k,x,y);
2、
p(intx,intn)
if(n==1)
return(x);
%d\n"
n-1);
return(x*(1-p(x,n-1)));
inty,x=2,n=4;
y=p(x,n);
printf(“%d”,y);
六、编程题(第1题6分,第2题10分,共16分)
a)编程求
。
b)编写程序求10个实数的最大值、最小值及平均值,要求:
1最大值、最小值、平均值的求取分别通过三个函数实现,函数以数组名或指针为参数;
2主函数中通过键盘输入10个实数。
3求出结果后,要求将其在主函数中输出。
2010--2011学年学期《C语言程序设计基础》试题参考答案
1填空题(每空2分,共30分)
1、26
2、910
3、37
4、6
5、56
6、010
7、FranceAu
2判断题(每小题1分,共10分)
×
√
3改错误,指出错误语句,写出对应正确语句(每小题4分,共16分)
1、在main()前加#include<
math.h>
将语句scanf(“%f”,a);
改为scanf(“%f”,&
a);
2、定义变量sum应给其赋初值sum=0;
i++)改为for(i=0;
3;
3、在子函数f中:
加语句if(m==0)a=1;
和语句return(a);
4、max=x[1];
改为max=x[0];
或者i=1;
i++改为i=0;
i++
将表达式x[i]<
max改为x[i]>
max
4程序填空题:
(每小题4分,共16分)
1、x=0;
if(x==n)
2、floathe=arr[0];
a=0;
a<
a++
3、k=i;
k=j;
4、scanf("
%c"
&
x);
x>
a'
&
x<
z'
5阅读下列程序,写出运行结果(每小题6分,共12分)
1、goodi=1,k=2
badi=1,k=1,x=2,y=1
badi=1,k=1,x=3,y=2
2、321-10
6编程题(16分)
(1)
{floatsum=0;
intk;
for(k=1;
k<
=50;
k++)sum+=k*k;
=100;
k++)sum+=k;
=10;
k++)sum+=1.0/k;
printf(“sumis%f”,sum);
(2)
floatmin(floata[])
{inti;
floatmin=a[0];
for(i=0;
10;
if(a[i]<
min)min=a[i];
return(min);
floatmax(floata[])
floatmax=a[0];
if(a[i]>
max)max=a[i];
return(max);
floataverage(floata[])
floataverage=a[0];
i++)average+=a[i];
return(average/10);
{floatb[10];
intj;
pleaseinputfivenumber\n"
for(j=0;
j<
j++)scanf("
%f"
&
b[j]);
maxis%f,minis%f,averageis%f\n"
max(b),min(b),average(b));
中南大学2010年C语言
一、选择题(每小题1.5分,共计30分)
1.C语言中变量定义与使用的关系是。
A)必须先定义,后使用 B)可以先使用,后定义
C)可以边使用,边定义 D)不须定义,随时使用
2.已知:
inta,b;
用语句scanf(“%d%d”,&
a,&
b);
输入a、b的值时,不能作为输入数据分隔符的是。
A)逗号B)空格C)回车D)Tab键
3.不是C语言中合法的标识符。
A)sum B)ClassC)li_lingD)3D64
4.在C语言中,下列运算符的操作数必须是int型的运算是。
A)%B)/C)!
=D)++
5.下面不正确的赋初值语句是。
A)inta=2.0;
B)charc=“a”;
C)inta[]={0};
D)chars[]=“boy”;
6.在函数调用过程中,形式参数与实际参数的数据传递关系是。
A)实参传递给形参 B)形参传递给实参
C)实参与形参双向传递 D)由用户指定传递方式
7.在C语言中,字符串的结束标志为。
A)‘\n’B)‘\t’C)‘\0’C)‘\b’
8.在循环结构中,提前结束循环的语句是。
A)breakB)continueC)switchD)return
9.下列运算符中优先级最高的是 。
A)<
B)!
=C)&
D)+
10.以下叙述正确的是 。
A)在C程序中,main函数必须位于程序的最前面
B)C程序的每行中只能写一条语句
C)C语言的输入输出是用函数实现的。
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
11.设有程序段
while
(1)
{k=k+1;
if(k=10)break;
则下面描述中正确的是 。
A)while循环执行10次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
12.以下说法不正确的是 。
A)定义函数时,函数中可有多个return语句。
B)return后边的值可以为表达式。
C)如果函数值的类型与返回值类型不一致,以返回值类型为准。
D)对用户自定义函数,其位置在调用它的函数后面,应该声明。
13.设有程序段:
intx=12,y;
if(x<
1)y=x;
elseif(1<
=x&
10)y=2*x-1;
else
y=3*x-1;
则程序执行后,y的值为 。
A)12B)23C)35D)程序无法执行,有编译错误
14.以下不正确的叙述是 。
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
15.下述对C语言字符数组的描述中错误的是 。
A)字符数组可以存放字符串
B)字符数组的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符"
="
对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
16.设有定义:
intk=0;
chars[30];
若准备将句子“youareastudent.”赋给字符数组s,错误的输入语句为:
A)scanf(“%s”,s);
B)for(k=0;
18;
k++)s[k]=getchar();
C)while((c=getchar())!
=‘\n’)s[k++]=c;
D)gets(s);
17.设有定义:
charc[6]=“china”;
下面不能正确输出数组c的是 。
A)puts(c);
B)printf(“%s”,c);
C)for(i=0;
i++)printf(“%c”,c[i]);
D)printf(“%s”,c[6]);
18.设变量a是整型,f是实型,i是双精度型,则表达式10+'
+i*f值的数据类型为 。
A)intB)floatC)doubleD)不确定
19.已知各变量的类型说明如下:
inti=8,k,a,b;
doublex=1.42,y=5.2;
则以下符合C语言语法的表达式是 。
A)a+=a-=(b=4)*(a=3)B)a=a*3=2
C)x%(-3)D)y=f1oat(i)
20.已知函数abc的定义为:
voidabc()
{…….}
则函数中void的含义是:
A)执行函数abc后,函数没有返回值。
B)执行函数abc后,函数不返回
C)执行函数abc后,可以返回任意类型D) 以上三个答案全是错误的
二、计算表达式(每小题1.5分,共计15分):
设inta=15,b=-10;
floatx=102.4,y=30.5;
(注意:
各式结果不影响后续的题目!
1.(++a)-(b--)()
2.a+=a*=3()
3.a<
b?
(2*a+b):
(a-2*b)()
4.(a+b)/2+(int)(x+y)%(-b)()
5.(float)a/2+(float)(b+12)()
6.(a>
b)&
(x>
12&
y<
=35)()
7.(int)x%(int)y&
(!
a)||(!
b)()
8.计算(a>
5)||(++b)后b的值为:
()
9.printf(“%d”,’\112’);
结果为()
10.已知’A’的ASCII码为65,则:
printf(“%c”,’\x44’);
结果为()
三、写出下列程序的的执行结果(每小题5分,共计20分,注意输出格式)
1.#include<
intmain()
{inta=23,b=12;
floatx=45.22212,y=43.221;
staticcharc='
B'
c2[]="
IAMSTUDENT"
;
printf("
%5d%5d\n"
a,b);
%10.2f,%-10.2f\n"
x,y);
%o,%x,%u\n"
b,b,b);
%d,%c\n"
c,c);
%s,%5.3s\n"
c2,c2);
return0;
2.#include<
{inta[6][6],i,j;
for(j=1;
a[i][j]=(i/j)*(j/i);
{for(j=1;
%3d"
a[i][j]);
\n"
3.#include<
{intm,n,k=0;
for(n=100,m=1;
m<
11;
{if(n%2==0)
continue;
%6d"
n);
m++;
if(k%2==0)printf("
4.#include<
voidmain()
{inti,j,k;
charspace='
'
/*space变量的值为一个空格*/
for(i=0;
{for(j=1;
=i;
space);
for(k=0;
k++)
'
*'
四、程序填空(每空1.5分,共计15分)
1.下面程序的功能是:
求100~200之间的全部素数。
#include<
{
intm,k,i,n=0;
for(m=101;
200;
m+=2)
{
if(n%10==0)
k=sqrt(m);
for(i=
;
=k;
i++)
if(m%i==0)
if(i==
k+1
%5d"
);
n++;
return0;
2.下面程序的功能是:
最多从键盘上输入80个字符,遇到’\n’后退出,遇到空格则换成字符’*’,对其它字符依次原样送入字符数组str中。
charc,str[80];
80;
)
{if((c=getchar())==‘\n’)
break;
if(c==‘’)
;
str[i]=c;
str[i]=‘\0’;
puts();
3.下面程序的功能是:
将一个数组中的值按逆序存放。
#defineN7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 语言程序设计 历年试题