2012-2013学年二学期C语言期末考试试卷(A卷)
班级:___________学号:___________姓名:___________得分:___________
题号
成绩
复核
得分
阅卷
c语言中struct
题目部分,(卷面共有24题,100分,各大题标有题量和总分)
一、填空题(24小题,共100分)
1.
以下程序的功能是计算下面函数的值。请填空。
#include <stdio.h>
#include <math.h>
float f();
main()
{
float x,y,z,sum;
printf(“\ninput x,y,z:\n”);
scanf(“%f %f %f”,&x,&y,&z);
sum=1;
printf(“sum=%f\n”,sum);
}
float f(float a,float b,float c)
{
float value;
value=2;
return(value);
}
2.
下面程序的功能是【1】,运行结果是【2】。
long fib(int g)
{
switch(g)
{
case 0: return 0;
case 1:
case 2: return 1;
}
return(fib(g-1)+fib(g-2));
}
main()
{
long k;
k=fib(7);
printf(“k=%d\n”,k);
}
3.
已定义一个含有30个元素的数组s,函数fav1的功能是按顺序分别赋予各元素从2开始的偶数,函数fav2则按顺序每五个元素求一个平均值,并将该值存放在数组w中。请填空。
#define SIZE 30
fav1(float s[])
{
int k,i;
for(k=2,i=0;i<SIZE;i++)
{
1;
k+=2;
}
}
fav2(float s[],float w[])
{
float sum;
int k,i;
sum=0.0;
for(k=0,i=0;i<SIZE;i++)
{
sum+=s[i];
if((i+1)%5==0)
{
w[k]=sum/5;
2;
k++;
}
}
}
main()
{
float s[SIZE],w[SIZE/5],sum;
int i,k;
fav1(s);
fav2(s,w);
}
4.
若二维数组am列,则计算任一元素a[i][j]在数组中位置的公式为:_____________
(假设a[0][0]位于数组的第一个位置上。)
5.
下面程序可求出矩阵a的两条对角线上的元素之和。请填空。
main()
{
int a[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j) sum1=sum1+a[i][j];
for(i=0;i<3;i++)
for(1;2;j--)
if((i+j)==2) sum2=sum2+a[i][j];
printf(“sum1=%d,sum2=%d\n”,sum1,sum2);
}
6.
下面程序以每行4个数据的形式输出a数组,请填空。
#define N 20
main()
{
int a[N],i;
for(i=0;i<N;i++) scanf(%d,1);
for(i=0;i<N;i++)
{
if(2) 3
printf(“%3d”,a[i]);
}
printf(“\n”);
}
7.
有十个字符串。下面程序的功能是在每个字符串中,出最大字符按一一对应的顺序放入一维数组a中,即第i个字符串中的最大字符放入a[i]中,输出每个字符串中的最大字符。请填空。
#include <stdio.h>
main()
{
char s[10][20];
int a[10],i,j;
for(i=0;i<10;i++)
gets(s[i]);
for(i=0;i<10;i++)
{
1;
for(j=1;s[i][j]!=‘\0’;j++)
if(a[i]<s[i][j]) 2;
}
for(i=0;i<10;i++)
printf(“%d %c”,i,a[i]);
}
8.
假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为       
9.
sint型变量,且s6,则下面表达式的值为        .
                      s%2+(s+1)%2
10.
设有以下结构体类型说明和变量定义,则变量a在内存中所占的字节数是________,变量p在内存中所占的字节数是___________
struct  stud
{char num[6];
int s[4];
double ave;
}a, *p;
11.
printf函数的“格式控制”包括两部分,他们是____________
12.
printf格式字符中,只能输出一个字符的格式字符是_________;用于输出字符串的格式字符是_________;以小数形式输出实数的格式字符是_________;以标准指数形式输出实数的格式字符是_________
13.
以下程序实现输出xyz三个数中最大者,请在[ ]内填入正确的内容。
main()
{int x=4,y=6,z=7;
int[1];
if([2]) u=x;
else u=y;
if([3]) v=u;
else v=z;
printf(v=%d,v);
}
14.
yint 型变量,请写出描述“y是奇数”的表达式        .
15.
a=2,b=4,则表达式!(x=A//(y=B&&0的值是        .
16.
C系统给整形变量分配的地址空间是___字节?
17.
int x=3, y=4, z=5;
A、表达式 !(x>y)+(y!=z) || (x+y) && (y-z) 的值为       
B、表达式 x+y>z&&y==z 的值为       
C、表达式 x||y+z&&y-z 的值为     
D、表达式 !(x>y)&&!z||1 的值为       
E、表达式 !(x==y)&&!(y==z)||0的值为       
F、表达式 !(x+y)+z-1&&y+z/2的值为       
18.
根据下式填空,将程序补充完整。 y=-1.0(x<0.0)
                      2.0/(x-1.0)(0.0<x<10.0x!=1)
                        3.0/x(x=1.010.0<x<20.0)
                        4.0(x>=20)main( )
{ float x,y;
scanf("%f",&x);
if( )
y=-1.0;
else if(( )&&(x!=1))
y=2.0/(x-1.0);
else if( )
y=3.0/x;
else
y=4.0;
printf("%f/n",y); }
19.
以下函数的功能是将一个字符串S的内容颠倒过来。
        void  reserve ( ___________  )     
          {  int  i, j, t;
              for (i=0,j=strlen(s)-1; ___________ i++j--)   
                {  t=s[i]; s[i]=s[j]; s[j]=t;}
            }
20.
实常数123.457的规范化指数表示形式是_______
21.
请填空完成以下程序:
计算 sum=1/1 + 1/2 + 1/3 + 1/4 + … +1/n ,其中n=1,2,3,…20
main()
{float sum , temp;
int n , i ;
n=20;
sum=0.0;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。