厦门理工学院历年C语言程序设计期末

本试卷为厦门理工学院历年C语言程序设计期末,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言程序设计期末

一、填空题 (共40题,每题2.5分,共计100分)

1、从键盘上输入10个数,求其平均值,填空_______。
main()
{
int i;
float f,sum;
for(i=1,sum=0.0;i<11;i++)
{
________ ;
________ ;
}
printf("average=%f\n",sum/10);
}
2、c语言提供的三种逻辑运算符是________、________、________。
3、c语言程序的三种基本结构是顺序结构、选择结构和________。
4、函数的返回值是通过函数的________语句获得的。
5、请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 ________ ( double,double);
main()
{
double x,y;
scanf("%lf%lf",&x,&y);
printf("%lf\n",max(x,y));
}
double max(double a,double b)
{
return(a>b ? a:b);
}
6、以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。
#define N 3
#define M 3 select(int a[N][M],int *n)
{
int i,j,row=1,colum=1;
for(i=0;i<N;i++) for(j=0;j<M;j++) if(a[i][j]>a[row][colum])
{
row=i;
colum=j;
}
*n= ________;
return ________;
}
main()
{
int a[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf("max=%d,line=%d\n",max,n);
}
7、下列程序运行结果是 ________ 。
#include <stdio.h>
#include <string.h>
struct a ( int a; char b[10]; double c; );
void f(struct a *t);
main()
{
struct a a={1001, "zhangda",1098.0};
f(&a);
printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct a *t)
{
strcpy(t->b,"changrong");
}
8、c语言约定用____________作为字符串的结束标志。
9、在c语言中,标识符是由英文字母、数字、________组成的。
10、结构化程序设计的3种基本结构是:顺序结构、选择结构、______结构,这三种基本结构构成了复杂的c语言程序。
11、下列程序段的运行结果是_____。
char s1[20]="abcdef", s2[5]="abc";
strcpy(s1,s2);
printf("%c", s1[5]);
12、读取文件的函数名是【1】。
13、在c语言中,关系运算符中的"大于等于"表示为________。
14、在c语言中,从参数的形式看,函数可以分为两类:无参函数和( )函数。
15、下列程序段的运行结果是________。
void sun()
{
int b=5;
}
main()
{
int b=1;
sun();
printf("b=%d",b);
}
16、下列程序段的运行结果是________。
main()
{
int n,s=0 ;
for(n=1; n<=5; n++)
{
if(n%2==0) continue;
s=s+n;
}
printf("%d\n", s);
}
17、若有int a[3]={1,2,3}; 则*(a+1)+1=________。
18、int w=1, x=2, y=3, z=4;
则条件表达式w>x?w:y<z?y:z的结果为________。
19、若a 是int 型变量, 则表达式( a=4*5,a*2 ),a+6 的值为【】。
20、下面程序段中循环体的执行次数是________。
a=10;
b=0;
do
{
b+=2;
a-=2+b;
}
while(a>=0);
21、for (a=1,b=1;a<=100;a++)
{
if(b>=20) break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
程序的输出结果a的值为________ 。
22、int y=1, x, *p, a[ ]={2,4,6,8,10};
p=&a[1];
for(x=0;x<3;x++) y + = * (p + x);
printf("%d\n",y);
程序的输出结果y的值是________ 。
23、对于文件末尾检测函数feof,如果文件指针已到文件末尾,则函数返回值是________。
24、c语言中文件操作结束节后,必须关闭文件。而且关闭文件是通过调用________函数来实现。
25、|x|<10,写作程序为
26、函数实参的传递分为
27、一个c语言源程序由若干函数组成,其中至少应含有一个 ()
28、在一个c 源程序中, 注释部分两侧的分界符分别为___和____。
29、下面程序根据以下函数关系,对输入的每个x 值,计算出y值。请分析程序填空。
main()
{
int x,y;
scanf("%d",&x);
if(【1】________) y=x*(x+2);
else if(【2】________) y=x-1;
else 【3】________;
if(y!=-1) printf("%d",y);
else printf("error");
}
30、下面程序的功能是求1111的个、十、百位上的数字之和。请分析程序填空。
#include<stdio.h>
main()
{
int i,s=1,m=0;
for(i=1;i<=11;i++) s=s*11%1000;
do
{
m+= 【1】________;
s=【2】________;
}
while(s);
printf("m=%d\n",m);
}
31、循环语句for(i=0;i<3;i++) printf("*");
表达式i=0 执行【1】________次,表达式i++执行【2】________次。
32、在c 语言中,二维数组在内存中的存放顺序是________。
33、有以下程序,程序执行后,输出结果是 ________ 。
#include <stdio.h>
void fun(int *a)
{
a[0]=a[1];
}
main()
{
int a[10]={10,9,8,7,6,5,4,3,2,1},i;
for(i=2;i>=0;i-- )fun(&a[i]);
for(i=0;i<10;i++) printf("%d",a[i]);
printf("\n");
}
34、在c语言中,将字符串中小写字母转换成大写字母的函数是_____________。
35、函数f 的形参a 为一个10×10 的二维数组, n 的值为5,以下程序段的运行结果为________。f(int a[][20], int n)
{
int i,j,k;
j=n/2+1;
a[1][j]=1;
i=1;
for(k=2;k<=n*n;k++)
{
i=i-1;
j=j+1;
if(i<1&&j>n)
{
i=i+2;
j=j-1;
}
else
{
if(i<1) i=n;
if(j>n) j=1;
}
if(a[i][j]==0) a[i][j]=k;
else
{
i=i+2;
j=j-1;
a[i][j]=k;
}
}
}
main()
{
int a[20][20]={0},n,i,j;
scanf("%d",&n);
f(a,n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)printf("%3d",a[i][j]);
printf("\n");
}
}
36、下列给定程序中,函数proc()的功能是找出100~m(m 不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
#define M 1000 int proc(int*S.int n)
{
int i,j,k,a,b,c;
j=0;
for(i=100;i<N;I++)
{
k=n;
a=k%10;
k/=10;
b=k%10;
c=k/10;
if(a==b+c) s[j]=i;
}
return j;
}
void main()
{
int a[M],m,num=0,i;
do
{
printf("\nEnter m(<=1000):");
scanf("%d",&m);
}
while(m>1000);
num=proc(a,m);
printf("\n\nThe result:\n");
for(i=0;i<NUM;I++) printf("%5d",a[i]);
printf("\n\n");
}
37、C语言中函数返回值的类型是由______决定的。
38、定义一个指针数组p,它有4个元素,每个指针指向一个整型数据,定义语句为______。
39、若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为______。
40、在scanf函数中,用符号______表示变量的地址。