c语言试题1 5.docx
《c语言试题1 5.docx》由会员分享,可在线阅读,更多相关《c语言试题1 5.docx(18页珍藏版)》请在冰豆网上搜索。
![c语言试题1 5.docx](https://file1.bdocx.com/fileroot1/2023-7/24/74ec7eff-3d01-4c3f-884b-677b9c182453/74ec7eff-3d01-4c3f-884b-677b9c1824531.gif)
c语言试题15
资料收集于网络,如有侵权请联系网站删除
一、填空共5题(共计20分)
第1题(4.0分)题号:
601
若有以下数组a,数组元素:
a[0]~a[9],其值为
941282107513
该数组中下标最小的元素名字是【1】.答案:
(答案1)a[0]
第2题(4.0分)题号:
327
执行语句charstr[81]=abcdef;后,字符串str结束标志存储在str[【1】]
(在括号内填写下标值)中.答案:
(答案1)6
第3题(4.0分)题号:
1568
设a=3,b=4,c=5,则表达式!
(a+b)+c-1&&b+c/2的值为【1】.答案:
(1)1答案:
294
题号(4.0分)第4题.】结构、选择结构、循环结构C语言的三种基本结构是【1顺序答案:
(答案1):
1555
题号(4.0分)第5题
.,请填写以下程序段的输出结果【1】若所用变量都已正确定义for(i=1;i<=5;i++);
printf(OK\n);
1)OK
答案:
(答案(共计30分)题二、单项选择共15
:
109分)题号第1题(2.0类型数据占()。
C语言中,doubleA:
1个字节B:
2个字节C:
4个字节D:
8个字节D
答案:
:
201
题号(2.0分)第2题。
当定义一个结构体变量时,系统分配给它的内存是()A:
各成员所需内存量的总和B:
结构中第一个成员所需内存量C:
结构中最后一个成员所需内存量AD:
成员中占内存量最大者所需的容量答案:
题号:
527题3(2.0分)第。
全局变量的定义不可能在()函数内部A:
函数外面B:
C:
文件外面最后一行答案:
AD:
:
498
分)(2.0题号题第4。
语言关系运算符的是()下列运算符中是CA:
~
B:
!
C:
&
只供学习与交流.
资料收集于网络,如有侵权请联系网站删除
D:
!
=
答案:
D
第5题(2.0分)题号:
169
下列说法不正确的是()。
A:
主函数main中定义的变量在整个文件或程序中有效
B:
不同函数中,可以使用相同名字的变量
C:
形式参数是局部变量
D:
在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效
答案:
A
第6题(2.0分)题号:
671
C语言规定:
简单变量做实参时,它和对应形参之间的数据传递方式是()。
A:
地址传递
B:
单向值传递
C:
由实参传给形参,再由形参传回给实参
D:
由用户指定的传递方式
答案:
B
第7题(2.0分)题号:
510
inta=3,b=2,c=1;
if(a>b>c)a=b;
elsea=c;
则a的值为()。
A:
3B:
2C:
1D:
0
答案:
C
第8题(2.0分)题号:
675
关于建立函数的目的,以下正确的说法是()。
A:
提高程序的执行效率
B:
提高程序的可读性
C:
减少程序的篇幅
D:
减少程序文件所占内存
答案:
B
第9题(2.0分)题号:
540
指针变量p进行自加运算(即执行p++;)后,地址偏移值为2,则其
数据类型为()。
A:
int
B:
float
C:
double
D:
char
答案:
A
第10题(2.0分)题号:
524
与实际参数为实型数组名相对应的形式参数不可以定义为()。
A:
floata[];
B:
float*a;
C:
floata;
D:
float(*a)[3];
只供学习与交流.
资料收集于网络,如有侵权请联系网站删除
答案:
C
第11题(2.0分)题号:
721
fseek函数的正确调用形式是()。
A:
fseek(文件类型指针,起始点,位移量)
B:
fseek(fp,位移量,起始点)
C:
fseek(位移量,起始点,fp)
D:
fseek(起始点,位移量,文件类型指针)答案:
B
第12题(2.0分)题号:
177
以下描述中,正确的是()。
A:
预处理是指完成宏替换和文件包含中指定的文件的调用
B:
预处理指令只能位于C源文件的开始
C:
C源程序中凡是行首以#标识的控制行都是预处理指令
D:
预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
答案:
C
第13题(2.0分)题号:
548
char*match(charc)是()。
A:
函数定义的头部
B:
函数预说明
C:
函数调用
D:
指针变量说明答案:
A
第14题(2.0分)题号:
515
inti,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数
1,2,3,4,5,6存入a数组的是()。
A:
for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1;
B:
for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1;
C:
for(i=0;i<6;i++)a[i/3][i%3]=i+1;
D:
for(i=1;i<=6;i++)a[i][i]=i;答案:
D第15题(2.0分)题号:
732
若执行fopen函数时发生错误,则函数的返回值是()。
A:
地址值
B:
0
C:
1
D:
EOF
答案:
B
三、程序填空共5题(共计30分)
第1题(6.0分)题号:
394
功能:
用条件编译方法实现以下功能。
输入一行电报文字,可以任
选两种方式输出,一种为原文输出;另一种将字母变成下
一个字母(如a变成b,C变成D,其他字符不变)输出。
#include
#defineCHANGE
main()
{
/***********SPACE***********/
只供学习与交流.
资料收集于网络,如有侵权请联系网站删除
charstr[80],【?
】=str;
printf(inputstring:
);
/***********SPACE***********/
gets【?
】;
printf(Outputstring:
);
#ifdefCHANGE
for(;*s!
='\0';s++)
{
if(*s>='a'&&*s<='z'||*s>='A'&&*s<='Z')
{
(*s)++;
if(*s>'Z'&&*s<'Z'+2)
/***********SPACE***********/
【?
】;
if(*s>'z')
/***********SPACE***********/
*s=【?
】;
}
}
printf(%s\n,str);
#else
printf(%s\n,str);
#endif
}答案:
(答案1)*s
(答案2)(str)或(s)
(答案3)*s='A'
(答案4)'a'
第2题(6.0分)题号:
461
功能:
从键盘输入一个字符串,将小写字母全部转换成大写字母,
然后输出到一个磁盘文件“test”中保存。
输入的字符串
以!
结束。
#include
#include
#include
main()
{
FILE*fp;
charstr[100];
inti=0;
if((fp=fopen(est,w))==NULL)
{
printf(cannotopenthefile\n);
exit(0);
}
只供学习与交流.
资料收集于网络,如有侵权请联系网站删除
printf(pleaseinputastring:
\n);
gets(str);
/***********SPACE***********/
while(【?
】)
{
if(str[i]>='a'&&str[i]<='z')
/***********SPACE***********/
【?
】;
fputc(str[i],fp);
i++;
}
fclose(fp);
/***********SPACE***********/
fp=fopen(est,【?
】);
fgets(str,strlen(str)+1,fp);
printf(%s\n,str);
fclose(fp);
}答案:
(答案1)str[i]!
='!
'(答案2)str[i]=str[i]-32
或str[i]=str[i]-32
(答案?
尠屲或wr
或wr+
第3题(6.0分)题号:
490
功能:
利用函数计算连续的数组元素累加和的最大值。
如果最大
值是负数则返回0;
#include
/***********SPACE***********/
intmax_sum(【?
】,intn)
{
intmax_ending_here=0;
intmax_so_far=0;
inti;
for(i=0;i{
if(max_ending_here+x[i]<0)
/***********SPACE***********/
【?
】;
else
max_ending_here+=x[i];
if(max_ending_here>max_so_far)
max_so_far=max_ending_here;
}
/***********SPACE***********/
【?
】;
}
只供学习与交流.
资料收集于网络,如有侵权请联系网站删除
#include
voidmain(void)
{
intx[]={2,-3,1,-1,3,-2,-3,3};
intn=sizeof(x)/sizeof(int);
inti;
printf(\
MaximumConsecutiveElementsSumProgram);
printf(\
========================================);
printf(\
\nGivenArray:
);
for(i=0;iprintf(M,x[i]);
printf(\
\nMaximumSumis%d,max_sum(x,n));
}答案:
(答案1)intx[]
(答案2)max_ending_here=0(答案3)returnmax_so_far
第4题(6.0分)题号:
474
功能:
读入一行字符(如:
a、...y、z),按输入时的逆序建立一个
链接式的结点序列,即先输入的位于链表尾,然后再按输入
的相反顺序输出,并释放全部结点。
#include
#include
main()
{
structnode
{
charinfo;
structnode*link;
}*top,*p;
charc;
top=NULL;
/***********SPACE***********/
while((c=【?
】)!
='\n')
{
p=(structnode*)malloc(sizeof(structnode));
p->info=c;
p->link=top;
/***********SPACE***********/
【?
】;
}
while(top)
{
p=top;
/***********SPACE***********/
【?
】;
只供学习与交流.
资料收集于网络,如有侵权请联系网站删除
putchar(p->info);
free(p);
}
}答案:
(答案1)getchar()
(答案2)top=p(答案3)top=top->link
第5题(6.0分)题号:
31
功能:
用冒泡法对数组a进行由小到大的排序。
#include
voidfun(inta[],intn)
{
inti,j,t;
/***********SPACE***********/
for(j=0;【?
】;j++)
/***********SPACE***********/
for(i=0;【?
】;i++)
/***********SPACE***********/
if(【?
】)
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
main()
{
inti,a[10]={3,7,5,1,2,8,6,4,10,9};
/***********SPACE***********/
【?
】;
for(i=0;i<10;i++)
printf(=,a[i]);
}答案:
(答案1)j<=n-1
或n-1>=j或j<=-1+n或-1+n>=j或jj
或j或n-j-1>i或i或n-1-j>i或i<=n-j-2
或i<=n-2-j(答案3)a[i]>a[i+1]或a[i+1]四、程序设计共2题(共计20分)
第1题(10.0分)题号:
316
功能:
统计出若干个学生的平均成绩,最高分以及得最高
分的人数。
例如:
输入10名学生的成绩分别为92,87,68,56,92,
84,67,75,92,66,则输出平均成绩为77.9,
最高分为92,得最高分的人数为3人。
#include
只供学习与交流.
资料收集于网络,如有侵权请联系网站删除
voidwwjt();
floatMax=0;
intJ=0;
floatfun(floatarray[],intn)
{/**********Program**********/
/**********End**********/
}
main()
{
floata[10],ave;
inti=0;
for(i=0;i<10;i++)
scanf(%f,&a[i]);
ave=fun(a,10);
printf(ave=%f\n,ave);
printf(max=%f\n,Max);
printf(Total:
%d\n,J);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
floatiIN[10],iOUT;
intiCOUNT;
IN=fopen(in.dat,
);
if(IN==NULL)
{
printf(PleaseVerifyTheCurrerntDir..itMayBeChanged);
}
OUT=fopen(out.dat,w);
if(OUT==NULL)
{
printf(PleaseVerifyTheCurrentDir..itMayBeChanged);
}
for(iCOUNT=0;iCOUNT<10;iCOUNT++)
fscanf(IN,%f,&iIN[iCOUNT]);
iOUT=fun(iIN,10);
fprintf(OUT,%f%f\n,iOUT,Max);
fclose(IN);
fclose(OUT);
}答案:
----------------------
只供学习与交流.
资料收集于网络,如有侵权请联系网站删除
inti;floatsum=0,ave;
Max=array[0];
for(i=0;i{if(Maxsum=sum+array[i];}
ave=sum/n;
for(i=0;iif(array[i]==Max)J++;
return(ave);
----------------------
第2题(10.0分)题号:
363
功能:
求一个给定字符串中的字母的个数。
#include
voidwwjt();
intfun(chars[])
{
/**********Program**********/
/**********End**********/
}
main()
{
charstr[]=Bestwishesforyou!
;
intk;
k=fun(str);
printf(k=%d\n,k);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
charsin[80];
intiOUT,i;
IN=fopen(in.dat,
);
if(IN==NULL)
{
printf(PleaseVerifyTheCurrerntDir..itMayBeChanged);
}
OUT=fopen(out.dat,w);
if(OUT==NULL)
{
printf(PleaseVerifyTheCurrentDir..ItMayBeChanged);
只供学习与交流.
资料收集于网络,如有侵权请联系网站删除
}
for(i=0;i<10;i++)
{
fscanf(IN,%s,sin);
iOUT=fun(sin);
}
fprintf(OUT,%d\n,iOUT);
fclose(IN);
fclose(OUT);
}
答案:
----------------------
inti,k=0;
for(i=0;s[i]!
='\0';i++)
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
k++;
returnk;
----------------------
只供学习与交流.