C语言期末考试题2Word文件下载.docx
- 文档编号:7520610
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:23
- 大小:19.02KB
C语言期末考试题2Word文件下载.docx
《C语言期末考试题2Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言期末考试题2Word文件下载.docx(23页珍藏版)》请在冰点文库上搜索。
charc;
程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是(B).
isupper(c)
'
A'
<
=c<
='
Z'
=c&
&
c<
=('
z'
–32)&
('
a'
–32)<
=c
第5题(2.0分)
以下程序的功能是:
给r输入数据后,计算半径为r的圆面积s.程序在编译时出错.
/*Beginning*/
{intr;
floats;
scanf("
%d"
&
r);
s=p*r*r;
s=%f\n"
s);
出错的原因是(D).
注释语句书写位置错误
存放圆半径的变量r不应该定义为整型
输出语句中格式描述符非法
计算圆面积的赋值语句中使用了非法变量
第6题(2.0分)
有如下程序段:
intn=0,p;
do{scanf("
p);
n++;
}while(p!
=12345&
n<
3);
此处do-while循环的结束条件是(D).
P的值不等于12345,并且n的值小于3
P的值等于12345,并且n的值大于或等于3
P的值不等于12345,或者n的值小于3
P的值等于12345,或者n的值大于或等于3
第7题(2.0分)
有如下程序:
{inti,sum;
for(i=1;
i<
=3;
sum++)sum+=i;
%d\n"
sum);
该程序的执行结果是(C).
3
死循环
第8题(2.0分)
有以下程序:
{intk=5;
while(––k)printf("
%d"
k–=3);
\n"
);
执行后的输出结果是(A)
4
第9题(2.0分)
以下程序中,while循环的循环次数是(D)
{inti=0;
while(i<
10)
{if(i<
1)continue;
if(i==5)break;
i++;
}
10
死循环,不能确定次数
第10题(2.0分)
第11题(2.0分)
在下列程序中,没有构成死循环的程序段是(B).
inti=100;
inti=100;
while
(1)
{i=i%100+1;
if(i>
100)break;
intk=1000;
do
{++k;
}while(k>
=10000);
for(;
;
ints=36;
while(s);
--s;
第12题(2.0分)
{inti,j,m=55;
i++)
for(j=3;
j<
=i;
j++)
m=m%j;
m);
程序的运行结果是(B)
第13题(2.0分)
以下程序的输出结果是(D).
{inta,b;
for(a=1,b=1;
a<
=100;
a++)
{if(b>
=10)break;
if(b%3==1)
{b+=3;
continue;
printf("
a);
101
5
第14题(2.0分)
以下程序的输出结果是(C).
{inti,j,x=0;
for(i=0;
2;
{x++;
for(j=0;
3;
{if(j%2)continue;
x++;
x=%d\n"
x);
x=4
x=8
x=6
x=12
第15题(2.0分)
以下能正确定义一维数组的选项是(B).
intnum[];
#defineN100intnum[N];
intnum[0..100];
intN=100;
intnum[N];
第16题(2.0分)
以下对一维数组a的正确定义是(D).
inta(10)
intn=10,a[n];
intn;
scanf("
n);
inta[n];
#defineSIZE10
inta[SIZE]
第17题(2.0分)
以下程序的输出结果是(C).
#include<
{inti,a[10];
for(i=9;
i>
=0;
i––)a[i]=10–i;
%d%d%d"
a[2],a[5],a[8]);
258
741
852
369
第18题(2.0分)
若有定义:
inta[2][3];
以下选项中对a数组元素正确引用的是(D).
a[2][!
1]
a[2][3]
a[0][3]
a[1>
2][!
第19题(2.0分)
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
j++)s+=a[i][j];
该程序的输出结果是(A).
18
19
20
21
第20题(2.0分)
下列程序的输出结果是
voidf1()
{
intx=0;
%d,"
voidf2()
staticintx;
intk;
for(k=0;
k<
k++)
{f1();
f2();
}B
1,1,1,1,1,1
1,1,1,2,1,3
1,1,2,2,3,3
1,1,2,1,3,1
第21题(2.0分)
C语言规定,函数返回值的类型是由D
return语句中的表达式类型所决定的
调用该函数时的主调函数类型所决定的
调用该函数时系统临时决定的
在定义该函数时所指定的函数类型所决定的
第22题(2.0分)
voidfun(inta,intb,intc)
a=456;
b=567;
c=678;
main()
intx=10,y=20,z=30;
fun(x,y,z);
%d,%d,%d"
运行后输出结果是B
30,20,10
10,20,30
456,567,678
678,567,456
第23题(2.0分)
以下程序的输出结果是(A).
amovep(int*p,int(*a)[3],intn)
{inti,j;
for(i=0;
n;
{*p=a[i][j];
p++;
{int*p,a[3][3]={{1,3,5},{2,4,6}};
p=(int*)malloc(100);
amovep(p,a,3);
%d%d\n"
p[2],p[5]);
free(p);
A)56
B)25
C)34
D)程序错误
56
25
34
程序错误
第24题(2.0分)
若有以下程序:
{inta[3][3]={1,2,3,4,5,6,7,8,9},*p[3];
inti,j,s=0;
i++)p[i]=a[i];
i++)s=10*s+p[i][i];
程序运行后的输出结果是(D).
123
456
789
159
第25题(2.0分)
满足字符串s1大于字符串s2时if条件为真,应当使用(D).
if(s1>
s2)
if(strcmp(s1,s2))
if(strcmp(s2,s1)>
0)
if(strcmp(s1,s2)>
第26题(2.0分)
在以下程序中,函数scmp()的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址.
string.h>
char*scmp(char*s1,char*s2)
{if(strcmp(s1,s2)<
return(s1);
elsereturn(s2);
{inti;
charstring[20],str[3][20];
for(i=0;
gets(str[i]);
strcpy(string,scmp(str[0],str[1]));
/*库函数strcpy对字符串进行复制*/
strcpy(string,scmp(string,str[2]));
%s\n"
string);
运行时依次输入:
abcd、abba和abc3个字符串,则输出结果为(B).
abcd
abba
abc
abca
第27题(2.0分)
以下程序运行后,输出结果是(C).
voidfun(char*w,intn)
{chart,*s1,*s2;
s1=w;
s2=w+n–1;
while(s1<
{t=*s1++;
*s1=*s2––;
*s2=t;
{char*p;
p="
1234567"
fun(p,strlen(p));
puts(p);
1234567
7654321
1711717
7177171
第28题(2.0分)
#include"
stdio.h"
#defineM(x,y)x%y
main()
{inta,m=12,n=100;
a=M(n,m);
a––);
第29题(2.0分)
设有定义语句:
intx[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素中的值,不能完成此操作的语句是(D).
6;
i++)printf("
%2d"
*(p++));
*(p+i));
*p++);
(*p)++);
第30题(2.0分)
下面程序的输出结果是(C).
{inta[]={1,2,3,4,5,6,7,8,9,10},*p;
p=a;
*p+9);
9
二、程序填空共1题(共计10分)
第1题(10.0分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
输入学生成绩并显示。
-------------------------------------------------------*/
#include<
structstudent
{
charnumber[6];
charname[6];
intscore[3];
}stu[2];
voidoutput(structstudentstu[2]);
voidmain()
inti,j;
/***********SPACE***********/
i<
【?
】)
{
请输入学生%d的成绩:
i+1);
学号:
"
%s"
【?
】.number);
姓名:
stu[i].name);
j<
j++)
成绩%d."
j+1);
】.score[j]);
output(stu);
voidoutput(structstudentstu[2])
学号姓名成绩1成绩2成绩3\n"
i++)
】
("
%-6s%-6s"
stu[i].number,stu[i].name);
%-8d"
stu[i].score[j]);
三、程序改错共1题(共计10分)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,
当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
------------------------------------------------------*/
floatpeven(),podd(),dcall();
floatsum;
intn;
while
(1)
/**********FOUND**********/
n);
if(n>
1)
break;
if(n%2==0)
Even="
sum=dcall(peven,n);
else
Odd="
sum=dcall(podd,n);
%f"
getch();
floatpeven(intn)
inti;
s=0;
for(i=2;
=n;
i+=2)
s+=1%(float)i;
return(s);
floatpodd(n)
s=1;
s+=1/(float)i;
floatdcall(fp,n)
float(*fp)();
s=(*fp)(n);
四、程序设计共1题(共计20分)
第1题(20.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
求一批数中最大值和最小值的积。
------------------------------------------------*/
#defineN30
stdlib.h"
intmax_min(inta[],intn)
/**********Program**********/
/**********End**********/
inta[N],i,k;
clrscr();
N;
a[i]=random(51)+10;
%5d"
a[i]);
if((i+1)%5==0)printf("
k=max_min(a,N);
theresultis:
k);
yzj();
yzj()
FILE*IN,*OUT;
inti[10];
into;
IN=fopen("
in.dat"
"
r"
if(IN==NULL)
ReadFileError"
OUT=fopen("
out.dat"
w"
if(OUT==NULL)
WriteFileError"
for(n=0;
10;
n++)
{
fscanf(IN,"
i[n]);
o=max_min(i,10);
fprintf(OUT,"
o);
fclose(IN);
fclose(OUT);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 考试题
![提示](https://static.bingdoc.com/images/bang_tan.gif)