C语言考试题库综合1Word下载.docx
《C语言考试题库综合1Word下载.docx》由会员分享,可在线阅读,更多相关《C语言考试题库综合1Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
在TurboC中,下面的定义和语句是合法的:
file*fp;
fp=fopen("
a.txt"
"
r"
第3题(2.0分)
charc[]="
VeryGood"
;
是一个合法的为字符串数组赋值的语句。
Y
第4题(2.0分)
若有inti=10,j=2;
则执行完i*=j+8;
后ⅰ的值为28。
第5题(2.0分)
若有inti=10,j=0;
则执行完语句
if(j=0)i++;
elsei--;
i的值为11。
━━━━━━━━━━━━━━━━━
三、单项选择共10题(共计10分)
第1题(1.0分)
执行下面程序后,输出结果是()。
main()
{a=45,b=27,c=0;
c=max(a,b);
printf("
%d\n"
c);
}
intmax(x,y)
intx,y;
{intz;
if(x>
y)z=x;
elsez=y;
return(z);
}
A:
45
B:
27
C:
18
D:
72
A
第2题(1.0分)
C语言中的文件的存储方式有()。
只能顺序存取
只能随机存取(或直接存取)
可以顺序存取,也可随机存取
只能从文件的开头进行存取
C
第3题(1.0分)
inta=3,b=2,c=1;
if(a>
b>
c)a=b;
elsea=c;
则a的值为()。
3
2
1
第4题(1.0分)
下列定义数组的语句中不正确的是()。
staticinta[2][3]={1,2,3,4,5,6};
staticinta[2][3]={{1},{4,5}};
staticinta[][3]={{1},{4}};
staticinta[][]={{1,2,3},{4,5,6}};
D
第5题(1.0分)
以下定义语句中,错误的是()。
inta[]={1,2};
char*a[3];
chars[10]="
test"
intn=5,a[n];
第6题(1.0分)
p1,p2为指向浮点的指针变量,则下列运算错误的是().
*p1-*p2
p1++
*p1%*p2
p1+p2
第7题(1.0分)
设有定义:
intn=0,*p=&
n,**q=&
p;
则以下选项中,正确的赋值语句是()。
p=1;
*q=2;
q=p;
*p=5;
第8题(1.0分)
若有定义:
inta=7;
floatx=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是()。
2.500000
2.750000
3.500000
0.000000
第9题(1.0分)
假定所有变量均已正确定义,下列程序段运行后x的值是()。
k1=1;
k2=2;
k3=3;
x=15;
if(!
k1)x--;
elseif(k2)x=4;
elsex=3;
14
4
15
B
第10题(1.0分)
数组名作为实参数传递给函数时,数组名被处理为()。
该数组的长度
该数组的元素个数
该数组的首地址
该数组中各元素的值
━━━━━━━━━━━━━━━━
四、多项选择共5题(共计10分)
以下对C语言中的函数描述不正确的有()。
可以嵌套定义,不可以嵌套调用
不可以嵌套定义,可以嵌套调用
可以嵌套定义,也可以嵌套调用
嵌套定义和嵌套调用都不允许
ACD
以下选项中合法的表达式是()。
0<
=x<
100
i=j==0
(char)(65+3)
x+1=x+1
ABC
已定义c为字符型变量,则下列语句中错误的是()。
c='
97'
c="
97"
c=97;
a"
ABD
以下关于数组描述错误的是()。
数组的大小是固定的,但可以有不同的类型的数组元素
数组的大小是可变的,但所有数组元素的类型必须相同
数组的大小是固定的,所有数组元素的类型必须相同
数组的大小是可变的,可以有不同的类型的数组元素
星号‘*’在C语言里用作
注释语句的起始符号
乘法运算符
说明指针类型
取地址运算
BC
五、程序填空共3题(共计15分)
第1题(5.0分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
输入字符串,再输入一个字符,将字符串中与输入字符相
同的字符删除。
-------------------------------------------------------*/
#include"
stdio.h"
voidfun(chara[],charc)
{
inti,j;
/***********SPACE***********/
for(i=j=0;
【?
】;
i++)
if(a[i]!
=c)a[j++]=a[i];
voidmain(void)
chara[20],cc;
gets(a);
puts(a);
1).a[i]!
='
\0'
或a[i]或a[i]!
=NULL
2).a[j]='
或a[j]=NULL或a[j]=0
3).cc=getchar()或scanf("
%c"
&
cc)
4).fun(a,cc)
第2题(5.0分)
计算个人与各科平均成绩及全班平均成绩,并在屏幕上显
示出来。
#defineM5/*定义符号常量人数为5*/
#defineN4/*定义符号常量课程为4*/
voidaver(floatsco[M+1][N+1]);
staticfloatscore[M+1][N+1]={{78,85,83,65},{88,91,89,93},{72,65,54,75},{86,88,75,60},{69,60,50,72}};
aver(score);
clrs
cr();
学生编号课程1课程2课程3课程4个人平均\n"
for(i=0;
i<
M;
{
学生%d\t"
i+1);
for(j=0;
j<
【?
j++)
%6.1f\t"
score[i][j]);
\n"
8*(N+2);
-"
\n课程平均"
N+1;
j++)
getch();
voidaver(floatsco[][N+1])
N;
sco[i][N]+=sco[i][j];
sco[M][j]+=sco[i][j];
sco[M][N]+=sco[i][j];
sco[i][N]【?
】N;
sco[M][【?
】]/=M;
sco[M][N]=sco[M][N]/M/N;
1).N+1或1+N或5
2).M或5
3)./=
4).j
第3题(5.0分)
输入两个整数x,y,请把这两个数由小到大输出。
#include<
stdio.h>
intx,y,t;
scanf("
%d%d"
【?
】);
if(【?
】)
{【?
】}
smalltobig:
%d%d\n"
x,y);
1).&
x,&
y或&
y,&
x
2).x>
y或x>
=y或y<
x或y<
=x
3).t=y;
y=x;
x=t;
或t=y,y=x,x=t;
或t=x;
x=y;
y=t;
或t=x,x=y,y=t;
六、程序改错共2题(共计20分)
第1题(10.0分)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
编写input()和output()函数输入,输出5个学生的数据记录。
------------------------------------------------------*/
#defineN5
structstudent
charnum[6];
charname[8];
intscore[4];
}stu[N];
input(stu)
structstudentstu[];
/**********FOUND**********/
inti;
j;
\npleaseinput%dof%d\n"
i+1,N);
num:
"
%s"
stu[i].num);
name:
stu[i].name);
3;
score%d."
j);
%d"
stu[i].score[j]);
print(stu)
\nNo.NameSco1Sco2Sco3\n"
=N;
%-6s%-10s"
stu[i].num,stu[i].name);
%-8d"
stu[i].score[j]);
input();
print();
1).inti,j;
2).printf("
j+1);
3).for(i=0;
第2题(10.0分)
编写一个函数,该函数可以统计一个长度为3的字符串在另
一个字符串中出现的次数。
例如:
假定输入的字符串为:
asdasasdfgasdaszx67asdmklo,字符
串为:
asd,则应输出n=4。
#include<
string.h>
conio.h>
intfun(char*str,char*substr)
inti,n=0
=strlen(str);
if((str[i]==substr[0])&
&
(str[i+1]==substr[1])&
(str[i+2]==substr[2]))
++i;
returnn;
charstr[81],substr[4];
intn;
clrscr();
输入主字符串:
gets(str);
输入子字符串:
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
n=%d\n"
n);
1).inti,n=0;
2).for(i=0;
=strlen(str)-3;
i++)或for(i=0;
strlen(str)-2;
3).n++;
或n+=1;
或n=n+1;
或++n;
七、程序设计共3题(共计30分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
用函数求N个[10,60]上的整数中能被5整除的最大
的数,如存在则返回这个最大值,如果不存在则
返回0。
------------------------------------------------*/
intfind(intarr[],intn)
{
intm=0;
/**********Program**********/
/**********End**********/
return(m);
#defineN30
stdlib.h"
inta[N],i,k;
a[i]=random(51)+10;
%5d"
a[i]);
if((i+1)%5==0)printf("
k=find(a,N);
if(k==0)
NOFOUND\n"
else
themaxis:
k);
yzj();
yzj()
FILE*IN,*OUT;
inti[5];
into;
IN=fopen("
in.dat"
if(IN==NULL)
ReadFileError"
OUT=fopen("
out.dat"
w"
if(OUT==NULL)
WriteFileError"
for(n=0;
n<
5;
n++)
{
fscanf(IN,"
i[n]);
o=find(i,5);
fprintf(OUT,"
o);
fclose(IN);
fclose(OUT);
----------------------
inti;
n;
if(arr[i]%5==0&
arr[i]>
m)
m=arr[i];
给定n个数据,求最大值出现的位置(如果最大值出
现多次,求出第一次出现的位置即可)。
intstation(ints[],intn)
inta[100],n,i,t;
n);
a[i]);
t=station(a,n);
themax_valuepositionis:
t);
inti[10];
10;
o=station(i,10);
inti,k;
k=0;
for(i=1;
=n;
if(s[i]>
s[k])k=i;
return(k+1);
第3题(10.0分)
找出一个大于给定整数且紧随这个整数的素数,并
作为函数值返回。
#include"
conio.h"
intfun(intn)