资源描述
一.(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_____( double,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;cc < 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<strlen(str)/2;_i++_____,j--)
{
m=str[i];
str[i]=_str[j-1]_____;
_str[j-1]=m_____;
}
}
144、以下程序的输出结果_efgh_____。
#include <stdio.h>
#include <string.h>
char *fun(char *t)
{ char *p=t;
return(p+strlen(t)/2);
}
main()
{ char *str="abcdefgh";
str=fun(str);
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;
};
请填空,以完成对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\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=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;
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<K;i++)
{ ... }
...
}
49、以下程序运行后的输出结果是_13431_____。
struct NODE
{ int k;
struct NODE *link;
};
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的语句。
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);
}
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 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、下面rotate函数的功能是:将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<N;i++)
for(j=0;_j<=i _____;j++)
{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_____。
#include <stdio.h>
main()
{ FILE *fr; char str[40];
......
fgets(str,5,fr);
printf("%s\n",str);
fclose(fr);
}
10、函数mycmp(char *s,char *t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s>t返回正值,当s<t时返回负值。请填空。
mycmp( char *s,char *t)
{ while (*s==*t)
{ if (*s=='\0')return 0;
++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) *pmax=*pz;
printf("max=%d\n",max);
}
46、已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是__1 B____。
#include <stdio.h>
main()
{ char a,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0';b=b*2;
printf("%c %c\n",a,b);
}
三.(11)
6、以下程序通过函数SunFun和f(x),x=0到10,这里f(x)=x^2+1,由F函数实现,请填空。
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 <stdio.h>
int f (int a[], int n)
{ if(n>1)
return a[0]+f(a+1,n-1);
else
return a[0];
}
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<CR>,则输出结果是_12 34_____。
#include <stdio.h>
main()
{ 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(*p)
{ if(i%2==0) *p='*';
p++;i++;
}
puts(a);
}
158、以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出,请填空。
4
3 7
2 6 9
1 5 8 10
#include <stdio.h>
main()
{ int x[4][4],n=0,i,j;
for(j=0;j<4;j++)
for(i=3;i>=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____; 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<string.h>
main( )
{ char str1[ ]="How do you do", *p1=str1;
strcpy(str1+strlen(str1)/2,"es she");
printf("%s\n",p1);
156、以下程序的输出结果是__3____。
#include <stdio.h>
#define N 5
int fun(int *s,int a,int n)
{ int j;
*s=a; j=n;
while(a!=s[j]) j--;
return j;
}
main()
{ int s[N+1]; int k;
for(k=1;k<=N;k++) s[k]=k+1;
printf("%d\n",fun(s,4,N));
}
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 <stdio.h>
void fun(int x)
{ if(x/2>0) fun(x/2);
printf("%d",x);
}
main()
{ 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函数的功能是判断形参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 <stdio.h>
main()
{ int n, s;
printf ("Enter a number: "); scanf ("%d",&n);
printf ("Output: ");
do
{ s = n%10; printf ("%d",s); n=n/10______; }
while (n!=0);
printf ("\n");
}
154、以下程序的输出结果是_1_____。
#include <stdio.h>
main()
{ int i,j,sum;
for(i=3;i>=1;i--)
{ sum=0;
for(j=1;j<=i;j++) sum+=i*j;
}
printf("%d\n",sum);
}
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) 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、以下程序中,函数SumColumMin的功能是:求出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<N;i++)
{ k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+=____a[k][i]__ ;
}
_____sum_ =s;
}
main()
{ int x[M][N]={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 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( ______ );
}
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;
for(i=0;i<m;i++)
{ x=ar[i][0];
for(j=0;j<n;j++) if(x<ar[i][j]) x=ar[i][j];
______=x;
}
}
94、以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
file *myf; long f1;
myf=__ __("test.t","rb");
fseek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
119、以下程序的输出结果是_30_____。
main()
{ int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i++) s+=a[i][i]+ a[i][3-i-1];
printf("%d\n",s);
}
展开阅读全文