1、 一.(25) 116、以下程序运行后的输出结果是__3____。 main() { int p=30; printf("%d\n",(p/3>0 ? p/10 :p%3)); } 66、若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是__5.0,4,c=3____。 int b,c; float a; scanf("%f,%d,c=%d",&a,&b,&c) 27、请在以下程序第一行的下划线处填写适当内容,使程序能正常运行。 _double max或extern double max_____( dou
2、ble,double); main() { double x,y; scanf("%1f%1f",&x,&y); printf(%1f\n",max(x,y)); } double max(double a,double b) { return(a>b ? a:b);} 57、以下程序的输出结果是__246____。 void fun() { static int a = 0; a += 2; printf("%d",a); } main() { int cc; for(cc = 1;c
3、c < 4; cc++) fun();
printf("\n");
}
43、以下程序运行后的输出结果是_81_____。
#define S(x) 4*x*x+1
main()
{ int i=6,j=8;
printf("%d\n",S(i+j));
}
73、以下函数inverse的功能是使一个字符串按逆序存放。
inverse(str)
char str[];
{
char m;
int i,j;
for(i=0,j=strlen(str);i 4、)
{
m=str[i];
str[i]=_str[j-1]_____;
_str[j-1]=m_____;
}
}
144、以下程序的输出结果_efgh_____。
#include 5、 puts(str);
}
67、下列程序的输出结果是__5 6____。
int t(int x,int y,int cp,int dp)
{ cp=x * x+y*y;
dp=x*x-y*y;
}
main( )
{ int a=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d %d\n",c,d);
}
19、若有如下结构体说明:
struct STRU
{ int a,b;char c: double d;
struct STRU *p1,*p2;
};
请填空,以 6、完成对t数组的定义,t数组的每个元素为该结构体类型。
__struct STRU____t[20]
100、以下程序用来统计文件字符的个数,请填空。
#include "stdio.h"
main()
{ FILE *fp; long num=O;
if((fp=fopen("fname.dat","r"))==NULL)
{ PRINTF("Open error\n");exit(0);}
while(__fgetc(fp)!=EOF或!feof(fp)____)
{num++; }
printf("num=%ld\ 7、n",num);
fclose(fp);
}
93、以下程序段用于构成一个简单的单向链表,填空。
struct STRU
{ int x,y;
float rate;
__struct STRU * ____ p;
}a,b;
a.x=0;a.y=0;a.rate=0;a.p=&b;
b.x=0;b.y=0;b.rate=0;b.p=NULL;
42、以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请填空。
main()
{ int i,a[20],sum,count;
sum=count=0;
for(i 8、0;i<20;i++) scanf("%d",_&a[i]_____ );
fro(i=0;i<20;i++)
{ if(a[i]>0)
{ count++;
sum+= _a[i]_____ ;
}
}
printf("sum=%d,count=%d\n",sum,count);
}
74、以下函数fun用于求两个整数a和b的最大公约数。
fun(a,b)
int a,b;
{int i,j,m,n;
if(a>b)
{m=a;a=b;__b=m____;}
i=a;j=b 9、
while((n=_j%i_____)!=0)
{j=i;i=_n_____;}
return(i);
}
41、以下程序中, for循环体执行的次数是____4__。
#define N 2
#define M N+1
#define K M+1*M/2
main()
{ int i;
for(i=1;i 10、
};
main()
{ struct NODE m[5],*p=m,*q=m+4;
int i=0;
while(p!=q){
p->k=++i; p++;
q->k=i++; q--;
}
q->k=i;
for(i=0;i<5;i++) printf("%d",m[i].k);
二.(12)
95、以下程序的输出结果是_261_____。
main()
{ int a=177;
printf("%o\n",a);
}
83、以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的 11、语句。
void fun(int*x,int*y)
{ …… }
main()
{ int a=10,b=20;
__void (*p)() 或void(*p)(int*, int*)____
p=fun; p(&a,&b);
……
}
17、下列程序的输出结果是__0____。
void fun(int *n)
{ while((*n)--);
printf("%d",++(*n));
}
main()
{ int a=100;
fun(&a); 12、
}
29、以下程序运行后的输出结果是__30 25____。
int a=5;
fun(int b)
{ static int a=10;
a+=b++;
printf("%d ",a);
}
main()
{ int c=20;
fun(c);
a+=c++;
printf("%d\n",a);
}
117、以下程序的功能是输出如下形式的方阵:
13 14 15 16
9 10 11 12
5 6 7 8
1 2 13、 3 4
请填空。
main()
{ int i,j,x;
for(j=4;j_>0_____;j--)
{ for(i=1;i<=4;i++)
{ x=(j-1)*4+__i__;
printf("%4d",x);
}
printf("\n");
}
92、若有定义语句:char s[100],d[100];int j=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)
while(s[i]){d[j]=_s[i++]_____;j++;}
d[j]=0;
37、下面rot 14、ate函数的功能是:将n行n列的矩阵A转置为A',例如:
|1 2 3 4 |
|5 6 7 8 |
当A=|9 10 11 12|
|13 14 15 16|
|1 5 9 13|
|2 6 10 14|
则A'=|3 7 11 15|
|4 8 12 16|
请填空。
#define N 4
void rotate(int a[][])
{ int i,j,t;
for(i=0;i 15、{t=a[i][j];
___a[i][j]=a[j][i] ___;
a[j][i]=t;
}
}
52、已知字符A的ASCII码为65,以下程序运行后的输出结果是__67G____。
main()
{ char a,b;
a='A'+'5'-'3'; b=a+'6'-'2';
printf("%d%c\n",a,b);
}
115、已有文本文件test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已正确为"读"而打开,由此文件指针fr指向文件,则程序的输出结果是_Hell_____ 16、
#include 17、
++s;++t;
}
return(_*s=*t_____);
}
136、以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上。请填空。
main()
{ int x,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x; py=&y; pz=&z; pmax=&max;
*pmax=x______;
if(*pmax<*py) *pmax=*py;
if(*pmax<*pz 18、) *pmax=*pz;
printf("max=%d\n",max);
}
46、已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是__1 B____。
#include 19、填空。
main()
{ printf("The sun=%d\n",SunFun(10));}
SunFun(int n)
{ int x,s=0;
for(x=0;x<=n;x++)s+F(______);
return s;
}
F(int x)
{ return (______);}
131、下面程序的运行结果是__18____。
#include 20、
}
main()
{int aa[10]={1,2,3,4,5,6,7,8,9,10}, s;
s=f (aa+2,4); printf("%d\n",s); }
97、以下程序的输出结果是_efgh_____。
main()
{ char *p="abcdefgh",*r;
long *q;
q=(long*)p;
q++;
r=(char*)q;
printf("%s\n",r);
}
141、执行以下程序时输入1234567 21、ain()
{ int a=1,b;
scanf("%2d%2d",&a,&b); printf("%d %d\n",a,b);
}
79、若有以下结构类型说明和变量定义,则变量a在内存所占字节数是_22_____。
struct stud
{ char num[6];
int s[4];
double ave;
} a,*p;
40、以下程序运行后的输出结果是_*2*4*6*8*_____。
main()
{ char a[]="123456789",*p;
int i=0;
p=a;
while( 22、p)
{ if(i%2==0) *p='*';
p++;i++;
}
puts(a);
}
158、以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出,请填空。
4
3 7
2 6 9
1 5 8 10
#include 23、j; _i- -_____) {n++;x[i][j]= __n___;}
for(i=0;i<4;i++)
{ for(j=0;j<=i;j++) printf("%3d",x[i][j]);
printf("\n");
}
}
135、以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。
main()
{ int x[10],a[9],i;
for(i=0;i<10;i++) scanf("%d",&x[i]);
for( _i=1____; 24、 i<10;i++)
a[i-1]=x[i]+ x[i-1]______;
for(i=0;i<9;i++ ) printf("%d",a[i] ) ;
printf("\n" );
}
12、下列程序中字符串中各单词之间有一个空格,则程序的输出结果是_How does she _____。
# include 25、es she");
printf("%s\n",p1);
156、以下程序的输出结果是__3____。
#include 26、
9、以下程序的输出结果是___7___。
#define MAX(x,y) (x)>(y)?(x):(y)
main()
{
int a = 5, b = 2,c = 3, d = 3, t;
t = MAX(a + b, c + d)*10;
printf("%d\n", t);
}
四.(9)
149、以下程序的输出结果是_13_____。
#include 27、 fun(3); printf("\n");
}
153、若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值:
a=7
b=9
请完成输出语句:printf("_a=%d\nb=%d_____",a,b); 。
139、设有说明
struct DATE { int year;int month;int day;};
请写出一条定义语句,该语句定义 d 为上述结构体类型变量,并同时为其成员 year、month、day依次赋初值2006、10、1:_struct DATE d={2006,10,1};_____。
123、以下isprime函数 28、的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。
int isprime(int a)
{ int i;
for(i=2;i<=a/2;i++)
if(a%i==0) _return 0_____;
_if(i>a/2) return 1_____;
}
128、以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135则输出531。请填空。
#include 29、
printf ("Output: ");
do
{ s = n%10; printf ("%d",s); n=n/10______; }
while (n!=0);
printf ("\n");
}
154、以下程序的输出结果是_1_____。
#include 30、m);
}
152、设变量a和b已正确定义并赋初值。请写出与a-=a+b等价的赋值表达式__a=-b____。
137、以下程序的输出结果是__10____。
int fun(int *x,int n)
{ if(n==0) return x[0];
else return x[0]+fun(x+1,n-1);
}
main()
{ int a[]={1,2,3,4,5,6,7}; printf("%d\n",fun(a,3)); }
24、以下程序的输出结果是_16_____。
#define MCRA(m) 31、2*m
#define MCRB(n,m) 2*MCRA(n)+m
main()
{ int i=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
34、下面程序的运行结果是:____6__。
int f(int a[],int n)
{ if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
main()
{ int aa[3]={1,2,3},s;
s=f(&aa[0],3); printf("%d\n",s);
}
7、以下程序中,函数Su 32、mColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。
#define M 2
#define N 4
void SumColumMin(int a[M][N],int *sum)
{ int i,j,k,s=0;
for(i=0;i 33、]={3,2,5,1,4,1,8,3},s;
SumColumMin(_____x,&s_);
printf("%d\n",s);
}
109、若有程序
main()
{ int i,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n ",i,j);
}
要求给i赋10,给j赋20,则应该从键盘输入______。
60、下列程序的运行结果是__4,8____。
main()
{ union EXAMPLE
{ struct
{ int x; int 34、y; } in;
int a;
int b;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
102、mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
int mystrlen(char *str)
{ int i;
for(i=0;______!='\0';i++);
return( ______ 35、);
}
47、以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值。请填空。
void fun(int,int,int(*)[4],int *);
main()
{ int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++) printf("%4d",b[i]);
printf("\n");
}
void fun(int m,int n,int ar[][4],int *br)
{ int i,j,x;
fo 36、r(i=0;i






