井冈山大学历年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、设int a; float f; double i; 则表达式10+’a’+i*f值的数据类型是________ 。
4、已知字母a的ascii码为65。以下程序运行后的输出结果是 ________ 。
main()
{
char a, b;
a='a'+'5'-'3';
b=a+'6'-'2' ;
printf("%d %c\n", a, b);
}
5、有以下程序
#include <stdio.h>
main( )
{
char ch1,ch2;
int n1,n2;
ch1=getchar();
ch2=getchar();
n1=ch1-‘0’;
n2=n1*10+(ch2-‘0’);
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后输出结果是 ________。
6、以下sum函数的功能是计算下列级数之和。 s=1+x+x2/2!+x3/3!+........+xn/n! 请给函数中的各变量正确赋初值。 double sum( double x, int n )
{
int i;
double a,b,s;
________
for( i=1;i<=n;i++)
{
a=a*x;
b=b*i;
s=s+a/b;
}
return s;
}
7、已有定义如下:
struct node
{
int data;
struct node *next;
}
*p;
以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。请填空。 p = (struct node *)malloc( ________ );
8、在c语言中除了使用c提供的标准类型名(如int、char等)外,还可以用_________声明新的类型名来代替已有的类型名。
9、有int x=3,y=-4,z=5;
则表达式(x&&y)==(x||z)的值为 ________。
10、有以下程序
#include < stdio.h >
main()
{
int a=1,b=2,c=3,d=0;
if (a==1) if (b!=2) if(c!=3) d=1;
else d=2;
else if(c!=3) d=3;
else d=4;
else d=5;
printf("%d\n",d);
}
程序运行后的输出结果是: ________。
11、在c语言中,逻辑运算符中的"||"称为________。
12、在c语言中,用转义字符 \' 表示______________。答题提示:双引号/单引号/反斜线/横向跳格/回车换行
13、局部变量的作用域是从______的位置起,到函数结束止。
14、若有定义:int a=3; 表达式a/2.0+'b'-'a'的值是【1】。
15、宏定义必须写在______之外
16、在c语言中,关系运算符中的"大于等于"表示为________。
17、在c语言中,假使x为字符变量,如果我们采用printf("格式控制",x)格式输出x,那么"格式控制"具体表示为"( )"。
18、在c语言中,从参数的形式看,函数可以分为两类:无参函数和( )函数。
19、已知char str[]="student",则strlen(str)的值为________。
20、下列程序段的运行结果是________。
char s1[20]="abcdef", s2[5]="abc";
strcpy(s1,s2);
printf("%c", s1[4]);
21、若a 是int 型变量, 则表达式( a=4*5,a*2 ),a+6 的值为【】。
22、以下程序功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。
#include <stdio.h>
main()
{
int a[10],*p,*s;
for(p=a;p-a<10;p++) scanf("%d",p);
for(p=a,s=a;p-a<10;p++) if(*p>*s) s=________;
printf("index=%d\n",s-a);
}
23、在c语言中,假使x为长整型变量,如果我们采用printf("格式控制",x)格式输出x,那么"格式控制"具体表示为"__"。
24、for (a=1,b=1;a<=100;a++)
{
if(b>=20) break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
程序的输出结果a的值为________ 。
25、#include <stdio.h>
void main()
{
int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for (i=1;i<3;i++) for (j=0;j<i;j++) s+=a[i][j];
printf("%d\n",s);
}
26、输入一个3*3的实数矩阵,求主对角线元素中的最大值。
main()
{
float s[3][3],max1,max2,x;
int i,j;
for(i=0;i<3 ;i++) for(j=0;j<3;j++)
{
scanf("%f", &x);
s[i][j]=x;
}
max=s[0][0];
for(i=1;i<3;i++) if(max<________) max=________;
printf("max1=%f\n",max);
}
27、将arr传参到子函数,接受处()内函数定义该怎么写?
28、程序结果是________
#include<stdio.h>
void swap(int *,int);
void main( )
{
int a=3,b=5;
swap(&a,b);
printf("a=%d,b=%d",a,b);
}
void swap(int *x,int y)
{
int temp ;
temp=*x ;
*x=y ;
y=temp ;
}
29、下面程序的功能是检查一个二维数组是否对称(即对所有i和j 都有a[i][j]=a[j][i] )。请分析程序填空。
main()
{
int i,j,found=0,a[4][4];
printf("enter array(4*4):\n");
for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);
for(j=0;j<4;j++)for( 【1】________;i<4;i++)if(a[j][i]!=a[i][j])
{
【2】________;
break;
}
if(found) printf("no");
else printf("yes");
}
30、以下程序的运行结果是【1】________,其算法是【2】________。
main()
{
int a[5]={5,10,-7,3,7},i,t,j;
sort(a);
for (i=0;i<=4;i++)printf("%3d",a[i]);
}
sort(int a[])
{
int i,j,k;
for (i=0;i<4;i++)for (j=0;j<4-i;j++)if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
31、函数del 的作用是删除有序数组a 中的指定元素x。已有调用语句n=del(a,n,x);
其中实参n 为删除数组元素的个数,赋值号左边的n 为删除后数组元素的个数。请填空。del(int a[],int n,int x)
{
int p,i;
p=0;
while (x>=a[p]&&p<n)【1】________;
for(i=p-1;i<n;i++)【2】________;
n=n-1;
return n;
}
32、以下程序运行后的输出结果是 ________
#include <stdio.h>
main()
{
int x=20;
printf("%d ",0<x<20);
printf("%d\n",0<x&&x<20);
}
33、在c语言中,将字符串中小写字母转换成大写字母的函数是_____________。
34、以下程序运行后的输出结果是 ________
main()
{
int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++) for(j=i+1;j<3;j++) a[j][i]=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) printf("%d ",a[i][j]);
printf("\n");
}
}
35、若运行以下程序时,从键盘输入adescriptor↙,则下面程序的运行结果是________。
#include <stdio.h>
void main()
{
char c;
int v0=0,v1=0,v2=0;
do
{
switch(c=getchar())
{
case’a’:
case’a’:
case’e’:
case’e’:
case’i’:
case’i’:
case’o’:
case’o’:
case’u’:
case’u’:v1+=1;
default:
v0+=1;
v2+=1;
}
}
while(c!=’n\’);
printf("v0=%d,v1= %d, v2= %d\n", v0, v1, v2);
}
36、请阅读并分析以下程序,该程序的输出结果是:
#include <stdio.h>
main( )
{
int a[ ]={2,3,5,4},i;
for(i=0;i<4;i++) switch(i%2)
{
case 0:switch(a[i]%2)
{
case 0:a[i]++;
break;
case 1:a[i]--;
}
break;
case 1:a[i]=0;
}
for(i=0;i<4;i++) printf("%d",a[i]);
printf("\n");
}
37、C语言中函数返回值的类型是由______决定的。
38、设y为int型变量,请写出描述“y是奇数”的表达式______。
39、在scanf函数中,用符号______表示变量的地址。
40、在C语言中,以______作为字符串结束标志。